* 사용환경 : 델파이5
* 에러 메시지 : List Index out of bounds(1) (내용 두개로 테스트시에 에러)
두개의 리스트 박스가 있습다.
왼쪽리스트 박스의 내용을 선택하고 버튼을 클릭하면 오른쪽 리스트박스로 내용을
이동시키려 합니다.
삽입은 문제가 없는데 지울때 에러가 발생하는거 같은데 어찌 해결을 해야할지
모르겠슴다. 도와주세요... 초보의 비애임다.
참고로 코딩내용임다.
procedure TformFrCardTran.btnRightMoveClick(Sender: TObject);
var
i : integer;
begin
for i:=0 to lbCard.Items.Count - 1 do begin
if lbCard.Selected[i] = True then begin
lbSelectCard.Items.Add(lbCard.Items[i]);
end;
end;
for i:=0 to lbCard.Items.Count - 1 do begin
if lbCard.Selected[i] = True then begin
lbCard.Items.Delete(i);
end;
end;
end;
질문이 고민보다 빠른 해결방법이네요.. -초보의 한마디-
Items 의 인덱스 값들이 변하게 됩니다.
자세한 설명보단 해결 방법을 먼저 알려드리지요.
지우는 부분만 설명하겠습니다
for i := lbCard.Items.Count - 1 downto 0 do
if lbCard.Selected[i] = True then
lbCard.Items.Delete(i);
델초 wrote:
> * 사용환경 : 델파이5
> * 에러 메시지 : List Index out of bounds(1) (내용 두개로 테스트시에 에러)
>
> 두개의 리스트 박스가 있습다.
> 왼쪽리스트 박스의 내용을 선택하고 버튼을 클릭하면 오른쪽 리스트박스로 내용을
> 이동시키려 합니다.
>
> 삽입은 문제가 없는데 지울때 에러가 발생하는거 같은데 어찌 해결을 해야할지
> 모르겠슴다. 도와주세요... 초보의 비애임다.
>
> 참고로 코딩내용임다.
> procedure TformFrCardTran.btnRightMoveClick(Sender: TObject);
> var
> i : integer;
> begin
> for i:=0 to lbCard.Items.Count - 1 do begin
> if lbCard.Selected[i] = True then begin
> lbSelectCard.Items.Add(lbCard.Items[i]);
> end;
> end;
> for i:=0 to lbCard.Items.Count - 1 do begin
> if lbCard.Selected[i] = True then begin
> lbCard.Items.Delete(i);
> end;
> end;
> end;