AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programm selbst beenden

Ein Thema von hacki · begonnen am 20. Dez 2003 · letzter Beitrag vom 20. Dez 2003
Antwort Antwort
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#1

Programm selbst beenden

  Alt 20. Dez 2003, 10:30
Hallo,

aufgrund von Exceptions oder sonstigen Fehlern im Programm möchte ich aus dem Programm heraus selbiges selbst beenden. Ich habe es schon versucht mit

Code:
MainForm.Close;
oder auch mit
Code:
Application.Terminate;
und auch mit beidem.

Sie führen zwar dazu, das das Programm beendet wird, doch führen Sie zunächst noch die übergeordneten Routinen aus in denen Sie aufgerufen wurden.

und auch ein

Code:
exit
sprengt nur die aktuelle routine, nicht die übergeordnete !

=> Dies führt aber unweigerlich zu weiteren Exeptions und möglicherweise zu Datenbank-Inkonistenzen. Daß die From-Close Routine ausgeführt wird ist gewollt und gut aber dann soll das Programm auch beendet sein !!!

Wie kann ich das verbessern ? Ich bin echt ratlos....

Hoffe ihr könnt mir helfen und "laßt mich nicht dumm sterben"

grüsse
hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Niels

Registriert seit: 25. Okt 2003
192 Beiträge
 
#2

Re: Programm selbst beenden

  Alt 20. Dez 2003, 10:45
Moin!

Exit kann man zwar benutzen, aber man sollte versuchen ohne auszukommen.

Ansonsten musst du dein Programm einfach so aufgebaut werden, dass die anderen Prozeduren gestoppt werden. Eine Möglichkeit wäre mit einer globalen Variable (boolean) zu speichern ob das Programm weiterlaufen soll oder abgebrochen wird. Dann kannste in den übergeordneten Prozeduren nach Aufruf der Unterprozedur, die MainForm.Close oder so enthält überprüfen ob weitere Befehle ausgeführt werden sollen oder nicht und je nach dem dann entscheiden was passiert.

Ich hoffe ich hab etwas verständlich geschrieben

MfG Niels
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#3

Re: Programm selbst beenden

  Alt 20. Dez 2003, 12:00
Hi Niels,

danke erstmal für deine Hinweise

Zitat:
Exit kann man zwar benutzen, aber man sollte versuchen ohne auszukommen.
Ich habe das EXIT nur verwendet, da CLOSE und TERMINATE nicht direkt das Prog beenden, sondern die Routine weiter ausführen.

Mit einer logischen Variable zu arbeiten finde ich in einem großen Prog nicht praktikabel, da Du jede Anweisung dann in Abhängigkeit von dieser Variblen ausführbar machen muß, sprich

unendlich viele IF - Konstrukte bilden mußt !!!

TERMINATE und CLOSE beenden das Programm ja, allerdings nicht sofort !!! Ich möchte aber nicht, das weitere Operationen ausgeführt werden

Ich hoffe, da gibt's noch ein paar Tricks

grüsse
hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
DevStar
(Gast)

n/a Beiträge
 
#4

Re: Programm selbst beenden

  Alt 20. Dez 2003, 12:20
Zitat von hacki:
TERMINATE und CLOSE beenden das Programm ja, allerdings nicht sofort !!! Ich möchte aber nicht, das weitere Operationen ausgeführt werden
Halt()

MfG
DevStar
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#5

Re: Programm selbst beenden

  Alt 20. Dez 2003, 12:55
Hi,

ne totsichere Methode ist :

SendMessage(handle,WM_Close,0,0);
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#6

Re: Programm selbst beenden

  Alt 20. Dez 2003, 12:59
Joah aba soweit ich weiß werden die Nachrichten doch erst nacheinander abgearbeitet, wenn er jetzt ne Fkt hat die das ganze Prog auslastet könnte das doch taaauuuusend Jahre (in etwas übertriebener Darstellung ) dauern bis das Prog sich schließt.
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
BungeeBug

Registriert seit: 19. Dez 2002
Ort: zuhause?!
227 Beiträge
 
Delphi 6 Personal
 
#7

Re: Programm selbst beenden

  Alt 20. Dez 2003, 13:34
Hi,

jup richtig nur tuen eure Vorschläge alle nix anderes ... meine ist der direkte Weg über die API eure machen noch nen kleinen Umweg über die Borland VCL. Dauern kann alles ... dazu brauche man die ProcessMessages.
MfG BungeeBug
Wer andern eine Grube gräbt sollte auf Gasleitungen achten!!!!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Programm selbst beenden

  Alt 20. Dez 2003, 13:37
Zitat von hacki:
Hallo,

aufgrund von Exceptions oder sonstigen Fehlern im Programm möchte ich aus dem Programm heraus selbiges selbst beenden. Ich habe es schon versucht mit

[..]

sprengt nur die aktuelle routine, nicht die übergeordnete !

=> Dies führt aber unweigerlich zu weiteren Exeptions und möglicherweise zu Datenbank-Inkonistenzen. Daß die From-Close Routine ausgeführt wird ist gewollt und gut aber dann soll das Programm auch beendet sein !!!
wie wäre es die Fehler im Programm zu beheben, anstatt an den Symptomen rumzudocktern? Ergo, kuck was im OnClose, OnDestroy deines Fensters passiert und finde den Fehler.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#9

Re: Programm selbst beenden

  Alt 20. Dez 2003, 13:39
Zitat von BungeeBug:
jup richtig nur tuen eure Vorschläge alle nix anderes ...
Zum Glück hatte ich keine Vorschlag unterbreitet Ich bin aber auch Luckies Meinung.
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
hacki

Registriert seit: 15. Nov 2002
96 Beiträge
 
Delphi XE5 Professional
 
#10

Re: Programm selbst beenden

  Alt 20. Dez 2003, 14:37
hi Lucki,

ich bin zwar grundlegend deiner meinung, dennoch können operationen wie beispielsweise der batchmove aus irgendwelchen gründen auf dem zielrechner fehlschlagen - diese ursachen kann man nur bedingt abfangen und bearbeiten.

da das prog nur weiter gestartet werden kann, wenn die datenumsetzung hingehauen hat und ich zudem noch mehrere tabellen geöffnet halte schreibe ich ein wiederaufsetz und fehlerprotokoll und beende das programm => Das Fortfahren mit dem Programm führt unweigerlich zu Folgefehler, da z.b. auf Felder zugrgriffen wird die vor der umsetzung nicht vorhanden waren !!! => Ein Analysieren und späteres Neu starten des Progs ist am sichersten.


Kennt jemand die genauen Exceptions beim Batchmove oder wißt ihr wo ich Dokumentationen finden kann ??

greetings hacki
Es ist nicht gesagt, daß es besser wird, wenn es anders wird! Wenn es aber besser werden soll, muß es anders werden! ** There are 10 different types of people in this world; those who understand binary numbers and those who don’t !
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:20 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