Q&A

  • 탐색기에서 드래그하여 파일 가져오기
안녕하십니까.
탐색기에서 파일을 드래그하여 파일명을 가져오는것을 구현중입니다.

질답게시판에서 아래와 같은 소스를 보고 C/S 버전으로는 잘 구동이 됩니다.
그런데 ActiveX에서는 브라우저에서 실행이 되어버리네요.(?)
html 파일을 끌어오면 html이 실행된 화면으로 로드되어 버립니다.

답변 부탁드립니다.

감사합니다.




procedure TaxFileUpload.WMDropFiles(var msg: TMessage);
var
  hDropFiles: THandle; {Handle for Msg.wParam}
  rSearchRec: TSearchRec;
  v_iFor, v_iNumFiles, v_iFileNameLen: integer;
  v_sCurrFile: Array[0..MAX_PATH] of Char;
  v_dFileSize: Double;

begin
  Try
    hDropFiles := msg.WParam; {1. drop handle 을 얻는다}
    v_iNumFiles := DragQueryFile(hDropFiles, $FFFFFFFF, nil, 0); {2. 얼마나 많은 파일들이 드롭되었는지 검사}

    for v_iFor := 0 to (v_iNumFiles - 1) do {3. Loop}
    begin
      v_iFileNameLen := DragQueryFile(hDropFiles, v_iFor, nil, 0); {4. drop된 파일명의 길이는 구한다}
      DragQueryFile(hDropFiles, v_iFor, v_sCurrFile, v_iFileNameLen + 1); {5. drop된 파일명을 구한다}

      Sysutils.FindFirst(v_sCurrFile, faAnyFile, rSearchRec);
      v_dFileSize := rSearchRec.Size;

      if (v_dFileSize <> 0) then
      begin
        vg_iCntFiles  := vg_iCntFiles  + 1;
        vg_dSizeFiles := vg_dSizeFiles + v_dFileSize;

        UDP_AddFiles(v_sCurrFile, v_dFileSize);
      end;
    end;
  Finally
    UDP_SumSize;

    DragFinish(hDropFiles);
  end;

  msg.Result := 0; {7. Return zero.}

  inherited;
end;
0  COMMENTS