Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PopupMenu Без формы, или с невидимой формой 
V
    Опции темы
Shurup
Дата 15.4.2007, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



Здраствуйе!

Столкнулся с такой задачей...

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

с данной частью проблем нету:
На форме размещаю TPopupMenu и при загрузке формы делаю PopupMenu1.Popup(p.X,p.y);
где P - координаты курсора.

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

Что можете посоветовать в данном случае. Спаибо заранее.. smile 
PM MAIL   Вверх
Snowy
Дата 15.4.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Перед Popup сделай
Код

  SetForegroundWindow(Form1.Handle);

PM MAIL   Вверх
Shurup
Дата 15.4.2007, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



Цитата(Snowy @ 15.4.2007,  20:01)
Перед Popup сделай
Код

  SetForegroundWindow(Form1.Handle);

Немного не то.... Другими словами мне наоборот нужно, чтоб форма закрывалась, когда она теряет фокус...

Хотя возможно я не понял...
PM MAIL   Вверх
Snowy
Дата 15.4.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Если к ней привязано меню, то закрывать нельзя - менюшка работать не будет.
Закрывать на потерю фокуса можно только в том случае, если меню было показано.
Но перед показом меню, нужно дать фокус этой форме.
Если ей не дать фокус, то попупка будет висеть, пока фокус не будет потерян.
А, чтоб он был потерян, он сначала должен быть получен.
Поэтому и нужна эта строчка - установить фокус на своё окно.
После этого показываем попупку. Вот теперь форма может потерять фокус и меню нормально закроется.
И сразу примечание: при получении фокуса, окно вполне может быть скрыто.
PM MAIL   Вверх
Shurup
Дата 16.4.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 16.10.2006

Репутация: нет
Всего: нет



Немного пришлось изменить структуру и с этой строчкой действительно заработало...
Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.