Deine Deklaration von "zeiger" ist ein Zeiger auf ein Zeiger. Pointer ist schon ein Zeiger und mit dem ^ deklarierst du einen Zeiger auf einen Zeiger. Da du aber nun keinen Speicher alloziierst für deinen Zeiger (auf den gezeigt wird), wird der Verweis auf den Inhalt auch schon hinfällig sein. Und wenn du dann noch auf ein TEdit verweist, dann ist dieses intern auch ein Zeiger - somit hast du dann einen Zeiger, der auf einen Zeiger zeigt welcher wiederrum auf Instanzenzeiger zeigt, welcher auf die TEdit Instanz im Speicher zeigt. Da du dafür mindestens 2x Platz anlegen müsstest für die Zeiger, wird das nicht hinhauen.
Delphi-Quellcode:
Var
Zeiger: Pointer;
ActiveEdit: TEdit;
Begin
// ActiveEdit sollte hier schon existieren
Zeiger := @ActiveEdit; // Nun zeigt Zeiger auf den Speicherplatz wo ActiveEdit liegt. ActiveEdit ist aber auch nur ein Zeiger der auf die Instanz von TEdit zeigt.
TEdit(Zeiger^).Text := 'Teschd';
End;