delphi控件中的 Tag 属性巧用

来源:互联网 发布:无线图像传输 单片机 编辑:程序博客网 时间:2024/04/30 18:41

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 0
原创粉丝点击