![]() |
#7 |
Участник
|
А чего непонятного? В tutorial-примере показывается, как использовать RunBase вместе с "настоящей" формой, но при этом
X++: DialogRunbase dialog = Dialog::newFormnameRunbase(formstr(tutorial_RunbaseForm), this); Но раз мы затеяли собирать форму не полностью в runtime, значит, она предполагает какую-то затейливую презентационную логику и/или дизайн - "представление", одним словом (в терминах MVC). Логику мы как нормальные программисты пишем в классах, а не на формах, следовательно, форме надо иметь доступ к своему классу-"контроллеру". Таковым в случае инфраструктуры RunBase выступает все тот же наш класс-наследник, который выполняет и бизнес-логику. Но поскольку для унификации вывода и получения значений параметров он использует в качестве "прослойки" инфраструктруру Dialog, то с точки зрения формы непосредственно вызывающим ее объектом оказывается экземпляр класса DialogRunbase, а вовсе не наш наследник RunBase. Так вот, чтобы форма через класс-прослойку могла достучаться до контроллера, в этом классе-прослойке и реализован метод, возвращающий ссылку на RunBase. |
|
|
За это сообщение автора поблагодарили: S.Kuskov (5), MaxHammer (1). |