تقييم الموضوع :
  • 1 أصوات - بمعدل 1
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] [تم الحل] تعديل في سورس كود لمكتبة لا تدعم العربي
#1
Thumbs Up 


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

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

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

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

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


أخوكم



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

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

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

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


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

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


الملفات المرفقة
.rar   FastColoredTextBox.rar (الحجم : 431.35 ك ب / التحميلات : 105)
الرد }}}}
تم الشكر بواسطة: hoob computer
#2
بعد التنقيح والتتبع وجدت الكود المسؤول عن رسم النص :-

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
الرد }}}}
تم الشكر بواسطة: yahya , hoob computer , Easy4ever
#3
هناك مشكلة اخرى نسيت اذكرها وهي الCaret

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

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

المشروع طويل وصعب فهمه . يحتاج جلسةCool
الرد }}}}
تم الشكر بواسطة: hoob computer , Easy4ever
#4
ما شاء الله فنانين و مبدعين في البرمجة Smile
الله يبارك فيكم و يزدكم و يزدنا من فضله و علمه ...

السلام عليكم
الرد }}}}
تم الشكر بواسطة: Easy4ever , الشاكي لله
#5
تسلم على الرد أخي الكريم


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

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

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

أبي استفيد من الكود لاكن ما ابي انشئ مربع نص مثل ما هو مسوي أبي استغل RichTextBox لانها داعمه للعربي
الرد }}}}
تم الشكر بواسطة: hoob computer
#6
طبعا اخي العزيز Richtextbox يمكنها فعل ذلك

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

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

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

توكل على الله
الرد }}}}
تم الشكر بواسطة: Easy4ever
#7
أخي الكريم
إذا ما عليك امر ياليت تسوي لي مثال بسيط بتعديلك على richtextbox بإضافتك الترقيم

لان بدأت أضيع شوي > فصل من المشروع Big Grin
الرد }}}}
تم الشكر بواسطة:
#8
جاري ذلك Smile
الرد }}}}
تم الشكر بواسطة: Easy4ever
#9
اخي شاكي الله Blush
نسيتني Confused
Big Grin
ترى متحمس ابي اشوف الكود كيف تجي Rolleyes
الرد }}}}
تم الشكر بواسطة:
#10
(24-12-13, 11:14 PM)Easy4ever كتب : اخي شاكي الله Blush
نسيتني Confused
Big Grin
ترى متحمس ابي اشوف الكود كيف تجي Rolleyes

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

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

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


--

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

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

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


سامحني ان غفلت ، موفق
الرد }}}}
تم الشكر بواسطة: hoob computer , Easy4ever


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [C#.NET] اريد مشروع او سورس تسجيل فيديو بالكاميرا للحركة last_warrior 1 97 15-10-16, 08:52 AM
آخر رد: ممدوح
  تم الحل Process StartInfo Mohamed20 0 75 09-09-16, 04:40 AM
آخر رد: Mohamed20
Question [سؤال] هل تدعم لغه السى شارب الحفظ المتعدد للصور بعد التعديل عليها tayfa3003 1 169 05-09-16, 10:14 AM
آخر رد: tayfa3003
  [نقاش] كيف يمكن التغلب على مسألة تعديل بنية البرنامج ؟ عبد الله 7 452 29-09-15, 07:38 AM
آخر رد: عبد الله
  [C#.NET] تعديل البيانات في الداتاغريد فيو غير مرتبطة بداتا سورس info@cnr 0 330 05-02-15, 12:24 PM
آخر رد: info@cnr
  [C#.NET] تعديل خصائص فورم من فورم أخر info@cnr 4 994 06-01-15, 06:05 PM
آخر رد: info@cnr
  [كود] تعديل Control.WndProc Method أسامة 6 712 11-09-14, 11:31 PM
آخر رد: vbnet
  [كود] <تم الحل> تحريك الفروم من اداه أسامة 0 306 15-07-14, 03:59 AM
آخر رد: أسامة
Information [كود] مساعدة في الحل roro2013 0 502 25-11-13, 12:04 AM
آخر رد: roro2013
Star [سؤال] مساعدة في الحل في السي شارب roro2013 2 1,226 01-11-13, 11:15 PM
آخر رد: الشاكي لله

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


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