BAB VI APLIKASI JAM DIGITAL DAN ANALOG
A. DESAIN FORM
Dengan menggunakan komponen MainMenu, StaticText serta Timer dan PaintBox, buatlah desain form seperti dibawah ini:
Gambar 6.1. Desain Form Jam
Susunan menu sebagai berikut :
Tampilan Set
Help
Nama Komponen Properti
Nilai
Form1 Caption
Jam Jaman... MainMenu1.Analog1
Caption Analog
MainMenu1.Digital1 Caption
Checked Digital
True MainMenu1.Jalan1
Caption Checked
Jalan True
MainMenu1.Berhenti1 Caption Berhenti
MainMenu1.Tentang1 Caption Tentang
StaticText1 Name
Font.Size Font.Name
lblJAM 72
Garamond Timer1
Interval 100
PaintBox1
B. SOURCE CODE
Seperti halnya dialam pascal, dalam program delphi ini kita juga bisa membuat prosedur sendiri. Caranya ketik dahulu Header prosedur
yang akan dibuat Bagian kepala prosedur dan tempatkan dibagian private atau public. Misalkan kita ingin membuat prosedur BingkaiJam,
JamDigital, dan JamAnalog maka anda harus mengetikkannya pada bagian private sehingga terlihat sebagai berikut:
xjam,yjam,xmen,ymen,xdet,ydet : integer; procedure JamAnalogSender : TObject;
procedure JamDigitalSender : TObject; procedure BingkaiJam;
Kemudian anda ketik isi prosedur tersebut dibagian implementation:
procedure TForm1.JamAnalogSender : TObject; Var
AmpJam,AmpMen,AmpDet,Jam,Men,Det,Det100 :
word; Begin
Gambar Jam: SetMapModepaintbox1.Canvas.Handle, MM_LOMETRIC;
SetViewPortOrgExPaintBox1.Canvas.Handle, PaintBox1.Width div 2,
PaintBox1.Height div 2, nil; If PaintBox1.HeightPaintBox1.Width Then
AmpDet := PaintBox1.Height div 2 -10 Else
AmpDet := PaintBox1.Width div 2 -10; Set Panjang Jarum Jam,Menit, dan Detik
AmpDet := AmpDet3 div 2; AmpMen := AmpDet-20;
AmpJam := AmpMen-30; DecodeTimeTime,Jam,Men,Det,Det100; catat
waktu ini With PaintBox1.Canvas DO
Begin Pen.Color := clBtnFace;
MoveTo0,0; LineToxdet,ydet; MoveTo0,0; LineToxmen,ymen;
MoveTo0,0; LineToxjam,yjam; xdet
:= RoundAmpDetcosDegToRad90-
det6; ydet
:= RoundAmpDetsinDegToRad90-
det6; xmen
:= RoundAmpMencosDegToRad90-
men6;
ymen :=
RoundAmpMensinDegToRad90- men6;
xJam :=
RoundAmpJamcosDegToRad90- jam30;
yJam :=
RoundAmpJamsinDegToRad90- jam30;
Gambar Jarum Detik: Pen.Color := clRed;
MoveTo0,0; LineToxdet,ydet; Gambar Jarum Menit:
Pen.Color := clBlack; MoveTo0,0; LineToxmen,ymen;
Gambar Jarum Jam MoveTo0,0; LineToxjam,yjam;
End; End;
procedure TForm1.JamDigitalSender:TObject; Begin
lblJam.Caption := TIMEtoSTRTime; End;
procedure TForm1.BingkaiJam; Var Amp,Amp1,i :integer;
Begin Gambar Jam:
SetMapModepaintbox1.Canvas.Handle, MM_LOMETRIC; SetViewPortOrgExPaintBox1.Canvas.Handle,
PaintBox1.Width div 2, PaintBox1.Height div 2, nil;
If PaintBox1.HeightPaintBox1.Width Then Amp := PaintBox1.Height div 2 -10
Else Amp := PaintBox1.Width div 2 -10;
Set Panjang Jarum Jam,Menit,Detik: Amp := Amp3 div 2;
Amp1 := Amp - 10; For i:=0 to 60 Do
Begin If
i mod
5 =0
Then PaintBox1.Canvas.Pen.Color := clRed
Else PaintBox1.Canvas.Pen.Color := clBlack; PaintBox1.Canvas.MoveToRoundAmpcosi30pi,Roun
dAmpsini30pi;
PaintBox1.Canvas.LineToRoundAmpcosi30pi,Roun dAmpsini30pi;
End; End;
Sehingga kode lengkapnya terlihat sebagai berikut: unit Ujam;
interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ExtCtrls, Math; type
TForm1 = classTForm MainMenu1: TMainMenu;
Tampilan1: TMenuItem; Analog1: TMenuItem;
Digital1: TMenuItem; Set1: TMenuItem;
Help1: TMenuItem; N1: TMenuItem;
Selesai1: TMenuItem; Jalan1: TMenuItem;
Berhenti1: TMenuItem; Tentang1: TMenuItem;
Timer1: TTimer; PaintBox1: TPaintBox;
lblJAM: TStaticText; procedure Analog1ClickSender: TObject;
procedure Digital1ClickSender: TObject; procedure FormActivateSender: TObject;
procedure Selesai1ClickSender: TObject; procedure Jalan1ClickSender: TObject;
procedure Berhenti1ClickSender: TObject; procedure Tentang1ClickSender: TObject;
private { Private declarations }
xjam,yjam,xmen,ymen,xdet,ydet : integer; procedure JamAnalogSender : TObject;
procedure JamDigitalSender : TObject; procedure BingkaiJam;
public { Public declarations }
end; var
Form1: TForm1; implementation
{R .DFM}
procedure TForm1.JamAnalogSender : TObject; Var
AmpJam,AmpMen,AmpDet,Jam,Men,Det,Det100 :
word; Begin
Gambar Jam: SetMapModepaintbox1.Canvas.Handle, MM_LOMETRIC;
SetViewPortOrgExPaintBox1.Canvas.Handle, PaintBox1.Width div 2,
PaintBox1.Height div 2, nil; If PaintBox1.HeightPaintBox1.Width Then
AmpDet := PaintBox1.Height div 2 -10 Else
AmpDet := PaintBox1.Width div 2 -10; Set Panjang Jarum Jam,Menit, dan Detik
AmpDet := AmpDet3 div 2; AmpMen := AmpDet-20;
AmpJam := AmpMen-30; DecodeTimeTime,Jam,Men,Det,Det100; catat
waktu ini With PaintBox1.Canvas DO
Begin Pen.Color := clBtnFace;
MoveTo0,0; LineToxdet,ydet; MoveTo0,0; LineToxmen,ymen;
MoveTo0,0; LineToxjam,yjam; xdet
:= RoundAmpDetcosDegToRad90-
det6; ydet
:= RoundAmpDetsinDegToRad90-
det6; xmen
:= RoundAmpMencosDegToRad90-
men6; ymen
:= RoundAmpMensinDegToRad90-
men6; xJam
:= RoundAmpJamcosDegToRad90-
jam30;
yJam :=
RoundAmpJamsinDegToRad90- jam30;
Gambar Jarum Detik: Pen.Color := clRed;
MoveTo0,0; LineToxdet,ydet; Gambar Jarum Menit:
Pen.Color := clBlack; MoveTo0,0; LineToxmen,ymen;
Gambar Jarum Jam MoveTo0,0; LineToxjam,yjam;
End; End;
procedure TForm1.JamDigitalSender:TObject; Begin
lblJam.Caption := TIMEtoSTRTime; End;
procedure TForm1.BingkaiJam; Var Amp,Amp1,i :integer;
Begin Gambar Jam:
SetMapModepaintbox1.Canvas.Handle, MM_LOMETRIC; SetViewPortOrgExPaintBox1.Canvas.Handle,
PaintBox1.Width div 2, PaintBox1.Height div 2, nil;
If PaintBox1.HeightPaintBox1.Width Then Amp := PaintBox1.Height div 2 -10
Else Amp := PaintBox1.Width div 2 -10;
Set Panjang Jarum Jam,Menit,Detik: Amp := Amp3 div 2;
Amp1 := Amp - 10; For i:=0 to 60 Do
Begin If
i mod
5 =0
Then PaintBox1.Canvas.Pen.Color := clRed
Else PaintBox1.Canvas.Pen.Color := clBlack; PaintBox1.Canvas.MoveToRoundAmpcosi30pi,Roun
dAmpsini30pi; PaintBox1.Canvas.LineToRoundAmpcosi30pi,Roun
dAmpsini30pi; End;
End;
procedure TForm1.Analog1ClickSender: TObject; begin
Analog1.Checked := True; Digital1.Checked := False;
lbljam.visible := false; Caption := Jam Analog;
PaintBox1.Visible := True; Application.ProcessMessages;
BingkaiJam; Timer1.OnTimer := JamAnalog;
end; procedure TForm1.Digital1ClickSender: TObject;
begin
Digital1.Checked := True; Analog1.Checked := False;
lbljam.visible := True; Caption := Jam Digital;
PaintBox1.Visible := False; Timer1.OnTimer := JamDigital;
end;
procedure TForm1.FormActivateSender: TObject; begin
Timer1.OnTimer := JamDigital;
end; procedure TForm1.Selesai1ClickSender: TObject;
begin
Close;
end; procedure TForm1.Jalan1ClickSender: TObject;
begin
Jalan1.Checked := True; Berhenti1.Checked := False;
Timer1.Enabled := True;
end; procedure TForm1.Berhenti1ClickSender: TObject;
begin
Jalan1.Checked := False; Berhenti1.Checked := True;
Timer1.Enabled := False;
end;
procedure TForm1.Tentang1ClickSender: TObject; begin
Application.MessageBoxBuatan Orang
Muslim ,Jam...,64;
end; End.
BAB VII DATABASE DESKTOP