Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TComboBoxEx mit höherer Schrift hat immer eine Scrollbar (https://www.delphipraxis.net/209708-tcomboboxex-mit-hoeherer-schrift-hat-immer-eine-scrollbar.html)

Redeemer 12. Jan 2022 12:07

TComboBoxEx mit höherer Schrift hat immer eine Scrollbar
 
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
Delphi-Quellcode:
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.)

Uwe Raabe 12. Jan 2022 12:19

AW: TComboBoxEx mit höherer Schrift hat immer eine Scrollbar
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mit Delphi 11 sieht das so aus:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz