本例效果圖:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TForm1 = class(TForm)
TreeView1: TTreeVIEw;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{初始化}
procedure TForm1.FormCreate(Sender: TObject);
var
stream: TMemoryStream;
begin
TreeVIEw1.Align := alLeft;
stream := TMemoryStream.Create;
with TStringList.Create do
begin
Add('2');
Add('3');
Add('1');
Add('4');
Add(#32'2');
Add(#32'3');
Add(#32'1');
Add(#32'4');
Add(#32#32'2');
Add(#32#32'3');
Add(#32#32'1');
Add(#32#32'4');
SaveToStream(stream);
Free;
end;
stream.Position := 0;
TreeVIEw1.LoadFromStream(stream);
TreeVIEw1.SortType := stNone;
stream.Free;
Button1.Caption := '排序第一層';
Button2.Caption := '全部排序';
Button3.Caption := '指定排序類型';
Button4.Caption := '倒排序';
Button5.Caption := '初始化';
end;
{只排序第一層}
procedure TForm1.Button1Click(Sender: TObject);
begin
TreeVIEw1.AlphaSort(False);
end;
{全部排序}
procedure TForm1.Button2Click(Sender: TObject);
begin
TreeVIEw1.AlphaSort;
end;
{指定排序類型}
procedure TForm1.Button3Click(Sender: TObject);
begin
TreeVIEw1.SortType := stText;
{SortType 有四種選擇:
stNone, stData, stText, stBoth
stText 表示按顯示的標簽文本排序.
}
end;
{倒排序}
procedure TForm1.Button4Click(Sender: TObject);
function MySort(Node1, Node2: TTreeNode; lParam: Integer): Integer; stdcall;
begin
Result := -AnsiStrIComp(PChar(Node1.Text), PChar(Node2.Text));
end;
begin
TreeVIEw1.CustomSort(@MySort, 0);
end;
{重新初始化}
procedure TForm1.Button5Click(Sender: TObject);
begin
FormCreate(nil);
end;
end.