Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.07.2010, 20:44
Аватар для Darkness
Darkness Darkness вне форума
Прохожий
 
Регистрация: 29.07.2010
Адрес: Украина, Житомир
Сообщения: 6
Репутация: 10
По умолчанию Всегда на самом видном месте

Вопрос такой.

Нужно чтобы форма была абсолютно всегда видна. Она должна быть поверх всех окон, де должна сворачиваться ни при каких условиях, таких как win+D, win+M, ярлык свернуть все окна и т.д. При этом вовсе не обязательно, чтобы фокус был постоянно на форме.

Вдобавок ко всему, нужно убрать кнопку приложения с панели задач. Я пробовал использовать

Прошу не предлагать fsStayOnTop (с инспектором я уже давно знаком). Против минимизации приложения хорошо помогает следующая процедура
Код:
  procedure Tsensor.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do begin
      WndParent := GetDesktopWindow;
    end;
    ShowWindow(Application.Handle,SW_HIDE) 
end;    

Но она обязательно создает кнопку на панели задач (причем на каждую форму, использующую эту процедуру будет создаваться отдельная кнопка, что ни в какие ворота не лезет)

Итого, повторюсь: нужно несворачиваемое приложение поверх всех окон и без кнопок в таксбаре. Заранее спасибо)
__________________
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто из презирает

Последний раз редактировалось Darkness, 30.07.2010 в 13:23.
Ответить с цитированием
  #2  
Старый 30.07.2010, 09:14
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Зачем? . . . . . . .
Для чего? . . . . . . .
Ответить с цитированием
  #3  
Старый 30.07.2010, 09:52
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Ну например что-бы пользователь не мог убрать это окно не заплатив денюжку, или скажем для нестандартных операций с чужим приложением.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 30.07.2010, 10:16
Аватар для friz
friz friz вне форума
Местный
 
Регистрация: 04.04.2008
Адрес: Минск
Сообщения: 596
Версия Delphi: 2007 & JAVA EE
Репутация: 10670
По умолчанию

меня этот вопрос тоже интересует, но в благих целях
__________________
Последний раз редактировалось Admin, Сегодня в 10:32.
Ответить с цитированием
  #5  
Старый 30.07.2010, 10:59
Аватар для Darkness
Darkness Darkness вне форума
Прохожий
 
Регистрация: 29.07.2010
Адрес: Украина, Житомир
Сообщения: 6
Репутация: 10
Радость

Зачем? хм. ну это является необходимым условием функционирования. Я даже не ожидал такого вопроса)

Если будет душе спокойнее, то я написал прогу, которая имеет маленькую формочку, никому не мешающую, находящуюся где-то в углу экрана. При наведении на нее плавно появляется окошко со списком часто используемый мной ссылок, чтобы не искать их в адресной строке (если чищу куки, то это и вовсе бесполезно)

http://s43.radikal.ru/i100/1007/fe/e10eb55967aa.png

вот такого вида окно. Прога исключительно для меня. поэтому я даже не предусматривал возможности поменять в настройках эти ссылки. Я не настолько крут, чтобы писать прогу, которой бы пользовались другие. Для себя - всегда пожалуйста.

Ну а теперь, когда я удовлетворил ваше страждущее любопытство, все же по делу)
__________________
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто из презирает
Ответить с цитированием
  #6  
Старый 30.07.2010, 11:48
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

поставь в таймере:
Код:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE);
__________________
Arrrgh
Ответить с цитированием
  #7  
Старый 30.07.2010, 12:13
Аватар для Darkness
Darkness Darkness вне форума
Прохожий
 
Регистрация: 29.07.2010
Адрес: Украина, Житомир
Сообщения: 6
Репутация: 10
По умолчанию

Попробовал только что. действительно помогает оставаться наверху не отбирая фокус у других приложений.

однако допускает сворачивание. Можно попробовать совместить этот код с другим, который запрещает минимизацию, но тот что я привел в первом сообщении, он создает кнопку на таксбаре, а это недопустимо. Есть ли у кого идеи, как еще можно запретить окну (или приложению вцелом) сворачиваться?

Проблема стейонтопа вроде бы решена.

