Procedure DragDropFiles(Var message: TMessage); Message WM_DropFiles;Procedure Tfm_main.DragDropFiles(Var message: TMessage);
Var
  p: Array[0..254] Of char;
  i: word;
Begin
  Inherited;
  i := DragQueryFile(Message.wParam, $FFFFFFFF, Nil, 0);
  For i := 0 To i - 1 Do
  Begin
    DragQueryFile(Message.wParam, i, p, 255);
  End;
  Try
    If FileExists(strPas(p)) Then
      OpenFile(strPas(p));
  Finally
    DragFinish(HDROP(Message.WParam));
  End;
End;抄了这段代码,运行后没有反应,这是为什么呢?

解决方案 »

  1.   

    Procedure DragDropFiles(Var message: TMessage); Message WM_DropFiles;Procedure Tfm_main.DragDropFiles(Var message: TMessage);
    Var
      p: Array[0..254] Of char;
      i: word;
    Begin
      Inherited;
      i := DragQueryFile(Message.wParam, $FFFFFFFF, Nil, 0);
      For i := 0 To i - 1 Do
      Begin
        DragQueryFile(Message.wParam, i, p, 255);
        //这段代码的用意是可以拖放打开多个文件
        If FileExists(strPas(p)) Then
          OpenFile(strPas(p));

      End;
      Try  Finally
        DragFinish(HDROP(Message.WParam));
      End;
    End;
      

  2.   

    还有你需要在以下procedure   Tform1.FormCreate(Sender:   TObject); 
    begin 
      DragAcceptFiles(Handle,True);   
    end;