FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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
__________________
El Fracaso tiene mil explicaciones el Éxito no necsita explicación |
#3
|
|||
|
|||
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 |
|
|
|