说明:DragDropFiles是在函数声明中定义的消息函
DragQueryFile和DragFinish都是API函数,在调用之前要在pas头上引用shellAPI单元。
OpenFile是你真正用来打开文件的的函数,其它所做的是得到拖拉进来的文件的文件名。
Procedure DragDropFiles(Var message: TMessage); Message WM_DropFiles;
Procedure Tfm_main.DragDropFiles(Var message: TMessage);
Var
p: Array[0..254] Of char;
i: word;
Begin
Inherited;
i := DragQueryFile(Message.wParam, $FFFFFFFF, Nil, 0);
For i := 0 To i - 1 Do
Begin
DragQueryFile(Message.wParam, i, p, 255);
End;
Try
If FileExists(strPas(p)) Then
OpenFile(strPas(p));
Finally
DragFinish(HDROP(Message.WParam));
End;
End;