Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Устранение нежелательного отображения иконки приложения на панели задач в Delphi под Windows XP

Delphi , Синтаксис , Справочник по API-функциям

Скрытие иконки приложения на панели задач в Delphi под Windows XP

При разработке приложений на Delphi, иногда возникает необходимость скрыть иконку приложения на панели задач, особенно это актуально для приложений, работающих в системном трее. В данной статье мы рассмотрим, как решить эту задачу, основываясь на вопросе пользователя, который столкнулся с проблемой после перехода с Delphi 6 на Delphi XE2.

Проблема

Пользователь столкнулся с проблемой, что после перехода с Delphi 6 на Delphi XE2, его приложение, которое ранее корректно скрывалось в системном трее и не отображалось на панели задач, начало отображаться на панели задач в Windows XP при открытии дополнительных форм.

Решение

Для решения проблемы, необходимо изменить подход к управлению видимостью форм и их владельцами. В Delphi есть свойство MainFormOnTaskBar, которое определяет, будет ли основная форма отображаться на панели задач. Также важно правильно управлять владельцами окон, чтобы они не отображались на панели задач.

Шаг 1: Установка свойства MainFormOnTaskBar

Сначала установите свойство MainFormOnTaskBar в False в файле dpr, чтобы основная форма не отображалась на панели задач.

Application.MainFormOnTaskBar := False;

Шаг 2: Сокрытие и показ основной формы

Когда вы хотите скрыть основную форму, используйте MainForm.Hide, а для показа - MainForm.Show.

Шаг 3: Управление владельцами форм

Установите свойство PopupParent для вспомогательных форм, чтобы они были владельцами основной формы. Это предотвратит их отображение на панели задач.

OtherForm := TForm.Create(Application);
OtherForm.PopupParent := MainForm;

Шаг 4: Удаление кода для скрытия окна от панели задач

Удалите ненужный код, который пытается скрыть окно от панели задач, например, через интерфейс ITaskbarList.

Шаг 5: Обработка событий окна

Для управления поведением приложения при минимизации и восстановлении окна, можно переопределить обработчик сообщения WM_SYSCOMMAND.

procedure TMainForm.WMSysCommand(var Msg: TWMSysCommand);
begin
  if (Msg.CmdType and $FFF0)=SC_MINIMIZE then
  begin
    Hide;
    exit;
  end;
  inherited;
end;

Пример минимальной программы

program MainFormHiding;
uses
  Forms, StdCtrls, Windows;

var
  MainForm, OtherForm: TForm;
  Button: TButton;

type
  TEventHandlerClass = class
    class procedure ToggleTaskbarButton(Sender: TObject);
  end;

class procedure TEventHandlerClass.ToggleTaskbarButton(Sender: TObject);
begin
  if IsWindowVisible(Application.Handle) then
    ShowWindow(Application.Handle, SW_HIDE)
  else
    ShowWindow(Application.Handle, SW_SHOW);
end;

begin
  Application.MainFormOnTaskbar := False;
  // Инициализация основной и вспомогательной форм
  // ...
  OtherForm.PopupParent := MainForm;
  // Настройка кнопки для переключения отображения на панели задач
  // ...
  Application.Run;
end.

Заключение

Изменение владельцев форм и правильное управление их видимостью позволяет скрыть иконку приложения на панели задач в Windows XP, что особенно полезно для приложений, работающих в системном трее. Следуя этим шагам, вы сможете достичь желаемого поведения вашего приложения.

Создано по материалам из источника по ссылке.

Описание: Устранение отображения иконки приложения на панели задач в среде Delphi для Windows XP.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Справочник по API-функциям ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-26 14:03:10/0.0033040046691895/0