Wert in oXbp:activate := auswerten [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Wert in oXbp:activate := auswerten [erledigt]

Beitrag von Wolfgang_B »

Mahlzeit ..

ICh habe folgendes Konstrukt:

oXbp:activate := {|| IF ( VAL(oXbp1:getData() == 0, "ERROR", CREATE_TEST(x,y) ) }

Wie werte ich "ERROR" aus? Geht das nur über eine eigene "ERROR" Function? Ergebnis soll ein "RETURN(NIL) sein, was aber so nicht geht ...
Zuletzt geändert von Wolfgang_B am Mo, 06. Apr 2020 15:07, insgesamt 1-mal geändert.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Wert in oXbp:activate := auswerten

Beitrag von AUGE_OHR »

Wolfgang_B hat geschrieben: Mo, 06. Apr 2020 12:10

Code: Alles auswählen

oXbp:activate := {|| IF ( VAL(oXbp1:getData() == 0, "ERROR", CREATE_TEST(x,y) ) }
Wie werte ich "ERROR" aus? Geht das nur über eine eigene "ERROR" Function? Ergebnis soll ein "RETURN(NIL) sein, was aber so nicht geht ...
wenn NIL raus kommt warum dann eine "Aktion" :?:

Code: Alles auswählen

oXbp:activate := {|| IF ( VAL(oXbp1:getData() == 0,  , CREATE_TEST(x,y) ) }
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Wert in oXbp:activate := auswerten

Beitrag von Tom »

Der Active-Slot wird ausgewertet, wenn der Pushbutton aktiviert (also gedrückt) wird. Dieser Code, Wolfgang:

Code: Alles auswählen

oXbp:activate := {|| IF ( VAL(oXbp1:getData() == 0, "ERROR", CREATE_TEST(x,y) ) }
ist sinnlos, denn das würde bedeuten, dass, wenn der Pushbutton betätigt wird und GetData() des XbParts in der Objektvariablen "oXbp1" 0 (null) liefert, die Aktion "ERROR" ausgeführt wird, was seinerseits zu einem Laufzeitfehler führen würde. "ERROR" kann man nämlich nicht ausführen.

Was willst Du genau erreichen? Dass sich der Dialog, in dem sich dieser Pushbutton befindet, in diesem Fall schließt und die Funktion, die ihn erzeugt hat, mit "NIL" antwortet? Oder was?
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Wert in oXbp:activate := auswerten

Beitrag von Wolfgang_B »

eigentlich geht es mir um Grundsätzliches. Habe mich vielleicht falsch ausgedrückt.

Mit :activate := || Function () ... rufe ich einen Codeblock mit einer Funktion auf. Diese Function gibt mir einen Rückgabewert zurück. Wie komme ich an den Rückgabewert dran, bzw. wie kann ich den weiterverarbeiten.
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Wert in oXbp:activate := auswerten

Beitrag von Tom »

Indem Du ihn einer Variablen zuweist:

Code: Alles auswählen

FUNCTION ...
LOCAL xMyValue ...
...
oXbp:activate := {|| IF ( VAL(oXbp1:getData() == 0, "ERROR", xMyValue := CREATE_TEST(x,y) ) }
...
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Wert in oXbp:activate := auswerten

Beitrag von Wolfgang_B »

ok, ist eigentlich naheliegend ... :banghead:

Danke!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Antworten