> |I remember someone once asked whether we should override the method Assign > or AssignTo.| > |I am worried, choosing the wrong method to override will produce unexpected > result.|
The AssignTo is only used by TPersistent.Assign, so it's a "fallback" --- if class A cannot copy *from* B, then AssignTo is called on B to let B assign *to* A. This allows to implement the copying on any end, which is useful e.g. when you cannot change the source code of A. This is documented on http://www.freepascal.org/docs-html/rtl/classes/tpersistent.assign.html . The short advice is that you usually want to override Assign, and forget about AssignTo. Overriding Assign is always enough if you think about a typical cloning scenario, when you usually copy instance of class A to another instance of class A, and not mix classes. Regards, Michalis _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal