⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 treeviewen.pas

📁 DELPHI中的快速报表控件
💻 PAS
字号:
unit TreeViewEn;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls;

type
  TTreeViewEn = class(TTreeView)
  private
    { Private declarations }
  protected
    { Protected declarations }
  public
    { Public declarations }
    function GetTreeNode(Index : array of integer) : TTreeNode;
    function GetPath(Node : TTreeNode) : String;
    function AddStrings(Index : Array of integer; Str : Array of String):Boolean;
  published
    { Published declarations }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('VodCtl', [TTreeViewEn]);
end;

function TTreeViewEn.GetTreeNode(Index : array of integer) : TTreeNode;
var
  i,j,DeepLow,DeepHigh : integer;
  Node :  TTreeNode;
begin
  Result := nil;
  DeepLow := Low(Index);
  DeepHigh := High(Index);
  For i:= 0 to Items.Count -1 do
  begin
    Node := Items.Item[i];
    if Node.Level = DeepHigh-DeepLow then
    begin
      J := DeepHigh-DeepLow;
      while Node<>nil do
      begin
        if Node.Index <> Index[j] then Break;
        Node := Node.Parent;
        Dec(J);
      end;
      if J = -1 then
      begin
        Result := Items[i];
        Break;
      end;
    end;
  end;
end;

function TTreeViewEn.GetPath(Node : TTreeNode) : String;
var
  I : integer;
begin
  For i:= 0 to Node.Level do
  begin
    Result := IntToStr(Node.Index) + Result;
    Node := Node.Parent;
  end;
end;

function TTreeViewEn.AddStrings(Index : Array of integer; Str : Array of String):Boolean;
var
  i, St, En :integer;
  Node : TTreeNode;
begin
  Result := False;
  Node := GetTreeNode(Index);
  if Node = nil then Exit;
  St := Low(Str);
  En := High(Str);
  if Node.Count=0 then
  begin
    Items.AddChildFirst(Node,Str[St]);
    For i := St+1 to En do Items.AddChild(Node,Str[i]);
  end
  else For i := St to En do Items.AddChild(Node,Str[i]);
  Result := True;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -