代码如下:
  if savedialog1.execute then
  begin
   //  从一个文件到另一个文件的复制
   ***** 
end;
  ***** 处如何写才能在执行复制文件的时候,出现那个“复制对话框”,里面包含从一个文件到另一个文件的复制情形,还有 “还剩5分钟”等的东西?当复制完成后,该对话框自动消失?

解决方案 »

  1.   

    //这个有API可以办到
    Uses ShellAPI;
    procedure TForm1.Button1Click(Sender: TObject);
    var
    Source,Destination,Title:string;
    Abortbyuser:boolean;
    ShFileOpStruct: TShFileOpStruct;
    begin
    Source:='g:\VB.ISO';
       Destination:='c:\bbb';
       Title:='拷贝文件';
       FillChar(ShFileOpStruct, SizeOf(ShFileOpStruct), 0);  //变量清零
       with ShFileOpStruct do
         begin
    Wnd:=Application.MainForm.Handle;      //给窗口句柄赋值
          wFunc:=FO_COPY;                        //实现文件拷贝
          pFrom:=PChar(Source);                  //source为源文件名
          pTo:=PChar(Destination);               //destination目标文件
          fFlags:=fFlags or FOF_ALLOWUNDO;         //设置允许撤消,显示进度,文件名
          lpszProgressTitle:=PChar(Title);      //设置拷贝进度窗体标题
          AbortByUser:=fAnyOperationsAborted;//fAnyOperationsAborted表示是
         end;
    ShFileOperation(ShFileOpStruct);
    end;