博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi中TList类应用
阅读量:6947 次
发布时间:2019-06-27

本文共 1499 字,大约阅读时间需要 4 分钟。

在DELPHI中指针最常见的就是和类TLIST结合起来使用。下面是一个很简单的例子,希望对这个例子的分析能让大家对使用TLIST类有一个简单的认识。代码的功能是使用指针和Tlist来生成一个牌串,并将牌串保存在t_CardInfo中。 procedure TForm1.Button1Click(Sender: TObject);const  //黑桃,红桃,方块,草花  CardType:array[0..3] of String = ('S','H','D','C');const  //取出的牌数  CardNums = 4;type  //保存牌的指针信息  RCardrecord = record    CardInfo:String[2];  end;  PCard = ^RCardrecord;var  t_List:TList;  I:Integer;  t_Sub,t_Spare:Integer;  t_CardType,t_CardNum:String;  p_Card:PCard;  t_Random:Integer;  t_CardInfo:String[8];  Count:Integer;begin  //定义一个链表  t_List:=TList.Create;  //使用循环将52张牌放入链表中  for I:=1 to 52 do  begin    t_Sub:=I div 14;    t_Spare:=I mod 14;    t_CardType:=CardType[t_Sub];    t_CardNum:=IntToHex(t_Spare,1);    New(p_Card);    p_Card.CardInfo:=t_CardType+t_CardNum;    t_List.Add(p_Card);  end;  //使用随机从52张牌中抽取4张牌,并保存在 t_CardInfo中  Randomize;  for I:=1 to CardNums do  begin    t_Random:=Random(t_List.Count);    p_Card:=t_List.Items[t_Random];    t_CardInfo:=t_CardInfo+p_Card^.CardInfo;    t_List.Delete(t_Random);    DisPose(p_Card);  end;  //清空链表中的指针  Count:=t_List.Count;  for I:=Count-1 downto 0 do  begin    p_Card:=t_List.Items[I];    t_List.Delete(I);    DisPose(p_Card);  end;  //释放链表  t_List.Free;end; 分析:1:我们首先创建一个Tlist类的对象t_List。2:将52张牌按照相应的格式保存在这个t_List中。注意,这里t_List中保存的是每个牌的指针。3:随机从这个链表中取出4个指针,并将指针对应的牌信息保存在变量t_CardInfo。因为在将指针插入到t_List中的时候,我们使用了New函数来申请内存,所以当从链表中删除这个指针的时候,一定要使用Dispose函数来释放,否则会形成内存泄露。4:将t_List中剩余的指针释放。5:释放对象t_List对象。

 

转载于:https://www.cnblogs.com/chenmfly/p/4545687.html

你可能感兴趣的文章
C#属性(Attribute)用法实例解析
查看>>
Android 自定义控件 优雅实现元素间的分割线 (支持3.0以下)
查看>>
Java中间件:淘宝网系统高性能利器
查看>>
ng-bind-html 的使用
查看>>
[OpenSource]浅谈.Net和Java互相调用的三种方式
查看>>
C语言指针的初始化和赋值
查看>>
安卓开发笔记——关于照片墙的实现(完美缓存策略LruCache+DiskLruCache)
查看>>
定义和使用EL函数
查看>>
LoadRunner项目结合抓包工具
查看>>
MySQL show binglog event in 'log_name'
查看>>
开发自己的博客转发插件(跨域)
查看>>
spark优化之临时目录
查看>>
***CI分页:为CodeIgniter写的分页类
查看>>
(十二) 一起学 Unix 环境高级编程 (APUE) 之 进程间通信(IPC)
查看>>
利用@media screen实现网页布局的自适应
查看>>
virus.win32.parite.H病毒的查杀方法
查看>>
android edittext不弹出软键盘
查看>>
关于正则表达式 C#
查看>>
【原创视频教程】SqlServer2008视频教程[共9集]
查看>>
Ubuntu 14.04 启用休眠
查看>>