Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кто вызвал PopupMenu?
|
|||
|---|---|---|---|
|
#18+
Один компонент TPopupMenu привязан к нескольким компонентам на форме. Во время вызова меню (OnPopup) или срабатывания позиции меню (OnClick) необходимо узнать, какой из компонентов инициализировал меню. К примеру, в событии OnClick(Sender: TObject) это будет (Sender as TMenuItem).GetParentMenu.PopupComponent. Все прекрасно до тех пор, пока позиция меню вызывается мышкой. Если происходит инициализация с помощью ShortCut, то (Sender as TMenuItem).GetParentMenu.PopupComponent = nil. Почему и как с этим бороться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 17:24 |
|
||
|
Кто вызвал PopupMenu?
|
|||
|---|---|---|---|
|
#18+
Как вариант: устанавливаешь свойство Tag компонент, к которым привязан TPopupMenu в 0,1,2,3... Тогда в обработчике OnClick(Sender: TObject) пишешь: if (Sender as TComponent).Tag = 0 then ... else if (Sender as TComponent).Tag = 1 then ... else ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 17:27 |
|
||
|
Кто вызвал PopupMenu?
|
|||
|---|---|---|---|
|
#18+
Berg В принципе подошло бы, но Sender в данном случае TMenuItem, а не вызывающий коммпонент:( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2003, 18:14 |
|
||
|
Кто вызвал PopupMenu?
|
|||
|---|---|---|---|
|
#18+
Попробуй так Напиши функцию определения контрола под мышью типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. и в обработчике пункта меню используй эту функцию типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2003, 07:29 |
|
||
|
Кто вызвал PopupMenu?
|
|||
|---|---|---|---|
|
#18+
LexusR Так не получится. Мышь не при делах. В момент срабатывания ShortCut мышь может находиться где угодно, в том числе и за пределами приложения. Решение уже найдено. Поскольку событие ShortCut происходит не для контрола, а для формы, то и спрашивать нужно у формы, какой у нее активный контрол в момент возникновения события. У формы есть на этот случай OnShortCut. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2003, 10:02 |
|
||
|
Кто вызвал PopupMenu?
|
|||
|---|---|---|---|
|
#18+
вопрос просто в том что нужно получить в момент нажатия ShortCut если Control находящийся под курсором то тот вариант что я написал а если контрол активный в данный момент то можно просто прямо в обработчике нажатия пункта меню спросить у формы Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2003, 10:26 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32362394&tid=2115319]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 348ms |

| 0 / 0 |
