用FOR循环遍历,比较每个标签页标题和目标字符串

解决方案 »

  1.   

      if Self.FindComponent('TabSheet2') <> nil then
        PageControl1.ActivePage := TTabSheet(Self.FindComponent('TabSheet2'));
      

  2.   

    TcxTabSheet应该在Tpagecontrol里吧
    Tpagecontrol.pages里有它们的列表
      

  3.   

    这样行不通,不知道为什么始终找不到Self.FindComponent('TabSheet2'),而如果去找别的控件比如EDIT 是可以找到的。
      

  4.   


       if FindComponent('cx'+tempName)<>nil then
        begin
          ShowMessage('find');
        end;    for I := 0 to ComponentCount-1 do
          begin
            if (Components[i] is TcxTabSheet) then
              if TcxTabSheet(Components[i]).Name=('cx'+tempName) then
              begin
                ShowMessage('find');
              end;
          end;
    行不通,找不到
      

  5.   


    准确说
     if (Components[i] is TcxTabSheet) then这句都找不到
      

  6.   

    如果要用FindComponent 要递归。
    begin
        //不存在则新建一个TcxTabSheet
        try
          tempSheet:=TcxTabSheet.Create(MainPG);
          with tempSheet do
          begin
            AllowCloseButton:=True;
            Caption:=tempName;
            Enabled:=True;
            Name:='cx'+tempName;
            Visible:=True;
            Parent:=MainPG;
            ParentWindow:=MainPG.Handle;
            TabVisible:=True;
          end;
          tabSheetList.Add(tempSheet.Name);
          Result:=tempSheet;
          MainPG.ActivePage:=tempSheet;
        finally
        end;
      end;少写了: tempSheet.PageControl := MainPG; 
      

  7.   

    根据你的思路,想了个挫办法。    for i := 0 to MainPG.PageCount-1 do
        begin
          if MainPG.Pages[i].Name=('cx'+tempName) then
          begin
            MainPG.ActivePage:=MainPG.Pages[i];
            Result:=MainPG.Pages[i];
            ShowMessage('find');
          end;
        end;
      

  8.   

    遍历最方便了,findcomponent找的还不是caption。。