在开发程序时,怎么能够把窗体也做成dll文件并调用。也就是:比如我以前做的登录窗口都是直接建立窗体,在上面放上相应的控件,现在想把这整个窗体做成DLL,以便于以后调用。最好能给出相应的例子或相关的教程。在此先谢谢了!!!

解决方案 »

  1.   

    DLL进行初化,并写入相应的入口函数及出口函数
      

  2.   

    public
        linkDir:string;
        AttNum:Word;
        fanhuizhi:string;
        ADOTable1:TADOTable;
        { Public declarations }
      end;function AddFirstAttribForm_1(Ahandle:THandle;linkDir:string;Linker_1:TADOConnection):Word;StdCall;implementation
    {$R *.dfm}function AddFirstAttribForm_1(Ahandle:THandle;linkDir:string;Linker_1:TADOConnection):Word;
    var
      AddFirstAttribForm: TAddFirstAttribForm;
    begin
      Application.Handle:=Ahandle;
      AddFirstAttribForm:=TAddFirstAttribForm.Create(Application);
      AddFirstAttribForm.ADOTable1:=TADOTable.Create(Application);
      try
        AddFirstAttribForm.ADOTable1.Connection:=Linker_1;
        AddFirstAttribForm.linkDir:=linkDir;
        AddFirstAttribForm.ShowModal;
        result:=AddFirstAttribForm.AttNum;
      finally
        AddFirstAttribForm.ADOTable1.Free;
        AddFirstAttribForm.Free;
      end;
    end;在你的工程的第一个窗口的unit单元里写入上代码:
    这是在new   dll winzard      把这个单元加进去,  并exports   AddFirstAttribForm_1
    这就是你的动态连接库的入口函数  直接调用
      

  3.   

    和普通DLL一样的,先建个DLL,新建窗体,当正常的应用程序设计。然后在外接函数里把那个窗体创建一下再显示就可以了。外接声明:
    exports
      Show_Form;接口函数声明:function Show_Form(Han:THandle):boolean;stdcall;
    接口函数(可以写在窗体的implementation下面):
    function Show_Form(Han:THandle):boolean;
    begin
      application.handle:=Han;  //获得主程序句柄。
      Form1:=TForm.Create(application);
      Form1.ShowModal;
    end;
      

  4.   

    我按照楼上的做的出现下面错误啊
    [Error] Unit1.pas(25): Undeclared identifier: 'handle'