?????? 在使用windows系統時,我們會發現,一種類型的文件總是可以用指定的應用程序打開,如:doc文件,雙擊可以打開文件,在使用delphi開發應用程序時,同樣需要實現上邊的功能,其核心就獲取系統當前的文件,而ParamStr函數起到了非常重要的作用,先面我們簡單用 Delphi開發以個應用程序來說明問題:
首先,用 delphi新建立一個工程,然后分別創建窗體MainFrm,MyMDIChildForm,添加相應的控件,如下圖
??????????
?
?????????????????????????????????????? ??? MainFrm
??????????????? 
????????????????????????????????????????? ? MyMDIChildForm
代碼如下:
Unit1.pas(對應于MainFrm窗體)
unit Unit1;
interface
uses
? Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
? Dialogs, Menus,Unit2, ComCtrls;
type
? TMainFrm = class(TForm)
??? MainMenu1: TMainMenu;
??? ItemNew: TMenuItem;
??? N1: TMenuItem;
??? N2: TMenuItem;
??? N3: TMenuItem;
??? OpenDialog1: TOpenDialog;
??? StatusBar1: TStatusBar;
??? procedure ItemNewClick(Sender: TObject);
??? procedure N3Click(Sender: TObject);
??? procedure FormShow(Sender: TObject);
??? function CreateMDI():TMyMDIChildForm;
? private
??? { Private declarations }
? public
??? { Public declarations }
? end;
var
? MainFrm: TMainFrm;
implementation
{$R *.dfm}
procedure TMainFrm.ItemNewClick(Sender: TObject);
var
child: TMyMDIChildForm;
begin
?child:= TMyMDIChildForm.create(Self);
end;
procedure TMainFrm.N3Click(Sender: TObject);
begin
? if opendialog1.Execute then
?? begin
????? CreateMDI.RichEdit1.Lines.LoadFromFile(opendialog1.FileName);
????? Self.StatusBar1.Panels[1].Text:=opendialog1.FileName;
?? end;
end;
procedure TMainFrm.FormShow(Sender: TObject);
var
?FileName:String;
begin
?? FileName:=ParamStr(1);
?? if FileExists(FileName) then
??? begin
????? CreateMDI.RichEdit1.Lines.LoadFromFile(FileName);
??? end;
end;
?
function TMainFrm.CreateMDI: TMyMDIChildForm;
var
child: TMyMDIChildForm;
begin
??? child:= TMyMDIChildForm.create(Self);
??? Result:=child;
end;
end.
unit2.pas(對應于MyMDIChildForm窗體)
unit Unit2;
interface
uses
? Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
? Dialogs, StdCtrls, ComCtrls;
type
? TMyMDIChildForm = class(TForm)
??? RichEdit1: TRichEdit;
??? procedure FormClose(Sender: TObject; var Action: TCloseAction);
? private
??? { Private declarations }
? public
??? { Public declarations }
? end;
var
? MyMDIChildForm: TMyMDIChildForm;
implementation
{$R *.dfm}
procedure TMyMDIChildForm.FormClose(Sender: TObject;
? var Action: TCloseAction);
begin
?Action:=caFree;
end;
end.
這樣我們實現了一個簡單的記事本程序,運行結果如下圖:
?????????????? 
然后,我們將工程保存,并生成最終的EXE文件,然后我們在Windows系統目錄任意創建一個文件,
如下圖ResumeAction.java文件
????????????????????????? 
然后將它的打開方式設置成我們自己的可執行程序
??????????????????????????????????? 
然后再雙擊此文件,程序正確運行,并將它打開了!
???????????? 
程序的核心就是paramStr函數,它獲得了系統接口,得到了當前的文件名稱!
點擊下載