Am Di., 4. Dez. 2018, 08:00 hat Ryan Joseph <r...@thealchemistguild.com> geschrieben:
> > > > On Dec 4, 2018, at 1:52 PM, Sven Barth via fpc-pascal < > fpc-pascal@lists.freepascal.org> wrote: > > > > The type of "Self" inside a object is always the same no matter if it's > allocated on the stack or the heap. > > Then there’s now way to do a free method like I showed? > Correct. > > > > 2) Is there any TObject support in objects? I know there is a VMT table > for objects but I’m not sure if it’s structure is public in the RTL. > > > > class function TMyObject.ClassName:string; > > begin > > result := PVmt(self)^.vClassName^; > > end; > > > > Objects don't have TObject-like functionality. There is a VMT record, > but that is only available if there is at least one virtual method. > > I got a crash on that code but maybe it’s because of “self” or is the VMT > table for objects not “VMT” from the RTL? > The VMT for objects is currently only available locally inside the Objects unit (search for TVMT there). There is a bug report however to publish it... Though even then it is much less powerful than a class - there's a reason Borland reinvented the wheel there. Regards, Sven >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal