?????? 在使用windows系統(tǒng)時(shí),我們會(huì)發(fā)現(xiàn),一種類型的文件總是可以用指定的應(yīng)用程序打開(kāi),如:doc文件,雙擊可以打開(kāi)文件,在使用delphi開(kāi)發(fā)應(yīng)用程序時(shí),同樣需要實(shí)現(xiàn)上邊的功能,其核心就獲取系統(tǒng)當(dāng)前的文件,而ParamStr函數(shù)起到了非常重要的作用,先面我們簡(jiǎn)單用 Delphi開(kāi)發(fā)以個(gè)應(yīng)用程序來(lái)說(shuō)明問(wèn)題:
首先,用 delphi新建立一個(gè)工程,然后分別創(chuàng)建窗體MainFrm,MyMDIChildForm,添加相應(yīng)的控件,如下圖
??????????
?
?????????????????????????????????????? ??? MainFrm
??????????????? 
????????????????????????????????????????? ? MyMDIChildForm
代碼如下:
Unit1.pas(對(duì)應(yīng)于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(對(duì)應(yīng)于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.
這樣我們實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的記事本程序,運(yùn)行結(jié)果如下圖:
?????????????? 
然后,我們將工程保存,并生成最終的EXE文件,然后我們?cè)赪indows系統(tǒng)目錄任意創(chuàng)建一個(gè)文件,
如下圖ResumeAction.java文件
????????????????????????? 
然后將它的打開(kāi)方式設(shè)置成我們自己的可執(zhí)行程序
??????????????????????????????????? 
然后再雙擊此文件,程序正確運(yùn)行,并將它打開(kāi)了!
???????????? 
程序的核心就是paramStr函數(shù),它獲得了系統(tǒng)接口,得到了當(dāng)前的文件名稱!
點(diǎn)擊下載