5,386
社区成员
发帖
与我相关
我的任务
分享
procedure TForm1.MyEditClick(Sender: TObject);
var
i:integer;
begin
for i := 0 to Self.ControlCount - 1 do
begin
if Self.Controls[i] is TEdit then
TEdit(Self.Controls[i]).Text :='abc'+inttostr(i);
end;
end;
procedure TForm1.CreateEdit(ACount: Integer);
var
I: Integer;
AEdit: TEdit;
begin
SetLength(FEditArray, ACount); //设置动态数组大小
for I := 0 to ACount - 1 do
begin
AEdit := TEdit.Create(Self);
with AEdit do
begin
parent := self;
Left := 值;
top := 值;
end;
FEditArray[I] := AEdit;
end;
end;
//获取TEdit
function getEdit(Index: Integer): TEdit;
begin
Result := nil;
if (Index < Low(FEditArray)) or (Index > High(FEditArray)) then exit;
Result := FEditArray[Index];
end;
//获取TEdit
{
var
AEdit: TEdit;
begin
AEdit := getEdit(0); //获取第1个动态创建的TEdit;
//AEdit := getEdit(19); //获取第19个动态创建的TEdit;
end;
}
procedure TForm1.CreateEdit(ACount: Integer);
var
I: Integer;
AEdit: TEdit;
begin
for I := 0 to ACount - 1 do
begin
AEdit := TEdit.Create(Self);
with AEdit do
begin
parent := self;
Left := 值;
top := 值;
end;
FEditControls.Add(AEdit);
end;
end;
//获取TEdit
function getEdit(Index: Integer): TEdit;
begin
Result := nil;
if (Index < 0) or (Index >= FEditControls.Count) then exit;
Result := FEditControls.Items[Index] as TEdit;
end;
//获取TEdit
{
var
AEdit: TEdit;
begin
AEdit := getEdit(0); //获取第1个动态创建的TEdit;
//AEdit := getEdit(19); //获取第19个动态创建的TEdit;
end;
}
//动态创建TEdit;
procedure TForm1.CreateEdit(ACount: Integer);
var
I: Integer;
AEdit: TEdit;
begin
for I := 0 to ACount - 1 do
begin
AEdit := TEdit.Create(Self);
with AEdit do
begin
parent := self;
Left := 值;
top := 值;
end;
FEditControls.AddObject(IntToStr(I), AEdit);
end;
end;
//获取TEdit
function getEdit(Index: Integer): TEdit;
begin
Result := nil;
if (Index < 0) or (Index >= FEditControls.Count) then exit;
Result := FEditControls.Object[Index] as TEdit;
end;
//获取TEdit
{
var
AEdit: TEdit;
begin
AEdit := getEdit(0); //获取第1个动态创建的TEdit;
//AEdit := getEdit(19); //获取第19个动态创建的TEdit;
end;
}
//动态创建Count个TEdit
procedure TForm1.createEdit(Count: Integer);
var
I: Integer;
begin
for I := 0 to Count - 1 do
with TEdit.Create(self) do
begin
parent := self; //创建的TEdit显示在当前窗口上
//根据需要设置Left和top值
left := 位置值;
top := 位置值;
tag := 100 + I; //新创建TEdit的Tag值与自动创建的TEdit区别一下,Tag属性值从100开始
end;
end;
//根据ATag值获取动态生成的TEdit;
function TForm1.getEdit(ATag: Integer): TEdit;
var
I: Integer;
AEdit: TEdit;
begin
Result := nil;
for I := 0 to ControlCount - 1 do
if Controls[I] is TEdit then
begin
AEdit := Contols[I] as TEdit;
if AEdit.Tag = 100 + ATag then
begin
Result := AEdit;
Break;
end;
end;
end;
//获取TEdit
{
var
AEdit: TEdit;
begin
AEdit := getEdit(0); //获取第1个动态创建的TEdit;
//AEdit := getEdit(19); //获取第19个动态创建的TEdit;
end;
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure MyEditClick(Sender: TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
Var
MyEdit : Array of TEdit;
i,j,k: Integer;
begin
SetLength(MyEdit,12); '设置动态长度12
for i := 0 to 11 do
begin
MyEdit[i] := TEdit.Create(Self);
MyEdit[i].Width := 130;
MyEdit[i].Height:= 80;
MyEdit[i].Parent:=self;
MyEdit[i].Text:=inttostr(i); '赋值
MyEdit[i].OnClick := MyEditClick; '定义动态事件
j:=Trunc(i/2); //取整 行 设置为2列,要改5列对应3个2都改变为5
K:=i mod 2 ; //取余 列
if i<2 then
begin
MyEdit[i].Top:=10;
MyEdit[i].Left:=30+i*150;
end else
begin
MyEdit[i].Top:=10+30*j;
MyEdit[i].Left:=30+k*150;
end;
end;
end;
procedure TForm1.MyEditClick(Sender: TObject);
var
i:integer;
begin
for i := 0 to Self.ControlCount - 1 do
begin
if Self.Controls[i] is TEdit then
TEdit(Self.Controls[i]).Text :='abc'+inttostr(i);
end;
end;
end.
var
i:integer;
begin
for i := 0 to Self.ControlCount - 1 do
begin
if Self.Controls[i] is TEdit then
TEdit(Self.Controls[i]).Text := 'abc';
end;
end;