Thema: Delphi Frage zu Zeigern

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Frage zu Zeigern

  Alt 31. Jan 2006, 14:17
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.
  Mit Zitat antworten Zitat