http://habrahabr.ru/post/177431/
Но примесью это кстати можно сделать лучше.
Хм... А можно и не примесью.
Поскольку всё равно USES надо делать - можно просто сделать "вязанку процедур" FreeRef. С overload.
FreeRef(var Ref : TObject); overload;
FreeRef(var Ref : TmyObject); overload;
FreeRef(var Ref : TmyString); overload;
FreeRef(var Ref : TmyData); overload;
etc.
А ВНУТРИ звать FreeAndNil. И овцы сыты и волки целы.
Нудно.. Да. Но не космически сложно. Можно эти процедуры с модели кстати сгенерировать. Рассказать как? Но для этого все интересующие классы должны быть на модели.. Хотя бы в виде "заглушек"...
Я так кстати делал. Но потом - отказался. По своим причинам.
А про примеси - я отдельным постом напишу. Обещаю. Не про наследника от TObject конечно же. Но для "почти любого" другого класса.
Но примесью это кстати можно сделать лучше.
Хм... А можно и не примесью.
Поскольку всё равно USES надо делать - можно просто сделать "вязанку процедур" FreeRef. С overload.
FreeRef(var Ref : TObject); overload;
FreeRef(var Ref : TmyObject); overload;
FreeRef(var Ref : TmyString); overload;
FreeRef(var Ref : TmyData); overload;
etc.
А ВНУТРИ звать FreeAndNil. И овцы сыты и волки целы.
Нудно.. Да. Но не космически сложно. Можно эти процедуры с модели кстати сгенерировать. Рассказать как? Но для этого все интересующие классы должны быть на модели.. Хотя бы в виде "заглушек"...
Я так кстати делал. Но потом - отказался. По своим причинам.
А про примеси - я отдельным постом напишу. Обещаю. Не про наследника от TObject конечно же. Но для "почти любого" другого класса.
Комментариев нет:
Отправить комментарий