You are on page 1of 3

Membuat Jam Analog dengan Delphi 7

unit UJam; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; procedure GerakJarumJam; procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; i:byte; Diameter:integer; Angka, JariJam, JariMenit, JariDetik, TebalGaris, UkuranHuruf : byte; implementation {$R *.dfm} procedure TForm1.GerakJarumJam; var jam,menit,detik,milidetik:word; begin self.Refresh; //merefresh form DecodeTime(Now,jam,menit,detik,milidetik); {mendekode atau menjabarkan waktu sekarang menjadi jam, menit, detik dan milidetik} //Untuk jarum detik Canvas.Pen.Color:=clRed; Canvas.Pen.Width:=2; Canvas.MoveTo(Diameter div 2,Diameter div 2); Canvas.LineTo( (Diameter div 2)-round( jariDetik*sin(-detik*pi/30)), (Diameter div 2)-round( jariDetik*cos(-detik*pi/30)));

Width:=4. procedure TForm1. Width:=15. procedure TForm1. {menentukan panjang jarum jam} jariMenit := 60.Color:=clBlack. (Diameter div 2)-round( jariJam*cos(-jam*pi/6-menit*pi/360))). Canvas. {memanggil procedure GerakJarumJam} end.Pen. //Agar form tidak memiliki border {Setting untuk ukuran jam} ClientWidth := 150.Timer1Timer(Sender: TObject). {menentukan lebar form} ClientHeight:= ClientWidth.Pen.Size:=6.FormCreate(Sender: TObject).Name:=’angka’+IntToStr(i).LineTo( (Diameter div 2)-round( jariMenit*sin(-menit*pi/30-detik*pi/1800)). Parent:=Self.LineTo( (Diameter div 2)-round( jariJam*sin(-jam*pi/6-menit*pi/360)). {menentukan tinggi form} Diameter := ClientWidth.BorderStyle:=bsNone.Pen. begin GerakJarumJam. Font. Canvas.Diameter div 2).Pen. Canvas. Canvas. {menentukan panjang jarum detik} //Tentukan posisi angka for i:=1 to 12 do {diulang sebanyak angka jam yaitu 12} begin TLabel. with TLabel(FindComponent(‘angka’+IntToStr(i))) do begin Height:=10. {menentukan panjang jarum menit} JariDetik := 70. end. Canvas.Diameter div 2).Color:=clBlack. {menentukan diameter jam} jariJam := 45.Width:=3. begin Self. (Diameter div 2)-round( jariMenit*cos(-menit*pi/30-detik*pi/1800))).// Untuk jarum menit Canvas.MoveTo(Diameter div 2.Create(Self). // Untuk jarum jam Canvas. . Canvas.MoveTo(Diameter div 2.

Font. Top:=((Diameter-Height) div 2)-round((jariDetik-6)*cos(-i*pi/6)). end . Alignment:=taCenter. Caption:=IntToStr(i).ClientWidth. CreateEllipticRgn(0.ClientHeight). Left:=((Diameter-Width) div 2)-round((jariDetik-6)*sin(-i*pi/6)). Font.Handle.Color:=clBlack. end. end. //Buat form jadi bulat SetWindowRgn(self.0. Transparent:=true. true).Style:=[fsBold]. end.