Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Exe Start / out of Process (https://www.delphipraxis.net/146882-exe-start-out-process.html)

hanspeter 28. Jan 2010 18:55


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:
Button1  ->
whith TFormKundendaten.Create(nil) do
begin
  Showmodal;
  Free;
end;
Dieses Programm habe ich jetzt mit einer Com Schnittstelle versehen und kann einzelne Forms direkt aufrufen.

Delphi-Quellcode:
ComInterface.ShowKundendaten(Parent)
Beim Aufruf als out of Processserver wird das gewünschte Modul mit einem Parent aus dem rufenden Programm dargestellt.

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

hanspeter 28. Jan 2010 20:28

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