![]() |
ComboBox: Breite der DropDown-Liste ändern
Hallo Mädels :mrgreen: ,
ich möchte mehrere Spalten in einer ComboBox anzeigen lassen und hab dafür den ![]() Das funktioniert auch bestens. Nur möchte ich auch die Breite der DropDown-Liste der ComboBox ändern. Dafür gibt es von den Schweizern diesen ![]() Wenn ich nun die Zeile:
Delphi-Quellcode:
in den oberen Code bei "ComboBox1DrawItem" als letzte Zeile einfüge, dann funktioniert das Ändern der Breite nicht.
ComboBox1.Perform(CB_SETDROPPEDWIDTH, PIXEL_WIDTH, 0);
Die DropDown-Liste bleibt gleich groß. Geht der Code nicht, weil
Delphi-Quellcode:
gemacht wurde?
Combobox1.Style := csOwnerDrawFixed;
Delphi-Quellcode:
:-D
case Antwort of
ja : Wie könnt ich das anders realisieren? nein: Was mach ich falsch? end; |
Re: ComboBox: Breite der DropDown-Liste ändern
Hi,
nein, mach es nur einmal im FormActivate, das sollte eigentlich reichen. Gruss |
Re: ComboBox: Breite der DropDown-Liste ändern
Zitat:
das nutzt leider nichts. Bleibt gleich groß |
Re: ComboBox: Breite der DropDown-Liste ändern
Hallo,
im OnCreate der Form in der Reihenfolge funktioniert es bei mir:
Delphi-Quellcode:
const
PIXEL_WIDTH = 200; begin Combobox.Style := csOwnerDrawFixed; with Combobox.Items do begin Add('first;second;third;'); Add('column1;column2;column3;'); end; ComboBox.Perform(CB_SETDROPPEDWIDTH, PIXEL_WIDTH, 0); |
Re: ComboBox: Breite der DropDown-Liste ändern
Hallo,
hattest du auch was im OnDrawItem drin? Ich hatte deinen Code getestet - nur hat sich nichts verändert. Es bleibt so groß wie die Combobox ist. |
Re: ComboBox: Breite der DropDown-Liste ändern
Hallo,
ja, hatte in einem neuen Projekt die beiden Tipps der Schweitzer zusammengebaut. |
Re: ComboBox: Breite der DropDown-Liste ändern
kannst mir mal dein projekt geben?
|
Re: ComboBox: Breite der DropDown-Liste ändern
Moin Lü :hi:
Ich habe einfach mal eine ComboBox genommen und nur das Teil eingebaut:
Delphi-Quellcode:
So klappt das schon.
procedure TForm1.FormCreate(Sender: TObject);
begin cbx.Perform(CB_SETDROPPEDWIDTH, 200, 0); end; |
Re: ComboBox: Breite der DropDown-Liste ändern
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
anbei mal ein Testprogramm zusammengesetzt aus den Codes der Schweizern und so gehts nicht! [EDIT] Jetzt hab ich es rausgefunden - man kann die DropDown-Liste nicht kleiner machen als das ComboBox.Width ist - größer kein Problem! [/Edit] |
Re: ComboBox: Breite der DropDown-Liste ändern
:wall:
Man, man, man. Da muss man erst einmal drauf kommen:
Delphi-Quellcode:
Vor Perform muss man einen Eintrag in Items so lang machen, dass es mindestens so lang ist, wie die Liste dann breit sein soll.
With ComboBox1.Items Do
Begin Add('################################'); ComboBox1.Perform(CB_SETDROPPEDWIDTH, PIXEL_WIDTH, 0); Clear; End; Viel Spaß noch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz