- 你的循環變量是
x
,但是你用i
循環體內部。
- 您迭代錯誤的索引。德爾福的指數按慣例爲零。你的循環應該從
0
運行到Count-1
。
的其他一些觀點:
x
不是整數索引一個偉大的變量名。使用i
或index
。
Item
TListItems
的屬性是默認屬性,因此可以通過省略該屬性來簡化代碼。
我會寫代碼應該像這樣:
var
i: Integer;
PName, Variable, Val: string;
....
for i := 0 to ListView1.Items.Count-1 do
begin
PName := ListView1.Items[i].Caption;
Variable := ListView1.Items[i].SubItems[0];
Val := ListView1.Items[i].SubItems[1];
ToFIle(PName, Variable, Val);
end;
或利用到每個項的引用,從而避免重複:
var
i: Integer;
Item: TListItem;
PName, Variable, Val: string;
...
for i := 0 to ListView1.Items.Count-1 do
begin
Item := ListView1.Items[i];
PName := Item.Caption;
Variable := Item.SubItems[0];
Val := Item.SubItems[1];
ToFIle(PName, Variable, Val);
end;
,或者通過使用for/in
環和不需要關心列表項目的索引:
var
Item: TListItem;
PName, Variable, Val: string;
...
for Item in ListView1.Items do
begin
PName := Item.Caption;
Variable := Item.SubItems[0];
Val := Item.SubItems[1];
ToFIle(PName, Variable, Val);
end;
'for x ...'和'... Item [i] .....您可能還想使用索引'0'到'count -1' –