type
TWideTag = record //Pour stocker les données.
Data1 : String; //Exemple d'une chaîne.
Data2 : Extended; //Exemple d'un Extended.
end;
PWideTag = ^TWideTag; //Pointe sur le record.
procedure TForm1.FormCreate(Sender: TObject);
var TagTest : PWideTag;
begin
New(TagTest);
TagTest.Data1 := 'Chaîne-test';
TagTest.Data2 := 0.1234;
UnCompo.Tag := Longint(TagTest); //Transtypage Pointer->entier
end;
procedure TForm1.FormDestroy(Sender: TObject);
var WideTag : PWideTag;
begin
WideTag := Pointer(UnCompo.Tag); //Transtypage entier->Pointer.
Dispose(WideTag); //Libère la mémoire adressée par le pointeur.
end;
{Exemple d'utilisation.}
procedure TForm1.Button1Click(Sender: TObject);
var WideTag : PWideTag;
begin
WideTag := Pointer(UnCompo.Tag); //Transtypage entier->Pointer.
Edit1.Text := WideTag.Data1; //Affiche les champs du record.
Edit2.Text := FloatToStr(WideTag.Data2);
end;