夢(mèng)開始的地方

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            4 隨筆 :: 0 文章 :: 3 評(píng)論 :: 0 Trackbacks

          ?????? 在使用windows系統(tǒng)時(shí),我們會(huì)發(fā)現(xiàn),一種類型的文件總是可以用指定的應(yīng)用程序打開,如:doc文件,雙擊可以打開文件,在使用delphi開發(fā)應(yīng)用程序時(shí),同樣需要實(shí)現(xiàn)上邊的功能,其核心就獲取系統(tǒng)當(dāng)前的文件,而ParamStr函數(shù)起到了非常重要的作用,先面我們簡(jiǎn)單用 Delphi開發(fā)以個(gè)應(yīng)用程序來說明問題:
          首先,用 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文件

          ?????????????????????????

          然后將它的打開方式設(shè)置成我們自己的可執(zhí)行程序
          ???????????????????????????????????

          然后再雙擊此文件,程序正確運(yùn)行,并將它打開了!
          ????????????

          程序的核心就是paramStr函數(shù),它獲得了系統(tǒng)接口,得到了當(dāng)前的文件名稱!

          點(diǎn)擊下載

          posted on 2006-09-20 22:00 Dushengjun 閱讀(608) 評(píng)論(0)  編輯  收藏 所屬分類: Delphi

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 西乌珠穆沁旗| 惠州市| 宽甸| 宾川县| 右玉县| 新乡县| 萝北县| 偏关县| 正蓝旗| 福建省| 临邑县| 淅川县| 大田县| 汾阳市| 锡林浩特市| 呼和浩特市| 富裕县| 福泉市| 汕尾市| 洪雅县| 拉萨市| 平昌县| 电白县| 金堂县| 新巴尔虎右旗| 白城市| 罗定市| 武川县| 新田县| 游戏| 驻马店市| 惠安县| 临武县| 聂荣县| 江源县| 平泉县| 惠东县| 信丰县| 芜湖县| 双牌县| 南城县|