Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Exception nach (!) Programmende... (https://www.delphipraxis.net/14973-exception-nach-programmende.html)

default.user 19. Jan 2004 15:56


Exception nach (!) Programmende...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ein freundliches "Hallo"...

ich habe folgendes, mittlerweile wirklich blödes, Probem.
Nachdem ich mein Programm beende und nun eigentlich zur IDE zurückkehren möchte, bekomme ich eine Exception.
Diese tritt nicht beim Programmablauf auf, sondern nur beim Beenden - ich nehme an, dass da ein Delphi internes CleenUp läuft :? Das Kopmpilat läuft -und beendet sich- ohne zu zucken...
Nun bin ich leider nicht so fit, dass ich selbst drauf kommen könnte :cry:
Ich habe eine ganze Reihe von Komponenten integriert, von denen ich auch einige im aktuellen Projekt verwende. Nur trat das mit der Exception einfach so, von heute auf morgen, auf - ohne dass ich, wissentlich, irgend etwas exteres hinzugefügt oder zusätzlich verwendet hätte...

Ich habe mal einen kleinen Screenshot beigefügt; in der Hoffnung, dass jemand zumindest mit dem Finger in eine bestimmte Richtung zeigen könnte...


Gruß, Stefan

franz 19. Jan 2004 23:54

Re: Exception nach (!) Programmende...
 
Hi,

mit einem ähnlichen Problem hatte ich auch schon zu kämpfen. Dabei trat beim Beenden des Programms allerdings der Fehler "Eine Windows API Funktion ist fehlgeschlagen" auf.

Da holf allerdings gar nichts. Erst die Wiederherstellung einer Sicherungskopie von CD schaffte Abhilfe.

Wenn du in deinem Programm mehrere Timer eingebaut hast achte darauf, dass diese beim Beenden nicht mehr aktiv sind.

Wenn es sich um eine Datenbankanwendung handelt, kann es auch daran liegen, dass die Datenbank beschädigt ist.

Luckie 19. Jan 2004 23:58

Re: Exception nach (!) Programmende...
 
Kuck mal, ob du vordem Beenden alle Objekte wieder freigibst. Eventuell will da noch was auf ein Objekt zugreifen, dass nicht mehr existiert.

stoxx 20. Jan 2004 01:13

Re: Exception nach (!) Programmende...
 
bei mir lag es daran, dass noch ein Thread lief. und noch was tun wollte.
Also einfach vor dem Beenden des Programms thread1.waitfor; einfügen

Delphi-Quellcode:
thread1.Terminate;
thread1.WaitFor;
thread1.Free;

default.user 20. Jan 2004 11:27

Re: Exception nach (!) Programmende...
 
Vielen Dank für die Tips und dass sich jemand die Zeit zum Lesen genommen hat...

Also ich hab´ -noch einmal- näher reingeschaut.
Einen Timer hatte ich tatsächlich nich aktiv - hat´s aber nicht gebracht.
Threads benutze ich nicht, da fehlt mir noch das Wissen.
Ich habe nur 4 Objekte on-the-fly erzeugt und gebe auch alle ganz brav wieder frei :|

Kann man denn nicht rausbekommen, auf welche Komponente da zugegriffen werden soll ?
Das Problem für mich ist, dass ich mit dem Programm im Einzelschritt schon längst am .End vorbei bin wenn die Exception ausgelöst wird und warum meckert denn eigentlich das Compilat nicht ?
Kann ich die Exception denn unterdrücken ? Wenn ich eh´ nicht rausbekomme woher´s kommt, dann kann mir schließlich auch die Exception gestohlen bleiben...

Gruß, Stefan

Vjay 20. Jan 2004 11:38

Re: Exception nach (!) Programmende...
 
Kommt die Exception auch wenn du das Programm ohne IDE benutzt?

Sanchez 20. Jan 2004 11:57

Re: Exception nach (!) Programmende...
 
Zitat:

Zitat von default.user
Ich habe nur 4 Objekte on-the-fly erzeugt und gebe auch alle ganz brav wieder frei

Sind das Komponenten die du fliegend erzeugst? Wenn ja mit
Delphi-Quellcode:
  xxx.Create(self);
?

Dann solltest du sie nicht selber freigeben. Das erledigt der Owner für dich

Motzi 20. Jan 2004 11:58

Re: Exception nach (!) Programmende...
 
Verwendest du DLLs mit String-Parametern?
Verwendest du Pointer mit dyn. alloziertem Speicher?

In beiden Fällen kann es zu oben genanntem Fehler kommen... ich hatte mal Probleme mit dem zweiten von mir erwähnten Fall, da ich durch einen Fehler bei der Speicherreservierung über die Grenzen des reservierten Speichers hinaus geschrieben habe...

default.user 20. Jan 2004 13:22

Re: Exception nach (!) Programmende...
 
Das geht ja hier zu wie im Taubenschlag - nicht dass ich mich beschweren möchte :-D


Wenn ich die generierte exe starte, dann läuft´s genau so wie´s sollte. Das Programm endet ohne zu Murren.

Selbst Erzeugtes sieht in etwa so aus:
Delphi-Quellcode:
private
  DrawBuffer: TBitmap;
var
implementation
...
  DrawBuffer := TBitmap.Create;
...
  FreeAndNil(DrawBuffer);
Hab´ ich mir mal irgendwo abgeschaut und bisher immer so gemacht - hatte damit keine Schwierigkeiten :|

Also dass mit den DLL´s mit String-Parametern möchte ich jetzt mal vorsichtig mit "Ja" beantworten. Ich habe eine DLL, der ich verschiedene Dinge, u.a. Strings, mit auf den Weg gebe... warum mir das allerdings Probleme bereiten kann, weiss ich so spontan nicht...

Gruß, Stefan

Sanchez 20. Jan 2004 21:38

Re: Exception nach (!) Programmende...
 
hast du die SharedMem oder so ähnlich eingebunden.
Die ist IMHO für die korrekte Funktionsweiße von DLLs mit Stringhandling nötig.

grüße, daniel


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr.
Seite 1 von 2  1 2      

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