Ну, собственно говоря, я тоже другого лучше ничего не нашел. Поэтому кому не нужна эта "своеобразная нумерация" кнопок и пунктов меню :
В классе SysSetupFormRun создаете свой метод
void HideShortCut()
{
int i, j;
Object control;
Object subcontrol;
boolean doit = true;
void setHideShortCut(Object _control)
{
switch (_control.handle())
{
case classnum(FormBuildFunctionButtonControl):
case classnum(FormBuildButtonControl):
case classnum(FormBuildCommandButtonControl):
case classnum(FormBuildMenuButtonControl):
_control.ShowShortCut(NoYes::No);
break;
default:
break;
}
}
void setHideShortCutContainer(Object _control)
{
int y;
Object _subcontrol;
Object _subsubcontrol;
for (y=1; y <=_control.controlCount(); y++)
{
_subcontrol = _control.controlNum(y);
if (_subcontrol.isContainer())
{
switch (_subcontrol.handle())
{
case classnum(FormBuildMenuButtonControl):
_subcontrol.ShowShortCut(NoYes::No);
case classnum(FormBuildButtonGroupControl):
for (j=1; j<=_subcontrol.controlCount(); j++)
{
_subsubcontrol = _subcontrol.controlNum(j);
setHideShortCut(_subsubcontrol);
}
break;
default :
setHideShortCutContainer(_subcontrol);
break;
}
}
else
setHideShortCut(_subcontrol);
}
}
;
for (i=1; i <= this.form().design().controlCount(); i++)
{
control = this.form().design().controlNum(i);
if (control.isContainer())
{
switch (control.handle())
{
case classnum(FormBuildMenuButtonControl):
control.ShowShortCut(NoYes::No);
case classnum(FormBuildButtonGroupControl):
for (j=1; j<=control.controlCount(); j++)
{
subcontrol = control.controlNum(j);
setHideShortCut(subcontrol);
}
break;
default:
setHideShortCutContainer(control);
break;
}
}
else
setHideShortCut(control);
}
}
затем в методе init этого класса в самом начале ставите
this.HideShortCut();
все кнопки будут обозваны нормально.
|