|
|
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Имеется динамически создаваемый грид для которого имеется попапменю. И если хотя-бы один раз вызвать это попамменю, то все хорошо, свойство PopupControl получает ссылку на владельца, но вот если обратится по горячей клавише к элементу меню, без предварительного его вызова, то PopupControl имеет уже значение nil, что в общем-то логично ведь меню то не вызывалось, но как же мне в таком случае добраться до контрола-владельца без вызова попапменю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 11:55 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Привязать меню к гриду, например через Tag ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 12:56 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Через Form.ActiveControl? Или пункт меню может быть вызван даже не для активного грида?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 13:13 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, присвоить значение PopupComponent пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 13:21 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъсвойство PopupControl получает ссылку на владельца почему при создании сетки сразу нельзя указать нужное меню, которое будет привязано к сетке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2018, 17:42 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Спасибо за участие в мозговом штурме. авторприсвоить значение PopupComponent пробовал? нет не пробовал, а идея здравая, жаль только не сработала. Все равно имеем PopupComponent=nil в обработчике, при активации горячей клавишей. Form.ActiveControl я бы рад использовать, но я то как раз и пытаюсь через обработчик попапменю добраться хоть до чего-то кроме самого попапменю, а сие возможно только через PopupComponent который зараза пустой. авторпочему при создании сетки сразу нельзя указать нужное меню, которое будет привязано к сетке как-то мне категорически не нравится идея создать десяток попамменю делающих одно и то-же и прицепить каждое к своему гриду. У меня одно попапменю которое привязано к десятку разных гридов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 01:06 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
авторПривязать меню к гриду, например через Tag не сработает, т.к. этот таг просто неоткуда взять в обработчике, контекста формы то и нет в нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 01:10 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъУ меня одно попапменю которое привязано к десятку разных гридов. И какое срабатывает по горячей клавише ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 01:33 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъСпасибо за участие в мозговом штурме. авторприсвоить значение PopupComponent пробовал? нет не пробовал, а идея здравая, жаль только не сработала. Все равно имеем PopupComponent=nil в обработчике, при активации горячей клавишей. Form.ActiveControl я бы рад использовать, но я то как раз и пытаюсь через обработчик попапменю добраться хоть до чего-то кроме самого попапменю, а сие возможно только через PopupComponent который зараза пустой. авторпочему при создании сетки сразу нельзя указать нужное меню, которое будет привязано к сетке как-то мне категорически не нравится идея создать десяток попамменю делающих одно и то-же и прицепить каждое к своему гриду. У меня одно попапменю которое привязано к десятку разных гридов. а проверить присвоенное значение PopupComponent пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 09:39 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
а написать обработчик OnPopup пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 09:49 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Если у тебя одно меню м.б. привязано к нескольким гридам, то как ты хочешь определить конкретный грид? Если привязка 1:1, то можно просто перебором Components искать, у кого PopupMenu совпадает с владельцем пункта-Sender-а ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 10:10 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъForm.ActiveControl я бы рад использовать, но я то как раз и пытаюсь через обработчик попапменю добраться хоть до чего-то кроме самого попапменю, а сие возможно только через PopupComponent который зараза пустой. Есть же Owner ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 10:12 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, на всякий случай, "попапменю" - всплывающее меню, контекстное меню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 15:41 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
автора написать обработчик OnPopup пробовал? Да я много чего уже перепробовал, все и не перечислишь, но пока решения найти не получается. 1. Использовать OnPopup не поможет т.к. никакого события OnPopup не наступает при использовании горячих клавиш. 2. Owner использовать не получается т.к. свойство это ридонли, а само меню создано статически в датамодуле и владельцем соответственно является датамодуль, а не грид. 3. Sender в обработчике события это элемент меню и это нас выводит к меню владельцем которого является датамодуль. Вот такая сказка про белого бычка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 03:31 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ2. Owner использовать не получается т.к. свойство это ридонли, а само меню создано статически в датамодуле и владельцем соответственно является датамодуль, а не грид. ССЗБ так делать. Как вариант - при активации (фокусе) формы с гридом делай PopupMenu.Tag := NativeInt(Self); тогда в обработчике меню можно будет сделать TForm(((Sender as TMenuItem).Owner as TPopupMenu)).Tag) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 10:20 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, По идее - остается только угадывать. Берешь активную форму, ищещь на ней грид, который имеет фокус - к нему применяешь команду, которая прилетела. Если не нашел грид - ну, значит "не шмогла...". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 10:33 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Тогда ActiveForm, да. А еще поучиться выдавать всю информацию, чтобы не пришлось вытаскивать клещами по кусочкам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 10:49 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, автор а само меню создано статически в датамодуле и владельцем соответственно является датамодуль, а не грид Вначале трудности себе создаём, а потом героически их решаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 11:02 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъавтора написать обработчик OnPopup пробовал? Да я много чего уже перепробовал, все и не перечислишь, но пока решения найти не получается. 1. Использовать OnPopup не поможет т.к. никакого события OnPopup не наступает при использовании горячих клавиш. 2. Owner использовать не получается т.к. свойство это ридонли, а само меню создано статически в датамодуле и владельцем соответственно является датамодуль, а не грид. 3. Sender в обработчике события это элемент меню и это нас выводит к меню владельцем которого является датамодуль. Вот такая сказка про белого бычка. KeyPreview пробовал? AppMessage пробовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 11:09 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
makhaon в чем вы видите трудности мною созданные? Абсолютно без разницы, где я popupmenu изначально размещу, но все общие элементы удобнее хранить в отдельном контейнере, что я и делаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 14:34 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
А вот предложение alekcvp, с небольшими доработками, вполне похоже жизнеспособно. Ранее было предложение использовать Tag, но несколько иначе и я его сразу отбросил, а зря - был неправ. Тестирую, пока косяков не замечаю, работает как надо. Всем спасибо за потраченное время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 14:55 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, с самого начала задача не была сформулирована (предполагаю, может быть и не осознана) четко. Если одно меню на несколько форм/таблиц(гридов), то чтобы меню адекватно работало, нужно, чтобы к моменту его вызова была указана информация, к какому элементу управления меню вызывается. Раз эти данные уже должны быть, то значит их нужно указать 1) в какой-то момент раньше. И каким-то образом передать их в меню и 2) сохранить там. Чтобы при вызове эти данные использовать. И вот решение этой задачи, как предложил alekcvp: момент передачи - активация формы, а сохранять данные - в Tag. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 15:19 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
s62, *к моменту его вызова - к моменту его вызова с помощью горячих клавиш (если меню вызывается по клику на элементе управления, то информацию можно передать в этот момент) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 15:22 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
Как оказалось, не все так хорошо и с тагом. А вот простое решение использовать Screen.ActiveControl, оказалось рабочим. alekcvp почти попал в точку предложив еще в самом начале Form.ActiveControl. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 00:29 |
|
||
|
Как получить контрол источник для попапменю без вызова попамменю?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъКак оказалось, не все так хорошо и с тагом. А вот простое решение использовать Screen.ActiveControl, оказалось рабочим. alekcvp почти попал в точку предложив еще в самом начале Form.ActiveControl. исходники показал бы, чтоб не приходилось гадать, что там у тебя получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2018, 00:38 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39743286&tid=2040024]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
202ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 538ms |

| 0 / 0 |
