Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-06-2015
Ines Rodriguez Ines Rodriguez is offline
Registrado
NULL
 
Registrado: jun 2015
Posts: 5
Poder: 0
Ines Rodriguez Va por buen camino
Post ¿ Como hacer que roten las agujas de un reloj según la hora de mi PC ?

Hola alguien podria ayudarme a hacer un reloj en delphi. use rotación para las manecillas pero no se como enlazar esas manecillas para que roten segun la hora de mi pc (minutos, horas y segundos) GRACIAS.
Responder Con Cita
  #2  
Antiguo 02-06-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Ines, bienvenida a los Foros de Club Delphi

Como a todos los que recién ingresan te invitamos a leer nuestra guía de estilo.

Para poder ayudarte sería muy útil que pusieras el código con el que has intentado, o al menos la idea con que pensaste encarar el problema.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 02-06-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Ines Rodriguez,

Cita:
Empezado por Ines Rodriguez
...¿Como hacer que roten las agujas de un reloj según la hora de mi PC?...
¡Bienvenida al Club Delphi!

Revisa esta imagen:



Revisa este código:
Código Delphi [-]
{*********************************************}
{ digitalcoding.com - Delphi Tutorial         }
{ This example provide by - digitalcoding.com }
{ By : Thaminda Wijeratne                     }
{                                             }
{     for more details contact :              }
{          thaminda@digitalcoding.com         }
{*********************************************}
unit pro36_pas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure ClockFrame(Sender: TObject);
    procedure UpdateClock(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
    OldH, OldM, OldSX, OldSY, OldMX, OldMY,
    OldHX, OldHY : Integer;
    FirstDraw : Boolean;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.ClockFrame(Sender: TObject);
Var
  A, R, Xo, Yo, X, Y : Integer;
Begin
  { Set center point }
  Xo:=Width Div 2;
  Yo:=Height Div 2;

  If Yo < Xo Then R:=Yo-30 Else R:=Xo-30;

  For A:=0 to 12 Do
  Begin
      X:=Xo+Round(R*Sin(30*A*Pi/180));
      Y:=Yo-Round(R*Cos(30*A*Pi/180));
      Canvas.Brush.Color:=clGreen;
      Canvas.Ellipse(X-4,Y-4,X+4,Y+4);
  End;
End;

procedure TForm1.UpdateClock(Sender: TObject);
Var
  DateTime : TDateTime;
  Xo, Yo, Xs, Ys, Xm, Ym, Xh, Yh, H, M, S, Rs, Rm, Rh : Integer;
begin
  { Get current time }
  DateTime:=Time;

  { Display time in form title }
  Caption:=' '+FormatDateTime('hh:nn:ss AM/PM',DateTime);

  { Set center point }
  Xo:=Form1.Width Div 2;
  Yo:=Form1.Height Div 2;

  { Clock radius }
  Rs:=Yo-50;
  Rm:=Rs;
  Rh:=Rs-50;

  { Extract hours }
  H:=StrToInt(Copy(FormatDateTime('hh AM/PM',DateTime),1,2));
  { Extract minutes }
  M:=StrToInt(FormatDateTime('nn',DateTime));
  { Extract seconds }
  S:=StrToInt(FormatDateTime('ss',DateTime));

  { Set coordinates for seconds }
  Xs:=Xo+Round(Rs*Sin(S*6*Pi/180));
  Ys:=Yo-Round(Rs*Cos(S*6*Pi/180));

  { Set coordinates for minutes }
  Xm:=Xo+Round(Rm*Sin(M*6*Pi/180));
  Ym:=Yo-Round(Rm*Cos(M*6*Pi/180));

  { Set coordinates for hours }
  Xh:=Xo+Round(Rh*Sin((H*30+M/2)*Pi/180));
  Yh:=Yo-Round(Rh*Cos((H*30+M/2)*Pi/180));

  { Erase previous line for seconds }
  If Not FirstDraw Then
  Begin
    Form1.Canvas.Pen.Color:=clBlack;
    Form1.Canvas.Pen.Width:=1;
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(OldSX,OldSY);
  End Else
    Form1.Canvas.Pen.Mode:=pmNotXor;

  { Draw seconds line }
  Form1.Canvas.Pen.Color:=clBlack;
  Form1.Canvas.Pen.Width:=1;
  Form1.Canvas.MoveTo(Xo,Yo);
  Form1.Canvas.LineTo(Xs,Ys);
  OldSX:=Xs;
  OldSY:=Ys;

  If FirstDraw Then
  Begin
    { Draw minutes line }
    Form1.Canvas.Pen.Color:=clGreen;
    Form1.Canvas.Pen.Width:=2;
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(Xm,Ym);
    OldMX:=Xm;
    OldMY:=Ym;

    { Draw hour line }
    Form1.Canvas.Pen.Color:=clMaroon;
    Form1.Canvas.Pen.Width:=3;
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(Xh,Yh);
    OldHX:=Xh;
    OldHY:=Yh;
  End;

  { Refresh minute new position }
  If (OldMX <> Xm) Or (OldMY <> Ym) Then
  Begin
    { Erase previous one }
    Form1.Canvas.Pen.Color:=clGreen;
    Form1.Canvas.Pen.Width:=2;
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(OldMX,OldMY);

    { Draw new line }
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(Xm,Ym);
    OldMX:=Xm;
    OldMY:=Ym;
  End;

  { Refresh hour new position }
  If (OldHX <> Xh) Or (OldHY <> Yh) Then
  Begin
    { Erase previous one }
    Form1.Canvas.Pen.Color:=clMaroon;
    Form1.Canvas.Pen.Width:=3;
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(OldHX,OldHY);

    { Draw new line }
    Form1.Canvas.MoveTo(Xo,Yo);
    Form1.Canvas.LineTo(Xh,Yh);
    OldHX:=Xh;
    OldHY:=Yh;
  End;
End;

procedure TForm1.Timer1Timer(Sender: TObject);
Begin
  UpDateClock(Self);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FirstDraw:=True;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  FirstDraw:=True;
  ClockFrame(Self);
  UpDateClock(Self);
  FirstDraw:=False;
end;

end.
Tomado de : Create graphical analog clock dynamically

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 02-06-2015 a las 08:54:34.
Responder Con Cita
  #4  
Antiguo 03-06-2015
Ines Rodriguez Ines Rodriguez is offline
Registrado
NULL
 
Registrado: jun 2015
Posts: 5
Poder: 0
Ines Rodriguez Va por buen camino
Wink

nlsgarcia muchas gracias me sirvió demasiado tu código y me aclara muchas dudas
y ecfisa gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Componente tipo reloj para seleccionar la HORA flystar Varios 6 29-06-2010 22:43:46
Mostrar la hora del Reloj del servidor rex Varios 4 28-04-2008 16:46:47
¿como hacer un reloj en java utizando netbeans? rls JAVA 2 20-11-2006 14:56:37
Crear Reloj con Agujas spider_Ramon OOP 4 24-10-2005 21:04:02
Hacer un reloj jorodgar Varios 2 18-05-2005 09:56:06


La franja horaria es GMT +2. Ahora son las 14:29:20.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi