Drag如何接收文件??

解决方案 »

  1.   

    procedure TfrmManage.tvFileDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    begin
      inherited;
    Accept:=true;
    end;
    procedure TfrmManage.tvFileDragDrop(Sender, Source: TObject; X,
      Y: Integer);
    begin
      inherited;
     ShowMessage(Source.ClassName );//没有反应
    end;
      

  2.   

    给你个参考例程的链接,如果对你有帮助,可得给分啊?http://www.yesky.com/20000701/89833.shtml祝你好运!
      

  3.   

    好的,这个你放心,我的结帖率可是比CSDN的平均结贴率要高的
      

  4.   

    procedure WMDropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;procedure TMainForm.WMDropFiles(var Msg: TWMDropFiles);
    var
      CFileName: array[0..MAX_PATH] of Char;
    begin
      try
        if DragQueryFile(Msg.Drop, 0, CFileName, MAX_PATH) > 0 then
        begin
          CheckFileSave;
          PerformFileOpen(CFileName);
          Msg.Result := 0;
        end;
      finally
        DragFinish(Msg.Drop);
      end;
    end;写在主程序的任何地方均可.
      

  5.   

    MAX_PATH:是一个自定义常数CheckFileSave;与本程序无关
      

  6.   

    漏了很重要的一点程序开始时:DragAcceptFiles(Handle, True);程序结束时:DragAcceptFiles(Handle, False);
      

  7.   

    啊,是的是的.把DragAcceptFiles(Handle, True);写在Form.onshow 但DragAcceptFiles(Handle, False)不用写了,有DragFinish(Msg.Drop);了.