Delphi-如何注册自动打开的文件扩展名?

Delphi-如何注册自动打开的文件扩展名?,delphi,extension-methods,tmemo,Delphi,Extension Methods,Tmemo,如何在我的Delphi应用程序中自动打开自定义扩展?我正在申请 加载文本文件但具有不同扩展名的 示例:Text.DZ|我只需要单击扩展名为.DZ的文件,它就会自动打开我的应用程序,并将其中的文本加载到备忘录1.lines.Text中 我知道我必须注册新的自定义扩展,但我不知道如何注册,而且 将文本加载到我的应用程序中 另外,如果你能包括一个源代码的例子,这将是了不起的 任何帮助都将不胜感激!及 很抱歉我的生疏和糟糕的英语解释,但我希望你们能理解我(^-^)/。有一种方法可以通过编程实现,尽管我不

如何在我的Delphi应用程序中自动打开自定义扩展?我正在申请 加载文本文件但具有不同扩展名的

示例:
Text.DZ
|我只需要单击扩展名为
.DZ
的文件,它就会自动打开我的应用程序,并将其中的文本加载到
备忘录1.lines.Text

我知道我必须注册新的自定义扩展,但我不知道如何注册,而且 将文本加载到我的应用程序中

另外,如果你能包括一个源代码的例子,这将是了不起的

任何帮助都将不胜感激!及
很抱歉我的生疏和糟糕的英语解释,但我希望你们能理解我(^-^)/。

有一种方法可以通过编程实现,尽管我不记得是如何即兴完成的

这就是说,如果您只是想为自己的个人使用而不是为您将要分发给他人的某个软件而这样做,那么最简单的方法就是使用Windows资源管理器:单击所需的数据文件,然后右键单击并选择Open With->。。。您可能需要选择另一个。。。选项在底部。这将弹出一个对话框,让你选择你的应用程序。在某些地方还应该有一个复选框,上面写着“makedefault”或“总是用这个打开”或类似的内容。确保选中该框。然后点击OK几次,你就可以开始比赛了

但您还需要设置应用程序,以便从命令行读取文件名。为此,您使用ParamStr和ParamCount

for i := 0 to ParamCount do
  ShowMessage('Parameter '+IntToStr(i)+' = '+ParamStr(i));
当您双击数据文件时,它将打开您的应用程序并将此文件名作为ParamStr(1)传递。因此,当您得到它时,只需执行以下操作:

memo1.lines.LoadFromFile( ParamStr(1) );
将此作为起点(如果只是复制和粘贴,它将不会编译!):


注意:这里的答案还简要介绍了如果您想在全系统范围内设置此选项,应该怎么做。这不一定解决OP的问题。目前还不清楚他是否只是想在自己的系统上运行应用程序,还是出于产品目的。有两种不同的解决方案。谢谢David bro!但是我应该把代码放在哪里,放在什么事件上?还是什么?Nd我不希望在加载文件时显示消息:D感谢mate的帮助David Schwartz,那么我如何以静默方式运行此操作,或者在什么情况下应该放置这些代码;c对不起,我是个新手,非常抱歉;cI认为,这里的人认为您正在寻找一种解决方案,用于您需要分发给数十亿人的软件产品。如果你能向大家澄清这个问题是出于你个人的需要,还是为了你正在分发给大众的程序,那就太好了。我会把它放在FormCreate事件处理程序中。不是FormShow。是的,我正计划把它分发给大家!这将是一个有用的应用程序,但这是我需要解决的最后一个问题:D
procedure TMyForm234:FormCreate( blah blah )
begin
  if ParamCount > 0 then
    theMemo.Lines.LoadFromFile( ParamStr(1) );
end;