C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[69986] ListView에서의 XML항목 삭제시 index 에러
리스트뷰 [] 2437 읽음    2013-08-13 17:02
ListView에는 xml에서 불러온 값들이 저장되어 있구요.

버튼 클릭시 선택된 칼럼을 삭제하고 xml에서도 삭제하는 중에 에러가 발생합니다.

리스트뷰는 report 형태이며, 데이터가 아래처럼 채워져 있다면
index0 ㅁㅁㅁㅁ 
index1 ㅂㅂㅂㅂ
index2 ㄱㄱㄱㄱ
index3 ㄴㄴㄴㄴ

index 0,1,2는 지우는데 아무 문제가 없습니다. 그런데
index3을 지우게 되면 ListView11->Items->Clear(); 부분에서 EListError가 나면서 'List index out of bounds(3)'가 뜹니다.

삭제가 아예 안된다면 모르겠지만 맨 아래 항목을 지울때만 인덱스를 벗어나니 답답합니다.ㅠㅠ


아래는 리스트뷰 항목 삭제시 코드 입니다.


버튼클릭시 이벤트 (삭제)
_di_IXMLcomnoticeType ComNotice = Getcomnotice(XMLDocument3); //공지사항 xml load

        ComNotice->Delete(ListView11->ItemIndex); //리스트뷰에서 선택된 Index에 해당하는 xml 삭제

        XMLDocument3->SaveToFile(XMLDocument3->FileName); //xml 저장

        ListView11->Items->Clear(); //리스트뷰 클리어 <<여기서 에러가 발생합니다.

        for(int i=0; i<ComNotice->Count; i++) //리스트뷰 갱신
        {
                ListView11->Items->Add();
                ListView11->Items->Item[i]->Caption = ComNotice->clist[i]->cnum + 1;
                ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->ctitle);
                ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->cwriter);
                ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->ccheck);
                ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->cwdate);
                ListView11->Items->Item[i]->SubItems->Add(ComNotice->clist[i]->cwhms);
        }

+ -

관련 글 리스트
69986 ListView에서의 XML항목 삭제시 index 에러 리스트뷰 2437 2013/08/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.