Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ListBox: Farbe von Makierungsumrandung ändern (https://www.delphipraxis.net/98120-listbox-farbe-von-makierungsumrandung-aendern.html)

benst 21. Aug 2007 19:44


ListBox: Farbe von Makierungsumrandung ändern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

ich habe in meinem Programm eine ListBox mit Text in unterschiedlichen Farben. Wenn ich Einträge anklicke, ist die Umrandung teilweise nicht schwarz (hängt von Farbe des Eintrags ab) - ich glaube es ist eine komplementäre Farbe.
Ich hätte aber gerne ausschließlich schwarze Umrandung. Wie kann ich das ändern?

Gruß
Ben
P.S.:Im Anhang findet ihr ein Bild und hier ein bisschen Code:

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
  var LB: TListBox;
begin
  LB := (control as TListBox);
    case Index of
      1: begin
         LB.Canvas.Brush.Color := clRed;
         LB.Canvas.Font.Color := clBlack;
         LB.Canvas.Pen.Color := clWhite;
         end;
      2: begin
         LB.Canvas.Brush.Color := clYellow;
         LB.Canvas.Font.Color := clBlack;
         LB.Canvas.Pen.Color := clWhite;
         end;
[...]
      else
        begin
        LB.Canvas.Brush.Color := clWhite;
        LB.Canvas.Font.Color := clBlack;
        end;
    end;
    LB.Canvas.Rectangle(Rect);
    LB.Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, LB.Items[Index]);
end;

FAlter 21. Aug 2007 19:57

Re: ListBox: Farbe von Makierungsumrandung ändern
 
Hi,

Ich glaube da gibts was namens DrawFocusRect oder so? in Options oder direkt als Property?

Nicht geholfen? Wenn du es manuell zeichnest könntest du, da es die Komplementärfarbe ist, das FocusRect zeichnen - und dann wird es beim nächsten Zeichnen wieder "gelöscht". Nicht sehr elegant, sollte aber funktionieren. Und den gewollten Rand eben manuell zeichnen.

Mfg
FAlter

benst 26. Aug 2007 10:00

Re: ListBox: Farbe von Makierungsumrandung ändern
 
Danke, habe es hinbekommen, wie ich wollte.

Ben

Luckie 26. Aug 2007 10:46

Re: ListBox: Farbe von Makierungsumrandung ändern
 
Und? Verrätst du uns auch deine Lösung?

benst 26. Aug 2007 14:03

Re: ListBox: Farbe von Makierungsumrandung ändern
 
:wink: Sorry, dass hatte ich vergessen zu erwähnen.
Wenn es Code gewesen wäre, dann hätte ich es gepostet, aber ich habe mich entschieden, nicht den Text zu färben, sondern den Hintergrund und dabei besteht dieses Problem nicht.

Gruß
Ben


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 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