28.08.2020, 09:35 | #1 |
Участник
|
newFormnameRunbase и исчезающий Caption формы диалога
Добрый день, столкнулся с пустяковой вроде бы проблемой, которая сломала мне мозг. Есть класс, наследник RunBase, в котором диалог реализован формой (точнее, два класса: родитель - наследник от RunBase и его наследник). У формы-диалога в Design указан Caption.
Дальше происходит странное: запускаю класс, получаю пустой caption формы. Если ту же форму вызвать через tutorial_RunbaseForm - caption на месте. Что это может быть, подозреваю, что какой-то пустяк, но не вижу, где он. Вызов диалога: X++: public Object dialog() { DialogRunbase dialog = Dialog::newFormnameRunbase(formstr(MyAwesomeForm),this); ; dialog = this.dialogInternal(dialog); dialog.alwaysOnTop(true); return dialog; } |
|
28.08.2020, 15:09 | #2 |
Участник
|
Как вариант, Ваш класс имеет свойство RunOn равное Server (или менюитем, его вызывающий имеет такое значение для этого свойства).
В результате диалог начинает бегать между клиентом и сервером, а свойство заголовка не установлено, в результате перезаписывается в дизайне пустым значением. Если нет клиент-серверного взаимодействия при создании диалога, то в дизайне свойство заголовка не перезаписывается, так как нет распаковки (а это выполняется в ней). |
|
28.08.2020, 16:38 | #3 |
Роман Долгополов (RDOL)
|
статический description() на вашем классе есть ?
|
|
28.08.2020, 16:43 | #4 |
Участник
|
|
|
28.08.2020, 17:34 | #5 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
Как вариант, Ваш класс имеет свойство RunOn равное Server (или менюитем, его вызывающий имеет такое значение для этого свойства).
В результате диалог начинает бегать между клиентом и сервером, а свойство заголовка не установлено, в результате перезаписывается в дизайне пустым значением. Если нет клиент-серверного взаимодействия при создании диалога, то в дизайне свойство заголовка не перезаписывается, так как нет распаковки (а это выполняется в ней). |
|
28.08.2020, 18:01 | #6 |
Участник
|
Если уж совсем "в лоб", то в методе dialog после вызова newFormnameRunbase указать dialog.caption("Нечто"). Еще вариант, в самой форме в методе init после super написать что-то вроде element.design().caption(myRunBase.caption());
Только, на мой взгляд, лучше использовать паттерн, который рекомендуют для RunBase:
В общем, свойство RunOn для наследников RunBase явно лишнее и путь остается в значении по умолчанию. Последний раз редактировалось Raven Melancholic; 28.08.2020 в 18:05. |
|
|
За это сообщение автора поблагодарили: mikki_messer (1). |