Как не иметь MainForm в Delphi?

Я пытался чтобы некоторые немодальные формы в моем приложении отображались на панели задач - используя преимущества новой полезной панели задач в Windows 7.

Есть много проблем с VCL, которые необходимо отменить, прежде чем форма сможет существовать на панели задач.

Но последняя проблема заключается в том, что сведение к минимуму формы, которую VCL обозначил как главную форму , приводит к исчезновению всех окон в приложении.

Десять лет назад Питер Белов (TeamB) задокументировал эти проблемы и пытается их обойти. Но есть некоторые проблемы, которые невозможно решить. Проблемы лежат настолько глубоко внутри самого VCL, что он Фактически невозможно заставить приложения Delphi работать должным образом.

Все это происходит из-за того, что кнопка, которую вы видите на панели инструментов, не представляет окно приложения; он представляет собой окно TApplications , которое скрыто и никогда не отображается. Кроме того, существует MainForm приложения, который затем наделен особыми возможностями: если он минимизирован, то он указывает приложению скрыть себя.

Мне кажется, что если я могу сделать

Application.MainForm := nil;

, тогда все эти ошибки исчезнут. Приложение может иметь свое скрытое окно, а пока я заменю все другие формы в приложении, включая мою главную форму, с помощью:

procedure TForm2.CreateParams(var params: TCreateParams ); 
begin 
   inherited CreateParams(params); 
   params.ExStyle := params.ExStyle or WS_EX_APPWINDOW; 
end; 

Но в Delphi Свойство Application.MainForm доступно только для чтения.

Как я могу не иметь MainForm в Delphi?

См. Также

5
задан Community 23 May 2017 в 10:30
поделиться