17.08.2007, 22:52
общий
это ответ
Здравствуйте, Зимородкин Александр!
Суть вашего вопроса подводит к использованию дочерних окон – т.е. указать для дочерних окон, в свойстве FormStyle = fsMDIChild. Таким образом, вы будите работать по схеме «документ – представление», т.е. по аналогии с MS Word и т.д. – используя MDI интерфейс (множественный окна).
Тогда, вам будет легко управлять этими окнами, да и логике приложения они будут более соответствовать.
Второй способ, открывать обычные окна (для однотипных окон это неверно, но иногда приемлемо), как вы и делаете. Тогда, эти окна открываются ведь по событию.. например, выбор меню, кнопки и т.д. и каждое окно несёт свою функциональность. В этом случае, достаточно в обработчике дочерней формы OnClose присвоить параметру Action знасение caFree:
<code>
procedure TFormInf.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
</code>
А в главной форме можно запускать так:
<code>
implementation
uses Unit2;
var FormInfChild :TFormInf;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
FormInfChild := TFormInf.Create(self);
frm.Show;
end;
</code>