16.09.2004, 10:24 | #1 |
Участник
|
Типы элементов управления на форме
Как в runtime узнать типы элементов управления на форме (FormControl), в том числе и динамически созданных?
|
|
16.09.2004, 10:43 | #2 |
Участник
|
PHP код:
|
|
16.09.2004, 10:50 | #3 |
Участник
|
В качестве примера привожу обработчик события clicked на кнопке в форме.
Данный пример перебирает все контролы в форме и ищет среди них контролы с определенными типами. PHP код:
__________________
Когда гестапо перекрыло все выходы, Штирлиц вышел через вход! |
|
16.09.2004, 11:24 | #4 |
Участник
|
Спасибо!
|
|
05.04.2007, 12:58 | #5 |
Участник
|
можно еще короче:
X++: void clicked() { FormControl c; int i; FormRun formRun; ; super(); formRun = element; for (i=0; i<formRun.design().controlCount(); i++) { c = formRun.design().controlNum(i); info("Объект " + c.name() + " имеет тип Form" + sysformrun::controltypestr(classidget(c))+"Control"); } } |
|
05.04.2007, 14:09 | #6 |
Участник
|
Мысль хорошая! но...
во первых, у меня срабатывает только при for (i = 1; i <= formRun.design().controlCount(); во вторых, дополнительный вопрос: а как перебрать контролы, которые содержатся в дрогом котроле, например в Tab содержатся Fields. Делать как-то рекурсию? Последний раз редактировалось valentino; 05.04.2007 в 14:12. |
|
05.04.2007, 14:17 | #7 |
Участник
|
про 'i=' - извиняюсь, правил текст из форума, в реале не проверил
дык контролы сначала содержатся на форме, а потом в табе. отсюда смена задачи - отобразить контролы в иерархической структуре, как в AOT.... задача вроде как решается посредством каких-нидь парентов (предварительная сборка в контайнере, выборочный перебор.......) |
|
05.04.2007, 14:41 | #8 |
Участник
|
можешь привести примерчик парент - чилд?
дело в том что если у меня на форме один Tab и один ButtonGroup, в табе есть 2 закладки, в первой закладке грид, на второй - 10 полей; а в ButtonGroup - 5 кнопок, то твой пример выдает только 2 результата: Tab и ButtonGroup, т.е. 2 парента. А хочу еще и все поля просмотреть которые находятся на 2й закладке таба, и все кнопки которые находятся в ButtonGroup. |
|
05.04.2007, 14:47 | #9 |
Участник
|
Тип элемента еще можно определять как c.handle();
А про перебор узлов формы - посмотри класс TreeNodeTraverser |
|
05.04.2007, 15:25 | #10 |
Участник
|
А чего бы не посмотреть как \Forms\SysSetupForm строит дерево (это форма, которая вызывается при Правая кнопкаъ\Настройка)
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|