AccessTr.neT

Tam Versiyon: Çok Kolay bir Analog Saat Yapalım
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
formumuza sadece 2 tane timer koyalım ve kodları yapştıralım. işte bu kadar kolay

Kod:
Private Sub Form_Load()

Dim aci, i, t

AutoRedraw = True

Timer1.Interval = 1000 ' 1 saniye

Timer2.Interval = 10 '1 saniye

'zemin desenini çiz

ScaleMode = 3 'pixel moduna geçir

For i = 0 To ScaleHeight

Line (0, i)-(ScaleWidth, i), i * 256

Next

ScaleMode = 1 'normal moda dön

'form yüksekli?ini ve genisligini ayni yap

Width = ScaleHeight

'matematiksel koordinatlara göre yeniden ölçekle

Scale (-20, 20)-(20, -20)

t = "ACCESSTR.NET"

CurrentX = -TextWidth(t) / 2 ' orta noktayy bul

CurrentY = -1

Print t

t = "    ERKAN   "

CurrentX = -TextWidth(t) / 2

CurrentY = -4

Print t



'saat yuvarlagini ciz

DrawWidth = 5

Circle (0, 0), 19, 65535



DrawWidth = 2

'saniye cizimlerini ciz

For aci = 0 To 360 Step 6

Line (18 * Cos(aci * 3.1415 / 180), 18 * Sin(aci * 3.1415 / 180))-(19 * Cos(aci * 3.1415 / 180), 19 * Sin(aci * 3.1415 / 180)), QBColor(5) 'saniyelerin arka rengi

Next

'saat cizgilierini ciz

DrawWidth = 4

For aci = 0 To 360 Step 6 * 5

Line (18 * Cos(aci * 3.1415 / 180), 18 * Sin(aci * 3.1415 / 180))-(19 * Cos(aci * 3.1415 / 180), 19 * Sin(aci * 3.1415 / 180)), QBColor(15) 'saatlerin arka rengi

Next

DrawMode = 7 'xor

End Sub



Private Sub Timer1_Timer()

Dim aci, saniye, dakika, saat, i

Static sx, sy, dx, dy, stx, sty

Caption = Time

DrawWidth = 2

Line (0, 0)-(sx, sy), QBColor(6) 'saniyeyi çiz

saniye = Second(Time) 'saniyeyi saatten al

aci = -saniye * 6 + 90 'her bir saniye +6 derecedir 360 derece 60 saniyedir

sx = 18 * Cos(aci * 3.1415 / 180)

sy = 18 * Sin(aci * 3.1415 / 180)

Line (0, 0)-(sx, sy), QBColor(6) 'saniyeyi çiz



DrawWidth = 3

Line (0, 0)-(dx, dy), QBColor(11) 'yelkovany çiz

dakika = Minute(Time) 'dakikayi saatten al

aci = -dakika * 6 + 90 'her bir dakika 6 derecedir 360 derece / 60 dakikadir

dx = 18 * Cos(aci * 3.1415 / 180)

dy = 18 * Sin(aci * 3.1415 / 180)

Line (0, 0)-(dx, dy), QBColor(11) 'yelkovani çiz

DrawWidth = 3

Line (0, 0)-(stx, sty), QBColor(12) 'akrebi ciz

saat = Hour(Time) 'saati saatten al

aci = -saat * 30 + 90 'her bir saat 30 derecedir 360 derece / 12 saat

stx = 12 * Cos(aci * 3.1415 / 180)

sty = 12 * Sin(aci * 3.1415 / 180)

Line (0, 0)-(stx, sty), QBColor(12) 'akrebi ciz

'saat basi ise zil cal

If Minute(Time) = 0 Then Beep

End Sub



Private Sub Timer2_Timer()

Static sls

sls = (sls + 1) Mod 360

Dim aci

Dim sx, sy, dx, dy, stx, sty

DrawWidth = 1

aci = -sls * 3.6 + 90 'her bir saniye 3.6 derecedir. 360 derece/ 100

sx = 3 * Cos(aci * 3.1415 / 180)

sy = 3 * Sin(aci * 3.1415 / 180)

Line (5, 5)-(5 + sx, 5 + sy), QBColor(10) 'sagdaki kucuk ibre

Line (-5, 5)-(-5 - sx, 5 - sy), QBColor(10) 'soldaki kucuk ibre

End Sub