¿Cómo hacer un reloj de Windows usando Delphi?
1. Propiedades básicas del objeto:
Objeto Form1: TForm1 Left = 914 Top = -3 BorderIcons = [] BorderStyle = bsNone Caption = 'Form1' ClientHeight = 108 ClientWidth = 100 Color = clBackground TransparentColor = True Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -10 Font.Name = 'MS Sans Serif' Font.Name = 'MS Sans Serif' Font.Height = -10 Font.Name = 'MS Sans Serif' 2.Style = [] OldCreateOrder = False PopupMenu = PopupMenu1 OnCreate = FormCreate OnPaint = formpaint OnResize = FormResize PixelsPerInch = 96 TextHeight = 13 objeto PopupMenu1: TPopupMenu Izquierda = 80 Superior = 72 objeto N1: TMenuItem Caption = ' Salir ' OnClick = N1Click objeto final Timer1: TTimer Left = 48 Top = 40 objeto final Timer2: TTimer OnTimer = Timer2Timer Left = 80 Top = 24 endendend
2.
unidad Unidad1;las interfaces utilizan Windows, Mensajes, SysUtils, Variantes.SysUtils, Variantes, Clases, Gráficos, Controles, Formularios, Diálogos, StdCtrls, ExtCtrls, Menús;tipo TForm1 = clase(TForm) PopupMenu1: TPopupMenu N1.TMenuItem; Temporizador1: Temporizador1: TTimer; Temporizador2: programa Timer2Timer (Remitente: TObject); programa formpaint (Remitente: TObject); programa FormResize (Remitente: TObject); Declaraciones privadas } hora, minuto, segundo: palabra; viejo minuto, viejo segundo: palabra; privado {declaración privada} radio, backradius: entero; ángulo: real procedimiento dibujar segundo);
end;var Form1:TForm1; implementación{$R *.dfm}procedimiento Tform1.Sender:end; procedimiento TForm1.Sender: TObject; var hsec:word; comenzar antiguosegundo:=segundo; ,minuto,segundo,hsec); dibujarsegundo; finalizar; procedimiento TForm1.Remitente: TObject;procedimiento TForm1.Sender: TForm1.formpaint(Remitente: var ángulo:real; integer;begin xcenter:=clientwidth div 2; ycenter:=clienttheight div 2; si xcenter>ycenter entonces radio:=ycenter-10 else radio:=xcenter-10; :=pmcopy; lienzo.Brush.canvas.Pen.Width:=2; canvas.Pen.Color:=clred; ángulo:=2*pi*( minuto+45)/60; div 100,0,angle); {Dibujar manecilla de hora} canvas.Pen.Width:=4; canvas.Pen.Color:=clred; ángulo:=2*pi*( minuto+45)/60Color:=clred; :=2*pi*(hora +9+minuto/60)/12; drawhand(xcenter,ycenter,radius*70 div 100,0,angle); {dibujar segundero} canvas.Pen.Width :=1; Pen.Color:=clred; canvas.Pen.Mode:=pmcopy; {dibujar segunda mano} canvas.Pen.Mode:=pmcopy; pmcopy programa tform1.drawhand(xcenter, ycenter,radius, atrás) ;fin;procedimiento tform1.ycenter,radio,backradius:integer;ángulo:real);comenzar lienzo.Pen.Mode:=pmcopy;ángulo:=2*pi*(segundo+45)/60MoveTo(xcenter-round( backradius* cos(angle)),ycenter-round(backradius*sin (angle)));canvas.LineTo(xcenter+round(radius*cos(angle)),ycenter+round(radius*sin(angle))); finalizar; procesar tform1.Drawsegundo; var ángulo,oldangle:real; comenzar dibujar varsegundo,oldangle:real; comenzar oldangle:=2*pi*(oldsegundo+45)/60;
,radio,radio*30 div 100,ángulo antiguo); ángulo:=2*pi*(segundo +45)/60; dibujarmano(xcentro,ycentro,radio,radio*30 div 100,ángulo final); /p>
Este programa se ejecuta en window98+delphi6.