![]() |
ComboBox -> Mehrfarbig gestalten
Hallo zusammen,
gibt es eine Möglichkeit die Werte in einer ComboBox Zwei - oder Mehrfarbig anzuzeigen ??? Gruss Holger |
Re: ComboBox -> Mehrfarbig gestalten
Ja. Du musst die Eintrage selber zeichnen in dem Ereigniss
![]() |
Re: ComboBox -> Mehrfarbig gestalten
Oder Komponenten nehmen die über eine art Mini-HTML sowas direkt unterstützen wie die HTML-ComboBox vom
![]() |
Re: ComboBox -> Mehrfarbig gestalten
Die Lösung von Lucki hört sich schon gut an.
Was muss denn hier dann ergänzt werden:
Delphi-Quellcode:
Gruss
procedure TForm1.ComboBox1DrawItem(
Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin if ComboBox1.text = 'Test' then begin ComboBox1. ...; end; end; Holger |
Re: ComboBox -> Mehrfarbig gestalten
Ich bin ziemlich sicher, dass man mit der Suche komplett lauffähigen Copy and Waste Code findet hier im Forum.
|
Re: ComboBox -> Mehrfarbig gestalten
Habe mal gesucht und das heir gefunden:
Habe dabei festgestellt, das das Programm nie in das Ereignis reinspringt. Wie kann ich das realisieren ?
Delphi-Quellcode:
Gruss
procedure TForm1.ComboBox1DrawItem(
Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var farbe: TColor; begin if ComboBox1.text = 'Test' then farbe:= clmaroon; with ComboBox1, ComboBox1.Canvas do begin Font.Color:= clblack; // SchriftFarbe Brush.Color:= farbe; // HintergrundFarbe FillRect(Rect); // Hintergrund zeichnen TextOut(Rect.Left+5, Rect.Top+1, Items[index]); // Textausgabe end; end; Holger |
Re: ComboBox -> Mehrfarbig gestalten
Das Property Style der ComboBox muß schon auf einen Wert vom Typ csOwnerDraw* stehen damit OwnerDraw aufgerufen wird.
|
Re: ComboBox -> Mehrfarbig gestalten
Alles klar,
jetzt klappt es, wie kann ich es denn jetzt realisieren, das jeder Wert in der Combobox abgefragt wird und dann z.b. wenn ein Wert in der ComboBox 'Test' hiesst die Farbe grau ist und wenn der Wert 'Test2' heisst der Wert blau ist. Also losgelöst vom Index ??? Vorher fülle ich die Combobox natürlich mit diesen Werten 'Test' und 'Test2' Gruss Holger |
Re: ComboBox -> Mehrfarbig gestalten
Zitat:
Delphi-Quellcode:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState); var farbe: TColor; begin farbe := ComboBox1.Color; //Hintergrundfarbe für alle Items, die nicht eine spezielle Farbe haben //--'Inhalt' der Zeile abfragen und ggf. spezielle Farbe zuweisen if ComboBox1.Items[Index] = 'Test' then farbe:= clGray; if ComboBox1.Items[Index] = 'Test1' then farbe:= clNavy; if ComboBox1.Items[Index] = 'Test2' then farbe:= clYellow; //-- Zeile mit der entsprechenden Farbe zeichen; standard=Combobox-Farbe (oder eine beliebige andere) with ComboBox1, ComboBox1.Canvas do begin Font.Color:= clblack; // SchriftFarbe Brush.Color:= farbe; // HintergrundFarbe FillRect(Rect); // Hintergrund zeichnen TextOut(Rect.Left+5, Rect.Top+1, Items[index]); // Textausgabe end; end; |
Re: ComboBox -> Mehrfarbig gestalten
Ja super,
danke ... Das klappt Gruss Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 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 by Thomas Breitkreuz