|
|
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
На форме несколько ButtonedEdit, RightButton.DropDownMenu каждого эдита связан с одним и тем же PopupMenu с несколькими MenuItem. Как узнать на кнопке какого эдита был кликнут пункт меню? Пробовал так: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:36 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYingКак узнать на кнопке какого эдита был кликнут пункт меню? А как ты это меню открываешь? F1Set PopupComponent to associate a control with the menu before calling the Popup method programmatically to bring up the pop-up menu. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:40 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, т.е. помимо связи RightButton.DropDownMenu эдита с PopupMenu, нужно еще и св-во PopupMenu самого эдита связать с этим же попапом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:45 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Так тоже не работает. "А как ты это меню открываешь?" - клик по правой кнопке ButtonedEdit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:51 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYing, у PopupMenu есть свойство PopupComponent Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:52 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYing, если у тебя какие-то кастомные компоненты, то весь вопрос к их создателям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:53 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)LiYing, если у тебя какие-то кастомные компоненты, то весь вопрос к их создателям Только родные делфовые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 16:56 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYingпомимо связи RightButton.DropDownMenu эдита с PopupMenu У стандартного эдита нет ни свойства RightButton, ни свойства DropDownMenu. Что возвращает нас к вопросу о левых компонентах. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 17:04 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYing, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Как видим TEditButton игнорирует PopupComponent, поэтому узнать кто вызывает меню не получится никак. Разве что если сделать полностью свой класс TEditButton, т.к. тип TGlyph амба зачем-то засунула в приватную секцию этого класса, т.е. даже в наследнике до неё не добраться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 17:28 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYing, Как вариант - убрать DropDownMenu, назначить OnClick() и там вручную вызывать PopupMenu с присвоением ей нужного PopupComponent. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 17:31 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovLiYingпомимо связи RightButton.DropDownMenu эдита с PopupMenu У стандартного эдита нет ни свойства RightButton, ни свойства DropDownMenu. Что возвращает нас к вопросу о левых компонентах. http://docwiki.embarcadero.com/Libraries/Rio/en/Vcl.ExtCtrls.TButtonedEdit это левый компонент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 20:04 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 20:25 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
DimaBr, А если с клавиатуры откроют? Хотя не факт, что это возможно с этим контролом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 20:49 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYingэто левый компонент? Да. Они его спёрли то ли у Rz то ли у джедаев. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 21:33 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovДа. Они его спёрли то ли у Rz то ли у джедаев. Нууу... так можно договориться о черт знает чем... Всем спасибо за обсуждение и предложенные решения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 08:06 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Вот не могу в моск взять, какие могут быть проблемы с определением подлежащего или порождающего контрола. Есть курсор. Всегда можно узнать, над чем он находится. Например, в treeview на какой-то ветке вызывается попап. Всегда можно заюзать NodeAT. А тривиальные способы описаны в учебниках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 09:34 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Почему так ? Код: pascal 1. 2. Здесь в PopupPoint попадают координаты выпадения меню. Экспериментально (возможно из-за того, что у меня картинки больше ButtonEdit) меню появляется чуть ниже компонента и по координатам PopupMenu1.PopupPoint функция ControlAtPos ничего не находит. Поэтому я немного сдвинул координату вверх Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 09:38 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
GatorЕсть курсор. Всегда можно узнать, над чем он находится. Например, в treeview на какой-то ветке вызывается попап. Всегда можно заюзать NodeAT. А ещё есть комбинации клавиш на клавиатуре, которые или имитируют нажатие правой кнопки мыши на активном контроле (а не под курсором) или вообще вызывают всплывающее меню без нажатия кнопок мыши - например пробел для кнопок с DropDownMenu по-умолчанию. Но зачем нам учитывать такие случаи, они ведь не случатся никогда-никогда, а если и случатся то пользователь сам дурак, верно? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 09:50 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
OnContextPopup? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 10:15 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
alekcvp> ... без нажатия кнопок мыши - например пробел ... А какая разница? На форме всегда есть что-то активное. Допустим, на мемо вертикально расположен алфавит. И ты ползаешь стрелками по нему, как на лифте, вверх/вниз. И ты всегда знаешь, на какой строке ты находишься (по её индексу, например) Жмакай хоть пробел, хоть [Alt]+? Так что точка показа попапменю всегда под контролем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 12:06 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
GatorЕсть курсор. Всегда можно узнать, над чем он находится. Вот только "над чем он находится сейчас" и "над чем он находился в момент клика" это две большие разницы. Две типичные ошибки новичка складываются и в результате программы при кислородном процессорном голодании ведут себя совершенно сумасшедшим образом. Не надо так делать. А если и приспичило, координаты надо брать не текущие, а те, что пришли в сообщении WM_LBUTTONDOWN. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 12:44 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, абсолютно согласен. Я к тому, что позицию попапа можно всегда вычислить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 13:20 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
LiYingтак можно договориться о черт знает чем... О том, что в VCL внезапно есть баги? Да, в ней туева прорва багов. Если этот - первый на которого ты нарвался, то ты либо нуб, либо везунчик. Теперь придётся пересматривать своё мировоззрение и архитектуру программы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 13:21 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
GatorЯ к тому, что позицию попапа можно всегда вычислить. Но это не поможет аффтару с его задачей связать попап с конкретным компонентом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 13:41 |
|
||
|
Как узнать на каком контроле кликнут элемент попапменю?
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Так компонента может не быть вовсе. афтар, скорее всего имеет в виду "элемент графического интерфейса". В конце концов. у компонентов есть их координаты на известна точка клика. Что ещё надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.08.2019, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=64&tid=2039100]: |
0ms |
get settings: |
17ms |
get forum list: |
29ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
84ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 408ms |

| 0 / 0 |
