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

هل من الممكن عمل برامج Gui تكون Event Driven

بدأه Omar Eladel في 28 أغسطس 2008 · 21 رد · 2,176 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هل ممكن اعمل برامج GUI باستخدام ++C حيث تكون هذه البرامج Event-driven اى تعمل طبقا للاحداث مثل ضغط ازرار , ضغط الماوس ؟

حيث انى كنت اعمل على VB و ارتحت كثيرا فى هذا الموضوع .

شكرا جزيلا ,,,,,,

وفقكم الله ,,,,,,

#2

بالطبع تستطيع .

سبحان الله , الله اكبر , ولله الحمد

#4

هذا درس قمت بكتابته

صورة الفنجان هي عبارة عن فارة حمرة تنور لكن للأسف

الشركة الراعية غيرت الصورة على نفس الرابط

http://qt-ar.org/community/viewtopic.php?f=6&t=7

تم تعديل هذه المشاركة بواسطة مصفوفة في 28 أغسطس 2008 في 12:24

بسم الله الرحمن الرحيم

مدونة دوال

كيوتي العربي

#5

لى سؤال اخر: ما هى المكتبات التى تدعم Event Driven programs ؟

هل API & MFC & Qt ... و كل المكتبات تدعم هذا النوع من البرمجة ؟؟

#6

النظام هو الذي يدعم ذلك وليس المكتبات ...

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#7

اخى GM

لم افهم ماذا يعنى دعم النظام لها و ليس المكتبات ؟؟

ممكن شوية توضيح او روابط او كتب او اى شئ عن Event driven programming فى ++C ؟؟؟

شكرا جزيلا ....

#8

عند مرور مؤشر الماوس فوق نافذة مثلا فإن النظام هو الذي يرسل notification للـWindow Procedure وليس المكتبة ,, المكتبة تقوم فقط بعمل Handling بشكل ملائم للأحداث حسب رغبة المبرمج .

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#9

طب انا فهمت دى خلاص

ممكن كتب او روابط او اى شئ يكون كل الموضوع بيتكلم عن Event Driven programming فى ++C ؟؟

شكرا جزيــــلا ,,,,

#10

الUI Events في الWindows يكون عن طريق Messages و الMessages هي عبارة عن ثوابت عديدة مشهور مثل WM_CLICK على سبيل المثال و هي تعني Window Message Click و هي الرسالة التي يرسلها النظام الى البرنامج ليعلمه أن الMouse ضُغط عليه و هكذا

عموماً في الWin32 API يوجد دالتان هما SendMessage و PostMessage و هما المسؤلتان عن ارسال الرسائل و وضعها في ما يسمى الMessage Queue

و عموماً ما يقوم به البرنامج هو قراءة الMessage Queue عن طريق Loop و يقوم بتنفيذ هذه الرسائل التي تصل له واحدة تلو الأخرى حتى تصل له رسالة الانهاء مثل WM_EXIT او WM_DESTROY و هنا يقوم البرنامج بانهاء الLoop و التوقف.

ما تفعله المكتبات هو تغليف لهذه المفاهيم بطريقة أبسط, فبدلاً من أن تتعامل مع الMessages نفسها تقوم المكتبة بعملAbstraction لهذا في شكل Events

و هذا رابط لهذا الموضوع

http://www.winprog.org/tutorial/message_loop.html

تم تعديل هذه المشاركة بواسطة bashmohandes في 28 أغسطس 2008 في 19:55

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#11

شكرا جزيلا ....

لكن لى سؤال : هل كل انواع البرامج فى windows تكون event driven ؟

#12

لا بالطبع

يوجد برامج على شكل Console و هي الشاشة السوداء أو برامج على شكل NT Service أو Windows Service و هي التي تعمل في الخلفية دون واجهة رسومية و هناك ما هو أدنى من هذا مثل الDrivers و كل هذه البرامج ليس لها علاقة بالEvent Driven

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#13

لقد كفى ووفى الاخوة ..

بالمناسبه , قمت ايام الكليه بتصميم مكتبه GUI لمترجم الـ Turbo C++ 3.0 بإستخدام الـ BGI بنمط معتمد على الـ Event عن طريق استخدام الـ callback والحلقات الغير منتهية ونظام الرسائل (كل ذلك بشكل مبسط ) وذلك بهدف تطبيق مفاهيم الـ OOP في السي ++ , . ولكن لم استمر في تطوير هذه المكتبه , ولازال توجد فيها بعض المشاكل .

اذا اردت وكان فيك" حيل" , يمكن ان اضع هذه المكتبه في موضوع مستقل , ويمكنك الاطلاع عليها لترى كيف قمت ببناء نموذج مناوله الـ Events , وان شاء تقوم وبقية الشباب بتطويرها :) ..

