Skip to content

Membuat Jam Analog dengan Delphi 7

April 29, 2011

Hai gue L ni gue mw share ilmu bro tentang delphi bagaimana cara buat jam analog

gue nyari2 referensi tentang bagaimana cara buat jam analog dengan delphi 7 tapi susah walaupun ada paling ada yang error.

jadi nie gue kumpulin aja semua script dari mana n gue coba akhirnya isa.

Tapi nie cuma konsep dasar bro kalo pengen lebih bagus ya saudara2 N saudari2 sekalian ya tinggal d edit aja.

ni scriptnya . .

Membuat Jam Analog Dengan delphi

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)));

// Untuk jarum menit
Canvas.Pen.Color:=clBlack;
Canvas.Pen.Width:=3;
Canvas.MoveTo(Diameter div 2,Diameter div 2);
Canvas.LineTo(
(Diameter div 2)-round(
jariMenit*sin(-menit*pi/30-detik*pi/1800)),
(Diameter div 2)-round(
jariMenit*cos(-menit*pi/30-detik*pi/1800)));

// Untuk jarum jam
Canvas.Pen.Color:=clBlack;
Canvas.Pen.Width:=4;
Canvas.MoveTo(Diameter div 2,Diameter div 2);
Canvas.LineTo(
(Diameter div 2)-round(
jariJam*sin(-jam*pi/6-menit*pi/360)),
(Diameter div 2)-round(
jariJam*cos(-jam*pi/6-menit*pi/360)));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
GerakJarumJam; {memanggil procedure GerakJarumJam}
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Self.BorderStyle:=bsNone; //Agar form tidak memiliki border
{Setting untuk ukuran jam}
ClientWidth := 150; {menentukan lebar form}
ClientHeight:= ClientWidth; {menentukan tinggi form}
Diameter := ClientWidth; {menentukan diameter jam}
jariJam := 45; {menentukan panjang jarum jam}
jariMenit := 60; {menentukan panjang jarum menit}
JariDetik := 70; {menentukan panjang jarum detik}

//Tentukan posisi angka
for i:=1 to 12 do
{diulang sebanyak angka jam yaitu 12}
begin
TLabel.Create(Self).Name:=’angka’+IntToStr(i);
with TLabel(FindComponent(‘angka’+IntToStr(i))) do
begin
Height:=10;
Width:=15;
Parent:=Self;
Font.Size:=6;
Font.Color:=clBlack;
Font.Style:=[fsBold];
Alignment:=taCenter;
Caption:=IntToStr(i);
Transparent:=true;
Left:=((Diameter-Width) div 2)-round((jariDetik-6)*sin(-i*pi/6));
Top:=((Diameter-Height) div 2)-round((jariDetik-6)*cos(-i*pi/6));
end;
end;
//Buat form jadi bulat
SetWindowRgn(self.Handle, CreateEllipticRgn(0,0,ClientWidth,ClientHeight), true);
end;

end.

2 Comments leave one →
  1. March 1, 2012 11:25 am

    gak jelas gan komponen nya kagak di sebutin, memang bisa langsung di form.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: