Ir para conteúdo
Fórum Script Brasil
  • 0

dúvida em horas


Cyberhack

Pergunta

6 respostass a esta questão

Posts Recomendados

  • 0

procedure TForm1.Button1Click(Sender: TObject);
begin
   label1.Caption := 'Horário Verão ' + timetostr(time());

   label2.Caption := 'Horário Atual ' + timetostr(time()- strtotime('01:00:00'));
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   label1.Caption := 'Horário Verão ' + timetostr(time());

   label2.Caption := 'Horário Atual ' + timetostr(time()- strtotime('01:00:00'));
end;

Voce pode colocar o codigo num botao ou em um timer

abraço

Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

  • 0
consegui resolver a maioria delas ,

com faço pra quando por exemplo

a cada 1 minuto pegar e voltar a hora anterior.

se não precisar de precisão, poderia utilizar um timer, do contrário, buscando no forum já há discussão sobre temporizadores com maior precisão (mês passado, se não me engano o assunto esteve em voga)

e dar um reflash no relogio do sistema
para alterar o horário do sistema:

- primeiro você terá que ter direitos de acesso para isto (caso do uso de Windows - XP, 2K, NT, ...);

- há uma função da API para isto - SetSystemTime. Dê uma olhada neste post

- deve informar todos os aplicativos de que a hora do Windows foi alterada, enviando uma mensagem WM_TIMECHANGE. Isto é feito através do envio da mensagem a todas as janelas deste modo: SendMessage(HWND_TOPMOST, WM_TIMECHANGE, 0, 0);

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
com faço pra quando por exemplo

a cada 1 minuto pegar e voltar a hora anterior.

e dar um refresh no relogio do sistema

function SetNewTime(Hora, Min, Seg: word): boolean;
var
  st: TSYSTEMTIME;
begin
  GetLocalTime(st);           // Pega hora corrente
  st.wHour := Hora;
  st.wMinute := Min;
  st.wSecond := seg;
  if not SetLocalTime(st) then
    Result := FALSE
  else
    Result := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Present: TDateTime;
  Hour, Min, Sec, MSec: word;
  hh, mm, ss : shortstring;
begin
  Present:= Now;
  DecodeTime(Present, Hour, Min, Sec, MSec);

  sec := sec - 59;   // mantem o relogio voltando a hora anterior a cada minuto

  hh := IntToStr(hour);
  mm := IntToStr(min);
  ss := IntToStr(sec);

  SetNewTime(StrToInt(hh),StrToInt(mm),StrToInt(ss));
end;

OBS: coloque o interval do timer = 60000

a cada minuto ele voltara ao minuto anterior e mudara a hora do sistema

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...