Bonjour

Le code suivant me pose problème:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :-(