반응형
탐색기 같은 곳에서 파일을 Drag&Drop 하여 폼에 올리고 싶은 경우에는 아래와 같이 하면 된다.
// uses 절에 ShellAPI 를 추가하고, FormCreate 같은 곳에 아래와 같은 코드를 추가한다. DragAcceptFiles(Handle, True); // 그리고 적당한 곳에 파일이 Drag&Drop 되었을 때 받을 이벤트를 추가한다. procedure WMDropFiles(var Msg: TMessage); message WM_DROPFILES;
procedure TForm1.WMDropFiles(var Msg: TMessage);
var
DropCnt : Integer;
hDropFile : THandle;
FileName : array[0..MAX_PATH] of char;
FileNameLen : Integer;
i : Integer;
begin
hDropFile := Msg.WParam;
try
// 드래그 앤 드롭된 파일의 갯수
DropCnt := DragQueryFile(hDropFile, $FFFFFFFF, nil, 0);
for i := 0 to DropCnt - 1 do
begin
// 드롭된 파일경로 길이
FileNameLen := DragQueryFile(hDropFile, i, nil, 0);
// 드롭된 파일경로
DragQueryFile(hDropFile, i, FileName, FileNameLen + 1);
// 여기다가 작업을 추가하면 된다.
end;
finally
DragFinish(hDropFile);
Msg.Result := 0;
// 현재 폼을 활성화 시켜주는 쎈스!
SetForegroundWindow(Handle);
end;
end;
참 쉽죠잉~? 반응형
'Programming > Delphi' 카테고리의 다른 글
| 현재 사용중인 익스플로러 버전 확인하기 (0) | 2011.07.05 |
|---|---|
| 유효한 파일명인지 체크 (0) | 2011.07.05 |
| 퀵리포트 미리보기 없이 이미지로 저장하기 (2) | 2011.07.05 |
| 델파이 디버깅시 시스템 다운이 될 때 (0) | 2011.07.04 |
| 퀵리포트 사용 백서 (0) | 2011.06.28 |