Delphi-PRAXiS
Seite 1 von 2  1 2      

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 ComboBox: Breite der DropDown-Liste ändern (https://www.delphipraxis.net/83933-combobox-breite-der-dropdown-liste-aendern.html)

Helmi 8. Jan 2007 19:16


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 Code von den Schweizern.

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 Code.
Wenn ich nun die Zeile:
Delphi-Quellcode:
ComboBox1.Perform(CB_SETDROPPEDWIDTH, PIXEL_WIDTH, 0);
in den oberen Code bei "ComboBox1DrawItem" als letzte Zeile einfüge, dann funktioniert das Ändern der Breite nicht.
Die DropDown-Liste bleibt gleich groß.

Geht der Code nicht, weil
Delphi-Quellcode:
Combobox1.Style := csOwnerDrawFixed;
gemacht wurde?
Delphi-Quellcode:
case Antwort of
  ja : Wie könnt ich das anders realisieren?
  nein: Was mach ich falsch?
end;
:-D

thkerkmann 8. Jan 2007 21:02

Re: ComboBox: Breite der DropDown-Liste ändern
 
Hi,

nein, mach es nur einmal im FormActivate, das sollte eigentlich reichen.

Gruss

Helmi 8. Jan 2007 21:48

Re: ComboBox: Breite der DropDown-Liste ändern
 
Zitat:

Zitat von thkerkmann
nein, mach es nur einmal im FormActivate, das sollte eigentlich reichen.

Hallo,

das nutzt leider nichts.
Bleibt gleich groß

Lannes 8. Jan 2007 22:20

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);

Helmi 8. Jan 2007 22:34

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.

Lannes 8. Jan 2007 22:47

Re: ComboBox: Breite der DropDown-Liste ändern
 
Hallo,

ja, hatte in einem neuen Projekt die beiden Tipps der Schweitzer zusammengebaut.

Helmi 8. Jan 2007 23:03

Re: ComboBox: Breite der DropDown-Liste ändern
 
kannst mir mal dein projekt geben?

MacGuyver 9. Jan 2007 08:35

Re: ComboBox: Breite der DropDown-Liste ändern
 
Moin Lü :hi:

Ich habe einfach mal eine ComboBox genommen und nur das Teil eingebaut:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  cbx.Perform(CB_SETDROPPEDWIDTH, 200, 0);
end;
So klappt das schon.

Helmi 9. Jan 2007 08:49

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]

MacGuyver 9. Jan 2007 09:25

Re: ComboBox: Breite der DropDown-Liste ändern
 
:wall:
Man, man, man.
Da muss man erst einmal drauf kommen:

Delphi-Quellcode:
  With ComboBox1.Items Do
  Begin
    Add('################################');
    ComboBox1.Perform(CB_SETDROPPEDWIDTH, PIXEL_WIDTH, 0);
    Clear;
  End;
Vor Perform muss man einen Eintrag in Items so lang machen, dass es mindestens so lang ist, wie die Liste dann breit sein soll.


Viel Spaß noch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 Uhr.
Seite 1 von 2  1 2      

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