|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | 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  
			
			
			
			
		 | ||||
| 
 | ||||
|   а, все. это я уже нашел. в общем, вопрос исчерпан, всем спасибо за участие, кое-что интересное отсюда я-таки вычерпал) |