好吧,我有计算“k”数字的代码。“k”是来自 TEdit 框的输入。为此,我决定使用 while 循环。每次计算时,我都会递减“k”,因此当“k”等于 0 时循环停止。我将每个数字存储在“num”整数变量中,因此它是一种临时的 - 每个循环路径都会覆盖“num”。线索是我想在 TListView 中列出“num”,但我不知道该怎么做。我是初学者。任何博客、文章、YouTube 视频都可能会有所帮助。我什至不知道如何向谷歌询问哈哈。请帮我。最后,我想要一个包含“num”个数字的“k”个条目的列表。希望你能理解。
问问题
81 次
1 回答
2
处理此问题的最简单方法是执行以下操作:
procedure TMyForm.FillListView;
var
i, k, num: Integer;
item: TListItem;
begin
ListView1.Items.BeginUpdate;
try
ListView1.Items.Clear;
k := StrToInt(Edit.Text);
for i := 0 to k-1 do
begin
num := ...;
item := ListView1.Items.Add;
item.Caption := IntToStr(num);
// set other properties as needed ...
end;
finally
ListView1.Items.EndUpdate;
end;
end;
TListView
话虽如此,在虚拟模式下使用会更好地处理这种情况(将其OwnerData
属性设置为 true)。您从起始值知道k
需要添加多少列表项,因此只需设置TListView.Items.Count
为该数字,然后TListView.OnData
您可以根据需要Caption
设置提供的(和其他属性)TListItem
。
var
Nums: array of Integer;
procedure TMyForm.FillListView;
var
i, k, num: Integer;
begin
k := StrToInt(Edit.Text);
if k < 0 then k := 0;
SetLength(Nums, k);
for i := 0 to k-1 do
begin
num := ...;
Nums[i] := num;
end;
ListView1.Items.Count := k;
ListView1.Invalidate;
end;
procedure TMyForm.ListView1Data(Sender: TObject; Item: TListItem);
begin
Item.Caption := IntToStr(Nums[Item.Index]);
// set other properties as needed ...
end;
于 2021-01-06T23:14:35.627 回答