Deutsch
Forum

2 Prozesse mit Filemap.

 

funkheld
Hallo, guten Tag.

Wie kann man bitte 2 Processe laufen lassen, die ich je Process mit einem Button starte. Im Anhang ist es mit einem Process, Wie geht es bitte mit zwei ?

Danke.
Gruss
 {$cle}
 {$PUSHKEYWORD pExec,process,filemap}
Declare h&,hd&,hd1&,ende&,wert&,wert1&,b_send&,text$,tadr&, hFileMap&,zielfenster&
declare pointer#
Struct Daten = w&, w1&, zk$(256)
dim pointer#,Daten

Proc Prozess

    parameters win&, hd&,hd1&
    Declare pointer#
    declare w&,w1&,ende&, hFileMap&
    Struct Daten = w&, w1&, zk$(256)
    dim pointer#, Daten
    windowtitle "empfang"
    window 10,10 - 350, 200
    ende& = 0
    UserMessages $1000

    whilenot ende&

        Case GetText$(win&) = "" : ende& = 1
        sleep 1
        GetMessage

        If %UMessage = $1000

            hFileMap& = FileMap("Open", "Test")

            If hFileMap&

                pointer# = FileMap("Map", hFileMap&)
                locate 3,1
                print "   " + str$(pointer#.w&) + "   "
                setText hd&, str$(pointer#.w&)
                locate 5,1
                print "   " + str$(pointer#.w1&) + "   "
                setText hd1&, str$(pointer#.w1&)
                Locate 7, 1
                Print "                    "
                Locate 7, 1
                Print pointer#.zk$'
                FileMap("Close", hFileMap&)

            EndIf

        EndIf

    endwhile

    Dispose pointer#

endproc

proc senden

    hFileMap& = FileMap("Open", "Test")

    If hFileMap&

        pointer# = FileMap("Map", hFileMap&)
        pointer#.w& = wert&
        pointer#.w1& = wert1&
        pointer#.zk$ = text$
        FileMap("Close", hFileMap&)
        PostMessage(ZielFenster&, $1000, 0, 0)

    EndIf

endproc

windowtitle "send"
window 10,300-200,200
hd& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd1& = create("Text", %hWnd, "", 20, 35, 60, 20)
b_send& = Create("Button",%hWnd,"send", 10, 65, 80, 24)
hFileMap& = Create("FileMap", "Test", 265)
h&=pExec("|Prozess",%HWnd, hd&,hd1&)
sleep 500
ZielFenster& = FindWindow("empfang")
ende& = 0
UserMessages $1000

whilenot ende&

    waitinput

    If Clicked(b_send&)

        wert&=wert&+1
        wert1&=wert1&+5
        text$="es geht"
        senden

    endif

endwhile

Dispose pointer#
end
 
12.04.2016  
 




H.Brill
Na, mit pExec().
Da die Prozesse ja wie Procs aufgebaut sind,
kann man sie auch so aufrufen :
pExec("Prozess1", ...)
pEcec("Prozess2",...)

Proc Prozess1

    ....

EndProc

Proc Prozess2

    ....

EndProc


In Verbindung mit 2 Buttons.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
12.04.2016  
 




funkheld
Mit Filemap 2 Processe...und PostMessage(ZielFenster&, $1000, 0, 0) bekomme ich nicht hin. Es wird immer nur 1 Fenster angesprochen obwoh ich 2 verschiedene Windownamen habe für Postmessage. Und diesen Pointer#r für Filemap...mit 2 Processen?

Danke.
Gruss
 
12.04.2016  
 




H.Brill
Versuche mal in den Prozessen die Fenster
mit
win1& = Create("Window",..)

anzulegen. Es kann sein, daß Fenster mit dem
Cls oder Window-Befehl immer das gleiche Handle
haben.

Natürlich mußt du für jedes Fenster eine andere
UserMessage haben, also z.B.
UserMessages $1000, $2000

Die Struktur und der Pointer# darauf müssen natürlich
auch in jedem Prozess definiert werden. Am besten
die Struktur so erweitern, daß jeder Prozess auf seine
eigenen Elemente zugreift.
Struct Daten = w1&, w2&, zk1$(256), w3&, w4&, zk2$(256)

Somit könnte Prozess1 auf w1&, w2& und zk1$ und
Prozess2 auf w3&, w4&, und zk2$ zugreifen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
12.04.2016  
 




funkheld
Manchmal geht das rechte Fenster und das linke mit weiterzählen und wenn ich wieder neu starte, geht zb nur das linke Fenster mit weiterzählen.

Kannst du bitte mal die Postmessage-Adressen und die %UMessage mal richtig verteilen?

Danke.
Gruss
declare ende&
Declare h&,hd&,hd1&,zielfenster&,b_send&
declare h1&,hd2&,hd3&,zielfenster1&,b_send1&
declare wert&,wert1&,wert2&,wert3&,text$,text1$
declare hFileMap&,hFileMap1&
declare pointer#,pointer1#
Struct Daten = w&, w1&, zk$(256)
dim pointer#,Daten
Struct Daten1 = w2&, w3&, zk1$(256)
dim pointer1#,Daten1

Proc Prozess

    parameters win&, hd&,hd1&
    Declare pointer#
    declare w&,w1&,ende&, hFileMap&
    Struct Daten = w&, w1&, zk$(256)
    dim pointer#, Daten
    windowtitle "empfang"
    window 10,10 - 300, 200
    ende& = 0
    UserMessages $1000

    whilenot ende&

        Case GetText$(win&) = "" : ende& = 1
        sleep 1
        GetMessage

        If %UMessage = $1000

            hFileMap& = FileMap("Open", "Test")

            If hFileMap&

                pointer# = FileMap("Map", hFileMap&)
                locate 3,1
                print "   " + str$(pointer#.w&) + "   "
                setText hd&, str$(pointer#.w&)
                locate 5,1
                print "   " + str$(pointer#.w1&) + "   "
                setText hd1&, str$(pointer#.w1&)
                Locate 7, 1
                Print "                    "
                Locate 7, 1
                Print pointer#.zk$'
                FileMap("Close", hFileMap&)

            EndIf

        EndIf

    endwhile

    Dispose pointer#

endproc

Proc Prozess1

    parameters win&, hd2&,hd3&
    Declare pointer1#
    declare w2&,w3&,ende&, hFileMap1&
    Struct Daten1 = w2&, w3&, zk1$(256)
    dim pointer1#, Daten1
    windowtitle "empfang1"
    window 320,10 - 300, 200
    ende& = 0
    UserMessages $1000

    whilenot ende&

        Case GetText$(win&) = "" : ende& = 1
        sleep 1
        GetMessage

        If %UMessage = $1000

            hFileMap1& = FileMap("Open", "Test1")

            If hFileMap1&

                pointer1# = FileMap("Map", hFileMap1&)
                locate 3,1
                print "   " + str$(pointer1#.w2&) + "   "
                setText hd2&, str$(pointer1#.w2&)
                locate 5,1
                print "   " + str$(pointer1#.w3&) + "   "
                setText hd3&, str$(pointer1#.w3&)
                Locate 7, 1
                Print "                    "
                Locate 7, 1
                Print pointer1#.zk1$'
                FileMap("Close", hFileMap1&)

            EndIf

        EndIf

    endwhile

    Dispose pointer1#

endproc

proc senden

    hFileMap& = FileMap("Open", "Test")

    If hFileMap&

        pointer# = FileMap("Map", hFileMap&)
        pointer#.w& = wert&
        pointer#.w1& = wert1&
        pointer#.zk$ = text$
        FileMap("Close", hFileMap&)
        PostMessage(ZielFenster&, $1000, 0, 0)

    EndIf

endproc

proc senden1

    hFileMap1& = FileMap("Open", "Test1")

    If hFileMap1&

        pointer1# = FileMap("Map", hFileMap1&)
        pointer1#.w2& = wert2&
        pointer1#.w3& = wert3&
        pointer1#.zk1$ = text1$
        FileMap("Close", hFileMap1&)
        PostMessage(ZielFenster1&, $1000, 0, 0)

    EndIf

endproc

windowtitle "send"
window 10,300-200,200
hd& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd1& = create("Text", %hWnd, "", 20, 35, 60, 20)
hd2& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd3& = create("Text", %hWnd, "", 20, 35, 60, 20)
b_send& = Create("Button",%hWnd,"send", 10, 65, 80, 24)
b_send1& = Create("Button",%hWnd,"send1", 10, 90, 80, 24)
hFileMap& = Create("FileMap", "Test", 265)
hFileMap1& = Create("FileMap", "Test1", 265)
h&=pExec("|Prozess",%HWnd, hd&,hd1&)
h1&=pExec("|Prozess1",%HWnd, hd2&,hd3&)
sleep 500
ZielFenster& = FindWindow("empfang")
ZielFenster1& = FindWindow("empfang1")
ende& = 0
UserMessages $1000,$2000

whilenot ende&

    waitinput

    If Clicked(b_send&)

        wert&=wert&+1
        wert1&=wert1&+5
        text$="es geht"
        senden

    endif

    If Clicked(b_send1&)

        wert2&=wert2&+10
        wert3&=wert3&+50
        text1$="es geht bei 1"
        senden1

    endif

endwhile

Dispose pointer#
Dispose pointer1#
end
 
12.04.2016  
 




H.Brill
Frag mich jetzt nicht, wieso das plötzlich geht.
Habe jetzt nur die UserMessages richtig verteilt
und pExec() umgekehrt aufgerufen. Also erst
Prozess1 und dann Prozess.

Schau mal, ob es so nach deinen Wünschen läuft :
declare ende&
Declare h&,hd&,hd1&,zielfenster&,b_send&
declare h1&,hd2&,hd3&,zielfenster1&,b_send1&
declare wert&,wert1&,wert2&,wert3&,text$,text1$
declare hFileMap&,hFileMap1&
declare pointer#,pointer1#
Struct Daten = w&, w1&, zk$(256)
dim pointer#,Daten
Struct Daten1 = w2&, w3&, zk1$(256)
dim pointer1#,Daten1

Proc Prozess

    parameters win&, hd&,hd1&
    Declare pointer#
    declare w&,w1&,ende&, hFileMap&
    Struct Daten = w&, w1&, zk$(256)
    dim pointer#, Daten
    windowtitle "empfang"
    window 10,10 - 300, 200
    ende& = 0
    UserMessages $1000

    whilenot ende&

        Case GetText$(win&) = "" : ende& = 1
        sleep 1
        GetMessage

        If %UMessage = $1000

            hFileMap& = FileMap("Open", "Test")

            If hFileMap&

                pointer# = FileMap("Map", hFileMap&)
                locate 3,1
                print "   " + str$(pointer#.w&) + "   "
                setText hd&, str$(pointer#.w&)
                locate 5,1
                print "   " + str$(pointer#.w1&) + "   "
                setText hd1&, str$(pointer#.w1&)
                Locate 7, 1
                Print "                    "
                Locate 7, 1
                Print pointer#.zk$'
                FileMap("Close", hFileMap&)

            EndIf

        EndIf

    endwhile

    Dispose pointer#

endproc

Proc Prozess1

    parameters win&, hd2&,hd3&
    Declare pointer1#
    declare w2&,w3&,ende&, hFileMap1&
    Struct Daten1 = w2&, w3&, zk1$(256)
    dim pointer1#, Daten1
    windowtitle "empfang1"
    window 320,10 - 300, 200
    ende& = 0
    UserMessages $2000

    whilenot ende&

        Case GetText$(win&) = "" : ende& = 1
        sleep 1
        GetMessage

        If %UMessage = $2000

            hFileMap1& = FileMap("Open", "Test1")

            If hFileMap1&

                pointer1# = FileMap("Map", hFileMap1&)
                locate 3,1
                print "   " + str$(pointer1#.w2&) + "   "
                setText hd2&, str$(pointer1#.w2&)
                locate 5,1
                print "   " + str$(pointer1#.w3&) + "   "
                setText hd3&, str$(pointer1#.w3&)
                Locate 7, 1
                Print "                    "
                Locate 7, 1
                Print pointer1#.zk1$'
                FileMap("Close", hFileMap1&)

            EndIf

        EndIf

    endwhile

    Dispose pointer1#

endproc

proc senden

    hFileMap& = FileMap("Open", "Test")

    If hFileMap&

        pointer# = FileMap("Map", hFileMap&)
        pointer#.w& = wert&
        pointer#.w1& = wert1&
        pointer#.zk$ = text$
        FileMap("Close", hFileMap&)
        PostMessage(ZielFenster&, $1000, 0, 0)

    EndIf

endproc

proc senden1

    hFileMap1& = FileMap("Open", "Test1")

    If hFileMap1&

        pointer1# = FileMap("Map", hFileMap1&)
        pointer1#.w2& = wert2&
        pointer1#.w3& = wert3&
        pointer1#.zk1$ = text1$
        FileMap("Close", hFileMap1&)
        PostMessage(ZielFenster1&, $2000, 0, 0)

    EndIf

endproc

windowtitle "send"
window 10,300-200,200
hd& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd1& = create("Text", %hWnd, "", 20, 35, 60, 20)
hd2& = create("Text", %hWnd, "", 20, 10, 60, 20)
hd3& = create("Text", %hWnd, "", 20, 35, 60, 20)
b_send& = Create("Button",%hWnd,"send", 10, 65, 80, 24)
b_send1& = Create("Button",%hWnd,"send1", 10, 90, 80, 24)
hFileMap& = Create("FileMap", "Test", 265)
hFileMap1& = Create("FileMap", "Test1", 265)
h1&=pExec("|Prozess1",%HWnd, hd2&,hd3&)
h&=pExec("|Prozess",%HWnd, hd&,hd1&)
sleep 500
ZielFenster& = FindWindow("empfang")
ZielFenster1& = FindWindow("empfang1")
ende& = 0
UserMessages $1000,$2000

whilenot ende&

    waitinput

    If Clicked(b_send&)

        wert&=wert&+1
        wert1&=wert1&+5
        text$="es geht bei 1"
        senden

    endif

    If Clicked(b_send1&)

        wert2&=wert2&+10
        wert3&=wert3&+50
        text1$="es geht bei 10"
        senden1

    endif

endwhile

Dispose pointer#
Dispose pointer1#
end
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
13.04.2016  
 




funkheld
Hallo danke.
Jetzt funktioniert es, das 2 Processe angesprochen werden.

Ich steige bei den Adresszuweisungen nicht durch, das ist meine Schwierigkeit.

Danke.
Gruss
 
13.04.2016  
 




H.Brill
Bei welchen Zuweisungen hakt es denn ?
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
14.04.2016  
 




funkheld
Das sind die Adressen $1000 und $2000 zb.

Was bedeuten die bitte ?

Danke.
Gruss
 
14.04.2016  
 




H.Brill
Meinst du bei den UserMessages ?

Das sind einfach nur Zahlen. Da kannst du auch
1000 und 2000 nehmen. Es dient rein nur zur
eindeutigen Identifizierung der Messages.

$1000 = 4096
$2000 = 8192

Wichtig ist, daß du über 1000 gehst, um
Konflikte mit den windowseigenen Messages
zu vermeiden. Diese sind unter 1000.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
14.04.2016  
 



Über 1023 müsste er.
 
14.04.2016  
 




funkheld
Ja danke für die Info.

ich hatte mich schon gewundert , weil ich es mal mit 1, 2 oder 3 versucht hatte und funktioniert nicht.

Danke.
Gruss
 
14.04.2016  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.618 Betrachtungen

Unbenanntvor 0 min.
RudiB.10.01.2022
iF31.10.2020
Torsten Rümker10.05.2016
Sascha Haak07.05.2016
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

funkheld (6x)
H.Brill (6x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie