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

تهنئة بالعيد و سؤال عن كود (countdown timer)

مغلق
بدأه panadol في 18 ديسمبر 2001 · 8 رد · 784 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الأعزاء

كل عام و أنتم بخير و تقبل الله منكم صيامكم و قيامكم ، و أعاد عليكم المناسبة بكل خير و عافية ..

لدي سؤال عن طريقة عمل :

حقل به الوقت الحالي (حسب ساعة الجهاز)

و في أسفله حقل يبين الثواني فقط

و حقل ثاني به الدقائق فقط

و حقل ثالث به الساعة فقط و كل ذلك حسب ساعة الجهاز..

و حقل لحساب وقت البداية.

و حقل أخير لحساب وقت النهاية.

المطلوب عمله هو ساعة توقف (STOP WATSH) بحث يتم تحديد عدد الدقائق المطلوبة و يقوم الحقل بالعد التنازلي و ما إن تنتهي المدة المحددة يقوم بإنذار ما كتشغيل ملف صوتي ..

== المراد استخدام البرنامج في مركز لتأهيل المعوقين لحساب وقت الإجابة عن أسئلة ذكاء لمعرفة مستويات الذكاء عند المنتسبين و أيضا تمارين ميدانية لنفس الغرض ==

أعلم أن الأمر يحتاج لكود خاص لعمل العد التنازلي و لذا ألتمس منكم المساعدة ..

وجدت هذا الكود و لكني لم استطع التعامل معه و بالأحرى لم أفهمه و لم يعمل معي ، و أضعه هنا للفائدة ..

_____________________________

' --------------------------------------------------------------------------------
' Copyright ©1999-2000, Shyam Pillai, All Rights Reserved.
' --------------------------------------------------------------------------------
' You are free to use this code within your own applications, add-ins,
' documents etc but you are expressly forbidden from selling or 
' otherwise distributing this source code without prior consent.
' This includes both posting free demo projects made from this
' code as well as reproducing the code in text or html format.
' --------------------------------------------------------------------------------

Option Explicit
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 

Sub Tmr() 

'Just in the eventuality that you click the start button twice
'isRunning stores the current state of the macro
'TRUE = Running; FALSE = Idle 

Static isRunning As Boolean
If isRunning = True Then
    End
Else
    isRunning = True
    Dim TMinus As Integer
    Dim xtime As Date
    xtime = Now 

    'On Slide 1, Shape 1 is the textbox 

    With ActivePresentation.Slides(1)
        .Shapes(2).TextFrame.TextRange.Text = "Ladies & Gentlemen." & vbCrLf & _
            "Please be seated. We are about to begin."
        With .Shapes(1) 

    'Countdown in seconds    

    TMinus = 120 

    Do While (TMinus > -1)

           ' Suspend  program execution for 1 second (1000 milliseconds)

            Sleep 1000 

            xtime = Now
           .TextFrame.TextRange.Text = Format(TimeValue(Format(Now, "hh:mm:ss")) - _                                TimeSerial(Hour(Now), Minute(Now), Second(Now) + TMinus), "hh:mm:ss") 

            TMinus = TMinus - 1 

             ' Very crucial else the display won't refresh itself 

            DoEvents
            Loop
    End With 

    ' 3-2-1-0 Blast off and move to the next slide or any slide for that matter 

    SlideShowWindows(1).View.GotoSlide (2)
    isRunning = False
    .Shapes(2).TextFrame.TextRange.Text = "Click here to start countdown"
    End

    End With
End If 

End Sub

_____________________________

و تحياتي للجميع

#2

الأخ باندول

ينقص شرحك أسماء الحقول وكذلك حقل لوضع مدة الانتظار قبل ظهور الرسالة وكذلك كيفية ظهور العداد التنازلي لذلك افترضت كل ذلك كالتالي :

1- افتح النموذج في عرض التصميم وفي الفاصل الزمني لعداد الوقت ضع 1000

2- ضع على النموذج سبعة مربعات نص وأسمائها كالتالي :

وقت_الجهاز

الساعة

الدقائق

الثواني

بداية_الوقت

نهاية_الوقت

مدة_الوقت

الأول لإظهار توقيت الجهاز

والثاني للساعة (ولو أني لم أفهم مرادك منه)

والثالث الدقائق

والرابع الثواني

والخامس بداية تشغيل المؤقت

والسادس نهاية تشغيل المؤقت

والسابع وقت التمرين قبل ظهور رسالة أو تشغيل ملف صوتي

3- ضع مربع عنوان (تسمية) باسم المتبقي_من_الوقت وهذه وظيفتها إظهار الرقم تنازلياً حتى يصل للصفر .

4- ضع زر تبديل باسم ابدأ .

5- في حدث عند النقر لزر التبديل ضع الكود التالي :

الساعة = Hour(Time)
الدقائق = Minute(Time)
الثواني = Second(Time)
بداية_الوقت = Time()
نهاية_الوقت = ""
المتبقي_من_الوقت.Caption = مدة_الوقت

