Delphi-PRAXiS
Seite 1 von 2  1 2      

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/)
-   -   Kommunikation zwischen zwei Anwendungen/Fenstern (https://www.delphipraxis.net/155943-kommunikation-zwischen-zwei-anwendungen-fenstern.html)

Mysterio08 14. Nov 2010 13:52

Kommunikation zwischen zwei Anwendungen/Fenstern
 
Hallo,
ehrlich gesagt, kann ich mein Problem / meine Frage nicht genauer stellen, weil ich noch nicht den Weg des (steinigen) Pfades kenne.
Ich habe eine Form, mit dessen Hilfe man eine Datenbank erstellen kann. Sofern dies geschehen ist, wird der Datenbankname in eine Datei geschrieben und es soll eine zweite Form geöffnet werden. Auf dieser sollen die in der Datenbank enthaltenen Tabellen und die -Definitionen ersichtlich und modifizierbar sein. Das erst beschriebene Formular ist das, was standardmäßig von Delphi erstellt wird, sofern man eine VLC-Anwendung erstellt, das zweite eine hinzugefügte Form.
Nachdem die Datenbank erstellt und in die Datei geschrieben wurde, soll sich das erste Fenster schließen. Das zweite kann ja aber nur angezeigt werden, sofern die (Haupt-)Form öffnen ist. Erstelle ich also zwei unterschiedliche Anwendungen oder gibt es noch eine andere Möglichkeit, eine Form aufzurufen / zu definieren ohne dass die zweite an der ersten gekoppelt ist?
Wenn ich zwei Anwendungen erstelle und die zweite über das erste Programm aufrufe: wie kann ich dann dem zweiten Programm mitteilen, wo die eben erstellte Datei liegt, damit die zweite Applikation damit arbeiten kann?

Ich hoffe, es war ein bisschen verständlich, wenn nicht, werde ich das eine oder andere genauer erklären.

mfg.

SirThornberry 14. Nov 2010 13:57

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Du kannst bei einem formular mit Formular.visible bestimmen ob es angezeigt wird. Das geht auch für das Hauptformular. Bevor du dein zweites Formular anzeigst sollte es eigentlich möglich sein über .visible dieses auszublenden

Mysterio08 14. Nov 2010 15:37

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Daran habe ich auch schon gedacht und es ausprobiert. Der Nachteil daran ist jedoch, dass das Icon aus der Taskleiste verschwindet.
Schließt man nun das zweite Formular, ist der Prozess des Programms ja immer noch offen. Natürlich könnte man das OnClose-Ereignis auswerten, aber es gefällt mir schon nicht, dass das erste Formular im Hintergrund offen bleibt und unnötig Speicher frisst.
Es muss eine elegantere Lösung geben!

DeddyH 14. Nov 2010 16:18

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Wieso elegantere Lösung? So funktionieren (fensterorientierte) Windows-Programme nunmal.

Bummi 14. Nov 2010 16:27

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Du könntest Dein Mainform auch leer lassen und die benötigten Forms ohne Rand erzeugen, Ihnen Mainform als Parent setzen, align alClient und das welches Du nicht mehr brauchst frei geben und ein anderes laden.

Mysterio08 14. Nov 2010 16:58

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Zitat:

Zitat von DeddyH (Beitrag 1061426)
Wieso elegantere Lösung? So funktionieren (fensterorientierte) Windows-Programme nunmal.

Mag sein, aber ich habe noch nie eine Applikation gesehen, wo das Icon in der Taskleiste verschwindet und man, abgesehen von der Form (die man ja auch minimieren kann), nur noch im TaskManager sieht, dass die Anwendung offen ist.
Kann man denn das Icon der Taskleiste nicht eingeblendet lassen?

DeddyH 14. Nov 2010 17:06

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Ab Delphi 2007 gibt es die Property TApplication.MainformOnTaskbar, die ist AFAIK dafür zuständig. Ansonsten muss man halt ein wenig nachhelfen(ich denke mit ShowWindow, bin aber gerade zu faul zum Nachsehen).

stahli 14. Nov 2010 17:07

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Man könnte auch ein PageControl zum umschalten nutzen und dessen Register ausschalten.

Mysterio08 15. Nov 2010 16:04

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Also mit TApplication.MainformOnTaskbar on Taskbar klappt nicht. Ich habe die Eigenschaft swohl auf das Main- als auch auf das zweite Formular angewandt, beides hat nichts genützt.

Und mit ShowWindow habe ich schon folgendes vergebens versucht:

Delphi-Quellcode:
ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_SHOWNA);
//Und
ShowWindow(Application.Handle, SW_SHOW);
Das mit den PageControl will ich nicht so gerne machen, mir gefällt der Lösungsansatz mit den Ausblenden besser.

Luckie 15. Nov 2010 18:35

AW: Kommunikation zwischen zwei Anwendungen/Fenstern
 
Zitat:

Zitat von Mysterio08 (Beitrag 1061399)
Wenn ich zwei Anwendungen erstelle und die zweite über das erste Programm aufrufe: wie kann ich dann dem zweiten Programm mitteilen, wo die eben erstellte Datei liegt, damit die zweite Applikation damit arbeiten kann?

Mit der Nachricht WM_COPYDATA zum Beispiel.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:48 Uhr.
Seite 1 von 2  1 2      

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