Скрыть основную форму в приложении Delphi 2009 - PullRequest
8 голосов
/ 25 марта 2009

Следующий код отлично работает в Delphi 7. Однако в Delphi 2009 форма остается скрытой, но кнопка на панели задач теперь появляется.

ShowWindow(Handle, SW_HIDE);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW );
ShowWindow(Handle, SW_SHOW);

Приведенный выше код вызывается в методе FormCreate.

Ответы [ 2 ]

10 голосов
/ 28 апреля 2009

Оказывается, причина, по которой мы видели окно приложения на панели задач, была простой настройкой, похожей на ответ Stukelly, но не совсем.

Чтобы главная форма отображалась на панели задач и скрывала применяемое меню приложения:

Application.MainFormOnTaskbar := True;
Application.ShowMainForm := False;

Никакой код за формой не создан или что-либо требуется.

5 голосов
/ 26 марта 2009

Вам необходимо установить свойства ShowMainForm и MainFormOnTaskBar в False перед созданием формы.

Откройте исходный код проекта и установите MainFormOnTaskBar и ShowMainForm в значение False до создания формы.

Application.Initialize;
Application.MainFormOnTaskbar := false;
Application.ShowMainForm := false;
Application.CreateForm(TForm1, Form1);

Затем в вашей главной форме добавьте следующий код в FormActivate и FormShow события.

procedure TForm1.FormActivate(Sender: TObject);
begin
 // hide taskbar button
 ShowWindow(Application.Handle, SW_HIDE);
end;
procedure TForm1.FormShow(Sender: TObject);
begin
 // hide taskbar button
 ShowWindow(Application.Handle, SW_HIDE);
end;

Я тестировал с Dephi 2007 и 2009. Дополнительная информация доступна здесь .

...