急,关于回调问题,见内容,谢谢

tianjin 2013-04-17 01:34:34
我想做个DLL里面有个TTimer空间 有OnTimer 事件

程序调用DLL并且响应DLLOnTimer 事件

有哪位大哥给个例子,谢谢
...全文
235 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianjin 2013-04-17
  • 打赏
  • 举报
回复
谢谢大家,尤其是 feiba7288 我太着急了,发了看没人回就在其他delphi板块又发了,再次谢谢大家
酣酣 2013-04-17
  • 打赏
  • 举报
回复

unit UntMain;

interface

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

type
  TDLLInvokFun = function : TTimer;

  TForm1 = class(TForm)
    lbl1: TLabel;
    btn1: TButton;
    procedure btn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    FTestTime : TTimer;
    FDLLHandle : THandle;
    procedure TestTimerEvents(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TestTimerEvents(Sender: TObject);
begin
  lbl1.Caption := DateTimeToStr(Now);
end;

procedure TForm1.btn1Click(Sender: TObject);
var
  tmpFileName : string;
  tmpFun : TDLLInvokFun;
begin
  if FDLLHandle = 0 then begin
    tmpFileName := ExtractFilePath(Application.ExeName) + 'TestDll.dll';
    FDLLHandle  := LoadLibrary(PChar(tmpFileName));
  end;

  tmpFun := GetProcAddress(FDLLHandle,'GetTimer');
  FTestTime := tmpFun();

  FTestTime.OnTimer := TestTimerEvents;
  FTestTime.Enabled := True;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FDLLHandle := 0;
end;

end.

*****************************************************************

unit UntTestData;

interface

uses
  SysUtils, Classes, ExtCtrls;

type
  TdmTestData = class(TDataModule)
    Timer1: TTimer;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dmTestData: TdmTestData;

function GetTimer : TTimer;

implementation

function GetTimer : TTimer;
begin
  if not Assigned(dmTestData) then begin
    dmTestData := TdmTestData.Create(nil);
  end;
  Result := dmTestData.Timer1;
end;

{$R *.dfm}

end.

sololie 2013-04-17
  • 打赏
  • 举报
回复
晕,发这么多贴,LS已经给你回复了: http://bbs.csdn.net/topics/390429263
feiba7288 2013-04-17
  • 打赏
  • 举报
回复
晕,发这么多贴,已经给你回复了: http://bbs.csdn.net/topics/390429263

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