我目前正在使用此代码。我需要获取ComboBox所选项的String值:
procedure TForm5.BitBtn5Click(Sender: TObject);
var c,k,t,g: string;
begin
//Get the name of the items
c := ComboBox1.Items[ComboBox1.ItemIndex];
k := ComboBox2.Items[ComboBox2.ItemIndex];
t := ComboBox3.Items[ComboBox3.ItemIndex];
g := ComboBox4.Items[ComboBox4.ItemIndex];
//Show it
ShowMessage(c);
end;
组合框中有项目,因为您可以看到here,因为我将它们填入Form5的onCreate
事件中。当我按下BitBtn5时,我有这样的错误:
我已经搜索了我的问题,我发现代码是一样的,但我有错误。你有什么主意吗? (我正在使用拉撒路1.2.4)
答案 0 :(得分:2)
您的ComboBox项目索引中至少有一个是-1。将它们设置为表单创建时的有效索引,例如:
ComboBox1.ItemIndex := 0;
答案 1 :(得分:1)
我使用Lazarus 1.4.2。问题是从ComboBox中选择项目时,属性 ItemIndex 不会更新。 为了强制这个索引得到更新我只是在ComboBox的 OnChange 事件中放置了一些虚拟代码(即访问ItemIndex)(见下文)。然后我可以从其他地方读取ItemIndex,并且值是正确的。
procedure TForm1.ComboBoxChange(Sender: TObject);
var
i: integer;
begin
i := ComboBox.ItemIndex;
end;
我刚刚遇到这个问题而且我在互联网上找不到合适的解决方案。我的帖子很晚,但我希望这会有所帮助。