안녕하세요?
리스트뷰에서 체크된 데이터를 하나씩 지우려고 하는데요
for문을 돌리려고 하니 인덱스값이 잘못되어서 계속 에러가 납니다..
데이터가 지워지면 인덱스값이 바껴서여
다음과 같이 하긴했는데 이렇게는 안될거 같고 뭔가 다른방법이 없을까여?
//체크된 내용 지우기
for i:= 0 to ListView.Items.Count-1 do //
begin
if ListView.Items.Item[i].Checked = True then
begin
ListView.Items.Item[i].Delete;
end;
end;
TListView에서 체크박스에 체크된것들만 지우고 싶거든요
당연히 갯수는 한개이상이구여
예전에 트리뷰나 리스트,콤보등에도 비슷한 질문이였는데요.
마찬가지로 아이템 하나 지울때마다 인덱스는 확 바뀝니다, (최초 카운트보다 모자라게 되어 인덱스에러발생).그래서 꺼꾸로 하면됩니다. downto로 해보세요
for i:= ListView.Items.Count-1 downto 0 do