Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi fremde Anwendung im Fenster (https://www.delphipraxis.net/62928-fremde-anwendung-im-fenster.html)

bluescreen25 11. Feb 2006 16:03


fremde Anwendung im Fenster
 
Hallo, teile meines Themas sind wohl schonmal hier diskutiert, aber ich kann nichts direktes finden, was mein Problem löst:

Also ich möchte gerne in meiner Anwendung, welche mehrere Forms beinhaltet eine Form bereitstellen, in der ein paar Steuerelemente des in meiner Anwendug laufenden MP3-Players anzeigen, und angedockt die fremde Anwendung, ein Navigationsprogramm.

Die fremde Anwendung sollte sich immer schön andocken, sowie wenn ich zwischendurch mal die Steuerelemente betätige noch "anwesend sein" und nicht in der Task verschwinden.

Wenn ich über meine Kontrolelemente mal in ein anderes Fenster meiner Anwendung wechsle, dann wieder zurück, sollte die fremde Anwendung noch da sein.


Wie könnte man das generell angehen. Ich bin nicht gerade ein Delphi-Profi.

Christian Seehase 11. Feb 2006 16:27

Re: fremde Anwendung im Fenster
 
Moin bluescreen,

falls ich Dich richtig verstanden habe, kannst Du das, vereinfacht, so machen:

Delphi-Quellcode:
  hWindow := FindWindow(nil,'Unbenannt - Editor');
  if hWindow = 0 then exit;
  Windows.SetParent(hWindow,Self.Handle);
Verallgemeinert:
Das Handle des gewünschten Hauptfensters suchen, und bei Erfolg den Parent änderen.
In obigem Beispiel würde das erste Standard-Notepad-Fenster, das gefunden wird, innerhalb des eignen Formulars angezeigt werden.
Wichtig ist aber, dass das beim Schliessen des eigenen Programmes berücksichtigt wird.
So eine Meldung wie: "Datei wurde noch nich gespeichert" kommt dann nicht, sondern das Programm wird einfach auch geschlossen.
Man könnte dann, beim Ende des eigenen Programms den Parent wieder auf Desktop ändern (SetParent(hWindow,0)).

bluescreen25 11. Feb 2006 19:02

Re: fremde Anwendung im Fenster
 
Danke erstmal, nur leider klappte das nicht so, wie ich es mir vorstellte.

Ich habe nochmal gesucht und eine schöne Procedure gefunden, in welcher der Aufruf und Positionierung gut geregelt ist.

Nur jetzt liegt "Notepad" hier als Beispiel in richtiger Fenstergröße und Position auf meiner Form, in welcher meine Controls sichtbar bleiben.
Wenn ich nun einen Button von meiner Form nutze, verschwindet Notepad in die Task.
Wie kann man die "fremde Anwendung" sichtbar auf meiner Form halten ? Und zwar nur auf dieser speziellen Form, denn wenn ich die Form wechsel , dann darf natürlich das Notepad nicht mehr sichtbar sein, wenn ich zurückkehre, dann wieder .

implementation 2. Sep 2008 15:41

Re: fremde Anwendung im Fenster
 
Also bei mir ist das so:

Das Fenster wird in mein Form gesetzt, aber die fremde Anwendung läuft immer noch weiter...

Der.Kaktus 2. Sep 2008 16:07

Re: fremde Anwendung im Fenster
 
Zitat:

Zitat von bluescreen25
Danke erstmal, nur leider klappte das nicht so, wie ich es mir vorstellte.

Ich habe nochmal gesucht und eine schöne Procedure gefunden, in welcher der Aufruf und Positionierung gut geregelt ist.

.....

TIP: Wie waere es, wenn Du diese Przedure mal hier reinstellst?..vielleicht interessiert das auch andere Forenmitglieder.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz