الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

محرر اللغات يدعم 12 لغة

بدأه Mahmoud Kelany في 31 يوليو 2010 · 6 رد · 820 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمه الله وبركاته

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

ثانيا

فكره البرنامج هيا كانت فكره بسيطه لفتت انتباهى من بعض الاخوه فى المنتدى

فصنع مشروع مثل هذا لكن اردت ان اقوم بعمل واحد شبيه به ولكن باستخدام الجافا

لكن واجهت صعوبات كثيره وانا فى البدايه حيث اننى لست متقنا بالجافا

فقد عرض علي اخوتى بالمنتدى بعض الاقتراحات حيث اننى كنت سأبدا من البدايه

لكن فى رد من الردود للاخ احمد يوسف نصحنى باستخدام مكتبه جاهزه تدعم ذلك

للاطلاع على المناقشه من هنا /index.php?showtopic=225688

وقد قمت فعلا باستخدامها

فعلا مكتبه رائعه جدا

بها العديد من المميزات

فقد قومت بعمل ذلك المشروع فى يوم واحد فقط باستخدامها

لكن ان اردت ان اقوم به كاملا من الالف الى الياء قد يتكلف ذلك وقتا ومجهودا كبيرين

المشروع هو محرر لغات يحتوى على 12 لغه برمجه من مختلف المجالات كلغات البرمجه والويب وقواعد البيانات

يقوم المشروع بتحديد نوع الملف المراد فتحه حسب امتداده ويقوم باستخدام الشكل المراد للغه حسب الامتداد

فان كان الامتدادا .java يقوم بجعل لغه الاستايل للنص هي لغه الجافا وهكذا مع باقى اللغات

ايضا عندما اريد حفظ الملف يقوم البرنامج باستنباط اللغه الحاليه للكتابه ومن ثم يقوم بوضع امتدادا الملف اتوماتيكيا حسب نوع اللغه

وان كتب المستخدم الامتداد فانه يقوم بالغاء هذا الجزء الاتوماتيكى ويستخدم الامتداد الذى وضعه المستخدم

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

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

ويقوم ايضا بعرض ساعه تتغير كل ثانيه

لكن عندما قومت بالعمل على البرنامج واردت ان اقوم بعمل new document فاننى استخدم كائن جديد من المحرر

فذلك يقوم ايضا بعمل Thread جديد للكائن الجديد

فالان لدى 2 thread فوجدت ان العمل على المحرر اصبح ابطىء واصبح الجهاز ثقيلا جدا

فهل من حل لهذه المشكله ؟؟؟

صور من البرنامج

post-217802-011891700 1280605279_thumb.p

post-217802-030375200 1280605293_thumb.p

post-217802-058756000 1280605304_thumb.p

لتجربه البرنامج

Lang Editor_Run.zip

للكود والتجربه

LangEditor_Src.zip

المرفقات
Untitled.pngUntitledsdsdsd.pngUntitlsdsdsed.png
1

Software Developer
Mahmoudkelany.com


 

#2

مجهود جيد، بارك الله بك :D

أحب الإشارة إلى المشروع المفتوح المصدر (لنفس المجموعة Fifesoft) RText !

وهو :

اقتباس
RText is an open-source programmer's text editor. Syntax highlighting for over 20 languages. Fully customizable interface. Runs on Windows, Linux and OS X, and available under the GPL.

Other features include:

Regex find & replace

Find in files

Macros

Code templates

Ctags integration

Unlimited undo/redo

Drag and drop

Much more

#3
Speed_Of_Light كتب:

مجهود جيد، بارك الله بك :D

أحب الإشارة إلى المشروع المفتوح المصدر (لنفس المجموعة Fifesoft) RText !

وهو :

اشكرك اخى ربنا يخليك

انا فاهم

بس انا كنت عاوز اعمل المشروع دا

ما انا شوفت البرنامج اللى معمول بهذه الاداه

لكنى اردت ان اقوم بالعمل انا

ولو لم تكن هناك وقت كبير لتعلم مثل هذه الاليات لقومت بالعمل به من الاول للاخر

لكن الوقت كبير وانا ارريد ان اتمرن على اشياء كثيره

اريد ان تفيدنى فى مووضوع الـ Thread كما ذكرت مشكلتى فى راس الموضووع

اتمنى المساعده

Software Developer
Mahmoudkelany.com


 

#4

بالنسبة لموضوع ال Threads , هل تستخدم ال wait-notify ؟

بمعني ,, أنه عند فتح مستند جديد يكون هناك thread واحد, و عند فتح المستند الثاني (أو الإنتقال إليه إن كان مفتوحا) , قم بإنشاء thread جديد يقوم بعمل wait لكل ال threads الأخري,, وبالتالي تضمن أنه هناك thread واحد موجود في ال runnable state (لا أقصد ال running state , فبالفعل لا يمكن أن يوجد إلا thread واحد بها).

أو, حل أخر,,, لماذا أصلا تقوم بإنشاء Thread مع كل مستند!,, لماذا لاتجعل الThread الموجود حاليا يعمل على المستند قيد الإستخدام ؟!!

1
#5

يا حج محمود الخيط Thread مورد مهم من موارد البرنامج

لا يمكنك أنت تعطي هذا المورد لكل من هب ودب

تحتاج إلى إدارة أفضل للخيوط

خيط واحد كافي جداً لتحديث الـ statusbar الخاص بك

تحياتي

1
حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6
هويدي كتب:

بالنسبة لموضوع ال Threads , هل تستخدم ال wait-notify ؟

بمعني ,, أنه عند فتح مستند جديد يكون هناك thread واحد, و عند فتح المستند الثاني (أو الإنتقال إليه إن كان مفتوحا) , قم بإنشاء thread جديد يقوم بعمل wait لكل ال threads الأخري,, وبالتالي تضمن أنه هناك thread واحد موجود في ال runnable state (لا أقصد ال running state , فبالفعل لا يمكن أن يوجد إلا thread واحد بها).

أو, حل أخر,,, لماذا أصلا تقوم بإنشاء Thread مع كل مستند!,, لماذا لاتجعل الThread الموجود حاليا يعمل على المستند قيد الإستخدام ؟!!

اممممم

مش فاهم بردوا

لانى لم اتعامل مع الـ Thread من قبل

بس انا عملت

 sleep(500);

للـ thread والبرنامج شغله بقا كويس

لكن بردوا انا عاوز اعرف طريقه انى اجعل المستند القيد الاستخدام هو الـ active

وشكرا اخى هويدى :)

علاء الصالحي كتب:

يا حج محمود الخيط Thread مورد مهم من موارد البرنامج

لا يمكنك أنت تعطي هذا المورد لكل من هب ودب

تحتاج إلى إدارة أفضل للخيوط

خيط واحد كافي جداً لتحديث الـ statusbar الخاص بك

تحياتي

حاج ؟؟؟

يسمع منك ربنا :)

المهم

انا اعلم انك الخيط مورد مهم

لكنى فكرت كتير فى ان اقوم بتحديث شريط الحاله لكن لم اجد غير استخدام الخيط

كيف ان اقوم بجعل خيط واحد يقوم بتحديث الـ statusBar ???

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 3 أغسطس 2010 في 17:03

Software Developer
Mahmoudkelany.com


 

#7

لماذا قمت بربط الخيط الخاص بالتحديث مع التبويب Tab

لماذا لا يكون موجود في JFrame نفسه

(أنا لم أطلع على البرمجة لذا لو كان هناك معوقات أخبرني)

وعندما تريد تحديث شريط الحالة تقوم بناداة دالة في الكائن JFrame

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة