Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
ВнизПочему "залипают" image.width и image.height при FormResize? Найти похожие ветки
← →
Cosinus © (2005-03-01 14:19) [0]Вот простая процедурка
procedure TFlashEdit.WMEXITSIZEMOVE(var Message: TMessage);
begin
PatBlt(Image.Canvas.Handle, 0, 0, image.Width, image.Height, WHITENESS);
end;
При первом ее вызове, все правильно отрабатывается и Image становится белым. Изменяя же дальше, белым почему то остается все тот же прямоугольник. ВсеAnchors
уImage
стоят вtrue
. РазмерыImage
изменяются и функция вызывается - проверено. Никак не пойму.
← →
Cosinus © (2005-03-01 14:44) [1]Если после изменения размеров, вызвать эту
PatBlt
принудительно , например, нажатием на какую-нибудь клавишу, то тоже не отрабатывает.
Ткните носом, что же я ни так делаю.
← →
clickmaker © (2005-03-01 15:01) [2]Stretch = true
← →
Cosinus © (2005-03-01 15:06) [3]
> clickmaker © (01.03.05 15:01) [2]
Не, не то.PatBlt
я вызываю, только для примера, на самом деле там вызывается вот такая процедура...procedure TFlashEdit.ShowBlock();
var
ColWidth,ColHeight:word;
ColWidthMax,ColHeightMax:word;
ColCount:byte;
ColCountMax,i:byte;
B:TBitMap;
Buffer:Pchar;
XCoor,YCoor:word;
p:PARGB;
Bt:byte;
begin
MS.Position:=0;
ColWidthMax:=64;
ColHeightMax:=Image.Height div 8;
ColCountMax:=Image.Width div ColWidthMax;
try
B:=TBitMap.Create;
with B do
begin
b.Monochrome:=true;
b.pixelformat:=pf24bit;
b.Width:=Image.ClientWidth;
b.Height:=Image.ClientHeight;
end;
PatBlt(Image.Canvas.Handle, 0, 0, image.ClientWidth, image.ClientHeight, WHITENESS);
GetMem(Buffer,$01);
For ColCount:=0 to ColCountMax-1 do
For ColHeight:=0 to ColHeightMax-1 do
for ColWidth:=1 to ColWidthMax do
begin
MS.ReadBuffer(buffer^,$01);
Bt:=ord(Buffer[0]);
for i:=1 to 8 do
begin
if odd(bt) then
begin
xCoor:=ColWidth+ColCount*ColWidthMax;
yCoor:= i+ColHeight*8;
p:=b.scanline[YCoor];
p[XCoor].r:=0;
p[XCoor].g:=0;
p[XCoor].b:=0
end;
Bt:=bt shr 1
end;
end;
FreeMem(Buffer);
Image.canvas.draw(0,0,b);
finally
b.Free;
end;
end;
← →
MBo © (2005-03-01 15:19) [4]при изменении размеров Image изменяй и размеры Image.Picture.Bitmap
← →
Cosinus © (2005-03-01 15:36) [5]
> MBo © (01.03.05 15:19) [4]
Хм.. Действительно. Спасибо.
Я решил проще сделать и вместоImage.canvas.draw(0,0,b);
написалimage.Picture.Bitmap.Assign(b);
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c