热情软件屋

 

建立文件关联后,没有打开文件


编号: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);
    ...

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio