Delphi中Tlist实例
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
btn2: TButton;
btn3: TButton;
btn4: TButton;
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
procedure btn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
List: TList;
{声明 List}
frmRed: TForm; {用于测试的对象, 这里选择了窗体}
begin
List := TList.Create; {建立列表}
frmRed := TForm.Create(nil); {建立 frmRed}
frmRed.Caption:='red'; {frmRed 标题}
frmRed.Color := clRed; {frmRed 颜色}
List.Add(frmRed); {添加到列表}
frmRed:=TForm.Create(nil); {又建立个frmred}
frmRed.Caption:='bre'; {frmred 标题}
frmRed.Color :=clBlue; {frmred 颜色}
List.Add(frmRed); {添加到列表}
ShowMessage(IntToStr(List.Count)); {1; 列表元素总数}
//TForm(List.Items[0]).ShowModal; {调用对象}
TForm(List[0]).ShowModal; {调用对象, 比上一行的写法简洁, 但是一样的}
TForm(List[1]).ShowModal;
frmRed.Free;
List.Free;
end;
procedure TForm1.btn2Click(Sender: TObject);
// Insert、Remove、Delete、Clear、First、Last
var
List: TList;
frmRed,frmGreen,frmBlue: TForm;
i: Integer;
begin
List := TList.Create;
{建立两个窗体: 红色、绿色}
frmRed := TForm.Create(nil);
frmRed.Caption := 'Red';
frmRed.Color := clRed;
frmGreen := TForm.Create(nil);
frmGreen.Caption := 'Green';
frmGreen.Color := clGreen;
{添加到 List}
List.Add(frmRed);
List.Add(frmGreen);
{再建立一个蓝色窗体}
frmBlue := TForm.Create(nil);
frmBlue.Caption := 'Blue';
frmBlue.Color := clBlue;
{插入到 List}
List.Insert(0, frmBlue);
ShowMessage(IntToStr(List.Count)); {3}
TForm(List.First).ShowModal; {显示第一个: 蓝色窗体}
TForm(List.Last).ShowModal; {显示最后一个: 绿色窗体}
{看看红色窗体是第几个?}
i := List.IndexOf(frmRed);
ShowMessage(IntToStr(i)); {1; 是第二个}
{从列表中删除 - 用对象指针}
List.Remove(frmRed);
ShowMessage(IntToStr(List.Count)); {2}
frmRed.ShowModal; {frmRed 依然存在, 只是不在列表中了}
{从列表中删除 - 用元素索引}
List.Delete(0);
frmBlue.ShowModal; {frmBlue 依然存在, 只是不在列表中了}
{清空列表}
List.Clear;
frmRed.Free;
frmGreen.Free;
frmBlue.Free;
List.Free;
end;
procedure TForm1.btn3Click(Sender: TObject);
// Capacity、Move、Exchange、Extract
var
List: TList;
frmRed,frmGreen,frmBlue: TForm;
p: Pointer;
i: Integer;
begin
List := TList.Create;
List.Capacity := 3; {让 List 准备好接受 3 个元素}
{建立红、绿、蓝三个窗体, 并添加到 List}
frmRed := TForm.Create(nil);
frmRed.Caption := 'Red'; frmRed.Color := clRed;
frmGreen := TForm.Create(nil);
frmGreen.Caption := 'Green'; frmGreen.Color := clGreen;
frmBlue := TForm.Create(nil);
frmBlue.Caption := 'Blue'; frmBlue.Color := clBlue;
List.Add(frmRed);
List.Add(frmGreen);
List.Add(frmBlue);
{依次显示窗体标题}
for i := 0 to List.Count - 1 do
ShowMessage(TForm(List[i]).Caption); {将分别显示: Red Green Blue}
{移动}
List.Move(2,0); {把第 3 个转移到第 1 个}
for i := 0 to List.Count - 1 do
ShowMessage(TForm(List[i]).Caption); {将分别显示: Blue Red Green}
{置换}
List.Exchange(1,2); {把第 2 个与第 3 个交换}
for i := 0 to List.Count - 1 do
ShowMessage(TForm(List[i]).Caption); {将分别显示: Blue Green Red}
{提取指针}
p := List.Extract(frmGreen);
ShowMessage(TForm(p).Caption); {Green}
frmRed.Free;
frmGreen.Free;
frmBlue.Free;
List.Free;
end;
end.
Delphi中Tlist实例的更多相关文章
- Delphi中TList类应用
在DELPHI中指针最常见的就是和类TLIST结合起来使用.下面是一个很简单的例子,希望对这个例子的分析能让大家对使用TLIST类有一个简单的认识. 代码的功能是使用指针和Tlist来生成一个牌串,并 ...
- Delphi中线程类TThread实现多线程编程2---事件、临界区、Synchronize、WaitFor……
接着上文介绍TThread. 现在开始说明 Synchronize和WaitFor 但是在介绍这两个函数之前,需要先介绍另外两个线程同步技术:事件和临界区 事件(Event) 事件(Event)与De ...
- Delphi中解析Xml的控件-SimDesign NativeXml
Delphi中解析Xml的控件-SimDesign NativeXml 正在学习,感觉应用很方便.无源代码的版本还是免费的. SimDesign.NativeXml是一个delphi和bcb的XML控 ...
- 转发 Delphi中线程类TThread 实现多线程编程
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchr ...
- 转:Delphi中使用比较少的一些语法
http://www.cnblogs.com/Murphieston/p/5577836.html 本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ...
- Delphi中的线程类 - TThread详解
Delphi中的线程类 - TThread详解 2011年06月27日 星期一 20:28 Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本 ...
- Delphi中的线程类(转)
Delphi中的线程类 (转) Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对 TThread类的几个成员作一简单介绍,再说明一下 ...
- Delphi中使用比较少的一些语法
本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ---Murphy 1,构造和析构函数: a,构造函数: 一般基于TComponent组件的派生类 ...
- Delphi中的接口和抽象类
参考:http://blog.csdn.net/xinzheng_wang/article/details/6058643 接口:Interface Delphi中接口中的关键字Interface,但 ...
随机推荐
- JAVA Error:The project was not built since its build path is incomplete. Cannot find the class file for java.util.Map$Entry.....
今天,学习Netty框架时遇到error:Description Resource Path Location Type:The project was not built since its bui ...
- 五分钟搞懂 Linux 重点知识,傻瓜都能学会!
来源:无痴迷,不成功 www.cnblogs.com/justmine/p/9053419.html 写在前面 我们都知道Linux是一个支持多用户.多任务的系统,这也是它最优秀的特性,即可能同时有很 ...
- 工作中常见的hive语句总结
hive的启动: 1.启动hadoop2.开启 metastore 在开启 hiveserver2服务nohup hive --service metastore >> log.out 2 ...
- JQ的异步文件上传
一,view代码 <form role="form"> <div class="form-group"> <label for=& ...
- java 企业 网站源码 后台 springmvc SSM 前台 静态化 代码生成器
前台: 支持四套模版, 可以在后台切换 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以访问 ...
- js中基本数据类型与引用数据类型的本质区别
代码 /** * 基本数据类型:string, number, boolean, null, undefined. * * 说明: * 基本数据类型的变量是保存在栈内存中的,基本数据类型的值 * 直接 ...
- vue 中使用style(样式)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- maven整合S2SH
1.pom.xml <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.ap ...
- JSP学习(4)
JSP学习(4) JavaBean简介 符合某种规范的Java类.使用JavaBean的好处是解决了代码重复编写,减少代码冗余,功能区分明确,提高代码的可维护性 JavaBean设计原则 JSP动作元 ...
- 361-基于6U VPX TMS320C6678+XC7K325T 的信号处理板
基于6U VPX TMS320C6678+XC7K325T 的信号处理板 一.板卡概述 本板卡基于6U VPX结构设计无线电信号处理平台.板卡包含1片C6678芯片,1片 FPGA XC7K325T- ...