День добрый.
Думаю, все дельфийцы тысячи раз писали подобный код:
Скажем так: такая писанина надоедает. Хочется, чтоб объекты сами уничтожались при выходе из функции/процедуры.
Что ж, это достаточно легко реализовать. В результате мы получим примерно такой код:
Ниже я опишу как реализовать такое поведение.
Думаю, все дельфийцы тысячи раз писали подобный код:
var
MyObj: TMyObj;
begin
MyObj := TMyObj.Create;
try
MyObj.DoWork; // работаем с MyObj
finally
MyObj.Free;
end;
end;
Скажем так: такая писанина надоедает. Хочется, чтоб объекты сами уничтожались при выходе из функции/процедуры.
Что ж, это достаточно легко реализовать. В результате мы получим примерно такой код:
var
MyObj: TMyObj;
begin
MyOb := CreateObjectDestroyer(TMyOb.Create).ObjectAsPtr;
MyObj.DoWork; // работаем с MyObj
end; // тут объект MyObj уничтожится
Ниже я опишу как реализовать такое поведение.