{*******************************************************} { } { Methods of Object } { } { CopyRight (C) 2018-2020 KngStr } { } {*******************************************************} unit ksObjUtils; interface //take from qdac (Thanks for swish) procedure FreeObject(AObject: TObject); procedure FreeAndNilObject(var AObject); implementation procedure FreeObject(AObject: TObject); begin {$IFDEF AUTOREFCOUNT} AObject.DisposeOf; {$ELSE} AObject.Free; {$ENDIF} end; procedure FreeAndNilObject(var AObject); var ATemp: TObject; begin ATemp := TObject(AObject); Pointer(AObject) := nil; FreeObject(ATemp); end; end.