6- في حدث عن عداد الوقت ضع الكود التالي :

وقت_الجهاز = Time()
If Me![ابدأ] = -1 And Not IsNull(مدة_الوقت) Then
المتبقي_من_الوقت.Caption = المتبقي_من_الوقت.Caption - 1
End If
If المتبقي_من_الوقت.Caption = 0 And Me![ابدأ] = -1 Then
Me![ابدأ] = 0
نهاية_الوقت = Time()
' ضع هنا رسالة أو تشغيل ملف صوتي

End If

ولك تحياتي

#3

الأخ أبو حمود

أعانك الله و هنأك بالجنة .. آمين

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

الأخطاء التي تتكرر معي في هذه السطور (يتم تزكيتها باللون الأصفر):

(المتبقي_من_الوقت.Caption = مدة_الوقت)

و

(If Me![ابدأ] = -1 And Not IsNull(مدة_الوقت) Then)

لك مني طيب المنى و أطهر الدعاء .. و لك الأعضاء التحية

تحياتي للجميع

#4

الأخ باندول

لم يصلني الملف .

ولك تحياتي

#5

الأخ أبو حمود

تم إرسال الرسالة من جديد و هي تحمل اسم:

COUNTDOWN TIMER ساعة التوقف في أكسس

أرجو أن تصلك الرسالة..

تحياتي

#6

الأخ أبو حمود

إن لم يصلك الملف بعد ، أرجو تميله من الرابط التالي:

http://mypage.ayna.com/sindbad122/countdowntimer.zip

تحياتي للجميع

#7

الأخ panadol

ارسلت اليك الملف بعد التعديل .

الأخوة

وجد في المثال الذي ارسله الى الأخ باندول حقلي وقت حاولت معرفة فرق التوقيت بينهما وتخزين الناتج في حقل آخر إى أنني بعد محاولات عدة لم اتوصل سوى الى الكود التالي :

Dim ثواني_البداية As Integer, ثواني_النهاية As Integer
Dim دقائق_البداية As Integer, دقائق_النهاية As Integer
Dim ساعات_البداية As Integer, ساعات_النهاية As Integer
Dim ثانية As Integer, دقيقة As Integer, ساعة As Integer

ثواني_البداية = Second(بداية_الوقت)
ثواني_النهاية = Second(نهاية_الوقت)
دقائق_البداية = Minute(بداية_الوقت)
دقائق_النهاية = Minute(نهاية_الوقت)
ساعات_البداية = Hour(بداية_الوقت)
ساعات_النهاية = Hour(نهاية_الوقت)

If ثواني_النهاية < ثواني_البداية Then
ثانية = (ثواني_النهاية + 60) - ثواني_البداية
Else
ثانية = ثواني_النهاية - ثواني_البداية
End If

If ثواني_النهاية < ثواني_البداية Then
    If دقائق_النهاية < دقائق_البداية Then
    دقيقة = ((دقائق_النهاية - 1) + 60) - دقائق_البداية
    Else
    دقيقة = (دقائق_النهاية - 1) - دقائق_البداية
    End If
Else
    If دقائق_النهاية < دقائق_البداية Then
    دقيقة = (دقائق_النهاية + 60) - دقائق_البداية
    Else
    دقيقة = دقائق_النهاية - دقائق_البداية
    End If
End If

If دقائق_النهاية < دقائق_البداية Then
ساعة = (ساعات_النهاية - 1) - ساعات_البداية
Else
ساعة = ساعات_النهاية - ساعات_البداية
End If
الوقت_المستغرق = ساعة & " ساعة و " & دقيقة & " دقيقة و " & ثانية & " ثانية"

آمل ممن لديه طريقة أخرى أفضل من هذه كتابتها للإستفادة منها .

ولكم تحياتي

#8

الأخ أبو حمود

لا تسعفني الكلمات لشكرك ..

لقد عملت و أتقنت فجزاك الله عني و عن العالمين خيرا كثيرا بقدر ما يحب ربي و يرضى..

لقد سهرت طوال الليل أبحث في الإنترنت عن حل و لم أجد ، و في نفس الوقت كنت متأكدا من توصلك لهذا الحل الرائع فكنت أتردد بين حين و آخر علني أجد لك تعقيبا .. فجزاك الله خيرا و أدام عليك العفو و العافية بقدر ما تحمل من نوايا طيبة و جزاك حسنى في الدنيا و حسنى في الآخرة إنه سميع مجيب..

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

نحياتي

#9

الأخ أبو حمود .. بعد إذنك طبعا ..

الإخوة الأعضاء

إليكم الرابط الذي يحمل ملف لنموذج تم تصميمه ليكون كساعة توقف stop watsh أو ساعة العد التنازلي countdown timer و هي مفيدة لأشياء كثيرة منها مراقبة وقتك و تحديد مدة زمنية لعمل ما ..

الرابط .. http://mypage.ayna.com/sindbad122/Timer.zip

تحياتي للجميع

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

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