Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249344 (10780)
  Suchen
 Zurück zur Übersicht
 AutorThema: Fensterhandle
Peter
Datum:15.11.01 15:10 Antwortenals Email verschicken (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




Christian Devilbis
Datum:15.11.01 16:23 Antwortenals Email verschicken (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



Peter
Datum:16.11.01 11:13 Antwortenals Email verschicken (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


Jörg Sellmeyer
Datum:16.11.01 11:18 Antwortenals Email verschicken (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


Christian Devilbis
Datum:16.11.01 13:21 Antwortenals Email verschicken (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 ...




Peter
Datum:16.11.01 17:58 Antwortenals Email verschicken (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


Martin
Datum:19.11.01 16:51 Antwortenals Email verschicken (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




Christian Devilbis
Datum:20.11.01 07:39 Antwortenals Email verschicken (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



Peter
Datum: 22.11.01 09:18 Antwortenals Email verschicken (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


 Zurück zur Übersicht