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.
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.
而不是在FORM里
他们有不同么?
* 努力学习 *
* 全为 *
*¥人民币¥*
************
可使用时,一执行到Create就出现非法操作
不知为什么
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;************
* 努力学习 *
* 全为 *
*¥人民币¥*
************
我有以下方法: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.
************
* 努力学习 *
* 全为 *
*¥人民币¥*
************
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.
************
* 努力学习 *
* 全为 *
*¥人民币¥*
************