我想使用2个TEdit项目和一个按钮。我如何检查所有的编辑是否有一些文本值。之后,我想激活一个按钮。在编辑框中输入文字时需要启用按钮
主要形式Onshow事件: Btn1.Enabled:= false;
如果Edit1.text + Edit2.text有值,那么btn1.enabled:= true?
感谢您的帮助!
我想使用2个TEdit项目和一个按钮。我如何检查所有的编辑是否有一些文本值。之后,我想激活一个按钮。在编辑框中输入文字时需要启用按钮
主要形式Onshow事件: Btn1.Enabled:= false;
如果Edit1.text + Edit2.text有值,那么btn1.enabled:= true?
感谢您的帮助!
你是using actions?如果不是,你应该考虑它。
Add a TActionList
to your application如果你还没有一个。接下来,为其添加TAction
。设置动作的属性,使其类似于按钮。 (即,设置标题,并将按钮的OnClick
事件处理程序移动到操作的处理程序OnExecute
)。分配按钮的Action
属性以引用新的操作对象。
最后,处理动作的OnUpdate
事件。其中,根据需要启用或禁用该操作。该按钮(以及后来选择与同一动作关联的任何其他控件)将为updated accordingly。
procedure TSteveForm.ButtonActionUpdate(Sender: TObject);
begin
TAction(Sender).Enabled := (Edit1.Text <> '') and (Edit2.Text <> '');
end;
这看起来非常相似,处理编辑控件的OnChange
事件,但是当场景改变其差异变得明显,
OnChange
事件,则需要将程序和分配给每个新控件的OnChange
属性。OnChange
事件,可让您知道什么时候发生了变化。操作'OnUpdate
事件可以让您不必确切知道更新何时适用。他们在程序闲置和按需时运行。使用Edit1.OnChange
事件,并将其设置为也处理Edit2.OnChange
。事件处理程序代码很简单:
procedure TForm1.Edit1Change(Sender: TObject);
begin
Btn1.Enabled := (Edit1.Text <> '') and (Edit2.Text <> '');
end;
非常感谢你们! – Steve88 2015-02-06 14:33:37
我个人很快会看到用于此的操作。它使代码更具说明性。 – 2015-02-06 16:58:13
在我能够回到编辑我的地方之前,打我一个答案。 Upvoted。 – 2015-02-06 17:11:45