AGB  ·  Datenschutz  ·  Impressum  







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

Exception bei Programmende

Ein Thema von H.Bothur · begonnen am 10. Aug 2020 · letzter Beitrag vom 12. Aug 2020
Antwort Antwort
Seite 2 von 4     12 34      
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#11

AW: Exception bei Programmende

  Alt 10. Aug 2020, 11:33
Es geht durchaus ohne das Application.Run.

Das Prograsmm macht dann alles, was in der DPR steht und beendet sich dann automatisch wieder (funktioniert also ähnlich einem Konsolenprogramm, das zufällig / irrtümlich 'ne Oberfläche hat). Hab' ich schon häufiger so gelöst für Programme, die man einmal mit Oberfläche starten und steuern kann, die aber auch im Batchbetrieb eingesetzt werden konnten. Die Unterscheidung, ob Application.Run aufgerufen wird oder nicht, erfolgte dabei über Komandozeilenparameter.
Kein Parameter, dann Run, ansonsten das, was die Parameter vorgaben.

Ohne den Inhalt von MainForm.Verarbeitung; wird es bei der Fehlersuche aber eher schwierig.

Fehler in der Entwicklungsumgebung nur mit oder nur ohne aktiven Debugger?

Auch da kann es noch Unterschiede geben (auch wenn dem eigentlich nicht so sein sollte).
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.445 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Exception bei Programmende

  Alt 10. Aug 2020, 11:52
<deleted>

Geändert von freimatz (10. Aug 2020 um 12:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Exception bei Programmende

  Alt 10. Aug 2020, 12:04
Aber ohne ein Application.Run ist doch das Application Object noch gar nicht voll Funktions bereit?
Die ganzen Messages und SpeicherManager usw sind da doch noch inaktiv, oder?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#14

AW: Exception bei Programmende

  Alt 10. Aug 2020, 12:15
Also bei mir laufen solche Programme ohne Run seit Jahr und Tag problemlos.

Die Oberfläche ist in dem Fall ja nicht zur Bedienung da, sondern nur zur Anzeige dessen, was man dort ausgibt, z. B. 'ne Progressbar oder Infotexte für gerade gemachte Arbeitsschritte, ...

Es sind streng genommen ja keine "Anwenderprogramme" sondern nur optisch nicht auf der Konsole, sondern mit Windowsmitteln, dargestellte Konsolenprogramme

Bei meinem Delphi geht Run eigentlich nur ein eine "Endlosschleife", bis das Programm beendet wird.
Delphi-Quellcode:
      repeat
        try
          HandleMessage;
        except
          HandleException(Self);
        end;
      until Terminated;
Aber eigentlich geht das am Thema vorbei.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Exception bei Programmende

  Alt 10. Aug 2020, 12:49
Ich habe zwar gerade kein Delphi offen vor mir aber das schaut mir exakt so aus wie das was Application.Run macht.
Recht hast Du, zurück zum Thema, Freimatz schrieb CallStack oder andere wollten "Was macht [Verarbeitung]" wissen oder KodeZwerg gab eine dpr & Formular Anpassung.
Gibt's Fortschritte?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
hoika

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

AW: Exception bei Programmende

  Alt 10. Aug 2020, 12:57
Hallo,
1. Liegt das Programm zufällig auf einem Netzlaufwerk?
2. Setze in der DPR auf das end. einen Breakpoint und drücke dann F7.
3. Arbeitest Du mit interfaces?
Heiko
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Exception bei Programmende

  Alt 10. Aug 2020, 13:09
Es geht durchaus ohne das Application.Run.

Das Programm macht dann alles, was in der DPR steht und beendet sich dann automatisch wieder (funktioniert also ähnlich einem Konsolenprogramm, das zufällig / irrtümlich 'ne Oberfläche hat).
Stimmt - ich glaube das war der Grund - das Programm sollte automatisch starten und sich dann von alleine auch wieder beende - aber eben anzeigen was es tut

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
257 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Exception bei Programmende

  Alt 10. Aug 2020, 13:33
Freimatz schrieb CallStack
Sorry - aber wie gebe ich das aus ??

Zitat:
oder andere wollten "Was macht [Verarbeitung]" wissen
Da wird einfach eine CSV-Datei eigelesen, umformatiert und drei andere CSVs wieder ausgegeben:

Delphi-Quellcode:
procedure TMainForm.Verarbeitung;
var
  timeDate : TDateTime;
  ArbeitsDatei: String;
begin
  GrundeinstellungenLaden;
  AusgabeForm.InitSG;
  AktDatum := DateTimeToStr(Now);
  AktDatum := Copy(AktDatum, 7, 4) +Copy(AktDatum, 4, 2) +Copy(AktDatum, 1, 2);
  Arbeitsdatei := DatenVerzeichnis +EinleseDatei;
  if ParamStr(1) <> 'then Arbeitsdatei := ParamStr(1);
  if FileExist(Arbeitsdatei) then
  begin
    DatenLaden(ArbeitsDatei);
    MainForm.DateiNameLbE.Text := EinleseDatei;
    FileAge(DatenVerzeichnis +EinleseDatei, timeDate);
    MainForm.DateiDatumLbE.Text := DateTimeToStr(timeDate);
    MainForm.ZeilenZahlLbE.Text := FloatToStr(EinleseListe.Count);
    MainForm.Refresh;
    DatenVerarbeiten;
    AusgabeListeSchreiben;
    MailAnhang.Add(Arbeitsdatei);
    if not AllesSchreiben then Mailen.SendeMail(MailEmpfaenger, '', 'AXRO-Preisliste ' +DateToStr(date), MailAnhang);
    if (KopieSenden and not AllesSchreiben) then
    begin
      MailEmpfaenger := KopieEmpfaenger;
      Mailen.SendeMail(MailEmpfaenger, '', 'AXRO-Preisliste ' +DateToStr(date), MailAnhang);
    end;
    DatenSchreiben(Arbeitsdatei);
    AusgabeForm.SchreibePreispflegeDatei;
    AusgabeListeLoeschen;
    AusgabeForm.ShowModal;
    GrundeinstellungenSchreiben;
  end else ShowMessagePos('Preisdatei fehlt - Programm wird beendet !', 200, 200);
  Application.Terminate;
end;
Zitat:
KodeZwerg gab eine dpr & Formular Anpassung. Gibt's Fortschritte?
Noch nicht - da muss ich mehr dran machen weil so die zweite Form noch gar nicht zur Verfügung steht.

Liegt das Programm zufällig auf einem Netzlaufwerk?
Ja - Laufwerk i:\

Zitat:
2. Setze in der DPR auf das end. einen Breakpoint und drücke dann F7.
Die Exception kommt wirklich erst wenn das end. aus der .dpr erreicht wird.

Zitat:
3. Arbeitest Du mit interfaces?
Nein

Ich hoffe das hilft irgendwie weiter

Gruß
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#19

AW: Exception bei Programmende

  Alt 10. Aug 2020, 13:43
Verzichte auf das Application.Terminate

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#20

AW: Exception bei Programmende

  Alt 10. Aug 2020, 13:49
Ohne Run muss dashier nicht sein: Application.Terminate; Mach das bitte mal weg. (Sherlock war schneller )

Da Verarbeitung eine Routine von TMainForm ist, könnte statt des Application.Terminate auch ein Close reichen, zumindest mach ich das immer so, wenn ich ein Programm beenden will. Methode Close des Hauptformulars aufrufen. (Ist nämlich extra dazu da.)

Mir widerstrebt es immer wieder, wenn an einer Stelle, an der sich ein Programm, aufgrund des programmierten Ablaufes, sowieso beendet nochmal zu schreiben: "Beende Dich".

Ohne Run endet das Programm nach dem Aufruf von MainForm.Verarbeitung in der DPR. Warum muss dann in MainForm.Verarbeitung nochmal stehen: "Beende Dich"?

Keine Ahnung, ob das jetzt irgendwelche Auswirkungen "im realen Leben" hat. Aber es ist mindestens moppeltgedoppelt (oder so )
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 05:03 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