질문이 이상한데요.
TListview에서 viewstyle을 vsreport로 설정 했습니다.
특정 파일을 찾아서 listview에 집어 넣는 부분입니다.
첫번째 column에는 파일 이름, 두번째 col에는 경로, 파일 사이즈 이런식으로 집어 넣습니다.
아래처럼 for문 돌려서 계속 리스트에 집어 넣습니다.
lvAllList.Items.Add;
lvAllList.Items[ItemCount].Caption := SearchRec.Name;
lvAllList.Items[ItemCount].SubItems.Add(Dir + SearchRec.Name);
FileDate := FileDateToDateTime(SearchRec.Time);
lvAllList.Items[ItemCount].SubItems.Add(DateTimeToStr(FileDate));
그런데 실행을 시키고 나니깐 2가지 문제가 생겼습니다.
첫번째는, 만약 1000개의 행이 출력 되야 한다면 리스트에는 천개의 행이 생기고 실제 데이터는
한 700개 정도(어떤 것을 리스트에 담느냐에 따라 다릅니다) 만 생기고 나머지는 빈 공백 라인으로
남겨 집니다.
두번째는, 제가 showmessage로 한 행 출력 될때 마다 확인을 해 보니
한줄씩 한줄씩 정상적으로 출력 되다가(filename filepath filesize ........식으로)
일정 라인이 넘어 가면 나머지 열은 그대로 있고 filename란만 덮어 씌어 집니다.
즉,
1 11 111 1111
2 22 222 2222
3 33 333 3333
.
.
.
이렇게 가다가, 일정 라인이 넘어 가면
199 11 111 1111
200 22 222 2222
식으로 맨 앞 열만 덮어 씌워집니다.
방법을 모르겠습니다.
그냥 grid를 써야 할지...
고수님들 도움 주시면 정말 감사 하겠습니다.
루프를 도는 과정중 ItemCount가 증가하지 않을 수 있는지 체크하시는 게 좋겠습니다.
그리고 보통은...
var
Item : TListItem;
Item := lvAllList.Items.Add;
Item.Caption := SearchRec.Name;
Item.SubItems.Add(Dir + SearchRec.Name);
요런식으로들 많이 짜는 것 같습니다.