Dường như hoàn toàn không liên quan để yêu cầu TComponent làm chủ sở hữu để khởi tạo một đối tượng thuộc loại nào đó. Tại sao có quá nhiều thành phần Delphi yêu cầu điều này?Tại sao một số thành phần Delphi yêu cầu "AOwner: TComponent" để xây dựng chúng?
Ví dụ: TXMLDocument yêu cầu đối tượng TComponent để khởi tạo.
Tại sao điều này và nếu có lý do chính đáng, tôi nên sử dụng điều gì trong đó để "làm đúng"?
Câu trả lời hay. Vì vậy, nếu tôi muốn quản lý cuộc đời mình, làm thế nào tôi sẽ chắc chắn rằng một đối tượng bị phá hủy khi tôi thực hiện với nó? – Dave
@prapin: Chỉnh sửa nhẹ là cần thiết: Đối tượng Ứng dụng chỉ là chủ sở hữu của biểu mẫu nếu biểu mẫu đã được tạo bằng Application.CreateForm() hoặc khi Ứng dụng được chuyển đến Tạo dưới dạng AOwner. Biểu mẫu có thể được sở hữu bởi một biểu mẫu khác hoặc bất kỳ thành phần nào khác cho vấn đề đó. – mghie
@Dave: Theo dõi các câu hỏi SO đối phó với quyền sở hữu đối tượng: http://stackoverflow.com/questions/398137/what-is-the-best-way-to-do-nested-try-and-finally-statement-in- delphi # 399860, http://stackoverflow.com/questions/415958/how-to-automatically-free-classes-objects#415990 – mghie