Возникла небольшая проблема.
Решил для реализации паролирования в задаче использовать 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)
Как можно получить перечень Item из Frame?
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- StillZero
- Ветеран
- Сообщения: 454
- Зарегистрирован: 06 Июль 2005, 2:17
- Откуда: Хабаровск
- Контактная информация:
Есть несколько моментов:
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)
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
2. А хто такой есть "описание TOOLBAR/MENUBAR"?
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
1. PROP:Visible - это ReadOnly свойство.Каким образом можно получить описание TOOLBAR/MENUBAR для дальнейшей обработки (установка Disabe/Visible в зависимости от
Prop:Text данного Item-a)?
2. А хто такой есть "описание TOOLBAR/MENUBAR"?