C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[40710] 앗~ 답을 찾았습니다. 근데 삭제가 안되네요 ^^;
공윤경 [] 804 읽음    2005-06-23 12:30
공윤경 님이 쓰신 글 :
: 많은 분들의 만류(?)에도 불구하고 어쩔수없이 OpenDialog를 만들어야할 팔자에 놓여진공윤경이라고 합니다.
: 제가 일하는곳은 일본이구요. 당연히 초짜인 저는 시키면 시키는대로...
: 게다가. 아직 제 의견을 담당자를 설득할정도의 일어 실력이 안되어나서리 ㅠㅠ
: 일단 담당자는 여러나라에서 쓰는 플그램을 만들려하고 일본어가 안되는 컴터에서는 일단 일본어는 안보이고 영어로 표시되게 하는데....Tnt컴포넌트인가? 그건 쓰지 않는게 좋다고 합니다.
:
: 아무튼 그래서 오픈다이알로그를 만들고있는데요
: 드라이브콤보박스에서 A드라이브라던가 비어있는 드라이브를 선택했더니 에러가 나더라구요
: I/O error 21 이라는데
: 밑에 검색해보니 이런 소스가 있는데요
: 빌더에선..어찌..해야하나요?
:
: _______________________________________________________________________
: 델파이 소스입니다.
: 전 아래와 같은 방법으로 체크했습니다.
: 다음과 같은 함수를 선언한 후 호출해 보세요.........
:
: procedure TForm1.DriveComboBox1Click(Sender: TObject);
: var
:   currentdrv: char;
:   defaultdrv: integer;
: begin
:   defaultdrv := DriveComboBox1.Items.IndexOf('C: ['+GetVolumeName('C')+']');
:   currentdrv := DriveComboBox1.Text[1];
:
:   case GetDriveType(PChar(currentdrv + ':\')) of
:     DRIVE_REMOVABLE :
:       begin
:         if not DiskInDrive(currentdrv) then begin
:           showmessage('디스켓이 없습니다.');
:           DriveComboBox1.ItemIndex := defaultdrv;
:         end;
:       end;
:     DRIVE_CDROM :
:       begin
:         if not DiskInDrive(currentdrv) then begin
:           showmessage('CD-Title이 없습니다.');
:           DriveComboBox1.ItemIndex := defaultdrv;
:         end;
:       end;
:     DRIVE_REMOTE :
:       begin
:         if not DiskInDrive(currentdrv) then begin
:           showmessage('remote drive를 연결할 수 없습니다.');
:           DriveComboBox1.ItemIndex := defaultdrv;
:         end;
:       end;
:   end;
: end;
:
: function DiskInDrive(const Drive: char): Boolean;
: var
:   DrvNum: byte;
:   EMode: Word;
: begin
:   result := false;
:   DrvNum := ord(Drive);
:   if DrvNum >= ord('a') then dec(DrvNum,$20);
:     EMode := SetErrorMode(SEM_FAILCRITICALERRORS);
:     try
:       if DiskSize(DrvNum-$40) <> -1 then result := true
:       else messagebeep(0);
:     finally
:       SetErrorMode(EMode);
:     end;
: end;

+ -

관련 글 리스트
40709 [질문쟁이]Drive Combo Box에서 에러발생 공윤경 835 2005/06/23
40710     앗~ 답을 찾았습니다. 근데 삭제가 안되네요 ^^; 공윤경 804 2005/06/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.