Я уже нашел что-то в stackoverflow, но это действительно не решает моих сомнений. Я знаю, что правильный способ создания объекта после создания окружает код в блоке try-finally. Но как насчет:Конструктор Delphi TForm
procedure TForm3.FormCreate(Sender: TObject);
begin
a := TClassX.Create;
end;
, а затем вызвать:
procedure TForm3.FormDestroy(Sender: TObject);
begin
a.Free;
end;
Где a: TClassX;
является публичным заявлением внутри TForm3
класса. Должен ли я создать конструктор и деструктор для формы, или я могу использовать код выше? Это безопасно?
Если класс поддерживает владельцев (является потомком TControl или является TComponent?), То вы также можете использовать * a: = TClassX.Create (Self) * и позволить деструктору вашей формы освободить экземпляр «a» , Вам тогда не нужно будет беспокоиться о части a.Free (это будет сделано деструктором TForm). – HeartWare
Я бы рекомендовал вам ** не ** объявлять 'a: TClassX' в общедоступном разделе. Он предотвращает инкапсуляцию, и по мере увеличения базы кода общее приложение становится более сложным. И будет более сложно уверенно рассуждать о правильности вашего кода. –