TGraphicControl
От: dikma  
Дата: 24.11.05 17:26
Оценка:
Пишу наследника от TGraphiccontrol в методе paint отрисовываю на канву битмапы примерно так


if OilImageList.GetOilImage(FSize, TempSide, PstPicture, PBitMap) then begin
   PBitMap.TransparentColor := $00FF00FF;
   PBitMap.Transparent := True;
   Canvas.StretchDraw(FPumpRect.Pistolet, PBitMap);
   Canvas.Brush.Bitmap := nil;
   PBitMap.FreeImage;
end;


под объектом находится другой объект который должен быть виден. ControlStyle := ControlStyle + [csOpaque] чтоб не моргало.

Как очищать канву чтоб ранее отрисованное исчезло?

Пробывал

canvas.fillrect(canvas.cliprect);


но это лишь делает участки объекта белыми.
Re: TGraphicControl
От: dikma  
Дата: 25.11.05 15:08
Оценка: :)
Здравствуйте, dikma, Вы писали:

D>Пишу наследника от TGraphiccontrol в методе paint отрисовываю на канву битмапы примерно так



D>
D>if OilImageList.GetOilImage(FSize, TempSide, PstPicture, PBitMap) then begin
D>   PBitMap.TransparentColor := $00FF00FF;
D>   PBitMap.Transparent := True;
D>   Canvas.StretchDraw(FPumpRect.Pistolet, PBitMap);
D>   Canvas.Brush.Bitmap := nil;
D>   PBitMap.FreeImage;
D>end;
D>


D>под объектом находится другой объект который должен быть виден. ControlStyle := ControlStyle + [csOpaque] чтоб не моргало.


D>Как очищать канву чтоб ранее отрисованное исчезло?


D>Пробывал


D>
D>canvas.fillrect(canvas.cliprect); 
D>


D>но это лишь делает участки объекта белыми.



Ставлю вопрос попроще, как перехватить стирание фона в tgraphiccontrol?
Re[2]: TGraphicControl
От: Sergei I. Gorelkin Россия  
Дата: 25.11.05 16:47
Оценка:
Здравствуйте, dikma, Вы писали:

D>Ставлю вопрос попроще, как перехватить стирание фона в tgraphiccontrol?


Никак. TGraphicControl рисует на канве родительского окна, его метод Paint вызывается при обработке WM_PAINT родителем. При обработке WM_ERASEBKGND подобные действия не выполняются. Единственное, что можно изобрести — перехватить WM_ERASEBKGND у родителя и вызывать некие процедуры своих контролов оттуда.
Re[2]: TGraphicControl
От: alive Россия  
Дата: 25.11.05 16:55
Оценка:
Здравствуйте, dikma, Вы писали:

D>Ставлю вопрос попроще, как перехватить стирание фона в tgraphiccontrol?


Что значит перехватить стирание фона В TGraphicControl Вы сами все рисуете.
...<< RSDN@Home 1.2.0 alpha rev. 619>>
...Foobar {Урфин Джюс — [15] Тупик}
Keep yourself alive
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.