Einzelnen Beitrag anzeigen

berens

Registriert seit: 3. Sep 2004
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

Pointer, Object, :=, Assign und die Verzweiflung

  Alt 22. Nov 2006, 16:19
Hallo!

Ich kapier mal wieder garnix. Aus einem meiner letzten glaubte ich gelernt zu haben:
a,b: TMeinObjekt;

1) := Bedeutet
Delphi-Quellcode:
a := TMeinObjekt.Create;
a.Tag := 4;
b := a;
a.Tag := 5;

Ergebnis: a.Tag = 5; b.Tag = 5;
2) .Assign (ungefähr gleich "Objekt kopieren")
Delphi-Quellcode:
a := TMeinObjekt.Create;
b := TMeinObjekt.Create;
a.Tag := 4;
b.assign(a);
a.Tag := 5;

Ergebnis: a.Tag = 5; b.Tag = 4;
Irgendwie scheint das nicht der Fall zu sein.

Ich habe eine TComponentlist mit meinen TMeinObjekt.

3)
Delphi-Quellcode:
type
  TFoo = class(TObject)
  public
    MeinObjekt: TMeinObjekt; // Wird mit NIL initialisiert etc.
  end;

a := TMeinObjekt.Create;
MeineComponentList.Add(a); // schon vorher erschaffen etcetc
Foo := TFoo.Create;
a.Tag := 4;
Foo.MeinObjekt := MeineComponentList.Items[0];
Foo.MeinObjekt.Tag := 20;

Ergebnis: a.Tag = 4; Foo.MeinObjekt.Tag = 20;
Warum haben nun beide Objekte verschiedene Tags?

Thx für schnelle Antworten :/
  Mit Zitat antworten Zitat