Q&A

  • 리스트박스에서 선택여부
리스트박스에서 선택이 되었는지 안되었는지..어떻게 알수있나요.

도움말을 보니까...ItemIndex가 -1이면 아무것도 선택이 안된거라는데..



이대로 하니까...안되네요..

정말 이상하군요...델파이..-_-;간혹 이런 경우가..-_-;

y2k때문인가??-_-;



선택이 되었는지...안되었는지...어떻게 아는지 갈쳐주세요..

답변부탁드립니다.







3  COMMENTS
  • Profile
    고구마 1999.08.11 05:19
    이용일 께서 말씀하시기를...

    > 리스트박스에서 선택이 되었는지 안되었는지..어떻게 알수있나요.

    > 도움말을 보니까...ItemIndex가 -1이면 아무것도 선택이 안된거라는데..

    >

    > 이대로 하니까...안되네요..

    > 정말 이상하군요...델파이..-_-;간혹 이런 경우가..-_-;

    > y2k때문인가??-_-;

    >

    > 선택이 되었는지...안되었는지...어떻게 아는지 갈쳐주세요..

    > 답변부탁드립니다.

    >

    >

    >



    안녕하세요.



    말씀한 내용... 잘 되던데요....



    if ListBox1.ItemIndex <> -1 then

    ShowMessage(ListBox1.Items[ListBox1.ItemIndex]+'가 선택되었습니다.')

    else

    ShowMessage('선택된 항목이 없습니다.');



    이렇게 하니까 잘 되던데요....



    수고하세요.

  • Profile
    이용일 1999.08.11 07:19
    고구마님께서 말씀하시기를..

    > 안녕하세요.

    >

    > 말씀한 내용... 잘 되던데요....

    >

    > if ListBox1.ItemIndex <> -1 then

    > ShowMessage(ListBox1.Items[ListBox1.ItemIndex]+'가 선택되었습니다.')

    > else

    > ShowMessage('선택된 항목이 없습니다.');

    >

    > 이렇게 하니까 잘 되던데요....

    >

    > 수고하세요.



    고구마님 감사드리구요

    소스를 보여드리죠.

    if CliFileList.ItemIndex <> -1 then begin

    if MessageDlg('정말로 파일을 지우시겠습니까?',mtWarning,[mbOk,mbCancel],0)

    = mrOK then begin

    if not DeleteFile(CliFileList.FileName) then

    ShowMessage('지우기 에러입니다')

    else CliFileList.Update; end

    else ShowMessage('취소하셨습니다');

    end else ShowMessage('삭제할 파일을 선택해주세요');

    정말 어디가 틀린건지..미치겠군요...정말..



  • Profile
    이정욱 1999.08.11 10:51
    이용일 께서 말씀하시기를...

    > 고구마님께서 말씀하시기를..

    > > 안녕하세요.

    > >

    > > 말씀한 내용... 잘 되던데요....

    > >

    > > if ListBox1.ItemIndex <> -1 then

    > > ShowMessage(ListBox1.Items[ListBox1.ItemIndex]+'가 선택되었습니다.')

    > > else

    > > ShowMessage('선택된 항목이 없습니다.');

    > >

    > > 이렇게 하니까 잘 되던데요....

    > >

    > > 수고하세요.

    >

    > 고구마님 감사드리구요

    > 소스를 보여드리죠.

    > if CliFileList.ItemIndex <> -1 then begin

    > if MessageDlg('정말로 파일을 지우시겠습니까?',mtWarning,[mbOk,mbCancel],0)

    > = mrOK then begin

    > if not DeleteFile(CliFileList.FileName) then

    > ShowMessage('지우기 에러입니다')

    > else CliFileList.Update; end

    > else ShowMessage('취소하셨습니다');

    > end else ShowMessage('삭제할 파일을 선택해주세요');

    > 정말 어디가 틀린건지..미치겠군요...정말..

    >





    위의 소스를 보니 파일 리스트박스를 사용하나 보네요.

    그런데 위에서 사용하신 Update는 먹히지 않습니다.

    파일리스트 박스를 리프레쉬하는 메소드는 없습니다.

    방법이 있다면 다른디렉토리로 갔다가 다시 와야한다는것이죠.



    그런데 전 위의 방법보다는 이렇게 하면 어떨까 하는 생각이 듭니다.

    var

    TempDirectory : String;

    begin



    if CliFileList.FileName <> '' then

    begin

    if MessageDlg('정말로 파일을 지우시겠습니까?',mtWarning,

    [mbOk,mbCancel],0) = mrOK then

    begin

    if not DeleteFile(CliFileList.FileName) then

    ShowMessage('지우기 에러입니다')

    else begin

    TempDirectory := CLifileList.Directory;

    ClifileList.Directory := 'C:';

    CliFileList.Directory := TempDirectory;

    end;

    end else ShowMessage('취소하셨습니다');

    end else ShowMessage('삭제할 파일을 선택해주세요');



    end;



    음. 온라인상에서 작성한 코드라서 수정이 필요할 수 있습니다.