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

Reply via email to