各位好,我是一个delphi新手,刚刚接触,有些幼稚问题请大家指教.谢谢
1.点击运行后编译产生的EXE文件,在打包时是否只要这一个文件就可以,其他的如*.dfm,*.pas等等这些在设计时产生的文件是否还需要加到里面.换句话说就是在程序打包时需要打哪些文件.
2.用打包后的setup.exe文件安装后,为什么提示数据库的路径不对,程序仍自动到设计时的磁盘和目录中去找,该如何设置.数据库的连接用ADO,access类型的.

解决方案 »

  1.   

    打包一般只要exe,用access的话要mdb文件
      

  2.   

    1.*.dfm为窗体资源文件,*.pas为代码文件,打包程序不用加入这两类文件(除非你想把代码给人家!)
    2.多半你在程序里写死了Access文件的路径,在程序中应该使用
            extractfilepath(Application.exeName)+'\file.mdb';
    来取得Access文件路径
      

  3.   

    谢谢二位的回答,还有一个问题就是用inno setup打包,安装时生成的开始-程序中的快捷方式和桌面快捷方式都有问题.指向的目标文件没问题,但起始位置没有,默认是当前目录,在程序中数据库设为相对路径,在用快捷方式起动程序时提示找不到数据库,请问如何解决.
      

  4.   

    建议用installshield,关于安装和快捷方式的设置都很明了。
      

  5.   

    只需要exe文件,如果有本地数据库(如:Assess),也需要打包。找不数据库的路径,可能是你的程序里所连接的数据库路径是一个绝对的路径,再或者你是用数据感知按件连接的,通常连接数据的时候应该这样:
      
      假设数据库保存在你的应用程序编译后所生成的EXE文件的下一目录Data下。  var
        str: string;
        datastr: string;
      begin
        
        //这句会取得你EXE文件的目录,如:C:\Test\
        str := ExtractFilePath(Application.ExeName);     //那么你的数据库的地址应该为(数据库名为:DB.mdb):
       datastr := str + 'Data\DB.mdb';   ...
       后面的代码就是使用TADOConnection连接数据库了。  ADOConnection1.Close;
      ADOConnection1.LoginPrompt := false;
      ADOConnection1.ConnectionString := 
           'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' 
           + datastr + ';Persist Security Info=False';
      ADOConnection1.Connected := true;   ......