Отображение 2 вторичных форм из основной формы и затем закрытие обеих форм приведет к тому, что основная форма потеряет фокус.(другое приложение активируется вместо моего)
Вторичные формы создаются либо основной формой напрямую, либо путем создания третьей формы из второй формы.
Вторичные формы устанавливают caFree вСобытие OnClose:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
Использование Delphi 2009 (обновление 3 и 4) с XP SP3.
Вот мои шаги по воспроизведению проблемы:
- Создатьновые приложения VCL для форм
- Назначьте событие OnClose, как указано выше
- Перетащите кнопку на созданную форму
- В обработчике щелчков создайте новый TForm1 и покажите его, как показано ниже
Запустить программу.Нажмите кнопку, чтобы показать вторую форму.Нажмите кнопку на второй форме, чтобы создать третью форму.При закрытии обеих новых форм основная форма теряет фокус.
Это мой код в обработчике событий нажатия кнопки:
with TForm1.Create(Application) do
show;
Есть ли способ, чтобы моя основная форма не потерялаfocus?
(Интересно, что при создании обеих вторичных форм непосредственно из главной формы проблема возникает только при закрытии первой созданной формы, а затем второй созданной формы)
ВВ прошлом у меня была та же проблема , которая была решена путем обновления моей установки delphi, но в этом сценарии я не использовал caFree в событии OnClose, которое является причиной этой ошибки.
Рекомендация о том, чтобы установить для свойства Parent на вторичных формах значение Main Form, новые формы будут привязаны к основной форме, которую я бы предпочел не иметь.(и решение, предложенное здесь для постоянной повторной активации основной формы, приводит к потере порядка активации форм)