những gì tôi cần làm là một cái gì đó như thế này:Đi qua một lớp học như một tham số của một thủ tục trong Delphi XE
procedure A(type_of_form);
var form: TForm;
begin
form := type_of_form.Create(application);
form.showmodal;
freeandnil(form);
end;
Tôi đã làm điều này cho tất cả các hình thức tự động tạo ra:
form1 := TForm1.Create(application);
form1.showmodal;
freeandnil(form1);
gì tôi sẽ làm thủ tục bên trong A phức tạp hơn, nhưng vấn đề nằm trong cách tạo ra biểu mẫu hơi chung chung. Có lẽ một cái gì đó với @ nhà điều hành ... tôi thực sự không biết.
Cảm ơn mọi đề xuất!
'form.Free' chỉ là tốt ở đó. Thật đáng để chỉ ra rằng điều này chỉ hoạt động nếu constructor của biểu mẫu là một sự ghi đè của hàm tạo 'TForm'. –
@David, bạn có nói rằng điều này sẽ không hoạt động nếu hàm tạo được đặt tên là Tạo, với các tham số phù hợp, nếu nó ẩn trình tạo con cháu? –
@Marcus Đúng vậy. Bạn cần phải sử dụng các nhà xây dựng ảo để có được instantiation thông qua tham chiếu lớp để làm việc. Nếu không, bạn kết thúc bằng 'TMyForm' mỗi lần, bất kể cái gì có trong tham chiếu lớp. –