AGB  ·  Datenschutz  ·  Impressum  







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

Text von Auswahlfeld der Combobox einfärben

Ein Thema von FBrust · begonnen am 29. Jul 2005 · letzter Beitrag vom 29. Jul 2005
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

Text von Auswahlfeld der Combobox einfärben

  Alt 29. Jul 2005, 10:17
Hallo,

ich möchte in einer Combobox ein bestimmtes Item farblich markieren, alle anderen sollen weiterhin die Font-Farbe der Combobox behalten. Die Combobox wird zur Laufzeit über eine Schleife mit Texten gefüllt. Wenn nun einer dieser Werte ein bestimmtes Kriterium erfüllt, soll der Text in dem "Ausklappfeld" z. b. blau dargestellt werden, der Hintergrund soll weiß bleiben.


Ich habe schon (testweise, da fehlt noch die if-Bedingung für das Kriterium)
cbEn.Canvas.Font.Color := clGreen; versucht, aber das wird geflissentlich ignoriert...


und cbEn.Font.Color ändert ja die Farbe der ganzen Combobox.


Hat vielleicht jemand einen Tip?


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#2

Re: Text von Auswahlfeld der Combobox einfärben

  Alt 29. Jul 2005, 10:43
Du musst den style der combobox auf csOwnerDrawFixed stellen und im event OnDrawItem kannst du dann prüfen, obs der Eintrag ist, der mit dem Text übereinstimmt. (wird index übergeben) Hier kannst du dann die Einfärbung realisieren.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
freak24
(Gast)

n/a Beiträge
 
#3

Re: Text von Auswahlfeld der Combobox einfärben

  Alt 29. Jul 2005, 10:45
Das sieht ungefähr so aus
Delphi-Quellcode:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
 if Kriterium then
  Combobox1.Canvas.Font.Color := clBlue
 else
  Combobox1.Canvas.Font.Color := Combobox1.font.color;
 Combobox1.Canvas.FillRect(rect);
 combobox1.Canvas.TextOut(rect.Left,rect.Top,combobox1.Items.Strings[index])
end;
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Text von Auswahlfeld der Combobox einfärben

  Alt 29. Jul 2005, 11:10
Dann wirst du selber das Zeichnen übernehmen müssen. Ist ganz ähnlich wie bei Listboxen, aber um das Zeichnen wirst du nicht herumkommen.

CBS_OWNERDRAWFIXED oder CBS_OWNERDRAWVARIABLE setzen und dann WM_DRAWITEM abfangen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:16 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