久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

一個(gè)值得大家來考慮的dll問題

 frie 2005-08-08
 

在MDI窗體類型的編程中,主窗體(fsMDIForm)怎樣調(diào)用子窗體(fsMDIChild,,此子窗體為DLL),。
以下是我的原代碼:
==========================================================================================
DPR  單元代碼

program Mdiform;

uses
  Forms,
  UMdiform in ‘UMdiform.pas‘ {Mainform},
  UDM in ‘UDM.pas‘ {GlobalDM: TDataModule},
  UFun in ‘UFun.pas‘;

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TMainform, Mainform);
  Application.Run;
end.
===============================================================================================

主窗體代碼:
unit UMdiform;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Udm,StdCtrls;
type
 
  TMainform = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
     MyHandle:HWND;
    { Public declarations }
  end;

var
  Mainform: TMainform;

type
  T_ShowTestMng=function (var adm:TMainform) : Boolean; StdCall;

implementation
{$R *.dfm}

procedure TMainform.Button1Click(Sender: TObject);
var
  Lib_         :THandle;
  _ShowTestMng :T_ShowTestMng;
begin
  Lib_:=LoadLibrary(pchar(‘MdiChild.dll‘));
  try
    @_ShowTestMng:=GetProcAddress(Lib_,‘_ShowTestMng‘);
    if not(@_ShowTestMng=nil) then
      _ShowTestMng(Mainform);
  finally
    FreeLibrary(Lib_);
  end;
end;

procedure TMainform.FormCreate(Sender: TObject);
begin
 MyHandle:=Application.Handle;
end;

end.
==============================================================================================

子窗體DLL代碼:
library MdiChild;

uses
  ShareMem,
  UMdiform,  //此單元為父窗體單元,在頂目設(shè)置中我已經(jīng)設(shè)置了搜索此單元在路徑,。
  Forms,
  SysUtils,
  Classes,
  UChild in ‘UChild.pas‘ {FrmChild};//FrmChild子窗體的FormStyle屬性為FsMDIChild

{$R *.res}
function _ShowTestMng(var adm:TMainform) : Boolean; StdCall;
begin
  result:=true;
  Application.Handle:=adm.MyHandle;
  Application.CreateForm(TFrmChild,FrmChild);   //程序就出錯(cuò)在此:出錯(cuò)原因是:Cannot create form. No MDI Forms are currently active.
  FrmChild.Show;
end;

exports
    _ShowTestMng;
end.

CSDN 網(wǎng)友 ( 2004-09-26)
垃圾
fugongming ( 2004-06-09)
將主窗體的application.Handle傳入Dll中,,并用它替換Dll中的Application,然后創(chuàng)建子窗體,。就Ok了
lihaijiang ( 2004-05-31)
哈哈,沒什么值得評(píng)價(jià)的呢
cybercake ( 2004-05-29)
算不上什么值得深思的問題,,還是發(fā)到論壇上比較好,。
CoolSlob ( 2004-05-28)
就這么幾行簡單的代碼也要解釋?~

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請遵守用戶 評(píng)論公約

    類似文章 更多