求一代码:在程序中加入一个文件夹(以及其下的所有文件夹和文件),该文件夹已是程序的一部分(存储到你的程序当中)(要求创建一个TSetupForm),有一浏览文件夹按钮browsebutton和TEdit,点击 browsebutton 选择一个位置   ,把路径显示到TEdit,再点击“确定按钮”   能把文件夹拷贝到TEdit指定的地方,成功拷贝后添加提示。
(注意:文件夹已在你程序当中,内容固定,不管在那里都可以运行。)

解决方案 »

  1.   


    给你一个函数uses 
      shlobj;
      Function Copy_Dir(SourceDir,DestDir:String;nLx:Integer):Boolean;
      Var
        Opstruc: TshFileOpStruct;
        frombuf,tobuf: Array[0..128] of Char;
      begin
        FillChar(frombuf,Sizeof(frombuf),0);
        FillChar(tobuf,Sizeof(tobuf),0);
        StrPcopy(frombuf,SourceDir);
        Case nLx of
             1:
               StrPcopy(tobuf,DestDir);
        end;
        With Opstruc Do
        Begin
             Wnd:=0;
             Case nLx of
                 1: wFunc:=FO_COPY;
                 2: wFunc:=FO_DELETE;
                 Else wFunc:=FO_COPY;
             end;
             pFrom:=@frombuf;
             pTo:=@tobuf;
             fFlags:=FOF_NOCONFIRMATION;
             fAnyOperationsAborted:=False;
             hNameMappings:=Nil;
             lpszProgressTitle:=Nil;
        end;
        try
             ShFileOperation(OpStruc);
             Result:=True;
        except
             Result:=False;
        end;
      end;
      

  2.   

    不好意思,楼上的大哥,最近在做innosetup学了几天的pascal,你的程序只能看懂5成。
    不知道 innosetup脚本你弄过没有,shlobj  Wnd  FO_COPY在innosetup的编译器中能通过吗?
    若不用shlobj 怎么做?
      

  3.   

    Inno Setup 本来就是用来打包程序为安装文件的,它就已经有能够把指定的文件打包,
    然后安装的时候把文件和文件夹复制到指定的路径下,这些都不用写专门写个程序的啊!
    只要写好 Inno 的脚本就可以了。