如何创建组合框项目

问题描述 投票:0回答:2

我想使用组合框为用户提供多种选项。所以有2个组合框。第一个大约有 5 个选项,第二个项目将根据用户在第一个组合框中选择的内容创建。

到目前为止,我已经尝试过:

Combobox2.Items.Strings[1]:='xxxx'
,这给我带来了这个错误:

List out of Bound.

我该怎么办?

delphi combobox
2个回答
5
投票

要在运行时填充

TComboBox
,您可以这样做[1]:

ComboBox1.Items.BeginUpdate;
try
  ComboBox1.Items.Clear;
  ComboBox1.Items.Add('Alpha');
  ComboBox1.Items.Add('Beta');
  ComboBox1.Items.Add('Gamma');
  ComboBox1.Items.Add('Delta');
finally
  ComboBox1.Items.EndUpdate;
end;

您还可以为其分配预制的

TStringList

ComboBox1.Items.Assign(MyStringList);

[1]:

try..finally
部分很重要,因为如果没有它,如果在
BeginUpdate
EndUpdate
之间引发异常且未处理,组合框将保持(“卡住”)在其“更新”状态,因此将从那时起出现故障。

当然,在这个简单的例子中,异常的风险很小,但在其他情况下可能会很大。并且代码可能会更改:您将来可能会添加

ComboBox1.Items.Add(MightRaise())
if MightRaise() then ComboBox1.Items.Add('Epsilon')

无论如何,您希望代码能够在 100% 的所有情况下运行,而不是 99.9%。此外,上述模式很容易识别,至少对我来说有助于理解代码。如果您始终使用相同的模式,代码会变得更容易在心理上解析。


-2
投票

选择 ComboCox1 事件

procedure TForm1.ComboBox1Select(Sender: TObject);

begin

ComboBox2.Text  :=  ComboBox1.Text;

end;
© www.soinside.com 2019 - 2024. All rights reserved.