怎样给timer的 ontime赋值(100分)

  • 主题发起人 主题发起人 longer
  • 开始时间 开始时间
L

longer

Unregistered / Unconfirmed
GUEST, unregistred user!
我想给timer的 ontime赋值 ss,可是不行
procedure TLine.ss(bmp:TBitmap);
begin
with bmp.Canvasdo
begin
if pen.Color<>clred then
pen.color:=clred
else
pen.color:=clblue;
moveto(bassPoint.x,basspoint.y);
lineto(secPoint.x,secpoint.y);
end;
end;
 
什么意思,TTimer 的 OnTime是一个事件,你要干什么?
 
在onTime事件中调用SS
 
timer1.ontime:=ss;不过,你的SS得修改一下。
 
当给一个事件赋值时,传递的参数必须同其原来的参数相同,
OnTimer 中用的参数是Sender: TObject, 而你传的不是一个TObject,所以赋值
会出错,如果改成 procedure ss(bmp:TObject) 则不会有问题。
再者,Sender 是个特殊的参数,指的是一个发送该事件的对象,这么用是
有问题的。我认为你的程序最好是在 OnTimer 事件中进行画线操作,而对应的
TBitmap 最好来源于一个变量。
 
to crab:
我的bmp是一个传递过来TBitmap类型,我要用到他,要是换成TObject,则
没办法写底下的代码了
 
你只能另外定义一个方法 AProcedure(sender:Tobject)
在这里面调用Tline.ss
procedure Tform1.AProcedure(sender:Tobject);
begin
TLine.ss(ABmp);
end;

Timer1.Ontime:=Aprocedure;
 
多人接受答案了。
 
后退
顶部