Relogio feito em delphi
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;
type TForm1 = class(TForm) Timer1: TTimer; procedure Timer1Timer(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormResize(Sender: TObject);
private Hour, Minute, Second: Word; XCenter, YCenter, Radius: Integer; public procedure DrawHand (XCenter, YCenter, Radius, BackRadius: Integer; Angle: Real); end; var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Timer1Timer(Sender: TObject); var HSec: Word;
Begin //Início da declaração
DecodeTime (Time, Hour, Minute, Second, HSec); // Quebra hora atual nas partes
Refresh; //Reseta o marcador assim que chegar as 12 Horas end; //Fim dos coman
procedure TForm1.FormPaint(Sender: TObject); var Angle: Real; // Variaveis
I, X, Y, Size: Integer; //Variaveis
Begin //Início da declaração
XCenter := ClientWidth div 2;
YCenter := ClientHeight div 2; if XCenter > YCenter then
Radius := YCenter - 10 else Radius := XCenter - 10;
Canvas.Pen.Color := clGreen; // Contorno das bolinhas que indicam os números
Canvas.Brush.Color := clGreen; // Prenchimento da cor das bolnhas
Size := Radius div 50 + 1; // Tamanho das bolinhas for I := 0 to 11 do // Total das bollinhas begin //Início da declaração
Angle := 2 * Pi * I / 12;
X := XCenter - Round (Radius * Cos (Angle)); // x girado
Y := YCenter - Round (Radius * Sin (Angle)); // y girado
Canvas.Ellipse (X - Size, Y - Size, X +Size, Y + Size); // obtem o seno e Cosseno do angulo end; //Fim da declaração
Canvas.Pen.Width := 2;
Canvas.Pen.Color := clGray;
Angle := 2 * Pi * Minute / 60;
DrawHand (XCenter, YCenter, Radius * 90 div 100, 0, Angle);
Angle := 2 * Pi * (Hour + Minute / 60) / 12;
DrawHand (XCenter, YCenter,
Radius * 70 div 100, 0, Angle);
Canvas.Pen.Width := 1;