had to add a little to that last one, it seems windows does not properly draw its highlighted box around it, it maybe its in the LCL and I haven't yet found that ?
but in any case, this code will fix that for the time being..Put that in the CustomComBoBox.CreateParams…. in the CustomCombobox.inc file..
{$IFDEF Windows} if (Params.Style and CBS_SIMPLE)<>0 Then Begin Include(FWinControlFlags, wcfEraseBackground); Params.Style:= Params.Style or $400; //CBS_NOINTEGRALHEIGHT End Else Exclude(FWinControlFlags, wcfEraseBackground); {$IFEND}
place it at the bottom.
Of course If you want broken down csSimple combo boxes you can keep it as is ;)
had to add a little to that last one, it seems windows does not properly draw its highlighted box around it, it maybe its in the LCL and I haven't yet found that ?I think in order to get this accepted in the bug tracker you must put this code into the win32 widgetset, not in TCustomCombobox.CreateParams. The inventors of the LCL provided the widgetset architecture to keep the outermost units free from lots of IFDEFs like this. The TCombobox is implemented in unit StdCtrls, therefore you should put your code into Win32WSStdCtrls.pp which resides in folder lcl/interfaces/win32 of your Lazarus installation. There is a class function TWin32WSCustomCombobox.CreateHandle which seems to be suitable for you code (I did not try it integrate it, though). Probably the same modification should be make with the corresponding file for the WinCE widgetset (in folder lcl/interfaces/wince).
but in any case, this code will fix that for the time being..Put that in the CustomComBoBox.CreateParams…. in the CustomCombobox.inc file..
{$IFDEF Windows} if (Params.Style and CBS_SIMPLE)<>0 Then Begin Include(FWinControlFlags, wcfEraseBackground); Params.Style:= Params.Style or $400; //CBS_NOINTEGRALHEIGHT End Else Exclude(FWinControlFlags, wcfEraseBackground); {$IFEND}
place it at the bottom.
Ok, I can do that and see what happens...had to add a little to that last one, it seems windows does not properly draw its highlighted box around it, it maybe its in the LCL and I haven't yet found that ?I think in order to get this accepted in the bug tracker you must put this code into the win32 widgetset, not in TCustomCombobox.CreateParams. The inventors of the LCL provided the widgetset architecture to keep the outermost units free from lots of IFDEFs like this. The TCombobox is implemented in unit StdCtrls, therefore you should put your code into Win32WSStdCtrls.pp which resides in folder lcl/interfaces/win32 of your Lazarus installation. There is a class function TWin32WSCustomCombobox.CreateHandle which seems to be suitable for you code (I did not try it integrate it, though). Probably the same modification should be make with the corresponding file for the WinCE widgetset (in folder lcl/interfaces/wince).
but in any case, this code will fix that for the time being..Put that in the CustomComBoBox.CreateParams…. in the CustomCombobox.inc file..
{$IFDEF Windows} if (Params.Style and CBS_SIMPLE)<>0 Then Begin Include(FWinControlFlags, wcfEraseBackground); Params.Style:= Params.Style or $400; //CBS_NOINTEGRALHEIGHT End Else Exclude(FWinControlFlags, wcfEraseBackground); {$IFEND}
place it at the bottom.
I have seen the bottom edge issue that you have described but only in my Windows 10 PRO, my Home edition of Windows 10 does not show that missing border line..Mysterious: I have Win10 Home, too.
If you drop a combobox on the form, set the style := csSimple, you can not size it. Save your project, reload the project and now you can size it..Yes indeed. However, it does not resize smoothly, but in steps as if some kind of IntegralHeight would still be active.
If you would like I can forward you my copy of this complete widget file if you wish ?Yes please, I just was wanting to ask for it to make sure that I've got everything. Then I'll apply it to trunk. I also assigned your bug report to myself. On which Laz version will the modified file be based?