Ich rufe aus dem Hauptmenü meine Auftragsbearbeitung als eigenen Thread auf. Dieser Thread erweitert auch Menüstruktur des Hauptmenüs. Rufe ich via einem so erstellten Menüpunkt eine Funktion auf, habe ich innerhalb dieser Funktionen keinen Zugriff auf die Daten (Workarea) des Threads, irgendwie ja logisch. Nur wie komme ich die Daten des jeweils aktiven Threads?
Geht das überhaupt?
Sichtbereich Workaera?
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: Sichtbereich Workaera?
JA.satmax hat geschrieben:Geht das überhaupt?
1.) du könntest mit dem ZeroSpace arbeiten
2.) du benutzt die Windows Queue
zu 1.) kann ich nicht viel sagen weil ich es nicht benutze.
zu 2.) mache es auf die Windows Art zum übergeben von Parameter.
Xbase++ kennt PostAppEvent und UserDef Events
Code: Alles auswählen
// Userdef Events
#define MyEnter xbeP_User + 4711
#define MyAbort xbeP_User + 4712
Proc Main
LOCAL oDialog
LOCAL oThread := Thread():new()
...
oThread:start( {|| DoMyThread(oDialog) } )
...
nEvent := xbe_None
DO WHILE !lExit
DO CASE
//
// your Userdef Events
//
CASE nEvent == MyEnter
DoNextStep(mp1)
CASE nEvent == MyAbort
OTHERWISE
oXbp:HandleEvent ( nEvent, mp1, mp2 )
ENDCASE
ENDDO
...
RETURN
Proc DoMyThread(oMain)
LOCAL aReturn := {}
// do your stuff here
// and aadd Result to Array
aadd(aReturn, Customer->Firstname)
aadd(aReturn, Customer->Lastname)
...
// post Array into Queue
PostAppEvent(MyEnter, aReturn, , oMain)
RETURN
gruss by OHR
Jimmy
Jimmy