منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] [تم الحل] تعديل في سورس كود لمكتبة لا تدعم العربي - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175)
+--- قسم : قسم اسئلة C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=176)
+--- الموضوع : [سؤال] [تم الحل] تعديل في سورس كود لمكتبة لا تدعم العربي (/showthread.php?tid=1241)

الصفحات: 1 2 3


[تم الحل] تعديل في سورس كود لمكتبة لا تدعم العربي - Easy4ever - 13-12-13



أخواني لدي مشروع إنشاء مكتبة DLL بلغة C#
وهذي المكتبة حملتها جاهزة من أحدى المواقع بالسورس كود

وهي تقوم بإنشاء مربع نص مثل لغات البرمجة وترقيم الاسطر
وتغيير ألأوان الأوامر حسب اللغه المختاره

يعني فيها ميزات جميله جدا لاكن يوجد فيها مشكلة واحده وهي
عدم دعمها للغه العربية

في ناس بتسألني ليه تبيها تدعم اللغه العربيه
الإجابه هي لان لو ابي اكتب شرح بجانب الكود ما اقدر لانه لا يدعم اللغه العربية

المشروع في المرفق ياليت التطلع على المشروع وأخباري ماذا أضيف له لكي يدعم الكتابة بالعربي


أخوكم



------------------------------------------------------------------------------------------
[align=center]

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

الحل في مشاركه رقم #11

وشرح التركيب موجود في مشاركه رقم #16


بارك الله فيكم أخواني على المساعدة

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



RE: تعديل في سورس كود لمكتبة لا تدعم العربي - الشاكي لله - 14-12-13

بعد التنقيح والتتبع وجدت الكود المسؤول عن رسم النص :-

PHP كود :
//classic mode 
            
for (int i range.Start.iCharrange.End.iChari++)
            {
                
//draw char
                
gr.DrawString(line[i].c.ToString(), fForeBrushxy,stringFormat);
                
+= dx;
            } 

لماذا حصل ذلك ؟؟


الدالة السابقة تقوم برسم كل حرف على حدة وليس لها علاقة بما قبله

فهي لاتعرف ان الحرف هو في وسط الجملة او في نهايتها

فقط هي ترسم الحرف وتضعه في التكست بوكس .

كما نعرف الانجلينز حروفهم لها شكل واحد سواء كانت في وسط الكلمة او بدايتها او نهايتها

بما ان مصمم الفئة شخص اجنبي فلا يعلم بان هذه مشكلة لحروفنا . فشكلها يتغير حسب مكانها


مثلا :- ب < في نهاية الكلمة ، ـبـ < في وسط الكلمة , بـ < في بداية الكلمة


>الدالة المسؤولة عن رسم النصوص هي Draw ضمن فئة TextStyle ضمن ملف style.cs



الحل بسيط .. لو قمت بتعديل الكود السابق بدل ان يرسم [color=#800080]حرف-حرف الى كلمة-كلمة ستحل المشكلة وستظهر لك الحروف سليمة



ها انا وضحت لك المشكلة والان يمكنك حلها او انظاري ريثما احلها Big Grin



RE: تعديل في سورس كود لمكتبة لا تدعم العربي - الشاكي لله - 14-12-13

هناك مشكلة اخرى نسيت اذكرها وهي الCaret

حيث انه يتحرك الى اليمين عندما تكتب حرفا

اذا كان الحرف عربي يحب ان نجبره ان لايتحرك من مكانه

المشروع طويل وصعب فهمه . يحتاج جلسةCool



RE: تعديل في سورس كود لمكتبة لا تدعم العربي - hoob computer - 15-12-13

ما شاء الله فنانين و مبدعين في البرمجة Smile
الله يبارك فيكم و يزدكم و يزدنا من فضله و علمه ...

السلام عليكم


RE: تعديل في سورس كود لمكتبة لا تدعم العربي - Easy4ever - 15-12-13

تسلم على الرد أخي الكريم


يعني يبي لها إعادة بناء من جديد Confused

طيب هل في طريقه استغلال الكود بسحب كل الميزات
لاكن دون إنشاء مربع نص جديد يكون بدل منه يستخدم RichTextBox

لانه بصراحه المكتبه حسب استخدامي لها قويه جدا وفيها خصائص كبيره وقويه

أبي استفيد من الكود لاكن ما ابي انشئ مربع نص مثل ما هو مسوي أبي استغل RichTextBox لانها داعمه للعربي


RE: تعديل في سورس كود لمكتبة لا تدعم العربي - الشاكي لله - 15-12-13

طبعا اخي العزيز Richtextbox يمكنها فعل ذلك

حتى الميزات التي لاتستطيع richtextbox القيام بها

تستطيع اضافتها باستعامل Graphics كما فعل هو (مثل الIndent الي على اليسار) < الترقيم

مشروعه كامل يعتمد على Graphics من الصفر حتى انه قام بانشاء شيئ شبيه بTextbox بواسطته

توكل على الله


RE: تعديل في سورس كود لمكتبة لا تدعم العربي - Easy4ever - 15-12-13

أخي الكريم
إذا ما عليك امر ياليت تسوي لي مثال بسيط بتعديلك على richtextbox بإضافتك الترقيم

لان بدأت أضيع شوي > فصل من المشروع Big Grin


RE: تعديل في سورس كود لمكتبة لا تدعم العربي - الشاكي لله - 15-12-13

جاري ذلك Smile


RE: تعديل في سورس كود لمكتبة لا تدعم العربي - Easy4ever - 24-12-13

اخي شاكي الله Blush
نسيتني Confused
Big Grin
ترى متحمس ابي اشوف الكود كيف تجي Rolleyes


RE: تعديل في سورس كود لمكتبة لا تدعم العربي - الشاكي لله - 25-12-13

(24-12-13, 11:14 PM)Easy4ever كتب : اخي شاكي الله Blush
نسيتني Confused
Big Grin
ترى متحمس ابي اشوف الكود كيف تجي Rolleyes

انا حاولت ب WPF لكن النتيجة اداة فاشلة وبطيئة

الgdi اسرع من WPF في هالامور

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


--

بالنسبة لاداة Richtextbox فهي يمكنها تلوين الكلمات ولكن لإضافة شريط مرقم يجب ان تقوم بتفعيل UserPaint للأداة ، وهذا يعني انك من ستقوم بإعادة صنع Graphics للأداة
وبهذا لن نختلف عن هذه الاداة السريعة FastColoredTextBox

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

عطني 3 ايام بس وانا اوعدك اني راح اجيب لك نتيجة مرضية


سامحني ان غفلت ، موفق