Das "Dach" ist zum De-Referenzieren von Pointern. In fast allen Fällen kann man darauf verzichten, da Delphi selbst "weiß" wann es benötigt wird.
Delphi-Quellcode:
var
PI: PInteger;
begin
.....
// Zeigt den Wert von PI (Speicheradresse des eigentlichen Wertes) an
ShowMessage(IntToStr(Integer(PI)));
// Zeigt den Wert der Speicheradresse von PI an
ShowMessage(IntToStr(PI^));
end;
...

...