и, кстати, я пробовал прописать это на форм криейт. достаточно это выполнить при создании формы. так что даже и таймер не потребовался)

Спасибо
__________________
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто из презирает
Ответить с цитированием
  #8  
Старый 30.07.2010, 12:38
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

два варианта:
Код:
BorderIcons := [biSystemMenu];
или заглушку поставить
Код:
...
  private
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
...

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  with Message do
    if not (CmdType and $FFF0 = SC_MINIMIZE) then
      inherited;
end;
__________________
Arrrgh
Ответить с цитированием
  #9  
Старый 30.07.2010, 12:43
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Application.OnMinimize, Application.Restore?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #10  
Старый 30.07.2010, 12:53
Аватар для urahara
urahara urahara вне форума
Новичок
 
Регистрация: 16.01.2010
Сообщения: 86
Репутация: 35
По умолчанию

Цитата:
Сообщение от DJ PhoeniX
Application.OnMinimize, Application.Restore?
это просто события без получения управления.
__________________
Arrrgh
Ответить с цитированием
  #11  
Старый 30.07.2010, 13:45
Аватар для Darkness
Darkness Darkness вне форума
Прохожий
 
Регистрация: 29.07.2010
Адрес: Украина, Житомир
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от urahara
два варианта:
Код:
BorderIcons := [biSystemMenu];
или заглушку поставить
Код:
...
  private
    procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND;
...

procedure TForm1.WMSysCommand(var Message: TWMSysCommand);
begin
  with Message do
    if not (CmdType and $FFF0 = SC_MINIMIZE) then
      inherited;
end;


Это не подходит. Ваш вариант либо убирает кнопку свернут из заголовка либо блокирует ее. Дело в том, что у меня форма без границ. и этой кнопки у меня вообще нет. Мне нужно, чтобы форму нельзя было свернуть через ярлык "свернуть все окна" или через win+D.

Попробую поступить по-другому. Подскажите как перехватить момент сворачивания формы и, скажем, если она сворачивается, присвоить какому-то булину тру?
__________________
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто из презирает

Последний раз редактировалось Darkness, 30.07.2010 в 14:02.
Ответить с цитированием
  #12  
Старый 30.07.2010, 13:58
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Все это дурно пахнет.

Пользователь должен всегда иметь возможность закрыть/свернуть окно.
Ответить с цитированием
  #13  
Старый 30.07.2010, 14:10
Аватар для Darkness
Darkness Darkness вне форума
Прохожий
 
Регистрация: 29.07.2010
Адрес: Украина, Житомир
Сообщения: 6
Репутация: 10
По умолчанию

Согласен. Кроме случая, когда прогу я пишу для себя. тут я сам себе определяю требования к уровню комфорта в работе с ней.
Как ее закрыть? - Двойной щелчек по форме, наведение курсора на которую и обрабатывается. Что за прога? - Читай выше. Если хочешь, я даже могу поделиться и показать, что успел сделать)

Да. и пусть вас не пугает правая часть окна, где написано Отправить смс. Это 4 украинских оператора, на сайте которых есть сервис бесплатной отправки смс-ок. Мало ли, может захочу друзьям написать, а денег жалко
--------------

Ктонидь подскажите, как обработать событие при сворачивании приложения и добавить "трушности" некоторой переменной в случае сворачивания.

Я решил сделать иначе. пусть окно сворачивается, но если окно выбора ссылок у меня висит на экране, то при сворачивании оно закрывается. меня такой вариант устраивает.)
__________________
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто из презирает

Последний раз редактировалось Darkness, 30.07.2010 в 14:19.
Ответить с цитированием
  #14  
Старый 30.07.2010, 14:21
Аватар для Darkness
Darkness Darkness вне форума
Прохожий
 
Регистрация: 29.07.2010
Адрес: Украина, Житомир
Сообщения: 6
Репутация: 10
По умолчанию

а, все. это я уже нашел. в общем, вопрос исчерпан, всем спасибо за участие, кое-что интересное отсюда я-таки вычерпал)
__________________
Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирающих программистов, которые презирают тех, кто из презирает
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter