原型
function paramstr(i:index):string
对于任何application paramstr(0)都默认代表的是应用程序的绝对路径。那么有paramstr(0),就肯定
有paramstr(1),paramstr(2)...了。它们的值又是什么了?我试了下取出的是空值,又不能赋值。
delphi帮助中说Returns a specified parameter from the command-line.从命令行中返回一个特别的参数。
在exe文件后面可以跟参数,paramstr 获取的就是exe文件后面跟参数。
如有可执行文件project1.exe(快捷方式) 在运行中输入 e:\project1.exe 123 456 789
那么paramstr(1)='123' paramstr(2)='456' paramstr(3)='789'
用shellexecute的话可以在parameters参数位置输入值。不同的参数值之间用空格隔开
如 shellexecute(application.Handle,'open','project4.exe','123 456', 'e:\',SW_SHOW);
所以用paramstr可以在应用程序间进行数据传输。
//获取程序参数
//可从 Project -> Options -> Debugger -> Parameters 中输入模拟参数, 多个参数可用空格隔开
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i := 1 to ParamCount do
begin
ListBox1.Items.Add(ParamStr(i));
end;
end;
paramStr()函数参数返回值的来源
Parameters 里面是空白,ParamStr(1) 是 Parameters 里面的空格分割的第一个部分。
创建进程的时候可以加参数
执行 ShellExecute 的时候也可以加参数
![](https://i-blog.csdnimg.cn/blog_migrate/1da494e540c26b61c1c732ac77606f7d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/89eacfec333265d61ad1858a78158d98.png)