每当时间分钟替5时就执行一次代码

每当时间分钟为5时就执行一次代码
比如:

procedure TForm1.Button3Click(Sender: TObject);
begin
  Label1.Caption := '你好';
end;


如何让以上代码 每当当前时间分钟为5时就执行一次?

------解决方案--------------------
加一个周期为10秒的定时器,触发时 判断当前时间是不是分钟为5,上次执行时间与它是否不同,
不同则:执行,且把上次执行时间改为它
------解决方案--------------------
http://blog.****.net/asce1885/article/details/5746521
直接设置绝对时间来进行等待。
------解决方案--------------------
添加一个timer时钟,interval设置成300000。
在ontimer事件里写如下代码:
begin
   Label1.Caption := '你好'; 
end;
------解决方案--------------------
规律 5,10,15,20,25,30,25,40,45...
时间判断,能被5整除,但是不能被10整除。

//uses DataUtils
var
  t: Word;
begin
  t := DateUtils.MinuteOf(Now);
//  t := DateUtils.SecondOf(Now);   //以秒来测试
  if (t mod 5 = 0) and (t mod 10 <> 0) then   //以被5整除,且不能被10整除。
     OutputDebugString(PWideChar(IntToStr(t)));

------解决方案--------------------
抱歉理解错,有函数,TimetoStr(now);可得到一个关于时间的字符串,从中分离出分钟数就可以,再结合Timer……
------解决方案--------------------
LZ的要求不是“当前时间分钟为5时就执行一次? ”,那#3的代码成立的前提是从某个分钟数为5的时间开始计时。
------解决方案--------------------
貌似LZ的意思是  当前分钟为5的时候,即5,15,25,35,55 的时候,此时时间执行。
------解决方案--------------------
定时器,每多少秒,就触发一次,