当前位置:主页>仓库管理软件> 列表

如何利用Tag重命名label,及修改其caption? 找服装鞋帽销售软件

库存管理软件版1楼: 我向窗体扔了100个label,tag为1..100
现在要实现:show的时候,控件名=tag的值。
发生事件1时,tag为1的label变色。
.......
.......
事件100, tag为100的label变色。

多谢各位大虾

2楼: procedure TForm1.FormShow(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 4 do
if components[i] is TLabel then
begin
(components[i]as TLabel).Name := ''labeltest'' + IntToStr(components[i].Tag);
(components[i] as TLabel).Caption := IntToStr(components[i].Tag);
end;
end;



procedure TForm1.Label1Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 4 do
if components[i] is TLabel then
(components[i] as TLabel).Color := clRed;
(Sender as TLabel).Color := clBlue;
end; 如服装鞋帽销售软件

3楼: procedure TForm1.FormCreate(Sender: TObject);


var
i : integer;
begin
for i := 0 to self.ControlCount -1 do
begin
if self.Controls[i] is TLabel then
TLabel(self.Controls[i]).name:= ''test'' + inttostr(Controls[i].tag);
TLabel(self.Controls[i]).caption:= inttostr(Controls[i].tag);
end;
end;

4楼: 控件名=tag的值??
不行的,控件名字不能为单纯的数字!!!

事件中添加代码改变颜色
TLabel(FindComponent(''label1'')).Color := clRed;

5楼: 用控件组,自建; 不然一百个LABEL放起来也不容易, 给TAG赋值也感觉挺累.

6楼: 如果可自建的话继承 TObjectList 来写。

库存管理软件版7楼: 错误提示::''A component named lbl0 already exists''.
怎么回事阿

8楼: okey