Seite 1 von 1

Object und Codeblock ( String ) [erledigt]

Verfasst: Mi, 28. Jan 2015 22:26
von AUGE_OHR
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 ?

Re: Object und Codeblock ( String )

Verfasst: Mi, 28. Jan 2015 22:44
von Tom
Einfach ohne Anführungszeichen:

Code: Alles auswählen

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

Re: Object und Codeblock ( String )

Verfasst: Mi, 28. Jan 2015 23:31
von Tom
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.

Re: Object und Codeblock ( String )

Verfasst: Do, 29. Jan 2015 0:25
von AUGE_OHR
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

Re: Object und Codeblock ( String )

Verfasst: Do, 29. Jan 2015 5:41
von AUGE_OHR
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 ;)