Day6 Delphi中TList用法

关于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的核心本质了,对于这点,笔者还是很开心的,那么,就让我们在下周见吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值