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


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

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

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

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

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


أخوكم



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

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

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

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


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

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


الملفات المرفقة
.rar   FastColoredTextBox.rar (الحجم : 431.35 ك ب / التحميلات : 186)
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة: 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 لانها داعمه للعربي
Big Grin
<---------------------------------------------------------------->

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

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

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

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

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

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

الرد }}}
تم الشكر بواسطة:
#8
جاري ذلك Smile
الرد }}}
تم الشكر بواسطة: Easy4ever
#9
اخي شاكي الله Blush
نسيتني Confused
Big Grin
ترى متحمس ابي اشوف الكود كيف تجي Rolleyes
Big Grin
<---------------------------------------------------------------->

الرد }}}
تم الشكر بواسطة:
#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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [تم الحل] مشكلة الاتصال بقاعده بيانات SQL على الشبكة maxruined 5 4,233 08-11-23, 01:00 AM
آخر رد: الحزين اليماني
  المساعده فى التعديل على سورس كود برنامج Mezoman 4 551 27-10-23, 08:25 PM
آخر رد: Mezoman
  [سؤال] احتاج الى مساعدة فى تعديل مشروع خاص C# وقاعدة البيانات SQL Server كتكوت المصري 1 497 15-08-23, 02:02 AM
آخر رد: WAEL ABED
  [C#.NET] تعديل سجل في listbox ali_ahmed12 2 599 13-11-22, 03:59 PM
آخر رد: ali_ahmed12
  [C#.NET] ابي سورس تطبيق منبه adel500 1 978 06-03-22, 05:31 PM
آخر رد: ابراهيم ايبو
  مشكلة في سورس remonmary 1 1,365 17-01-22, 02:29 PM
آخر رد: الماجيك مسعد
  تعديل حجم الورق في كل مره اعمل طباعه Anwer28.6 0 955 12-07-21, 09:16 PM
آخر رد: Anwer28.6
  تعديل كود amonem 2 1,183 16-01-21, 09:29 PM
آخر رد: amonem
  [سؤال] كيف يتم اضافة جداول اوحقول او اي تعديل على قاعدة البيانات من خلال سي شارب فقط younass 5 3,444 04-07-20, 05:52 PM
آخر رد: kiki
  مشكلة كتابة العربي مع الانجليزي في كريستال ريبورت younass 4 2,636 18-03-20, 12:21 AM
آخر رد: ba2e44ca9a

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


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