|
|
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Есть меню, в котором при помощи команды "SET MARK OF BAR nMenuItemNumber OF MenuName2 TO lExpression3" маркируются пункты меню. Отслеживать ото всюду надо промаркировать пункт меню или снять данное выделение не хочется. Заводить таймер для отслеживания состояния маркировки считаю неправильным. Кстати, в самой оболочке фокса enebled\disabled кнопок на панели инструментов, очень похоже, происходит именно по таймеру. По крайней мере визуально заметна задержка отрисовки. Внимание вопрос: как отловить момент раскрывания меню пользователем, чтобы в это время (перед раскрытием меню) проверить состояние системы и при необходимости промаркировать отдельные пункты меню? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 13:36 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Подозреваю что нет такого события, меню не объект потому и перехватить его открытие не удастся. Думаю надо копать в сторону BINDEVENT() если VFP9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 13:42 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
> Подозреваю что нет такого события, меню не объект потому и > перехватить его открытие не удастся. Подозрение такое тоже есть. Думал может есть какой нибудь ON ACTIVATE, которого я не заметил в help`e. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:06 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Galyamov RinatПодозрение такое тоже есть. Думал может есть какой нибудь ON ACTIVATE, Как вариант. Вместо Код: plaintext Код: plaintext Тут с координатами надо будет поразбираться и пункты из горизонтально меню модальность игнорируют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:30 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
В любой версии VFP при активизации меню перед его раскрытием срабатывают все блоки SET SKIP, поэтому повесьте хотя бы на один PAD фиктивный SKIP с пользовательской функцией, которая и будет выполнять задуманное. Только учтите, что есть разница при действиях мышью и клавиатурой. Щелчок мыши будет обработан дважды как при нажатии, так и при отпускании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2008, 14:45 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
А вот про "повесить на SKIP" я как - то не подумал. Спасибо, сейчас попробую. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 05:00 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
такой подход впринципе неверный. Ибо как я полагаю в зависимости от чека позиции должны или не должны выполнятся какие-то действия. Дык вот вместо того, чтоб анализить через MRKBAR() нужно буит снова опрашивать систему и т.д и т.п. А вот отслеживание и назначение lExpression3 внутри проги - это и понятней и прозрачней для других програмцов, кот придут после ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 08:06 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
> такой подход впринципе неверный. Ибо как я полагаю в зависимости от > чека позиции должны или не должны выполнятся какие-то действия. Дык вот > вместо того, чтоб анализить через MRKBAR() нужно буит снова опрашивать > систему и т.д и т.п. А вот отслеживание и назначение lExpression3 внутри > проги - это и понятней и прозрачней для других програмцов, кот придут > после Мысль такая: Есть несколько панелей инструментов. Чек показывает отображается данная панель или нет. Если отображается, то по пункту меню скрыть, если нет - то отобразить. Я хочу, чтобы "меню" само смотрело есть такая панель или нет. Можно, конечно, в дестрой панели прописать, чтобы она анчекала нужный пункт меню. Но мне кажется логичнее проверить при отрисовке меню в каком состоянии должен быть чек. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 09:44 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Galyamov RinatМысль такая: Есть несколько панелей инструментов. Чек показывает отображается данная панель или нет. Если отображается, то по пункту меню скрыть, если нет - то отобразить. Я хочу, чтобы "меню" само смотрело есть такая панель или нет. Можно, конечно, в дестрой панели прописать, чтобы она анчекала нужный пункт меню. Но мне кажется логичнее проверить при отрисовке меню в каком состоянии должен быть чек. Мне наоборот кажется :) Проще чтобы выбор пункта меню приводил к отображению скрытой панели или скрытию отображенной, а панель рулила своей галочкой в пункте меню. Я ведь правильно понимаю что панель может быть отображена/скрыта не только из меню? отсюда и потребность допконтроля возникла? Логичнее рассматривать галочку в меню как свойство панели, а не панель свойством галочки. А выбор пункта меню - одно из управляющих действий. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 10:18 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Меню, тулбары, панели и проч. есть отражение состояния каких-то бизнес-объектов. Можно напрямую не дергать никакие меню и т.д., а управлять состоянием бизнес-объектов, а уже последние должны уметь отображать своё состояние везде. В небольших проектах такой подход скорее не целесообразен из-за излишней сложности, но по мере роста проекта может сильно облегчить жизнь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 11:21 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Да хочется зделать "блоками". Скажем форма не обязана знать, что есть какие то панели меню чтобы разрешить или запретить какие - то кнопки на панелях (тем более, что кол-во панелей планируется увеличивать). Есть функция refresh_toolBar - она вызывается на activate deactivate формы. Вот эта функция продергивает панели, а они уже сами смотрят на активную форму и смотрят что форма умеет, а чего нет. На то что форма не умеет - кнопки на панели лочатся. Так же и с меню. Панель не обязана знать, откуда есть на нее ссылки (меню, другие панели и прочее). А меню (раз уж там есть управляющие команды для панелей) должно уметь посмотреть текущее состояние панелей. С чем set skip замечательно справился. В общем, ИМХО, вопрос религии, т.к. действительно в ините и дестрое самой панели можно прописать чек/анчек пункта меню. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 11:23 |
|
||
|
Отловить события раскрытия меню
|
|||
|---|---|---|---|
|
#18+
Galyamov Rinat Это так, если форма сама себе командир. А можно завести внешний управляющий бизнес-класс, который умеет создавать свою форму, содержит все методы для обработки своих данных, управляет своим пунктом меню, своей кнопкой в тулбаре и т.д., - ни форма, ни меню, ни тулбар не должны ничего друг о друге знать, они пользуются методами и свойствами своего бизнес-класса. Другой подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2008, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=35436656&tid=1587512]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
73ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 405ms |

| 0 / 0 |
