AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi fremde Anwendung als eigenes Formular anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

fremde Anwendung als eigenes Formular anzeigen

Ein Thema von MStoll · begonnen am 8. Mär 2006 · letzter Beitrag vom 9. Mär 2006
Antwort Antwort
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#1

fremde Anwendung als eigenes Formular anzeigen

  Alt 8. Mär 2006, 00:01
Hallo

ich meine sowas schonmal irgendwo beschrieben gesehen zu haben und habe auch länger gesucht, aber leider nichts mehr gefunden.
Ich habe eine Software-Suite aus verschiedenen Anwendungen. Nun möchte ich eine sog. "Host"-Anwendung machen, innerhalb derer alle Programme gestartet werden können, einfach um die Übersicht zu behalten und nicht so viele Anwendungen in der Taskleiste zu haben, am besten so, dass alle minimiert/angezeigt werden, wenn die "Host"-Anwendung minimiert/angezeigt werden. Gut wäre auch, wenn diese Anwendungen sich ähnlich wie MDI-Childs verhalten oder vll als TabSheets in ein PageControl eingebettet werden könnten.

Für eure Hilfe schonmal vielen Dank.

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#2

Re: fremde Anwendung als eigenes Formular anzeigen

  Alt 8. Mär 2006, 06:43
Hi ho!

Ich habe eben diese deine Vorstellungen letztens im Versandprogramm hier auf Arbeit wie folgt umgesetzt: Jedes Modul liegt als DLL vor und besitzt ein standardisiertes Interface. Die Hauptanwendung sucht in einem Verzeichnis alle DLL's und versucht sie als Modul zu laden. Wenn das gelingt, kommt ein Eintrag in Treeview. Wenn der Nutzer einen Eintrag aus dem Treeview wählt, signalisiert das Hauptprogramm dem Modul, das es sein Hauptformular erstellen soll, erzeugt ein neues TabSheet und setzt das Modul-Fenster als Child ins neue Tabsheet.

Vielleicht hift dir das weiter. Diese Methode setzt natürlich voraus, das du deine Programme in DLL's konvertierst. Alternativ könntest du auch deine Exen starten, die dir dann sagen, welche Fenster-Handles sie haben und dann lässt du dein Hauptprogramm die Fenster "fangen" und machst sie zu "deinen Kindern".
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: fremde Anwendung als eigenes Formular anzeigen

  Alt 8. Mär 2006, 12:06
Hallo chaosben,

die Idee mit den Dlls finde ich sehr elegant. Wär jedoch froh, wenn noch jemand einen Ansatz mit eigenständigen Programmen hätte, da diese auch einzeln lauffähig sein sollen, ohne dass ich zu jeder "Programm"-DLL noch ne exe machen muss, die diese dann ausführt. Außerdem hab ich bei DLLs die Erfahrung gemacht, dass Formulare, die darin enthalten sind und ausgeführt werden, ihren eigenen Eintrag in der Taskleiste erhalten. Müsste ich da die Parent-property auf das eigentliche Hauptformular der "Host"-Anwendung legen?

Gruß
Michael
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: fremde Anwendung als eigenes Formular anzeigen

  Alt 9. Mär 2006, 06:14
Hi ho!

Zitat von MStoll:
Außerdem hab ich bei DLLs die Erfahrung gemacht, dass Formulare, die darin enthalten sind und ausgeführt werden, ihren eigenen Eintrag in der Taskleiste erhalten. Müsste ich da die Parent-property auf das eigentliche Hauptformular der "Host"-Anwendung legen?
Schon ganz nah dran. Ich glaube der entscheidende Punkt ist das Create des Formulars. Ich bewerkstellige das mit CreateParented(Tabsheet.Handle) Damit sollte es keine Probleme mit der Taskbar geben.
Aber: Es gibt bei der DLL-in-Parent-Lösung ein Problem mit den Tasten. Z.b. werden CommandKeys schon von der Hauptanwendung "gefressen" (auch ohne Keypreview) so dass man sie von dort per Hand weiterleiten muss. Das ist technisch möglich, man darf es nur nicht vergessen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 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