查找控件标题并更改其状态

Bia*_*nca -1 delphi controls disabled-control

我有启用/禁用控件的窗体,表示窗体处于忙或空闲状态.我需要启用一个控件(一个按钮,但可能是其他),当它被禁用以中止某个进程时.我将按钮标题更改为"ABORT".

我点击按钮A,我将按钮A的标题改为'ABORT'.所有其他控件将被禁用,但我想要一个标题为"ABORT"的按钮仍然启用.

procedure F1.FormBusy (sender);
var
  a: Integer;
begin
  for a := 0 to TabSheet1.ControlCount - 1 do
  begin
    TabSheet1.Controls[a].Enabled := False;
    (* if TabSheet1.Controls[a] caption := 'ABORT' then
      TabSheet1.Controls[a].Enabled := True
      < how to do this ? *)
  end;
end;
Run Code Online (Sandbox Code Playgroud)

用法示例:

procedure F1.LB1Click(sender: TObject);
begin
  FormBusy(sender);
  try
    // do something
  finally
    FormIdle(sender);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

小智 5

而不是试图通过其Caption属性找到按钮,为什么不直接从数组访问它?

for a := 0 to TabSheet1.ControlCount - 1 do
begin
  TabSheet1.Controls[a].Enabled := TabSheet1.Controls[a] = Button1;
end;
Run Code Online (Sandbox Code Playgroud)

除了将启用的Button1之外,每个TControl都将被禁用.