如果选中复选框,如何将自动值插入编辑组件

Posted

技术标签:

【中文标题】如果选中复选框,如何将自动值插入编辑组件【英文标题】:How to insert automatic values to an edit component if a checkbox is checked 【发布时间】:2015-10-22 13:46:33 【问题描述】:

我在表单中有一个 edit1 和一些 checkbox1 到 checkbox6。我想在edit1组件中插入值,例如单击checkbox1时的一月,单击checkbox2时的二月......直到6月的checkbox6。如果未选中复选框,则 edit1 不应具有相应的值。例如,如果选中复选框 1、复选框 2 和复选框 3,我应该在 edit1 中具有像 January february March 这样的值。但是,如果我取消选中 checkbox2,edit1 中的值应该是一月和三月。如果未选中任何复选框,则 edit1 不应有任何值。我如何在 Delphi 7 中做到这一点?

【问题讨论】:

【参考方案1】:

将单个OnClick 事件处理程序分配给所有6 个TCheckBox 控件,并让它检查所有6 个TCheckBox 状态并相应地更新TEdit,例如:

procedure TMyForm.CheckBoxClick(Sender: TObject);
var
  S: String;

  procedure IncludeMonth(const MonthName: String);
  begin
    if S <> '' then
      S := S + ', ' + MonthName
    else
      S := MonthName;
  end;

begin
  if CheckBox1.Checked then IncludeMonth('January');
  if CheckBox2.Checked then IncludeMonth('February');
  if CheckBox3.Checked then IncludeMonth('March');
  if CheckBox4.Checked then IncludeMonth('April');
  if CheckBox5.Checked then IncludeMonth('May');
  if CheckBox6.Checked then IncludeMonth('June');
  Edit1.Text := S;
end;

或者:

procedure TMyForm.CheckBoxClick(Sender: TObject);
var
  Months: TStringList;
begin
  Months := TStringList.Create;
  try
    if CheckBox1.Checked then Months.Add('January');
    if CheckBox2.Checked then Months.Add('February');
    if CheckBox3.Checked then Months.Add('March');
    if CheckBox4.Checked then Months.Add('April');
    if CheckBox5.Checked then Months.Add('May');
    if CheckBox6.Checked then Months.Add('June');
    Edit1.Text := Months.CommaText;
  finally
    Months.Free;
  end;
end;

【讨论】:

感谢您的代码。我已经使用了两个源代码。但是,单击复选框不会在 edit1 中显示任何内容。有什么帮助吗? 您是否将过程分配给TCheckBox 控件的OnClick 事件? 我忘了看第一条指令。我已经这样做了,并且它可以按照我的意愿完美地工作。谢谢雷米。 我怀疑 OP 应该使用无线电组而不是 chckbox,因为编辑一次只能保存一个值。 OP 想要一次在编辑中显示多个项目的列表。 RadioGroup 不适合。

以上是关于如果选中复选框,如何将自动值插入编辑组件的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 将复选框值 1 如果选中,如果不是 0 传递给 PHP

如何知道是不是选中了表单中的多个复选框并将值插入数据库表c#

选中复选框时,数据表视图将值插入到字段中

如果可以使用复选框更改多行值?

.NET Core Blazor:如果选中,如何获取复选框值?

React Material Multi Select 默认值未选中