- あなたのループ変数が
x
ですが、ループ本体内i
を使用:に変更してください。
- 間違ったインデックスを反復処理します。 Delphiのインデックスは、慣習的にゼロベースです。ループは
0
からCount-1
まで実行する必要があります。
他のいくつかのポイント:
x
は、整数インデックスのための偉大な変数名ではありません。 i
またはindex
を使用してください。
- のプロパティ
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'にすることもできます –