تم تعديل هذه المشاركة بواسطة محمد معاشر في 29 أغسطس 2008 في 01:09

لا إله الإ الله وحده لا شريك له الملك وله الحمد يحي ويميت وهو على كل شئ قدير

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

gazabigBanner.jpg

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

#14

شكرا جزيلا يا جماعة ....

انا حاليا انوى تعلم برمجة GUI لذلك اسأل كثيرا فى هذا الموضوع ....

ما هى احسن (اسهل بمعنى اصح) مكتبة فى موضوع تغليف Messages الخاصة بـ Windows فى شكل Events ؟

هل MFC or Qt or wxWidgets ؟

ام تعلم Borland C++ Builder ام Visual C++ 6 ؟؟

شكرا جزيـــــــــــــــلا

#15

عن تجربة برمجة الGUI بال++C مضيعة للوقت فستقضي 75% من وقت تطوير البرنامج في كتابة الUI و سيظهر بشكل متواضع و ملئ بالأخطاء, اذا كنت تنوي التعلم فقط فبالطبع لا مانع, أما التطوير الاحترافي فانصحك أن تلجأ الى #C أو VB.net أو C++.net و تستخدم سواء Windows Forms أو WPF و ستجد نتائج رائعة بمجهود بسيط

يمكنك القراءة أكثر في هذا في http://www.WindowsClient.net

تم تعديل هذه المشاركة بواسطة bashmohandes في 29 أغسطس 2008 في 03:05 — السبب: تصحيح الرابط

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#16

شكرا اخى باشمهندس ,,,

انا اعرف ان ++C تنفع فى كل مجالات البرامج .. و تم عمل اغلب اشهر البرامج التجارية .. فكيف عمل GUI بها متعب و مضيعة للوقت ؟؟

انا انوى التعلم من اجل حب التعلم و عمل برامج لمساعدتى فى الدراسة (الرياضيات و الفيزياء)

ممكن تدلنى على اسهل طريقة لعمل GUI (ليس كسل و لكن لسرعة الانتاج فقط لا غير) طبعا بـ ++C ؟

#17

C++ Builder هو الأقرب لنظام vb في تصميم الـGUI او اذا كنت تعاملت مع دلفي فهو نفس نظامه أيضاً.

mov eax, dword ptr ds:[0xffdf0308]

jmp dword ptr [eax+0xfc]

#18

أغلب البرامج التجارية عمرها أكثر من 10 سنوات و ليس من السهل اعادة كتابتها من البداية و لهذا ستظل مكتوبة بال++C/C لفترة طويلة, مع العلم أن بعض البرامج حتى و ان كانت في الأصل ++C/C فعندما يتم تطوير الUI يتم في الأغلب كتابته بال.net على سبيل المثال SQL Server يحتوي على أجزاء C و أجزاء #C و برامج مثل Expression Blend, Expression Designer مكتوبة كلياً بالWPF و لهذا تجد بها امكانيات رسومية عالية جداً

على العموم كما نصحك الأخوة فهناك مكتبات عديدة سواء مجانية أو لا لكتابة الواجهات بال++C مثل Qt, MFC, WxWdigets و غيرها..

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#19

شكرا جزيلا على النصائح ...

انا قررت ابدأ فى C++ Builder ,, فهو فعلا شبيه كـ IDE بـ VB

شكرا جزيــــــــــلا

#20

اخوان هل ينفع ربط لغه مع لغه اخرى يعني البرنآمج يكون بالسي بلس هل استطيع ان اجعل الوآجهة مثلا بالسي شآرب ؟!!

يجوز كلامي يضحكم لكن حبيت اعرف ..

#21

اخى redfalcon اعتقد انه ينفع

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

سؤال اخير :: ما هى اشهر الكتب فى تعليم Borland C++ Builder 6 ؟؟ و هل 6 كويس ام اشتغل على 2006 او 2007

و هل لو تعلمت 6 يبقى اتعلمت 2006 او 2007 ايضا ولا لازم ابدأ من جديد زى VB 6 ==> VB 2005 ؟

شكرا جزيــلا

#22

هذه احدى مميزات الDot Net أنك تستطيع الاستفادة من الأكواد التي كتبتها مسبقاً فالمثال الذي تقوله هو أحد الأمثلة الشهيرة, فأحياناً تكون الشركة بصدد اصدار جديد و تريد استخدام مميزات ال.net في تصميم الواجهات و لكنها تريد أيضاً الاستفادة من المكتبات الأساسية لبرامجهم و هذا ممكن جداً دون أي مشاكل

ابحث في ال Dot net Interoperability أو DllImport

Sr. Software Development Engineer
Hulu, LLC
My Blogs

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