Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Demora al cambiar la hora (https://www.clubdelphi.com/foros/showthread.php?t=3965)

CFPA86 26-09-2003 00:50:11

Demora al cambiar la hora
 
Hola foristas.
Tengo el siguiente codigo.

var
FecDada : TdateTime;
// HorDada : TSystemTime;
HorDada : TDateTime;
begin
FecDada := StrToDate(Efecha.Text);
HorDada := StrToTime(Ehora.Text);
ProCamFec(FecDada, HorDada);
end;

Procedure ProCamFec(Fecha: TDateTime; Hor : TDateTime);
var
FecSys: TSystemTime;
nA, nM, nD, nHH, nMM, nSS, nMS : Word;
begin
DecodeDate(Fecha, nA, nM, nD);
GetLocalTime(FecSys);
FecSys.wYear := nA;
FecSys.wMonth := nM;
FecSys.wDay := nD;
DecodeTime(Hor, nHH, nMM, nSS, nMs);
FecSys.wHour := nHH;
FecSys.wMinute := nMM;
FecSys.wSecond := nSS;
FecSys.wMilliseconds := nMS;
SetLocalTime(FecSys);
end;

El cambia la fecha inmediatamente pero en la hora se tarda Aprox 45 Seg. en cambiarla o mostrarla en la barra de tareas, alguien sabe decirme el pporque de esto, me gustaria que lo hiciera como la fecha en forma inmediata.

Alguna sugerencia si es el caso se los agradezco.

roman 26-09-2003 01:52:06

Prueba a ver si te sirve añadir la siguiente línea despues de SetLocalTime:

SendMessage(HWND_TOPMOST, WM_TIMECHANGE, 0, 0);

Se supone que este mensaje avisa a todas las ventanas de aplicación que cambió la fecha/hora, y esto incluye el reloj de la barra de tareas.

// Saludos

CFPA86 26-09-2003 15:18:28

Aun no me funciona se tarda mucho al cambirse, he notado que inmediatamente la actuaaliza en el ambiente D.O.S mas no en la barra de tareas..

Viet 26-09-2003 15:39:36

A mi me da la impresion que la hora que nos figura en la barra de tareas es solo una interface... esta te muestra la hora y se actualiza cadab 45 seg con la hora del sys...

Tal ves si despues de actualizar la hora le envias un mensaje de refresco impacte automaticamente.

Es solo una idea

hot1974 26-09-2003 18:53:06

Hola, si lo que quieres es que en tu aplicacion tenga la hora de tu sistema, creo tener la solucion.

a tu pantalla principal agrega una statusbar que esta en la paleta de win32.

al statusbar agregale unos statuspanels dando soble click sobre la statusbar , despues baja un componente timer de la paleta system y agrega el siguiente codigo en el timer.

procedure TMenu.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[0].Text:=timetostr(time());
end;

y con eso eta solucionado tu problema, . :D Saludos

CFPA86 26-09-2003 20:58:27

hola foristas, este tema se puede dar por terminado, muchas gracias a todos.


La franja horaria es GMT +2. Ahora son las 09:36:00.

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