[lazarus] ComboBox problems

Karl Brandt pascalive at bol.com.br
Thu Aug 14 13:03:57 EDT 2003


Mattias Gaertner wrote:
> Karl Brandt <pascalive at bol.com.br> wrote:
> 
>>   Height is set to 100
>>   WM_SIZE message with parameter = 100
>>   Default window proc is called
>>      Height is modified to 21
>>      a new WM_SIZE message is sent with parameter = 21
>>      LCL is updated with Height = 21
>>   Default window proc finishes and returns to WindowProc
>>   LCL is updated with Height = 100
>>   Now we have diferents sizes between LCL and win32
>>with TWin32Object.SetComboMinDropDownSize  the height goes to more then 
>>1000 easily. This is not noted because win32 ignores it and adjust the 
>>dropdown according to the number of items
>>
>>I see the following solutions
>>1) Call DefWindowproc after sending the message to LCL
>>    But this can affect other messages/controls
>>2) Implements a TCustomComboBox.WMSize proc that retrieves the 
>>current/real size from interface and call inherited with updated value
>>3) sends a WM_SIZE message with correct value -> did in the patch
> 
> 
> The 3) is right. Whenever the LCL or the interface changes the height, a
> WM_SIZE message should be sent to tell the other.
> 
The downside of this approach is that the LCL is asked
  three times to change the height each time the size is updated in 
interface.
In the above example changes to 21 -> 100 -> 21
What do you,and other developers, think about 1) and 2)?

karl






More information about the Lazarus mailing list