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

procedure is too long .. بخصوص المصحف الألكتروني

بدأه awies في 2 أبريل 2012 · 1 رد · 358 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لكن واجهتني مشكلة procedure is too long لأن دالة تغيير الصفحة وتشغيل السورة التالية كانت طويلة جدا وتشمل كل سور القرآن وصفحاته .. وحقيقة لم أستطع تقسيمها أو إختصارها أو حل المشكلة بعد هذا المجهود الكبير الذي أمتد لشهرين من العمل المتواصل أخشى أن يكون كل عملي قد ذهب سدى !!

إليكم نبذة من العمل .. علما بأن الكود أطول من ذلك بكثيييير ..

كتوضيح

text1.text = التايمر

mp3 = الملفات الصوتية ((السور))

jpg = صفحات المصحف ..

وحسب التوقيت يقوم البرنامج بفتح الصفحات واحدة تلو أخرى ..

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

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

Private Sub Text1_Change()

If Text1.Text = "00:29" And x = 1 Then

x = 2

wmp.URL = App.Path & "\sound\002.mp3"

Picture1.Picture = LoadPicture(App.Path & "\images\002.jpg")

End If

If Text1.Text = "00:44" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\003.jpg")

End If

If Text1.Text = "02:48" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\004.jpg")

End If

If Text1.Text = "05:06" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\005.jpg")

End If

If Text1.Text = "07:06" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\006.jpg")

End If

If Text1.Text = "09:25" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\007.jpg")

End If

If Text1.Text = "11:30" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\008.jpg")

End If

If Text1.Text = "13:35" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\009.jpg")

End If

If Text1.Text = "15:28" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\010.jpg")

End If

If Text1.Text = "17:33" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\011.jpg")

End If

If Text1.Text = "19:41" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\012.jpg")

End If

If Text1.Text = "21:37" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\013.jpg")

End If

If Text1.Text = "23:34" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\014.jpg")

End If

If Text1.Text = "25:24" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\015.jpg")

End If

If Text1.Text = "27:15" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\016.jpg")

End If

If Text1.Text = "27:15" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\017.jpg")

End If

If Text1.Text = "30:41" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\018.jpg")

End If

If Text1.Text = "32:34" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\019.jpg")

End If

If Text1.Text = "34:55" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\020.jpg")

End If

If Text1.Text = "36:57" And x = 2 Then

Picture1.Picture = LoadPicture(App.Path & "\images\021.jpg")

End If

#2

السلام عليكم يا اخي awies

لو بتقدر تتعامل مع قاعدة بيانات بحيث تنشأ جدول خاص بالسور كالتالي:

الرقم

اسم ملف السورة

الفترة الزمنية

والفكرة بان تقرا السجل الاول من الجدول وتاخد اسم ملف الصوت وكذلك الفترة الزمنية والتي تسندها الى timer1.Interval وبعد مرور الفترة الزمنية المحددة في interval سينفذ

الاجراء timer1_timer وفيه يقرا السجل الثاني وينفذ ملف السورة الثانية ويغير زمن الخاصية interval الى القيمة الجديدة وهكذا

وبذلك اختصر الكود بيكون كود مختصر جدا

Private Sub Timer1_Timer()
    Dim sFile As String, Intr As Integer
    rsX.MoveNext
    sFile = rsX.Fields("fileName").Value
    Intr = rsX.Fields("interval").Value
    wmp.URL = App.Path & "\sound\" & sFile & ".mp3"
    Timer1.Interval = Intr
End Sub

ونفس الفكرة للصفحات انشاء جدول خاص بالصفحات

الرقم

اسم ملف الصفحة

الفترة الزمنية

وعنصر تحكم timer2

تم تعديل هذه المشاركة بواسطة realdie10 في 3 أبريل 2012 في 00:31

وما من كاتب إلا سيفنى *** ويبقى الدهر ماكتبت يــداه

فلا تكتب بكفك غير شيء *** يسرك في القيامة ان تراه

لا تنسى تشجيعي بالنقر على

add.png اذا كانت مشاركتي مفيدة

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