AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBox -> Mehrfarbig gestalten

Ein Thema von HolgerCW · begonnen am 24. Apr 2007 · letzter Beitrag vom 1. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 12:23
Hallo zusammen,

gibt es eine Möglichkeit die Werte in einer ComboBox Zwei - oder Mehrfarbig anzuzeigen ???

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 12:26
Ja. Du musst die Eintrage selber zeichnen in dem Ereigniss Hier im Forum suchenOnDrawItem.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 12:36
Oder Komponenten nehmen die über eine art Mini-HTML sowas direkt unterstützen wie die HTML-ComboBox vom Elpack
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#4

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 12:49
Die Lösung von Lucki hört sich schon gut an.

Was muss denn hier dann ergänzt werden:

Delphi-Quellcode:
procedure TForm1.ComboBox1DrawItem(
  Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
begin
 if ComboBox1.text = 'Testthen
 begin
   ComboBox1. ...;
   
  end;
end;
Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 12:54
Ich bin ziemlich sicher, dass man mit der Suche komplett lauffähigen Copy and Waste Code findet hier im Forum.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 13:15
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:
procedure TForm1.ComboBox1DrawItem(
  Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
 farbe: TColor;
begin
 if ComboBox1.text = 'Testthen 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;
Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 13:22
Das Property Style der ComboBox muß schon auf einen Wert vom Typ csOwnerDraw* stehen damit OwnerDraw aufgerufen wird.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#8

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 13:57
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
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#9

Re: ComboBox -> Mehrfarbig gestalten

  Alt 24. Apr 2007, 17:45
Zitat von HolgerCW:
wie kann ich es denn jetzt realisieren, das jeder Wert in der Combobox abgefragt wird ...
So z.B.
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] = 'Testthen farbe:= clGray;
  if ComboBox1.Items[Index] = 'Test1then farbe:= clNavy;
  if ComboBox1.Items[Index] = 'Test2then 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;
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#10

Re: ComboBox -> Mehrfarbig gestalten

  Alt 25. Apr 2007, 07:41
Ja super,

danke ...

Das klappt

Gruss

Holger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:25 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