Entwickler-Ecke

Sonstiges (Delphi) - Programm hängt Rechner komplett auf


UGrohne - Mi 20.11.02 10:24
Titel: Programm hängt Rechner komplett auf
Hallo,
ich bin verzweifelt mit diesem Problem: Ich habe eine MDI-Applikation, in der zur Laufzeit ein FOrmular als MDIChild erzeugt wird. Mehrfache Instanzen dieses Formulars sind möglich.
Im FOrmClose-Event mache ich (Sender as TForm).Free;

Soweit funktionierte alles, bis jetzt. Hab kaum was geändert, das größte waren Compiler-Bedingungen für eine Shareware-Version. Und plötzlich passierte folgendes:
Sobald man das erzeugte Formular schloss, sollte es eigentlich verschwinden. Das passiert auch, aber der Refresh bleibt mitten im VOrgang hängen (das Zeug dahinter wird teilweise wieder angezeigt) und der komplette PC hängt, egal ob ich den Debugger laufen hab oder nicht.

Achja, hab die Compiler-Bedingungen auch wieder gelöscht is immer noch da und "Alle Projekte erzeugen" hat auch nix gebracht.
Weiß einer was?

Gruß, Uwe


UGrohne - Mi 20.11.02 10:45

Hab jetzt meinen ganzen Code umgekrempelt und zum Schluss rausgefunden, worans lag: Der Code um die CPU-Frequenz zu ermitteln (nur als Joke) hat das ganze verursacht, auch wenn er in einer ganz anderen Unit ohne jeglichen Zusammenhang stand:

http://www.auq.de/viewtopic.php?t=108&highlight=frequenz

Kann mir einer sagen, was das damit zu tun hat? Ich wäre nie auf die Idee gekommen, das rauszuschmeissen, wenn ich nicht unter Zeitdruck gestanden wäre....


aogwaba - Mi 20.11.02 18:19

Hi!
Ob der Code des 'Joke' an den Abstürzen schuld ist, weiss ich nicht.

Zitat:

Im FOrmClose-Event mache ich (Sender as TForm).Free;

Hiermit rufst du den eigenen Destructor rekursiv auf.

cu
waba


UGrohne - Mi 20.11.02 18:52

Mit dem Destruktor hab ich ja keine Probleme, der funktioniert ja so.

Es lag an der Funktion zur Berechnung der Frequenz, als die draußen war, hats ja funktioniert. Ich würde nur gerne wissen, was daran nicht stimmt.

Gruß, Uwe