Pointer et conversion sur Self et TObject
Bonjour
Le code suivant me pose problème:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
var
Form7: TForm7;
implementation
{$R *.dfm}
function Pt(Obj: TObject): NativeUint;
begin
Result := NativeUint(@Obj);
end;
procedure Comp(P: NativeUINT);
var
K: NativeUint;
begin
K := Pt(Form7);
if P = K then
ShowMessage( TForm7( Pointer(P)^ ).Name );
end;
procedure TForm7.FormCreate(Sender: TObject);
var
V1, V2: NativeUint;
begin
V1 := Pt(Self);
V2 := Pt(Form7);
Comp(V2);
end; |
Dans le FormCreate, V1 et V2 sont égaux.
Mais dans Comp, K est différent de P alors que je le récupère de la même façon que dans FormCreate
Et là, je ne comprends pas pas trop le pourquoi du comment :-(