Home > سي++C > المكتبه Console V.01 لتزيين وتلوين المخرجات C++ Console Screen

المكتبه Console V.01 لتزيين وتلوين المخرجات C++ Console Screen

أغسطس 31st, 2009 Wajdy Essam

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

الكثير منا يحاول تزيين برنامجه C++ Console Application واضافه الالوان وبعض الخصائص الأخرى ، وهناك الكثير من المكتبات لفعل ذلك وأشهرها مكتبه بورلاند Graphics.h والتى كانت تعمل تحت مترجمات الدوز القديمه Borland C++ 4، والأن تطورت المكتبه وأصبح لها أصدار جديد متوافق مع مترجمات سي++ الجديده يعمل على DEV-C++ & Mingw..

في هذا التدوينة سنلقى الضوء على أحد المكتبات البسيطه للغايه التي قمت بكتابتها فيما مضى ، و قد تفيد فقط المبتدئين ، المكتبه توقفت من تطويرها لكن اذا أردت المشاركه في المكتبه وتطويرها فمرحبا بك ..

ما الذي تقدمه لك المكتبه Console ؟
1) تغيير عنوان نافذه الconsole السوداء ، بالاضافه الى الحصول على العنوان
2) تنظيف الشاشه
3) تلوين الشاشه بلون محدد
4) تلوين النص وخلفيه النص
5) الذهاب لموقع معين في نافذه console
6) الذهاب لموقع معين وطباعه حرف هناك

إمكانيات بسيطه ولكن تستطيع فعل الكثير بها ، سوف تعرف ذلك من خلال الموضوع والصور ..

كيف تستخدم المكتبه ؟
كل ما عليك هو عمل include للمكتبه Console ثم عمل كائن من المكتبه ، ثم استدعاء الداله التي تريد (هناك 8 دوال حاليا ) ، مثال بسيط :

المخرج هو ولاحظ عنوان النافذه :

فقط هذا كل ما في الأمر ..

نشاهد الأن مثال على استخدام الداله goTo والتي تسمح لك بالذهاب الى أي موقع x و y في الشاشه .. في هذه النافذه أول بعد هو 0,0 وأخر بعد هو 80,25 . (طبعا 80 هنا هي عدد الأعمده ، وال25 هي عدد الأسطر ) ..

المخرج سوف يكون نجوم كل منها في سطر ، ربما تستطيع عمل مثل هذا المخرج بدون هذه المكتبه ، لكن أنظر للمثال القادم لكي تعرف أن الداله تعطيك تحكم كبير بالنافذه ..

نشاهد مثال على طباعه ASCII Character ، ولاحظ أن الأرقام تنزل للأسفل ، ثم تكمل من الأعلى ،، واستخدمنا الداله cls لتنظيف الشاشه في البدايه ..

المخرج هو :

الأن هناك داله للتعامل مع الcursor ، حيث يمكنك تكبيره وتصغيره (من 0 الى 100) ، ايضا لديك الخيار لكي تخفى علامه الcursor أو لكي تبقيها .. المثال التالي يوضح ذلك حيث تم اختيار حجم 90 :

المخرج ، ويمكنك تغيير القيمه ، ووضع القيمه false سوف يؤدي الى اخفاء العلامه :

ننتقل الى دوال الألوان ، أولا عليك أن تعرف أن لونين لكل حرف في الشاشه ، لون الخط نفسه ويسمى foreground color ، ولون خلفيه الخط وتسمى background color ..

الألوان التي تستطيع استخدامها هي الأبيض ، الأسود، الأزرق، الأحمر، الأصفر والأخضر.. كما أن هناك شيء يسمى الكثافه INTENSITY ، أي درجه وضوح اللون ، ويفضل أن تجعل الألوان كلها تتسم بهذه الصفه ..

لأستخدام الألوان توجد لديك داله واحده فقط ، وهنا يمكنك أن تحدد لون الخلفيه ، أو لون الخط ، أو كليهما باستخدام علامه الربط or (|) ، وسوف تختار الألوان من ثوابت معينه عليك أن لا تخطئ في كتابتها لأنه لا يوجد Checking عليها حتى الأن ..

لكي تلون الخط بلون أحمر استخدم FR (الحرف F يشير الى foreground) والحرف R يشير الى Red .. بنفس الأمر FB لون الخط تكون بالأزرق ، أيضا FW لون الخط يكون بالأبيض .. لكن لو استخدمنا BR هنا لون خلفيه الخط تكون بالأحمر ، ولو كتبت BG تكون خلفيه الخط باللون الأخضر .. وفي كل الحالات لو أردت كثافه عاليه ضيف الحرف I بعد ذلك الأختصار .. مثلا FYI معناها لون خط أصفر فاتح .. مثلا BB|FRI معناها لون خط أحمر فاتح بالإضافه الى خلفيه زرقاء (لاحظ استخدمنا معامل الربط or ) ويجب أن نستخدمه في حال أردنا أن نحدد لون الخط والخلفيه مع بعض …

ربما هناك غموض قليلا ، لكن سوف يزيل ان شاء الله بعد مشاهده المثال التالي :

لاحظ المخرج ، وسوف يتوقف في منتصف التنفيذ لكي تضغط enter ثم يكمل (لاحظ التكمله كانت بعمل تلوين للشاشه setBackColor، هذا التلوين يمسح الشاشه ولكن بلون الخط الذي تريد) ..

و

أخيرا يمكنك عمل الكثير باستخدام هذه الدوال ، ورموز الأسكي من190 الى 220 ، مربعات أشكال ، وأشياء لن تخطر على بالك .. هذه أهم الرموز :

المثال الأخيره وهو مثال للمضروب ، المثال الكلاسيكي للكثير من الأساتذة :) :

أرجوا أن تستفيدوا من هذه المكتبه ، وهي موجوده في الأسفل ،، ولكي تستخدمها في مشروعك عليك بوضع الملفات الثلاثه :
Color.h
Console.h
Console.cpp

في برنامجك ، وأعمل :
#include “Console.cpp”

ثم قم بعمل كائن من الكلاس Console واستدعي الداول عن طريق هذا الكائن ، الدوال هي :

1
2
3
4
5
6
7
8
BOOL cls();   // clear screen
BOOL goTo(int x,int y);   // go to spicify location
BOOL printCharAt(int x , int y , CHAR  ch,DWORD time=1); // print one or more char at location
BOOL setTitle(LPTSTR  s); // set window title
BOOL setCursor(int size=50,BOOL visible=true); // set cursor size and visiblity
BOOL setTextColor(int color); // set text foreground and background
BOOL setBackColor(int color); // set window background color
LPTSTR  getTitle(); // get window title

وظيفه الدوال معروفه من الأسم ، ومن خلال التعليق أيضا ، وقد شرحنا جميع الداول في الأمثله أعلاه ، بقى عليك التجربه والتأكد منها .. أيضا ملف يمكنك مراجعه ملف color.h للمزيد من أختصارات الألوان .

يمكنك أن تكمل في الإصدار الثاني وتقوم باضافه المزيد من الميزات ..
لتحميل المكتبة من هنا :
Console V0.1

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

Categories: سي++C Tags:
  1. مــعـــاذ عـــديـــل
    مايو 27th, 2010 at 06:24 | #1

    مشكور اخي الاستاذ وجدي وتسلم اياديك

  2. أغسطس 4th, 2010 at 05:04 | #2

    اشكرك شكرا جزيلا , ربنا يزيدك من العلم . و بالتوفيق

Comments are closed.