FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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.
__________________
Siempre hay un primer momento para todo. |
#2
|
||||
|
||||
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 |
#3
|
|||
|
|||
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..
__________________
Siempre hay un primer momento para todo. |
#4
|
|||
|
|||
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
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;) |
#5
|
|||
|
|||
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, . Saludos |
#6
|
|||
|
|||
hola foristas, este tema se puede dar por terminado, muchas gracias a todos.
__________________
Siempre hay un primer momento para todo. |
|
|
|