我需要获取按钮(菜单项按钮/按钮),它们的属性属于表单
For example: "CustTrans" Form
I need all buttons belong or exist in this Form
Result: all buttons on a treeNode, organized by design
问题:如何在表单中获取按钮
X++?
这是我需要的示例,所有按钮都属于CustTrans表单,例如由其Form Action控件组织
答案 0 :(得分:0)
请检查以下代码作为示例,并根据需要进行修改
Form myForm;
FormBuildDesign design;
FormBuildControl control;
int cnt = 0;
Set buttonsSet = new Set(Types::Class);
void findButtons(FormBuildControl _buildControl)
{
FormBuildControl buildControl;
int i;
;
if (_buildControl.controlCount() > 0)
{
for (i = 1; i <= _buildControl.controlCount(); i++)
{
buildControl = _buildControl.controlNum(i);
findButtons(buildControl);
}
}
else
{
if (classidget(_buildControl) == classnum(FormBuildButtonControl) ||
classidget(_buildControl) == classnum(FormBuildCommandButtonControl) ||
classidget(_buildControl) == classnum(FormBuildDropDialogButtonControl) ||
classidget(_buildControl) == classnum(FormBuildMenuButtonControl) ||
classidget(_buildControl) == classnum(FormBuildFunctionButtonControl))
{
buttonsSet.add(_buildControl);
}
}
}
;
myForm = formRun.form();
design = myForm.design();
for (cnt = 1; cnt <= design.controlCount(); cnt++)
{
control = design.controlNum(cnt);
findButtons(control);
}
构建树控件的代码示例
TreeItemIdx treeItemIdx;
TreeItemIdx parentItemIdx;
ImageRes imageRoot = imageListAppl_Tutorial.image(#ImageFormButtonGroup);
ImageRes imageRes = imageListAppl_Tutorial.image(#ImageFormButton);
SetEnumerator se;
FormBuildControl buildControl;
;
formTreeControl.deleteAll();
parentItemIdx = SysFormTreeControl::addTreeItem(formTreeControl,
'Buttons',
FormTreeAdd::Root,
'Data on Root',
imageRoot,
true);
SysFormTreeControl::setOverlayImage(formTreeControl, parentItemIdx, imageListAppl_Tutorial.image(#ImageOverlayRedLock));
se = _buttonsSet.getEnumerator();
while (se.moveNext())
{
buildControl = se.current();
treeItemIdx = SysFormTreeControl::addTreeItem(formTreeControl,
buildControl.toString(),
parentItemIdx,
'Data on element 2',
imageRes,
false);
}
SysFormTreeControl::expandTree(formTreeControl, formTreeControl.getRoot(), 1);