Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   time, comparar 2 campos ttime (https://www.clubdelphi.com/foros/showthread.php?t=19823)

Pascual Montes 28-03-2005 23:17:59

time, comparar 2 campos ttime
 
hola colegas , tengo una aplicacion que es un control de timbres
es decir que por medio de codigo enciendo y apago el timbre de la empresa
para emitir una señal sonora. mi pregunta es esta
tengo una tabla con 1 solo campo que se llama HORA y que es tipo ttime
alli guardo los horarios en donde debe activarse mi timbre
ok, la cuestion es que tengo un timer en donde comparo la hora del sistema
con las horas que tengo programadas , cuando es igual debe activarse, el problema es que comparar por ejemplo 13:02:48 contra 13:02:16 no son iguales
obviamente como compara mis 2 campos ttime para que solo compare la hora y los segundos ? o alguna mejor idea ?

mi codigo es el siguiente:

bandera:=0;
for c:=0 to altura-1 do begin
Xcdn1:=matriz[c,0];

mhora:=strtotime(Xcdn1);
syshora:=time();
showmessage('horas = '+timetostr(mhora)+' <-> '+timetostr(syshora));
if syshora = mhora then begin
bandera:=1;
exit;
end;
end;

if bandera=1 then begin
showmessage('entre por bandera = 1');
asm
push dx
mov dx, 378h //
mov al, 255
out dx, al
pop dx
end;

sleep(4000);
asm
push dx
mov dx, 378h //
mov al, 255
out dx, al
pop dx
end;
bandera:=0;

end;

------------------
Gracias
saludos desde tierra de los mayas

geovany 29-03-2005 00:42:22

DecodeTime
 
Busca en la ayuda de delphi como utilizar esta funcion, te permite obtener la hora, minutos, segundos y milisegundos de una hora que tu le das asi que de ahi en adelante es tu chamba

Pascual Montes 29-03-2005 19:50:47

Encontre solucion
 
colegas encontre una solucion para esto haciendo una copia de la hora que solo contenga la hora y los minutos ademas guardo la ultima hora en que se activo el timbre para que solo toque una vez por que de lo contrario estaria activandose todo ese minuto vean este es el codigo.

for c:=0 to altura-1 do begin
Xcdn1:=matriz[c,0];

mhora:=strtotime(Xcdn1);
syshora:=time();

if (copy(timetostr(syshora),1,5) = copy(timetostr(mhora),1,5))
and (copy(timetostr(syshora),1,5) <> copy(timetostr(ultimo_timbre),1,5)) then begin


ultimo_timbre:=syshora;
bandera:=1;

asm
push dx
mov dx, 378h //
mov al, 255
out dx, al
pop dx
end;

sleep(strtoint(Cduratimbre));

// saludos desde tierra maya :D


La franja horaria es GMT +2. Ahora son las 01:09:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi