例如:桌面上有一个名字叫  33.txt 的文件,
我用鼠标将33.txt这个文件拖到 用delphi7编写的一个程序上,这个程序上有一个webbrowser控件,webbrowser控件里有一个textarea表单元素,想要在textarea表单元素里显示出33.txt的文件路径:C:\Documents and Settings\ouer\桌面\33.txt请问如何编程?谢谢.
注:提此问题的目的,就是想实现将某个文件夹拖到textarea里,在textarea里显示所有路径

解决方案 »

  1.   


    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;获取文件的代码自己查一下吧
      

  2.   

    非常感谢wintergoes!谢谢!谢谢!!!!太牛了.谢谢