Autor Beitrag
Geri
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

XP
RAD Studio XE pro
BeitragVerfasst: Do 13.12.07 13:11 
Hallo zusammen

Ich habe ein Delphi-Formularanwendung, compiliert unter Delphi 7. Wenn ich das Programm beende, erhalte ich eine Fehlermeldung in der Form EAccessvioltation on addresss 00000000. Zuvor kommt auch noch der gleiche Fehler, der Dialog ist aber sofor wieder weg. Die Adresse ist aber ungleich 0.

In der Anwendung laufen zwei Threads, welche am Ende in

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TfrmLogServer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  crollingTextInfoThread.Suspend();
  StatusThread.Suspend();
  ScrollingTextInfoThread.Terminate;
  StatusThread.Terminate;

  repeat
    Application.ProcessMessages;
  until ScrollingTextInfoThread.Terminated;

  repeat
    Application.ProcessMessages;
  until StatusThread.Terminated;
  inherited;
end;


beendet werden.
Speicher müsste in Form.Destroyform soweit korrekt freigegeben sein. Ich habe auch schon probiert die gesamte Freigabe auszuklammern, doch ich erhalte das gleiche Ergebnis.

Ach ja, FormClose wird beim Debuggen zeimal aufgerufen???? Der Fehler passiert aber erst danach.

Debug habe ich eingeschaltet.

Habt ihr bitte vielleicht eine Idee, wie man die Problemlösung hier angehen könnte?

Beste Grüsse
Geri
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Do 13.12.07 13:26 
Da ich Create nicht sehe, vermute ich mal bei Terminate wird free aufgerufen und danach ist der Zeiger auf den Thread nicht mehr gültig udn Trhead.Terminated erzeugt den Fehler!
Damit der Code nicht zweimal durchlaufen wird für ein Flag: Boolean ein, teste es bei wahr wird der Code in Close abgearbeitet und das flag auf false gesetzt.

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Geri Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 78

XP
RAD Studio XE pro
BeitragVerfasst: Do 13.12.07 14:40 
Hallo Kroko

Vielen Dank für Deine Hilfe.
Wie du sagtst, das Problem lag an einer Thread, in einer Komponente, die nicht "komplett" beendet war.

Das Problem mit dem erneuten Aufruf von FormDestroy ist nun auch nicht mehr da.

Beste Grüsse und nochmals vielen Dank für Deine wertvoller Hilfe!

Geri
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Do 13.12.07 14:43 
Bitte :lol:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!