DESAIN FORM SOURCE CODE

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