AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Nachricht NACH dem Löschen eines ListView.Item erhalten?

Nachricht NACH dem Löschen eines ListView.Item erhalten?

Ein Thema von PeterPanino · begonnen am 5. Aug 2012 · letzter Beitrag vom 6. Aug 2012
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 07:34
Naja, du bekommst aber bei jedem gelöschten Item eine solche Message.
Naja, streng genommen ist es - vom Zeitpunkt der Nachricht her - eine Vorhersage (z.B. bei OnDeletion). Mit der Methode von Bummi wird der Nachrichtenzeitpunkt auf die Zeit NACH der Aktion verschoben. Das ist vom Standpunkt des Benutzers aus überzeugender.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 07:36
Wie kann ein Anwender Einträge aus einer ListView löschen? Welche Tasten muss man da drücken?
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 09:22
Wie kann ein Anwender Einträge aus einer ListView löschen? Welche Tasten muss man da drücken?
ListView1.Items.Delete(0);
Oder in von ListView abgeleiteten Klassen könnte es andere Möglichkeiten geben, ein Item zu löschen.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.079 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 09:39
Wie kann ein Anwender Einträge aus einer ListView löschen? Welche Tasten muss man da drücken?
ListView1.Items.Delete(0);
Oder in von ListView abgeleiteten Klassen könnte es andere Möglichkeiten geben, ein Item zu löschen.
Anwender <> Programmierer!
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 11:01
Anwender <> Programmierer!
Korrektur: Oder in von ListView abgeleiteten Klassen könnte es für den Programmierer andere Möglichkeiten geben, dem Anwender die Löschung eines Items zu ermöglichen.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.073 Beiträge
 
Delphi 12 Athens
 
#6

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 12:34
Korrektur: Oder in von ListView abgeleiteten Klassen könnte es für den Programmierer andere Möglichkeiten geben, dem Anwender die Löschung eines Items zu ermöglichen.
Sicher, aber das ist genau der Punkt:
Der Befehl kommt aus der Anwendung. Dort wird ja explizit das Löschen aufgerufen.

Deshalb wird dafür eigentlich gar kein Event benötigt, da Events nur gebraucht werden, wenn der Programmierer etwas mitbekommen muss, von dem er sonst nicht mitbekommen würde, dass es passiert. Da die Aktion hier selbst per Quelltext gestartet wird, weiß man das aber schon.

Deshalb ist die Logik schon etwas seltsam, aber letztlich schadet ein solches Event auch nicht. Es ist nur rein logisch überflüssig.

Damit ist die Lösung, die du jetzt benutzt, schon ok, wenn auch nicht optimal.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 12:52
Sicher, aber das ist genau der Punkt:
Der Befehl kommt aus der Anwendung. Dort wird ja explizit das Löschen aufgerufen.

Deshalb wird dafür eigentlich gar kein Event benötigt, da Events nur gebraucht werden, wenn der Programmierer etwas mitbekommen muss, von dem er sonst nicht mitbekommen würde, dass es passiert. Da die Aktion hier selbst per Quelltext gestartet wird, weiß man das aber schon.

Deshalb ist die Logik schon etwas seltsam, aber letztlich schadet ein solches Event auch nicht. Es ist nur rein logisch überflüssig.

Damit ist die Lösung, die du jetzt benutzt, schon ok, wenn auch nicht optimal.
Wenn der Anwender etwas will, dann heißt das nicht, dass das Programm das auch tut. Deshalb ist es bei einer "Vorhersage" gut möglich, dass die Anzeige vorschnell eine falsche Änderung anzeigt, diese aber aus irgendeinem Grund nicht durchgeführt werden konnte. Das kann dann zu einem Programm-, Anwendungs- oder Daten-Fehler führen. Auch ist denkbar, dass neben dem Anwender und dem Programm eine dritte Ebene (z.B. das Dateisystem oder eine Datenbank) beteiligt ist, welche wiederum in die Ausführung eingreifen kann. Aus all diesen Gründen ist es im allgemeinenn ratsam, nur mit Tatsachen zu arbeiten. Etwa bei dem Listview-Beispiel abzuwarten, bis Items.Count wirklich um die Zahl der gelöschten Items vermindert wurde. Alles andere ist unsauberer Programmierstil. Aus diesem Grund gibt es bei Datenbanken auch das Transaktions-Prinzip, um Inkonsistenzen zwischen verschiedenen Bereichen (etwa Client und Server) zu verhindern.
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 07:44
@Bummi: Wenn es nun aber mehrere Instanzen der so modifizierten TListView im Programm gibt: Wie könnte man erfahren, welche Instanz die Message gesendet hat? Wie würdest du diese Information so in PostMessage kodieren, dass sie in MyInfomessage wieder dekodiert werden kann? Und wie kann CNNotify erfahren, von welcher Instanz die Nachricht kommt?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 07:48
Ich hatte meinen Beitrag 2 mal geändert, in der letzen Version gibt es ein OnItemDeleted-Event, hier kannst Du über Sender gehen ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Nachricht NACH dem Löschen eines ListView.Item erhalten?

  Alt 6. Aug 2012, 08:09
Ich hatte meinen Beitrag 2 mal geändert, in der letzen Version gibt es ein OnItemDeleted-Event, hier kannst Du über Sender gehen ....
Ja, du hast Recht, vielen Dank!
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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