Childlist prüfen bei DCREAD GUI beenden [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Childlist prüfen bei DCREAD GUI beenden [ERLEDIGT]

Beitrag von Manfred »

Ich möchte gerne beim Verlassen eines Dialoges vorher prüfen, ob sich irgendwas in einem Xbase Part geändert hat. Da wäre es natürlich angesagt, die Childlist durchzuackern und auf change zu prüfen. Nur, wann macht man das? Sobald ich oben rechts den Schließen Button drücke, sind alle Childlists leer. Da ich aber noch reagieren will/muß, wenn sich was geändert haben sollte, wüßte ich jetzt nicht, wo ich es sonst tun sollte.
Zuletzt geändert von Manfred am Fr, 16. Jul 2010 15:22, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Childlist prüfen bei DCREAD GUI beenden

Beitrag von Tom »

Hallo, Manfred.

Die Funktion, die Dir sagt, ob irgendein Wert geändert wurde, heißt "DC_GetOrigUpdated()". Sie kann mit einer kompletten Getlist oder mit einzelnen Objekten aufgerufen werden. Da die GetList tatsächlich leer ist, wenn DCREAD z.B. über den Close-Button beendet wurde, musst Du in den DCGET OPTIONS derlei tun:

Code: Alles auswählen

DCGET OPTIONS ... CLOSEQUERY MSG {||If(DC_GetOrigUpdated(GetList),SachenSpeichern(),nil),.T.}
Du kannst aber auch z.B. eine Variable "lUpdated" mit .F. initialisieren. Dann versteckst Du einen Button in Deinem Dialog:

Code: Alles auswählen

@ 0,0 DCPUSHBUTTON CAPTION '' SIZE 0,0 ACTION {||nil} WHEN {||lUpdated := DC_GetOrigUpdated(GetList),.T.}
Nach dem DCREAD fragst Du dann einfach "lUpdated" ab. Da nach dem Verlassen eines jeden Controls DC_GetWhen() "feuert", dürfte auf diesem Weg lUpdated den richtigen Wert bekommen. Ausprobiert habe ich's aber noch nicht.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Childlist prüfen bei DCREAD GUI beenden

Beitrag von Manfred »

Danke Tom,

das scheint mir zu helfen. Nach der Bezeichnung hätte ich aber nie gesucht. Naja, kann man nix machen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten