ich erzeuge in meinem Programm zu Laufzeit dynamische Variablen der Thread Klasse.
Code: Alles auswählen
MEMVAR ThreadVar
...
ThreadVar := "Thread" + Alltrim( Str( DB->( RecNo() ) ) )
IF ! IsMemvar( "&ThreadVar" )
PUBLIC &ThreadVar
ENDIF
Code: Alles auswählen
IF Empty( &ThreadVar )
&ThreadVar := myThread():new()
...
&ThreadVar:atStart := {|| &ThreadVar:DBEInit() }
&ThreadVar:atEnd := {|| DbCloseArea() }
&ThreadVar:setInterVal( 100 )
&ThreadVar:start()
ENDIF
Und da knallt es auch schon, denn ThreadVar ist eine unbekannte Variable sagt das Fehlerprotokoll. Mit ::DBEInit() lässt sich die Methode ebenfalls nicht ansprechen, da SELF eine unbekannte Variable ist.
Irgendwie ist es schon einleuchtend. Denn die Variable heißt ja auch zur Laufzeit nicht ThreadVar, sondern z.B. Thread4711 da,
Code: Alles auswählen
ThreadVar := "Thread" + Alltrim( Str( DB->( RecNo() ) ) ) )
Code: Alles auswählen
&ThreadVar:atStart := {|| Thread4711:DBEInit() }
Oder bin ich mit meiner Denkweise falsch?
Wie kriege ich es hin an der Stelle eine Methode meiner Klasse aufzurufen?
Gruß,
Notloesung