Zitat von
Oxmyx:
Zitat von
Muetze1:
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;
Das ist eine unnötige Indirektion. So ist es besser:
Delphi-Quellcode:
var
Zeiger: Pointer;
ActiveEdit: TEdit;
begin
Zeiger := ActiveEdit;
TEdit(Zeiger).Text := 'Teschd';
end;
Du hast den Code abgeändert. Du setzt den Instanzenzeiger und "Zeiger" gleich, ich habe aber Zeiger auf die Instanzenvariable zeigen lassen. Ich habe hier nicht beides gleich zeigen lassen!
Damit machst du einen Typecast und wandelst den Zeiger "Zeiger" (welcher bei mir nur auf die Variable ActiveEdit zeigt) in einen Instanzenzeiger um. Dies ist aber bei mir anders, da bei mir "Zeiger" nicht auf die Instanz zeigte (also kein Instanzenzeiger ist), sondern auf die Variable "ActiveEdit".
Zeiger zeigt bei mir auf den Instanzenzeiger, nicht auf die Instanz. (ich liebe solche Sätze).
Du hast somit was ganz anderes gebaut als ich.