谁能给我讲讲 Tag 的用法 ?(50分)

  • 主题发起人 主题发起人 LoveDelphi
  • 开始时间 开始时间
L

LoveDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟初学 Delphi ,看到许多控件都有一个 Tag 属性,实在琢磨不透
是做何用,望前辈多多指教!最好能有个例子!
 
Tag就是每个VCL的标识,没什么大作用。

....
case TButton(Sender).Tag of
0: begin
....
end;
1: begin
....
end;
....
end;
 
tag 的英文意思是标记,附属物的意思

所以每个控件的tag属性就是每个控件的标记,没有太大的作用,但用tag可以识别控
件,正如Jetideas所说,合理运用tag属性可以使程序变的非常简单。

其实tag也可以任意使用,其作用相当于程序中的全局变量.
 
大家都说了,反正就是各标志而已,你觉得怎么有用就怎么用.
 
灵活运用TAG有时可以简化代码.
 
Tag 经常放特殊的整数值,以实现代码的重用。如下
Editor.Paragraph.Alignment := TParaAlignment(TComponent(Sender).Tag);
 
Tag 你也可以用做标识等,如当有一排Button,分别设定Tag为1..n,而你在用户按
了某键时需识别点击的button,这些Button主要功能相同,则可:
procedure TForm1.Button1Click(Sender: TObject);
begin
//共同事件
case tbutton(Sender).tag of
1://事件
2://事件
.
.
end;
//共同事件
end;
那你就可以让所有button只调用这个过程就可以了,
当然也可以表示某控件 正MouseDown 或MouseUp等状态.
用法多多,合理使用可以减少相当多布尔变量
也可以当计数器:
tbutton(Sender).tag:=tbutton(Sender).tag+1;
Label1.Caption:='你已经点击了'+inttostr(tbutton(Sender).tag)+'次';
明白了吗?
 
1.作全局变量,省去变量的定义;
2.作组件的区分标志,以便在同时处理多数同类组件时加以区分.
 
tag定义的类型是长整数,
可以通过转换用它放置整数
字符
指针
句柄
以满足编程的需要。
 
Tag.本身对元件没有任何影响。是DELPHI预留给开发者的。所有DELPHI元件都
具有此属性。TAG作为一个长整型,它可以保留任何数据。开发者可以充分利用这个属性,将一组类似的元件关联起来。32位系统的指针类型是4BYTE,而长整
型也是4BYTE,因此TAG也可以用来存储指针类型,这就大大增强了编程的灵活性。
 
原来 Tag 的用法这样灵活,开始我还以为它能使控件发生什么变化呢?
难怪无论我在里面填上什么数都没反应 !
 
多人接受答案了。
 

Similar threads

后退
顶部