Wieder mal etwas wo ich 'ne viertel Stunde meines Lebens damit vergeudet habe, weil ich etwas schon zig mal gemacht habe und wo es dieses mal plötzlich nicht klappt.
Und zwar geht es drum den Fokus aus der ListBox zu entfernen, was ich übrigens schon einige Male gemacht habe. Anscheinend nur zufällig richtig.
Überschreibe ich den Fokus mit DrawFocusRect vor Canvas.TextRect, bleibt er sichtbar, mache ich es danach, ist er weg. Anscheinend zeichnet TextRect den Fokus. Nur steht in der
OH nichts von einem Flag der das bewirkt. Weiß einer mehr?
Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TListbox) do
begin
//if odFocused in State then Canvas.DrawFocusRect(Rect); //klappt nicht
Canvas.TextRect(Rect, Rect.Left, Rect.Top, Items[Index]);
if odFocused in State then Canvas.DrawFocusRect(Rect); //klappt
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin //Beispielfüllung
ListBox1.Style := lbOwnerDrawFixed;
for i := 0 to 10 do
ListBox1.Items.Add(DateTimeToStr(Now));
end;