1、如何COPY两个目录,例如:将D:\AA和D:\BB及目录内容 COPY至E:\,COPY一个目录时正常,COPY 第二个时出错,怎么办
2、如何在关闭FORM时将FORM释放掉,form.free为什么出错

解决方案 »

  1.   

    不能在关闭FORM时将FORM释放掉
      

  2.   

    1。问题一去Google里面查找一下吧,很多的!
      

  3.   

    To HuoJieHai  谁说不能,完全可以在OnClose事件中写如下代码:  ....
        Release;  //释放
        Form1:=Nil;  //释放窗体指针变量
      ....
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);  //uses shellapi
    Var
      OpStruc:TSHFileOpStruct;
      frombuf,tobuf:array[0..128] of char;
    begin
      FillChar(frombuf,sizeof(frombuf),0);
      FillChar(tobuf,sizeof(tobuf),0);
      //假设将D:\temp1目录下所有的文件复制到D:\temp2目录下
      StrPCopy(frombuf,'d:\temp1\*.*');
      StrPCopy(tobuf,'d:\temp2');
      with OpStruc do Begin
        Wnd := Handle;
        wFunc := FO_COPY;
        pFrom := @frombuf;
        pTo := @tobuf;
        fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
        fAnyOperationsAborted := False;
        hNameMappings := nil;
        lpszProgressTitle := nil;
      end;
      ShFileOperation(OpStruc);{该函数声明如下:
      WINSHELLAPI int WINAPI SHFileOperation(
      LPSHFILEOPSTRUCT lpFileOp);}
      MessageDlg('拷贝完毕!',mtinformation,[mbok],0);
    end;
    2、如果你是用Show显示,而不是用showmodal显示的话
    可以在Onclose中用
    Action := CaFree;
    Self:=nil;来释放,如果是后者的话,是动态创建的话要这么写
    try
      Form1 :=Tform1.Create(Application);
      Form1.Showmodal;
    finally
      FreeAndNIl(Form1);
    end;
    关闭的时候不要写代码了,如果是静态创建的话,不用另外写代码
      

  5.   

    ljmanage(过客) (
    说的对。