منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : عمل برنامج مؤقت تنازلي
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

اخواني اريد طريقة او كود او مثال لعمل ساعة مؤقت تنازلي بحيث اذا وضعت 00:30
يقوم بالعد التنازلي من 00:30 الى ان يتم 00:00 يقوم باصدار صوت انذار ..

وشكرا
.....

منقول مع تعديل بسيط ليناسب طلبك

أضف عدد 4 من الأداة NumericUpDown (اليوم، الساعة، الدقيقة، الثانية)
اليوم: NumericUpDown1.Maximum = 100
الساعة: NumericUpDown2.Maximum = 24
الدقيقة: NumericUpDown3.Maximum = 60
الثانية: NumericUpDown4.Maximum = 60

أضف عدد 1 من الأداة Label
Label1.Text = 00-00:00:00.000

أضف عدد 3 من الأداة Button
إبدأ = Button1.Text
توقف = Button2.Text
إعادة = Button3.Text

أضف عدد 1 من الأداة Timer
Timer1.Interval = 1

في الإجراء Finished ضع ما تريد من تنبيه
كود :
Dim Stopwatch As Stopwatch
Dim day = 0, hour = 0, minute = 0, second = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Stopwatch = Stopwatch.StartNew()
    Stopwatch.Reset()
    NumericUpDown1.Maximum = 100
    NumericUpDown2.Maximum = 24
    NumericUpDown3.Maximum = 60
    NumericUpDown4.Maximum = 60
    Label1.Text = "00-00:00:00.000"
    Button1.Text = "إبدأ"
    Button2.Text = "توقف"
    Button3.Text = "إعادة"
    Timer1.Interval = 1
End Sub


' Finish() الإنتهاء
Private Sub Finish()
    Beep ''<<<<<<<<<<<<<<<<<<<<< صوت تنبيه بالنهاية
    MsgBox("إنتهى") ''<<<<<<<<<<<<<<<<<<<<<
End Sub


' Start() البدء
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If New TimeSpan(day, hour, minute, second, 0) <> New TimeSpan(0, 0, 0, 0, 0) Then
        Stopwatch.Start()
        Timer1.Start()
    End If
End Sub

' Pause() التوقف المؤقت
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Stopwatch.Stop()
End Sub

' Reset() الإعادة
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Stopwatch.Reset()
    Dim elapsedTime As String = String.Format("{0:00}-{1:00}:{2:00}:{3:00}.{4:000}", day, hour, minute, second, 0)
    Me.Label1.Text = elapsedTime

End Sub

' Tick العملية
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Stopwatch IsNot Nothing AndAlso Stopwatch.IsRunning Then
        Dim ts1 As TimeSpan = Stopwatch.Elapsed
        Dim ts2 As New TimeSpan(day, hour, minute, second, 0)

        Dim ts As TimeSpan = ts2 - ts1

        If ts1.Duration >= New TimeSpan(day, hour, minute, second, 0) Then
            Timer1.Stop()
            ts = New TimeSpan(0, 0, 0, 0, 0)
            Me.Label1.Text = String.Format("{0:00}-{1:00}:{2:00}:{3:00}.{4:000}", 0, 0, 0, 0, 0)
            Finish()
        End If

        Dim elapsedTime As String = String.Format("{0:00}-{1:00}:{2:00}:{3:00}.{4:000}", ts.Days, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds)
        Me.Label1.Text = elapsedTime
    End If
End Sub

' NumericUpDown value changed تغير قيم الضبط
Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles NumericUpDown1.ValueChanged, NumericUpDown2.ValueChanged, NumericUpDown3.ValueChanged, NumericUpDown4.ValueChanged
    day = NumericUpDown1.Value
    hour = NumericUpDown2.Value
    minute = NumericUpDown3.Value
    second = NumericUpDown4.Value
End Sub

.....
(02-06-14, 07:14 AM)vbnet كتب : [ -> ].....

منقول مع تعديل بسيط ليناسب طلبك

