|
Динамическое создание элементов, ошибка | ☑ | ||
---|---|---|---|---|
0
Berman
10.08.20
✎
13:10
|
Код выдает ошибку: "Invalid parameter value".
For Each Item in Array Do GroupItem = ThisForm.Items.Add("Group", Type("FormGroup"), ThisForm.Items.Tiles); DescriptionItem = Items.Add("Desc", Type("FormDecoration"),GroupItem); DescriptionItem.Title = Item.Get("Description"); DescriptionItem.Type=FormDecorationType.Label; EndDo; Строка: "DescriptionItem = Items.Add("Desc", Type("FormDecoration"),GroupItem);" По факту, ругается, на GroupItem, ибо, если вместо него подставлю ThisForm.Items.Tiles, все будет норм. ThisForm.Items.Tiles - тоже группа, но создана не динамически. Бьюсь много времени, при этом код по факту ничем не отличается от примеров другого кода. Прошу помощи. |
|||
1
Ёпрст
10.08.20
✎
13:25
|
Ну дык нефик с одним именем группы добавлять
|
|||
2
Ёпрст
10.08.20
✎
13:25
|
в цикле
|
|||
3
SilverFalconi
10.08.20
✎
13:25
|
(0) Создание группы:
Группа = Элементы.Добавить(НаименованиеГруппы, Тип("ГруппаФормы"), РодительГруппы); Группа.Вид = ВидГруппыФормы.ОбычнаяГруппа; Создание декорации(надписи): Элемент = Элементы.Добавить(НаименованиеЭлемента,Тип("ДекорацияФормы"),Группа); Элемент.Заголовок = "Надпись..."; Элемент.Гиперссылка = Истина; |
|||
4
SilverFalconi
10.08.20
✎
13:27
|
(2) а, тут проблема в цикле... Не заметил что он имя одинаковое делает. Не привык к синтаксису на анг. языке
|
|||
5
Жан Пердежон
10.08.20
✎
13:28
|
это провал!
|
|||
6
Жан Пердежон
10.08.20
✎
13:30
|
в защиту тс можно сказать, что тексты ошибок дин.добавления элементов/реквизитов формы крайне не информативны
|
|||
7
youalex
10.08.20
✎
13:32
|
(0) У Группы формы укажи вид.
"1.Тексты модулей должны быть написаны на русском языке." (C)тандарты |
|||
8
SilverFalconi
10.08.20
✎
13:33
|
(6) Нуу, такое)
Там ругается на параметр, и выдает его номер по порядку. Можно понять что дело в названии. Хотя и правда, не очень по информативно) |
|||
9
Berman
10.08.20
✎
13:39
|
Спасибо №7 и №3
Дело было в указании вида группы, ибо при коде вида: Counter = 1; For Each Item in Array Do GroupItem = ThisForm.Items.Add("Groups" + String(Counter), Type("FormGroup"), ThisForm.Items.Tiles); DescriptionItem = ThisForm.Items.Add("Desc" + String(Counter), Type("FormDecoration"),GroupItem); DescriptionItem.Title = Item.Get("Description"); DescriptionItem.Type=FormDecorationType.Label; Counter = Counter+1; EndDo; Крашилось все равно, я криво код для примера выдал без уникального идентификатора, прошу прощения А вот при указании типа группы падать перестало. Благодарю душевно! Конечный вид: Counter = 1; For Each Item in Array Do GroupItem = ThisForm.Items.Add("Groups" + String(Counter), Type("FormGroup"), ThisForm.Items.Tiles); GroupItem.Type=FormGroupType.UsualGroup; DescriptionItem = ThisForm.Items.Add("Desc" + String(Counter), Type("FormDecoration"),GroupItem); DescriptionItem.Title = Item.Get("Description"); DescriptionItem.Type=FormDecorationType.Label; Counter = Counter+1; EndDo; Всем спасибо! |
|||
10
Жан Пердежон
10.08.20
✎
13:40
|
(8) обычно это либо тип параметра неверный, либо значение не удовлетворяет каким-либо критериям (например, уникальности или значениям определенных свойств (тот же вид))
|
|||
11
Ёпрст
10.08.20
✎
13:42
|
(9) если элементов будет больше 999, будет ошибка
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |