안녕하세요... 댁스텁니다...
드래그 앤드 드롭을 구현하는 민성기님의 소스를 약간 고쳤습니다...
아주 잘 되는군요...
다음 소스를 보세요...
private에 다음과 같이 선언합니다...
procedure WMDropFiles(var Msg : TWMDropFiles); message WM_DROPFILES;
그리고 위 프로시저의 구현부는 다음과 같습니다...
procedure TForm1.WMDropFiles(var Msg : TWMDropFiles);
var
Buff : Array[0..255] of Char;
Count : Word;
begin
for Count := 0 to
DragQueryFile(Msg.Drop, $FFFFFFFF, NIL, 0) -1 do
begin
DragQueryFile(Msg.Drop, Count, Buff, SizeOf(Buff));
ListBox1.Items.Add(StrPas(Buff));
end;
DragFinish(Msg.Drop);
end;
그리고 프로그램이 시작될 때 드래그 앤드 드롭을 허용할 것인지를 알려줘야 합니다
그래서 폼의 OnCreate 이벤트핸들러에 다음과 같이 합니다...
DragAcceptFiles(Handle, true);
요렇게 하시면 아주 잘 동작합니다...
한개 뿐아니라.. 여러개의 파일도 드래그 앤드 드롭이 먹어서 리스트 박스에 파일
의 패스와 이름이 들어갑니다...
참, uses절에 ShellAPI를 추가해야 하고요...
사용된 API함수들의 사용법은 도움말을 참고하세요...
그럼, 참고가 되셨길.....
THEXDER
|