DELPHI中使用Tlist类的补充学习
2008-11-28 12:15
363 查看
今天我就以一个实际的例子讲述如何正确的使用Tlist类。
我的这个例子是:
有一个链表UserList,这个链表中保存的是用户的信息。在另一个链表CardList,中保存的是用户的牌信息。其中CardList中牌的信息是会随着用户出牌的要求而变化的。但是UserList中的用户信息是不变的。我们来定义两个结构
我的这个例子是:
有一个链表UserList,这个链表中保存的是用户的信息。在另一个链表CardList,中保存的是用户的牌信息。其中CardList中牌的信息是会随着用户出牌的要求而变化的。但是UserList中的用户信息是不变的。我们来定义两个结构
/用户信息结构 RuserInfo= record UserID:String[20]; Sex:Boolean; Face:Byte; Score:Integer; End; PuserInfo = ^ RuserInfo; //用户牌对应结构 RuserCardInfo = record UserInfo: PuserInfo; CardInfo:String[20]; End; PuserCardInfo = ^ RuserCardInfo; 下来我们定义两个链表 UserList,CardList:Tlist; 当用户加入这个桌子的时候写入UserList中 Procedure UserInfoFun(UserID:String;Sex:Boolean;Face:Byte;Score:Integer); Var p_User:PuserInfo; begin New(p_User); p_User.UserID:= UserID; p_User.Sex:= Sex; p_User.Face:= Face; p_User.Score:= Score; UserList.Add(p_User); …… End; 当给用户发牌的时候 Procedure UserCardInfoFun(UserID:String); Var p_Card: PuserCardInfo p_User:PuserInfo; I,Count:Integer; Flag:Boolean; Begin //首先从用户链表中找出此用户的信息 Count:= UserList.Count; Flag:=false; For I:=0 to Count-1 do Begin p_User:= UserList.Item[I]; If UserID = UserID then Begin Flag:=true; Break; End; End; //新生成一个用户牌信息指针,并加入到牌信息链表中 If Flag then Begin New(p_Card); p_Card. CardInfo:=’H1H2H3H4’; p_Card. UserInfo^:= p_User^; CardList.Add(p_Card); [Page] End; End; 当要从链表中删除用户出牌信息时 Procedure DelUserCardInfoFun(UserID:String); Var p_Card: PuserCardInfo; I,Count:Integer; Begin Count:= CardList.Count; For I:=0 to Count-1 do Begin p_Card:= CardList.Item[I]; If p_Card. UserInfo.UserID = UserID then Begin CardList.Delete(I); DisPose(p_Card); Exit; End; End; End; 需要注意的是,我在加入牌信息的时候使用了p_Card. UserInfo^:= p_User^;方法。这个方法是将p_User的内容直接复制给p_Card. UserInfo。也就是说,现在有两份用户信息。所以在后面删除用户牌信息的时候,我直接使用了DisPose函数来销毁。 其实上面的例子是一个很简单的例子,我想用它作为以前我写的文章的一个补充。希望能对大家使用Tlist有个帮助。 |
相关文章推荐
- 关于Strtus s的使用(不断学习补充中)
- delphi学习点滴——使用Query控件的两个技巧
- delphi学习点滴——操作excel的几个控件使用说明
- ios - HTTP学习、使用注意笔记(后续有补充)
- 【Redis学习】:redis补充——redis使用场景、redis.conf配置文件和启动多个redis实例
- Delphi容器类之---TList、TObjectList、TComponentList、TClassList的使用
- Delphi学习中使用到的部分技巧
- Unity_DOTween动画的学习(七)_Tweener的使用简单补充_DOText的简单演示
- delphi开发学习四:TClientDataSet与TDataSetProvider控件使用实例
- Delphi TList 使用范例
- Delphi的学习笔记十六——数据类型(补充)
- android 学习 ListView使用补充
- 《GOF设计模式》—原型(Prototype)—Delphi源码示例:基于类的原型管理器(使用TList实现)
- Delphi学习之Assigned使用
- 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件里插入数据到数据表
- java学习之旅57、58--数组_StringBuilder和StringBuffer的使用_JDK源码分析内部机制、常用方法补充_常见面试题答法
- 基于CentOS的Mysql学习补充二--使用Shell创建数据库
- Unity_DOTween动画的学习(十一)_DOTweenPath路径编辑器的使用补充_结合按钮触发不同点击事件控制播放状态_Waypoints
- 基于CentOS的MySQL学习补充四--使用Shell批量从CSV文件中插入数据到数据表
- 基于CentOS的MySQL学习补充三--使用Shell批量创建数据库表