如何在循环中定期更改 TLabel 标题?
how to change TLabel caption with regular intervals in a loop?
我想让 TLabel 标题在循环中以固定间隔显示 TListbox 的项目。
在 Listbox1: TListbox
我有这些项目:
Item1
Item2
Item3
Item4
我有一个 Label1: TLabel
,我想依次显示 Listbox1
的每一项,持续 4 秒。显示最后一项后,应该return显示第一项。
我不知道该怎么做,但我尝试使用此代码..但它不起作用
var
i:integer
begin
for i:=0 to Listbox1.Items.count do
Label1.Caption := Listbox1.items[i];
有什么办法吗?
您需要一个地方来存储所显示项目的索引,直到需要更改为下一个项目。因此,在表单的 private
部分创建一个 integer
类型的字段并将其命名为 IndexCounter
您还需要设置标签更改频率的设置。在表格上放一个 TTimer
。将其 Interval
属性 设置为 4000(以毫秒为单位)。
选择添加的计时器后,切换对象检查器以显示事件,然后双击 OnTimer
的输入字段。已为您创建活动程序:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
end;
填写代码使IndexCounter
递增并使用整数除法取余函数(mod
)得到0..ListBox1.Count-1.[=22范围内的值=]
IndexCounter := (IndexCounter + 1) mod ListBox1.count;
添加代码以显示索引为 IndexCounter
的列表框项目。
Label1.Caption := ListBox1.Items[IndexCounter];
我想让 TLabel 标题在循环中以固定间隔显示 TListbox 的项目。
在 Listbox1: TListbox
我有这些项目:
Item1
Item2
Item3
Item4
我有一个 Label1: TLabel
,我想依次显示 Listbox1
的每一项,持续 4 秒。显示最后一项后,应该return显示第一项。
我不知道该怎么做,但我尝试使用此代码..但它不起作用
var
i:integer
begin
for i:=0 to Listbox1.Items.count do
Label1.Caption := Listbox1.items[i];
有什么办法吗?
您需要一个地方来存储所显示项目的索引,直到需要更改为下一个项目。因此,在表单的 private
部分创建一个 integer
类型的字段并将其命名为 IndexCounter
您还需要设置标签更改频率的设置。在表格上放一个 TTimer
。将其 Interval
属性 设置为 4000(以毫秒为单位)。
选择添加的计时器后,切换对象检查器以显示事件,然后双击 OnTimer
的输入字段。已为您创建活动程序:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
end;
填写代码使IndexCounter
递增并使用整数除法取余函数(mod
)得到0..ListBox1.Count-1.[=22范围内的值=]
IndexCounter := (IndexCounter + 1) mod ListBox1.count;
添加代码以显示索引为 IndexCounter
的列表框项目。
Label1.Caption := ListBox1.Items[IndexCounter];