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

start [/forum/topic.php?fid=58&tablet=1&tid=2040024]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
180ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 512ms |

| 0 / 0 |
