DELPHI中运用Tlist类的简略剖析51CTO博客 - 凯发娱乐

DELPHI中运用Tlist类的简略剖析51CTO博客

2019-01-04 21:35:49 | 作者: 沛凝 | 标签: 运用,指针,保存 | 浏览: 2980

我在上面的BLOG中写到了运用指针的办法。在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中保存的是每个牌的指针。在Tlist中的保存格局类似于下图: 3:随机从这个链表中取出4个指针,并将指针对应的牌信息保存在变量t_CardInfo。由于在将指针刺进到t_List中的时分,咱们运用了New函数来请求内存,所以当从链表中删去这个指针的时分,一定要运用Dispose函数来开释,否则会构成内存走漏。 4:将t_List中剩下的指针开释。 5:开释目标t_List目标。     运用类Tlist在开发游戏中有很重要的方位,运用办法大多如我上面所写的这样。                
 
版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    MySQL索引根底ITeye

    索引,运用,哈希
  • 2

    数据库拜访优化规律ITeye

    数据,索引,运用
  • 3

    导入导出与字符集ITeye

    字符集,导入,导出
  • 4

    游标笔记ITeye

    游标,数据,读取
  • 5

    SQLSERVER分页查询ITeye

    查询,代码,计划
  • 6
  • 7

    oracle暗码修正办法ITeye

    暗码,修正,用户
  • 8
  • 9
  • 10