У меня есть основная (родительская) форма 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). Если я прокомментирую эту строку, она работает отлично.
Есть идеи, почему он пытается создать форму, когда я действительно закрыл приложение ?????????