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ティック イベントでこのコードを使用します。このコードでは、コンボ ボックスに少なくとも 1 つの項目が必要です。

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

Itemindex = Count - 1 になるまで Itemindex をインクリメントしてから、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 に答える