I always had the impression that the objects in Delphi actually refer to memory cells, which, in turn, I thought were saved as pointer variables.
Now I want to make a TValue from an object. Consider this:
TValue.Make(AObject, TypeInfo(TMyObject), val);
where val: TValue . This will not work. In fact, subsequent use of val will result in an access violation. However, if we use the operator address, for example:
TValue.Make(@AObject, TypeInfo(TMyObject), val);
things are good. This was unexpected for me, as I thought that AObject was (under the hood) actually a pointer. Am I mistaken or is this a fad using the TValue.Make method? Can someone please enlighten me?
object pointers delphi
conciliator
source share