تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[C#.NET] كيفية عمل مثل هذا التضليل لاكثر من سطر فى برنامج ايات
#1
السلام عليكم 

ارجوا مساعدتى فى معرفة كيفية تظليل الاية التى هى اكثر من سطر كما هى موجودة فى برنامج ايات 

انا قد استخدمت كود  ولكن هو يضلل سطر واحد ولكن الاية ان كانت اكثر من سطر 

كيف ارجو المساعدة فى ذالك
كود :
  public Color ColorMouseHover = Color.FromArgb(70, 185, 215, 252);
       public Color ColorMouseLeave = Color.FromArgb(0, 255, 255, 255);

#region ColorMouse
       public void setColorMouseHover(int sura, int ayah)
       {
           try
           {

               if (P1.Controls.Count > 1)
               {
                   var g = P1.Controls.Find(string.Format("Page{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (g.Length > 0)
                   {
                       Label lb = (Label)g[0];
                       lb.BackColor = ColorMouseHover;
                   }
                   var R = P1.Controls.Find(string.Format("Rich{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (R.Length > 0)
                   {
                       Label Rich = (Label)R[0];
                       Rich.BackColor = ColorMouseHover;
                       Rich.ForeColor = Color.Blue;
                   }
               }
               if (P2.Controls.Count > 1)
               {
                   var g = P2.Controls.Find(string.Format("Page{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (g.Length > 0)
                   {
                       Label lb = (Label)g[0];
                       lb.BackColor = ColorMouseHover;
                   }
                   var R = P2.Controls.Find(string.Format("Rich{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (R.Length > 0)
                   {
                       Label Rich = (Label)R[0];
                       Rich.BackColor = ColorMouseHover;
                       Rich.ForeColor = Color.Blue;
                   }
               }
           }
           catch
           {

               return;
           }




       }
       public void setColorMouseLeave(int sura, int ayah)
       {
           try
           {
               if (P1.Controls.Count > 1)
               {
                   var g = P1.Controls.Find(string.Format("Page{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (g.Length > 0)
                   {
                       Label lb = (Label)g[0];
                       lb.BackColor = ColorMouseLeave;
                   }
                   var R = P1.Controls.Find(string.Format("Rich{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (R.Length > 0)
                   {
                       Label Rich = (Label)R[0];
                       Rich.BackColor = ColorMouseLeave;
                       Rich.ForeColor = Color.Black;
                   }
               }
               if (P2.Controls.Count > 1)
               {
                   var g = P2.Controls.Find(string.Format("Page{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (g.Length > 0)
                   {
                       Label lb = (Label)g[0];
                       lb.BackColor = ColorMouseLeave;
                   }
                   var R = P2.Controls.Find(string.Format("Rich{0}_S{1}_A{2}", ImageNum1, sura, ayah), true);
                   if (R.Length > 0)
                   {
                       Label Rich = (Label)R[0];
                       Rich.BackColor = ColorMouseLeave;
                       Rich.ForeColor = Color.Black;
                   }
               }

           }
           catch
           {

               return;
           }



       }
       #endregion
       #region void

       public Double rand(int x, int y)
       {
           Random clsRnd = new Random();

           return Math.Floor(clsRnd.NextDouble() * (y - x + 1) + x);
       }

       public void SetControlsToPanel(Control cot, int startSurah, int startAyah, int Page)
       {
           try
           {
               cot.Controls.Clear();
               int PagesSub = Page - 1;
               //=====================================================================
               int f = library.QuranMetaData.PagesContainer._pages[PagesSub].aya - 1;

               int Surah = library.QuranMetaData.PagesContainer._pages[PagesSub].sura - 1;
               int K = library.QuranMetaData.SurahsContainer._suras[Surah].ayas - 1;
               int r = Page;
               int v = library.QuranMetaData.PagesContainer._pages[r].aya;
               if (library.QuranMetaData.PagesContainer._pages[PagesSub].sura == library.QuranMetaData.PagesContainer._pages[r].sura)
               {
                   startAyah = v;
               }
               else
               {
                   startAyah = v + K;
               }
               //==================================================================
               for (int i = f; i < startAyah; i++)
               {
                   if (library.q.surahs[Surah].ayat[i].Page == null) return;
                   int Pages = int.Parse(library.q.surahs[Surah].ayat[i].Page);
                   if (Pages == Page)
                   {
                       int X = int.Parse(library.q.surahs[Surah].ayat[i].X);
                       int Y = int.Parse(library.q.surahs[Surah].ayat[i].Y);

                       int width = int.Parse(library.q.surahs[Surah].ayat[i].width);
                       int height = int.Parse(library.q.surahs[Surah].ayat[i].height);


                       LBL_S1_A1 = new Label();
                       LBL_S1_A1.BackColor = Color.Transparent;
                       LBL_S1_A1.Location = new Point(X, Y);
                       LBL_S1_A1.Name = string.Format("Page{0}_S{1}_A{2}", Page, Surah, i);
                       LBL_S1_A1.Size = new Size(width, height);
                       LBL_S1_A1.MouseClick += new MouseEventHandler(this.LBL_S1_A1_MouseClick);
                       LBL_S1_A1.MouseLeave += new EventHandler(this.LBL_S1_A6_2_MouseLeave);
                       LBL_S1_A1.MouseHover += new EventHandler(this.LBL_S1_A6_2_MouseHover);
                       cot.Controls.Add(LBL_S1_A1);
                   }

               }

           }
           catch
           {

               return;
           }




       }

  void Rich_teb_1_MouseHover(object sender, EventArgs e)
        {
            Label txt = (Label)sender;
            txt.BackColor = ColorMouseHover;
        }

        void Rich_teb_1_MouseLeave(object sender, EventArgs e)
        {
            Label txt = (Label)sender;
            txt.BackColor = ColorMouseLeave;
        }


هذا الكود نجح فى تظليل الاية ولكن سطر واحد  قد استخدمن   بداية مكان الاية ونهايتة   x وy    مع  طول السطر  

صورة البرنامج ايات من الموقع للتوضيح 



ارجوا الاهتمام
الرد
تم الشكر بواسطة:
#2
(01-10-18, 08:57 PM)abdalamask كتب : السلام عليكم 

ارجوا مساعدتى فى معرفة كيفية تظليل الاية التى هى اكثر من سطر كما هى موجودة فى برنامج ايات 

انا قد استخدمت كود  ولكن هو يضلل سطر واحد ولكن الاية ان كانت اكثر من سطر 

كيف ارجو المساعدة فى ذالك

ارجوا الاهتمام


ممكن يكون فيه اهتمام لو وضعت المشروع وذلك
لمعرفة كيف تعرض الآيات وبعدها يمكن التوصل للمطلوب بالتجربة على مشروعك
الرد
تم الشكر بواسطة:
#3
المشروع موجود فى هذا الموضوع 
http://vb4arb.com/vb/showthread.php?tid=...#pid128898


[مشروع] هدية لمنتدى المميز مشروع متابعة حفظ القراءن بلغةc#


[مشروع] هدية لمنتدى المميز مشروع متابعة حفظ القراءن بلغةc#
الرد
تم الشكر بواسطة:
#4
(30-09-18, 08:15 PM)abdalamask كتب : السلام عيكم ورحمة الله وبركاتة 

مشروع متابعة الحفظ   القراءن   من برمجتى هدية للمنتدى واعضائة  

وارجوا نت تكون صدقة 


يجب تثبيت DevExpress_Universal_Complete_18.1.4

كنت متحمساً في المشاركة

ولكن اضح أن هناك اشتراط بوجود DevExpress وهذا لا يتوفر لدي

إن شاء الله تجد من يلبي لك طلبك،

بالتوفيق أخي abdalamask (لم أستطع أن أقرأ اسمك بالعربي)
الرد
تم الشكر بواسطة:
#5
https://www.youtube.com/watch?v=a7LUa4vjuRE
الرد
تم الشكر بواسطة:
#6
شكرا اخى على الاهتمام ولكن ليس هذا ما اريدة 


الفكرة هى عند تمرير الموس على الاية تظلل الاية كلها حتى ان كانت اكثر من سطر 

انا فعلت ان اظلل سطر واحد  

كيف اظلل الاية كلهههها حتى وان كانت سطر ونصف 
شكرا
الرد
تم الشكر بواسطة:
#7
لماذا لم اجد من يفدنى فى هذة المسالة 

اهى صعبة للدرجة على الاعضاء
الرد
تم الشكر بواسطة:
#8
عليك بتحديد
إحداثيات النقطة الأولى (x,y) لبداية الآية
وإحداثيات النقطة الثانية (x,y) لنهاية الآية


وعلى أساسها تقوم بالتظليل
الرد
تم الشكر بواسطة:
#9
انا فعلت مع الليبل هل يوجد غير ادات اليبل لتعطينى اكثر من سطر 

كود :
if (Pages == Page)
                   {
                       int X = int.Parse(library.q.surahs[Surah].ayat[i].X);
                       int Y = int.Parse(library.q.surahs[Surah].ayat[i].Y);
                       Double h = rand(X, Y);

                       int width = library.q.surahs[Surah].ayat[i].text.Length+100;
                       int height = 25;// int.Parse(library.q.surahs[Surah].ayat[i].height);


                       LBL_S1_A1 = new Label();
                       LBL_S1_A1.BackColor = Color.Transparent;
                       LBL_S1_A1.Location = new Point(X, Y);
                       LBL_S1_A1.Name = string.Format("Page{0}_S{1}_A{2}", Page, Surah, i);
                       LBL_S1_A1.Size = new Size(width,Convert.ToInt32(h));
                       LBL_S1_A1.MouseClick += new MouseEventHandler(this.LBL_S1_A1_MouseClick);
                       LBL_S1_A1.MouseLeave += new EventHandler(this.LBL_S1_A6_2_MouseLeave);
                       LBL_S1_A1.MouseHover += new EventHandler(this.LBL_S1_A6_2_MouseHover);
                       cot.Controls.Add(LBL_S1_A1);
                   }
فى هذا الكود  كما تقول ولكن اذا كانت الاية اكسر من سطر ماذا افعل
الرد
تم الشكر بواسطة:
#10
كنت أتمنى لو أن مشروعك بدون أي أدوات خارجية للبحث فيه وإيجاد الطريقة المناسبة وأكسب الأجر في مشروع كهذا
الرد
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم