分享

TTreeView讲解 [8] - AlphaSort、CustomSort、SortTy...

 昵称728549 2010-02-08


 

  本例效果图:

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. 



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多