散分3:如何让我的程序支持将文件拖动到程序上打开文件呢?当我的程序在运行着,我希望可以将文件拖动到程序窗口来打开这些文件。

解决方案 »

  1.   

    参见此文:
    《自制支持文件拖放的VCL组件》http://cnprogram.myrice.com/article/delphi/delphi528.html
      

  2.   

    或者是:http://www.yesky.com/20000701/89833.shtml
      

  3.   

    pilicat(delphi迷) ,不好意思兄弟,我试了,但是没有成功,有没有更直观些的,第二个应该行,但是似乎有些变量声明的编译不过去。
      

  4.   

    已经解决,特将代码贴出procedure TfrmFCP.FormCreate(Sender: TObject);
    begin
      DragAcceptFiles(Handle,True);
    end;procedure Tfrmfcp.DropFiles(var Msg: TMessage);
    var
      i,Count: integer;
      buffer: array[0..1024] of Char;
      s:string;
    begin
      inherited;
      Count := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 256); // 第一次调用得到拖放文件的个数
      for i := 0 to Count - 1 do
      begin
        buffer[0] := #0;
        DragQueryFile(Msg.WParam, i, buffer, sizeof(buffer)); // 第二次调用得到文件名称
        frmfcp.RunCreatNewfile;
        s:=buffer;
        with Tsynedit(pagecontrolfcp.ActivePage.Controls[0]) do
          begin
          lines.LoadFromFile(s);
          hint:=ExtractFileName(s);
          end;
        PageControlFCP.ActivePage.CAPTION :=ExtractFileName(s);
        FCurFile[PageControlfcp.ActivePageIndex] := s;
      end;
    end;