在编辑框中输入文本时需要启用按钮

Ste*_*e88 0 delphi delphi-7

我想使用2个TEdit项目和一个按钮.如何检查所有编辑是否具有某些文本值.之后我想激活一个按钮.

主要形式Onshow事件:Btn1.Enabled:= false;

如果Edit1.text + Edit2.text有值,那么btn1.enabled:= true?

谢谢您的帮助!

Rob*_*edy 8

你在用动作吗?如果没有,你应该考虑它.

TActionList如果您还没有应用程序,请添加到您的应用程序.接下来,添加一个TAction.设置操作的属性,使其类似于按钮.(即,设置标题,并将按钮的OnClick事件处理程序移动到操作的OnExecute处理程序.)分配按钮的Action属性以引用新的操作对象.

最后,处理动作的OnUpdate事件.在其中,根据需要启用或禁用操作.按钮(以及您稍后选择与同一操作关联的任何其他控件)将相应更新.

procedure TSteveForm.ButtonActionUpdate(Sender: TObject);
begin
  TAction(Sender).Enabled := (Edit1.Text <> '') and (Edit2.Text <> '');
end;
Run Code Online (Sandbox Code Playgroud)

这与处理OnChange编辑控件的事件非常相似,但在场景更改时它的差异会变得明显:

  1. 如果添加或删除编辑控件,则只需更改此过程以确保正确启用该按钮.如果您正在处理OnChange事件,则需要更改过程并将其分配给每个新控件的OnChange属性.
  2. 并非所有控件都有一个方便的OnChange事件,可以让您知道什么时候发生了变化.Actions的OnUpdate事件使您无需确切知道何时更新.它们在程序闲置和按需时运行.