动态创建Timer控件,怎样给OnTimer事件附值。????? 300分!!!!!!(300分)

  • 主题发起人 主题发起人 scorpions
  • 开始时间 开始时间
S

scorpions

Unregistered / Unconfirmed
GUEST, unregistred user!
program Project1;

uses
Forms,ExtCtrls;


{$R *.RES}
var
timer1:Ttimer;
procedure ontimer;
begin
timer1.Enabled :=false;
//
timer1.Enabled :=true;
end;
begin
Application.Initialize;
timer1:=Ttimer.Create (nil);
timer1.Interval :=1000;
timer1.OnTimer :=ontimer; //////不知procedure怎么转换成TNotifyEvent
Application.Run;
end.


应怎样给OnTimer事件附值。???

还有一问题:
delphi 写控制台程序,输出和输入是哪两个函数??(象C++的cout , cin)
 
program Project2;
uses
Forms,extctrls,dialogs,sysutils;

{$R *.RES}
type
tmyobject=class(TObject)
timer1:ttimer;
procedure ontimer(Sender: TObject);
end;
var
myobject:tmyobject;

procedure tmyobject.ontimer(Sender: TObject);
begin
timer1.Enabled :=false;
beep();
//
timer1.Enabled :=true;
end;
begin
Application.Initialize;
myobject:=tmyobject.Create();
myobject.timer1:=Ttimer.Create (nil);
myobject.timer1.Interval :=1000;
myobject.timer1.OnTimer :=myobject.ontimer;
Application.Run;
ShowMessage('wait');
end.
这样就可以了,
type TNotifyEvent = procedure (Sender: TObject) of object;
TNotifyEvent函数必须是一个object类或其继承类的成员函数,
所以ontimer必须放在一个类里面.

另外,控制台的输入输出函数是
write
writeln//输出一行,结尾带回车换行
read
readln//输入一行,


 
说得这么清楚,连一点机会都不留给别人 :)
 
原理上来说:只要定义一个和事件的结构相同的过程就行了。任何一个控件大抵如此
 
来晚啦!
 
自己用API函数SETTIMER 和KILLTIMER 写得更清楚
处理事情就用ONTIMMER 就OK
 
到了myobject.timer1.OnTimer :=myobject.ontimer;
为什么不执行ontimer过程???
 
看看 Timer.Enabled 吧,还有,你怎么在 OnTimer 中这样写代码?
procedure ontimer;
begin
timer1.Enabled :=false;
//
timer1.Enabled :=true;
end;
 
我是想要在timer1.Enabled :=false;后执行完我的程序
再timer1.Enabled :=true;循环执行程序。
不知哪有错,请高手指点。

为什么到了myobject.timer1.OnTimer :=myobject.ontimer;
不执行ontimer过程,而直接结束程序???

 
如果你在myobject.timer1.OnTimer :=myobject.ontimer之后没有等待的代码的话,
在ontimer还没响应之前程序就会退出,当然不会执行ontimer过程。
 
用什么等待的代码合适呢??
 
都说的很清楚了
 
那就看你的程序需要什么条件退出了
例如:可以是一个变量CanExit:Boolean,然后在
myobject.timer1.OnTimer :=myobject.ontimer;
后加上
CanExit:=false;
while(not CanExit);
如果你的程序要退出可以将CanExit设成true;
 
多人接受答案了。
 

Similar threads

后退
顶部