Может будет полезен пример, динамическое создание контролов с помощью API конфигуратора.
Код: Выделить всё
interface ConfTest2 'Тест';
show at (,,,30);
create view as select * from x$resources;
screen scr1 'screen';
show at(,21,20,);
buttons
cmOk;
<<
<.OK.>
>>
end;
handleEvent
cmOk:
{
var pobj1, pobj2 : longInt;
var err : string;
cfsSetCurrentContainer('ConfTest2');
cfsSetProp('ConfTest2', 'Title', 'Интерфейс тест API конфигуратора');
err := '';
err := err + ' ' + string(cfsCreateObject('Screen', 'ConfTest2', 'scr2', false, pobj1));
cfsSetProp(pobj1, 'RectA_X', 1);
cfsSetProp(pobj1, 'RectA_Y', 1);
cfsSetProp(pobj1, 'RectB_X', 60);
cfsSetProp(pobj1, 'RectB_Y', 20);
cfsSetProp(pobj1, 'PanelTable', tnx$resources);
err := err + ' ' + string(cfsCreateObject('PanelInputLine', pobj1, 'x$resources.XR$NAME', false, pobj2));
cfsSetProp(pobj2, 'Origin_X', 10);
cfsSetProp(pobj2, 'Origin_Y', 10);
cfsSetProp(pobj2, 'Size_X', 120);
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('StaticText', pobj1, 'StaticText вавава', false, pobj2));
cfsSetProp(pobj2, 'Origin_X', 10);
cfsSetProp(pobj2, 'Origin_Y', 30);
cfsSetProp(pobj2, 'Size_X', 120);
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Label', pobj1, 'Label 34534535', false, pobj2));
cfsSetProp(pobj2, 'Origin_X', 10);
cfsSetProp(pobj2, 'Origin_Y', 50);
cfsSetProp(pobj2, 'Size_X', 120);
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('FieldLine', pobj1, 'FieldLine dsdsd', false, pobj2));
cfsSetProp(pobj2, 'Origin_X', 10);
cfsSetProp(pobj2, 'Origin_Y', 70);
cfsSetProp(pobj2, 'Size_X', 120);
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Bevel', pobj1, 'Bevel sdffsfdf', false, pobj2));
cfsSetProp(pobj2, 'Origin_X', 10);
cfsSetProp(pobj2, 'Origin_Y', 90);
cfsSetProp(pobj2, 'Size_X', 120);
cfsSetProp(pobj2, 'Size_y', 120);
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Button', pobj1, 'Button qweqwe', false, pobj2));
cfsSetProp(pobj2, 'Origin_X', 140);
cfsSetProp(pobj2, 'Origin_Y', 10);
cfsSetProp(pobj2, 'Size_X', 120);
cfsSetProp(pobj2, 'Size_y', 20);
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Browser', 'ConfTest2', 'br2', false, pobj1));
cfsSetProp(pobj1, 'RectA_X', 61);
cfsSetProp(pobj1, 'RectA_Y', 1);
cfsSetProp(pobj1, 'RectB_X', 90);
cfsSetProp(pobj1, 'RectB_Y', 20);
cfsSetProp(pobj1, 'PanelTable', tnx$resources);
err := err + ' ' + string(cfsCreateObject('Column', pobj1, 'x$resources.XR$TYPE', false, pobj2));
cfsSetProp(pobj2, 'Title', 'Поле1');
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Column', pobj1, 'Field: x$resources.XR$NAME', false, pobj2));
cfsSetProp(pobj2, 'Title', 'Поле2');
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Column', pobj1, 'ExtAttr: X$RESOURCES,281474976710702', false, pobj2));
cfsSetProp(pobj2, 'Title', 'Атрибут1');
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('Column', pobj1, 'ExtAttr: X$RESOURCES,2814702', false, pobj2));
cfsSetProp(pobj2, 'Title', 'Атрибут2');
pobj2 := 0;
err := err + ' ' + string(cfsCreateObject('MemoViewer', 'ConfTest2', 'x$resources.XR$DATA', false, pobj1));
cfsSetProp(pobj1, 'RectA_X', 22);
cfsSetProp(pobj1, 'RectA_Y', 22);
cfsSetProp(pobj1, 'RectB_X', 90);
cfsSetProp(pobj1, 'RectB_Y', 28);
ReReadRecord;
message(err);
}
end;
end.