Hallo ihrs
ich hab folgenden Code im OnDrawItem einer Listbox:
Delphi-Quellcode:
lb_debug.Canvas.Brush.Color := clWhite;
if Pos('<', lb_debug.Items.ValueFromIndex[ lb_debug.ItemIndex]) = 1 then
lb_debug.Canvas.Font.Color := clGreen
else if Pos('>', lb_debug.Items.ValueFromIndex[ lb_debug.ItemIndex]) = 1 then
lb_debug.Canvas.Font.Color := clRed
else
lb_debug.Canvas.Font.Color := clBlack;
TopDif := (lb_debug.ItemHeight div 2) - (Canvas.TextHeight(#32) div 2);
lb_debug.Canvas.TextRect(Rect, Rect.Left, Rect.Top + TopDif, lb_debug.Items[Index]);
(aus der Suche hier im Board
)
Es geht darum, die Zeilen nach einem Kriterium einzufärben. Wenn das erste Zeichen also ein > ist, solls Rot sein, bei < solls Grün sein. Sonst schwarz.
Nur klappt das ganze nicht so richtig.
Erst ist alles grün, und färbt sich dann nur richtig ein, wenn ich die Zeile direkt anklicke.
Habt ihr ne Idee?
tyler