Показать сообщение отдельно
Старый 07.02.2013, 08:42   #4  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Товарищи, делюсь кодом:
(Предполагается, что есть class MethodsClass, где, согласно статье, есть метод void Button_clicked):

X++:
    MethodsClass methods = new MethodsClass();
    Form form1;
    FormRun frun;
    Args args;
    FormBuildDesign fbd;
    FormBuildControl fbc;
    FormBuildTabControl fbtc;
    FormBuildTabPageControl fbtpc;
    FormBuildGridControl fbgc;
    FormBuildDataSource fbds;
    FormBuildStringControl fbsc;
    FormBuildIntControl fbic;
    FormBuildButtonControl fbbc;
    FormBuildStringControl fbsc2;
    FormBuildStringControl fbsc3;

    ;


    //Создаем форму
    form1 = new Form();


    //Потренеруемся заодно сменять датасорс
    fbds = form1.addDataSource(tablestr(Worker));
    fbds.name(tablestr(TableA));
    fbds.table(tablenum(TableA));

    fbds.allowCreate(false);
    fbds.allowDelete(false);
    fbds.allowEdit(false);
    fbd = form1.addDesign("Design");
    fbtc = fbd.addControl(FormControlType::Tab, "Tab");
    fbtc.width(400);
    fbtpc = fbtc.addControl(FormControlType::TabPage, "TabPage");
    fbtpc.caption("Caption");

    fbgc = fbtpc.addControl(FormControlType::Grid, "Grid");
    fbgc.allowEdit(true);
    fbgc.width(350);
    fbic = fbgc.addDataField(fbds.id(), fieldnum(TableA, ID));
    fbic.label("Айди");
    fbic.width(50);
    fbsc = fbgc.addDataField(fbds.id(), fieldnum(TableA, A_TEXT));
    fbsc.label("Текст");
    fbsc.width(250);

    //Добавка кнопки
    fbbc = fbtpc.addControl(FormControlType::Button, "Button");
    fbbc.text("Текст кнопки");
    fbbc.bold(7);
    fbbc.colorScheme(2);
    fbbc.backStyle(2);
    fbbc.backgroundColor(0x0000ff00);
    fbbc.foregroundColor(0x00ff0000);


    //Добавка поля датасорса
    fbsc2 = fbtpc.addControl(FormControlType::String, "StringEdit");
    fbsc2.dataSource(fbds.id());
    fbsc2.dataField(fieldnum(TableA, A_TEXT));


    //Добавка текстового поля с перечислением
    fbsc3 = fbtpc.addControl(FormControlType::String, "StringEdit1");
    fbsc3.extendedDataType(extendedTypeNum(ETD_String));

    args = new Args();
    args.name("Рантайм-форма!");
    args.object(form1);

    frun = new FormRun(args);
    frun.init();
    frun.run();

    //Вот код прикрепления метода
    frun.controlMethodOverload(true);
    frun.controlMethodOverloadObject(methods);

    frun.wait();
S.Kuskov, Вам лайк!