إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

سلسلة رقم 2 تصميم إسطوانة قرآن كريم

تقليص
هذا الموضوع مغلق.
X
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • سلسلة رقم 2 تصميم إسطوانة قرآن كريم

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



    سلسلة رقم 2 تصميم إسطوانة قرآن كريم




    إخوانى أعضاء وزوار المنتدى الكرام أقدم لكم سلسلة رقم 2 لشرح تصميم إسطوانة قرآن كريم وذلك لمحاولة تبسيط شرح بعض الطرق وبعض الأكواد الممكن إستخدامها فى هذا العمل
    محتويات هذا الشرح هو لإستكمال السلسلة السابقة سلسلة رقم 1 لشرح تصميم إسطوانة قرآن كريم والإضافة إلى ما تقدم طريقة عمل تشغيل متتالى للآيات والسور وتشغيل من البداية أو من بداية أول سورة بعدما يتم الوصول إلى آخر سورة أو آخر آية وهذا أيضا يعتبر تشغيل متواصل أو متتالى
    أيضا يجب أن نفرق دائما بين مصطلح التشغيل المتتالى ومصطلح التكرار للآيات أو السور فكلاهما سوف نتناولة بالشرح التدريجى

    نبدأ إن شاء الله



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



    نموذج تصميم برنامج قرآن كريم


    بعد تحميل الملف المفتوح السابق سوف ندخل إلى خصائص وأحداث عنصر الميديا بلير حيث هو العنصر الذى سوف يقوم بمهمة التشغيل المتتالى بعد نهاية كل آية والإنتقال أوتوماتيكيا إلى الآية التالية والسورة التالية بعد نهاية قراءة السورة الحالية أيضا بشكل أوتوماتيكيا

    ترتيب الأفكار لوضع الأكواد اللازمة لهذه المهمة هو :
    1- نريد معرفة عدد الآيات التى تحتويها السورة المختارة من قبل الضغط والإختيار من السور المكتوبة فى عنصر "Tree" فى كل مرة يتم تشغيل عنصر الميديا بلير .
    2- بعد معرفة عدد آيات السورة المحددة يصبح من السهل جدا وضع شرط عند نهاية قراءة الآية الحالية أن نزيد رقما ليعبر عن الآية التالية .
    3- مطلوب البحث عن المكان الصحيح الذى نضع فية أكوادنا التى نتحكم بها فى عمل البرنامج بشكل مناسب ودقيق كلما أمكننا ذلك وتتم هذه العملية بالتجربة والفهم الصحيح .
    التطبيق العملى على الملف المفتوح السابق :
    نذهب إلى أحداث عنصر الميديا بلير ونضع فى الحدث "On Play" الكود التالى :

    كود:
    soura_files = File.Find("AutoPlay\\Docs\\"..soura, "*.mp3", false, false, nil, nil);
    فائدة الكود السابق هو إيجاد أو البحث عن جميع الملفات الصوتية ذات الإمتداد "mp3" فى مجلد السورة التى تم إختيار تشغيل آياتها وتخزين نتيجة البحث على شكل مصفوفة أو جدول فى حالة العثور على ملفات بداخل مجلد السورة المحددة وإذا لم يجد سوف يكون الناتج المخزن هو nil ووضعنا هذا الكود فى هذا الحدث من أحداث عنصر الميديا بلير نظرا لأنه الأنسب والأدق عن تجربة منى .
    بعد ذلك نذهب إلى الحدث الأهم وهو "On Finish" فى أحداث الميديا بلير ونضع كود يتحقق من وجود ملفات أو كود شرطى فى حالة وجود ملفات صوتية بداخل مجلد السورة يعمل على الحصول على عددها فكما ذكرنا أن الملفات فى حالة العثور عليها تخزن جميعا كمصفوفة بدخل المتغير السابق الذى كان soura_files والذى وضعناه فى الحدث "On Play"

    كود:
    --
    if soura_files~=nil then
    count = Table.Count(soura_files);
    بالكود السابق يتم معرفة عدد الملفات الصوتية فى حالة العثور عليها فى مجلد السورة المحددة وتخزين القيمة العددية فى المتغير count
    بعد ذلك نستطيع عمل مقارنة بسيطة وشرطية فى حالة إختيار آية معينة فإذا وجد أن رقم الآية التى تعمل على عنصر الميديا بلير أقل من العدد الكلى لآيات السورة المحددة
    يتعرف العنصر على الآية الجديدة أو رقمها الذى نريد أن نزيد علية رقما ليكون بهذا هو المطلوب لتشغيل الآية التالية أو الآية الجديدة أو السورة الجديدة فيكون الكود المستخدم هو التالى :

    كود:
    --
     if String.ToNumber(aya) < count then
    new_aya = String.ToNumber(aya)+1 ;
    وفى الكود السابق سيتم تخزين رقما جديدا معبرا عن رقم الآية التالية المراد تشغيلها عند الإنتهاء من قراءة الآية الحالية وقد إستخدمنا كود لتحويل نص المتغير aya إلى رقما وإضافة رقم 1
    بالأكواد السابقة لدينا رقما جديدا معبرا عن الآية الجديدة التى سيعمل الميديا على تشغيلها بعد الحالية فيمكن بهذا أن نستخدم كودين كالتالى :

    كود:
    --
    Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
    MediaPlayer.Load("Plugin1", "AutoPlay\\Docs\\"..soura.."\\"..new_aya..".mp3");
    الكودين السابقين أحدهما أمر يوجه إلى عنصر الشجرة "Tree" يطلب منه أن يعمل على إختيار أو تحديد الآية الجديدة فى السورة التى يقرأها عنصر الميديا بلير وبشكل تلقائى
    أما الكود الثانى فهو أمر تشغيل الآية الجديدة بعد إنتهاء الآية الحالية فى عنصر الميديا بلير بشكل تلقائى متتالى .


    كود:
    --
     elseif String.ToNumber(aya) == count then 
    for i=1,114 do
    Tree.SetNode("Tree1", soura, {Expanded=false});
    end
    الكود السابق هو جملة شرطية نطلب منها فى حالة تساوى رقم الآية المنتهية قراءتها فى عنصر الميديا أو كما هو كتبناه الآية المحدد بواسطة عنصر "tree" حيث أن عنصر "Tree" يعمل بشكل تلقائى أيضا متتالى فإن أحد المتغيرات التى كتبناها فية كان المتغير aya
    إذا تحقق شرط المساواه لرقم الآية مع المجموع العددى أو الكلى لآيات السورة يعمل على إغلاق نطاق السورة التى تم الإنتهاء من قراءتها بالكامل قراءة متتالية
    يمكنك ملاحظة مايحدث عند الإنتهاء إذا نظرت إلى عنصر "Tree" فترى أن الآيات للسورة تم إخفاء ظهورها وقد وضعت حلقة تكرارية لعمل هذا أو تطبيق هذا من 1 إلى 114
    والرقم 114 هو طبعا لإجمالى عدد سور القرآن الكريم " يعنى أنا وضعت الحلقة والأكواد للمستقبل ولمن حاول التجربة يجد الأكواد صالحة لجميع آيات و سور القرآن الكريم "

    كود:
    --
    soura=tonumber(soura)+1;
    Tree.SetSelectedNode("Tree1", soura);
    Tree.SetNode("Tree1", soura, {Expanded=false});
    new_aya = 1 ;
    Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
    MediaPlayer.Load("Plugin1", "AutoPlay\\Docs\\"..soura.."\\"..new_aya..".mp3");
    السطر الأول هو لوضع قيمة جديدة للسورة الجديدة المراد تشغيلها بعد الإنتهاء من قراءة آيات السورة الحالية بالكامل فيعمل على زيادة رقم على السورة الحالية ويخزن كرقم جديد معبرا عن السورة الجديدة أو التالية فى المتغير soura
    السطر الثانى يعمل على إختار تلقائى فى عنصر الشجرة أو إنتقال تلقائى للسورة التالية
    السطر الثالث فائدتة هو فتح النطاق للسورة التالية لإظهار آياتها فى العنصر "Tree" راقب العمل أثناء المعاينة تجد فى حالة إضافة سورة أخرى مع سورة الفاتحة تجد التغيرات المقصودة
    السطر الرابع هو لإعادة قيمة المتغير new_aya إلى الرقم 1 لأننا بدأنا سورة جديدة بعد إنتهاء السورة الحالية وعلى ذلك السورة الجديدة أيضا ملفاتها الصوتية مبتدأه من الرقم 1 وحتى نهاية آياتها أى كان عدد آياتها المهم جميع السور تبدأ آياتها من الرقم 1 كملف صوتى فى مجلدها الخاص بها
    السطر الخامس يعمل على إختيار أو الإنتقال التلقائى أيضا لتشغيل الآية التالية فى السورة الجديدة بحسب عدد آياتها تشغيلا متتاليا
    السطر السادس يعمل على إعطاء أمر تشغيل تلقائى متتالى لعنصر الميديا بلير للآية الجديدة من السورة الجديدة .

    فيصبح الكود كاملا فى الحدث "On Finish" فى أحداث الميديا بلير كالتالى :

    كود:
    --
    if soura_files~=nil then
       count = Table.Count(soura_files);
       if String.ToNumber(aya) < count then
          new_aya = String.ToNumber(aya)+1 ;
          Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
          MediaPlayer.Load("Plugin1", "AutoPlay\\Docs\\"..soura.."\\"..new_aya..".mp3");
         elseif String.ToNumber(aya) == count then 
          for i=1,114 do
             Tree.SetNode("Tree1", soura, {Expanded=false});
          end
          soura=tonumber(soura)+1;
          Tree.SetSelectedNode("Tree1", soura);
          Tree.SetNode("Tree1", soura, {Expanded=false});
          new_aya = 1 ;
          Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
          MediaPlayer.Load("Plugin1", "AutoPlay\\Docs\\"..soura.."\\"..new_aya..".mp3");
       end
    end


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




    نموذج تصميم برنامج قرآن كريم



    وهذا ملف مفتوح يحتوى على سورة الفاتحة وسورة الناس ويمكن إضافة المزيد :
    طبعا من المفترض أن أضع سورة الناس فى فولدر بإسم 114 وليس كما وضعتها بهذا المثال فى الفولدر 2 والسبب أنى وضعتها فى فولدر 2 هو عدم إمتلاكى الوقت الكافى حاليا لوضع جميع السور مرتبة وأيضا عدم إمتلاكى الوقت لتقطيع جميع السور القرآنية إلى آيات منفردة فكان هذا مجرد مثال للتوضيح
    وطبعا هذا لن يؤثر على تشغيل السورة بالشكل السليم فى هذا المثال ألقى نظرة على هذا المثال :




    نموذج تصميم برنامج قرآن كريم




    يتبقى لنا المرحلة الأخيرة للتشغيل المتتالى وهى بمجرد الوصول إلى آخر آية من آخر سورة موجودة فى العنصر "Tree" أن يتم التشغيل من البداية أى من أول سورة وهى سورة الفاتحة مرة أخرى وهكذا إلى مالا نهاية ..............

    تتم هذه العملية بنجاح بزيادة بسيطة جدا فى الأكواد الموجودة فى الحدث "On Finish" وهذه الزيادة عبارة عن جملة شرطية عند تحققها تتم هذة العملية
    الجملة الشرطية تبدأ بالكود التالى :

    كود:
    if soura==3 then
    وفائدة هذا الكود السابق هو إذا كانت السورة التالية تساوى إجمالى عدد السور الموضوعة فى البرنامج أو فى المثال السابق + 1
    فى مثالى السابق كان عدد السور هو 2 فقط لذلك يكون الشرط كما هو موضح أعلاة
    فعند تحقق هذا الشرط فعلا سوف يتم تنفيذ الكود التالى :

    كود:
    --
     soura=1;
    Tree.SetSelectedNode("Tree1", soura);
    Tree.SetNode("Tree1", soura, {Expanded=false});
    new_aya = 1 ;
    Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
    السطر الأول هو تعريف المتغير soura المعبر عن السورة التالية بعد الإنتهاء من قراءة السورة الحالية كاملة بأن السورة الجديدة المراد الإنتقال إليها ستكون هى السورة رقم 1
    السطر الثانى يعطى أمر إختيار أو إنتقال إلى السورة فى العنصر "Tree" بشكل تلقائى
    السطر الثالث يعطى أمر إظهار لآيات السورة التى سيتم تشغيلها والإنتقال إليها بشكل تلقائى
    السطر الرابع هو تعريف المتغير new_aya والمعبر عن الآية الجديدة التى سيتم الإنتقال إليها فى السورة الجديدة التى تم الإنتقال إليها بأنها ستكون الآية رقم 1
    السطر الخامس هو أمر موجه إلى عنصر "Tree" لإختيار أو الإنتقال إلى الآية الجديدة طبعا بشكل تلقائى .


    فيصبح الكود بالكامل الواجب وضعة فى الحدث "On Finish" فى أحداث الميديا بلير هو كالتالى :

    كود:
    --
    if soura_files~=nil then
    count = Table.Count(soura_files);
    if String.ToNumber(aya) < count then
    new_aya = String.ToNumber(aya)+1 ;
    Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
    MediaPlayer.Load("Plugin1", "AutoPlay\\Docs\\"..soura.."\\"..new_aya..".mp3");
    elseif String.ToNumber(aya) == count then 
    for i=1,114 do
    Tree.SetNode("Tree1", soura, {Expanded=false});
    end
    soura=tonumber(soura)+1;
    Tree.SetSelectedNode("Tree1", soura);
    Tree.SetNode("Tree1", soura, {Expanded=false});
    new_aya = 1 ;
    Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
    MediaPlayer.Load("Plugin1", "AutoPlay\\Docs\\"..soura.."\\"..new_aya..".mp3");
    end
    end
    
    if soura==3 then
    soura=1;
    Tree.SetSelectedNode("Tree1", soura);
    Tree.SetNode("Tree1", soura, {Expanded=false});
    new_aya = 1 ;
    Tree.SetSelectedNode("Tree1", soura.."."..new_aya);
    end


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




    نموذج تصميم برنامج قرآن كريم



    إن شاء الله نضع السلسلة مرحلة مرحلة تدريجيا

    إلى اللقاء مع تكرار الآيات فى السلسلة التالية

    تحياتى أخوكم عبود


    التعديل الأخير تم بواسطة عبود عبود; الساعة 16-02-2016, 10:19 PM. سبب آخر: تعديل لنقل صور الشرح على سيرفر مناسب وجيد للظهور بالشكل السليم

  • #2
    وعليكم السلام ورحمة الله وبركاته
    من المواضيع الهامة و المفيدة جدا .... جزاك الله خيرا نظير ما تقدمه
    لك مني كل الاحترام .

    ملاحظة : ياحبذا أخي عبود ... أن تتم دائما التجربة على سورة
    تتجاوز آياتها العشرة عند بناء أكواد التكرار بالايات

    تعليق


    • #3
      شرح تفصيلى نادر جدا ان نجده او نحصل عليه بجد مجهود هايل جدا
      ولكنه كان متوقع من استاذ عبود فجزاك الله كل خير
      انا طبقت الجزء التانى وبعدما ضبطه لم احفظ المشروع بطريقة صحيحة
      فلم يحتفظ بالتعديلات الجديدة
      لذا سأرفعه غدا اخى
      ان شاء الله
      التعديل الأخير تم بواسطة خادم المسلمين; الساعة 02-02-2016, 12:30 AM.

      تعليق


      • #4
        جزاكم الله خيرا أخي عبود
        على هذا الجهد المميز

        شرح منسق ومحكم

        وفقكم الله وأثابكم

        تعليق


        • #5
          بسم الله الرحمن الرحيم
          شرح في غاية الروعة والابداع
          ومجهود كبير في تبسيط الكود والمعلومات
          وترتيب الافكار وتوضيحها
          بالفعل اخي عبود عمل محترفين



          جازك الله كل خير على هذا الشرح الوافي الكافي
          موفق بإذن الله ... لك مني أجمل تحية .

          تعليق


          • #6
            بارك الله فيكم جميعا على المرور الجميل والكلمات الرائعة والمشجعة والمحفذة لبذل المزيد من الجهد

            جزاكم الله خيرا إخوانى الأعزاء

            تعليق


            • #7

              تعليق


              • #8
                موفق بإذن الله ... لك مني أجمل تحية .

                متاعين الشرح و نستفيد كثيرا من الاكواد

                تعليق


                • #9
                  شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . موفق بإذن الله ... لك مني أجمل تحية .

                  تعليق


                  • #10
                    التطبيق


                    http://up.top4top.net/downloadf-32wqa72-rar.html

                    تعليق


                    • #11
                      بسم الله الرحمن الرحيم
                      السلام عليكم ورحمة الله وبركاته



                      كنت اتمنا ان ارفع لكم القران الكريم كامل ومقسم
                      لكن للاسف النت عندي لا يسمح بذالك

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



                      يمكنك البحث في جوجل







                      وهذة افضل الروابط التي حصلت عليها من البحث

                      جاز الله اصحابها كل خير


                      مصاحف مقسمة لايات مع امكانية السماع قبل التحميل

                      33 مصحف و اكثر ... تجدهم هنا على صفحات موقع ارشيف


                      http://archive.org/search.php?query=...ensource_audio



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


                      https://archive.org/details/114sora-...mshary-alafasy

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

                      https://ia600808.us.archive.org/29/i...eMP3_Quran.zip



















                      تعليق

                      مواضيع تهمك

                      تقليص

                      المنتدى: القسم العام نشرت بواسطة: Reem2Rabeh الوقت: 04-23-2025 الساعة 04:27 PM
                      المنتدى: ضبط وتوكيد الجودة نشرت بواسطة: HeaD Master الوقت: 04-15-2025 الساعة 09:30 AM
                      المنتدى: التصنيع والانتاج نشرت بواسطة: HeaD Master الوقت: 04-11-2025 الساعة 01:08 PM
                      المنتدى: القسم العام نشرت بواسطة: نوال الخطيب الوقت: 03-19-2025 الساعة 03:07 AM
                      المنتدى: الكمبيوتر والإنترنت نشرت بواسطة: عوض السوداني الوقت: 03-18-2025 الساعة 07:22 AM
                      يعمل...
                      X