scheinbar gibt es einen Unterschied von @Obj und Pointer( Obj ) richtig?
Aber was unterscheidet sie genau?
Was machen Sie?
Ich erstelle mal ein Objekt:
Delphi-Quellcode:
Var Obj1, Obj2: TObject;
ptr: Pointer;
Obj1 := TObject.Create;
Versuch eins es freizugeben:
Delphi-Quellcode:
// Fehler
ptr := @Obj1;
Obj2 := TObject( ptr );
FreeAndNil( Obj2 );
Hier gibts ein Fehler...
Versuch zwei es freizugeben:
Delphi-Quellcode:
// kein Fehler
ptr := Pointer( Obj1 );
Obj2 := TObject( ptr );
FreeAndNil( Obj2 );
Geht
Versuch drei freizugeben:
Delphi-Quellcode:
// kein Fehler
ptr := @Obj1;
Obj2 := TObject( ptr^ );
FreeAndNil( Obj2 );
Geht
Ist sozusagen
Pointer( x ) = ( @x )^ ????
Bye
Edit Ende...