Q&A

  • 리스트박스의...아이템들 중에서 중간의 아이템을 삭제하는 방법좀..
리스트박스의 여러 아이템들 중에서 임으로 중간의 것을 삭제 하려는데..

자꾸 에러가 뜨네요...

도움을...주세요

2  COMMENTS
  • Profile
    최용일 2000.03.29 20:23
    리스트 박스에서 N번째 아이템을 삭제할때...



    if (N >= 0) and (N < ListBox1.Items.Count) then

    ListBox1.Items.Delete(N);



    이상학 wrote:

    > 리스트박스의 여러 아이템들 중에서 임으로 중간의 것을 삭제 하려는데..

    > 자꾸 에러가 뜨네요...

    > 도움을...주세요

  • Profile
    강민우 2000.03.29 19:42
    이상학 wrote:

    > 리스트박스의 여러 아이템들 중에서 임으로 중간의 것을 삭제 하려는데..

    > 자꾸 에러가 뜨네요...

    > 도움을...주세요



    방법은 선택된 리스트를 먼저 리스트의 맨 밑으로 보내고 삭제를 하면 됩니다.

    대충소스는...



    먼저 폼이 보일때 아이템을 추가 시키고..

    procedure TForm1.FormShow(Sender: TObject);

    begin

    listbox1.Items.add('a');

    listbox1.Items.add('b');

    listbox1.Items.add('c');

    end;



    삭제할 아이템을 선택을 한후..

    삭제 버튼을 누르면...



    procedure TForm1.Button1Click(Sender: TObject);

    var

    i,j:integer;

    begin

    for i :=0 to (listbox1.Items.Count -1) do

    begin

    만약 체크된 아이템이 오면...

    if listbox1.Selected[i] = true then

    begin

    스트링을 없애고

    listbox1.Items.Strings[i]:='';

    나머지 것들은 위로 끌어 올립니다.

    for j:= i+1 to (listbox1.items.count -1) do

    begin

    listbox1.Items.Move(j,j-1);

    end;

    end;

    end;

    마지막으로 삭제...

    listbox1.Items.Delete(listbox1.items.count-1) ;

    end;