Einzelnen Beitrag anzeigen

enigma

Registriert seit: 15. Jun 2008
35 Beiträge
 
#1

Objekt hat andere Adresse nach Zuweisung

  Alt 14. Apr 2017, 16:27
Hallo zusammen,
ich verstehe folgendes Problem nicht:
lList wird die Referenz auf TObjectList<TDN>(AObject) übergeben.

Wie unten zu sehen, hat TObjectList<TDN>(AObject) dieselbe Adresse wie AObject
(ist ja nur eine einfache Typumwandlung).
Allerdings hat lList eine andere! Adresse!
Mein Kenntnisstand ist bis jetzt der, dass Objekte bei Wertzuwiesung auf dieselbe
Adresse zeigen.

Vielen Dank für eure Tipps

Delphi-Quellcode:
  TDN = class
    ...
  end;

procedure test(AObject: TObject);
var
  list: TObjectList<TDN>;
begin
  list := TObjectList<TDN>(AObject);
   
ShowMessage('Integer(@AObject) = ' + IntToStr(Integer(@AObject)) +#13+
           {Selbe Adresse wie AObject} 
         'Integer( @TObjectList<TDN>(AObject) ) = ' + IntToStr(Integer( @TObjectList<TDN>(AObject) ) ) +#13+
           {Andere Adresse wie AObject} 
            'Integer(@list) = ' + IntToStr(Integer(@list) ) );
end;

Geändert von enigma (14. Apr 2017 um 16:59 Uhr)
  Mit Zitat antworten Zitat