如题
解决方案 »
- delphi怎么和asp通用加解密呢?
- 高手请,有点麻烦?
- 我用程序在注册表中修改了“我的电脑”图标,为什么要重新起运后才看得到被修改后的图标了?能不能用程序实现修改后马上生效呢?
- 如何拷贝文件流中的部分数据呢? 例子如下
- 打印问题!
- 菜鸟问题:还是关于线程。请各位高手帮帮忙。
- 关于forgot的感情帖子http://expert.csdn.net/Expert/TopicView1.asp?id=1326537,这是后面的故事,原帖的分不够了,这里再开帖,请朋友们
- 请问如何清除磁盘缓存?还有一个问题请见内容
- 关于用RxRichEdit的图片和文字跳转问题?
- CSDN的同志们,我想把我的东东移到D6上去,但是我又没有支持D6的GIF控件。你们有吗?
- 关于MYSQL数据库的
- wise install9.02 做OCX(mapx)安装程序出错如下,求救,马上给分
例
Button:array[1..10]of TButton;
Form1.Component[i]
Var
AButton:array[1..10]of TButton;
i: Integer;
Begin
for i:=1 to 10 do
begin
AButton[i]:=Tbutton.create(application);//创建TButton
...
end;
End;
edit: array[1..10]of TEdit;
也可以使用Button:array of TButton;动态数组
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
Begin
for i:=1 to 10 do
begin
edit[i]:=Tedit.create(application);//创建TButton
edit[i].Visible:=true;
edit[i].Width:=100;
edit[i].Height:=50;
edit[i].Top:=100;
edit[i].Left:=100*i+50;
edit[i].Text:=IntToStr(i);
end;end;
edit[i].parent:=form1;
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.
你觉得这行有问题吗?我觉得应该是:edit[i]:=Tedit.create(FORM1):
for i:=0 to iMakeEditCount do
begin
MakeEdit[i]:=TEdit.Create(Form1);
.......
MakeEdit[i].Tag = Inttostr(i); // 等于VB的Index.
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) and ((Sender as TEdit).tag = 2) then // 第3个Edit上按回车时
if iEditNum < iMakeEditCount then
MakeEdit[iEditNum+1].SetFocus;
end;
end.