高分求拖放文件的解决方法。(100分)

  • 主题发起人 主题发起人 lfpsoft
  • 开始时间 开始时间
L

lfpsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
问题解决就给分
先看以下代码:
procedure WMDropFiles(var Msg: Tmessage); message wm_DropFiles;
//.....
procedure TfrmEdit.FormCreate(Sender: TObject);
begin
//...
DragAcceptFiles(Handle, True);
end;

procedure TfrmEdit.WMDropFiles(var Msg: Tmessage);
var FileName : array [0..255] of Char;
a: Integer;

begin
a:=0;
repeat
FileName := '';
DragQueryFile(THandle(Msg.WParam), a, FileName, Sizeof(FileName));
if (LowerCase(ExtractFileExt(FileName)) = '.html') then
//这里对文件进行处理
inc(a);
until trim(FileName) = '';
DragFinish(THandle(Msg.WParam));
end;

procedure TfrmEdit.FormDestroy(Sender: TObject);
begin
DragAcceptFiles(Handle, False);
end;

以上的代码我已实现在自己的程序里对拖放文件处理,但是还有一点小问题
我没有满意。就是无论拖来的是什么类型的文件,我的程序都只会显示有个
“+”号的图标。我想拖进的不是HTML文件,则就显示那个不能拖放的图标,
就是一个圆圈,中间有一横的那个图标。如果是HTML文件,则可以进行拖放
。我试过在Form的OnDragDrop和onDragOver事件里处理,好像不行。希望高手
帮忙。如果能自定义自己的图标就最好!
 
好像是99为自定义图标
 
这个可能比较难办。因为你在 OnCreate 中已经DragAcceptFiles(Handle, True);
这表示表单接受文件拖放。
如果能动态设置DragAcceptFiles(Handle, True);就好了,但这不太可能。
另外要看在 wm_DropFiles 之前有没有相关的消息来查询拖放的文件。

Form的OnDragDrop和onDragOver事件处理应该是针对控件的!
 
这个我想应该是用OLEdrag and drop来做,你可以去下个dragdrop控件看看源码
 
不一定要使用我上面的方法,只要实现拖放,而且做到我的要求就行了。
哪位能给个代码看看。
windows media player 就可以做到不是他的格式就不给拖放的。
 
你去下载一个dropdrop控件就知道了,他有一个droptarget,可以接收文件名的,而且有
move到你的界面上时的消息,实际上就是普通的ole drag,如果返回值 是S_OK就表示可以
放入,不然就不行
 
在哪里可以下?我怎么找不到?
能不能发一个给我?
lfpsoft@163.com
 
已经发过去了
 
我还没有收到。
可以再发一次吗?谢谢!
lfpsoft@163.com
lfpsoft@msn.com
 
我又发了一次,到lfpsoft@msn.com这个信箱了
 
to:zjfeng
不知为什么,我还是没有收到。
再麻烦在这里上传,好吗?
http://www.playicq.com/
 
你可以去www.51delphi.com去下载
 
在51delphi找不到呀!
 
http://www.playicq.com/dispdoc.php?t=&id=18
这里有
 
多人接受答案了。
 
后退
顶部