Lad x være et Tobject...
Hvad sker der hvis man bruger funktionen:
"etellerandet" := Pointer(x);
på x?
Jeg kan simpelthen ikke finde det i hjælp-filen.
Det der undre mig mest er, at jeg i en artikel omkring INDY har læst denne kode, hvor "etellerandet" også er et TObject ligesom x.
Så hvorfor skal man bruge Pointer-funktionen på x, når begge i forvejen er af typen TObject?
Beklager det lave UP's... Men har ikke så mange flere...!
Og der er åbenbart ingen der har lyst til at svare seriøst på en alm. kommentar...
Brian
Hej,
Pointer(x) er en typecast og ikke andet
Lad os sige at du bruger en TList og gerne vil putte et TObject ind i listen:
MyTList : TList;
MyTObject : TObject;
MyTList.Add(Pointer(MyTObject)); // her fortæller du compileren at den skal opfatte MyTObject som en pointer.
Når du så skal ha' det tilbage caster du din pointer til et TObject:
MyTObject := TObject(MyTList.Items[0]);
Lad os tage et andet eks. hvor vi bruger en Cardinal i stedet for:
MyTList : TList;
MyValue : Cardinal;
MyTList.Add(Pointer(MyValue));
Når du så skal ha' det tilbage caster du din pointer til en cardinal:
MyValue := Cardinal(MyTList.Items[0]);
Så der er intet mystisk ved det
Mvh
Michael.