如何在一个类中嵌入一个Ttimer类?(50分)

  • 主题发起人 主题发起人 陈亮96
  • 开始时间 开始时间

陈亮96

Unregistered / Unconfirmed
GUEST, unregistred user!
例如一个Timage类中嵌入一个Ttimer类,使Timage类能够使用Ttimer来记时而决定Timage类的生命期不断减少,而后destroy它。
 
ftimer: Ttimer;
...

{in create}
ftimert:= timer.create(self);
 
FTimer 最好动态创建。方法如下:
TMyImage = ...
private
FTimer: TTimer;
procedure DoOnExpired(Sender: TObject);
procedure ActiveTimer;
procedure StopTimer;
...
end;

destructor TMyImage.Destroy;
begin
if FTimer <> nil then FTimer.Free;

inherited Destroy;
end;

procedure TMyImage.ActiveTimer;
begin
if FTimer = nil then FTimer := TTimer.Create(Self);
with FTimer do
begin
OnTimer := DoOnTimer;
Interval := FInitPause;
Enabled := True;
end;
end;

procedure TMyImage.DoOnTimer(Sender: TObject);
begin
FTimer.Interval := FPause;
try
....
except
FTimer.Enabled := False;
raise;
end;
end;

procedure TMyImage.StopTimer;
begin
if FTimer <> nil then FTimer.Enabled := False;
end;

可参看:dbCtrls.pas - TNavButton
 
我说的是要让Timer不断的减少生命值(如livetimer:integer),
最好附上代码.
 
还要问一点,Timage能动态生成吗?我试过是不能的.
(我说的动态生成是在设计时是没有的,只能在
程序中生成)
 
可以。
TempImage := TImage.Create(nil);
TempImage.Picture.LoadFromFile('C:/PWIN98/CLOUDS.BMP');
// PaintBox1.Canvas.Draw(0, 0, TempImage.Picture.Bitmap);
TempImage.Free;
 
你设计的一个控件,用户是看不见里面的不可见控件的,
 
接受答案了.
 
后退
顶部