Liegt wohl daran, dass du auf komische Weise auf das zu zeichnende Item zugreifst, bei der Textausgabe dann aber richtig machst, so sollte es gehen:
Delphi-Quellcode:
procedure TForm1.lb_debugDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
Col: TColor;
S: String;
begin
lb_debug.Canvas.Brush.Color := clWhite;
lb_debug.Canvas.Pen.Color := clWhite;
lb_debug.Canvas.Rectangle(Rect);
S := lb_debug.Items[Index];
if S[1] = '<' then
Col := clGreen
else
if S[1] = '>' then
Col := clRed
else
Col := clBlack;
lb_debug.Canvas.Font.Color := Col;
lb_debug.Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, lb_debug.Items[Index]);
end;
Die zwei mit "<--" gekenzeichneten Zeilen kannst du auch in OnCreate der Form oder so verschieben, da diese nicht jedesmal beim Zeichnen aufgerufen werden müssen.
Edit: sorry, hatte mich vertan
MfG Pr0g