AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Aus laufendem Programm Programm beenden und neu starten

Aus laufendem Programm Programm beenden und neu starten

Ein Thema von wendelin · begonnen am 11. Nov 2020 · letzter Beitrag vom 12. Nov 2020
Antwort Antwort
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
121 Beiträge
 
Delphi 7 Enterprise
 
#1

Aus laufendem Programm Programm beenden und neu starten

  Alt 11. Nov 2020, 18:39
Hallo,
ich habe eine vielleicht dumme Frage.
Ich habe ein Programm translated (aus Python 3.x nach Delphi7 (Corona-Simulation)) und möchte aus dem laufenden Programm heraus dieses beenden
und neu starten.
Der Grund : ich bin zu faul für alle glob. Variablen (dyn. Array's) den Speicher freizugeben und neu zu initialisieren.
Ist sowas überhaupt möglich ?

Wendelin
Wolfgang
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Aus laufendem Programm Programm beenden und neu starten

  Alt 11. Nov 2020, 18:43
Hallo,
separates Programm benutzen.
Dieses starten, das eigene Programm beenden und das andere Programm startet dein eigenes Programm neu.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#3

AW: Aus laufendem Programm Programm beenden und neu starten

  Alt 11. Nov 2020, 19:08
So richtig verstehen tue ich die Problemstellung nicht. Es ist doch simpel, das eigene Programm, also ParamStr(0) oder Application.ExeName, mit ShellExecute(Ex) zu starten und die erste Instanz danach zu beenden (Application.MainForm.Close oder Self.Close, abhängig vom Code-Kontext).

Grüße
Dalai
  Mit Zitat antworten Zitat
Alallart

Registriert seit: 8. Dez 2015
153 Beiträge
 
#4

AW: Aus laufendem Programm Programm beenden und neu starten

  Alt 11. Nov 2020, 19:21
@Dalai

Stimmt schon, vorausgesetzt es stört nicht, dass zwei Programme gleichzeitig offen sind und sich evtl. überlagern.

Ansonsten kann man z.B. eine Bachdatei im Temp-Ordner erstellen und starten, eigenes Programm beenden, und die Bachdatei startet dann das neue Programm. Danach die Bachdatei löschen.

Problem dabei ist, dass die Bachdatei das neue Programm starten wird, während das erste noch beendet wird. Sollte es so sein, dass immer nur eine Instanz eines Programms gestartet sein soll, sollte man in die Bachdatei eine kurze Verzögerung einbauen.

Ansonsten ein kleines Tool programmieren und als Ressource einbinden. Dann auslagern und so weiter wie bei der Bachdatei. Vorteil hier - man hat mehr Möglichkeit und kann z.B. prüfen ob das alte Programm noch offen ist.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Aus laufendem Programm Programm beenden und neu starten

  Alt 12. Nov 2020, 06:04
Der Grund : ich bin zu faul für alle glob. Variablen (dyn. Array's) den Speicher freizugeben und neu zu initialisieren.
Zumindest ehrlich.
Wieiviel Zeit hast du jetzt investiert, um das Problem mit dem Neustart zu lösen und wie lange hätte es gedauert, den Speicher freizugeben und die Variablen zu initialisieren?
Peter
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.330 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Aus laufendem Programm Programm beenden und neu starten

  Alt 12. Nov 2020, 07:29
Wenn du eine Klasse mit privaten Feldern statt der globalen Variablen verwendet hättest, müsstest du nur die Klasse neu erzeugen. Deren Felder werden nämlich (wie globale Variablen beim Start der Anwendung) beim Erzeugen der Klasse mit 0, nil usw. initialisiert.

Zudem hättest du gleich eine bessere Struktur im Programm.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
wendelin

Registriert seit: 29. Dez 2010
Ort: Nürnberg
121 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Aus laufendem Programm Programm beenden und neu starten

  Alt 12. Nov 2020, 09:12
Danke an Euch alle für Eure Lösungsvorschläge.

Was ich noch genau machen werde weis ich nicht.
Vielleicht lasse ich es auch dabei.
Dann muß eben der User nach jeder Berechnung das Programm
beenden und gegebenenfalls neu starten.

Wenn das Programm so läuft wie ich es möchte, werde ich es
in die 'Projekte der Mitglieder' einstellen.

Wendelin
Wolfgang
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:09 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