출처 : 김영대님 홈피 (http://www.howto.pe.kr)
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, ShellApi;
type
TfrmMain=class(TForm)
procedure FormActivate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
procedure WMDropFiles(var Msg: TMessage); message WM_DROPFILES;
end;
var
frmMain: TfrmMain;
implementation
procedure TfrmMain.FormActivate(Sender: TObject);
begin
// Drag&Drop Accept
DragAcceptFiles(Handle, True);
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
// Drag&Drop Accept 해제
DragAcceptFiles(Handle, False);
// 폼닫기
CanClose:=True;
end;
procedure TfrmMain.WMDropFiles(var Msg: TMessage);
var
i, cntDropItem, DropItemNameLength: Integer;
hDrop: THandle;
DropItemPath: array [0..MAX_PATH] of Char;
begin
try
// Drop Handle
hDrop:=Msg.wParam;
// Drop된 아이템 갯수
cntDropItem:=DragQueryFile(hDrop, $FFFFFFFF, nil, 0);
for i:=0 to cntDropItem-1 do begin
// Drop된 파일경로 길이
DropItemNameLength:=DragQueryFile(hDrop, i, nil, 0);
// Drop된 파일경로
DragQueryFile(hDrop, i, DropItemPath, DropItemNameLength+1);
// 출력...
OutputDebugString(PWideChar(DropItemPath));
end;
finally
DragFinish(hDrop);
end;
Msg.Result:=0;
inherited;
end;
'Delphi' 카테고리의 다른 글
Delphi2009 Indy10 에서 한글 깨짐 문제 (0) | 2009.04.28 |
---|---|
TList 형에서 Delete 를 이용해 item 삭제시 루프문 (0) | 2009.04.20 |
다른 프로그램의 텍스트 가져오기 (0) | 2009.04.18 |
폼에 마우스 이벤트 통과시키기 (0) | 2009.04.18 |
[Delphi] 윈도우 핸들로 실행파일 이름 알아내기 (0) | 2009.04.18 |