![]() |
Re: Bestimmte Zeilen einer TListbox färben
Ich würde mal in Betracht ziehen, die Objects-Methode zu benutzen. Die ist etwas versteckt (in den Items).
Delphi-Quellcode:
-> F1
Listbox1.Items.AddObject()
Da kann man schlicht etwas hinterlegen. In diesem Fall :
Delphi-Quellcode:
Record
Anzeige : boolean; end; |
Re: Bestimmte Zeilen einer TListbox färben
:( geht nicht!!! hier nochma ein code :
Delphi-Quellcode:
implementation
{$R *.DFM} procedure ZeileFaerben(Zeile:integer;Farbe:integer;Listbox1:TListbox; Index:Integer;Rect:TRect); begin if Index<>Zeile then Farbe:=clBlack; Listbox1.Canvas.Brush.Color:=clWhite; Listbox1.Canvas.Pen.Color:=Farbe; Listbox1.Canvas.FillRect(Rect); Listbox1.Canvas.Font.Color:=Farbe; Listbox1.Canvas.TextOut(Rect.Left,Rect.Top,Listbox1.Items[Index]); end; procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin if Control is TListbox then begin TListbox(Control).Canvas.FillRect(Rect); if TListbox(Control).Items.Strings[Index] = 'verliehen' then TListbox(Control).Canvas.Font.Color := clRed else if odSelected in State then TListbox(Control).Canvas.Font.Color := graphics.clHighlightText else TListbox(Control).Canvas.Font.Color := graphics.clBtnText; TListbox(Control).Canvas.TextOut(Rect.Left, Rect.Top, TListbox(Control).Items[Index]); end; end; end. |
Re: Bestimmte Zeilen einer TListbox färben
Delphi-Quellcode:
Besteht der Eintrag in der Listbox auch nur aus "verliehen" oder
TListbox(Control).Canvas.FillRect(Rect);
if TListbox(Control).Items.Strings[Index] = 'verliehen' then TListbox(Control).Canvas.Font.Color := clRed ist "verliehen" nur eine Bestandteil des Eintrages? Und nocht etwas "geht nicht" ist eine nicht sehr hilfreiche Fehlerbeschreibung. Grüße Klaus |
Re: Bestimmte Zeilen einer TListbox färben
Es geht um eine "Verliehen" funktion für meine Filmdatenbank.da ist dann halt sag ich mal der Film : Oceans 11 Status: Verliehen.
In der Zeil eist halt das Wort verliehen drin. Wenn das in der Ganzen Listbox der Fall ist, soll jeweils die Zeile mit dem wort"verliehen" rote schreift erhalten. hört sich ja simpel an, isses nur leider nicht =( |
Re: Bestimmte Zeilen einer TListbox färben
kurze Nebenfrage : gelingt es Dir, überhaupt eine Zeile der Listbox zu färben ? Die paar Zeilen könnten nämlich von mir sein, oder von Luckie. Der hatte mir mal bei sowas geholfen.
wg. roter Kasten : doch, ist einfach. |
Re: Bestimmte Zeilen einer TListbox färben
ich shcaffe es lediglich die schriftfarbe für alle zeilen der listbox zu färben. so ein "roter kasten" wäre auch eine hilfreiche sache.das klingt in meinen ohren aber noch schwerer =(
|
Re: Bestimmte Zeilen einer TListbox färben
Wenn das Wort mit anderen Wörtern in der Zeile steht kannst Du es nicht
so
Delphi-Quellcode:
abfragen.
if TListbox(Control).Items.Strings[Index] = 'verliehen' then
Dann solltest Du mit pos(substring,String) anfangen. z.B. so:
Delphi-Quellcode:
Grüße
if pos('verliehen',TListbox(Control).Items.Strings[Index]) > 0 then
// Zeile färben Klaus |
Re: Bestimmte Zeilen einer TListbox färben
hab ich jetzt auch probiert, geht aber auch nicht! der färbt die zeilen einfach garnicht!ich hatte es mal mit einer forschleife probiert sodass er bei der listbox1 von zeile 0 bis litbox1.items.count (letzten eintrag der listbox) nach dem wort"verliehen" sucht und diese zeile dann färben soll1 geht aber überhaupt nicht!
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState); begin if Control is TListbox then begin TListbox(Control).Canvas.FillRect(Rect); if pos('verliehen',TListbox(Control).Items.Strings[Index]) > 0 then TListbox(Control).Canvas.Font.Color := clRed else if odSelected in State then TListbox(Control).Canvas.Font.Color := graphics.clHighlightText else TListbox(Control).Canvas.Font.Color := graphics.clBtnText; TListbox(Control).Canvas.TextOut(Rect.Left, Rect.Top, TListbox(Control).Items[Index]); end; end; |
Re: Bestimmte Zeilen einer TListbox färben
Zitat:
Wenn der Style der Listbox(im Object Inspector) auf lbStandard steht (default) dann wird das Ereignis nicht ausgelöst. Grüße Klaus |
Re: Bestimmte Zeilen einer TListbox färben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:18 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