孤 孤风秋叶 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-25 #1 现在通过注册表已经把某些文件和我的程序关联了起来,在鼠标右键里添加了程序的快捷菜单。并且通过PARAMSTR函数把文件调入到了程序中。问题是, 如果用鼠标选中的是多个文件, 那该用什么 函数 同时把多个文件调入到程序中呢!!(能同时调入到列表框中即可)!!
现在通过注册表已经把某些文件和我的程序关联了起来,在鼠标右键里添加了程序的快捷菜单。并且通过PARAMSTR函数把文件调入到了程序中。问题是, 如果用鼠标选中的是多个文件, 那该用什么 函数 同时把多个文件调入到程序中呢!!(能同时调入到列表框中即可)!!
孤 孤风秋叶 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-25 #3 设置一下属性可以打开多个的, 不过我提得这个问题和opendialog没有什么关系的呀!
B Boofoo Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #5 把你的程序贴出来,或许可以讨论清楚的,把选中文件读取到一个文件列表中,然后就是你程序控制的问题了!
孤 孤风秋叶 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #6 用什么函数可以判断,鼠标选中了多少个文件,文件的文件名分别是什么!前提是程序还并末启动。就像WINRAR一样吧, 当你用鼠标选中了多个文件以后,点击右键中的压缩他会把选中的所有文件压缩成一个文件。 它是如何判断鼠标选中了多少个文件的呢!!
用什么函数可以判断,鼠标选中了多少个文件,文件的文件名分别是什么!前提是程序还并末启动。就像WINRAR一样吧, 当你用鼠标选中了多个文件以后,点击右键中的压缩他会把选中的所有文件压缩成一个文件。 它是如何判断鼠标选中了多少个文件的呢!!
X x900 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #7 通过ParamCount可以得到参数的数目,使用方法如下所示: procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i:=1 to ParamCountdo begin Caption := Caption + '-' + ParamStr(i); end; end;
通过ParamCount可以得到参数的数目,使用方法如下所示: procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i:=1 to ParamCountdo begin Caption := Caption + '-' + ParamStr(i); end; end;
N NeutronDelphi Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #8 非常简单, 函数function ParamCount: Integer;可让你知道选择了多少个文件(ParamCount-1个文件)同时函数function ParamStr(Index: Integer): string;可以让你得到选择文件的 文件名 ParamStr(0)返回你的可执行文件名(即Application.ExeName,ParamStr(1)返回 选择的第一个文件,依次类推。 其实很多东西是操作系统完成的。比如说,你选择了很多文件,并点击右键菜单,操作系统则负责打开你的关联程序,并把所选择的文件作为参数传给你,你就可是通过上述的两个函数来处理。如果还有什么问题可以 Email:NeutronBoy@sohu.com
非常简单, 函数function ParamCount: Integer;可让你知道选择了多少个文件(ParamCount-1个文件)同时函数function ParamStr(Index: Integer): string;可以让你得到选择文件的 文件名 ParamStr(0)返回你的可执行文件名(即Application.ExeName,ParamStr(1)返回 选择的第一个文件,依次类推。 其实很多东西是操作系统完成的。比如说,你选择了很多文件,并点击右键菜单,操作系统则负责打开你的关联程序,并把所选择的文件作为参数传给你,你就可是通过上述的两个函数来处理。如果还有什么问题可以 Email:NeutronBoy@sohu.com
孤 孤风秋叶 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #9 可是我曾试过这些代码的,我是这样写的。 procedure TForm1.FormShow(Sender: TObject); var i:integer; begin if ParamCount>0 then begin for i:=1 to ParamCountdo begin Memo1.Lines.Add(ParamStr(i) ); end; end; end; 可是当选中多个文件时,却是只显示第一个文件呀,错误出在什么地方呢?? 还是在别得什么地方还有什么设置??
可是我曾试过这些代码的,我是这样写的。 procedure TForm1.FormShow(Sender: TObject); var i:integer; begin if ParamCount>0 then begin for i:=1 to ParamCountdo begin Memo1.Lines.Add(ParamStr(i) ); end; end; end; 可是当选中多个文件时,却是只显示第一个文件呀,错误出在什么地方呢?? 还是在别得什么地方还有什么设置??
孤 孤风秋叶 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #10 刚才我又加上了一句代码。 procedure TForm1.FormShow(Sender: TObject); var i:integer; begin if ParamCount>0 then showmessage(inttosrt(paramcount)); begin for i:=1 to ParamCountdo begin Memo1.Lines.Add(ParamStr(i) ); end; end; end; 执行时, showmessge显示的是1 而我选中的却是四个文件,是不是我在什么地方写错了,还是在注册表中有什么地方末曾设置呢!!
刚才我又加上了一句代码。 procedure TForm1.FormShow(Sender: TObject); var i:integer; begin if ParamCount>0 then showmessage(inttosrt(paramcount)); begin for i:=1 to ParamCountdo begin Memo1.Lines.Add(ParamStr(i) ); end; end; end; 执行时, showmessge显示的是1 而我选中的却是四个文件,是不是我在什么地方写错了,还是在注册表中有什么地方末曾设置呢!!
迷 迷糊 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #11 哦,这里还有一贴啊,其实这个问题不是程序中的ParamStr(i)取不到,而是操作系统给你的程序只传了一个文件名,也就是一个实例传一个文件名,如果你选中10个文件,就会启动10个程序实例,每个实例得到一个文件名。我在那个贴子的方法可以解决这个问题,我试过了
哦,这里还有一贴啊,其实这个问题不是程序中的ParamStr(i)取不到,而是操作系统给你的程序只传了一个文件名,也就是一个实例传一个文件名,如果你选中10个文件,就会启动10个程序实例,每个实例得到一个文件名。我在那个贴子的方法可以解决这个问题,我试过了
孤 孤风秋叶 Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-26 #12 to 迷糊: 不知道你是否有电子邮件?这两贴的分当然全部都归你了。 我还有最后一个问题想请教你。我选择的是音频类的文件和我的程序相关联。 如果只选中一个文件时,用我的程序打开的,如果选中多个时,第一个用我的程序打开, 而后面的几个却用别得播放软件打开了(如WINAMP)。谢谢迷糊,坦白说对你真有些感激和崇拜!!
to 迷糊: 不知道你是否有电子邮件?这两贴的分当然全部都归你了。 我还有最后一个问题想请教你。我选择的是音频类的文件和我的程序相关联。 如果只选中一个文件时,用我的程序打开的,如果选中多个时,第一个用我的程序打开, 而后面的几个却用别得播放软件打开了(如WINAMP)。谢谢迷糊,坦白说对你真有些感激和崇拜!!