Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Cronometrar un tiempo (https://www.clubdelphi.com/foros/showthread.php?t=53480)

vejerf 21-02-2008 16:44:59

Cronometrar un tiempo
 
Hola compis,
Mi tarea de hoy es controlar el tiempo que transcurre hasta que pulso un botón. Sé que el componente Ttimer lo puedo programar para realizar una tarea, pero mi problema es el siguiente...
Yo programo una tarea para que se ejecute cada cierto tiempo con el TTimer, pero a la vez tengo un botón para ejecutar esa tarea cuando me plazca. Pues bien, necesito saber en todo momento el tiempo que ha transcurrido desde la última vez que se realizó la tarea, ya sea por el evento TTimer o por la pulsación del botón. Cada vez que ocurre uno de los dos eventos el timer si reinicia.

Gracias a todos!!! :p

jachguate 21-02-2008 17:00:44

Guarda en una variable la hora a la que se ejecutó la última vez:

Código Delphi [-]
type
  TForm1 = class(TForm)
  ...
  private
    FTiempoTranscurrido: TDateTime;
    FHoraUltimoProceso: TDateTime;
...

procedure TForm1.Procesar;
begin
  if FHoraUltimoProceso <> 0 then
    FTiempoTranscurrido := now - FHoraUltimoProceso;
  FHoraUltimoProceso := now;
  // procesar
end;

Hasta luego.

;)

vejerf 21-02-2008 17:35:24

Lo primero es darte las gracias por tu aportación...
y lo segundo comentarte que me da un fallo a la hora de ejecutarlo.

En una estructura me he creado un campo llamado:
UltimaActualizacion : TDateTime
Por otra parte cuando se crea el Form hago la siguiente asignación que es donde da el fallo de ejecución:
UltimaActualizacion := now;

¿Qué puedo estar haciendo mal?¿Me falta algo como TDateForm.create?

Gracias de nuevo...

gluglu 21-02-2008 17:40:27

Edito : Me he equivocado

jachguate 21-02-2008 17:50:08

Cita:

Empezado por vejerf (Mensaje 267588)
y lo segundo comentarte que me da un fallo a la hora de ejecutarlo.

Por favor, sin saber cual es el fallo, imposible!. Lee el hilo de la calidad de las preguntas.

Hasta luego.

;)

vejerf 21-02-2008 17:58:59

El fallo que me da es una excepción de violación a una dirección más concretamente me da: "EAccessViolation with message 'Access violation at address...'"

Salu2

jachguate 21-02-2008 18:18:52

Bueno, evidentemente estas usando un puntero no válido. Esto puede ser al usar una referencia a un objeto que no ha sido creado o bien usar una referencia a un objeto que ya fue destruido. Ejecutando paso a paso podrás ver cuál es la variable que da el problema y con suerte, figurarte de una vez la solución.

Hasta luego.

;)


La franja horaria es GMT +2. Ahora son las 21:53:07.

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