本文整理自网络,侵删。
一、windows操作系统提供的数据原型
1、function paramstr(i:index):string // 由命令行返回特殊参数
实际使用 ParamStr(n) // 参数值 字符串类型
2、ParamCount // 参数总数 整数类型
二、参数的意义
1、paramstr(0) // 应用程序的绝对路径
2、paramstr(1) - paramstr(ParamCount-1) // 返回的序列参数
三、调用
1、AAAA.exe 文件执行时, 采取DOS命令行的方式:比如,DOS方式,键入命令行:
AAAA 111 222 333
2、在实际运用中,常运用在程序调用子程序是,比如在程序中,调用 个子程序 Memo.exe,通过API函数调用::
shellexecute(application.Handle,'open','AAAA.exe','111 2222 333', 'e:\',SW_SHOW);那么,相应的参数:
paramstr(1) = 111
paramstr(2) = 222
paramstr(3) = 333
所以用paramstr可以在应用程序间进行数据传输。
注意,我们在编程时,可以通过delphi的IDE,直接设置DOS命令行。
(1)Delphi IDE调试,设置程序DOS参数:Project ->Run -> Parameters,打开“Run parameters”对话框,输入模拟的参数:
(2)获取全部参数
程序放一个ListBos,加入以下代码:
procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
for i := 1 to ParamCount do
ListBox1.Items.Add(ParamStr(i));
end;
获取的参数值:
四、常规用法
1、无参数不执行,可以实现子程序,只能调用,不能被单独执行。只要在子程序的OnShoe事件中,加入代码以下即可:
if system.ParamCount<1 then exit;
2、传递参数,(子程序的OnShoe事件中)
S1:=ParamStr(1);
S2:=ParamStr(2);
3、获取执行文件的目录路径(子程序的OnShoe事件中)
ExtractFilePath(ParamStr(0)) // (目录尾部包含\)
五、参数运用中注意的事项
1、参数的带入时刻
我们实际运用时,执行命令行 A.exe lyhoo 2 True False
这4个参数,在A.exe运行时就能使用、但是我们在实际使用时不是使用ParamStr,而是要将它们的值,赋值给全局变量。这样,该全局变量,往往在mainForm的OnShow事件中执行。这样,该变量的使用,就有一个时间差的问题。在Form的OnCreate事件中,就不能运行。因为,此时它还没有被赋值。
2、 ParamStr在程序中,默认全局变量,程序中,可以随时运用。
相关阅读 >>
Delphi 用tidsmip和tidmessage发送邮件
Delphi之tclientsocket和tserversocket使用tcp keepalive心跳机制实现“断网”、"断电"检测
tsqlconnection连接mysql(utf8)的问题
Delphi 的字符及字符串 - char、ansichar、widechar、pchar、pansichar、pwidechar
更多相关阅读请进入《Delphi》频道 >>