SetLocalTime não funcionando ***Precisando de ajuda***
Embora tenha achado alguns posts a respeito, não consegui fazer funcionar! Se alguém puder me ajudar, agradeço pela atenção. (utilizando delphi 7, SO windows 7).
Descrição do Problema: Utilizo no form o componente RxClock para mostrar para o usuário a hora corrente. Ao alterar a hora diretamente, através da barra de tarefas do windows, altera de imediato também no componente RxClock. Mas ao tentar alterar a hora via programação, não funciona, digo, não altera. Alguém poderia me dizer o porquê?
Segue o código:
Procedure HoraCerta;
var
st:TSYSTEMTIME;
begin
(*) definir a hora da estacao igual com a do servidor (*)
self.QyHoraCerta.Close;
self.QyHoraCerta.Open;
//atualiza hora local
GetLocalTime(st);
DateTimeToSystemTime(self.QyHoraCertaDATAHORA.AsDateTime,st);
SetLocalTime(st);
vHora := FrmPrincipal.QyHoraCertaHORA.AsDateTime;
end;
Descrição do Problema: Utilizo no form o componente RxClock para mostrar para o usuário a hora corrente. Ao alterar a hora diretamente, através da barra de tarefas do windows, altera de imediato também no componente RxClock. Mas ao tentar alterar a hora via programação, não funciona, digo, não altera. Alguém poderia me dizer o porquê?
Segue o código:
Procedure HoraCerta;
var
st:TSYSTEMTIME;
begin
(*) definir a hora da estacao igual com a do servidor (*)
self.QyHoraCerta.Close;
self.QyHoraCerta.Open;
//atualiza hora local
GetLocalTime(st);
DateTimeToSystemTime(self.QyHoraCertaDATAHORA.AsDateTime,st);
SetLocalTime(st);
vHora := FrmPrincipal.QyHoraCertaHORA.AsDateTime;
end;
Ricardo Lucena
Curtidas 0
Respostas
Ricardo Lucena
16/04/2013
Galera, alguma sugestão do que possa estar faltando para que a função setlocaltime funcione?!? Preciso da ajuda da comunidade, muito embora essa questão pareça simples não tenho conseguido solucionar... :(
Embora tenha achado alguns posts a respeito, não consegui fazer funcionar! Se alguém puder me ajudar, agradeço pela atenção. (utilizando delphi 7, SO windows 7).
Descrição do Problema: Utilizo no form o componente RxClock para mostrar para o usuário a hora corrente. Ao alterar a hora diretamente, através da barra de tarefas do windows, altera de imediato também no componente RxClock. Mas ao tentar alterar a hora via programação, não funciona, digo, não altera. Alguém poderia me dizer o porquê?
Segue o código:
Procedure HoraCerta;
var
st:TSYSTEMTIME;
begin
(*) definir a hora da estacao igual com a do servidor (*)
self.QyHoraCerta.Close;
self.QyHoraCerta.Open;
//atualiza hora local
GetLocalTime(st);
DateTimeToSystemTime(self.QyHoraCertaDATAHORA.AsDateTime,st);
SetLocalTime(st);
vHora := FrmPrincipal.QyHoraCertaHORA.AsDateTime;
end;
Descrição do Problema: Utilizo no form o componente RxClock para mostrar para o usuário a hora corrente. Ao alterar a hora diretamente, através da barra de tarefas do windows, altera de imediato também no componente RxClock. Mas ao tentar alterar a hora via programação, não funciona, digo, não altera. Alguém poderia me dizer o porquê?
Segue o código:
Procedure HoraCerta;
var
st:TSYSTEMTIME;
begin
(*) definir a hora da estacao igual com a do servidor (*)
self.QyHoraCerta.Close;
self.QyHoraCerta.Open;
//atualiza hora local
GetLocalTime(st);
DateTimeToSystemTime(self.QyHoraCertaDATAHORA.AsDateTime,st);
SetLocalTime(st);
vHora := FrmPrincipal.QyHoraCertaHORA.AsDateTime;
end;
GOSTEI 0
Rafael Cunha
16/04/2013
Cara eu utilizo da seguinte maneira e funciona normalmente.
procedure TDmPrincipal.SynchronizeDh; var SystemTime: TSystemTime; begin FDhSynchronized := False; DateTimeToSystemTime(GetCurrentDateTime, SystemTime); FDhSynchronized := SetLocalTime(SystemTime); end;
GOSTEI 0
Ricardo Lucena
16/04/2013
Pô Rafael, obg por responder...
Dúvida nesse teu código: Requer declaração de alguma classe pra reconhecer essa variável "FDhSynchronized", ou vc a declarou como sendo uma variável local/global, apenas pra retornar como valor da procedure SynchronizeDh?
No aguardo... obg!
Dúvida nesse teu código: Requer declaração de alguma classe pra reconhecer essa variável "FDhSynchronized", ou vc a declarou como sendo uma variável local/global, apenas pra retornar como valor da procedure SynchronizeDh?
No aguardo... obg!
Cara eu utilizo da seguinte maneira e funciona normalmente.
procedure TDmPrincipal.SynchronizeDh; var SystemTime: TSystemTime; begin FDhSynchronized := False; DateTimeToSystemTime(GetCurrentDateTime, SystemTime); FDhSynchronized := SetLocalTime(SystemTime); end;
GOSTEI 0
Rafael Cunha
16/04/2013
Pô Rafael, obg por responder...
Dúvida nesse teu código: Requer declaração de alguma classe pra reconhecer essa variável "FDhSynchronized", ou vc a declarou como sendo uma variável local/global, apenas pra retornar como valor da procedure SynchronizeDh?
No aguardo... obg!
Dúvida nesse teu código: Requer declaração de alguma classe pra reconhecer essa variável "FDhSynchronized", ou vc a declarou como sendo uma variável local/global, apenas pra retornar como valor da procedure SynchronizeDh?
No aguardo... obg!
Cara eu utilizo da seguinte maneira e funciona normalmente.
procedure TDmPrincipal.SynchronizeDh; var SystemTime: TSystemTime; begin FDhSynchronized := False; DateTimeToSystemTime(GetCurrentDateTime, SystemTime); FDhSynchronized := SetLocalTime(SystemTime); end;
Cara pode ignorar o FDhSynchronized é apenas um variável que utilizo para verificar se o sistema conseguiu sincronizar o relógio com o servidor, caso negativo busto toda hora a hora no server.
GOSTEI 0