例如:桌面上有一个名字叫 33.txt 的文件,
我用鼠标将33.txt这个文件拖到 用delphi7编写的一个程序上,这个程序上有一个webbrowser控件,webbrowser控件里有一个textarea表单元素,想要在textarea表单元素里显示出33.txt的文件路径:C:\Documents and Settings\ouer\桌面\33.txt请问如何编程?谢谢.
注:提此问题的目的,就是想实现将某个文件夹拖到textarea里,在textarea里显示所有路径
我用鼠标将33.txt这个文件拖到 用delphi7编写的一个程序上,这个程序上有一个webbrowser控件,webbrowser控件里有一个textarea表单元素,想要在textarea表单元素里显示出33.txt的文件路径:C:\Documents and Settings\ouer\桌面\33.txt请问如何编程?谢谢.
注:提此问题的目的,就是想实现将某个文件夹拖到textarea里,在textarea里显示所有路径
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShellAPI, StdCtrls, OleCtrls, SHDocVw;type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure WMDropFile(var msg: TWMDropFiles); message WM_DROPFILES;
end;var
Form1: TForm1;implementation{$R *.dfm}{ TForm1 }procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('http://www.baidu.com');
// register form as the recipient of drop files
DragAcceptFiles(Handle, True);
end;procedure TForm1.WMDropFile(var msg: TWMDropFiles);
var
FileCount: Cardinal ;
FileName: PChar;
I: Cardinal;
begin
GetMem(FileName, MAX_PATH + 1);
// 返回文件数量
FileCount := DragQueryFile(msg.Drop, Cardinal(-1), nil, 0);
// 取所有的文件
for I := 0 to FileCount - 1 do begin
DragQueryFile(msg.Drop, I, FileName, MAX_PATH + 1);
// 接收所有文件名
end; // 'kw' 是百度输入框的名字,在webbrowser找控件的方法还可以通过getelementbyid, getelementsbyname等
WebBrowser1.OleObject.document.all.item('kw').value := string(FileName); DragFinish(msg.Drop);
msg.Result := 0;
end;end.判斷是否為文件夾,首先用FindFirstFile得到文件夾的信息,讀取該文件的屬性是否為FILE_ATTRIBUTE_DIRECTORY即可判斷。
{FindFirstFile 聲明}
HANDLE FindFirstFile(
LPCTSTR lpFileName, // 欲搜索的文件名
LPWIN32_FIND_DATA lpFindFileData // 装载与找到的文件有关的信息
);
{Delphi Example}
var
aFindFileData: TWIN32FindData;
Handle: THandle;
begin
pPath1 := 'E:\bb\cc\dd';
Handle := FindFirstFile(PChar(pPath1),aFindFileData);
if aFindFileData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then
ShowMessage(pPath1 + '是文件夾');
Windows.FindClose(Handle);
end;获取文件的代码自己查一下吧