This is where Classes are better than objects... This will only work if you don't reference any thing that is instantiated by the constructor, i.e. all Methods and fields.
> *** > type TmyObject = object > procedure test; > end; type TMyClass = class class procedure test; end; > procedure TmyObject.test; > begin > writeLn('test'); > end; As is, but add 'class' prefix.. > procedure main; > var > MyObject: TmyObject; > begin > MyObject.Test; > end; > *** No changes. What you want is garbage collection, not a lack of constructors/destructors... What you will get is VBPascal. Nasty. You could try: IMyClass = interface procedure Test; end; TMyClass = class(TInterfacedObject, IMyClass) class function Get(): TMyClass; procedure Test; end; Class function TMyClass.Get() : IMyClass; Begin result := TMyClass.Create; End; Though this is quite nasty in itself too. Matt _______________________________________________ fpc-pascal maillist - [EMAIL PROTECTED] http://lists.freepascal.org/mailman/listinfo/fpc-pascal