for i:=0 to MainForm.FavoritesStringGrid.RowCount do
begin
if FavoritesTreeView_OldSelectIndex = MainForm.FavoritesStringGrid.cells[1,i+1] then
begin
FavoritesGridDeleteRow( i+1 , FavoritesStringGrid , MainForm.FavoritesTable );
MainForm.FavoritesTreeView.selected.delete;
//dec(i); <-------에러남;
end;
--------------------------------------------------------------------------------------
소스는 위와같습니다.
그런데 for 루프문에서 i가 1씩 증가하기때문에 예를들어서
스트링그리드 에서 지울 데이터가있는 열번호가 3,5,6,8 이라고하면
6번은 지워지지를 않습니다.
for 루프문에서 데이터를 지워도 i는 1씩증가하기 때문인데...
어
물론 참고사항이니다.
c := 0;
while c < listview1.items.count do
if listview1.items[c].checked then
listview1.items[c].deleted
else
inc(c);
참고가 될까 머르겠네요..
즐프하세요~
김정섭 wrote:
> for i:=0 to MainForm.FavoritesStringGrid.RowCount do
> begin
> if FavoritesTreeView_OldSelectIndex = MainForm.FavoritesStringGrid.cells[1,i+1] then
> begin
> FavoritesGridDeleteRow( i+1 , FavoritesStringGrid , MainForm.FavoritesTable );
> MainForm.FavoritesTreeView.selected.delete;
> //dec(i); <-------에러남;
> end;
> --------------------------------------------------------------------------------------
> 소스는 위와같습니다.
> 그런데 for 루프문에서 i가 1씩 증가하기때문에 예를들어서
> 스트링그리드 에서 지울 데이터가있는 열번호가 3,5,6,8 이라고하면
> 6번은 지워지지를 않습니다.
> for 루프문에서 데이터를 지워도 i는 1씩증가하기 때문인데...
>
> 어