![]() |
ListView : Zugriffverletzung beim Löschen
Hi Leutz,
mit der Code ..
Delphi-Quellcode:
wird die selektierte Zeile gelöscht.
If ListView1.Items.Item[ListView1.ItemIndex].Selected then
ListView1.Items.Item[ListView1.ItemIndex].Delete; Aber wenn nichts selektiert ist dürfte es doch nicht ausführen oder ? Weil da kommt dann eine Zugriffverletzung. |
Re: ListView : Zugriffverletzung beim Löschen
Dann erweiter die if Abfrage dochj einfach auf ListView1.SelCount = 1
|
Re: ListView : Zugriffverletzung beim Löschen
Hallo,
Zitat:
Delphi-Quellcode:
auf
If ListView1.Items.Item[ListView1.ItemIndex].
|
Re: ListView : Zugriffverletzung beim Löschen
Moin Jens,
wenn man nun aber die Abfrage auf ItemIndex vor die Selected Abfrage legt (mit AND verknüpft) dürfte der Fehler nicht mehr auftreten. Voraussetzung ist natürlich, dass man in den Projektoptionen\Compiler die "Complete boolean eval" nicht aktiviert hat (deaktiviert ist Default). |
Re: ListView : Zugriffverletzung beim Löschen
Super Leutz ..
Habe jetzt den Code geändert in diesen hier
Delphi-Quellcode:
Ich denke diese Lösung kann man stehen lassen und das Problem als gelöst markieren.
If ListView1.SelCount = 1 then
Begin If ListView1.Items.Item[ListView1.ItemIndex].Selected then ListView1.Items.Item[ListView1.ItemIndex].Delete; End Danke nochmals :thuimb: |
Re: ListView : Zugriffverletzung beim Löschen
Oder etwas kürzer:
Delphi-Quellcode:
If (ListView1.SelCount = 1) and (ListView1.Items.Item[ListView1.ItemIndex].Selected) then
ListView1.Items.Item[ListView1.ItemIndex].Delete; |
Re: ListView : Zugriffverletzung beim Löschen
Moin Tpercon,
nur um nochmal darauf hinzuweisen, falls es untergegangen ist: Das funktioniert so nur wenn "Complete boolean eval" abgeschaltet ist. |
Re: ListView : Zugriffverletzung beim Löschen
@ Christian: Hast natürlich recht, aber das sollte ja auch so sein.
|
Re: ListView : Zugriffverletzung beim Löschen
Moin Tpercon,
mir ist auch noch kein vernünftiger Grund eingefallen diese Standardeinstellung zu verändern, aber wer weiss ;-) |
Re: ListView : Zugriffverletzung beim Löschen
Hi,
fall man keine Lust hat mit Index zu arbeiten, es gibt auch DeleteSelcted. ;)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin if ListView1.SelCount = 1 then ListView1.DeleteSelected; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:37 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-2025 by Thomas Breitkreuz