Ver la Versión Completa : De una captura de fecha, hacer que avance con TTimer
Cristhor1982
20-05-2013, 22:14:00
Amigos...les cuento, desde mi BD, obtengo el campo (Hora), lo dejo en un Label.Caption...Algo ASI
label2.Caption := timetostr(hora)
Ahora bien, quiero que el timer lo haga avanzar desde la hora capturada...se entiende?..Gracias
Saludos
:)
Los Hilos que encontré no me ayudaron mucho
:S
ecfisa
20-05-2013, 22:46:08
Ahora bien, quiero que el timer lo haga avanzar desde la hora capturada...se entiende?.
Hola.
Bueno, espero que si... :rolleyes: :)
Ejemplo:
implementation
uses DateUtils;
var
CampoHora : TTime;
procedure TForm1.FormCreate(Sender: TObject);
begin
CampoHora := Time;
// En tu caso sería: CampoHora := TuDataSet.FieldByName('FECHA').AsDateTime;
Label1.Caption := FormatDateTime('hh:mm:ss', CampoHora);
Timer1.Interval := 1000;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
CampoHora := IncSecond(CampoHora);
Label1.Caption := FormatDateTime('hh:mm:ss', CampoHora);
end;
Saludos. :)
Cristhor1982
20-05-2013, 22:55:00
Ecfisa
Muchas Gracias...!!!, me funciono excelente....Gracias...Ahm, se salta los segundos, pero ahi vere, lo que muestra es esto
16:31:00...16:31:02...16:31:03 y asi sucesivamente
Pero le echare un vistazo GRACIAS
Saludos
Cristhor1982
22-05-2013, 17:51:52
Hola, ECFISA
Te cuento que no logro dar con el porque de el adelanto de un segundo mas ...me podrías dar una idea porfa. Como avanzaba el doble lo unico que se me ocurrio para salir del paso es aumentar el interval a 2000 desde que captura, y no mostrar los segundos :S
Saludos
Hola.
Bueno, espero que si... :rolleyes: :)
Ejemplo:
implementation
uses DateUtils;
var
CampoHora : TTime;
procedure TForm1.FormCreate(Sender: TObject);
begin
CampoHora := Time;
// En tu caso sería: CampoHora := TuDataSet.FieldByName('FECHA').AsDateTime;
Label1.Caption := FormatDateTime('hh:mm:ss', CampoHora);
Timer1.Interval := 1000;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
CampoHora := IncSecond(CampoHora);
Label1.Caption := FormatDateTime('hh:mm:ss', CampoHora);
end;
Saludos. :)
nlsgarcia
22-05-2013, 19:25:48
Cristhor1982,
...se salta los segundos...no logro dar con el porque de el adelanto de un segundo mas...
Revisa este código:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, DateUtils;
type
TForm1 = class(TForm)
Button1: TButton;
Timer1: TTimer;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Tiempo : TTime;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Tiempo := Time;
ListBox1.Items.Add(FormatDateTime('hh:mm:ss', Tiempo));
Timer1.Interval := 500;
Timer1.Enabled := True;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Tiempo := IncSecond(Tiempo);
ListBox1.Items.Add(FormatDateTime('hh:mm:ss', Tiempo));
end;
end.
El código anterior basado en el ejemplo del Msg #2 muestran los segundos de forma consecutiva en un control TListBox al disminuir el intervalo de tiempo en el control Timer de 1000 ms a 500 ms, en tu caso particular puedes ajustarlo según tus requerimientos.
Espero sea útil :)
Nelson.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.