我有个小小问题要请教各位!
  在delphi中,要实现主程序可以传参数启动(命令行和带主窗口的都可以)要怎么做,就是说像在c&c++中的main函数接受参数,按参数执行程序,main(string name,string value...)

解决方案 »

  1.   


    不用管功能,简单点说:比如要做一个计算器程序-add.exe;要允许其它程序这样调用它-add.exe(a+b);
    怎样在add程序中接受参数?add程序在设计时要采用console的?还是Form的?按照建工程的方法好像程序初始化是自动建的,看不到主函数.请赐教
      

  2.   

    ParamString[0] :相当于Application.ExeName
    ParamString[1] :输入的第一个参数
    ParamCount:输入的参数个数
    //好久没有Delphi了 好像就是 ParamString,呵呵 找找就知道了。
      

  3.   

    开始我可能没说明白,这样说吧:
    你要设计一个独立运行的程序,这个程序要以.exe形式让其它程序调用,其它程序调用时要传入参数,你设计的程序在被调用后,先解析参数再按要求运行.
    我以前是做java的,对delphi不熟,不过现在项目要用delphi,感觉delphi不好用,^_^(自己水平不行啊)
      

  4.   

    你可以把要传参数放到一个文件中,让delphi程序启动后自己去文件取呀
      

  5.   

    我们的设想就是将大量参数信息放在一个文件中,然后将该文件名以参数传入调用的delphi程序,问题就是不知道在delphi中怎样取这个参数值.
      

  6.   

    1. 取得命令列参数的个数: ParamCount 函数
    2. 呼叫 ParamStr(0), 传回执行档的档名(含路径)
    3. 呼叫 ParamStr(n), 传回第n个参数的内容
    例子:
    procedure TForm1.FormCreate(Sender: TObject);
    var
     ix: integer;
    begin
     Memo1.Lines.Clear;
     if ParamCount = 0 then
      Memo1.Lines.Add('没有参数')
     else
     begin
      Memo1.Lines.Add('程序名:' + ParamStr(0));
      for ix := 1 to ParamCount do
      Memo1.Lines.Add(ParamStr(ix)); //相应参数内容...
     end;
    end;
      

  7.   

    formcreate
    var str:string;
    begin
    str:=paramstr(1);
    if str<>'0' then application.terminate;
    end;调用
    winexec('*.exe 0',sw_show)