当然可以,如:
procedure TForm1.Button1Click(Sender: TObject);
var
MyEdit:array[0..2] of Tedit;
i:integer;
begin
MyEdit[0]:=self.edit1;
MyEdit[1]:=self.edit2;
MyEdit[2]:=self.edit3;
for i:=0 to 2 do
begin
ShowMessage(Tedit(MyEdit[i]).text);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MyEdit:array[0..2] of Tedit;
i:integer;
begin
MyEdit[0]:=self.edit1;
MyEdit[1]:=self.edit2;
MyEdit[2]:=self.edit3;
for i:=0 to 2 do
begin
ShowMessage(Tedit(MyEdit[i]).text);
end;
end;
解决方案 »
- Ehlib排序函数
- 网络读取文本的问题
- 我在button2中如何调用button1的click事件?
- 很高深的不懂就别来了
- 深度挑战:当选择(鼠标点击或键盘选择)ComboBox的下拉列表中的条目时,如何编写代码,使得ComboBox文本框中的文本显示为格式化后的文本
- 一个未见正式文档的ADO技术,欢迎大家讨论
- 请问delphi有一个可以对空记录进行编辑的grid之类的控件吗?
- 动态创建300个容器,但是在203个之后位置开始重叠,何解?
- 送分问题——listview使用了imagelist设置了图标,如何使得item被选中时相应的图标颜色不变呢?
- 如何选择一个字符串中的一个字符!
- 如何定义一个货币型的变量??这样可以吗 a:$ ???
- 密码
在 Delphi 中实现类似 VB 中的控件数组: 你可以通过设置一组相应控件的 Tag 属性来实现这一功能。首先在窗体中放置 3 个 Button 控件,然后分别设置这三个控件的 Tag 属性为 1、2、3。接下来双击任意一个按钮,在其代码部分输入如下代码:
procedureTForm1.Button1Click(Sender: TObject);
var
cap: string;
begin
case TButton(sender).Tag of
1: ShowMessage('1st Button Pressed');
2: ShowMessage('2nd Button Pressed');
3: ShowMessage('3rd Button Pressed');
end;
end;
最后在其他两个按钮的 ONCLICK 事件中添加相同的代码。这样一来就可以实现以上功能了。点击一下按钮试试?
var
lblarray:array[0..5] of tlabel;
i:integer;
begin
for i:0 to 5 do
begin
lblarray[i]:=tlabel.create(self);
lblarray[i].left:=xx //set a value
lblarray[i].top:=xx //set avalue
lblarray[i].caption:='hello,i am label'+inttostr(i+1);
lblarray[i].parent:=self;
end;
// rember to free them .
end;
unit unit1;
interface
uses
windows,messages,sysutils,classes,graphics,controls,forms,dialogs,stdctrls;
type
TForm1 =class(TForm)
procedure FormCreate(Sender:TObject);
private
{private declarations}
MakeEdit:array [0..100] of TEdit;
iMakeEditCount:integer;
procedure MakeEditPress(Sender:TObject;var Key:char);
public
{public declaration}
end;var
Form1:TForm1;
implementation
{$R *.DFM}procedure TForm1.FormCreate(Sender:TObject);
var
i:integer;
begin
iMakeEditCount:=3;
for i:=0 to iMakeEditCount do
begin
MakeEdit[i]:=TEdit.Create(Form1);
MakeEdit[i].parent:=Form1;
MakeEdit[i].Font.Color:=clGreen;
MakeEdit[i].Name:='Edit'+InttoStr(i);
MakeEdit[i].Text:='';
MakeEdit[i].Left:=Form1.Left+60;
MakeEdit[i].Top:=Form1.top+10+30*i;
MakeEdit[i].OnKeyPress:=MakeEditPress;
end;
end;procedure TForm1.MakeEditPress(Sender:TObject;var Key:char);
var
sEditName:String;
iEditNum:integer;
begin
sEditName:=(Sender as TEdit).Name;
iEditNum:=strtoint(Copy(sEditName,5,Length(sEditname)-4));
if Key = #13 then
if iEditNum < iMakeEditCount then
MakeEdit[iEditNum+1].SetFocus;
end;
end.
//完
procedureTForm1.Button1Click(Sender: TObject);
var
tmpImage: array of TImage;
i: integer;
begin
SetLenght(tmpImage,5);
for i:=0 to 4 do
begin
tmpImage[i] := TImage.create(self);
tmpImage[i].parent := self;
...
end;