Erkennen ob Programm als fertige EXE oder noch im IDE läuft...?
-
Hallo,
wie kann man im Programm mit einer Boolean Var erkennen,
ob das Programm als EXE oder noch im IDE läuft?Hintergrund: ich habe ab und an eine ShowMessage die nur im
Interpreter (IDE) erscheinen soll z.B. mitIf (!PrgComp) { ShowMessage("Aktueller.."); }
Danke für jeden Hinweis Stefan
P.S. Unter Google und Forum nichts gefunden
-
Ich habe das bei mir so gelöst:
Ich frage über "Application->ExeName.c_str())" das Heimatverzeichnis des Programms ab und vergleiche es mit einem konstanten String (strstr).Wenn man die Sourcen in ein bestimmtes Verzeichnis legt, das einen speziellen Namen hat, dann hat man so gut wie ausgeschlossen, dass es beim Anwender auch zutrifft.
-
Habe ich mir auch schon überlegt, finde ich aber unsauber.
Vielleicht kennt ja jemand eine schönere Lösung...
Trotzdem Danke für den Hinweis.Gruss Stefan
-
Wie wäre es mit OutputDebugString? (WinAPI
-
Die Eigenschaft ComponentState beschreibt den aktuellen Status der Komponente und zeigt an, ob die Ausführung bestimmter Aktionen erlaubt ist.
enum Classes__34 { csLoading, csReading, csWriting, csDestroying, csDesigning, csAncestor, csUpdating, csFixups, csFreeNotification, csInline, csDesignInstance };
typedef Set<Classes__34, csLoading, csDesignInstance> TComponentState;
__property TComponentState ComponentState = {read=FComponentState, nodefault};
-
Das wird auch nicht viel helfen da csDesigning besagt das die Komponente gerade in der Designansicht ausgführt wird.Damit sind z.B. die Tabellen mit Vorschau in der IDE möglich.
Was er meint ist abfrage ob das Programm per Doppeklick im Explorer oder Menüpunkt im BCB gestartet wurde.
-
Wie wäre es mit IsDebuggerPresent ?