AGB  ·  Datenschutz  ·  Impressum  







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

Programm korrekt beenden?

Ein Thema von Gina · begonnen am 12. Apr 2005 · letzter Beitrag vom 13. Apr 2005
Antwort Antwort
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#1

Programm korrekt beenden?

  Alt 12. Apr 2005, 22:46
Hallochen,

ich hab immernoch das Problem, dass ich beim Beenden meines Programms eine Exception bekomme. Das Ganze passiert in TObject.Free. Daher gehe ich davon aus, dass er irgendwie die ganzen Komponeten/Formulare nicht freigeben kann, bevor der HauptThread geschlossen wird. Daher hatte ich es mit einer Verzögerung in OnCloseQuery probiert, wo die Messages abgearbeitet werden. Das schien auch super zu klappen, bis ich nebenbei ein anderes Programm laufen ließ, das CPU-Last verursacht.

Daher meine Frage: Wie beende ich korrekt das Programm? Wie warte ich "anständig", bis er alles brav geschlossen hat? Oder hab ich wirklich irgendwo etwas vergessen selbst freizugeben?

Ich danke Euch ganz dolle, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Programm korrekt beenden?

  Alt 12. Apr 2005, 22:52
Moin Gina,

es könnte auch sein, dass Du irgendwo Speicher überschreibst, so dass Object.Free auf eine ungültige Adresse zugreift.

Hast Du Rangechecking aktiviert?
Zumindest zum Testen wäre das evtl. ganz sinnvoll.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#3

Re: Programm korrekt beenden?

  Alt 12. Apr 2005, 22:59
Hallo,

hatte ich bisher aus. Ich habs mal eben eingeschaltet. Zweimal ist nix passiert und beim dritten Mal kam wieder die Exception in TObject.Free. Wenn ich irgendwo Speicher überschreibe, hätte die Fehlermeldung doch anders aussehen müssen, oder?

Big Thx, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Programm korrekt beenden?

  Alt 13. Apr 2005, 01:07
Moin Gina,

eigentlich schon.

Verwendest Du irgendwo Pointer (z.B. auch in Verbindung mit PChar)?
Da würde eine Bereichsprüfung nicht zuschlagen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#5

Re: Programm korrekt beenden?

  Alt 13. Apr 2005, 20:16
Hi,

ja, Pointer verwende ich auch. Ich habe schon so ziemlich alle Routinen nach und nach rausgenommen bin die Units fast leer waren, werde die Exception aber nicht los... *grml*

Ich laß jetzt mal den Debugger wüten...

Bis dann, und thx, Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#6

Re: Programm korrekt beenden?

  Alt 13. Apr 2005, 22:54
Also... Laut Debugger bleibt er in der ShellCtrls an folgender Stelle hängen:

Delphi-Quellcode:
procedure TCustomShellTreeView.Delete(Node: TTreeNode);
begin
  if Assigned(Node.Data) then
  begin
    TShellFolder(Node.Data).Free;
    Node.Data := nil;
  end;
  inherited Delete(Node);
end;

(*
procedure TCustomShellTreeView.NodeDeleted(Sender: TObject; Node: TTreeNode);
begin
  if Assigned(Node.Data) then
  begin
    TShellFolder(Node.Data).Free;
    Node.Data := nil;
  end;
end;
(**)
Wie man sieht, gibt es da schon zwei Varianten im Quellcode... Aber jetzt bin ich einfach zu müde, um mir darüber noch Gedanken machen zu können. Bis morgen, schlaft schön...

Gina.
Mein Lieblings-Spiele-Laden in Berlin: www.cometgames-store.de

{KDT}
.
  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 14:44 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