百分求教,动态控制窗口上控件的属性!
现需对窗口上的控件属性进行动态控制,控件都放在TControl或者TTabSheet这两种容器控件内。现通过for 循环逐一读取容器控件内的控件,然后设置相应属性!但因为容器控件内也许还包含其他容器控件,如TPanel中可能还含有TPanel,故希望通过递归的方式来控制容器控件中的容器控件。程序如下:
(这个代码是错误的,只是表达不清楚,所以希望通过代码让大家能更清楚我的意思!)
void setControl(TControl *con,String class_nm)
{
if (class_nm=="TPanel")
{
TPanel *p = dynamic_cast<TPanel *>(con);
}
else if (class_nm=="TTabSheet")
{
TTabSheet *p = dynamic_cast<TTabSheet *>(con);
}
for (int i=0;i<p->ControlCount;i++)
{
…………………………
}
}
我的问题在于如果通过class_nm判断是何种控件并对con进行强制转换,那么定义的p变量在接下来的代码中是无法使用的,如果预先定义好TPanel,TTabSheet两个变量,则后面的for 循环要写两次。现在希望能只写一次for 循环来达到控制容器控件中的控件的各种属性的目的