程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> DLL文件中Form的使用

DLL文件中Form的使用

編輯:Delphi
主題:DLL文件中Form的使用(2)

  貼出此文之前,未查閱過任何相似文章,如有相同,敬請見諒,並告示(注:本人曾就同一DLL中一窗體調用附窗體,如何實現之問題,請教過一前輩,但前輩笑笑未言),此為我在寫動態元件時想到的一方法,結果通過,各位見諒。我為初學,而求學路見艱難,貼出只望對象我一樣初學者給點幫助,無他。
  library DLLPJ;

  uses
    SysUtils,
    Classes,
    Unit1 in 'Unit1.pas' {Form1},
    Unit2 in 'Unit2.pas' {Form2};

  {$R *.res}

  exports
    ShowMainPRGWin;
   
  begin
  end.
  ----------
  unit Unit1;

  interface

  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Unit2,Dialogs, StdCtrls;
    //1.附窗體單元加在此處
  type
    TForm1 = class(TForm)
      Button1: TButton;
      procedure Button1Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;

  var
    Form1: TForm1;
    Form2: TForm2; //2.附窗體定義在此處
  // Declare the export function of Windows of the main DLL
  function ShowMainPRGWin(AHandle:THandle):BOOL;StdCall;

  implementation

  {$R *.dfm}
  function ShowMainPRGWin(AHandle:THandle):BOOL;
  begin
    Form1:=TForm1.Create(Application);
    Form2:=TForm2.Create(Application); //3.創建附窗體
    try
      Form1.ShowModal;
      Result:=False;
    Finally
      Form1.Free;
    end;
  end;

  procedure TForm1.Button1Click(Sender: TObject);
  begin
    Form2.ShowModal;//4.在主窗體上調用附窗體
  end;

  end.
  ------------
  unit Unit2;

  interface

  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs;

  type
    TForm2 = class(TForm)
    private
      { Private declarations }
    public
      { Public declarations }
    end;

  var
    Form2: TForm2;

  implementation

  {$R *.dfm}

  end.
  ----------
  //在其他窗體上調用DLL的定義及方法
  procedure ShowMainPRGWin(AHandle:THandle);StdCall External 'DLLPJ.DLL';

  ShowMainPRGWin(1);

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved