AGB  ·  Datenschutz  ·  Impressum  







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

Wie ein TComboBox Hintergrundfarbe ändern ?

Ein Thema von madina · begonnen am 2. Mär 2009 · letzter Beitrag vom 4. Mär 2009
Antwort Antwort
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#1

Wie ein TComboBox Hintergrundfarbe ändern ?

  Alt 2. Mär 2009, 19:41
Hallo,

wie kann ich in einem TComboBox die jede 2. Hintergrundfarbe ändern ?
z.B.:
1.Eintrag Hintergrundfarbe weiß
2.Eintrag Hintergrundfarbe rot
3.Eintrag Hintergrundfarbe weiß
4.Eintrag Hintergrundfarbe rot
...usw

mfg
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Wie ein TComboBox Hintergrundfarbe ändern ?

  Alt 2. Mär 2009, 21:06
Hallo madina,

im OnDrawItem Event hinterlegst du folgendes:
Delphi-Quellcode:
procedure TForm1.Combobox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var meine_Farbe: TColor;
begin
  meine_Farbe := ComboBox1.Color;

  with ComboBox1, ComboBox1.Canvas do begin
    if Index mod 2 = 0 then
    begin
      meine_Farbe := clWhite;
      Font.Color:= clblack;
      Brush.Color:= meine_Farbe;
      FillRect(Rect);
      TextOut(Rect.Left+5, Rect.Top+1, Items[index]);
    end
    else
    begin
      meine_Farbe := clRed;
      Font.Color:= clblack;
      Brush.Color:= meine_Farbe;
      FillRect(Rect);
      TextOut(Rect.Left+5, Rect.Top+1, Items[index]);
    end;
  end;
end;
Und nicht vergessen den Style der Combobox auf csOwnerDrawFixed zu setzen.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
madina

Registriert seit: 1. Nov 2005
153 Beiträge
 
#3

Re: Wie ein TComboBox Hintergrundfarbe ändern ?

  Alt 4. Mär 2009, 10:32
Hallo,

es fuktioniert danke.

Leider ist meine blaue Markierung verschwunden, wie konnte ich dies wieder kriegen?

mfg
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

Re: Wie ein TComboBox Hintergrundfarbe ändern ?

  Alt 4. Mär 2009, 10:36
Schau Dir mal den State-Parameter an, da steht das drin, Du müsstest das beim Zeichnen dann mit berücksichtigen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Wie ein TComboBox Hintergrundfarbe ändern ?

  Alt 4. Mär 2009, 10:52
Hatte es jetzt schon geschrieben, Lerneffekt ist halt dadurch nur bei mir wirksam:
Delphi-Quellcode:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  FontColor,
  BackColor : TColor;
begin
  if odSelected in State then begin
    FontColor := clHighlightText;
    BackColor := clHighlight;
  end else if (Index mod 2 = 0) then begin
    FontColor := clBlack; // clWindowText
    BackColor := clWhite; // clWindow
  end else begin
    FontColor := clWhite;
    BackColor := clRed;
  end;

  with ComboBox1, ComboBox1.Canvas do begin
    Font.Color:= FontColor;
    Brush.Color:= BackColor;
    FillRect(Rect);
    TextOut(Rect.Left+5, Rect.Top, Items[index]);
  end;
end;
  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 12:03 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