«Невозможно создать форму. В настоящее время нет активных форм MDI »ошибка

У меня есть основная (родительская) форма MDI и дочерняя форма MDI. Я создаю дочерний элемент во время выполнения следующим образом:

VAR
   FrmDereplic: TFrmDereplic;

procedure TMainFrm.Button2Click(Sender: TObject);
begin
 FrmDereplic:= TFrmDereplic.Create(MainFrm);
 FrmDereplic.Show;
end;

Шаги для воспроизведения ошибки:
Я запускаю приложение, нажимаю кнопку для создания дочернего элемента, нажимаю кнопку «x» в основной (родительской) форме, чтобы закрыть приложение, и получаю сообщение об ошибке «Невозможно создать форму. В настоящее время не активны никакие формы MDI».

Строка, в которой появляется ошибка, находится в дочерней форме:

procedure TFrmDereplic.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 Action:= caFree;
end;

procedure TFrmDereplic.FormDestroy(Sender: TObject);
VAR MyIniFile: TCubicIniFile;
begin
 MyIniFile:= TCubicIniFile.Create(AppINIFile);
 TRY
  with MyIniFile DO
  begin
   if WindowState<> wsMaximized then
    begin
     // save form's screen pos
     ...
    end;
   WriteInteger  ('Dereplicator', 'fltExtensions', fltExtensions.ItemIndex);  <----- HERE
 FINALLY
  FreeAndNil(MyIniFile);
 END;
end;

Я сохраняю множество свойств формы (и других свойств элементов управления) в INI-файле. Но это не удается только тогда, когда я пытаюсь сохранить fltExtensions.ItemIndex (который является TFilterComboBox). Если я прокомментирую эту строку, она работает отлично.

Есть идеи, почему он пытается создать форму, когда я действительно закрыл приложение ?????????

5
задан WeGoToMars 16 October 2010 в 18:53
поделиться