[Lazarus] Visual "uglyness" when creating TSynEdit @ runtime in my app

luiz americo pereira camara luizmed at oi.com.br
Sat Jan 5 11:36:01 CET 2013


2013/1/5 luiz americo pereira camara <luizmed at oi.com.br>:
> 2013/1/5 Mattias Gaertner <nc-gaertnma at netcologne.de>:
>> On Sat, 05 Jan 2013 08:32:54 +0000
>> Martin <lazarus at mfriebe.de> wrote:
>>> and therefore finally
>>>
>>>    s:=PageControl1.AddTabSheet;
>>>    PageControl1.ActivePage := s;  // paint tabsheet
>>>    l := TSynEdit.Create(self);
>>>    l.Parent := s;                               // paint scrollbars, not
>>> yet aligned
>>>    l.Align := alClient;                      // paint scrollbars
>>> (again), this time aligned. Since synedit itself does not yet paint, the
>>> previous painted scrollbars remain a visible image
>>
>> It seems the Win32 intf triggers immediate paints.
>> Maybe some win32 developer can explain why.
>>

I've found a suspect.

SetParent triggers the handle creation
TSynEdt.CreateWnd calls SizeOrFontChanged that calls UpdateScrollBars
Here, since PaintLock <> 0 the scrollbar change is postponed

Martin/Bart, can you check if you pass the check for PaintLock in
UpdateScrollBars?

Alternatively comment the call to SizeOrFontChanged in CreateWnd and
see what happens

Luiz




More information about the Lazarus mailing list