效果图:

 

 

 左边的树 的树结点 ,通过 结点名 与 右 侧TabSheet名 一致时,显示 相关页面。

这是相关 源代码

procedure TMainForm.UniFormCreate(Sender: TObject);
var
  I: Integer; 
begin
  for I := UniPageControl1.PageCount - 1 downto 1 do // 一定是  downto 1
  begin
    UniPageControl1.Pages[I].Visible := false;
    UniPageControl1.Pages[I].TabVisible := false;
  end;
  UniPageControl1.ActivePageIndex:=0;//设计 时, 一定要 先 首页 最先显示
 
UniTreeView1.FullExpand;

end;
procedure TMainForm.UniTreeView1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := UniPageControl1.PageCount - 1 downto 0 do
  begin
    UniPageControl1.Pages[I].Visible := false;
    UniPageControl1.Pages[I].TabVisible := false;
  end;


  for I := UniPageControl1.PageCount - 1 downto 0 do  begin
    if UniPageControl1.Pages[I].Caption = UniTreeView1.Selected.Text then
    begin
      UniPageControl1.Pages[I].Visible := true;
      UniPageControl1.Pages[I].TabVisible := true;;
      break;
    end;
    UniPageControl1.Pages[0].TabVisible := true;
    UniPageControl1.Pages[0].Visible := true;
  end;

end;
procedure TMainForm.SearchTree(const AText: string);
var
  S, SString: string;
  I: Integer;
  aExpand: Boolean;
begin
  SString := Trim(AText);
  if SString <> PSString then
  begin
    PSString := LowerCase(SString);
    if (Length(PSString) > 0) or (PSString = '') then
    begin
      aExpand := PSString <> '';
      UniTreeView1.BeginUpdate;
      try
        UniTreeView1.ResetData;
        for I := 0 to UniTreeView1.Items.Count - 1 do
        begin
          S := LowerCase(UniTreeView1.Items[I].Text);
          UniTreeView1.Items[I].Visible := (Length(PSString) = 0) or
            (Pos(PSString, S) > 0);
          UniTreeView1.Items[I].Expanded := aExpand;
        end;
      finally
        UniTreeView1.EndUpdate;
      end;
    end;
  end;
end;

源文件下载

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/tulater/p/12273455.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!