Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 249344 (10780)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Fensterhandle
Peter
| 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
Christian Devilbis
| 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
Peter
| 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
Jörg Sellmeyer
| 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
Christian Devilbis
| 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 ...
Peter
| 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
Martin
| 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
Christian Devilbis
| 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
Peter
| 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

| Zurück zur Übersicht