| Autor |
Beitrag |
delphi10
      
Beiträge: 447
Erhaltene Danke: 2
W2K, XP, Vista64, Win7 64
RAD-Studio 2010
|
Verfasst: Do 11.03.10 14:41
Hallo
Kann ein Programm feststellen, ob es aus der IDE oder mittels Doppelclick im Explorer gestartet wurde? Ich habe jetzt folgende Lösung eingebaut: In der IDE setze ich einen Parameter, der im Programm abgefragt wird. Dieser Parameter ist ja nur beim Start aus der IDE vorhanden, beim Start aus dem Explorer nicht. Funktioniert, aber es scheint mir nicht besonders elegant zu sein. Ein Compiler-Schalter o.ä. wäre mir lieber.
Hintergrund: Ich habe im Prog. einen Selfcheck implementiert, der aber leider bei einem Start aus der IDE (durchaus berechtigte) exceptions ohne Ende produziert. Gut, ich könnte den Check auch auskommentieren und zum Release wieder einbauen, ich will aber sichergehen, dass ich es nicht vergesse.
Besten Dank für Tipps oder Link.
Gruß Delphi10
_________________ Salus populi suprema lex esto
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.03.10 14:51
Du kannst prüfen ob das Programm gerade debuggt wird. Allerdings passiert das dann auch, wenn du es auf einem anderen PC aus Delphi heraus machst, aber nicht, wenn du es ohne Debugging aus der IDE startest.
Ich selbst habe das sehr viel einfacher gelöst. Zum Release kompiliert das Releaseskript die Exe einfach mit einer anderen Includedatei. Das geht automatisch, da es einfach die entsprechende Zeile in der Projektdatei durch die andere ersetzt und nach dem Kompilieren wiederherstellt. Vorher löscht es auch noch das Ausgabeverzeichnis und erstellt so alles neu bevor es automatisch das Setup erstellt und die fertigen Pakete auf den FTP-Server hochlädt.
Das geht seit XP mit den erweiterten Shellbefehlen direkt per Batchdatei, einfacher ist natürlich ein kleines Tool, das in der Batchdatei ausgerufen wird und die Zeile ändert.
Auf diese Weise kann ich mittels kleinen Änderungen an den Buildskripten die Compilerschalter für verschiedene Versionen sehr einfach setzen und diese automatisiert erstellen. Und ich habe eben ohne Skript eine Debugversion, die ich jederzeit in Delphi laden und weiterentwickeln kann.
Zuletzt bearbeitet von jaenicke am Do 11.03.10 14:52, insgesamt 2-mal bearbeitet
|
|
Nersgatt
      
Beiträge: 1581
Erhaltene Danke: 279
Delphi 10 Seattle Prof.
|
Verfasst: Do 11.03.10 14:52
Ich glaube, das wäre das falsche Vorgehen. Erklär mal, warum die Anwendung Exceptions wirft, wenn Sie aus der IDE gestartet wird und warum sie diese nicht wirft, wenn sie direkt gestartet wird.
_________________ Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 11.03.10 14:58
Die Exe wird die dort vermutlich auch werfen, nur dass man davon nichts sieht, weil man die Exceptions ja (ggf. nach deren Weitergabe usw.) abfängt. Beim Debuggen zeigt Delphi aber diese dann auch an. Und die dann in Delphi zu unterdrücken ist auch keine sinnvolle Lösung, denn dann sieht man diese auch an anderen (unerwarteten) Stellen nicht mehr.
Das war jedenfalls einer der Gründe weshalb ich es so mache wie ich es im Moment mache.
|
|
Tastaro
      
Beiträge: 414
Erhaltene Danke: 23
|
Verfasst: Do 11.03.10 15:34
Um die gestellte Frage zu beantworten:
Delphi-Quelltext 1: 2: 3: 4:
| if DebugHook <> 0 then begin end; |
Beste Grüße
|
|
delphi10 
      
Beiträge: 447
Erhaltene Danke: 2
W2K, XP, Vista64, Win7 64
RAD-Studio 2010
|
Verfasst: Fr 12.03.10 15:06
Hallo
Erstmal Danke für Eure schnellen und kompetenten Antworten.
@jaenicke: Ist sehr flexibel und läßt sich für vielfältige Zwecke formulieren
@Tastaro: Genau auf den Punkt gebracht.
Eingebaut habe ich erstmal die Lösung vom Tastaro, was ohne großen Umbauaufwand erledigt war. Langfristig und bei größeren Projekten werde ich aber jaenickes Vorschlag präferieren. Letztendlich lösen aber beide mein Problem.
Gruß Delphi10
_________________ Salus populi suprema lex esto
|
|
hathor
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 12.03.10 20:08
Stichwort: Design Time Control
|
|
|