On Fri, 3 Mar 2006 08:06:38 -0300
"Felipe Monteiro de Carvalho" <[EMAIL PROTECTED]> wrote:

> On 3/2/06, Mattias Gaertner <[EMAIL PROTECTED]> wrote:
> > Please report such places. The LCL should not do that.
> 
> I was wrong, by the way. My TLabel isn't showing. Is DrawText the only
> function utilized to make TLabel work? I also implemented TextOut, but
> that one isn't used at all.
> 
> Here is the order on which events occur:
> 
> [EMAIL PROTECTED] test]$ ./qttest
> OnCreate
> QPainter::begin: Widget painting can only begin as a result of a
> paintEvent QPainter::begin: Widget painting can only begin as a result of
> a paintEvent Start OnPaint
> End OnPaint
> OnDestroy
> 
> DrawText is being called twice before the paint event.

Yes, not to paint, but to measure:
Flags:=DT_CalcRect

Mattias
 
> The Paint message comes from Qt and is processed like this by my
> widgetset:
> 
> procedure TQtCustomForm.SlotPaint; cdecl;
> var
>   Msg: TLMessage;
> begin
>   FillChar(Msg, SizeOf(Msg), #0);
> 
>   Msg.Msg := LM_PAINT;
> 
>   try
>     LCLObject.WindowProc(TLMessage(Msg));
>   except
>     Application.HandleException(nil);
>   end;
> end;
> 
> Is this a correct way?

Looking good, but I'm no qt expert.

 
> Here is the stack trace for the first call (I added a exception so I
> can see the stack trace):
> 
> QPainter::begin: Widget painting can only begin as a result of a
> paintEvent [FORMS.PP] ExceptionOccurred
>   Sender=Exception
>   Exception=Error
>   Stack trace:
>   $080CB53D  TQTWIDGETSET__DRAWTEXT,  line 147 of qtwinapi.inc
>   $08116897  DRAWTEXT,  line 181 of ./include/winapi.inc
>   $080F88CC  TCUSTOMLABEL__CALCSIZE,  line 43 of ./include/customlabel.inc
>   $080F89E8  TCUSTOMLABEL__DOAUTOSIZE,  line 68 of
>   ./include/customlabel.inc $080D9893  TCONTROL__ADJUSTSIZE,  line 50 of
>   ./include/control.inc $080D1226 
>   TWINCONTROL__RESIZEDELAYEDAUTOSIZECHILDREN,  line 1685 of ./include
> /wincontrol.inc
>   $080D2A42  TWINCONTROL__UPDATESHOWING,  line 2528 of
>   ./include/wincontrol.inc $0808BB94  TCUSTOMFORM__UPDATESHOWING,  line
>   1813 of ./include/customform.inc $080D5C0F 
>   TWINCONTROL__UPDATECONTROLSTATE,  line 4174 of ./include/wincontrol
> .inc
>   $080D8F2B  TWINCONTROL__CMVISIBLECHANGED,  line 5801 of
>   ./include/wincontrol.i
> nc
>   $080528EB
>   $080DCB32  TCONTROL__WNDPROC,  line 1542 of ./include/control.inc
>   $080D456D  TWINCONTROL__WNDPROC,  line 3347 of ./include/wincontrol.inc
>   $08089E9D  TCUSTOMFORM__WNDPROC,  line 918 of ./include/customform.inc
>   $080DBA48  TCONTROL__PERFORM,  line 1014 of ./include/control.inc
>   $080DFD1C  TCONTROL__SETVISIBLE,  line 2977 of ./include/control.inc
>   $08088F0F  TCUSTOMFORM__SETVISIBLE,  line 337 of
>   ./include/customform.inc
> 
> 
> And now for the second:
> 
> [EMAIL PROTECTED] test]$ ./qttest
> OnCreate
> QPainter::begin: Widget painting can only begin as a result of a
> paintEvent QPainter::begin: Widget painting can only begin as a result of
> a paintEvent [FORMS.PP] ExceptionOccurred
>   Sender=Exception
>   Exception=Error
>   Stack trace:
>   $080CB54D  TQTWIDGETSET__DRAWTEXT,  line 157 of qtwinapi.inc
>   $081168A7  DRAWTEXT,  line 181 of ./include/winapi.inc
>   $080F88DC  TCUSTOMLABEL__CALCSIZE,  line 43 of ./include/customlabel.inc
>   $080F89F8  TCUSTOMLABEL__DOAUTOSIZE,  line 68 of
>   ./include/customlabel.inc $080D98A3  TCONTROL__ADJUSTSIZE,  line 50 of
>   ./include/control.inc $080D1236 
>   TWINCONTROL__RESIZEDELAYEDAUTOSIZECHILDREN,  line 1685 of
> ./include/wincontrol.inc
>   $080D8F4B  TWINCONTROL__CMVISIBLECHANGED,  line 5803 of
> ./include/wincontrol.inc
>   $080528EB
>   $080DCB42  TCONTROL__WNDPROC,  line 1542 of ./include/control.inc
>   $080D457D  TWINCONTROL__WNDPROC,  line 3347 of ./include/wincontrol.inc
>   $08089E9D  TCUSTOMFORM__WNDPROC,  line 918 of ./include/customform.inc
>   $080DBA58  TCONTROL__PERFORM,  line 1014 of ./include/control.inc
>   $080DFD2C  TCONTROL__SETVISIBLE,  line 2977 of ./include/control.inc
>   $08088F0F  TCUSTOMFORM__SETVISIBLE,  line 337 of
>   ./include/customform.inc $0808B273  TCUSTOMFORM__SHOW,  line 1460 of
>   ./include/customform.inc
> 
> thanks,
> --
> Felipe Monteiro de Carvalho
> 
> _________________________________________________________________
>      To unsubscribe: mail [EMAIL PROTECTED] with
>                 "unsubscribe" as the Subject
>    archives at http://www.lazarus.freepascal.org/mailarchives

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to