PDA

Ver la Versión Completa : Operaciones matematicas con tiempo


CoCaInE
14-11-2007, 04:27:41
Buenas, estoy intentando hacer saber a el usuario el tiempo restante que le queda para cerrar un formulario...estoy trabajando en un sistema de loteria y me gustaria que tiempo restante le queda para cerrar el sorteo intente esto.... pero no me sale :(

//Exacta es una variable que almacena el tiempo tomado de un query Edit5.Text:=timetostr(Exacta-1));

estaria muy agradecido si me echan una manito..:)

dec
14-11-2007, 08:17:05
Hola,

Pues así, a bote pronto, parece cosa de utilizar un "TTimer", ¿no? Con el "TTimer" en marcha, puedes incrementar o decrementar el valor de una determinada variable, hacer "algo" cuando dicha variable contenga la cifra "esperada", e incluso mostrar el valor de la variable al usuario, desde el propio evento "OnTimer" del "TTimer". Dices que "no te sale", pero, ¿qué es lo que esperas y qué es lo que obtienes? Intenta concretar algos.

CoCaInE
14-11-2007, 15:46:21
Buenas, estoy intentando hacer saber a el usuario el tiempo restante que le queda para cerrar un formulario...estoy trabajando en un sistema de loteria y me gustaria que tiempo restante le queda para cerrar el sorteo intente esto.... pero no me sale :(

//Exacta es una variable que almacena el tiempo tomado de un query Edit5.Text:=timetostr(Exacta-1));

estaria muy agradecido si me echan una manito..:)


Pues si estoy utilizando ttimer en su respectivo evento , lo que no me sale es que al tiempo que le queda restante para cerrar el sistema, ejemplo tengo almacenada en una tabla la hora especifica del cierre del sistema.... y restando la hora actual de la aplicacion me diga que tiempo me queda especificamente para que el sistema se cierre..claro ambas horas la tomo del servidor de base de datos Mysql

Delphius
14-11-2007, 15:57:40
Disculpa CoCaInE,
Pero no termino de comprenderte

¿Lo que tu deseas hacer es esto?

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Now = HoraCierre
then close;
end;

En HoraCierre se tiene almacenado la hora en que debe finalizarse el trabajo. Ya sea que provenga el valor de un archivo, de una tabla... de lo que sea... es independiente de donde venga.

Como opción, para evitar que el usuario cierre el aplicativo haría:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose = False; //O también Now = HoraCierre
end;

Como he dicho, no se si te he entendido... dime si me he equivocado.
Saludos,

jhonny
14-11-2007, 16:04:17
Bueno, pero si lo que quieres es visualizarlo en alguna parte, puedes hacer uso de la siguiente función:


function TiempoRestante(HoraHasta :TTime):String;
begin
Result := FormatDateTime('HH:MM:SSSS', Time - HoraHasta);
end;


Para probarla coloque un TDateTimePicker con su prpiedad Kind en dtkTime, un TEdit y un TTimer, al OnTimer le puse esto:


procedure TForm1.Timer1Timer(Sender: TObject);
begin
Edit1.Text := TiempoRestante(DateTimePicker1.Time);
end;


Espero te sirva de algo :).

CoCaInE
18-11-2007, 07:54:20
Gracias a todos me han servido de mucha ayuda...

CoCaInE
18-11-2007, 08:15:04
Oh Oh tengo problemas al tratar de tomarla convertida del servidor por ejemplo utilizo la conversion de la siguiente manera
Select time_format((Select now()),'%r')
no me deja salir porque interpreta el %r como si no perteneciera a la consulta.... alguna idea... es que necesito mostrarla en el formato de 12 horas....:o

CoCaInE
18-11-2007, 08:45:51
Oh Oh tengo problemas al tratar de tomarla convertida del servidor por ejemplo utilizo la conversion de la siguiente manera

Código SQL [-] (http://www.clubdelphi.com/foros/#)Select time_format((Select now()),'%r')


no me deja salir porque interpreta el %r como si no perteneciera a la consulta.... alguna idea... es que necesito mostrarla en el formato de 12 horas....:o
ya lo eh resuelto sustituyendo las tilde por " gracias de todas maneras