![]() |
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. |
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
|
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! |
AW: Kommunikation zwischen zwei Anwendungen/Fenstern
Wieso elegantere Lösung? So funktionieren (fensterorientierte) Windows-Programme nunmal.
|
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.
|
AW: Kommunikation zwischen zwei Anwendungen/Fenstern
Zitat:
Kann man denn das Icon der Taskleiste nicht eingeblendet lassen? |
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).
|
AW: Kommunikation zwischen zwei Anwendungen/Fenstern
Man könnte auch ein PageControl zum umschalten nutzen und dessen Register ausschalten.
|
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:
Das mit den PageControl will ich nicht so gerne machen, mir gefällt der Lösungsansatz mit den Ausblenden besser.
ShowWindow(FindWindow('Shell_TrayWnd',nil), SW_SHOWNA);
//Und ShowWindow(Application.Handle, SW_SHOW); |
AW: Kommunikation zwischen zwei Anwendungen/Fenstern
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz