AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.12.2003, 15:42   #6  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Непонятно как взаимодействуют классы типа form и formbuild, в каком случае что надо использовать
Добавлю.

Как я понимаю, основное различие между этими классами в том, что FormControl можно получить из экземпляра формы с дизацном созданным в АОТ, а FormBuildControl – это класс конрола, созданного динамически, то есть не присутствующего в АОТ.

Вот маленький пример:

PHP код:
void clicked()
{
    
FormDesign                  formDesign;
    
FormControl                 formControl;
    
FormStringControl           formStringControl;
    
FormComboBoxControl         formComboBoxControl;

    
Dialog                      dialog;
    
FormBuildDesign             formBuildDesign;
    
FormBuildControl            formBuildControl;
    
FormBuildComboBoxControl    formBuildComboBoxControl;
    
FormRun                     formRun;
    ;
    
formDesign element.design();
    
formControl formDesign.controlName("StringEdit");
    
formStringControl formControl;
    
formStringControl.text("Hello");

    
formControl formDesign.controlName("ComboBox");
    
formComboBoxControl formControl;
    
formComboBoxControl.add("one");
    
formComboBoxControl.add("two");
    
formComboBoxControl.add("three");

    
dialog = new Dialog();
    
formBuildDesign dialog.formBuildDesign();
    
formBuildControl formBuildDesign.addControl(FormControlType::ComboBox"comboBox2");
    
formBuildComboBoxControl formBuildControl;

    
dialog.doInit();    // !!!
    
formRun dialog.formRun();
    
formDesign formRun.design();
    
formComboBoxControl formDesign.controlName("comboBox2");
    
formComboBoxControl.add("one");
    
formComboBoxControl.add("two");
    
formComboBoxControl.add("three");

    
dialog.run();

Здесь StringEdit и ComboBox – это контролы созданные на дизайне формы в АОТ’е. Соответственно, мы можем к ним обратиться, как к классам – наследникам FormControl.

ComboBox2, напротив, был создан динамически, в коде программы и класс Dialog позволяет обратиться к нему, только как к наследнику класса FormBuildControl.

Но наследники FormBuildControl не имеет всех тех необходимых методов и свойств, которые присутствуют в наследниках FormControl. Поэтому, часто возникает необходимость “получения FormControl на основе имеющегося FormBuildControl”. Для этого необходимо проинициализировать класс диалога – при этом иничиализируется член formRun, а затем используя его метод design() получить доступ к экземпляру класс FormDesign, а следовательно и к наследникам FormControl.
За это сообщение автора поблагодарили: samolalex (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Динамическое создание DataSource на форме, и добавление элементов дизайна. epack DAX: Программирование 12 24.11.2010 15:31
Динамическое создание метода. HorrR DAX: Программирование 23 19.02.2008 14:44
Создание проекта из объектов созданных на данном слое Asterisk DAX: Программирование 3 10.10.2006 13:38
Динамическое создание элементов дизайна на Web-формах AvrDen DAX: Программирование 0 04.08.2005 12:58
Динамическое создание меню ta_and DAX: Программирование 7 18.07.2005 19:28

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:45.