Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.018 Beiträge
 
Delphi 2009 Professional
 
#1

TComboBoxEx mit höherer Schrift hat immer eine Scrollbar

  Alt 12. Jan 2022, 12:07
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.)
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat