[lazarus] Win32: moving and message handling

Mattias Gaertner nc-gaertnma at netcologne.de
Mon Jul 7 04:33:36 EDT 2003


On Sun, 06 Jul 2003 19:02:28 -0300
Karl Brandt <pascalive at bol.com.br> wrote:

> Mattias Gaertner wrote:
> > On Sun, 06 Jul 2003 15:56:24 +0200
> > Micha Nelissen <M.Nelissen at student.tue.nl> wrote:
> > 
> > 
> >>Hi,
> >>
> >>I still have to object again the latest patch for WM_MOVE handling, the 
> >>previous one was better. That is because the internal variables haven't 
> >>been updated when WM_MOVE is sent, only after it has been processed they
> >
> >>are updated. So when GetWindowRect is called it retrieves the wrong 
> >>values. So use the information in the LParam at least:
> >>
> >>XPos := LoWord(LParam);
> >>YPos := HiWord(LParam);
> >>
> >>(Maybe compensate for client rect ourselves, but certainly don't use the
> >
> >>GetWindowRect / GetClientRect functions). This also explains the weird 
> >>behaviour of maximizing: The form stays the same size because 
> >>GetClientRect returns the previous client size, not the current one.
> > 
> > 
> > The maximizing should now be better.
> > 
> 
> Now the maximizing works, but some controls are not show. See examples.

Maybe this had to do with your GetWindowRelativePosition.

 
> Sorry if i missed something,but with these changes TLMSize.SizeType is 
> always Size_SourceIsInterface. How can the form update the FWindowState?

Size_SourceIsInterface is now a flag added to WParam.
The other states are not yet implemented in the gtk-interface and the LCL
does not yet react properly to the states.


Mattias






More information about the Lazarus mailing list