Как можно получить перечень Item из Frame?

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Гость

Сообщение Гость »

Возникла небольшая проблема.
Решил для реализации паролирования в задаче использовать Prop:Disable и Prop:Visible элементов окна.
Получить список полей из Window можно перебором
Loop Field# = FirstField() TO LastField()
Message('Type - ' & Field#{Prop:Type} & ' ,Text = ' & Field#{Prop:text} & ' ,Tip = ' & Field#{Prop:Tip})
END
при этом через Prop:Type можно узнать и тип элемента и с этим проблем нет.

Но FirstField() и LastField() не позволяют осуществить перебор по MenuBar:
"This does not include any controls in a TOOLBAR or MENUBAR or any controls created after the window is opened."

Каким образом можно получить описание TOOLBAR/MENUBAR для дальнейшей обработки (установка Disabe/Visible в зависимости от
Prop:Text данного Item-a)?

Clarion 5.5, ШВС.
Написал: Alex_229(72)
Аватара пользователя
StillZero
Ветеран
Сообщения: 454
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Контактная информация:

Сообщение StillZero »

Есть несколько моментов:
1. Для меню фрэйма и для контролов на тулбаре используются отрицательные FEQ.
2. Если существует меню на окне (не фрэйме), то нумерация пунктов будет положительной.
3. Происходит наложение пунктов меню (merge) - получаются различные комбинации отрицательных и положительных значений.

Я советую сделать простой цикл до какого либо определенного максимального значения, например до 1000, т.е.
MaxMenuItems=1000
loop i#=1 to MaxMenuItems
if i#{Prop:Type}=CREATE:Menu or i#{Prop:Type}=CREATE:Item
....
else
cycle
end
end
и тоже самое с отрицательными значениями
Написал: PAA(27)
Гость

Сообщение Гость »

пробежка по всем статическим конролам окна:
Loc:lLoopIndex = 0
LOOP
Loc:lLoopIndex = Window{PROP:NextField,Loc:lLoopIndex}
IF Loc:lLoopIndex = 0
BREAK
END
IF THREAD() <> 1 AND Loc:lLoopIndex < 0
CYCLE
END
END
Каким образом можно получить описание TOOLBAR/MENUBAR для дальнейшей обработки (установка Disabe/Visible в зависимости от
Prop:Text данного Item-a)?
1. PROP:Visible - это ReadOnly свойство.
2. А хто такой есть "описание TOOLBAR/MENUBAR"?
Ответить