Action Codeblock nachbelegen [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Action Codeblock nachbelegen [ERLEDIGT]
Hi,
ich habe immer einen Pack DCPUSHBUTTON, die in einer Schablone für Programmentwicklung sind. Diese Pushbutton navigieren in einer DBF TOP, VOR, Zurück, Bottom. Jetzt habe ich festgestellt, dass bis auf den Actionblock alles immer identisch ist in jedem Programm und dachte mir, ich könnte die Erzeugung der Pushbutton in eine Methode auslagern. Wie schon erwähnt, ist der Actionblock unterschiedlich von Programm zu Programm. Meine Frage wäre jetzt, kann man irgendwie den Actionblock später in den einzelnen Programmen nachbestücken, mit den Dingen, die den Unterschied in den anderen Programmen ausmachen? Also, die Erzeugung der DCPUSHBUTTON zunächst erledigen und dann wenn alles durch ist, den jeweiligen Actionblock des Pushbutton erweitern? Das würde den Quelltext enorm verkürzen.
PS: Der ACTIONBLOCK ist doch eigentlich das :activate eines XbpPushbutton, oder nicht? Kann man den Callback nicht nachträglich direkt verändern?
ich habe immer einen Pack DCPUSHBUTTON, die in einer Schablone für Programmentwicklung sind. Diese Pushbutton navigieren in einer DBF TOP, VOR, Zurück, Bottom. Jetzt habe ich festgestellt, dass bis auf den Actionblock alles immer identisch ist in jedem Programm und dachte mir, ich könnte die Erzeugung der Pushbutton in eine Methode auslagern. Wie schon erwähnt, ist der Actionblock unterschiedlich von Programm zu Programm. Meine Frage wäre jetzt, kann man irgendwie den Actionblock später in den einzelnen Programmen nachbestücken, mit den Dingen, die den Unterschied in den anderen Programmen ausmachen? Also, die Erzeugung der DCPUSHBUTTON zunächst erledigen und dann wenn alles durch ist, den jeweiligen Actionblock des Pushbutton erweitern? Das würde den Quelltext enorm verkürzen.
PS: Der ACTIONBLOCK ist doch eigentlich das :activate eines XbpPushbutton, oder nicht? Kann man den Callback nicht nachträglich direkt verändern?
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!!
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Action Codeblock nachbelegen
die Frage ist "wie" willst du einen Codeblock "erweitern" ? du müsstest ja erst wieder einen String daraus machen ...Manfred hat geschrieben:Meine Frage wäre jetzt, kann man irgendwie den Actionblock später in den einzelnen Programmen nachbestücken, mit den Dingen, die den Unterschied in den anderen Programmen ausmachen? Also, die Erzeugung der DCPUSHBUTTON zunächst erledigen und dann wenn alles durch ist, den jeweiligen Actionblock des Pushbutton erweitern? Das würde den Quelltext enorm verkürzen.
PS: Der ACTIONBLOCK ist doch eigentlich das :activate eines XbpPushbutton, oder nicht? Kann man den Callback nicht nachträglich direkt verändern?
grundsätzlich kannst du einen Codeblock "austauschen" d.h. beim Init() habe ich NIL stehen und "belege" den Codeblock erst später.
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Action Codeblock nachbelegen
Ja stimmt, oder erst später belegen. Da hatte ich jetzt noch nicht dran gedacht. Das würde auch genügen. Der wird ja erst nach create() belegt. Das könnte dann auch passen.
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!!
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!!
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Action Codeblock nachbelegen
Hallo,
Die Frage der nachträglichen Belegung / Änderung stellt sich nur bei den iVars, die unter "Konfiguration" stehen.
Diese werden von Create() ausgewertet und müssen danach entweder per Funktion oder Configure() geändert werden.
Der Codeblock in activate kann genauso wie datalink jederzeit ausgetauscht werden !
Die Frage der nachträglichen Belegung / Änderung stellt sich nur bei den iVars, die unter "Konfiguration" stehen.
Diese werden von Create() ausgewertet und müssen danach entweder per Funktion oder Configure() geändert werden.
Der Codeblock in activate kann genauso wie datalink jederzeit ausgetauscht werden !
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Action Codeblock nachbelegen
Danke,
ich hatte erst den Gedanken, man könnte den später erweitern, bin aber dann wieder darauf gestossen, das er ja nach create() kommt. Ja, das ist eben der Nachteil von express++, da erkennt man das nicht auf den ersten Blick. Aber damit kann ich leben.
ich hatte erst den Gedanken, man könnte den später erweitern, bin aber dann wieder darauf gestossen, das er ja nach create() kommt. Ja, das ist eben der Nachteil von express++, da erkennt man das nicht auf den ersten Blick. Aber damit kann ich leben.
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!!
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!!
- brandelh
- Foren-Moderator
- Beiträge: 15696
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Action Codeblock nachbelegen [ERLEDIGT]
Hallo Manfred,
ob vor oder nach dem Create() spielt bei ACTIVATE und DATALINK keine Rolle
ob vor oder nach dem Create() spielt bei ACTIVATE und DATALINK keine Rolle
Gruß
Hubert
Hubert
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9361
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 101 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Action Codeblock nachbelegen [ERLEDIGT]
Du kannst den Button auch anfangs ganz ohne Action erzeugen und später nachbelegen:
und jederzeit später im Code:
Und auch das kann sich wieder ändern, wenn man will.
Ein wenig eleganter wäre es, z.B. so etwas zu machen:
Das Verhalten von "ButtonAction" könnte sich dann jederzeit ändern, also auch data-driven sein.
Code: Alles auswählen
@ 1,1 DCPUSHBUTTON CAPTION 'Test' SIZE 7,1 OBJECT oFirstButton
Code: Alles auswählen
oFirstButton:Activate := {||ShowData()}
Ein wenig eleganter wäre es, z.B. so etwas zu machen:
Code: Alles auswählen
@ 1,1 DCPUSHBUTTON CAPTION 'Test' SIZE 7,1 ACTION {||ButtonAction(nButtonId)} OBJECT oFirstButton
FUNCTION ButtonAction(nId)
DO CASE
CASE nId = 1
...
RETURN NIL
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21189
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Re: Action Codeblock nachbelegen [ERLEDIGT]
Jaja,
jetzt weiß ich es auch wieder. Habe mich halt zu sehr mit der "Automatik" von express++ verbandelt.
jetzt weiß ich es auch wieder. Habe mich halt zu sehr mit der "Automatik" von express++ verbandelt.
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!!
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!!