private
    procedure MyTimer(Sender: TObject);
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.MyTimer(Sender: TObject);
begin
  showmessage('pl');
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  with TTimer.Create(nil) do
  begin
    Interval:= 1000;
    Name :='MyTimer';
    ontimer :=MyTimer;
    enabled :=true;
  end;
end;end.

解决方案 »

  1.   

    我是说在DLL里实现TTimer
    而不是在FORM里
    他们有不同么?
      

  2.   

    timer1.OnTimer:=你自己的函数;************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  3.   

    我知道呀
    可使用时,一执行到Create就出现非法操作
    不知为什么
      

  4.   


    procedure doone(Sender: TObject);//要声明放那里就是你的事了.
    procedure TimerDo(); stdcall; export;
    var
      MyTimer: TTimer;
      i: Integer;
    begin
      Mytimer.Create(MyTimer);
      MyTimer.Interval:= 100;
      mytimer.ontime:=doone;
    end;
    procedure doone(Sender: TObject);
    begin
    end;************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  5.   

    按你的方法,Mytimer.Create(MyTimer);在delphi里面都没有办法运行,根据你的情况
    我有以下方法:unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, ExtCtrls, StdCtrls;
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Label1: TLabel;
        Button2: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     type
      TMyTimer= class(TTIMER)
      PROCEDURE OnLinetime(Sender: TObject);
      END;
    var
      Form1: TForm1;
      mytimer:Tmytimer;
    implementation
    {$R *.dfm}
    PROCEDURE Tmytimer.OnLinetime(Sender: TObject);
    BEGIN
    FORM1.Label1.Caption:=DATETIMETOSTR(NOW);
    END;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    mytimer:=Tmytimer.CREATE(SELF);
    mytimer.Interval:=100;
    mytimer.Enabled:=true;
    mytimer.OnTimer:=mytimer.onlinetime;
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    Mytimer.Free;
    end;
    end.
    ************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************
      

  6.   

    type
      TMyTimer= class(TTIMER)
      PROCEDURE OnLinetime(Sender: TObject);
      END;
    var
    mytimer:Tmytimer;
    implementation
    {$R *.dfm}
    PROCEDURE Tmytimer.OnLinetime(Sender: TObject);
    BEGIN
    FORM1.Label1.Caption:=DATETIMETOSTR(NOW);
    END;
    procedure TimerDo(); stdcall; export;
    begin
    mytimer:=Tmytimer.CREATE(SELF);
    mytimer.Interval:=100;
    mytimer.Enabled:=true;
    mytimer.OnTimer:=mytimer.onlinetime;
    end;
    end.
    ************
    * 努力学习 *
    *   全为   *
    *¥人民币¥*
    ************