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

كيف أطبق عداد الوقت التنازلي عبر القالب Timers

مغلق
بدأه webwap في 10 ديسمبر 2006 · 3 رد · 787 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمه الله و بركاته .........

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

اسف ان كنت طلت عليكم اخوانى.........

ارجو افادتى بالشرح المفصل و الاكواد

و شكرا لحضراتكم

تم تعديل هذه المشاركة بواسطة الغملاسي في 11 ديسمبر 2006 في 02:57

#2

السلام عليكم

هنالك مثال مرفق في الاسفل.

يمنكنك ذلك بحيث تعرف وظيفة تقوم بتطبيق معادلة تستنتج منها الوقت حسب ممرراتها.

المتطلبات هي كالتالي: متغير وقتي نضع في الوقت الحالي زايد الوقت المخصص مثلاً ساعة , ساعتان إلى أخره.

بهذا الشكل. في هذا المثال استخدمنا الدقائق AddMinutes فقط لأجل الاختبار ويفترض للساعات أن يكون AddHours

Private CountDownHours As Date = Date.Now.AddMinutes(1)

ثم ندرج عنصر التوقيت Timer وفي حدث الـ Tick نكتب التالي:

 Private Sub timCount_Tick(ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles timCount.Tick

		'Read Date in Arabic Readable Format.
		lblResult.Text = CalculatedifferTime(Date.Now, CountDownHours)

		'Read date In time format.
		lblFormatResult.Text = CalculatedifferTime(Date.Now, CountDownHours, False)

	End Sub

ثم الوظيفة CalculatedifferTime ستكون على هذا النحو.

Private Function CalculatedifferTime(ByVal CurrentTime As DateTime, _
	  ByVal RemainingTime As DateTime, _
	  Optional ByVal ReadableResult As Boolean = True) As String


		'Get the different time in second format.
		Dim Value As Integer = DateDiff("s", CDate(CurrentTime), CDate(RemainingTime))

		'Compare the 2 parmeters times
		Dim ComDate As Integer = Date.Compare(CurrentTime, RemainingTime)

		'if they equal or over the TargetHours then 
		If ComDate = 0 Or ComDate = 1 Then

			'Time is over.
			timCount.Enabled = False
			Me.BackColor = Color.White
			Return "إنتهى الوقت المحدد"

		End If

		'Local vars declarations
		Dim Hour, Minute, allSeconds, Second As Integer
		Dim HourCount As String = String.Empty
		Dim MinuteCount As String = String.Empty
		Dim SecondCount As String = String.Empty
		Dim ResultHumanFormat As String = String.Empty
		Dim ResultTimeFormat As String = String.Empty

		'The equation of getting human time.
		allSeconds = Value \ 60
		Hour = allSeconds \ 60
		Minute = (allSeconds - (Hour * 60))
		Second = Value - (allSeconds * 60)

		'Check hours.
		If Hour >= 1 Then
			If Hour > 10 Then HourCount = Hour.ToString & " ساعة "
			If Hour <= 10 Then HourCount = Hour.ToString & " ساعات "
			If Hour = 2 Then HourCount = " ساعتان "
			If Hour = 1 Then HourCount = " ساعة واحدة "
			ResultHumanFormat = HourCount
			ResultTimeFormat = Hour.ToString
		Else
			ResultTimeFormat = "00: "
		End If

		'Check minutes.
		If Minute >= 1 Then
			If Minute > 10 Then MinuteCount = Minute.ToString & "  دقيقة  "
			If Minute <= 10 Then MinuteCount = Minute.ToString & " دقائق  "
			If Minute = 2 Then MinuteCount = " دقيقتان  "
			If Minute = 1 Then MinuteCount = " دقيقة واحدة   "
			If MinuteCount <> "" AndAlso Hour >= 1 Then
				ResultHumanFormat &= ", "
				ResultTimeFormat &= ": "
			End If
			ResultHumanFormat &= MinuteCount
			ResultTimeFormat &= Minute.ToString
		Else
			ResultTimeFormat &= "00: "
		End If

		'Check seconds.
		If Second >= 1 Then
			If Second > 10 Then SecondCount = Second.ToString & " ثانية "
			If Second <= 10 Then SecondCount = Second.ToString & " ثواني "
			If Second = 2 Then SecondCount = " ثانيتان "
			If Second = 1 Then SecondCount = " ثانية واحدة "
			If SecondCount <> "" AndAlso (Minute >= 1 Or Hour >= 1) Then
				ResultHumanFormat &= ", "
				ResultTimeFormat &= ": "
			End If
			ResultHumanFormat &= SecondCount
			ResultTimeFormat &= Second.ToString
		End If


		'Destroy Remaining objects.
		HourCount = Nothing
		MinuteCount = Nothing
		SecondCount = Nothing


		'Finally in which format should be returned.
		If ReadableResult Then
			Return ResultHumanFormat
		Else
			Return ResultTimeFormat
		End If
	End Function

للأمانة العلمية : هذا الكود قدعرض من قبل وانما نحن قمنا بتنقيحه و تغيير بعض خصائصه ليتناسب مع متطلباتنا.

TimeDownApp.rar

في المثال يتضح المقال

#3

طبعا بعد اذن استاذنا الكبير الغملاسي انا اضفت فورم تاني في نفس المشروع وحطيت فيه حل اخر ارجو اعطائي رأيك اخ غملاسي

تحياتي

TimeDownApp.zip

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#4

السلام عليكم

حل ممتاز جداً, ومختصر,من شخص مثابر و طموح.

أشكرك على هذه المشاركة الطيبة

في المثال يتضح المقال

هذا الموضوع مغلق.

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

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

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

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

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