Zitat von
toms:
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListBox) do
begin
if Index = 2 then //bei best. Zeile soll folgendes gelten
begin
Canvas.FillRect(Rect);
Canvas.Brush.Color := clRed;
Canvas.Pen.Color := clWhite;
end
else
begin
//falls gewünscht
Canvas.FillRect(Rect);
Canvas.Brush.Color := clWhite;
Canvas.Pen.Color := clBlack;
end;
Canvas.Font.Color := clWindowText; // <- diese Zeile noch hinzufügen. Dann ist die Schrift nicht mehr "weiss"
Canvas.TextRect(Rect, Rect.Left + 1, Rect.Top + 1, Items[Index]);
end;
end;
stimmt, aber jetzt müsst ich noch die Markierte Zeile wieder markieren. Normalerweise ist das glaub ich dunkelblau?
Die ist jetzt transparent und somit sieht man relativ schlecht welche Zeile ausgewählt ist. Der Rest passt schon ganz gut muss ich sagen!
Verwende Vista hier und in der Firma XP. Die Auswirkungen waren bei beiden Systemen die gleichen.