2

我想知道是否有一种方法可以自动递增或滚动组合框。

例如,每 30 秒我希望它连续选择组合框中的下一个选项,直到它到达最后一个值,然后它必须返回索引 0 并从那里继续。

这样做的原因是我的组合框中的每个值都包含一个从数据库调用数据以显示的值,因为这些屏幕将是无人值守的,我希望在没有用户输入的情况下自动更改。

我添加了一个计时器和以下代码,并按照以下建议设置间隔(30000)

procedure TForm3.Timer1Timer(Sender: TObject);
begin
if ComboBox1.Index < comboBox1.Index.MaxValue then
ComboBox1.Index := +1
else
ComboBox1.Index := 0;
end;

提前致谢。

4

2 回答 2

7

Interval属性设置为 30000 毫秒的计时器开始,我将在其OnTimer滴答事件中使用此代码。对于此代码,您必须在组合框中至少有一项:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  ComboBox1.ItemIndex := (ComboBox1.ItemIndex + 1) mod ComboBox1.Items.Count;
end;
于 2013-06-11T09:00:05.183 回答
2

递增 Itemindex 直到 Itemindex = Count - 1,然后将 Itemindex 设置为 0。

Procedure IncLoopCombobox(CB: TComboBox);
begin
  if CB.ItemIndex < CB.Items.Count - 1 then
    CB.ItemIndex := CB.ItemIndex + 1
  else
    CB.ItemIndex := 0;
end;
于 2013-06-11T09:00:09.910 回答