![]() |
TComboBox: Farbe des Markierrahmens ändern
Hallo,
wie kann ich die Farbe des Markierrahmens einer ComboBox beim Fokus ändern? |
AW: TComboBox: Farbe des Markierrahmens ändern
Bei XE2 - Über ein angepasste Theme sollte das möglich sein.
|
AW: TComboBox: Farbe des Markierrahmens ändern
Zitat:
Delphi-Quellcode:
procedure TComboBoxFeld.OnComboBoxDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); var i_ItemTop: Integer; ComboBox : TLabeledComboBox; begin //akt. ComboBox auf Variable laden ComboBox := Control as TLabeledComboBox; If odSelected in State then begin //Wenn der Eintrag markiert ist, dann Hintergrund blau und Schriftfarbe weiss ComboBox.Canvas.Brush.Color := clHighlight; ComboBox.Canvas.Font.Color := clHighlightText; end else begin //Hintergrund-Farbe und Font setzen ComboBox.Canvas.Brush.Color := ComboBox.Color; ComboBox.Canvas.Font.Assign(ComboBox.Font); end; //ComboBox-Rect füllen ComboBox.Canvas.FillRect(Rect); //Top der einzelnen Zeilen errechnen i_ItemTop := Rect.Top + ((Rect.Height - abs(ComboBox.Font.Height)) div 2) - 1; //Text ausgeben ComboBox.Canvas.TextOut(Rect.Left + 2, i_ItemTop, ComboBox.Items[Index]); end; |
AW: TComboBox: Farbe des Markierrahmens ändern
Hallo,
vielleicht mit der FrameRect-Methode des Canvas-Objekts.
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); begin with TListBox(Control) do begin Canvas.TextRect(Rect, Rect.Left+1, Rect.Top, Items[Index]); if (odSelected in State) then begin Canvas.Pen.Color:=clRed; Canvas.FrameRect(Rect); end; // if end; // with end; |
AW: TComboBox: Farbe des Markierrahmens ändern
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:42 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-2025 by Thomas Breitkreuz