[lazarus] Form repaintis when painting speedbuton glyph

Vincent Snijders vrs at dds.nl
Tue May 2 17:53:49 EDT 2000


I have been looking at the problem with the speedbuttons in win32. I haven't
found a solution but I know more or less what is hapening, not the reason

The problem is in painting the glyph on the button face. This paint action
(a copyrect on a canvas) causes gtk to emit (is that the right word) an
expose-event on the form and the form get repainted, which includes
repainting the speedbutton etc, etc.

Commenting out
    TButtonGlyph(FGlyph).Draw(Canvas, PaintRect, Offset, Caption, FLayout,
FMargin,  FSpacing, FState, Transparent, (0));
in the Procedure TSpeedbutton.Paint stops the repainting.

The reason why I can't solve this problem is a huge lack of knowledge on
graphics (DC etc) and gtk's interface to the graphics.
You might take a look at the stretchBlt function in gtkwinapi.inc. The
problem might be solved there.

I hope this helps somebody.

Vincent Snijders.

More information about the Lazarus mailing list