[Delphi] Relógio usando Canvas

Aug 10
2009

Segue um exemplo usado no Dojo de 06/08/2009, aqui na Produtec.

Não houve tempo de concluí-lo, mas os conceitos básicos estão presentes. No código abaixo, tem somente o corpo básico, mais o ponteiro dos segundos. Fiquem à vontade para concluí-lo.

Para que o exemplo funcione, basta criar um form com ClientHeight e ClientWidth de no mínimo 300 e neste colocar um Timer com parâmetros padrões.

procedure TForm1.Timer1Timer(Sender: TObject);
const
   LARGURA = 300;
var
   XFinal, YFinal: Integer;
   Hora, Minuto, Segundo, MiliSegundo: Word;
   Angulo: Integer;
begin
   Refresh;
   Caption := TimeToStr(Time);  

   // Disco do Relógio
   Canvas.Pen.Width := 1;  

   Canvas.Brush.Color := clWhite;
   Canvas.Brush.Style := bsSolid;
   Canvas.Ellipse(0, 0, LARGURA, LARGURA);  

   // Ponteiros
   Canvas.Pen.Style := psSolid;
   Canvas.Pen.Width := 3;
   Canvas.Pen.Color := clBlack;  

   Canvas.MoveTo(LARGURA div 2, LARGURA div 2);  

   DecodeTime(Time, Hora, Minuto, Segundo, Milisegundo);  

   XFinal := (LARGURA div 2) + Trunc(Sin(DegToRad(180 - Segundo * 6)) * (LARGURA div 2));
   YFinal := (LARGURA div 2) + Trunc(Cos(DegToRad(180 - Segundo * 6)) * (LARGURA div 2));  

   Canvas.LineTo(XFinal, YFinal);  

end;

Dúvidas, coloquem a seguir.

Os Turbos Chegaram!

Dec 31
2007

Copiado na cara dura de Erick Sasse

As versões Turbo Explorer do Delphi, Delphi .NET, C# e C++ já estão disponíveis para download gratuito.

Lembre-se que estas versões são 100% gratuitas, não são trials. Podem inclusive serem utilizadas para projetos comerciais. Porém elas têm algumas limitações, sendo que a principal delas é a impossibilidade de instalar componentes adicionais na IDE.

Agora só resta aguardar pela chegada das versões Pro aqui no Brasil, que serão pagas mas sem nenhuma limitação. Acredito que devem estar disponíveis mês que vem, na Borcon.