加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

delphi控件中的 Tag 属性巧用

(2012-05-24 11:45:20)
标签:

it

分类: delphi
delphi控件中的 Tag 属性巧用
 
 

delphi控件中的 Tag 属性巧用
━━━━━━━━━━━━━━━━━━━━━━━━━━

   几乎所有的Delphi组件都有Tag属性,Tag是LongINT类型,其实,通过编程技巧,还可以利用它存储其它的数据类型,甚至对象,下面以存储字符串为例作简要说明:

  PChar是Pointer指针类型,Pointer与LongINT占用相同的内存空间,这点可以通过
  label1.Caption :=inttostr(sizeof(pointer));
  label2.Caption :=inttostr(sizeof(LongInt));
来验证。

  我们新建一个Form,放上两个TEdit 和一个Button,在Button的OnClick事件输入以下代码:
  edit1.Tag := LongInt(NewStr(edit1.Text ));
  edit2.Text := PString(edit1.Tag)^;   //把Edit1的内容拷贝至Edit2中
  DisposeStr(PString(edit1.Tag));    //释放指针占用的内存空间

   最后一句的内存释放很重要,如果指针不再使用,切记把它所占的内存空间释放。
   实际上,灵活使用Tag属性,能为你的程序增辉不少:

   1. 如果程序引用的字符串或其他类型的数据较多或存在于整个程序生存期,不妨把它们建成一个资源文件,然后用Tag属性作为索引来调用它们;

   2. 使用*.INI文件保存程序所需要保存的数据,例如:
  [content]
  String1=Jacky {name}
  String2=BeiJing {address}
  String3=12345678 {Telphone}
  那么就可以这样读出数据
   var s1: string;MyIni:TiniFile;
   …
   MyIni:=TiniFile.Creat(`contentsave.ini');
   s1 := MyIni.ReadString(`content',`string'+IntToStr(Tag),`');    //Tag为某个组件的Tag属性值

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有