Autor | Thema: Fensterhandle | | Datum:15.11.01 15:10 
(Peter.Stemmer@t-online.de) | |
Habe zwei Programme erstellt.
Das eine Programm (Hauptprogramm)kann über einen Popup Menuitem und Shell das 2.Programm starten.
Im 2.Programm möchte ich nun durch anklicken eines Radiobutton
einen String an das Hauptprogramm senden,der wiederum auf einen
Dialogfenster mit dem Handel ein% in einem Editfeld mit dem Handle Z1% (im Hauptprogramm) angezeigt werden soll.
Mit welchen Befehlen bekomme ich nun das Handle des Editfeldes heraus und wie sende ich den String vom 2.Programm ans Hauptprogramm um es im Editfeld anzuzeigen.
Hoffe jemand kann mir helfen,
Gruß Peter
|
| | Datum:15.11.01 16:23 
(idefix_nosferatus@lycos.de) | |
Hallo Peter,
Das Hauptprogramm ruft das zweite Programm auf und übergibt
ihm als Parameter das Handel, wo die daten im Hauptprogramm
angezeigt werden.
Programm nummer hohlt sich nun diesen Parameter und kann
nun mit diesn Handel machen, was es mächte.
das sähe dann ungefähr so aus:
'Das Hauptprogramm
edit% = CreateEdit(%hwnd,"",100,100,200,20)
' .....
Shell add$("unterprogramm.exe ",str$(edit%))
---- snip ----
'das unterprogramm.exe könnte machen:
If %parcount > 0
hphandel% = val(par$(1))
Endif
' ....
SetText hphandel%,"Test"
---- snip ---
der Text würde also im Hauptprogramm angezeigt werden.
gruss
Christian
|
| | Datum:16.11.01 11:13 
(Peter.Stemmer@t-online.de) | |
Hallo Christian,
Erst mal Danke für Deinen Tipp.
Habe das natürlich sofort ausprobiert mußte aber leider feststellen das das so nicht funktioniert.
Mit dem Befehl Shell add$("Unterprogramm.exe",Str$(edit%))
kann ich das Unterprogramm nicht aufrufen,da anscheinend
zuerst zum Unterprogramm.exe das Handle aus Edit% hinzugefügt
wird,und dann der Befehl Shell mit den Programmnahmen
(Unterprogramm + Handle von Edit%)nichts mehr anfangen kann.
Vieleicht habe ich da auch was falsch verstanden.
Peter
|
| | Datum:16.11.01 11:18 
(joerse@gmx.de) | |
Hallo Peter,
Häng mal ein Leerzeichen an Unterprogramm.exe,
dann sollte es funktionieren:
Shell add$("Unterprogramm.exe ",Str$(edit%))
Gruß
Jörg
|
| | Datum:16.11.01 13:21 
(idefix_nosferatus@lycos.de) | |
>Häng mal ein Leerzeichen an Unterprogramm.exe,
>dann sollte es funktionieren:
>>Shell add$("unterprogramm.exe ",str$(edit%))
^^^
LEERZECHEN, so stand es auch
in der Ursprungsmail ...
|
| | Datum:16.11.01 17:58 
(Peter.Stemmer@t-online.de) | |
Hallo Christian,
Bin langsam am verzweifeln,habe jetzt das Leerzeichen bei
Unterprogramm.exe eingefügt,jetzt funktioniert zwar der Shell-
Befehl,Unterprogramm.exe wird ausgeführt und Handle wird übergeben (habe das mit DrawText 10,100,hphandel% im Unterprogramm ausprobiert).
Wenn ich aber jetzt mit SetText hphandel%,"Test" den Text ans
Hauptprogramm senden möchte wird mir in meinem Editfeld nichts
angezeigt.
Gruß Peter
|
| | Datum:19.11.01 16:51 
(martin@technopolis.de) | |
hi! Ich denke dein Fehler (ohne Quellcode schwer zu finden!) liegt in der Annahme des übergebenen Handles. Machst du das so?:
DECLARE handle%
handle%=@Par$(1)
Wenn ja ist das falsch! Der Parameter wird als String übergeben (> Variablen und Datentypen) und muss erst noch in einen Integer umgewandelt werden also mit @Val():
DECLARE handle%
handle%=@Val(@Par$(1))
Das denke ich ist der Fehler probier es aus.
Martin
|
| | Datum:20.11.01 07:39 
(idefix_nosferatus@lycos.de) | |
Nimm doch mal obigen Quellcode von mir SO aus der
Liste, wie er da steht, der Funktioniert komplett,
allerdings muss "Unterprogramm" als EXE vorliegen !!!
Achja, zur sicherheit sollte in Unterprogramm noch
ewas abgeändert werden.
handle&=@Val(@Par$(1))
^
Als Typ wird also eine LONG Variable benutzt, vorher
war es ein Integer, %-Typ. Unter Profan 6.0 ist das
noch wegen des 32 Bits nötig, sonst klappt das nicht
mit dem SetText auf Fremden Fensrer ...
gruss
Christian
|
| | Datum: 22.11.01 09:18 
(Peter.Stemmer@t-online.de) | |
Hallo Christian,
Jetzt klappts,habe das Handle in eine long variable umgewandelt und siehe da es funktioniert.
Vielen Dank für Deinen Tipp
Gruss Peter
|
|
|