|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Переключ. на вызванное popupmenu
При вызове всплывающего меню НЕ над родительской формой (она в этот момент скрыта) само меню остается не активно и продолжает висеть на экране если я выбираю мышью любое другое окно. Можно ли как то поймать его в фокус в момент вызова ?
Пробовал так: Код:
SetForegroundWindow(Handle); PM.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); PostMessage(Handle, WM_NULL, 0, 0); Но безрезультатно. |
#2
|
||||
|
||||
Как не пытался на реплике поставленной задачи смоделировать подобную ситуацию, не получилось: вызов "не родного" попап скрытой формы всегда на него фокус устанавливает, и менюшка скрывается при его потере, D7
Код:
uses unit1; procedure TForm2.Button1Click(Sender: TObject); begin Form1.Hide; // Form2.Show; Form1.PopupMenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Xalexo (02.10.2016)
|
#3
|
||||
|
||||
Точно помню что такая проблема была и решается она SetForegroundWindow. На Windows 10 этого точно достаточно.
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Xalexo (02.10.2016)
|
#4
|
||||
|
||||
Всё верно, пардон, сам повинен я был в этом. Вызывал это меню непосредственно из программного хука (не DLL) на
MOUSERBUTTONUP. Потом засунул его в Timer с небольшим интервалом срабатывания и все заработало как должно |