频道分类

delphi TList

作者:admin 来源:未知 日期:2010/6/4 13:11:43 人气: 标签:

 

出处:http://www.cnblogs.com/del/archive/2008/08/15/1268786.html

本例效果图:



代码文件:

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls;type  TForm1 = class(TForm)    Memo1: TMemo;    Edit1: TEdit;    Button1: TButton;    Button2: TButton;    Button3: TButton;    Button4: TButton;    Button5: TButton;    Button6: TButton;    Button7: TButton;    Button8: TButton;    Button9: TButton;    Button10: TButton;    procedure FormCreate(Sender: TObject);    procedure FormDestroy(Sender: TObject);    procedure Edit1Change(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);    procedure Button3Click(Sender: TObject);    procedure Button4Click(Sender: TObject);    procedure Button5Click(Sender: TObject);    procedure Button6Click(Sender: TObject);    procedure Button7Click(Sender: TObject);    procedure Button8Click(Sender: TObject);    procedure Button9Click(Sender: TObject);    procedure Button10Click(Sender: TObject);  end;var  Form1: TForm1;implementation{$R *.dfm}uses Generics.Collections; {Delphi 2009 新增的泛型容器单元}var  List: TList<string>;  {定义一个泛型 TList 类, 这指定了要用于 string}  str: string = 'Test';{建立}procedure TForm1.FormCreate(Sender: TObject);begin  List := TList<string>.Create;  Memo1.Clear;  Edit1.Text := str;  Button1.Caption := Button1.Caption + ' 显示';  Button2.Caption := Button2.Caption + ' 添加';  Button3.Caption := Button3.Caption + ' 插入';  Button4.Caption := Button4.Caption + ' 删除1';  Button5.Caption := Button5.Caption + ' 删除2';  Button6.Caption := Button6.Caption + ' 查找';  Button7.Caption := Button7.Caption + ' 排序';  Button8.Caption := Button8.Caption + ' 翻转';  Button9.Caption := Button9.Caption + ' 清空';  Button10.Caption := Button10.Caption + ' 添加数组';end;{释放}procedure TForm1.FormDestroy(Sender: TObject);begin  List.Free;end;procedure TForm1.Edit1Change(Sender: TObject);begin  if Edit1.Text <> '' then str := Edit1.Text;end;{显示}procedure TForm1.Button1Click(Sender: TObject);var  i: Integer;begin  Memo1.Clear;  for i := 0 to List.Count - 1 do    Memo1.Lines.Add(List[i]);  {List[i] = List.Item[i]}  Text := Format('当前总数: %d', [List.Count]);end;{添加}procedure TForm1.Button2Click(Sender: TObject);begin  List.Add(str);  Button1.Click; {刷新显示}end;{插入, 譬如插入在最前面}procedure TForm1.Button3Click(Sender: TObject);begin  List.Insert(0, str);  Button1.Click;end;{根据序号删除, 譬如删除第一个数据}procedure TForm1.Button4Click(Sender: TObject);begin  List.RemoveAt(0);  Button1.Click;end;{根据内容删除, 譬如删除第一个数据}procedure TForm1.Button5Click(Sender: TObject);var  s: string;begin  s := List[0];  List.Remove(s);  Button1.Click;end;{查找}procedure TForm1.Button6Click(Sender: TObject);var  n: Integer;begin  n := List.IndexOf(str); {LastIndexOf 是从后面找; 也可用 List.Contains(str) 判断是否包含 str}  if n = -1 then    ShowMessage('没找到')  else    ShowMessageFmt('%s 是第 %d 个', [str, n+1]);end;{排序}procedure TForm1.Button7Click(Sender: TObject);begin  List.Sort;  Button1.Click;end;{翻转}procedure TForm1.Button8Click(Sender: TObject);begin  List.Reverse;  Button1.Click;end;{清空}procedure TForm1.Button9Click(Sender: TObject);begin  List.Clear;  Button1.Click;end;{添加数组}procedure TForm1.Button10Click(Sender: TObject);const  arr: array[0..2] of string = ('CodeGear', 'Delphi', '2009');begin  List.Add('Embarcadero');  List.AddRange(arr);  Button1.Click;end;end.