Кросплатформенно скрыть кнопуц формы на панели задачь

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

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

Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение qivi » 17.06.2013 12:16:24

Можно ли и как кросплатформенно скрыть кнопуц формы на панели задачь опрерационной системы?
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение debi12345 » 17.06.2013 14:38:32

Можно, если в Линуксе использумый "рабочий стол" придерживается Xorg-соглашений по этой части, а не занимается "самодеятельностью". То есть измените вопрос на "Можно ли скрыть (средствами Xorg) кнопцу на панель --используемого Вами линкусовог дестктоп-менеджера-- " ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение qivi » 17.06.2013 14:42:26

Нет, я имел в виду Линукс/Виндовс
Впрочем, если знаете решеения для данных ОС по отдельности, буду признателен. Если ещё подскажжите в какие директивы компилятора его (решение) заключить буду вообще безгранично благодарен.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение debi12345 » 17.06.2013 15:46:34

Вопрос состоит в : какой конкретно "менеджер окон" используете в Линуксе ? GNOMe, KDE, IceWM, XFCE,..

Добавлено спустя 1 минуту 54 секунды:
KDE & IceWM как правило четко придерживаются правил и API Xorg.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение qivi » 17.06.2013 16:53:01

debi12345, это в корне не корректный вопрос, я говорю о кросплатформенности, откуда я могу знать что будет у пользователя? Подскажи те способы какие знаеш.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение debi12345 » 17.06.2013 18:27:40

Мартин в МСЕгуй далает так (как обрабатывается опция "БЕЗ ТАСКБАРа" ):
1) ЛИНУКС - в цикле обработки ГУЙ-событий программы после ее старта:
Код: Выделить всё
function gui_getevent: tmseevent;
var
xev,xev2: xevent;
[..]
xnextevent(appdisp,@xev);
case xev.xtype of
[..]
  mapnotify: begin
   with xev.xmap do begin
    result:= twindowevent.create(ek_show,xwindow);
    if application.findwindow(xwindow,window1) and
             (wo_notaskbar {-- user defined --} in window1.options) then begin
     setnetatomarrayitem(xwindow,net_wm_state,net_wm_state_skip_taskbar); // <<< THIS COMMAND
    end;
   end;
  end;

2) в гэймшеллке - в процедуре создания основного окна программы :
Код: Выделить всё
  windowstyle:= windowstyle or ws_clipchildren;
  if (transientfor <> 0) or (options * [wo_popup,wo_message,wo_notaskbar {--user defined--}] <> []) then begin
   if transientfor <> 0 then begin  // если запомнено к стэку какого окна логмчески относится,
    ownerwindow:= transientfor;  // то назначить это окно родитесльским
   end;
   id:= windows.CreateWindowex(windowstyleex,widgetclassname,nil,windowstyle,
         rect1.x,rect1.y,rect1.cx,rect1.cy,ownerwindow{transientfor},0,hinstance,nil);  // THIS COMMAND


Добавлено спустя 11 минут 39 секунд:
Кстати окно в стиле "popup" тоже не должно попадать на таскбар.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение alexs » 17.06.2013 21:45:52

А чем свойство у формы ShowInTaskBar не подходит?
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4064
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение debi12345 » 17.06.2013 23:58:24

А чем свойство у формы ShowInTaskBar не подходит?

1) не лежит на виду и 2) написано мелким шрифтом :)
ПС:
оно реально работает в гэймшелловом лазаре ? У Мартина в МСЕ вдруг перестало - отписАл ему сегодня.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5761
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение qivi » 18.06.2013 13:05:15

А чем свойство у формы ShowInTaskBar не подходит?

Ну почему же не подходит, не знал. Спасибо.
Аватара пользователя
qivi
энтузиаст
 
Сообщения: 703
Зарегистрирован: 19.01.2009 13:45:54
Откуда: Россия

Re: Кросплатформенно скрыть кнопуц формы на панели задачь

Сообщение Ism » 19.06.2013 15:56:13

ShowInTaskBar У этой штуки Linux есть особенность, эта опция не действует на первую создаваемую форму в проекте
Но это легко обходится, как здесь https://code.google.com/p/vpnpptp/
http://bugs.freepascal.org/view.php?id=17294
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 240

Рейтинг@Mail.ru
cron