@nomevariabile indica un puntatore alla variabile.
Questo consente di accedere direttamente alla memoria della variabile e lavorare con i puntatori.
La notazione ^nomevariabile viene usata per referenziare la variabile tramite il suo puntatore durante la dichiarazione;
La notazione nomevariabile^ invece e la deferenziazione del puntatore tipizzato (quindi si ritorna alla definizione primaria).
Esempio:
Type
TProva = array of integer; //definizione tipo
PTProva = ^TProva; //definizione puntatore tipizzato
Var
Pluto: TProva
PPluto: PTProva; ************* EDIT corretto : al posto di = :o
begin
SetLength(Pluto, 4);
Pluto[0] := 10;
Pluto[1] := 345;
Pluto[2] := 32;
Pluto[3] := 48;
PPluto := @Pluto;
ShowMessage( (PPluto^[2]).toString); //stamperà 32
end;
Ciao