Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 564|回复: 0

timer

[复制链接]

254

主题

363

帖子

2431

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2431
发表于 2024-12-16 00:08:44 | 显示全部楼层 |阅读模式
  1. type
  2.   TMyThread = class(TThread)
  3.   private
  4.     FTimer: TTimer;
  5.   protected
  6.     procedure Execute; override;
  7.     procedure TimerEvent(Sender: TObject; Timer: TTimer);
  8.   public
  9.     constructor Create;
  10.     destructor Destroy; override;
  11.   end;

  12. var
  13.   Form1: TForm1;
  14.   MyThread: TMyThread;
复制代码
  1. implementation

  2. {$R *.dfm}

  3. constructor TMyThread.Create;
  4. begin
  5.   inherited Create(False);
  6.   FreeOnTerminate := True;
  7.   FTimer := TTimer.Create(nil);
  8.   FTimer.OnTimer := TimerEvent;
  9.   FTimer.Interval := 1000; // 设置间隔时间(例如:1000毫秒)
  10.   FTimer.Enabled := True;
  11. end;

  12. destructor TMyThread.Destroy;
  13. begin
  14.   FTimer.Free;
  15.   inherited;
  16. end;

  17. procedure TMyThread.Execute;
  18. begin
  19.   while not Terminated do
  20.   begin
  21.     Synchronize(
  22.       procedure
  23.       begin
  24.         Form1.Button1.Caption := 'Thread is running...';
  25.       end
  26.     );
  27.     Sleep(100);
  28.   end;
  29. end;

  30. procedure TMyThread.TimerEvent(Sender: TObject; Timer: TTimer);
  31. begin
  32.   // 这里放置你想要定期执行的代码
  33. end;
复制代码
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   MyThread := TMyThread.Create;
  4. end;
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-4-16 04:57 , Processed in 0.012563 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表