建立文件关联后,没有打开文件
编号:QA003946
建立日期: 2001年3月1日 最后修改日期:2001年3月15日
所属类别:
金晗:
操作系统: Windows
编程工具: Dilphi 5.0
问题: 我是一名刚学计算机 Delphi 5.0 编程不久的学生,近期参加一公司的招聘,要求我编一个类似 WINDOWS 记事本的程序。我编好程序后,点开 WINDOWS 资源管理器,点击查看,点击文件夹选项,点击文件类型,然后将注册的文本文件(OPEN )打开方式定义为我的程序,然后点击一任意文本文件,我的程序启动后,发现无法象几记事本一样,当点击(TXT)文本文件后,记事本启动,文本文件的内容出现在记事本中。我的程序中却一片空白。请问老师:如何实现类似记事本启动功能???不胜感激!!!!
水平: 中级
回答:
你没有正确的处理命令行。系统在双击后将调用你的程序,并将文件名作为命令行参数传递给你的程序。你应该在程序中利用ParamStr函数获得命令行参数,然后打开传递给你的文件。
金晗:
操作系统: windows
编程工具: delphi5
问题: 尊敬的李老师:
前几天您告诉我用paramstr函数实现文本文件的起动,看后我参考一些书成功的完成程序。在一次起动文本文件(uni 01.txt)时,出现了一对话框(cannot open file d:\uni.)。研究后发现 paramstr 不能返回中间带空格的
文件名,比如 uni 01.txt。请问如何解决?
procedure TForm1.FormCreate(Sender: TObject);
begin
//以下为文本直接点击启动
if paramcount<>0 then
begin
docname:=paramstr(1);
richedit1.Lines.LoadFromFile(paramstr(1));
richedit1.Modified:=false;
end
end;
水平: 中级
答:对于d:\uni 01.txt的情况,ParamStr(1)为d:\uni,而ParamStr(2)为01.txt。也就是说Delphi以空格为分割符对命令行进行了分割。可以这样处理:
s := '';
For i := 1 To ParamCount do
begin
s := s + ParamStr(i);
end;
...
...Lines.LoadFromFile(s);
...
此问题由李海回答。
| |
|
|
| |
|
|