TListView - OnFocusItemChange
-
Hi!
Ich habe da ein ganz normales TListView im vsReport-Style mit 2 Spalten. Nun gibt es da ja eine ganz besondere Zeile (bzw. Item) - nämlich TListView::ItemFocused. Auch im multiselect-Style. Ich möchte gerne mitbekommen, wann diese Eigenschaft sich ändert. Wisst ihr, wie das gehen könnte?
Mein Programm ist ein kleiner MP3-Player, und das ListView stellt die Playlist dar. Das momentan gespielte Lied soll eben gerade das ItemFocused-Item sein. Zusätzlich soll noch erreicht werden, dass diese Zeile in rot erscheint. Aber das steht auf einem anderen Blatt.
-
Hallo
letztendlich auch über TListView::OnSelectItem
bis bald
akari
-
Hmmm. Ich fürchte, ich blicke das Verhalten vom ListView nicht so ganz, wenn MultiSelect auf true gesetzt ist. Wenn man jetzt mehrere anwählt, was ist denn dann das ItemFocused? Kannst du mir da auf die Sprünge helfen?
EDIT: Ich sehe gerade, dass es OnSelectItem bei mir gar nicht gibt...

-
Das liegt dann wohl am BCB 3...
Ich denke, dass ich mir dann den Hinweis auf Selected und SelCount sparen kann.AFAIK ist TListView nur eine Kapselung der Windows Komponente ListView.
Vielleicht kann man Dir im WinAPI-Forum sagen, welche Events Du abfangen mußt...
-
Hallo
BCB-Hilfe schrieb:
TCustomListView::OnSelectItem
Das Ereignis OnSelectItem tritt ein, wenn ein Element in der Listenansicht ausgewählt wird.
__property TLVSelectItemEvent OnSelectItem = {read=FOnSelectItem, write=FOnSelectItem};
Beschreibung
Mit OnSelectItem lassen sich Aktionen ausführen, wenn ein Element ausgewählt wird.
Du must einfach das im Eventparameter übergebene Item mit dem Item in TListView::ItemFocused vergleichen, wenns übereinstimmt wurde ein Item fokussiert.
Wenn du dir jeweils die letzten fokusierten Items zwischenspeicherst, kannst du auch herausfinden welches Item den Fokus verliert.
Allerdingsweiß ich nicht was passiert wenn innerhalb zweier bereits selektierter Items der Fokus vertauscht wird.
Sollte das alles nicht reichen, must du wohl von TListView ableiten und selber so einen Event einbauen.
bis bald
akari