昨天在朋友们的帮助下,教我做了这么个效果
我加了一个PageControl1的控件建立了3个TabSheet1,TabSheet2,TabSheet3,现在我用3个按钮a,b,c来控制哪个显示,哪个隐藏掉
比如我点击按钮a,则TabSheet1显示,其他两个不显示。
当我点击b,则TabSheet2显示,其他两个不显示。
点击c,效果是一样的
方法如下:
设置几个按钮的tag,比如从1到3共用事件
procedure TForm1.Button1Click(Sender: TObject);
var
  tmpTag:integer;
  idx:inetger;
  tmpTS:TTabsheet;
begin
  tmpTag:=TButton(Sender).tag;
  for idx:=1 to 3 do
  begin
    tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
    tmpTS.Visible:=(tmpTS.tag=tmpTag);
  end; 
end;
可是在每个里面的内容却无法显示,比如我在tabsheet1里放了一个edit,在tabsheet2里放了一个grid,可是显示不出来,怎么回事

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      PageControl1.TabIndex := TButton(Sender).Tag - 1;
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      tmpTag:integer;
      idx:inetger;
      tmpTS:TTabsheet;
    begin
      tmpTag:=TButton(Sender).tag;
      for idx:=1 to 3 do
      begin
        tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
        tmpTS.Visible:=(idx=tmpTag);//这里应该是idx
      end; 
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      tmpTag:integer;
      idx:inetger;
      tmpTS:TTabsheet;
    begin
      tmpTag:=TButton(Sender).tag;
      for idx:=1 to 3 do
      begin
        tmpTS:=TTabsheet(FindComponent('Tabsheet'+IntToStr(idx)));
        tmpTS.TabVisible:=(idx=tmpTag);//再改一下,应该使用TabVisible
      end; 
    end;
      

  4.   

    tabvisible:
    Specifies whether the tab of the TTabSheet object appears in its TPageControl.
    而visible 时表示tabsheet 内容的可见性。
     dulei115() 做法的很正确。
      

  5.   

    楼主的一个单词写错了   integer