AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Pointer auf Objekt setzen und verwenden

Ein Thema von maximus Caesar · begonnen am 26. Feb 2007 · letzter Beitrag vom 28. Feb 2007
 
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#5

Re: Pointer auf Objekt setzen und verwenden

  Alt 28. Feb 2007, 22:01
nicht so ganz. also pointer an sich sind zeiger auf einen speicherplatz(!)
wenn du ein objekt übergibt, dann übergibst du eine instanz von diesem.
so kannst du z.b. aus einer procedure ein objekt irgendwohin übergeben und dann irgendwo speichern.
nicht aber bei pointern.

bsp:

Delphi-Quellcode:
procedure saveObjPointer(obj:Pointer);
  begin
  self.addToList(obj);
  end;

und

procedure saveObj(obj:Tobj);
  begin
  self.objArr[2]:=obj;
  end;

so. jetzt liegt der trick im aufruf:


procedure aufruf();
  var obj:Tobj;
  begin
  obj:=TobjCreate(...);
   saveObjPointer(@obj); //1. funktiniert nicht, weil das eigentliche obj. nur solange lebt, wie die procedur, die ihn erstellt hat.
  saveObj(obj);
  end;

procedure test();
  var obj:^Tobj;
  begin
  obj:=self.list[i];
  obj^.GibName; //BOOM! Fehler! Das Ding ist nicht mehr da, weil die proc "aufruf" schon längst tot ist.

  self.objArr[2].gibName; //klappt
  end;
Muh macht die kUh
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz