Отображение проги в панели задач
Модератор: Модераторы
Отображение проги в панели задач
Что-то я забыл: есть ли в Lazarus какой-нибудь "внеОСный" параметр, чтобы запущенная программа (оконная, естественно) не отображалась на панели задач? Если нет, то как можно сделать и в винде и в Linux (KDE и XFCE).
Re: Отображение проги в панели задач
showintaskbar, или апи ДЕ.
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Re: Отображение проги в панели задач
Код: Выделить всё
TForm.HideRe: Отображение проги в панели задач
Ichthyander
А если форма на экране нужна в развёрнутом состоянии?
А если форма на экране нужна в развёрнутом состоянии?
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Re: Отображение проги в панели задач
Vadim писал(а):Ichthyander
А если форма на экране нужна в развёрнутом состоянии?
Код: Выделить всё
MainForm.Show; // :) Я думал, что Вам нужно скрывать главное окно в системный трей и разворачивать оттуда. Обычно это нужно. Если это не нужно, то как выше написал pupsik, тоже свойство главного окна
Re: Отображение проги в панели задач
Ichthyander
Есть окошко, которое должно быть всегда сверху (где-нибудь скромно в уголке) и показывает, к примеру, сколько минут осталось до начала цепной реакции в ядерных отходах.
Оно в панели задач не нужно, поскольку не сворачивается, не положено ему. И, следовательно, не разворачивается...
Есть окошко, которое должно быть всегда сверху (где-нибудь скромно в уголке) и показывает, к примеру, сколько минут осталось до начала цепной реакции в ядерных отходах.
- Ichthyander
- энтузиаст
- Сообщения: 701
- Зарегистрирован: 04.04.2007 08:32:43
- Откуда: Астрахань
- Контактная информация:
Re: Отображение проги в панели задач
Vadim писал(а):Ichthyander
Есть окошко, которое должно быть всегда сверху (где-нибудь скромно в уголке) и показывает, к примеру, сколько минут осталось до начала цепной реакции в ядерных отходах.Оно в панели задач не нужно, поскольку не сворачивается, не положено ему. И, следовательно, не разворачивается...
Ясно. Тогда понятно. Кстати, лайфхак: можете тогда не заморачиваться с освобождением ресурсов при окончании работы программы
Re: Отображение проги в панели задач
Можно прямо на десктопе что-то нарисовать а программу объявить "сервисом" ( в этом случае в панели задач ничего не отображается ) ... Рецепт для винды как оно в Линукс точно не знаю.. Но вроде аналогично .
http://www.freepascal.ru/article/lazaru ... 403120204/
http://www.freepascal.ru/article/lazaru ... 403120204/
Re: Отображение проги в панели задач
Alex2013
Сервис у меня уже есть, а оконная программа нужна для общения с пользователем. Если рисовать прямо на рабочем столе, придётся потом вручную картинку постоянно восстанавливать...
------------------------------
Если потом кому-то будет интересно, убрать кнопку из TaskBar развёрнутого на экране приложения удалось только с помощью ITaskBar. Любые другие методы (советов в инете куча...) оказались нерабочие. Пример только для Windows (версии 7 или выше. На более старых не испытывал):
Показываемые на экране окна имеют BorderStyle либо bsNone (чтобы никто менюшкой окна не набедокурил), либо bsSingle (там, где заголовок окна нужен, например, чтобы таскать окно по экрану).
Form1 - главное окно в приложении.
Чуть попозже исследую другие графические оболочки и попробую что-нибудь универсально написать...
Сервис у меня уже есть, а оконная программа нужна для общения с пользователем. Если рисовать прямо на рабочем столе, придётся потом вручную картинку постоянно восстанавливать...
------------------------------
Если потом кому-то будет интересно, убрать кнопку из TaskBar развёрнутого на экране приложения удалось только с помощью ITaskBar. Любые другие методы (советов в инете куча...) оказались нерабочие. Пример только для Windows (версии 7 или выше. На более старых не испытывал):
Код: Выделить всё
Uses ... {$IFDEF WINDOWS}, windows, comobj, shlobj{$ENDIF}
procedure TForm1.FormShow(Sender: TObject);
Var
Taskbar: ITaskbarList;
Begin
...
Taskbar := CreateComObject(CLSID_TaskbarList) as ITaskbarList;
Taskbar.HrInit;
Taskbar.DeleteTab(Application.Handle);
End;
Показываемые на экране окна имеют BorderStyle либо bsNone (чтобы никто менюшкой окна не набедокурил), либо bsSingle (там, где заголовок окна нужен, например, чтобы таскать окно по экрану).
Form1 - главное окно в приложении.
Чуть попозже исследую другие графические оболочки и попробую что-нибудь универсально написать...
