Q&A

  • [질문] listbox 와 for문
listbox 의 아이템 전체를 비교하여 특정 값을 찾아서 지우는 for 문을 만들었는데
out of bound 에러가 발생합니다..

for i := 0 to listbox1.items.count - 1 do
begin
         if listbox1.items[i] = 'AAA' then
             listbox1.items.delete(i);
end;

listbox1.items.count 는 아이템을 지울때 마다 값이 바뀌는데
for 문의 최대값은 안 바뀌는 것 같습니다..

out of boud 에러가 나지 않게 하려면 어떻게 바궈야 하나요?
1  COMMENTS
  • Profile
    최용일 2010.11.13 13:02
    삭제하면 삭제한 다음부터의 아이템이 앞으로 한칸씩 밀리게 됩니다.
    Listbox의 Count가 달라지죠... 하나만 삭제해도 for문이 마지막으로 돌면 out of bound에러가 날 수밖에 없습니다.

    for문을 거꾸로 도세요.

    for i := 0 to listbox1.items.count - 1 do
    ==>
    for i := listbox1.items.count - 1 downto 0 do