打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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


 

  本例效果图:

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. 



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
DELPHI 动态创建按钮控件,动态删除按钮控件
delphi下调用微软的TTS语音
Delphi XE2 之 FireMonkey 入门(4)
汉字Unicode-GBK码互换程序。 从delphi盒子下载-Chinese Unicode-GBK code swap procedures. Delphi downloaded from the
Delphi多线程编程 - 编程技巧文章 - 蓝鸟软件-03
delphi用postMessage发送字符到记事本
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服