Мне необходимо при запуске приложения спрятать главную форму,
но, к сожалению, это не работает. После того, как я установил в главной форме
свойство WindowState в wsMinimized и запустил ее, форма свернулась на рабочем
столе Win95 вместо положенной панели задач.
Кто-нибудь знает как решить эту проблему?
Была одна статья по этому поводу в Delphi Magazine, Issue 19, март 1997,
которая объясняла эту проблему.
Вот мой переработанный вариант обхода
ошибки:
unit Foobar;
interfacetype
TfrmFoobar = class(TForm);
procedure DoRestore(Sender: TObject);
procedure FormCreate(Sender: TObject);
private{ Private declarations }public{ Public declarations }end;
implementationprocedure TfrmUVChannel.FormCreate(Sender: TObject);
begin//Устанавливаем временный обработчик события восстановления формы приложения
Application.OnRestore := DoRestore;
Application.Minimize;
end;
procedure TfrmFoobar.DoRestore(Sender: TObject);
begin
Application.ShowMainForm := True;
//Восстанавливаем приложение
Perform(wm_SysCommand, sc_Restore, 0);
//Гарантируем правильную перерисовку всех компонентов
Show;
//Убираем временного обработчика события чтобы не вызывался в будущем
Application.OnRestore := nil;
end;
initialization//Здесь прячем минимизированную главную форму
Application.ShowMainForm := False;
end.
Минимизация формы при запуске программы на платформе Win95 не работает из-за неправильного поведения операционной системы, которое можно обойти с помощью временного обработчика события восстановления формы и вызова метода Perform.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS