关于Delphi中TList用法,是怎样用的呢?带着这个疑问,笔者开始进行了代码的编写,试图理解TList的本质–TList包含对象指针列表。好的,那么开始程序代码编写吧!
开发环境:Delphi7
开发控件截图:
代码如下,以下代码仅为运用TList,没有考虑内存的情况,好的,代码Unit1.Pas如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,Registry;
type
TForm1 = class(TForm)
Button1: TButton;
GroupBox1: TGroupBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
vli:TList;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
vBtn:TButton;
Pb:Pointer;
i:integer;
begin
vli.Clear;
for i:=0 to 6 do
begin
vBtn:=TButton.Create(self);
vBtn.Parent:=Groupbox1;
vBtn.Name:='Day'+inttostr(i);
vBtn.Top:=20;
vli.Add(vBtn);
if i=0 then
begin
TButton(vli.Items[i]).Left:=0;
end
else
begin
TButton(vli.Items[i]).Left:=TButton(vli.Items[i-1]).Left+TButton(vLi.Items[i-1]).Width+20;
TButton(vli.Items[i]).Top:=TButton(vli.Items[i-1]).Top+20;
end;
vli.First;
vli.Pack;
(* 方法列表
Add 在列表的末尾插入有关的内存。
Clear 从列表中删除所有项。
Delete 删除Index参数标识的项。
Error 产生EListError异常。
Exchange 交换Items数组中两项的位置。
Expand 增加列表的Capacity。
First 返回Items[0]。
IndexOf 返回Items数组中一指针的索引。
Insert 增加一对象至Items数组中。
Last 返回Items[Count-1]。
Move 在Items数组中改变某一项的位置。
Pack 从Items数组中删除所有的nil项。
Remove 从Items数组中删除Items参数的第一个引用。
Sort 在列表中执行QuickSort。
*)
end;
Pb:=vli.Items[0];
showmessage(TButton(Pb^).Caption);
end;
procedure TForm1.FormCreate(Sender: TObject);
{TList包含对象指针列表。
Tlist用于存储和维护对象列表。TList引入属隆和方法以执行以下操作:
(1)在列表中增加或删除对象。
(2)在列表中重排对象。
(3)在列表中定位和获得对象。
(4)在列表中对对象进行排序。
}
begin
vli:=TList.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
vli.Free;
vli:=nil;
end;
end.
运行效果图如下:
有没有感觉效果图很不一般,试着将其改成倒过来,呈上升阶梯的形状,可以动手试着写下代码,当做练手啊!到这里,相信大家应该掌握了TList的核心本质了,对于这点,笔者还是很开心的,那么,就让我们在下周见吧!