13.11.2007, 15:18 | #1 |
Участник
|
Как обратиться к вызванному объекту
Есть форма, она вызывает класс, тот другой абстрактный класс, а тот еще один класс.
В этом "еще одном классе" надо получить переменную из формы. Если смотреть отладчиком, то переменная видна, как caller.FormRun.TransDate |
|
13.11.2007, 15:35 | #2 |
Участник
|
Цитата:
X++: Object formRun = _args.caller(); transDate = formRun.getTransDate(); |
|
27.03.2013, 17:52 | #3 |
Участник
|
А если наоборот: есть класс, который вызывает форму.
X++: static void main(args args) { MasterCreateLinesInGKDefaultDataWizard wizard = new MasterCreateLinesInGKDefaultDataWizard(); wizard.init(); if (wizard.prompt()) //название формы указано в методе formName() { wizard.run(); } X++: AccountRange = wizard.formRun().design().controlName('Accounts_StringEdit').valueStr(); |
|
27.03.2013, 22:16 | #4 |
Участник
|
Цитата:
Сделайте класс с нужными параметрами и передавайте его через parmObject или свой метод формы. |
|
27.03.2013, 22:19 | #5 |
Участник
|
Обычно у формы есть ссылка на вызывающий её объект - тот же класс, соотв., форма может ожидать, что вызывающий ее класс будет реализовывать некий интерфейс с теми же parm-методами (в простейшем случае - что это заранее известный класс), и при закрытии дергать эти методы, передавая значения своих полей. Также иногда бывает удобно выводить на форме не отдельные unbound-поля, а поля специально обученной времянки (одной записи) - их значения передать в класс можно через соотв. табличный буфер.
|
|
27.03.2013, 22:26 | #6 |
Участник
|
Ещё можно механизм интерфейсов задействовать Как обратиться к public-методу формы (Form)?
Последний раз редактировалось S.Kuskov; 27.03.2013 в 22:30. |
|
28.03.2013, 01:40 | #7 |
Участник
|
Это Вы зря так. Забудьте про такой способ. Мы ж не индусы. Используйте как Вам подсказали parm методы. Если в форма запущена из класса, значит у нее есть ссылка на объект класса.(caller). Вот с ним и работайте.
|
|
28.03.2013, 07:49 | #8 |
Участник
|
Цитата:
Цепочки сообщений появляются, когда клиент запрашивает у одного объекта другой, у которого клиент запрашивает еще один объект, у которого клиент запрашивает еще один объект и т.д. Это может выглядеть как длинный ряд методов getThis или последовательность временных переменных. Такие последовательности вызовов означают, что клиент связан с навигацией по структуре классов. Любые изменения промежуточных связей означают необходимость модификации клиента.
Рекомендуется использовать шаблон Hide Delegate.
__________________
// no comments Последний раз редактировалось dech; 28.03.2013 в 08:02. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|