Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - farbige ComboBox
OliverN_26 - Mo 03.01.11 02:36
Titel: farbige ComboBox
Hi Leute
Ist es möglich "1 Eintrag" in der ComboBox mehrfarbig zu gestalten?
Also NICHT die Zeile - das weiss ich.
also so:
Delphi-Quelltext
1:
| ComboBox1.Items.Strings[index] := 'Das[blau] ist[gelb] ein[rot] Test[grün].'; |
Ich danke euch
elundril - Mo 03.01.11 02:43
Jap, selber färben beim Zeichnen.
lg elundril
OliverN_26 - Mo 03.01.11 03:08
Hi
Ich hab doch geschrieben dass ich weiss wie man "ZEILEN" färbt.
Ich weiss allerdings nicht wie man innerhalb "1 Zeile" die Farbe ändert.
Das bringt mich leider kein Stück weiter.
lg
Martok - Mo 03.01.11 03:48
Da bist ja schon na dran, die Methode ist die gleiche:
Ersten Teil zeichnen, Font.Color wechseln, nächsten Teil, nochmal wechseln etc. Damit du weißt, wo es weiter geht, sollte man die X-Position z.B. per Addition von TextWidth mitzählen.
OliverN_26 - Mo 03.01.11 16:33
Ich danke dir :-) Das war der richtige Tip.
Hier mal der Code falls es jemanden interessieren sollte.
Zur Erläuterung: Ich habe einen Begriff und dann in Klammern einen Wert. Und dieser soll in eine andere Farbe.
Beispiel: Aufträge (21)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with ComboBox1, ComboBox1.Canvas do begin Font.Color := clWhite; Brush.Color := clGreen; FillRect(Rect); TextOut(Rect.Left+2,Rect.Top+1, copy(Items[index],1,Pos('(',Items[index])-1)); Font.Color := clWhite; Brush.Color := clMaroon; TextOut(Rect.Left+2+TextWidth(copy(Items[index],1,Pos('(',Items[index])-1)), Rect.Top+1,copy(Items[index],Pos('(',Items[index]), Length(Items[index]))); end; end; |
danke noch mal und ein frohes neues Jahr :-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!