Delphi/Lazarus: Mit ENTF-Taste markierte Einträge aus ListView löschen
Tipp von Delphianer | 04.10.2013 um 11:06
Wenn wir in Delphi oder Lazarus eine TListView mit einigen markierten Einträgen haben und die Taste "DEL" bzw. "ENTF" drücken, passiert zunächst einmal gar nichts.
Damit wir durch diese Taste alle markierten Einträge aus der ListView löschen können, müssen wir zunächst nämlich folgenden Code zum OnKeyDown Event der ListView hinzufügen:
procedure Tprog.ListView1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); var i: integer; begin if key = $2E then begin ListView1.Items.BeginUpdate; for i := ListView1.Items.Count - 1 downto 0 do if ListView1.Items[i].Selected then ListView1.Items.Delete(i); ListView1.Items.EndUpdate; end; end;
Zunächst schauen wir nach, welche Taste gedrückt wurde. Sollte die Entfernen-Taste (hat den Wert $2E) gerückt worden sein, müssen wir alle Einträge, die aktuell markiert (selected) sind löschen.
Wichtig ist hier, dass wir die Einträge rückwärts (downto) durchgehen. Wir gehen schließlich alle Items der ListView nacheinander durch und wenn wir zu Beginn schon einige Einträge gelöscht haben, stimmen die Indices der Items überhaupt nicht mehr und wir bekommen eine Fehlermeldung.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
Delphi/Lazarus: Mit STRG+A in ListView alles markieren
Tipp | 0 Kommentare
Delphi/Lazarus: Markierte Items aus ListBox mit ENTF-Taste löschen
Tipp | 0 Kommentare
Lazarus: FormDropFiles einer bestimmten ListView zuordnen
Tutorial | 0 Kommentare
Delphi/Lazarus: ListView - PopupMenü nur anzeigen, wenn ein Eintrag ausgewählt ist
Tipp | 0 Kommentare
Mehrere Texte gleichzeitig ersetzen
Tutorial | 0 Kommentare
MySQL: Aktuelles Datum oder Zeit in Spalte schreiben
Tutorial | 0 Kommentare
MySQL: Daten aus Tabelle löschen - Unterschied zwischen TRUNCATE, DELETE und DROP
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.