Pero si sólo quieres que se ejecute a una hora determinada, entonces te sobra bastante de ese código, quedaría algo así como:
Código Delphi
[-]
private
var
bProcesado : boolean; <- poner a false en el oncreate o en onshow
...
...
...
procedure TFrm_Menu.RelojTimer(Sender: TObject);
var
ho,mi,se,mm : Word;
bProcesado : boolean;
begin
bProcesado := false;
Decodetime(now, ho,mi,se,mm);
if (ho=0) and (mi=0) and (se=0) and (not bProcesado) then
HacerLoqueTengasQueHacer();
end;
procedure HacerLoQueTengasQueHacer();
begin
loquesea;
otracosa;
bProcesado := true;
end;
La variable bProcesado sirve por si tarda más de un segundo en HacerLoQueTengasQueHacer que no lo vuelva a ejecutar.