Hallo,
mich beschäftigt gerade folgende Frage:
Warum klappt folgendes nicht?
(Der Sinn sei einmal dahingestellt, es geht nur ums Prinzip ...)
Delphi-Quellcode:
procedure TForm1.TestFileStream;
var
FFileStream1: TFileStream;
FFileStream2: TFileStream;
begin
// Die Datei ist vorhanden und weder schreib- noch sonst irgendwie geschützt, ganz normal eben
FFileStream1 := TFileStream.Create('C:\TestDatei.txt', fmOpenRead, fmShareExclusive);
// hier wird der eine Stream dem anderen zugewiesen,
// also FFileStream1 und FFileStream2 müssten auf die selbe Speicheradresse zeigen
FFileStream2 := FFileStream1;
// hier wird FFileStream2 freigegeben, dann müsste doch eigentlich auch FFileStream1 NIL sein oder ?
FreeAndNil(FFileStream2);
if FFileStream1 <> nil then
begin
// und das hier dürfte niemals erreicht werden.
FreeAndNil(FFileStream1);
// tut es aber :-(
end;
end;
Das ganze passiert in Delphi 7.
Danke und Gruß
Frank