当前位置: 首页 > 图文教程 > 认证考试 > 计算机等级考试 > 计算机二级:DELPHI中指针和类TLIST结合

计算机等级考试
excel电子表格计算日期差工龄生日等
2009全国计算机等级考试新变化
计算机二级DELPHI技巧:DELPHI获取U盘盘符代码
计算机二级:DELPHI中指针和类TLIST结合
计算机二级:DELPHI中使用Tlist类的学习
计算机二级DELPHI技巧:DELPHI程序错误类型
计算机三级网络技术:网站被黑的10大原因
计算机二级DELPHI设置DBGridEh自动排序方法
计算机等级考试辅导:禁止MessageBox()弹出的对话框
计算机等级考试:Windows7Shell命令大汇总
把表空间从字典托管模式升级成本地托管模式
去掉系统快捷方式箭头的途径:修改注册表
计算机一级辅导:电脑连续死机是什么问题
C++编程:如何安全终止线程
做一个合格的软驱磁头清洁工
电脑光驱读盘差怎么办?
教你还原不小心被删除的文件资料
DELPHI辅导:打开与编辑数据表
delphi数据库引擎管理器
计算机二级C++辅导:回调函数用法

计算机等级考试 中的 计算机二级:DELPHI中指针和类TLIST结合


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-04   浏览: 349 ::
收藏到网摘: n/a

  在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对象。

  使用类Tlist在开发游戏中有很重要的位置,使用方法大多如我上面所写的这样。