Показать сообщение отдельно
Старый 13.01.2011, 16:29   #6  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Ну, собственно говоря, я тоже другого лучше ничего не нашел. Поэтому кому не нужна эта "своеобразная нумерация" кнопок и пунктов меню :

В классе 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();

все кнопки будут обозваны нормально.