★如何使程序能够接收参数?(100分)

  • 主题发起人 主题发起人 volcanosh
  • 开始时间 开始时间
搜索一下以前的贴子
用Delphi提供的函数ParamCount及ParamStr
 
这是一个工程文件
根据参数打开不同的文件。

begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
if(ParamCount > 0) then
begin
for i := 1 to ParamCount do
begin
if(FileExists(ParamStr(i))) then
MainForm.OpenFile(ParamStr(i));
end;
end;
Application.Run;
end.

 
begin
for i := 1 to Paramcount do
showmessage(Paramstr(i))
end;
Paramstr(n) n=1 --- paramcount 为第n个参数,
所有参数的长度和不能超过255。
 
跟楼上的同时回答的:)
 
paramcount表示参数的个数
paramstr(i)表示各参数
 
在TMainForm.FormCreate或TMainForm.FormShow中加上
var
FileName: String;
begin
if ParamCount>0 then
begin
FileName:=ParamStr(1);
end;
end;


ParamCount为参数的个数;
ParamStr(1)为第一个参数的内容,也就是程序路径及名称,把1改为其他数就可以此类推
 
补充一个有意思的:
paramstr(0) 代表程序自己完全路径!('C:/Program files/Borland/Delphi5/Projects/Project1.exe')
 
当然,注册表里还要做文件类型的关联,譬如:
.txt文件就要把注册表里的HKEY_CLASSES_ROOT/.txt的默认写为txtfile,当然,写
成什么随你,然后就找HKEY_CLASSES_ROOT/txtfile,如果你不把上面的默认写为txtfile
那么这个txtfile就改成你写的,在这下面有HKEY_CLASSES_ROOT/txtfile/DefaultIcon是
词类型文件的图标,在HKEY_CLASSES_ROOT/txtfile/shell/open/command里的默认是最重
要的,c:/winnt/notepad "%1" 在指向你的程序后加上 "%1",就可以了。记住要加"",
要不有些带空格的文件不能传递参数。

现学现卖 :)
 
to 轻松虎:
好像ParamStr(1)是程序的完整路径,我就是郑么做的呀,
ParamStr(0)我没试过。
 
to 孤岛:
是么?你再试试看吧。:)
 
接受答案了.
 
后退
顶部