读书人

-关于程序传入参数运行的有关问题

发布时间: 2013-01-07 10:02:24 作者: rapoo

求助--------关于程序传入参数运行的问题
路过的请帮看下,谢了.

当前的程序是,执行一个主窗口MainForm,
还有2个手动生成的窗体:FORM1,FORM2,是主窗体手动单击后才显示的.

现在,我想传入2个参数,一个是执行类别LType,文件长路径LPath.

1.那下面的代码,我应该如何改?
2.或是放在MainForm里的哪个位置才好? ****
3.为什么把过程GetRunType放在MainForm的create还是一样没效果?
4.delphi如何带参数调试?

谢谢.


//取得传入的参数
procedure GetRunType;
var
i: Integer;
LType,LPath:string;
begin
LType:=LowerCase(ParamStr(1));
LPath:=LowerCase(ParamStr(2));

if (LType='') or (LPath='') then exit;

MainForm.Hide;//主窗体隐藏

RunType:=1;//参数模式

if LType = '1' then
begin
Form1:=TForm1.Create(Application);
Form1.Show;

end;

if LType = '2' then
begin

Form2:=TForm2.Create(Application);
Form2.Show;

end;
end;



[解决办法]
放在onshow,在CMD可以命令行调试
[解决办法]
//debug参数设置
1 Project -> Options -> Debugger -> Parameters
2 run -> Debugger -> Parameters

多个参数用分隔符分开写
你的例子可以这么写: 1 c:\aa.txt

//可执行文件参数设置
1 为可执行文件生成快捷方式
2 打开快捷方式属性设置 快捷方式->目标 设置格式 : "可执行文件路径" 参数1 参数2
如: "C:\Documents and Settings\Administrator\My Documents\RAD Studio\Projects\Debug\Win32\Project5.exe" 1 c:\ddd.txt

程序示例代码

//取得传入的参数
procedure GetRunType;
var
LType,LPath:string;
begin
LType:=LowerCase(ParamStr(1));
LPath:=LowerCase(ParamStr(2));

if (LType='') or (LPath='') then exit;

ShowMessage(LType);
ShowMessage(LPath);
end;

procedure TForm5.btn1Click(Sender: TObject);
begin
GetRunType
end;

procedure TForm5.FormCreate(Sender: TObject);
var
I: Integer;
begin
//下标=0的是程序默认的自身路径
// ShowMessage(ParamStr(0));

//自定义运行参数
// for I := 1 to ParamCount do
// ShowMessage(ParamStr(i));
end;


[解决办法]
GetRunType放的位置你自己定
onCreate onShow都可

读书人网 >.NET

热点推荐