![]() |
TListbox - Focus - Highlight
Hallo,
eigentlich was ganz Primitives: Auf einer Form befinden sich u.A. zwei Komponenten: ein DBGrid und eine Listbox. Welche davon gerade den Focus hat, soll auch optisch sichtbar sein. Beim DBGrid ist das ja einfach mit den DBGridOptions, aber bei der Listbox hab ich ein bischen Verständnisprobleme. Wenn die Listbox einmal den Fokus erhalten hat, und danach wieder verliert, sollte nach meinem Verständnis durch
Code:
die mit HighLightColor aktive Zeile wieder "normal" dargestellt werden. Ist aber nicht. Ist das ein VCL-Bug, oder WAD, oder sonstwas?
ListBox.ItemIndex := -1
So lässt sich das Problem zwar lösen, aber elegant geht irgendwie anders.
Delphi-Quellcode:
PlayList ist die TListBox. Was noch seltsam oder zumindest nicht auf Anhieb logisch ist: Wenn
procedure ResetPlayList;
var Items: TStrings; i: integer; begin Items := TStringList.Create; try Items.AddStrings(PlayList.Items); PlayList.Items.Clear; for i := 0 to Pred(Items.Count) do PlayList.Items.Add(Items[i]); PlayList.ItemIndex := -1; finally Items.Free; end; Options := TitelGrid.Options + [dgAlwaysShowSelection]; TitelGrid.Options := Options; end;
Code:
dann funktioniert nicht mal das. AutoComplete muss also immer false sein.
AutoComplete = True
|
AW: TListbox - Focus - Highlight
Warum nimmst Du nicht die TListView-Komponente. Diese hat die Property HideSelection, welche auf true gesetzt ist, damit die Markierung verschwindet, wenn die ListView nicht den Fokus hat.
Das DBGrid setzt Du im Objektinspector unter Options auf dgAlwaysShowSelection auf false. Dann brauchst Du keine eizige Zeile Code um das Verhalten zu erreichen, welches Du möchtest. Heisst auf Deutsch: Kein Fokus -> keine Selektion sichtbar. |
AW: TListbox - Focus - Highlight
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz