Hairy Pixels <generic...@gmail.com> schrieb am Do., 6. Okt. 2022, 13:49:
> > > > On Oct 6, 2022, at 12:45 PM, Sven Barth <pascaldra...@googlemail.com> > wrote: > > > > Am 05.10.2022 um 14:16 schrieb Hairy Pixels via fpc-pascal: > >> Is it possible to assign a class to a variant? I tried and get a crash. > If not, why not? It’s just a pointer so I would expect it to work. > > > > There is no field that would hold a class reference and no type value > that would differentiate it, thus the code handling variants would not be > able to finalize (aka free) a class correctly. You can of course always use > a custom type and handle that yourself. *shrugs* > > Oh so the problem is variant thinks it should try to manage memory for > you? I tried doing: > > v: variant; > begin > v := GetMem(100); > > And that crashed also. I thought it would be ok to just hold the reference > but not claim ownership over it. > Variants count as managed types and they can contain interface references and strings. If you use a custom type you can do as you please, but the internal types that can be assigned to a Variant *are* managed accordingly (if the types themselves are managed). Regards, Sven >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal