控件数组,控件动态感知

Bob7946 2001-08-30 09:24:55
大虾们,那位知道如何动态感知控件?举个例子:我在窗体上有很多EDIT,我想验证每个的输入有效性,只用一个过程,怎样动态判断呢?要用控件数组吗?望给详尽解释。定然给分,不够再加,小弟谢过了先!
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
王集鹄 2002-01-21
  • 打赏
  • 举报
回复
//制片大人看招
function IsInteger(mStr: string): Boolean;
var
I: Integer;
begin
Result := TryStrToInt(mStr, I);
end; { IsNumber }

function IsDate(mStr: string): Boolean;
var
Date: TDateTime;
begin
Result := TryStrToDate(mStr, Date);
end; { IsDate }

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
if Controls[I] is TEdit then
case TEdit(Controls[I]).Tag of
1: //数字
if not IsInteger(TEdit(Controls[I]).Text){ 不合法 } then begin
{ 提示用户 }
TEdit(Controls[I]).SetFocus;
ShowMessage('无效整数');
Break;
end;
2: //日期
if not IsDate(TEdit(Controls[I]).Text){ 不合法 } then begin
{ 提示用户 }
TEdit(Controls[I]).SetFocus;
ShowMessage('无效日期');
Break;
end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with TEdit.Create(Self) do begin
Parent := Self;
Left := 100;
Top := 10;
Tag := 1;
end;
with TEdit.Create(Self) do begin
Parent := Self;
Left := 100;
Top := 40;
Tag := 2;
end;
end;
王集鹄 2002-01-21
  • 打赏
  • 举报
回复
//制片大人看招
function IsNumber(mStr: string): Boolean;
var
I: Real;
E: Integer;
begin
Val(mStr, I, E);
Result := E = 0;
end; { IsNumber }

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
for I := 0 to ControlCount - 1 do
if Controls[I] is TEdit then
if not IsNumber(TEdit(Controls[I]).Text){ 不合法 } then begin
{ 提示用户 }
TEdit(Controls[I]).SetFocus;
Break;
end;
end;
长弓落日 2002-01-21
  • 打赏
  • 举报
回复
var myedit:array[0..10] of Tedit;
在myedit[i]建立时,指定不同的tag值,根据TAG值来判断。
Bob7946 2001-08-30
  • 打赏
  • 举报
回复
高手呢?

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