Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Object und Codeblock ( String ) [erledigt]

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10573
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Object und Codeblock ( String ) [erledigt]

Beitrag von AUGE_OHR » Mi, 28. Jan 2015 22:26

hi,

wenn ich einen String für einen Codeblock bauen will bekomme ich ein Object "so" nicht rein.

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,"+oObject+" ,, oMain}"
auch wenn ich eine Functionen nehme

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,"+MyFun()+" ,, oMain}"
komme ich nicht weiter ... :banghead:

aber irgendwie muss es doch gehen ... aber wie ?
Zuletzt geändert von AUGE_OHR am Do, 29. Jan 2015 5:42, insgesamt 1-mal geändert.
gruss by OHR
Jimmy

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6797
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Object und Codeblock ( String )

Beitrag von Tom » Mi, 28. Jan 2015 22:44

Einfach ohne Anführungszeichen:

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,oObject,, oMain}"
cString := "{|| PostAppEvent(myE_Event,MyFun(),, oMain}"
:wink:
Herzlich,
Tom

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6797
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Object und Codeblock ( String )

Beitrag von Tom » Mi, 28. Jan 2015 23:31

Und wenn sich oObject und MyFunc() auf etwas beziehen, das im Moment der Codeblockerzeugung (Makro) ausgewertet werden soll, dann so:

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,'"+oObject+"',, oMain}"
Einfache Anführungszeichen vor/hinter den normalen.
Herzlich,
Tom

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10573
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Object und Codeblock ( String )

Beitrag von AUGE_OHR » Do, 29. Jan 2015 0:25

hi,
Danke für deine Antworten.
Tom hat geschrieben:Und wenn sich oObject und MyFunc() auf etwas beziehen, das im Moment der Codeblockerzeugung (Makro) ausgewertet werden soll, dann so:

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,'"+oObject+"',, oMain}"
Einfache Anführungszeichen vor/hinter den normalen.
aber bei der Syntax "schreit" er doch

Code: Alles auswählen

String + Object
auch bei dem Beispiel

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,oObject,, oMain}"
gibt es ein Problem beim EVAL() -> oObject "unbekannt" wenn man es nicht PRIVATE macht.

Code: Alles auswählen

cString := "{|| PostAppEvent(myE_Event,MyFun(),, oMain}"
hm ... die Function direkt in den String statt "+MyFun()+" ... das muss ich mal ausprobieren


ich muss vielleicht hinzufügen warum ich per String einen Codeblock zusammenbaue.
ich bin nicht im gleichen Thread wie Main, denn "gleich" als Codeblock wäre es ja kein Problem mit Objecten.
ich möchte einen Xbase++ Code Slot "auslösen".

Code: Alles auswählen

o:buttonClick := {| oButton,uNil,self | ... } 
das Problem ist nun "mp1" = oButton
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10573
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Object und Codeblock ( String )

Beitrag von AUGE_OHR » Do, 29. Jan 2015 5:41

moin,

ich habe falsch gedacht ... der Codeblock Slot wird ja gewöhnlich schon im Xbase++ Thread "belegt".

um ihn zu aktivieren muss ich aus meinem Thread nicht ein PostAppEvent() schicken sondern den Codeblock in meinem Thread EVALulieren wobei ich die Parameter "mp1" ja übergeben kann ;)
gruss by OHR
Jimmy

Antworten