读书人

拖拉打开文件无效解决方法

发布时间: 2013-01-25 15:55:30 作者: rapoo

拖拉打开文件无效

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;

抄了这段代码,运行后没有反应,这是为什么呢?
[解决办法]
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);
//这段代码的用意是可以拖放打开多个文件
If FileExists(strPas(p)) Then
OpenFile(strPas(p));
End;
Try

Finally
DragFinish(HDROP(Message.WParam));
End;
End;

[解决办法]
还有你需要在以下

procedure Tform1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle,True);
end;

读书人网 >.NET

热点推荐