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 1 von 3  1 23      
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Exception bei Programmende

  Alt 10. Aug 2020, 10:28
Dann sind es vielleicht Klassen die keinen Owner haben.
Wie sieht der Callstack aus?
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Exception bei Programmende

  Alt 10. Aug 2020, 10:51
Vielen Dank für Eure Hilfen, ich habe da aber nur mehrere StringList erstellt und diese alle auch richtig wieder freigegeben.
Es knallt wirklich beim beenden des Programmes - allerdings nur in der Entwicklungsumgebung - wenn ich das Programm direkt starte passiert nichts.
Und zwar hier:

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TMailen, Mailen);
Application.CreateForm(TAusgabeForm, AusgabeForm);
MainForm.Show;
MainForm.Verarbeitung;
end. <----------------------------------



Ob das CPU-Fenster was aussagt weiß ich nciht - ich hab da mal ein Hardcopy angehängt.
Angehängte Grafiken
Dateityp: jpg cpu.jpg (92,8 KB, 33x aufgerufen)
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Exception bei Programmende

  Alt 10. Aug 2020, 10:58
Fehlt da nicht noch irgendwo ein Application.Run was einen bezug zur Zeile Application.Initialize; hat?


Delphi-Beispiel einer .dpr Datei:
Delphi-Quellcode:
{
This example shows progress of loading forms as an
application starts up. The code example is placed in the
project source (*.dpr) file.  To see project source, right
click on the executable file in the Project Manager and
select the View Source menu item.  You will need to set up
your project with the following steps before using the codeexample:    Add four additional forms to a default project.
    Place a TProgressBar on Form5
    Take the Project|Options|Forms menu option and place
          Form5 on the available forms list.
    Change the code of your project (*.dpr) file to look
          like the example.
}

begin
  Application.Initialize;
  with TForm5.Create(nil) do
  try
    Application.MainFormOnTaskbar := True;
    ProgressBar1.Max := 100;
    Show; // show a splash screen contain ProgressBar control
    Update; // force display of Form5
    Application.CreateForm(TForm1, Form1);
    ProgressBar1.StepBy(25);
    Label1.Caption := 'Form1 loaded successfully.';
    Update; // force display of Form5
    Sleep(3000);
    Application.CreateForm(TForm2, Form2);
    ProgressBar1.StepBy(25);
    Label1.Caption := 'Form2 loaded successfully.';
    Update; // force display of Form5
    Sleep(3000);
    Application.CreateForm(TForm3, Form3);
    ProgressBar1.StepBy(25);
    Label1.Caption := 'Form3 loaded successfully.';
    Update; // force display of Form5
    Sleep(3000);
    Application.CreateForm(TForm4, Form4);
    ProgressBar1.StepBy(25);
    Label1.Caption := 'Form4 loaded successfully.';
    Update; // force display of Form5
    Sleep(3000);
  finally
    Free;
  end;
  Application.Run;
Gruß vom KodeZwerg

Geändert von KodeZwerg (10. Aug 2020 um 11:10 Uhr)
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Exception bei Programmende

  Alt 10. Aug 2020, 11:13
Die komplette .dpr sieht so aus ....

program Csv2008;

{$R *.dres}

uses
Vcl.Forms,
Csv2008Main in 'Csv2008Main.pas' {MainForm},
MailenUnit in 'MailenUnit.pas' {Mailen},
RecordUnit in 'RecordUnit.pas',
AusgabeUnit in 'AusgabeUnit.pas' {AusgabeForm};

{$R *.res}

begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TMailen, Mailen);
Application.CreateForm(TAusgabeForm, AusgabeForm);
MainForm.Show;
MainForm.Verarbeitung;
end.

Es kann aber sein das das daran liegt das ich mir mal zerschossen hatte Aber bis auf die Exception in der Entwicklungsumgebung läuft alles

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.620 Beiträge
 
Delphi 12 Athens
 
#5

AW: Exception bei Programmende

  Alt 10. Aug 2020, 11:25
Das ist auf jeden Fall keine Standard DPR. Statt MainForm.Show und MainForm.Verarbeitung sollte da ein Application.Run stehen. Aber wir wissen ja auch nicht, was in MainForm.Verarbeitung so alles passiert.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Exception bei Programmende

  Alt 10. Aug 2020, 11:25
Delphi-Quellcode:
program Csv2008;

{$R *.dres}

uses
  Vcl.Forms,
  Csv2008Main in 'Csv2008Main.pas{MainForm},
  MailenUnit in 'MailenUnit.pas{Mailen},
  RecordUnit in 'RecordUnit.pas',
  AusgabeUnit in 'AusgabeUnit.pas{AusgabeForm};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TMailen, Mailen);
  Application.CreateForm(TAusgabeForm, AusgabeForm);
  Application.Run;
end.
Das Formular "MainForm" sollte "Visible = True" als Eigenschaft bekommen.
Im Formular "MainForm" ein "OnCreate" erzeugen mit "Verarbeitung" als Aufruf.

Versuche das mal.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delphi.Narium

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

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
H.Bothur

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

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
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#9

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
 
#10

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
Antwort Antwort
Seite 1 von 3  1 23      


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:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz