Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Listview - Auswahl verhindern
Lex - Mo 16.01.06 22:18
Titel: Listview - Auswahl verhindern
Hallo,
ich steh grad auf dem Schlauch...
Ich habe eine Listview (Style Report) und kann die einzelnen Einträge
per Mausklick auswählen.
Das möchte ich nun in bestimmten Fällen verhindern. Wenn der gerade
aktive Eintrag einen bestimmten Wert hat soll es nicht möglich sein
einen anderen Eintrag auszuwählen.
Nur - wie mache ich das? Es gibt kein "OnBeforeSelection" oder sowas.
Kann mir jemand weiterhelfen?
DANKE!
Lex
Narses - Mo 16.01.06 23:12
Moin!
Hm, Vorschlag: merk dir im OnClick, was aktuell ausgewählt ist; beim nächsten OnClick schaust du vor den "normalen" Aktionen, ob dir die neue Auswahl passt; wenn nicht, zurücksetzen auf den letzten Wert. Sollte klappen.
Setz das LiestView im Zweifelsfall auf .Enabled := FALSE; :wink:
cu
Narses
Lannes - Di 17.01.06 01:38
Hallo,
oder nimm das Ereignis OnChanging, das leistet in diesem Zusammenhang oft sehr gute Dienste.
Du kannst z.B. die Tag-Eigenschaft der ListView als Flag nutzen,
entspricht der markierte Eintrag dem Wert, dann auf 1 setzen, sonst auf 0.
Dann kann folgender Code zum Einsatz kommen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| procedure TForm1.ListView1Changing(Sender: TObject; Item: TListItem; Change: TItemChange; var AllowChange: Boolean); begin if ListView1.Tag = 1 then AllowChange := False else AllowChange := True; end; |
Dann kann nur noch wenn ListView.Tag 0 ist, ein anderes Item gewählt werden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!