Action Codeblock nachbelegen [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

Action Codeblock nachbelegen [ERLEDIGT]

Beitrag von Manfred »

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?
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
AUGE_OHR
Marvin
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

Beitrag von AUGE_OHR »

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?
die Frage ist "wie" willst du einen Codeblock "erweitern" ? du müsstest ja erst wieder einen String daraus machen ...

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
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: Action Codeblock nachbelegen

Beitrag von Manfred »

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!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Action Codeblock nachbelegen

Beitrag von brandelh »

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 !
Gruß
Hubert
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: Action Codeblock nachbelegen

Beitrag von Manfred »

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.
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Action Codeblock nachbelegen [ERLEDIGT]

Beitrag von brandelh »

Hallo Manfred,

ob vor oder nach dem Create() spielt bei ACTIVATE und DATALINK keine Rolle :!:
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Action Codeblock nachbelegen [ERLEDIGT]

Beitrag von Tom »

Du kannst den Button auch anfangs ganz ohne Action erzeugen und später nachbelegen:

Code: Alles auswählen

@ 1,1 DCPUSHBUTTON CAPTION 'Test' SIZE 7,1 OBJECT oFirstButton
und jederzeit später im Code:

Code: Alles auswählen

oFirstButton:Activate := {||ShowData()}
Und auch das kann sich wieder ändern, wenn man will.

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
Das Verhalten von "ButtonAction" könnte sich dann jederzeit ändern, also auch data-driven sein.
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: Action Codeblock nachbelegen [ERLEDIGT]

Beitrag von Manfred »

Jaja,

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!!
Antworten