Присвоение значений переменной при выборе пункта меню
Clarion, Clarion 7
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Гость
Admin
Гость
- StillZero
- Ветеран
- Сообщения: 458
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Поблагодарили: 1 раз
- Контактная информация:
Пока понял вопрос...
Ну да ладно, это мои проблемы.
Сам не проверял, но думаю поможет:
1. Установить меню FEQ - это то что пишется как ?MyMenu, соответственно для меню появится Embeds, правда, я не уловил там слова Accepted. Но попробовать можно.
2. Установить меню FEQ. В точке вставки, что то вроде TakeEvent на WindowManager, если вы конечно пишете на ABC, попробуйте что то вроде:
if EVENT()=EVENT:Accepted and FIELD()=?MyMenu
GLO:MyVariable=MyValue
end
3. Установить меню FEQ. При нажатии на подпунктах меню
смотреть ?MyMenuItem{Prop:Parent}, который будет равен какому то ?MyMenu, т.е. отслеживать нахождение в пункте меню исходя из подпунктов.
4. Кратко, только суть: Можно поставить на MENU OWNERDRAW, но реально не перерисовывать меню, а отдавать уже существующему по умолчанию callback-у. Так вот при наведении на меню будет посылаться событие WM_DRAWITEM с указанием номера пункта меню, который можно вычислить и связать уже с существующим FEQ. Это не просто, но удивительно точно.
))))
Возможно есть еще различные варианты, которые мне сейчас не приходят в голову, ну там типо определения координат мыши.
aka Still Zero
ЗЫ: давно так не смеялся
Написал: PAA(27)

Сам не проверял, но думаю поможет:
1. Установить меню FEQ - это то что пишется как ?MyMenu, соответственно для меню появится Embeds, правда, я не уловил там слова Accepted. Но попробовать можно.
2. Установить меню FEQ. В точке вставки, что то вроде TakeEvent на WindowManager, если вы конечно пишете на ABC, попробуйте что то вроде:
if EVENT()=EVENT:Accepted and FIELD()=?MyMenu
GLO:MyVariable=MyValue
end
3. Установить меню FEQ. При нажатии на подпунктах меню

4. Кратко, только суть: Можно поставить на MENU OWNERDRAW, но реально не перерисовывать меню, а отдавать уже существующему по умолчанию callback-у. Так вот при наведении на меню будет посылаться событие WM_DRAWITEM с указанием номера пункта меню, который можно вычислить и связать уже с существующим FEQ. Это не просто, но удивительно точно.

Возможно есть еще различные варианты, которые мне сейчас не приходят в голову, ну там типо определения координат мыши.
aka Still Zero
ЗЫ: давно так не смеялся
Написал: PAA(27)
StillZero
Сообщение Гость »
Спасибо за направление мыслей. Вопрос разрешил следующим способом.
В Emded - WindowManager - TakeAccepted - внутри Loop сделал вставку
If Abs(Field()) => Abs(?MenuPrib) and Abs(Field()) < Abs(?MenuIm)
Glo:Ntask = 9104
.
If Abs(Field()) => Abs(?MenuIm) and Abs(Field()) < Abs(?MenuSpr)
Glo:Ntask = 9105
.
Оказалось, для меня это было открытием, что значения Field(), Accepted(),
?Field имеют на выходе отрицательные значения, поэтому пришлось прилепить к ним Abs
В Emded - WindowManager - TakeAccepted - внутри Loop сделал вставку
If Abs(Field()) => Abs(?MenuPrib) and Abs(Field()) < Abs(?MenuIm)
Glo:Ntask = 9104
.
If Abs(Field()) => Abs(?MenuIm) and Abs(Field()) < Abs(?MenuSpr)
Glo:Ntask = 9105
.
Оказалось, для меня это было открытием, что значения Field(), Accepted(),
?Field имеют на выходе отрицательные значения, поэтому пришлось прилепить к ним Abs
Гость
Вернуться в «CLARION for Windows»
Перейти
- CW
- ↳ CLARION for Windows
- ↳ CLARION for Internet
- ↳ Clarion.NET
- Эксклюзив
- ↳ Приват
- CLARION и...
- ↳ Reports
- ↳ Железо
- ↳ Готовые программы, шаблоны, библиотеки...
- ↳ cJSON
- ↳ LibCurl
- ↳ MAV
- ↳ SQL, Oracle, ...
- ↳ Multi-программирование(Pascal/Delphi, и т.д.)
- ↳ WinDev
- DOS
- ↳ CLARION for DOS
- Разное
- ↳ Новости
- ↳ English
- ↳ Ресурсы
- ↳ Работа
- ↳ Обо всем ...
- ↳ Обсуждение этого Форума (типа, Гостевая книга)