[lazarus] Bug in lcl resizing code and patch for win32

Mattias Gaertner nc-gaertnma at netcologne.de
Sat Jun 28 15:27:43 EDT 2003


On Sat, 28 Jun 2003 21:45:04 +0200
"Micha Nelissen" <mdvpost at hotmail.com> wrote:

> Karl Brandt wrote:
> > Micha Nelissen wrote:
> >
> >> Karl Brandt wrote:
> >>
> >>
> >>> Sometime ago i sent a patch fixing the forms sizes under win32 and
> >>> got surprised to see that things were messed.
> >>> So i  did the  job again!
> >>>
> >>> Attached is a patch that makes the form sizes correct.
> >>>
> >>>
> >>
> >> What was wrong? Those messages should send the same information as
> >> you retrieve via GetClientRect/GetWindowRect.
> >>
> >>
> > In LCL, WindowSize = ClientSize while windows and VCL expect/returns
> > diferent sizes, so is needed  some adjustments.
> 
> That does not explain the WM_MOVE change. The WM_SIZE is defined as such:
> 
> nWidth = LOWORD(lParam);  // width of client area
> nHeight = HIWORD(lParam); // height of client area

Ehh. At the moment the LCL thinks that WM_SIZE contains the bounds of a
control. The ClientArea can be smaller (TGroupBox, TForm with a menu) or in
some cases bigger (TScrollBox). 

 
> Testing shows that those changes provide the same functionality, only
> slower.



Mattias






More information about the Lazarus mailing list