أضف عدد 4 من الأداة NumericUpDown (اليوم، الساعة، الدقيقة، الثانية)
اليوم: NumericUpDown1.Maximum = 100
الساعة: NumericUpDown2.Maximum = 24
الدقيقة: NumericUpDown3.Maximum = 60
الثانية: NumericUpDown4.Maximum = 60

أضف عدد 1 من الأداة Label
عرض الزمن المتبقي: Label1

أضف عدد 3 من الأداة Button
إبدأ: Button1
توقف: Button2
إعادة: Button3

أضف عدد 1 من الأداة Timer


في الإجراء Finished ضع ما تريد من تنبيه
كود :
Dim Stopwatch As Stopwatch
Dim day = 0, hour = 0, minute = 0, second = 0

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Stopwatch = Stopwatch.StartNew()
    Stopwatch.Reset()
    NumericUpDown1.Maximum = 100
    NumericUpDown2.Maximum = 24
    NumericUpDown3.Maximum = 60
    NumericUpDown4.Maximum = 60
    Timer1.Interval = 1
End Sub


' Finish() الإنتهاء
Private Sub Finish()
    Beep ''<<<<<<<<<<<<<<<<<<<<< صوت تنبيه بالنهاية
    MsgBox("إنتهى") ''<<<<<<<<<<<<<<<<<<<<<
End Sub


' Start() البدء
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If New TimeSpan(day, hour, minute, second, 0) <> New TimeSpan(0, 0, 0, 0, 0) Then
        Stopwatch.Start()
        Timer1.Start()
    End If
End Sub

' Pause() التوقف المؤقت
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Stopwatch.Stop()
End Sub

' Reset() الإعادة
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    Stopwatch.Reset()
    Dim elapsedTime As String = String.Format("{0:00}:{1:00}:{2:00}:{3:00}.{4:000}", day, hour, minute, second, 0)
    Me.Label1.Text = elapsedTime

End Sub

' Tick العملية
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Stopwatch IsNot Nothing AndAlso Stopwatch.IsRunning Then
        Dim ts1 As TimeSpan = Stopwatch.Elapsed
        Dim ts2 As New TimeSpan(day, hour, minute, second, 0)

        Dim ts As TimeSpan = ts2 - ts1

        If ts1.Duration >= New TimeSpan(day, hour, minute, second, 0) Then
            Timer1.Stop()
            ts = New TimeSpan(0, 0, 0, 0, 0)
            Me.Label1.Text = String.Format("{0:00}:{1:00}:{2:00}:{3:00}.{4:000}", 0, 0, 0, 0, 0)
            Finish()
        End If

        Dim elapsedTime As String = String.Format("{0:00}:{1:00}:{2:00}:{3:00}.{4:000}", ts.Days, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds)
        Me.Label1.Text = elapsedTime
    End If
End Sub

' NumericUpDown value changed تغير قيم الضبط
Private Sub NumericUpDown1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles NumericUpDown1.ValueChanged, NumericUpDown2.ValueChanged, NumericUpDown3.ValueChanged, NumericUpDown4.ValueChanged
    day = NumericUpDown1.Value
    hour = NumericUpDown2.Value
    minute = NumericUpDown3.Value
    second = NumericUpDown4.Value
End Sub

الف شكر لك تم بنجاح استخدامها في مشروعي بطريقة اخرى
شكرا على هذا الشرح رائع
الله ينور عليك

الفكر هد تمام البرنامج %%

انا عدي مشكل ولاوهي اني بعني

من عدم معرفتي بتيمر

الحين انا بدي البرنامج علي سبل المثال

لم اديه من الوقت ساعة من الزمان

كيف بدي لم يعدي حولي 5 دقائق يعمل شي محداد

انا لم اعمل شرط بعيبرات اف

لم يصل الوقت الي خمس دقائق يعمل حداث معي

كيف الامر هد بتم وكون شكر لكم

والله يوفق الجميع 

ياريت لا احد يقصر من اهل الخبر

وكون شكر الك مجميعا



Heart Heart Heart