Önce 2 form ve 1 module olu?turalym, Daha sonra form 1’e 1 tane label, 2 tane command yerleştirelim.Command1’in başlığı “söyle” , Command2’nin başlığı “ayarlar” olsun
Daha sonra Form 2 ayarlar için kullanaca?ymyz form. Bu forma “saat” ve “dakika” yazan 2 label, alarm saatini ve dakikasyny girebilece?imiz 2 ComboBox ve girdi?imiz alarm saatini gösteren bir label olmaly.Bununla birlikte ek fonksiyonlarda ekliyelim : “saat ba?larynda alarm ver” ve “oturumu kapat” başlığını taşıyan 2 CheckBox ve syrasyyla “tamam” , “iptal” ve “mesaj” başlığında 3 command daha yerleştirelim.
Modüle'nin kodları
Global saat As Integer
Global dakika As Integer
Global ba?saat As Boolean
Global remind As String
Global kapan As Boolean
Form 1’in kodları
'Ses çalmak için API fonksiyonu
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Sub Command1_Click()
'Zamany ve dakikayy ö?renelim:
saat = Hour(Now)
If saat > 10 Then
'Saati ve dakikayy öğrendikten sonra saatin kaç basamaklı olduğunu öğrenmemiz
'gerek ki doğru sesleri yükleyelim...
'Saatin iki basamaklı olması halinde onlar basamağını saat10, birler basamağınu saat1 adlı değiikene atadım.
saat10 = Left(saat, 1): saat1 = Right(saat, 1)
'İstenilen Şartları sağlıyorsa sesi çaldyralım:
If saat = 20 Or saat = 10 Then
sndPlaySound saat10 & "0" & ".wav", 0
Else
sndPlaySound saat10 & "0" & ".wav", 0
sndPlaySound saat1 & ".wav", 0
End If
Else
sndPlaySound "0" & ".wav", 0
sndPlaySound saat & ".wav", 0
End If
dakika = Minute(Now)
If dakika > 10 Then
dakika10 = Left(dakika, 1): dakika1 = Right(dakika, 1)
sndPlaySound dakika10 & "0" & ".wav", 0
If Right(dakika, 1) <> "0" Then sndPlaySound dakika1 & ".wav", 0
Else
sndPlaySound "0" & ".wav", 0
sndPlaySound dakika & ".wav", 0
End If
End Sub
Private Sub Command2_Click()
Form2.Show vbModal
End Sub
Private Sub Form_Load()
'Bu satyr yazylmazsa saat 1 sn'lik bir gecikmeyle yazylyr:
Label1.Caption = Format(Now, "hh:mm
s")
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
'Saati ö?renmek ve yazdyrmak için:
Label1.Caption = Format(Now, "hh:mm
s")
saat = GetSetting("Saat", "Alarm", "Saat")
dakika = GetSetting("Saat", "Alarm", "Dakika")
saatnow = Hour(Now)
dakikanow = Minute(Now)
saniyenow = Second(Now)
If saatnow = saat And dakikanow = dakika And saniyenow = 0 Then
Beep
remind = GetSetting("Saat", "Alarm", "remind")
MsgBox remind, 48, "Dikkat"
If kapan = True Then
Shell "RUNDLL32.EXE user,exitwindows", 1
End
End If
End If
If ba?saat = True Then
If saatnow = 0 And saniyenow = 0 And dakikanow = 0 Then
For saatbas = 1 To 24
sndPlaySound "guguk.wav", 0
Next saatbas
ElseIf saniyenow = 0 And dakikanow = 0 Then
For guguk = 1 To saatnow
sndPlaySound "guguk.wav", 0
Next guguk
End If
End If
End Sub
Form 2’nin kodlary
Private Sub Check1_Click()
If Check1.Value = 1 Then ba?saat = True
End Sub
Private Sub Check2_Click()
If Check2.Value = 1 Then kapan = True
End Sub
Private Sub Combo1_Change()
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Private Sub Combo1_Click()
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub Combo2_Click()
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Private Sub Combo2_KeyPress(KeyAscii As Integer)
Label4.Caption = Combo2.Text + ":" + Combo1.Text
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub Command1_Click()
saat = Combo2.Text
dakika = Combo1.Text
If Check1.Value = 0 Then ba?saat = False
If Check1.Value = 1 Then ba?saat = True
If Check2.Value = 1 Then kapan = True
If Check2.Value = 0 Then kapan = False
SaveSetting "Saat", "Alarm", "SaatBasi", ba?saat
SaveSetting "Saat", "Alarm", "Kapan", kapan
SaveSetting "Saat", "Alarm", "Saat", saat
SaveSetting "Saat", "Alarm", "Dakika", dakika
Unload Form2
End Sub
Private Sub Command2_Click()
Unload Form2
End Sub
Private Sub Command3_Click()
remind = GetSetting("Saat", "Alarm", "remind")
remind = InputBox("Hatırlatmak istediğiniz mesajı buraya yazınız (Max:255 karakter).", "Mesaj", remind)
If remind = "" Then Exit Sub
SaveSetting "Saat", "Alarm", "remind", remind
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub Form_Load()
ayar
For i = 1 To 59
If i < 10 Then
Combo1.AddItem ("0" & i)
ElseIf i > 10 Then
Combo1.AddItem i
End If
Next i
For j = 1 To 23
If j < 10 Then
Combo2.AddItem ("0" & j)
ElseIf j > 10 Then
Combo2.AddItem j
End If
Next j
Combo1.AddItem ("10")
Combo2.AddItem ("10")
Combo1.AddItem ("00")
Combo2.AddItem ("00")
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Public Sub ayar()
On Error Resume Next
getsaat = GetSetting("Saat", "Alarm", "SaatBasi")
kapan = GetSetting("Saat", "Alarm", "Kapan")
Combo1.Text = dakika
Combo2.Text = saat
If getsaat = True Then Check1.Value = 1
If kapan = True Then Check2.Value = 1
End Sub
Daha sonra Form 2 ayarlar için kullanaca?ymyz form. Bu forma “saat” ve “dakika” yazan 2 label, alarm saatini ve dakikasyny girebilece?imiz 2 ComboBox ve girdi?imiz alarm saatini gösteren bir label olmaly.Bununla birlikte ek fonksiyonlarda ekliyelim : “saat ba?larynda alarm ver” ve “oturumu kapat” başlığını taşıyan 2 CheckBox ve syrasyyla “tamam” , “iptal” ve “mesaj” başlığında 3 command daha yerleştirelim.
Modüle'nin kodları
Global saat As Integer
Global dakika As Integer
Global ba?saat As Boolean
Global remind As String
Global kapan As Boolean
Form 1’in kodları
'Ses çalmak için API fonksiyonu
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Private Sub Command1_Click()
'Zamany ve dakikayy ö?renelim:
saat = Hour(Now)
If saat > 10 Then
'Saati ve dakikayy öğrendikten sonra saatin kaç basamaklı olduğunu öğrenmemiz
'gerek ki doğru sesleri yükleyelim...
'Saatin iki basamaklı olması halinde onlar basamağını saat10, birler basamağınu saat1 adlı değiikene atadım.
saat10 = Left(saat, 1): saat1 = Right(saat, 1)
'İstenilen Şartları sağlıyorsa sesi çaldyralım:
If saat = 20 Or saat = 10 Then
sndPlaySound saat10 & "0" & ".wav", 0
Else
sndPlaySound saat10 & "0" & ".wav", 0
sndPlaySound saat1 & ".wav", 0
End If
Else
sndPlaySound "0" & ".wav", 0
sndPlaySound saat & ".wav", 0
End If
dakika = Minute(Now)
If dakika > 10 Then
dakika10 = Left(dakika, 1): dakika1 = Right(dakika, 1)
sndPlaySound dakika10 & "0" & ".wav", 0
If Right(dakika, 1) <> "0" Then sndPlaySound dakika1 & ".wav", 0
Else
sndPlaySound "0" & ".wav", 0
sndPlaySound dakika & ".wav", 0
End If
End Sub
Private Sub Command2_Click()
Form2.Show vbModal
End Sub
Private Sub Form_Load()
'Bu satyr yazylmazsa saat 1 sn'lik bir gecikmeyle yazylyr:
Label1.Caption = Format(Now, "hh:mm
End Sub
Private Sub Timer1_Timer()
On Error Resume Next
'Saati ö?renmek ve yazdyrmak için:
Label1.Caption = Format(Now, "hh:mm
saat = GetSetting("Saat", "Alarm", "Saat")
dakika = GetSetting("Saat", "Alarm", "Dakika")
saatnow = Hour(Now)
dakikanow = Minute(Now)
saniyenow = Second(Now)
If saatnow = saat And dakikanow = dakika And saniyenow = 0 Then
Beep
remind = GetSetting("Saat", "Alarm", "remind")
MsgBox remind, 48, "Dikkat"
If kapan = True Then
Shell "RUNDLL32.EXE user,exitwindows", 1
End
End If
End If
If ba?saat = True Then
If saatnow = 0 And saniyenow = 0 And dakikanow = 0 Then
For saatbas = 1 To 24
sndPlaySound "guguk.wav", 0
Next saatbas
ElseIf saniyenow = 0 And dakikanow = 0 Then
For guguk = 1 To saatnow
sndPlaySound "guguk.wav", 0
Next guguk
End If
End If
End Sub
Form 2’nin kodlary
Private Sub Check1_Click()
If Check1.Value = 1 Then ba?saat = True
End Sub
Private Sub Check2_Click()
If Check2.Value = 1 Then kapan = True
End Sub
Private Sub Combo1_Change()
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Private Sub Combo1_Click()
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub Combo2_Click()
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Private Sub Combo2_KeyPress(KeyAscii As Integer)
Label4.Caption = Combo2.Text + ":" + Combo1.Text
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub Command1_Click()
saat = Combo2.Text
dakika = Combo1.Text
If Check1.Value = 0 Then ba?saat = False
If Check1.Value = 1 Then ba?saat = True
If Check2.Value = 1 Then kapan = True
If Check2.Value = 0 Then kapan = False
SaveSetting "Saat", "Alarm", "SaatBasi", ba?saat
SaveSetting "Saat", "Alarm", "Kapan", kapan
SaveSetting "Saat", "Alarm", "Saat", saat
SaveSetting "Saat", "Alarm", "Dakika", dakika
Unload Form2
End Sub
Private Sub Command2_Click()
Unload Form2
End Sub
Private Sub Command3_Click()
remind = GetSetting("Saat", "Alarm", "remind")
remind = InputBox("Hatırlatmak istediğiniz mesajı buraya yazınız (Max:255 karakter).", "Mesaj", remind)
If remind = "" Then Exit Sub
SaveSetting "Saat", "Alarm", "remind", remind
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Command1_Click
End If
End Sub
Private Sub Form_Load()
ayar
For i = 1 To 59
If i < 10 Then
Combo1.AddItem ("0" & i)
ElseIf i > 10 Then
Combo1.AddItem i
End If
Next i
For j = 1 To 23
If j < 10 Then
Combo2.AddItem ("0" & j)
ElseIf j > 10 Then
Combo2.AddItem j
End If
Next j
Combo1.AddItem ("10")
Combo2.AddItem ("10")
Combo1.AddItem ("00")
Combo2.AddItem ("00")
Label4.Caption = Combo2.Text + ":" + Combo1.Text
End Sub
Public Sub ayar()
On Error Resume Next
getsaat = GetSetting("Saat", "Alarm", "SaatBasi")
kapan = GetSetting("Saat", "Alarm", "Kapan")
Combo1.Text = dakika
Combo2.Text = saat
If getsaat = True Then Check1.Value = 1
If kapan = True Then Check2.Value = 1
End Sub
