![]() |
Exe Start / out of Process
Hallo,
gibt es eine Möglichkeit in einer Exe herauszubekommen, wie diese gestartet wurde? Über Shell oder als Com-Server? In dem Programm gibt es eine Mainform mit Menüs, Toolbutton u.s.w. Mit diesen Möglichkeiten werden weitere Forms modal aufgerufen.
Delphi-Quellcode:
Dieses Programm habe ich jetzt mit einer Com Schnittstelle versehen und kann einzelne Forms direkt aufrufen.
Button1 ->
whith TFormKundendaten.Create(nil) do begin Showmodal; Free; end;
Delphi-Quellcode:
Beim Aufruf als out of Processserver wird das gewünschte Modul mit einem Parent aus dem rufenden Programm dargestellt.
ComInterface.ShowKundendaten(Parent)
Das funktioniert alles wie gewünscht. Beim Aufruf über die Com - Schnittstelle wird jedoch zuerst die Mainform angezeigt und dann die gewünschte Form. Setze ich in Showkundendaten Mainform.visible := false, dann blitzt diese beim Start kurz auf. Ich suche jetzt eine Möglichkeit die Sichtbarkeit der Mainform zu unterdrücken, wenn das Programm als Out of Process Server gestartet wird. Im Moment realisiere ich das mit ein paar Klimmzügen über eine Hilfsform und einen Timer, womit ich aber nicht zufrieden bin. Hat wer einen Tip wie man das Problem eleganter lösen könnte. Gruß Peter |
Re: Exe Start / out of Process
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Mit ComServer.StartMode = smStandalone oder ComServer.StartMode = smAutomation ist eine Abfrage möglich. Ganz sauber ist die Lösung aber immer noch nicht. Der Standalone Server könnte von Hand beendet werden. Die bessere Lösung wird wahrscheinlich sein , das Hauptmenü in eine eigene Exe auszulagern und im Comserver nur die Funktionalität bereitzustellen. Das ganze gibt übrigens ein plattformübergreifendes Pluginsystem mit Delphi. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 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