学习 TTreeView [8] - AlphaSort、CustomSort、SortType

本例效果图:

学习 TTreeView [8] - AlphaSort、CustomSort、SortType

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.


 
   

你可能感兴趣的:(treeview)