الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في تنفيذ شرط التاريخ في التايمر

بدأه mdf في 17 أبريل 2010 · 8 رد · 845 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

برمجت برنامج يخرج الموعد بوقد محدد لكن عندي مشكلة وهي التاريخ الشرط فيه غير مضبوط هل طريقتي غير صحيحه....ثاني حاجة هل استطيع إضافة زر راديو للتكرار الحدث كل يوم

وشكراً

إضفت

DateTimePicker1

للوقت

و

DateTimePicker2

للتاريخ

و

Button1

Timer1.Enabled = True

للتشغيل

و

Timer1

والتايمر

الشرط الموجود في التايمر...هل هو صحيح

PrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

If Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then

Timer1.Enabled = False

ElseIf Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then

Timer1.Enabled = False

Else

MsgBox(" ")

Timer1.Enabled = False

EndIf

#2

up

#3

للرفع...إذا كان السؤال أو المشكلة غير واضحه ..قل غير واضحه ؟؟

تم تعديل هذه المشاركة بواسطة mdf في 19 أبريل 2010 في 00:01

#4
mdf كتب:

للرفع...إذا كان السؤال أو المشكلة غير واضحه ..قل غير واضحه ؟؟

غير واضحة

#5
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then
            Timer1.Enabled = False

        ElseIf Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then
            Timer1.Enabled = False
        Else
            MsgBox(" ")
            Timer1.Enabled = False
        End If
    End Sub

أخى ما الفرق الشرطين الأولين وما لفرق بين ناتج تنفيذ الثلاثة شروط

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#6
amr.alsaidy كتب:

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        If Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then
            Timer1.Enabled = False

        ElseIf Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then
            Timer1.Enabled = False
        Else
            MsgBox(" ")
            Timer1.Enabled = False
        End If
    End Sub

أخى ما الفرق الشرطين الأولين وما لفرق بين ناتج تنفيذ الثلاثة شروط

استخدمت

DateTimePicker1

للتاريخ

و

DateTimePicker2

للساعة

و

Timer1

للوقت

والزر يتم الضغط علية للتشغيل

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Timer1.Enabled = True

End Sub

الكود الاخرى يوضع في التايمر ....لكن هل الشروط صحيحه ام لا؟

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

If Now.Hour = DateTimePicker1.Value.Hour AndAlso Now.Minute = DateTimePicker1.Value.Minute Then

Timer1.Enabled = False

ElseIf Now.Day = DateTimePicker2.Value.Day AndAlso Now.Month = DateTimePicker2.Value.Month AndAlso Now.Year = DateTimePicker2.Value.Year Then

Timer1.Enabled = False

Else

MsgBox("لديك موعد")

Timer1.Enabled = False

End If

End Sub

اثناء تنفيذ شرط الوقت والدقيقة والتاريخ اليوم والشهر واليوم

تخرج الرسالة

طبعاً تم تعديل الكود ومازال هناك عدم التنفيذ

#7

أنا مع الاخ عمرو الصعيدي ما الفرف بين الاثنين لن يعمل مقارنة أولاً يجب عليك ان تخزن وقت وتاريخ وتعمله تهيئة حسب طلبك وشغلك ويفضل ان يكون الحقل في قاعدة البيانات من نوع تاريخ date بعدين كل ما يفتح البرنامج يعمل do loop على حقل التاريخ ويقارن بتاريخ اليوم والوقت لان البرنامج ممكن يغلق ويفتح يجب ان تكون هناك قيمة ثابتة تاريخ وتقارن بتاريخ اليوم مثال : استخدم دالة للمقارنة بين تاريخين

DateDiff("dd", #3/7/1431#, Now())

#8
الساهر24 كتب:

أنا مع الاخ عمرو الصعيدي ما الفرف بين الاثنين لن يعمل مقارنة أولاً يجب عليك ان تخزن وقت وتاريخ وتعمله تهيئة حسب طلبك وشغلك ويفضل ان يكون الحقل في قاعدة البيانات من نوع تاريخ date بعدين كل ما يفتح البرنامج يعمل do loop على حقل التاريخ ويقارن بتاريخ اليوم والوقت لان البرنامج ممكن يغلق ويفتح يجب ان تكون هناك قيمة ثابتة تاريخ وتقارن بتاريخ اليوم مثال : استخدم دالة للمقارنة بين تاريخين

DateDiff("dd", #3/7/1431#, Now())

يعني تقصد لا بد من استخدام قاعدة بيانات ...لكن هل استخدم نفس الشروط ام لا بعد الاتصال بالقاعدة...ممكن توضح

#9

السلام عليكم ورحمة الله، يمكن بدل قاعدة بيانات أن تعمل مع ملف نصي عادي عن طريق عمل Structure تحتوي على التاريخ والوقت، وتخزن فيها المواعيد التي حددها المستخدم، عند الحدث المطلوب (فتح البرنامج، أو timer_tick ) يتم عمل حلقة على محتويات الملف (يمكن تحميلها إلى list(of yourstructure لكي لا تضطر لفتح الملف كل مرة) إذا وافق التاريخ والوقت المحدد في أي عنصر من الحلقة يتم إنذار المستخدم بالطريقة التي تفضلها.

Public Structure EventStc
    Dim EventDate As Date
    Dim Minutes As Byte
    Dim Hour As Byte
    Dim isDone As Boolean
End Structure

Public Class Form1

    Dim evn As EventStc
    Public EventsList As List(Of EventStc)

    Function NbEvents() As Integer
        If IO.File.Exists("c:\eventslog.dat") Then
            Return FileLen("c:\eventslog.dat") / Len(evn)
        Else
            Return 0
        End If
    End Function


    'Methods ================================================================
    Sub loadEvents()

        EventsList = New List(Of EventStc)

        '-------------
        FileOpen(1, "c:\events_log.dat", OpenMode.Random, OpenAccess.Read, , Len(evn))

        For i = 1 To NbEvents()
            FileGet(1, evn, i)
            EventsList.Add(evn)
        Next

        FileClose(1)
        '------------
    End Sub

    Sub AddEvent(ByVal NewEvent As EventStc)
        EventsList.Add(NewEvent)
    End Sub

    Sub SaveEvents()
        FileOpen(1, "c:\events_log.dat", OpenMode.Random, OpenAccess.Write, , Len(evn))
        For i = 1 To EventsList.Count
            evn = EventsList(i - 1)
            FilePut(1, evn, i)
        Next
        FileClose(1)
    End Sub

    Sub AnyEventNow()
        For i = 0 To EventsList.Count - 1
            With EventsList(i)
                If Not .isDone AndAlso .EventDate.Date = Now.Date AndAlso .Hour = Now.Hour AndAlso .Minutes = Now.Minute Then

                    evn = EventsList(i)
                    evn.isDone = True
                    EventsList(i) = evn

                    MessageBox.Show("TO DO: Write your response event here")
                End If
            End With
        Next
    End Sub




    'Response to Handlers
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        SaveEvents()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        loadEvents()
        EventsTimer.Enabled = True   'or  EventsTimer.Start()

    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
        With evn
            .EventDate = DateDateTimePicker.Value.Date
            .Hour = TimeDateTimePicker.Value.Hour
            .Minutes = TimeDateTimePicker.Value.Minute
            .isDone = False
        End With

        AddEvent(evn)
    End Sub


    Private Sub EventsTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EventsTimer.Tick
        AnyEventNow() '?
    End Sub
End Class

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…