Parent von einer Anwendung zur anderen weiterreichen

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Parent von einer Anwendung zur anderen weiterreichen

Beitragvon ij1972 » Di, 25. Okt 2016 21:37

Hallo, ich bräuchte mal Hilfe bzgl. eines Problems:

Ich habe in meiner Anwendung derzeit ein MDI-Child aus dem ich ein Modales Fenster öffne.
Dieses modale Fenster möchte ich gerne in eine separate Anwendung auslagern.

Jetzt die Frage, wie kann ich dem modalen XBase Dialog in der einen Anwendung den Parent (MDI Child der anderen Anwendung) mitgeben, damit dieser weiterhin Modal zum MDI-Child ist?

Geht das überhaupt?

Die Anwendung mit dem modalen Dialog öffne ich per Runshell.
Danke schonmal im Voraus.
ij1972
Rookie
Rookie
 
Beiträge: 5
Registriert: Di, 11. Sep 2012 13:08

Re: Parent von einer Anwendung zur anderen weiterreichen

Beitragvon brandelh » Mi, 26. Okt 2016 8:07

Runshell hat 2 Parameter die das steuern:

Code: Alles auswählen
RunShell( <cCmdLine>    , ;
         [<cProgram>]   , ;
         [<lAsync>]     , ;
         [<lBackground>],
         [<aStdHandles>|<lInherit>] ) --> xReturn


werden beide nicht übergeben, sollte sich das Programm so verhalten wie du willst, denn Standard ist:
lAsync := .f. // Aufrufendes Programm anhalten
lBackground := .f. // und im Vordergrund starten
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13271
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Parent von einer Anwendung zur anderen weiterreichen

Beitragvon ij1972 » Mi, 26. Okt 2016 13:55

Hallo und danke erstmal für die Antwort.
Jedoch ist mein Problem nicht so trivial wie es den Anschein hat.
Ich starte die neue Anwendung mit dem Modalen Dialog mit lAsync=FALSE per Default damit meine Hauptanwendung wartet.

Klicke ich nirgends anderst wird die gestartete Anwendung auch brav angezeigt über den aufrufenden MDI-Childdialog.
Klicke ich auf den aufrufenden MDI-Childdialog verliert zwar der neu gestartete modale Dialog den Focus aber bleibt noch brav über den MDI-Child.
Klicke ich jedoch auf den App-Dialog geht der neue modale komplett hinter der Hauptanwendung und man denkt dann die Hauptanwendung hängt.

Habe mir nun damit beholfen den XbpDialog aus der gestarteten Anwendung mit alwaysOnTop=TRUE zu erstellen.
Damit bleibt dieser auch immer vor den anderen. Denn ich warte ja sowieso auf das Beenden des modalen Dialoges.

Für mich wäre es nur interessant und schöner gewesen, wenn dies überhaupt gegangen wäre, den Parent eines XbpDialoges über Anwendungen hinweg einem anderen XbpDialog zu übergeben/kommunizieren.
ij1972
Rookie
Rookie
 
Beiträge: 5
Registriert: Di, 11. Sep 2012 13:08

Re: Parent von einer Anwendung zur anderen weiterreichen

Beitragvon Wolfgang Ciriack » Mi, 26. Okt 2016 13:58

Warum startest du deinen neuen Dialog nicht über einen Thread ?
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: Parent von einer Anwendung zur anderen weiterreichen

Beitragvon AUGE_OHR » Mi, 26. Okt 2016 15:07

ij1972 hat geschrieben:Klicke ich jedoch auf den App-Dialog geht der neue modale komplett hinter der Hauptanwendung und man denkt dann die Hauptanwendung hängt.
ein MDI Fenster hat immer o:DrawingArea als Parent und dürfte nicht "verschwinden".
du könntest bei einem Modalen Fenster noch
Code: Alles auswählen
o:alwaysOnTop
hinzufügen damit es "oben bleibt".
ansonsten bleibt noch
Code: Alles auswählen
o:toFront()
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10154
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Parent von einer Anwendung zur anderen weiterreichen

Beitragvon brandelh » Do, 27. Okt 2016 7:42

Es gibt ein Beispiel in den dokus wo eine Anwendung 2 XbpCrt() steuert.
Aber ein ganz anderes Programm, da braucht man wohl die API dazu. Es gibt Beispiele mit ot4xb den Handle eines Fensters über seine Titelzeile abzufragen und
mit diesem Handle könnte man per API steuern - aber ich fürchte das ist sehr komplex und auch abhängig, was genau man da startet.

Falls es Xbase++ Anwendungen sind, solltet ihr euer Anwendungsmodell überdenken, sowas hat man früher gemacht.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13271
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim


Zurück zu Allgemeine Fragen

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 1 Gast