各有不同,delphi中实现如下:var abc:array[1..100] of Tcheckbox;
i:integer;
begin
for i:=1 to 100 do
begin
abc[i] := tcheckbox.Create(self);
abc[i].Left :=10+i*10;
abc[i].Parent :=self;
abc[i].Visible :=true;
abc[i].Name :='abc'+inttostr(i);
abc[i].OnClick := checlick;
end;
i:integer;
begin
for i:=1 to 100 do
begin
abc[i] := tcheckbox.Create(self);
abc[i].Left :=10+i*10;
abc[i].Parent :=self;
abc[i].Visible :=true;
abc[i].Name :='abc'+inttostr(i);
abc[i].OnClick := checlick;
end;
解决方案 »
- Java Delphi Socket通讯
- 在任务管理器中隐藏自己的程序?
- 谁大富翁离线数据库CHM版的下载
- LISTVIEW1.Items[I].SubItems.Strings[0]:='123' 报错:list out of bounds 0 救命那
- 有没有修复paradox表及索引的程序呢?要有源程序的.在线等待,急件
- ADO控件是否有补丁?
- 关于在Tedit控制按键key的问题。
- 急聘DELPHI工程师
- 一个简单的排序问题,能者得分
- 怎样用table的filter属性过滤某个范围内的数据??
- 日期格式变换
- 新手问题:想在一个form中建立一个button数组,然后在程序中对数组进行操作,如何实现?
正在学习用D6写管理软件,好象比vb6麻烦一点,vb6直接生成就可。
不过还是多谢cbdiy老兄!!!
可以用FindComponent()简单的实现控件数组的功能,假如你有Edit1...Edit100要全部清空:
var i:integer;
begin
for i:=1 to 100 do
if (FindComponent('Edit'+IntToStr(i)) is TEdit) then
(FindComponent('Edit'+IntToStr(i)) as TEdit).text:='';
end;
本人Delphi初学者,不要笑我^_^
比如我复制了100个按钮,他们的名字分别为NBotton1,NBotton2,NBotton3,NBotton4,NBotton5.....NBotton100
,这时我想分别在各自的按钮上点击,使被点击的按钮变红色,就没法用数组控件实现,而在vb6中由于copy同一按钮自动生成控件,由于有index参数传递知道点击的是哪个按钮,所以实现这个方法只要一个过程一条语句即可。
而现在在Delphi6中没办法用一个过程实现。
我只有建立100个按钮的onclick事件才能使之实现这个非常简单的要求,
累S人了,各位好心的大虾救命!!
难道Delphi6真的不如VB6中用???晕倒!!!Help!!!
其它的都指向第一个btn,不要重新创建
可是我看见的Tag怎么都是0?
而且使100个按钮怎么统一到Form1_NBotton11onclick()事件
如果tag传递参数,就可以了吗?
Form1_NBotton11onclick(...)
var
i:integer;
begin
if NBotton(?????).tag=...; then
....
end可是过程中的NBotton怎么辨别啊,到底我点击的哪个按钮?
//看见sender了吗?表示触发该事件的是谁
begin
if (sender is TButton) then
ShowMessage((sender as TButton).Name+' was Clicked');
end; //所有Button的通用函数,但不同的Button按下去结果不一样利用sender你可以做很多事情了,你可以使用(sender as TButton).Caption/Name/Width/Height.... ;只要是该类控件有的属性都可以用;再配合tag属性的使用(比如同一组的Button的tag都设为1,分组的方法变化万千了),我想没有什么VB可以的,Delphi不可以
问题已经解决
我用的包括tag,sender,还有FindComponent解决了问题,不过比VB多了一两句语言而已了.
对,VB可以的,Delphi也可以。好象.net里面也没了index了,都是Delphi人的编写的.net???