Class TFormClock (unit Datetime)

Inherits from

TForm

Constructors



Functions

procedure BtnCancelClick(Sender: TObject);


procedure BtnSelectClick(Sender: TObject);


procedure FormCreate(Sender: TObject);

TFormClock Implementation

procedure FormDestroy(Sender: TObject);

Create Pen

procedure FormPaint(Sender: TObject);

Draw minute points on Panel

function GetClkTime: TDateTime;


procedure SBAmPmDownClick(Sender: TObject);


procedure SEDminChange(Sender: TObject);


procedure SEDsecChange(Sender: TObject);


procedure SEHourChange(Sender: TObject);

Rectifies overflow on second counter

procedure SEMinChange(Sender: TObject);


procedure SESecChange(Sender: TObject);


procedure SetClkDateTime(ClkTime: TDateTime);

Set Clock Time

Set Spin Edit Values


procedure SetClkTime(H, M, S: Word);

Get clock time

Get clock time


procedure CalculateAngles;

Hour Hand angle

procedure DrawClockFace;


procedure DrawHand(Angle, Scale : real; AWidth : integer);

Draw clock face on window

procedure DrawHands;

Draw a clock hand

procedure DrawMinBlocks;

Calc Radius of clock

procedure FixDmin;

Rectifies overflow on hour counter

procedure FixDsec;

Rectifies overflow on minute counter

procedure FixHour;

The following procedures rectify overflow on the spin edits

Ensure date part is not lost


procedure FixMin;

Rectifies overflow on ten minute counter

procedure FixSec;

Rectifies overflow on 10 second counter

function HourAngle(Hour, Min: word): real;

Minute Hand angle

function MinuteAngle(Min: word): real;

Internal Clock time and selected clock time

Set Spin Edit Values


procedure SetTime;

Draw clock Hands

Properties

Events

Variables

BtnCancel : TBitBtn;


BtnSelect : TBitBtn;


EditAmPm : TEdit;


Label1 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Panel2 : TPanel;


Panel3 : TPanel;


PBClock : TPaintBox;


SBAmPm : TSpinButton;


SEDmin : TSpinEdit;


SEDsec : TSpinEdit;


SEHour : TSpinEdit;


SEMin : TSpinEdit;


SESec : TSpinEdit;


CentrePt : TPoint;


ClockTime : TDateTime;

Width of Clock rectangles

FPen : TPen;


Radius : integer;

Clock Centre

RectWidth : integer;

Clock Radius

SelectedTime : TDateTime;



Constructors


Functions


procedure BtnCancelClick(Sender: TObject);


procedure BtnSelectClick(Sender: TObject);


procedure FormCreate(Sender: TObject);

TFormClock Implementation


procedure FormDestroy(Sender: TObject);

Create Pen


procedure FormPaint(Sender: TObject);

Draw minute points on Panel


function GetClkTime: TDateTime;


procedure SBAmPmDownClick(Sender: TObject);


procedure SEDminChange(Sender: TObject);


procedure SEDsecChange(Sender: TObject);


procedure SEHourChange(Sender: TObject);

Rectifies overflow on second counter


procedure SEMinChange(Sender: TObject);


procedure SESecChange(Sender: TObject);


procedure SetClkDateTime(ClkTime: TDateTime);

Set Clock Time

Set Spin Edit Values


procedure SetClkTime(H, M, S: Word);

Get clock time

Get clock time


procedure CalculateAngles;

Hour Hand angle


procedure DrawClockFace;


procedure DrawHand(Angle, Scale : real; AWidth : integer);

Draw clock face on window


procedure DrawHands;

Draw a clock hand


procedure DrawMinBlocks;

Calc Radius of clock


procedure FixDmin;

Rectifies overflow on hour counter


procedure FixDsec;

Rectifies overflow on minute counter


procedure FixHour;

The following procedures rectify overflow on the spin edits

Ensure date part is not lost


procedure FixMin;

Rectifies overflow on ten minute counter


procedure FixSec;

Rectifies overflow on 10 second counter


function HourAngle(Hour, Min: word): real;

Minute Hand angle


function MinuteAngle(Min: word): real;

Internal Clock time and selected clock time

Set Spin Edit Values


procedure SetTime;

Draw clock Hands


Properties


Events


Variables


BtnCancel : TBitBtn;


BtnSelect : TBitBtn;


EditAmPm : TEdit;


Label1 : TLabel;


Label2 : TLabel;


Label3 : TLabel;


Label4 : TLabel;


Panel2 : TPanel;


Panel3 : TPanel;


PBClock : TPaintBox;


SBAmPm : TSpinButton;


SEDmin : TSpinEdit;


SEDsec : TSpinEdit;


SEHour : TSpinEdit;


SEMin : TSpinEdit;


SESec : TSpinEdit;


CentrePt : TPoint;


ClockTime : TDateTime;

Width of Clock rectangles


FPen : TPen;


Radius : integer;

Clock Centre


RectWidth : integer;

Clock Radius


SelectedTime : TDateTime;