Вверх ↑
Разработчик
Ответов: 26163
Рейтинг: 2127
#1: 2008-01-11 22:15:33 ЛС | профиль | цитата
Galkov, извини, конечно, но почему у тебя не исправленный компонент, а старый? Так нельзя ставить вопрос, если исправления приводят к артефактам в других местах, то исправления должны быть, или отткачены назад, или исправлены дальше. Разве плодить баги поверх других багов, это -- хорошо
И,
Galkov писал(а):
Никаких эмоций

А на это,
Galkov писал(а):
Я считаю, что имеет.
Безо всяких если бы.
А ты: ДА, или НЕТ

Я затруднюсь ответить, наверное, все же -- имеет.

Давай оставим этот вопрос, пока, открытым. Бага обнаружена и убрана откатом, и обратного -- не доказано. Надо ждать ответа от Автора исправлений, что бы в дальнейшем от других не было лишних вопросов, как у меня возникли -- а почему это черные линии появились, которых не должно быть, в принципе.

Вернемся к нашим баранам

Вот исправленный метод, количество шаманских плясок вокруг контекста уменьшено до трех (меньше, ну никак, не получается)


#pas
procedure MyCallback(pCtx:pointer; pUserData:pointer); stdcall;
var pCls:THiImageLoader; stat:DWORD; sz:TSize; bmp:PBitmap; Rect:TRect;
begin
pCls := THiImageLoader(pUserData);
pCls.FImgCtx.GetStateInfo(stat, sz, 0);
bmp := NewDIBBitmap(sz.cx, sz.cy, pf32bit);
Rect := MakeRect(0, 0, sz.cx, sz.cy);
pCls.FImgCtx.Draw(bmp.Canvas.Handle, Rect);
_hi_OnEvent(pCls._event_onLoad, bmp);
if pCls.valid then begin
if (sz.cx * 100) div sz.cy > (pCls.wsz * 100) div pCls.hsz then begin
pCls.FImgCtx.StretchBlt(pCls.DC, 0, (pCls.hsz - (pCls.wsz * sz.cy) div sz.cx) div 2, pCls.wsz, (pCls.wsz * sz.cy) div sz.cx, 0, 0, sz.cx, sz.cy, SRCCOPY);
end else begin
pCls.FImgCtx.StretchBlt(pCls.DC, (pCls.wsz - (pCls.hsz * sz.cx) div sz.cy) div 2, 0, (pCls.hsz * sz.cx) div sz.cy, pCls.hsz, 0, 0, sz.cx, sz.cy, SRCCOPY);
end;
bmp.Free;
bmp := NewDIBBitmap(pCls.wsz, pCls.hsz, pf32bit);
BitBlt(bmp.Canvas.Handle, 0, 0, pCls.wsz, pCls.hsz, pCls.DC, 0, 0, SRCCOPY);
end;
_hi_OnEvent(pCls._event_onCopyLoad, bmp);
bmp.Free;
SetEvent(pCls.hOK);
end;

И еще, я жду дальнейших рекомендаций по добавлению свойств массштабировани и копирования
карма: 22

0