如何使用下拉列表的不同选项自动填充编辑字段?
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 编辑下拉列表或选择选项列表?