gpt4 book ai didi

delphi - 防止 TWebBrowser 接受丢弃的文件

转载 作者:行者123 更新时间:2023-12-03 18:23:28 25 4
gpt4 key购买 nike

我有一个表单可以接受要拖放的文件,还有一个 TWebBrowser 控件放置在同一个表单上的 TPanel 控件上。

最主要的是,当我在窗体上放置一个文件时,它的路径被添加到一个 TEdit 控件中。但是,当用户在表单上拖放文件时,有时他们实际上可能会将其拖放到 TWebBrowser 上,TWebBrowser 会根据文件类型为用户保存或运行文件。这是我实际上不想发生的事情,我只想让 TWebBrowser 忽略删除的文件或像表单那样处理它。

这是我用来处理 WM_DROPFILES 消息的代码:

procedure TMainForm.AcceptFiles( var msg : TMessage );
const
cnMaxFileNameLen = 255;
var
i,
nCount : integer;
acFileName : array [0..cnMaxFileNameLen] of char;
begin
// find out how many files we're accepting
nCount := DragQueryFile( msg.WParam,
$FFFFFFFF,
acFileName,
cnMaxFileNameLen );

// query Windows one at a time for the file name
for i := 0 to nCount-1 do
begin
DragQueryFile( msg.WParam, i,
acFileName, cnMaxFileNameLen );

// do your thing with the acFileName
//MessageBox( Handle, acFileName, '', MB_OK );
Edit1.Text := acFileName;
end;

// let Windows know that you're done
DragFinish( msg.WParam );
end;

提前致谢。任何线索将不胜感激。

最佳答案

要拦截 TWebBrowser 中的拖放操作,您必须实现 IDropTargetIDocHostUIHandler接口(interface)。那么你必须使用 GetDropTarget传递您自己的 IDropTarget 实现的方法。

有关示例 Delphi 代码,请尝试这篇文章 How to handle drag and drop in a TWebBrowser control

关于delphi - 防止 TWebBrowser 接受丢弃的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11452852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com