Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2010, 21:53   #1
Vol666
Гуру Разврата
Форумчанин
 
Аватар для Vol666
 
Регистрация: 29.07.2009
Сообщений: 373
Вопрос Несворачевоемое неактивное окно

Здравствуйте все! Возник вопрос кто-нибудь сталкивался с такой задачей?
Необходимо создать форму которая не будет сворачиваться (как гаджеты в Вин 7, они не реагируют на сворачивание) при нажатии на кнопку свернуть на рамке окна, на кнопку свернуть из панели задач, и на сочетание клавиш WIN+D; при этом форма не должна быть активной и не должна находится в режиме StayOnTop! Экспериментировал с TOPMOST и др. параметрами ничего путного не вышло. Гуглить-гуглил ничего полезного не нагуглил. Одна надежда на Вас! Спасибо!
Фредди вернулся))) И Готов Убивать!!!

Последний раз редактировалось Vol666; 14.06.2010 в 23:00.
Vol666 вне форума Ответить с цитированием
Старый 15.06.2010, 00:54   #2
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Свой апплет создать хочешь? Присвой своему окну в качестве родителя рабочий стол, в XP это так будет:
Код:
 ParentWindow :=  FindWindow('ProgMan', nil);
А потом вызови Show.
Только AlphaBlend перестаёт работать.

А кнопку сворачивания (как и кнопку на панели задач) вообще можно убрать нафиг.

Оффтоп: Win7 - это, конечно хорошо, но Ubuntu 10.04 всё же круче!!!
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс

Последний раз редактировалось Олвин; 15.06.2010 в 01:01.
Олвин вне форума Ответить с цитированием
Старый 15.06.2010, 01:11   #3
baster128
Форумчанин
 
Аватар для baster128
 
Регистрация: 24.04.2010
Сообщений: 205
По умолчанию

Может я неправильно понял вопрос? А нельзя просто BorderIcon.bdMinimize:= False:Можно и BorderIcon.bdMaximiize:= False:Тогда все кнопки исчезнут кроме креста.
baster128 вне форума Ответить с цитированием
Старый 15.06.2010, 10:23   #4
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Тогда по Win+D оно всё равно исчезать будет. Да ещё в списке Alt+Tab видно будет... Так что лучше #2. (Собственное изобретение)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 15.06.2010, 15:53   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

ну я думаю что на АПИ проще былоб, создаем окно со стилем WS_POPUP
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.07.2010, 21:02   #6
Vol666
Гуру Разврата
Форумчанин
 
Аватар для Vol666
 
Регистрация: 29.07.2009
Сообщений: 373
По умолчанию

Если Вас не затруднит, не могли бы вы рассказать больше о WS_POPUP
Фредди вернулся))) И Готов Убивать!!!
Vol666 вне форума Ответить с цитированием
Старый 07.09.2011, 21:33   #7
Surgeon
Форумчанин
 
Регистрация: 04.10.2007
Сообщений: 106
По умолчанию

Цитата:
Сообщение от Олвин Посмотреть сообщение
Свой апплет создать хочешь? Присвой своему окну в качестве родителя рабочий стол, в XP это так будет:
Код:
 ParentWindow :=  FindWindow('ProgMan', nil);
Спасибо получилось:
Код:
procedure TMainFOrm.FormCreate(Sender: TObject);
begin
    MainFOrm.ParentWindow:=  FindWindow('ProgMan', nil);
end;
Цитата:
Сообщение от Олвин Посмотреть сообщение
А кнопку сворачивания (как и кнопку на панели задач) вообще можно убрать нафиг.
Для решения первого пункта - задаем свойство формы "BorderStyle" например = bsNone, далее решение для панели задач - обработчик OnSHow:
Код:
  Application.CreateHandle;
ShowWindow(Application.Handle, SW_HIDE);
Application.ShowMainForm := FALSE;
Цитата:
Сообщение от Олвин Посмотреть сообщение
Только AlphaBlend перестаёт работать.
Увы :(.
Все не так плохо, как вам кажется, на самом деле все гораздо хуже.
http://delphiworld.narod.ru/dw.html - 5000 статей!!! удобный поиск, оффлайн сборник, рекомендую всем
Surgeon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[?] Послать клавишу в чужое окно, не выводя окно на передний план. Moriarty Win Api 4 21.02.2011 05:11
Всегда неактивное окно, поверх всех остальных Zeraim Общие вопросы Delphi 0 24.01.2010 18:36
Неактивное меню StasSv Microsoft Office Excel 18 21.07.2008 13:21
И опять нажатие в неактивное окно.. Syred Общие вопросы Delphi 0 15.06.2008 01:56
неактивное окно oLMeR Общие вопросы Delphi 7 11.11.2006 08:14