Código en Delphi 6, válido para Delphi for win32 y CodeGear RAD Studio (Delphi win32)
Home
Download
Documentos
Links
Historial
Correo

Tick


Este componente informa sobre el tiempo transcurrido entre dos momentos distintos.

El funcionamiento es el siguiente :

1.- Para marcar el inicio llamamos al método Run del componente.
2.- Para saber el tiempo transcurrido desde el inicio (Run) hasta ahora podemos llamar ha varios métodos : Interval, AsSeconds, AsHours,...
3.- Para marcar un nuevo Inicio llamamos al método Click.
4.- Para marcar un instante final llamamos al método Stop.
5.- Para saber si el componente está o no activo (hay un momento inicial - run- pero no un momento final -stop-), tenemos la propiedad Active.

Nota: Si se ha llamado a Run pero no a Stop, el tiempo que devuelven los distintos métodos se refieren al momento actual. Si se ha llamado a Stop entonces los valores devueltos se refieren a la diferencia entre el momento de arranque (Run) y el de parada (Stop).

Propiedades :

Active: Índica si el componente está activo(run) o ya se ha parado (Sólo lectura).
Initial : Momento inicial (-1 si no se ha llamado a run). (sólo lectura).
Final : Momento final (-1 si no se ha llamado a stop). (sólo lectura).
Notes : Propiedades relacionadas con las notas.
Una Nota es una entrada en una lista que maneja el componente que está compuesta por dos partes, lo que denominaremos Tick que se corresponde con un número en milisegundos que representa el momento en que la nota se guardo, este tiempo puede ser desde que se arrancó el ordenador o desde que se puso en funcionamiento una instancia de este componente, esto dependerá de la propiedad SourceTick que veremos más adelante y una cadena (opcional) que se le pasa como parámetro cuando se llama al método Note para crear una nota.
TickSeparator : Cadena de caracteres que separará el Tick del mensaje de la nota cuando se llama al método GetAllNotes.
NoteSeparator : Cadena que separará una nota de otra cuando se llama al método GetAllNotes
TickSource : Indicará si el tiempo guardado se refiere al momento de activación del control (stInterval) o al momento de arranque del ordenador (stSystem)
TickFormat : Formato con que se mostrará los 'Tick' de las distintas notas devueltas por GetAllNotes : anMilliseconds, anSeconds, anMinutes y anHours. Todos son Int64. Para hacer las transformaciones de milisegundos a horas, por ejemplo, sólo se toma la parte entera del resultado, así si el resultado fuera 2 horas y 34 minutos, sólo aparecerán las 2 horas.
Clear : Cada vez que se activa el componente se borra la lista de posibles notas anteriores, dependiendo de si esta propiedad vale True.

Métodos :

Run : Marca un instante inicial. Activa el control. Borra o no la lista de notas dependiendo del valor de la propiedad Notes.Clear.
Stop : Marca un instante final. Desactiva el control.
Click : Marca un instante inicial distinto al marcado en Run (sobre escribe el instante inicial)
Interval : Milisegundos transcurridos desde el instante inicial (momento de activación del componente) al final (momento en que se ejecutó Stop) o al momento actual.
Current : Devuelve un entero que se corresponde con el valor en milisegundos que lleva el ordenador funcionando.
AsSeconds, AsIntSeconds : Segundos transcurridos desde el instante inicial al final o en momento actual (con decimales o formato entero). Si se le pasa un valor en milisegundos >=0 entonces devuelve el valor en segundos.
AsMinutes, AsIntMinutes : Minutos transcurridos desde el instante inicial al final o en momento actual (con decimales o formato entero). Si se le pasa un valor en milisegundos >=0 entonces devuelve el valor en minutos.
AsHours, AsIntHours : Horas transcurridas desde el instante inicial al final o en momento actual (con decimales o formato entero).Si se le pasa un valor en milisegundos >=0 entonces devuelve el valor en horas.
AsDateTime : Tiempo transcurrido desde el instante inicial al final o en momento actual. Devuelve un TDateTime. Si se le pasa un valor en milisegundos >=0 entonces devuelve el valor en formato datatime.
AsTimeStamp : Tiempo transcurrido desde el instante inicial al final o en momento actual. Devuelve un TTimeStamp. Si se le pasa un valor en milisegundos >=0 entonces devuelve el valor en formato timestamp.
Note: Añade una entrada a una lista de notas gestionada por el componente. Esta nota contiene el instante (Tick) en el que se ejecuta y puede tener una cadena de carateres si se le pasa como parámetro.
GetNote: Devuelve un 'record' con dos campos : (1) Tick : con el valor en milisegundos que llevaba el ordenador funcionando o el control activo (depende de la propiedad Notes.TickSource) cuando se escribió la nota y (2) La cadena de caracteres que se le hubiera pasado cuando se escribió la nota
DeleteNote : Borra la nota cuyo índice se pasa como parámetro.
NotesCount : Número de notas en la lista.

Ejemplos :
Tick1.Run; ShowMessage(InttoStr(Tick1.Interval));
Muestra el tiempo (en milisegundos) desde que ejecutamos Run hasta ahora.
Showmessage(InttoStr(Tick1.AsIntMinutes));
Muestra el tiempo en minutos completos desde que ejecutamos Run hasta ahora.
A:=Tick1.AsIntMinutes(64500);
A vale 1. Transforma 64500 milisegundos en minutos completos.
A:=Tick1.AsMinutes(64500);
A valdría 1,075. Transforma 64500 milisegundos en minutos.

Eventos :

OnRun : Se produce en el momento de llamar al método Run, justo después de marcar el instante inicial.
OnStop: Se produce en el momento inmediatamente posterior a la llamada a Stop.
OnClick: Se produce en el momento inmediatamente posterior a la llamada a Click.

Descárgate un ejemplo