Q&A

  • 리스트뷰에서 데이터를 지울때 인덱스처리
안녕하세요?
리스트뷰에서 체크된 데이터를 하나씩 지우려고 하는데요
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에서 체크박스에 체크된것들만 지우고 싶거든요
당연히 갯수는 한개이상이구여
1  COMMENTS
  • Profile
    홍성락 2002.09.02 22:48
    hsr///////////////////////////////////////////////////
    예전에 트리뷰나 리스트,콤보등에도 비슷한 질문이였는데요.
    마찬가지로 아이템 하나 지울때마다 인덱스는 확 바뀝니다, (최초 카운트보다 모자라게 되어 인덱스에러발생).그래서 꺼꾸로 하면됩니다. downto로 해보세요

    for i:= ListView.Items.Count-1 downto 0 do