Sticky topic.
X
X

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

AutoPlay Media Studio and Generate All In One Tutorials

 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #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