Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox) do
begin
if Index = 2 then
begin //bei best. Zeile soll folgendes gelten
Canvas.Brush.Color := clRed;
Canvas.Font.Color := clYellow;
end else //falls gewünscht
Canvas.Pen.Color := clyellow;
if (odSelected in State) then
begin
Canvas.Font.Color := clHighlightText;
Canvas.Brush.Color := clHighlight;
end;
Canvas.FillRect(Rect);
Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, Items[Index]);
end;
end;
Zitat von
toyoman:
und: wenn ich mit der maus klicke werden die farben dargestellt. jedoch nicht beim laden der listbox bzw. beim laden des forms. wie kann ich die listbox IMMER farbig halten?
Wird denn während der Laufzeit die 2 geändert?
if Index = 2 then
Sobald sich der Wert ändert, musst du die Listbox neu zeichnen lassen. z.B per ListBox1.Repaint