一个程序如何进行所有检查?

One procedure for all checks how?

在我的表单中,有 30 个或更多 TCheckbox,前面有 TNumberBox。每个 TCheckbox 和 TNumberBox 都连接在一起,例如 CheckBox1 名称是 C1,NumberBox 是 C1E,Checkbox2 是 C2,NumberBox2 是 C2E 等等。 如果选中 C1,则将启用 C1E。我不想为每个 Tcheckbox 使用不同的 onclick 事件。我只想对所有 TCheckbox onclick 事件使用一个过程。 我怎样才能做到这一点 ?

您可以为每个复选框分配以下 OnClick 处理程序(或类似的东西):

procedure TYourFormName.CheckBoxClick(Sender: TObject);
var
  Assoc: TControl;
  ChkName: string;
begin
  ChkName := TCheckBox(Sender).Name;                // e.g. 'C1', 'C2', ...
  Assoc := TControl(FindComponent(ChkName + 'E'));  // e.g. 'C1E', 'C2E', ...
  if Assigned(Assoc) then
    Assoc.Enabled := TCheckBox(Sender).Checked;
end;

如果您在设计时创建了这些复选框和数字框,则可以使用实时绑定。打开 LiveBindings Designer 并找到您的组件。将可见的 属性 添加到您的号码框(单击成员底部的三点)。然后将复选框的 IsChecked 属性 与数字框的 Visible 属性 连接起来(单击并拖动)。