[fpc-pascal] Clone a instance of object
Michael Van Canneyt
michael at freepascal.org
Mon Sep 23 14:44:30 CEST 2013
On Mon, 23 Sep 2013, Frederic Da Vitoria wrote:
>
> Yes. But that works only for 'simple' types and still requires you to write code.
>
> For the more general case where you can have arrays, classes, interfaces and whatnot as fields of your object, there is simply no correct way.
>
>
> Isn't there? Maybe it wouldn't be easy, but IIRC Delphi offers something related to this with TComponents and Streams. This Delphi mechanism I knew worked only for properties,
> but I found references that there existed a wider mechanism in D2010.
There is no GENERAL way.
The RTTI based mechanisms make special assumptions about how to reference components, tpersistents and whatnot.
If I have a field that is a stream. How are you going to correctly copy this ?
Just the stream instance pointer ? The stream+Contents ?
The answer depends on how the classes are supposed to behave. The language itself cannot give you this mechanism.
Michael.
More information about the fpc-pascal
mailing list