موضوع مثبت.
X
X

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

AutoPlay Media Studio and Generate All In One Tutorials

 
  • تصفية
  • الوقت
  • عرض
مسح الكل
مشاركات جديدة

  • #31
    السلام عليكم ورحمة الله وبركاته
    متابع معكم مشروع برنامج بحث و عرض للايات القرآنية
    ---------------
    اليوم سنضيف
    - خاصية القراءة المتزامنة للايات
    - زر لعرض الاية السابقة
    - زر لعرض الاية التالية

    -----------


    كما يظهر في الشكل في عنصر القراءة المتزامنة
    سنفترض متغير lecture و نعطيه قيمة او نص ما و نضعه في onshow

    PHP Code:
    lecture "NSonAuto"
    و نعني به لما يكون بهذا النص لن تشتغل القراءة المتزامنة
    لكن اذا كانت
    PHP Code:
    lecture == "SonAuto"
    يعني ان القراءة ستكون متزامنة .....كيف سنجعل اليسبوكس كلما غير المستخدم اختيار عنصر من القائمة اليا اوتماتيكيا سيغل البرنامج زر استظهار الصوت
    اذن سنضيف عنصر CheckBox5 و عندما يكون مفعلا سيكون المتغير SonAuto و لما يكون غير مفعل ستصيح قيمة المتغير NSonAuto

    --------------------------------------------------
    الان مع زر عرض الاية التالية ....... سنعتمد على رقمالاختيار من اليسبوكس ... و بالتالي لما نغضط على هذا الزر سيضيف 1 الى السطر و يشغل اليسبوكس ........الاشكالية لما بصل الى الحد الاقصى لعنصر اليسبوكس و هي في مشوعنا tol التي نستخدمها في زر البحث ... سيذهب الى العنصر الاول .........و بالتالي كود الزر سيكون كالاتي
    PHP Code:
    if tSelected then
    if tSelected[1] == tol then
    ListBox
    .SelectItem("ListBox1"1);
    else
    ListBox.SelectItem("ListBox1",tSelected[1]+1);
    end
    end 
    الان العلمية ستكون عكسية مع زر الايات السابقة اي سنتعمل علامة - 1 .........و لما يصل الى العنصر الاول من اليسبوكس سيكون التالي هو tol اي قيمة عدد عناصر اليسبوكس

    PHP Code:
    if tSelected then
    if tSelected[1] ==  1 then
    ListBox
    .SelectItem("ListBox1"tol);
    else
    ListBox.SelectItem("ListBox1"tSelected[1]-1);
    end
    end 
    -------------------------------
    ملاحظة : من اجل ان يظهر تعليق اسفل الزر بمجرد مرور الماووس ليخبرنا محتوى الزر على هذا الشكل



    لذلك يجب ان تضغط على الزر مرتين لتظهر لنا خصاصه نختار منها الثانية Attributes في الاسفل نختار ToolTip



    ----------------------------

    الملف المفتوح جاهزا لتعديتكم و ابدعاتكم

    *

    بالتوفيق
    تعليق

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

      نواصل معكم في مشروعنا الان مع خاصية نسخ المحتوى و تصديره في ملف تكست يختار المستخدم مكان حفظه
      ----------------
      خاصية نسخ نتائج البحث
      ---------------
      ببساطة نضيف زر جديد نسميه مثلا( نسخ النتائج ) او اي شكل تريده
      نجمع من اليستبوكس من كل سطر اسم السورة ......و نص الاية الذي هو موجود في data
      سنحفظ الناج في ملف نسميه باسم محتوى البحث اي input
      نضيف له في الاعلى عنوان ( نتائج البحث عن .....)


      PHP Code:
      Titre "äÊÇÆÌ ÇáÈÍË Úä :"..Input.GetText("Input1");
      CopyAyaettes "";

      for 
      =1,tol do
      NaSora ListBox.GetItemText("ListBox1"i);
      NaAya  ListBox.GetItemData("ListBox1"i);
      CopyAyaettes CopyAyaettes ..NaSora .."\r\n"..NaAya .."\r\n" .."\r\n" .."\r\n";
      end

      CopyAyaettes 
      Titre .."\r\n".. "\r\n"..CopyAyaettes ;
      folder Dialog.FolderBrowse("ÇÎÊÑ ÇáãÌáÏ "_DesktopFolder);
      TextFile.WriteFromString(folder.."\"..Input.GetText("Input1")..".txt", CopyAyaettes);
      File.Open(folder.."
      \"..Input.GetText("Input1")..".txt", "", SW_SHOWNORMAL); 




      بالتوفيق
      تعليق

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

        عودة لمشروعنا حول البحث في القرآن الكريم
        اليوم مع خاصية الاحزاب و الأجزاء و الارباع
        نحن نعلم ان المصحف مقسم الى اجزاء كل جزء الى حزبين و كل حزب الى 4 ارباع
        الاصل ان نعيد بناء قاعدة البيانات من جديد لكن سنتغل الموجود
        الان مع التقسيم ........ بعد البحث في المواقع وجدت ملفا لتقسيم المصحف الى ارباع


        الملف تكست للتحميل
        *

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


        الان سنفككه الى 7 ملفات واحد للاجزاء و الاخر للاحزاب و اخر للارباع ثم السورة البداية - الاية بداية الربع - السورة النهاية - و ال ملف السابع لاخر اية من الربع

        سنغير ملف البحث بحيث سيبحث عن رقم الاية في الملفات السابقة اي يبحث عن السورة ثم موقع الاية في اي ربع و يعرض النتائج في النتيجة اسفل الاية
        و يكون الشكل الجديدي للمشروع



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

        PHP Code:
        Hiz TextFile.ReadToTable("AutoPlay\\Docs\\CoranH.txt");
        Joz TextFile.ReadToTable("AutoPlay\\Docs\\CoranJ.txt");
        Rob TextFile.ReadToTable("AutoPlay\\Docs\\CoranR.txt");
        Bsora TextFile.ReadToTable("AutoPlay\\Docs\\CoranBs.txt");
        Baya TextFile.ReadToTable("AutoPlay\\Docs\\CoranBa.txt");
        Nsora TextFile.ReadToTable("AutoPlay\\Docs\\CoranNs.txt");
        Naya TextFile.ReadToTable("AutoPlay\\Docs\\CoranNa.txt"); 
        نضيفه في كود البحث قبل اليسبوكس
        PHP Code:
        for j,bs in pairs(Bsora) do
          
          if 
        tonumber(bs) == tonumber(s.Data[i]["Sora_Num"]) and tonumber(bs) == tonumber(Nsora[j])
          and  
        tonumber(s.Data[i]["Aya_Num"]) >= tonumber(Baya[j]) and tonumber(s.Data[i]["Aya_Num"]) <= tonumber(Naya[j]) then
          Num_J 
        Joz[j]; Num_H Hiz[j];NRR Rob[j];
          
          elseif 
        tonumber(bs) == tonumber(s.Data[i]["Sora_Num"]) and tonumber(bs) < tonumber(Nsora[j]) and   tonumber(s.Data[i]["Aya_Num"]) >= tonumber(Baya[j])
          or 
        tonumber(Nsora[j]) == tonumber(s.Data[i]["Sora_Num"]) and tonumber(bs) < tonumber(Nsora[j]) and  tonumber(s.Data[i]["Aya_Num"]) <= tonumber(Naya[j]) then
          Num_J 
        Joz[j]; Num_H Hiz[j];NRR Rob[j];
          
        end
          end 
        ----------------------------
        الملف المعدل لمشروع البحث في القران الكريم
        ( ملاحظة ..الملف لايحتوي على الملف الصوتي و قد سبق ان اشرنا له في مشاركة سابقة )
        *
        بالتوفيق
        تعليق

        • #34
          السلام عليكم ورحمة الله وبركاته
          عودة الى مشروعنا حول البحث في القرآن الكريم
          اليوم مع خاصية جديدة

          البحث بواسطة الأجزاء



          يعني انا اريد البحث عن كلمة معينة في جزء فقط او من الجزء1 الى الجزء 4
          اي مثلا كلمة ( الحي القيوم ) من الجزء الاول الى الجزء الرابع
          نضيف في الصفحة خيار checkBox 6 وهو سيعرض ديالوج جديد فيه 2 من الكومبوكس تعرض الاجزاء 30



          الان كي لايختار المستخدم من الجزء 4 الى الجزء 3 ...... سنضع شرطا بحيث سيملا الكومبوكس 1 من 1 الى 30
          الان لما يختار جزء معين سيفرغ الكومبوكس 2 و يكون اول رقم له هو اختيار الكوموبكس1
          يعني لما يختار من الجزء 4 ..... سيمحى مضمون الكومبوكس 2 و سيبدا من جديد لكن اول رقم له هو 4 الى 30 ........
          في الديالوج 2 سنضع في onshow

          PHP Code:
           x=1;
          repeat
          ComboBox
          .DeleteItem("ComboBox1"1);
          x=x+1;
          until x>60;
          for 
          i1,30 do
          ComboBox.AddItem("ComboBox1"i"");
          end
          ComboBox
          .SetSelected("ComboBox1"1
          سنضع في الكومبوكس1 الكود التالي
          PHP Code:
           x=1;
          repeat
          ComboBox
          .DeleteItem("ComboBox2"1);
          x=x+1;
          until x>30;
          ----------------------
          DselC ComboBox.GetSelected("ComboBox1");
          selC ComboBox.GetItemText("ComboBox1"DselC);
          selC2selC;
          for 
          p=selC,30 do
          ComboBox.AddItem("ComboBox2"p"")
          end
          ComboBox
          .SetSelected("ComboBox2"1
          لذلك لديك الكثير من الافكار لكن اخترت اسهلها طبعا
          يعني ساعرض النتائج كلها في ليست بوكس 3
          ثم ساختار فقط القيم بين الجزء البداية و الجزء النهاية وامحي ما سواهما في اليسبوكس1.2.3

          ساضيف الشرط هذا في زر البحث
          PHP Code:
          function Azaa()
           
          p=1repeat for i=1,ListBox.GetCount("List") do nn ListBox.GetItemText("List"i);
          if  
          String.ToNumber(nn) < selC or String.ToNumber(nn) > selC2  then
          ListBox
          .DeleteItem("List"i); ListBox.DeleteItem("ListBox1"i); ListBox.DeleteItem("ListBox2"i);
          end end p=p+1until p 9  end 
          سيكون الشكل التالي :



          الملف المفتوح المعدل :

          *

          بالتوفيق

          تعليق

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

            مع خاصية جديدة وهي تتعلق بالصوتيات ..

            قراءة صوتية او تلاوة كل الايات في النتائج

            في الصفحة في الحدث OnAudio
            نضيف هذا الكود
            PHP Code:
            if Audio.GetCurrentPos(CHANNEL_NARRATION) == Audio.GetLength(CHANNEL_NARRATIONthen
            Page
            .ClickObject("B_Next");
            end 
            وهو ببساطة سيراقب تقدم الصوت لديك اي قراءة الاية لما ينتهي مباشرة هو سيفعلزر الصوت التالي وهو لا يعني بالضرورة الاية التالية في السورة لكن الاية التي في نتائج اليسبوكس
            ...........
            لازم تفعل خاصية القراءة المتظامنة مع العرض في الاسفل
            ستلاحظ لما ينتهي من قراءة الاية الاولى مباشرة سينطلق في قراءة الاية الموالية

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

            بالتوفيق
            تعليق

            • #36
              السلام عليكم ورحمة الله وبركاته
              مع خاصية جديدة وهي

              وضع مؤشر لتقدم الصوت اي قراءة القراءن

              طبعا ممكن نستغني عن الاكواد كلها باستعمال قارئ الميديا بلاير
              لكن ممكن نستفيد من مشاريع سابقة في الميدان مثل هذا المشروع



              الملف المفتوح لهذا الدرس
              *

              الان في اسفل زر استماع الاية اضف عنصر سلايد Slider
              قبله و بعده اضف ليبال لعرض طول صوت الاية و من الجهة الاخرى سيظهر تقدم الاية .........

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

              PHP Code:
              Audio.Stop(CHANNEL_NARRATION);
              Raya =  ListBox.GetItemData("ListBox2"AudioAya);
              Rsora ListBox.GetItemText("ListBox2"AudioAya);
              ------------- 
              name ayaettes -------------
              if 
              String.ToNumber(Rsora) < 10 then Rsora "00"..Rsora;
              elseif  
              String.ToNumber(Rsora) > and String.ToNumber(Rsora) < 100 then Rsora "0"..Rsora
              elseif 
              String.ToNumber(Rsora) > 99 then Rsora ""..Rsora;
              end

              if String.ToNumber(Raya) < 10 then Raya Rsora.."00"..Raya;
              elseif  
              String.ToNumber(Raya) > and String.ToNumber(Raya) < 100 then Raya Rsora.."0"..Raya
              elseif  
              String.ToNumber(Raya) > 99 then  Raya Rsora..Raya
              end

              Audio
              .Load(CHANNEL_NARRATION"AutoPlay\\Audio\\quran\"..Rsora.."\"..Raya..".mp3", true);
              MaxP = Audio.GetLength(CHANNEL_NARRATION);
              Slider.SetRange("
              Plu_Audio", 0, MaxP);
              function Au()
                  local nPosT = MaxP
                  local nPosT = Math.Round(nPosT, 0);
                  local sSecT = Math.Mod(nPosT, 60)
                  local nStr = String.Length(sSecT);
                  if nStr == 1 then
                      sSecT = "
              :0"..sSecT
                  else
                      sSecT="
              :"..sSecT
                  end
                  local nMinT = Math.Floor(nPosT/60) 
                  return String.Concat(nMinT, sSecT);
              end
              Label.SetText("
              MaL", Au());
              Page.StartTimer(150, 11); 
              في التيمر نضيف التالي
              PHP Code:
              if e_ID == 11 then
              local nPosTrek 
              Audio.GetCurrentPos(CHANNEL_NARRATION)
              Slider.SetSliderPos("Plu_Audio"nPosTrek);
              Label.SetText("PrAu"Audio.ConvertTime(CHANNEL_USER1));

              end 
              الان سنتفرغ للسلايدر و اظهارتقدم التلاوة كرقم
              اضف الكود الى GlobalFunction

              PHP Code:
              function Audio.IsInRect(strObject)
                  
              local bReturn false;
                  
              local tPos Plugin.GetPos(strObject)    
                  
              local tSize Plugin.GetSize(strObject)
                  
              local tMouse System.GetMousePosition(true);
                  
              local nX tMouse.X
                  local nY 
              tMouse.Y
                  
              if (nX >= tPos.X) and (nX <= tPos.tSize.Widththen
                      
              if (nY >= tPos.Y) and (nY <= tPos.tSize.Heightthen
                          bReturn 
              true;
                      
              end
                  end
                  
              return bReturn;    
              end
              ------------------------------------------------------------------
              function 
              Audio.ConvertTime(channel)
                  
              local nPosTrek Audio.GetCurrentPos(CHANNEL_NARRATION)
                  
              local nPosTrek Math.Round(nPosTrek0);
                  
              local sSecTrek Math.Mod(nPosTrek60)
                  
              local nString String.Length(sSecTrek);
                  if 
              nString == 1 then
                      sSecTrek 
              ":0"..sSecTrek
                  
              else
                      
              sSecTrek=":"..sSecTrek
                  end
                  local nMinTrek 
              Math.Floor(nPosTrek/60
                  return 
              String.Concat(nMinTreksSecTrek);
              end
              ------------- 
              الوظيفة الاولى وهي الخاصة بتقدم موقع الصوت مع السلادر
              اما الثانية لتحويل موقع الصوت الحالي للتلاوة الى ثواني و دقائق

              ---------------
              اخر مرحلة وهي في السلايدر نفسه
              اضف ما يلي
              PHP Code:
              if Audio.IsInRect(this)  and System.IsKeyDown(1then
                  Audio
              .Seek(CHANNEL_USER1SEEK_SPECIFICe_Pos);
              end 
              وهكذا بعد البحث و تشغيل سماع الاية سيظهر على يمين السلايدر طول الصوت و على يساره رقم متغيير لتقدم قراءة الاية



              بالتوفيق
              تعليق

              • #37
                السلام عليكم ورحمة الله وبركاته
                لمتابعة لمشروع البحث في المصحف الشريف
                اليوم مع خاصية جديدة وهي

                تصديرالاية كصورة مع خلفية جميلة



                يعني لما تبحث عن ما تريد ستجد زر جديد اضفناه في الاسفل سميناه ( تصدي الاية كصورة ) و طبعا سميه كما تريد في تعديلك
                و الغرض منه الحصول على نتيجة جميلة للبحث و اماكنية رفعه كصورة على المواقع و التواصل الاجتماعي
                برمجيا استخدمنا اضافة capture
                و مجموعة 20 صور تكون خلفية للاية
                في زر التقاط الصورة نضع زر
                PHP Code:
                myDocsFolder Shell.GetFolder(SHF_MYDOCUMENTS);
                Folder.Create(myDocsFolder.."\\New");
                ppw Image.GetPos("ArrierPlan");
                Image.GetSize("ArrierPlan").Width;
                Image.GetSize("ArrierPlan").Height;
                Capture.WindoRgion(Raya.."-"..RsoramyDocsFolder.."\\New"ppw.Xppw.YwhIMAGE_PNG);
                File.Open(myDocsFolder.."\\New\"..Raya.."-"..Rsora..".png", "", SW_SHOWNORMAL); 
                يمكن تحريك الكتابة لوضعها اين تريد والكود في MoussMove في احداث الصفحة
                ايضا فيه زر لتغيير لون الخط و قد استعملنا ملف dll خاص باظهارمربع الوان

                PHP Code:
                result DLL.CallFunction("AutoPlay\\Docs\\CHCOLOR.DLL""SelectColor"","FFFFFF","HEX","192;;192;;192","FALSE""DLL_RETURN_TYPE_STRINGDLL_CALL_STDCALL)
                result tonumber(String.TrimLeft(String.Left(resultString.Find(result"::"1false)-1), "#"),16);
                Paragraph.SetProperties("Paragraph1", {ColorNormal = (result)}) 
                لشرح صفحة التقاط الصورة


                ستكون الصورة في ملف new في المستندات



                الملف بعد تشغيله يكون كالتالي


                الملف المفتوح المعدل
                *


                بالتوفيق
                تعليق

                • #38
                  السلام عليكم ورحمة الله وبركاته
                  في موضوع تغيير لون الخط ممكن نستفيد من object يسمى Buttoncolor
                  لتحميل الاضافة من هنا
                  *

                  ضعها في objects في plugings في مسار البرنامج في البرامج

                  ثم ضع في On Selct
                  PHP Code:
                  tblParaProps.ColorNormal e_Color;
                  tblParaProps.ColorHighlight e_Color;
                  tblParaProps.ColorDown e_Color;
                  tblParaProps.ColorDisabled e_Color;
                  Paragraph.SetProperties("Paragraph1"tblParaProps); 
                  لتغيير الخط كليا

                  بالتوفيق
                  تعليق

                  • #39
                    السلام عليكم ورحمة الله وبركاته
                    مع خاصية جديدة وهي

                    اظهار الاية بلتشكيل او بدونه



                    ببساطة اضف زرين و سمي الاول اظخار التشكيل و الثاني دون تشكيل
                    نزرع في الزر الاول دون تشكيل

                    PHP Code:
                    istibdalate={["ó"] = "",["ð"] = "",["õ"] = "",["ö"] = "",["ú"] = "",["ø"] = "",["ö"] = "",["ñ"] = ""
                    Ntxt string.gsub txt".",istibdalate); 
                    Input.SetText("Input_Info_Display"Ntxt); 
                    و في الاخر

                    PHP Code:
                    Input.SetText("Input_Info_Display"txt); 
                    بالتوفيق
                    تعليق

                    • #40
                      السلام عليكم ورحمة الله وبركاته
                      الان مع اضافة
                      خاصية تغيير الخط
                      في الصفحة الثانية الخاصة بالتقاط صورة للابة

                      نفعل الاضافة SysDialog

                      للتحميل من هنا
                      *

                      من اجل تغيير حجم و لون و نوع الخط للاية الظاهرة
                      نضع زر في الاسفل و نزرع فيه الكود التالي
                      PHP Code:
                      local tFlags={}

                      tFlags.Bold=true
                      tFlags
                      .Italic=false
                      tFlags
                      .NoExtended=false
                      tFlags
                      .StrikeOut=false
                      tFlags
                      .Underline=false
                      tFlags
                      .Color=Math.HexColorToNumber("000000")
                      tFlags.Scripe=Arabe


                      local tFont 
                      SysDialog.Font("Traditional Arabic",22tFlags);
                      if 
                      tFont then
                          
                      tblParaProps 
                      = {};
                      tblParaProps.FontName tFont.Font;
                      tblParaProps.FontSize tFont.Size;
                      tblParaProps.FontWeight FW_NORMAL;
                      tblParaProps.FontScript ANSI_CHARSET;
                      tblParaProps.FontUnderline tFont.Underline;
                      tblParaProps.FontStrikeout tFont.StrikeOut;
                      tblParaProps.FontItalic tFont.Italic;
                      tblParaProps.Cursor CURSOR_HUND;
                      tblParaProps.ColorNormal =tFont.Color;
                      tblParaProps.ColorHighlight =tFont.Color;
                      tblParaProps.ColorDown tFont.Color;
                      tblParaProps.ColorDisabled tFont.Color;
                      Paragraph.SetProperties("Paragraph1",tblParaProps);
                      end 


                      بالتوفيق
                      تعليق
                      Working...
                      X