Eine Owner-Methode als Makro ausführen [ERLEDIGT]

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Eine Owner-Methode als Makro ausführen [ERLEDIGT]

Beitrag von andreas »

Hallo,

ich habe eine Klasse geschrieben, die von vielen unterschiedlichen Stellen (Klassen) aufgerufen wird und an die der Owner als Parameter übergeben wird.
Jetzt habe ich ein Fall, dass nach der Rückkehr aus der Klasse eine Owner-Methode aufgerufen werden muss.
Dafür habe ich den Namen der aufzurufenden Methode als String an meine Klasse übergeben.
Das Problem ist, dass ich nicht zu der Lösung komme, wie ich diese Methode aufrufen kann.
Der Makro-Operator gibt ständig irgendwelche Fehler über Self aus.

Code: Alles auswählen

IF len(::cMethode) > 0
	IF IsMethod( ::SetOwner(), ::cMethode )
		cMakro := "::"+::cMethode+"()"
		msgbox(cMakro)
		::Eval( {|self| &(cMakro)}, ::SetOwner() )
		//&(cMakro)
		//::SetOwner():&(::cMethode+"()")
	ENDIF
ENDIF
Was mache ich hier falsch und wie löse ich das Problem?
Zuletzt geändert von andreas am Di, 17. Nov 2009 11:37, insgesamt 1-mal geändert.
Gruß,

Andreas
VIP der XUG Osnabrück
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Re: Eine Methode als Makro ausführen

Beitrag von andreas »

Ich habe schon die Lösung gefunden:

Code: Alles auswählen

IF len(::cMethode) > 0
	IF IsMethod( ::SetOwner(), ::cMethode )
		cMakro := "{|self| ::"+::cMethode+"() }"
		Eval( &(cMakro), ::SetOwner() )
	ENDIF
ENDIF
Gruß,

Andreas
VIP der XUG Osnabrück
Antworten