频道分类

Delphi可执行程序参数

作者:admin 来源:未知 日期:2010/1/30 17:14:10 人气: 标签:

 关于Delphi下可执行程序的参数问题,以前一直也没怎么注意过,实际应用中也没有过这样的需求,今天突然想到这个问题,所以查阅了一下Delphi的帮助。

其实在Delphi中使用执行参数是一件非常方便的事情,Delphi已经自己帮你处理好了,在程序中你可以仅仅调用ParamCount, ParamStr这两个函数就可以方便的获取相关的参数信息,从而根据自己的需要进行流程控制了,而且从一方面来说,使用执行参数通过Delphi来制作 命令行或Form窗体也是一件非常非常方便省事的工作,Delphi会在dpr(实际上这也是一个标准的Object Pascal程序)文件中来控制程序的执行(也即:我们见到的Forms实际上是在dpr中执行的)

因此当我们想要通过参数来控制我们的一个exe是以何种姿态展现在我们面前时,我们仅仅只需要在dpr中做点文章即刻。下面是一个演示程序:

当参数为-c时,以命令行控制台形式执行,当参数为-f出现时将以Forms的形式执行,当没有任何参数时不做任何操作。当然其实还有更复杂的一些情形要 我们去控制,比如当“-c -f”同时做为参数时,我们该怎么处理呢?呵呵,这不是技术问题,而是你的需要兼容性问题了,这里就不做考虑了。OK代码如下:

program T;

uses
Forms, SysUtils,
Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

var
i : integer;
begin
if ParamCount = 0 then exit;

for i := 1 to ParamCount do
begin
if LowerCase(ParamStr(i)) = '-c' then
begin
{$APPTYPE CONSOLE}
Writeln('Under Console...');
break;
end
else if LowerCase(ParamStr(i)) = '-f' then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
end;
end.

把命令行窗口打开(CMD),试试分别执行:"t.exe" ,"t.exe -c", "t.exe -f"看看会怎么样呢?呵呵

相信看过上面的代码,大家对Delphi下使用执行参数会有新的认识。