![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Вопрос такой.
Нужно чтобы форма была абсолютно всегда видна. Она должна быть поверх всех окон, де должна сворачиваться ни при каких условиях, таких как 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
|
||||
|
||||
|
Зачем? . . . . . . .
Для чего? . . . . . . . |
|
#3
|
||||
|
||||
|
Ну например что-бы пользователь не мог убрать это окно не заплатив денюжку, или скажем для нестандартных операций с чужим приложением.
|
|
#4
|
||||
|
||||
|
меня этот вопрос тоже интересует, но в благих целях
![]() |
|
#5
|
||||
|
||||
|
Зачем? хм. ну это является необходимым условием функционирования. Я даже не ожидал такого вопроса)
Если будет душе спокойнее, то я написал прогу, которая имеет маленькую формочку, никому не мешающую, находящуюся где-то в углу экрана. При наведении на нее плавно появляется окошко со списком часто используемый мной ссылок, чтобы не искать их в адресной строке (если чищу куки, то это и вовсе бесполезно) http://s43.radikal.ru/i100/1007/fe/e10eb55967aa.png вот такого вида окно. Прога исключительно для меня. поэтому я даже не предусматривал возможности поменять в настройках эти ссылки. Я не настолько крут, чтобы писать прогу, которой бы пользовались другие. Для себя - всегда пожалуйста. Ну а теперь, когда я удовлетворил ваше страждущее любопытство, все же по делу) |
|
#6
|
||||
|
||||
|
поставь в таймере:
Код:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE or SWP_NOACTIVATE); |
|
#7
|
||||
|
||||
|
Попробовал только что. действительно помогает оставаться наверху не отбирая фокус у других приложений.
однако допускает сворачивание. Можно попробовать совместить этот код с другим, который запрещает минимизацию, но тот что я привел в первом сообщении, он создает кнопку на таксбаре, а это недопустимо. Есть ли у кого идеи, как еще можно запретить окну (или приложению вцелом) сворачиваться? Проблема стейонтопа вроде бы решена. и, кстати, я пробовал прописать это на форм криейт. достаточно это выполнить при создании формы. так что даже и таймер не потребовался) Спасибо |
|
#8
|
||||
|
||||
|
два варианта:
Код:
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; |
|
#9
|
||||
|
||||
|
Application.OnMinimize, Application.Restore?
|
|
#10
|
||||
|
||||
|
Цитата:
|
|
#11
|
||||
|
||||
|
Цитата:
Это не подходит. Ваш вариант либо убирает кнопку свернут из заголовка либо блокирует ее. Дело в том, что у меня форма без границ. и этой кнопки у меня вообще нет. Мне нужно, чтобы форму нельзя было свернуть через ярлык "свернуть все окна" или через win+D. Попробую поступить по-другому. Подскажите как перехватить момент сворачивания формы и, скажем, если она сворачивается, присвоить какому-то булину тру? Последний раз редактировалось Darkness, 30.07.2010 в 14:02. |
|
#12
|
||||
|
||||
|
Все это дурно пахнет.
Пользователь должен всегда иметь возможность закрыть/свернуть окно. |
|
#13
|
||||
|
||||
|
Согласен. Кроме случая, когда прогу я пишу для себя. тут я сам себе определяю требования к уровню комфорта в работе с ней.
Как ее закрыть? - Двойной щелчек по форме, наведение курсора на которую и обрабатывается. Что за прога? - Читай выше. Если хочешь, я даже могу поделиться и показать, что успел сделать) Да. и пусть вас не пугает правая часть окна, где написано Отправить смс. Это 4 украинских оператора, на сайте которых есть сервис бесплатной отправки смс-ок. Мало ли, может захочу друзьям написать, а денег жалко -------------- Ктонидь подскажите, как обработать событие при сворачивании приложения и добавить "трушности" некоторой переменной в случае сворачивания. Я решил сделать иначе. пусть окно сворачивается, но если окно выбора ссылок у меня висит на экране, то при сворачивании оно закрывается. меня такой вариант устраивает.) Последний раз редактировалось Darkness, 30.07.2010 в 14:19. |
|
#14
|
||||
|
||||
|
а, все. это я уже нашел. в общем, вопрос исчерпан, всем спасибо за участие, кое-что интересное отсюда я-таки вычерпал)
|