Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Usar el Timer de la PC (https://www.clubdelphi.com/foros/showthread.php?t=56033)

JoseFco 06-05-2008 00:58:20

Usar el Timer de la PC
 
Hola amigos.

Me podian dar una idea, algun ejemplo o un link que me refiera a como usar el urt de la pc para manipular eventos, (dia, mes, hora)

Un Saludo.

Neftali [Germán.Estévez] 06-05-2008 09:52:53

Deberías explicarte un poco mejor.
¿Qué es lo que necesitas o deseas hacer?
¿No te vale utilizar un timer normal y corriente? ¿No te vale utilizar GetTickCount?

JoseFco 07-05-2008 01:58:23

Cita:

Empezado por Neftali (Mensaje 284470)
Deberías explicarte un poco mejor.
¿Qué es lo que necesitas o deseas hacer?
¿No te vale utilizar un timer normal y corriente? ¿No te vale utilizar GetTickCount?

Hola Neftali.
Estaba probando con Timer y el evento OnTimer, pero no se si es que no lo logro acomodar bien a lo que quiero hacer.Por ejemplo se pueden usar varios Timers? y con un evento OnTimer se puede hacer que en un tiempo haga una funcion y en el siguiente tiempo haga lo contrario a esa funcion?

Un Saludo.

Delphius 07-05-2008 04:23:56

Cita:

Empezado por JoseFco (Mensaje 284720)
Hola Neftali.
Estaba probando con Timer y el evento OnTimer, pero no se si es que no lo logro acomodar bien a lo que quiero hacer.Por ejemplo se pueden usar varios Timers? y con un evento OnTimer se puede hacer que en un tiempo haga una funcion y en el siguiente tiempo haga lo contrario a esa funcion?

Un Saludo.

JoseFco,
Claro que se puede. Pero para asesorarte mejor sería útil que nos describas bien lo que deseas hacer.

Un ejemplo sencillo de lo que buscas se podría conseguir con algo similar a esto:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if HacerA
     then RealizarAccionA
     else RealizarAccionB;
  // al finalizar cualquier operación negamos la variable booleana
  // esto garantiza que haga una o la otra siempre
  HacerA := Not HacerA;
end;

Siendo HacerA una variable boolean.

Eso es equivalente a esto otro:

Código Delphi [-]
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if HacerA
     then begin
              RealizarAccionA;
              HacerA := False;
            end
     else begin
             RealizarAccionB;
             HacerA := True;
            end;
end;

No se si me explico.

Por ello te pediría que nos detalles mejor lo que buscas hacer para saber el mejor modo de ayudarte.

Saludos,

MaMu 07-05-2008 05:35:41

JoseFco

Yo te diría que los timers, muchas veces no son precisos. Digo esto en cuanto a técnicas de control RealTime se refiera. Por ejemplo, yo prefiero la vieja escuela, Ticks del PC y frecuencia de oscilación del uProcesador de la PC, puesto a que, todo dependerá siempre del "margen de error" admisible para la aplicación. Un ejemplo sería, crear una aplicación en Delphi, usando timers, para controlar un motor paso a paso con la técnica de "micropasos".
Dicho de otro modo, los timers tienen la desventaja, para alguien que piensa como "electrónico" (como es mi caso) en vez de "informático", de tener un rango de valor admisible variable muy delimitado por los extremos. Un Sleep, un Timer, tienen un límite mínimo como intervalo cerrado entre dos procesos, por lo que, para muchas técnicas de control, dan dolores de cabezas.
Quizas, para hacer un intervalo cada 1ms, un timer bastará, pero que pasa cuando nuestro tiempo requerido es la centecimo aba parte de un ms???.


Saludos


La franja horaria es GMT +2. Ahora son las 16:20:58.

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