我想做个DLL里面有个TTimer空间 有OnTimer 事件程序调用DLL并且响应DLLOnTimer 事件有哪位大哥给个例子,谢谢

解决方案 »

  1.   

    dll代码如下:
    library DllTimer;uses
      SysUtils,
      Classes,
      ExtCtrls;{$R *.res}var
      aTimer: TTimer;procedure SetDllOnTimer(DllOnTimer: TNotifyEvent);
    begin
      aTimer.OnTimer := DllOnTimer;
      aTimer.Enabled := True;
    end;exports
      SetDllOnTimer;begin
      aTimer := TTimer.Create(nil);
      aTimer.Interval := 5000;
      aTimer.Enabled := False;
    end.
    主窗口代码如下:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ExtCtrls, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure MyOnTimer(Sender: TObject);
      public
        { Public declarations }
      end;var
      Form1: TForm1;  procedure SetDllOnTimer(DllOnTimer: TNotifyEvent); external 'DllTimer.dll';implementation{$R *.dfm}procedure TForm1.MyOnTimer(Sender: TObject);
    begin
      Memo1.Lines.Add('123');
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      SetDllOnTimer(MyOnTimer);
    end;end.