如何使用下拉列表的不同选项自动填充编辑字段?

Posted

技术标签:

【中文标题】如何使用下拉列表的不同选项自动填充编辑字段?【英文标题】:How can I auto-fill Edit fields by using different options of a drop-down list? 【发布时间】:2014-06-17 13:34:21 【问题描述】:

我在 Delphi 中使用 VCL 表单,我在其中放置了大约 10 个编辑框。 这些编辑框包含与特定型号的太阳能电池板相关的值。 需要这些值来计算太阳能电池板的输出功率。 到目前为止,我可以在每次运行时使用以下命令输入这些值:

c0:= StrToFloat(Edit1.Text);

对于 c0 到 c10。但是,不是要求用户在每次运行中手动输入这 10 个值,有什么方法可以让用户从下拉列表中选择一个选项(即太阳能电池板的模型),然后自动为它们填充这些值?

组合框会做这样的事情吗?如果是,具体是怎么做的?对不起,我是一个非常新的德尔福用户。非常感谢任何帮助。

【问题讨论】:

可以使用TComboBox.OnSelect事件来改变10个edit.Text属性。 【参考方案1】:
    将组合框Style 设置为csDropDownList。 使用适当的值填充组合框Items 以供用户选择。 添加OnSelect 事件处理程序。每当用户在组合框中选择一个新项目时,都会触发此事件。 根据ItemIndex 的值,通过使用适当的值填充编辑控件来实现OnSelect 事件处理程序。

您需要稍微考虑一下用户界面。如果用户更改组合框选择,则编辑控件值会更改。但是用户可以修改编辑控件吗?现在编辑控件中的值不再匹配组合框。那是你要的吗?我想 UI 需要多一点润色。

【讨论】:

@David:我在 TForm2.FormCreate 选项下创建了该框及其选项。我使用“if”语句将编辑值添加为:如果 ComboBox1.ItemIndex=0 然后 Edit1.Text:=FloatToStr(some double)。它有效,但每次我从组合框中选择一个选项时,它都会重新创建相同的选项并且组合框变得更大...... OnSelect 在 FormCreate 上。我做错了什么? :( 您需要在表单加载时填充组合框并设置其属性一次。 FormCreate 很好。不要在 OnSelect 处理程序中添加更多项目,因为它会反复触发。每当用户选择一个新项目时,该处理程序就会触发。您想在 OnSelect 处理程序中响应用户选择。 谢谢,我必须创建一个 Combobox1Select 事件并将我的 if 语句放在那里。此外,对于 UI,我不希望用户干扰这些值,因此我将编辑框设为只读。

以上是关于如何使用下拉列表的不同选项自动填充编辑字段?的主要内容,如果未能解决你的问题,请参考以下文章

从一个下拉列表中选择一个选项会填充其他输入字段

当我单击编辑按钮时,如何使用 Ajax 编辑下拉列表或选择选项列表?

如何根据实体框架中的下拉列表选择项填充表单字段以进行更新?

Android 按钮自动填充搜索字段

如何使用 Hibernate 和 JPA 处理填充下拉列表?

如何使用另一个 MySQL 表中的现有数据填充预先选择的下拉字段?