[英]TEdit property variable delphi
我在Delphi中有一个包含几个TEdit框的表单。 我想要一种方法来检查验证所有的盒子类型,目前我必须为每个TEdit分配一个布尔变量。 例如
Var
TEdit1Valid:boolean;
TEdit2Valid:boolean;
对于表单上的每个TEdit等等。
对于第一种方法,它必须看起来像这样:
If TEdit1Valid then
ShowMessage('Your', Edit1.Name, 'is invalid');
每个TEdit框等。
这会创建许多变量,我只是想知道是否有更好的方法来实现它。 我有一个想法是将一个名为Valid的属性分配给TEdit,但我不知道如何做到这一点。 通过这种方法,我可以为每个TEdit编写一个TEdits数组并执行以下操作
for I := 1 to High(EditList) do
begin
if EditList[I].Valid = false then
ShowMessage('Your ', EditList[I].Name, 'is invalid');
end
这只是我刚刚编写的粗略代码的一个示例,可以与我可以像这样迭代地执行的其他事情一起使用。 因此,有人可以建议这样做的一种好方法还是向我展示如何执行上述方法。
如何在TEdit控件上使用OnExit事件处理程序? 例如:
procedure TForm1.Edit1Exit(Sender: TObject);
begin
with Sender as TEdit do
begin
if not IsValidEdit(Text) then
ShowMessage('Your ' + Name + ' is invalid');
end;
end;
然后将相同的OnExit事件应用于所有TEdit控件。 我上面使用的示例“ IsValidEdit”函数可以验证您的TEdit的Text值,或者您可以将验证代码放入OnExit事件中(但我认为使用特定函数可以更“干净”)验证)。
function IsValidEdit(const AValue: string): boolean;
begin
if Length(AValue) < 5 then // not valid if length less than 5
Result := False
else
Result := True;
end;
您可以使用Tag属性。 它是整数而不是布尔值。 根据Embarcadero的帮助 -
标签没有预定义。 提供Tag属性是为了方便开发人员。 它可以用于存储其他整数值,也可以将其类型转换为任何32位值,例如组件引用或指针。
OnExit适用于单个字段验证,并且在您不希望用户将字段留空或具有不正确的值时非常有用。 虽然它有效,但不建议进行整体表单验证。
对于表单验证,最好创建一个在OnClose处理程序中调用的方法(例如,Validate),如果它失败,则显示一条消息,将光标放在相关字段上,然后设置Action:= caNone,这将阻止表单关闭。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.