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

Karl Brandt pascalive at bol.com.br
Sat Jun 28 16:31:01 EDT 2003


Mattias Gaertner wrote:

>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). 
>  
>
These cases are handled in LM_SETSIZE processing

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






More information about the Lazarus mailing list