Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - TFileSteam.free


GuaAck - Mo 02.11.09 23:56
Titel: TFileSteam.free
Hallo,

ich erzeuge (Delphi 7) eine Datei mit TFileStream. Nach Abschluss aller WRITES möchte ich eine Checksumme anhängen. Also definiere ich: TCheckFileStream = Class(TFilestream) mit einer Methode 'DESTRUCTOR Free'; dann könnte ich mit dem normalen Schließen mit 'Free' meine laufend berechnete Checksumme anhängen und dann mit 'INHERITED Free' die Datei wirklich schließen.

Das fürhrt aber zu einer 'EAccessViolation', was irgednwie logisch ist, denn ich löse ja eigentlich die Procedure (mein FREE) auf, die gerade ausgeführt wird.

Hat jemand eine Idee, wie das richtig geht?

Gruß Guenther


platzwart - Mo 02.11.09 23:58

Kannst du bitte ein wenig Code zeigen?


GuaAck - Di 03.11.09 19:30

Hallo, hier ist ein Code-Schnipsel,
Gruß
Günther
=======================================

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
UNIT ucheckfilestream;
INTERFACE

USES Classes, SysUtils;
TYPE
  TCheckFfilestream = CLASS(Tfilestream)
  PUBLIC
    { diverses anderes.... }
    DESTRUCTOR Free;
  END;

IMPLEMENTATION

DESTRUCTOR TCheckFilestream.Free;
BEGIN
  { Aufräumen, Checksumme anfügen, dann: }
  INHERITED Free; { nach Rückkehr hier "Access Violation" }
END;

END.


Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt


jaenicke - Di 03.11.09 19:32

Das heißt ja auch destructor Destroy; und nicht Free.