こんにちは。
DELPHI2010を使っています。
ListViewである条件下の行を削除したいのですが、
削除によって行数が減る事を考慮する方法が思いつきません。
行数が減っているので後半でエラーが出てしまいます。
どうすれば行数の減りを考慮できるか・・・
ぜひアドバイスをお願いいたします。
for i := 0 to ListView1.Items.Count - 1 do
begin
str1 := Copy(ListView1.Items[i] , 0, 3);
if str1 = '[済]' then
begin
ListView1.Items.Delete(i);
//i:= i -1; //←この方法は許してくれない
end;
end;
例:ListViewの内容が下記の場合に後半でエラー発生
[済]あああ
[済]いいい
[済]ううう
[未]えええ
[未]おおお
後ろから削除するようにすれば大丈夫なんじゃないでしょうか。
for i := ListView1.Items.Count - 1 downto 0 do
begin
str1 := Copy(ListView1.Items[i] , 0, 3);
if str1 = '[済]' then
begin
ListView1.Items.Delete(i);
end;
end;
おおおっ><
発想の転換。
ありがとうございました!!
ツイート | ![]() |