Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.096 c
1-1109568677
Guitar
2005-02-28 08:31
2005.03.13
Алгоритмы цифровой фильтрации.


1-1109632966
Stdnet
2005-03-01 02:22
2005.03.13
файл и листбокс


1-1109539123
Bloody-Wolf
2005-02-28 00:18
2005.03.13
возведение в степень


14-1108887275
YurikGL
2005-02-20 11:14
2005.03.13
SY576


3-1107950887
Kat
2005-02-09 15:08
2005.03.13
запрос, выбирающий записи с одинковым содержимым полем





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский