假设菜单上有两项:N1和N2,另外有tabsheet1和tabsheet2,两个tabsheet上有各种可视控件,我现在想在N1.click的时候tabsheet1上的控件可以进行各种操作,而tabsheet2上的所有可视控件都是灰色的(也就是说是不可用的),我用了
tabsheet2.enable:=false;虽然这时控件不可用,但不是灰色的,看上去比较难过!

解决方案 »

  1.   

    我不知道简单的办法,我想只有把所有Tab页标题变灰,不可用,并且把当前Tab页的所有控件逐个不可用吧
      

  2.   

    把当前Tab页的所有控件逐个不可用吧
    累是累了点,但我只会这样。
      

  3.   

    你完全可以隐藏掉,只显示你要显示的页面
    n1.click tabsheet2.tabvisible := false;
      

  4.   

    用你的方法仅能使tabsheet本身禁用,控件颜色不能改变,只能将所有的控件一一禁用方可。
    建议:
    n1:
       tabsheet1.show;
       tabsheet2.hide;
    n2:
       tabsheet1.hide;
       tabsheet2.show;   
      

  5.   

    用一个循环吧
    for i := 0 to ComponentCount - 1 do 
    begin
       if TControl(Components[day]).Parent = tabsheet2 then
         TControl(Components[day]).Enabled := false;
    end;