AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TListView, OnChanging-Event wird mehrmals aufgerufen
Thema durchsuchen
Ansicht
Themen-Optionen

TListView, OnChanging-Event wird mehrmals aufgerufen

Ein Thema von jgehlen · begonnen am 4. Jan 2006 · letzter Beitrag vom 5. Jan 2006
Antwort Antwort
Seite 2 von 2     12   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: TListView, OnChanging-Event wird mehrmals aufgerufen

  Alt 5. Jan 2006, 15:12
Hallo Jörg.

Der mehrfache Eintritt in das Ereignis OnChanging() ist völlig korrekt. Durch deinen Dialog wird wegen dem Fokus Shift ein zusätzliches OnChanging() ausgelöst. Ohne deinen Dialog werden jeweils drei OnChange() und OnChanging() Ereignisse ausgelöst.

Abgesehen davon, dass ich grundsätzlich mit einer virtuellen ListView und einem modalen Bearbeitungs-Dialog arbeite, würde ich in deinem Fall anders vorgehen und dem Benutzer die Kontrolle über die Speicherung ganz überlassen. Siehe Demo.

Neujahrsgrüße vom marabu
Angehängte Dateien
Dateityp: zip lvedit2_154.zip (1,6 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
jgehlen

Registriert seit: 26. Okt 2005
Ort: Bonn
11 Beiträge
 
Delphi XE5 Enterprise
 
#12

Re: TListView, OnChanging-Event wird mehrmals aufgerufen

  Alt 5. Jan 2006, 15:59
Hallo,

Zitat von marabu:
Der mehrfache Eintritt in das Ereignis OnChanging() ist völlig korrekt. Durch deinen Dialog wird wegen dem Fokus Shift ein zusätzliches OnChanging() ausgelöst. Ohne deinen Dialog werden jeweils drei OnChange() und OnChanging() Ereignisse ausgelöst.
Danke für die Aufklärung. Kommt der mehrfache Eintritt in das Ereignis OnChanging() dadurch, dass bei ctState die Eigenschaften Cut, Focused oder Selected nacheinander gepüft werden? Wenn ja, gibt es dann auch die Möglichkeit diese einzelnen Änderungen getrennt voneinander zu erlauben oder zu verbieten?

Zitat von marabu:
Abgesehen davon, dass ich grundsätzlich mit einer virtuellen ListView und einem modalen Bearbeitungs-Dialog arbeite, würde ich in deinem Fall anders vorgehen und dem Benutzer die Kontrolle über die Speicherung ganz überlassen. Siehe Demo.
Der Workflow den Du vorschlägst entspricht leider nicht so ganz den Anforderungen in der Anwendung, deshalb werde ich wohl bei der Variante 'Dialog im OnEnter-Event des ListView' bleiben müssen.

Gruß
Jörg Gehlen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: TListView, OnChanging-Event wird mehrmals aufgerufen

  Alt 5. Jan 2006, 16:44
Zitat von jgehlen:
Kommt der mehrfache Eintritt in das Ereignis OnChanging() dadurch, dass bei ctState die Eigenschaften Cut, Focused oder Selected nacheinander gepüft werden?
Zuerst wird dem fokusierten Item der Fokus entzogen. Beim zweiten Eintritt verliert dieses Item gerade die Selektion. Beim dritten und normalerweise letzten Eintritt wird (vermutlich) der Fokus auf das neue Item übertragen.

Zitat von jgehlen:
gibt es dann auch die Möglichkeit diese einzelnen Änderungen getrennt voneinander zu erlauben oder zu verbieten?
Im Ereignis OnChanging()? Warum nicht? Du hast die Eigenschaften ListView.Selected und ListView.ItemFocused, sowie die Informationen aus deinem event handler. Damit kannst du leicht bestimmen, welche Aktion du unterbindest.

Zitat von jgehlen:
Der Workflow den Du vorschlägst entspricht leider nicht so ganz den Anforderungen in der Anwendung, deshalb werde ich wohl bei der Variante 'Dialog im OnEnter-Event des ListView' bleiben müssen.
Wenn eine Änderung der Benutzerschnittstelle in deinen Augen sinnvoll ist, dann solltest du versuchen den Auftraggeber bzw. Projektleiter davon zu überzeugen.

Freundliche Grüße

marabu
  Mit Zitat antworten Zitat
jgehlen

Registriert seit: 26. Okt 2005
Ort: Bonn
11 Beiträge
 
Delphi XE5 Enterprise
 
#14

Re: TListView, OnChanging-Event wird mehrmals aufgerufen

  Alt 5. Jan 2006, 19:24
Hallo,

Zitat von marabu:
Wenn eine Änderung der Benutzerschnittstelle in deinen Augen sinnvoll ist, dann solltest du versuchen den Auftraggeber bzw. Projektleiter davon zu überzeugen.
Der Workflow ist okay für mich, ich will den Benutzer nicht zu sehr in einen Ablauf zwingen, sondern möglichst viele Freiheiten lassen. Vergleichbar Word, dort muss man ein Dokument auch nicht erst speichern bevor man es über das 'x'-BorderIcon schließen kann. Dann wird eben an dieser Stelle nachgefragt, ob gespeichert, verworfen oder zum Dokument zurückgekehrt werden soll. Aber das ist hier doch zu sehr Off-Topic.

Trotzdem möchte ich allen hier nochmals danken. Dies ist meine erste Frage bei Delphi-PRAXIS und ich bin sehr angetan von der schnellen und kompetenten Hilfe.

Gruß
Jörg Gehlen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz