Ver la Versión Completa : Algun procedimiento se ejecuta continuamente!!
Artigas72
07-11-2012, 18:10:59
Hola a todos, perdón la molestia, y como saben, ya hace un tiempo que no vengo por acá...
Pero bueno...
Tengo una duda para la cuál no he encontrado la respuenta aún...
hay algún evento o procedimiento delphi que se ejecute continuamente?
O sino, hay como programar para que un evento se lance a cuando la fecha encontrada por el
SELECT CURTIME();
Sea >= 8:00:00
Muchisimas gracias de Antemano!
:D
ecfisa
07-11-2012, 19:05:36
Hola Artigas72.
Si no entendí mal lo que buscas, podes agregar un componente TTimer (pestaña System) y este código al evento OnTimer del mismo:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
with IBQuery1 do
begin
Close;
SQL.Text:= 'SELECT CURRENT_TIME AS HORA FROM RDB$DATABASE';
Open;
if FieldByName('HORA').AsString >= '08:00:00' then
begin
ShowMessage('Tiempo cumplido, hacer lo que gustes');
...
end;
...
end;
end;
La cadena SQL para obtener la hora funciona en Firebird, tendrás que reemplazarla por la que corresponda a tu manejador de bd.
Saludos.
nlsgarcia
07-11-2012, 19:19:57
Artigas72,
Revisa este código:
procedure TForm1.Button1Click(Sender: TObject);
var
T1 : TTime;
T2 : TTime;
begin
Loop := True;
Repeat
Application.ProcessMessages;
T1 := Time;
T2 := StrToTime('08:00:00');
if (T1 >= T2) then
begin
// El código que quieras ejecutar
end;
// Permite cancelar el ciclo externamente por medio de la variable global Loop
until Loop = False;
end;
Espero sea útil :)
Nelson.
Neftali [Germán.Estévez]
07-11-2012, 20:07:05
Revisa este código:
Esto es lo que se llama una espera activa y consume recursos, yo en este caso optaría por un timer.
nlsgarcia
07-11-2012, 20:22:59
Artigas72,
Revisa este Link: http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=484#.UJqw3me2HQg
En el link encontrarás como implementar tu requerimiento como un Servicio en Windows.
Espero sea útil :)
Nelson.
Artigas72
07-11-2012, 20:42:35
Muchisimas gracias a todos,
Las primeras recomendaciones con el Timer me sirvieron...
Ahora estoy probando a ver como podria cargar el
SELECT CURTIME()
con Zeos...
Muchisimas Gracias a todos!
:D
Maniches
07-11-2012, 20:52:17
Si es recomendable en la mayoría trabajar con componentes que ya están elaborados. y como dice nuestro amigo Neftali otros métodos consumen recursos.
Saludos.
ecfisa
07-11-2012, 20:57:15
Muchisimas gracias a todos,
Las primeras recomendaciones con el Timer me sirvieron...
Ahora estoy probando a ver como podria cargar el
SELECT CURTIME()
Hola.
Tengo entendido que entre los componentes zeos existe el TZQuery y supongo que el uso es muy similar al TIBQuery, así que aún sin conocer el componente, me arriesgo a sugerirte que pruebes este código:
begin
with ZQuery1 do
begin
Close;
SQL.Text:= 'SELECT CURTIME() AS HORA';
Open;
ShowMessage(FieldByName('HORA').AsString);
Close
end;
end;
(Luego me decis si dije un disparate... :o )
Saludos. :)
Artigas72
08-11-2012, 01:33:51
Perdon la demora,
Estuve medio complicado hoy...
Pero sí, eso me fije hoy y andaba...
:D Muchisimas gracias a todos!
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.