Отображение проги в панели задач

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Отображение проги в панели задач

Сообщение Vadim »

Что-то я забыл: есть ли в Lazarus какой-нибудь "внеОСный" параметр, чтобы запущенная программа (оконная, естественно) не отображалась на панели задач? Если нет, то как можно сделать и в винде и в Linux (KDE и XFCE).
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Re: Отображение проги в панели задач

Сообщение pupsik »

showintaskbar, или апи ДЕ.
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Отображение проги в панели задач

Сообщение Ichthyander »

Код: Выделить всё

TForm.Hide
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Отображение проги в панели задач

Сообщение Vadim »

Ichthyander
А если форма на экране нужна в развёрнутом состоянии? :-)
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Отображение проги в панели задач

Сообщение Ichthyander »

Vadim писал(а):Ichthyander
А если форма на экране нужна в развёрнутом состоянии? :-)

Код: Выделить всё

MainForm.Show; // :) 

Я думал, что Вам нужно скрывать главное окно в системный трей и разворачивать оттуда. Обычно это нужно. Если это не нужно, то как выше написал pupsik, тоже свойство главного окна
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Отображение проги в панели задач

Сообщение Vadim »

Ichthyander
Есть окошко, которое должно быть всегда сверху (где-нибудь скромно в уголке) и показывает, к примеру, сколько минут осталось до начала цепной реакции в ядерных отходах. :-) Оно в панели задач не нужно, поскольку не сворачивается, не положено ему. И, следовательно, не разворачивается...
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Re: Отображение проги в панели задач

Сообщение Ichthyander »

Vadim писал(а):Ichthyander
Есть окошко, которое должно быть всегда сверху (где-нибудь скромно в уголке) и показывает, к примеру, сколько минут осталось до начала цепной реакции в ядерных отходах. :-) Оно в панели задач не нужно, поскольку не сворачивается, не положено ему. И, следовательно, не разворачивается...

Ясно. Тогда понятно. Кстати, лайфхак: можете тогда не заморачиваться с освобождением ресурсов при окончании работы программы
Alex2013
долгожитель
Сообщения: 3211
Зарегистрирован: 03.04.2013 11:59:44

Re: Отображение проги в панели задач

Сообщение Alex2013 »

Можно прямо на десктопе что-то нарисовать а программу объявить "сервисом" ( в этом случае в панели задач ничего не отображается ) ... Рецепт для винды как оно в Линукс точно не знаю.. Но вроде аналогично .

http://www.freepascal.ru/article/lazaru ... 403120204/
Vadim
долгожитель
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Отображение проги в панели задач

Сообщение Vadim »

Alex2013
Сервис у меня уже есть, а оконная программа нужна для общения с пользователем. Если рисовать прямо на рабочем столе, придётся потом вручную картинку постоянно восстанавливать... ;-)
------------------------------
Если потом кому-то будет интересно, убрать кнопку из 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 - главное окно в приложении.
Чуть попозже исследую другие графические оболочки и попробую что-нибудь универсально написать... :)
Ответить