Free ist nur Public und es wäre besser, wenn man das auch noch im Destructor prüft.
(Beispiel: siehe EOutOfMemory in der SysUtils)
Warnungen kann man ignorieren.
[edit]
OK, nicht Destructos, sondern FreeInstance.
Delphi-Quellcode:
uses SysConst, Dialogs;
procedure TForm1.FormCreate(Sender: TObject);
var E: EOutOfMemory;
begin
E := EOutOfMemory.CreateRes(@SOutOfMemory);
E.Free;
ShowMessage('bin noch da: ' + E.Message);
// und an das nötige private E.AllowFree:=True; kommt man nicht ran
end;
also am Einfachsten diese Beiden überschreiben.
Delphi-Quellcode:
class function NewInstance: TObject; virtual;
procedure FreeInstance; virtual;
in NewInstance prüfen ob es schon existiert und ansonsten eine
Exception
und in FreeInstance prüfen ob es freigegeben werden darf