就像把一个mp3拖到winamp,把avi拖到media player

解决方案 »

  1.   

    use shellapi;  ...
      private
        procedure Memo1Message(var Msg: TMsg; var Handled: Boolean);
      ...procedure TForm1.FormCreate(Sender: TObject);
    begin
      DragAcceptFiles(Memo1.Handle, TRUE);
      Application.OnMessage := Memo1Message;
    end;procedure TForm1.Memo1Message(var Msg: TMsg; var Handled: Boolean);
    var
      nFiles, I: Integer;
      Filename: string;
    begin
      if (Msg.message = WM_DROPFILES) and (msg.hwnd = Memo1.Handle) then
      begin
        nFiles := DragQueryFile (Msg.wParam, $FFFFFFFF, nil, 0);
        try
        for I := 0 to nFiles - 1 do
        begin
          SetLength (Filename, 80);
          DragQueryFile (Msg.wParam, I, PChar (Filename), 80);
          Filename := PChar (Filename);
          // 在这可以对每个文件进行操作
          Memo1.lines.add(filename);
        end;
        finally
          DragFinish (Msg.wParam);
        end;
        Handled := True;
      end;
    end;