Situation: Ich habe eine TComboBoxEx mit mindestens einem der Folgenden:
- Font ist höher als der Windows-Standardfont (z.B. eine größere Schriftgröße oder einfach Comic Sans MS)
- Images.Height > 16
Außerdem hat die TComboBoxEx mindestens zwei Items. (Mit einem einzigen Item gibt es einen anderen Fehler - das Item wird einfach ohne Scrollbar unten abgeschnitten.)
Fehler: Die Dropdown-Liste ist jetzt zu klein für die Items und hat deshalb eine Scrollbar. Der Clientbereich hat eine Höhe von 16*Min(DropDownCount, Items.Count), völlig egal, wie hoch die Items sind. Der Fehler tritt bei einer TComboBox nicht auf.
Frage: Wie kann ich Windows dazu bringen, dass man die eingestellte Anzahl an Items sieht? Oder existiert der Fehler in aktuellen Versionen von Delphi nicht mehr? (Getestet mit 2010.)
Was ich schon probiert habe: Mit dem manuellen Senden der Message CB_SETITEMHEIGHT (weil Delphi das laut Doku unterbindet) keine Veränderung der Höhe der Dropdownliste erreichen. Mit
SendMessage(ComboBoxEx1.Handle, CB_SETITEMHEIGHT, 0, 16);
wird zwar die zu erwartende Anzahl an Items dargestellt, aber die Items sind nicht hoch genug.
Quelltext für ein Minimalbeispiel:
Delphi-Quellcode:
object ComboBoxEx1: TComboBoxEx
Left = 8
Top = 8
Width = 145
Height = 25
ItemsEx = <
item
Caption = 'wuppdi1'
end
item
Caption = 'wuppdi2'
end>
Style = csExDropDownList
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
TabOrder = 0
DropDownCount = 40
end
(Ist möglicherweise derselbe Fehler wie
hier.)