برجاء تسجيل الإعجاب بالصفحة لتصلك كتاباتي على فيسبوك

المتابعون للمدونة

الاثنين، 24 يوليو، 2017

ديوان ليلى وأخواتها


ليلى وأخواتها
 
ديوان فصحى يحتوي على 54 قصيدة من الشعر العمودي وشعر التفعيلة
 
شعـــــــر:
م. محمد حمدي غانم
 
 
لتحميل الديوان في صورة كتاب PDF:
 
إهداء:
إلى ليلى وأخواتها....
مع حبي وأشعاري 
محمد حمدي


قصائد الديوان
 
8.   آسف
9.   من أنا
10.   أفيقي!
18.   فتنة
27.   لمسة
29.   اعترفي
30.   جرد
32.   ما أفتنه!
33.   خَجلَى
34.   مذبحة
36.   متى يستطير الزمان؟
39.   خصام
43.   عشرون
48.   دُمية خزفيّة
49.   خائنة
52.   جموح
 
للاستمتاع إلى كثير من قصائد هذا الديوان بصوت الشاعر على يوتيوب:
 


مشروع الإعداد



س: كيف يمكن إضافة مشروع الإعداد (التنصيب) Installer Project في فيجوال ستديو 2017؟

ج: لسبب ما، لم تعد هذه الإمكانية موجودة تلقائيا ضمن أنواع مشاريع فيجوال ستديو 2017 مثلها ككثير من الإمكانيات (في الغالب السبب هو جعل فيجوال ستديو تفتح بشكل أسرع، بإزالة الإمكانيات الثانوية بعيدا وترك المستخدم يضيفها عندما يحتاجها)، لهذا يجب إضافة هذا النوع من المشاريع كملحق Extension يتم إعداده منفردا.. يمكن تنزيله من هنا.

بعد إعداد هذا الملحق، يمكنك أن تضيف برنامج إعداد لأي مشروع بفتح القائمة File أن تضغط Add/New Project وفي النافذة التي ستجد هذا النوع من المشاريع في القائمة اليسرى في المسار:
Templates/Other Projects Type/Visual Studio Installer
ومن القائمة الوسطى يمكنك اختيار Setup Wizard لتسهيل إنشاء برنامج الإعداد من خلال المعالج السحري.
 
 
التفاصيل الكاملة عن كيفية إنشاء برنامج الإعداد وتعديل خياراته في كتابي "من الصفر إلى الاحتراف: برمجة نماذج الويندوز"

 


السبت، 15 يوليو، 2017

ليلى وأخواتها


ليلى وأخواتها
(المسكوت عنه في نحو العشق)
 
أخواتُ ليلى قد أَطَشْنَ صوابي = أنَّى المَحَلُّ لهنَّ مِن إعرابي؟
يَفْتِنَّ مُبتدأً ويُدعَى عاشقًا = يَجعلنَه خبرًا بِلَيلِ عذابِ
أسماءُ عشقٍ جارحاتٌ للقلوبِ، طِلابُهنَّ مُضَيِّعُ الطُّلاّبِ
أفعالُ أمرٍ ناصباتٌ للجَوَى = بجوابِهنَّ مَفَارقُ الأصحابِ
ذاتُ العقولِ الناقصاتِ، فلا عَجِبْتَ وحُسنُهنَّ مُبدِّدُ الألبابِ
رباتُ سحرٍ والخدودُ مصايدٌ = للمدّعينَ العقلَ مِن أربابِ
فإذا نَصَبْنَ أَصَبنَ، إنَّ الفخَّ في الخجلِ البريءِ وبسمةِ الأهدابِ
مَن قالَ "عدلٌ إنْ تعادلَتِ القُوَى = وتصادمَ الإرهابُ بالإرهابِ
في ضَعفِ ليلى قد تبدَّدتِ القُوَى = من نظرةٍ.. أخطأتَها يا (شَابِي)!
طُعمٌ لذيذٌ مُهـلِكٌ صيّادَهُ = هذا الجمالُ برائعِ الأثوابِ
***
أخواتُ ليلى عِشقُهنَّ مُصابي = يُسهِرنَ ليلِي إن أردنَ عقابي
أدواتُ جرٍّ للغرامِ، وجرُّهنَّ إلى الهَوَى هُو غايةُ الآرابِ
أتلومُ ليلى لو تَجرُّ حبيبَها = بالهُدبِ حتى ثَغرِها العِنّابي؟
إن شئتَ نصبًا لاحتيالِ لقائها = جازَ اجتهادُكِ دونَ أيِّ عتابِ
ووجوبَ رفعٍ للنجومِ، بوصفِها = إن شئتَ شِعرًا مُسكِرَ الإطرابِ
أو شئتَ جَزمًا في غُموضِ شعورِها = فاسبقْ إليها زحمةَ الخُطّابِ
للوَصْـلِ في لُغةِ الغرامِ سبيلُهُ = مَن سارَ، يومًا بالغُ الأعتابِ
***
يا لائمي أنِّي طلبتُ سرابي = لم تَدرِ ما حالي وما أسبابي
أَرَمَتْكَ ليلى بابتسامةِ ثَغرِها؟ = فَلأَوقعَتْكَ بِسحرِها الخلاّبِ
وصريعُ ليلى مَن غَدَا في عشقِها = خبرًا يُعاني الشوقَ باستعذابِ
والعشقُ أَغْرَى بي كما أغرَى بها = ما يَجمعُ الأحبابَ مِن أغرابِ؟
لا تَسألنَّ القلبَ عن أخواتِها = هنَّ المَنايا مُشرِعاتُ حِرابِ
مِن كلِّ فَجِّ أُنوثةٍ مُتفجّرٍ = في فتنةٍ يأتينَ كالأسرابِ
وإذا خَطَرنَ على ضميرٍ غائبٍ = لَخَطَفنَ قلبَ المرءِ دونَ إيابِ
متشكّلاتٍ مُشكِلاتٍ ساكناتٍ مائساتٍ قد ملأنَ خِطابي
وتَغارُ ليلى إن رأتْ أخواتِها = يَصبُبْنَ كأسَ الشِّعرِ في مِحرابي
ليلى تُفضِّلُ أن تكونَ لِوحدِها = في جملةٍ مبتورةِ الأعقابِ
إن تمَّ معنى القولِ قبلَ دُخولِها = جعلَتْه نَفيًا نافرَ الأقطابِ
وإذا تلعثمَ للجمالِ مُريدُها = أَهْوَى إليهِ الشِّعرُ دونَ حِجابِ
يا (ليلُ) عذرًا للحبيبِ فإنّه = في حبِّـكُنَّ مُحَطَّمُ الأبوابِ
مَن للزهورِ وعطرِها لو أصبحتْ = متسلقاتِ القلبِ كاللَّبلابِ
قدَّمتُ عُذري فانعمي بقصيدتي = هيا إلى حِضني ولا ترتابي
للعينِ شأنٌ، للفُؤادِ مُخالِفٌ = ما ضَرَّ حبَّـكِ عابرُ الإعجابِ
لا عشقَ ـ غيرَكِ ـ صادقٌ في مهجتي = أنتِ المُنَى يا أجملَ الأحبابِ
 
محمد حمدي غانم
13/7/2017
 
* في البيتين:
مَن قالَ "عدلٌ إنْ تعادلتِ القُوَى = وتصادمَ الإرهابُ بالإرهابِ"؟
في ضَعفِ ليلى قد تبدَّدتِ القُوَى من نظرةٍ، أخطأتَها يا (شابي)
أشير إلى بيت الشاعر التونسي أبي القاسم الشابي:
لا عدلَ إلا إن تعادلت القوى = وتصادمَ الإرهابُ بالإرهابِ
 
 


معرفة الخطوط العربية



س: هل يمكن معرفة الخطوط العربية الموجودة على الجهاز برمجيا؟

ج: نعم.. يمكن فعل هذا بسهولة في تطبيقات WPF لكن لا توجد طريقة مباشرة لفعل هذا في تطبيقات Windows Forms إلا باستعارة هذه الإمكانية من WPF كما سأذكر كيف في نهاية الإجابة.
لأخذ نبذة عن WPF اقرأوا هذا الموضوع:

الفكرة هي أن نحاول أن نعرف هل يحتوي الخط على نقش Glyph لحرف عربي مثل "ض".. يمكن معرفة هذا في WPF بفحص أشكال الخط المختلفة Typefaces ومحاولة الحصول على نقش حرف الضاد، فإن وجد، فهذا معناه أن هذا خط عربي.

هذه هي الدالة التي تفعل هذا، وهي دالة عامة، تستقبل اسم أحد الخطوط، وحرفا أبجديا لتفحص إن كان يستطيع هذا الخط عرضه أم لا.. هذا يتيح لك أن تفحص إن كان الخط يدعم عرض الحروف الإنجليزية أو الفرنسية (اختر حرف مميز للغة الفرنسة مثل الحروف ذات العلامات العلوية أو السفلية) أو الصينية.. إلخ.. سأكتب الكود هنا بلغة سي شارب، لكن ستجدون نسخة بفيجوال بيزيك دوت نت في الرابط المرفق:
public static bool FontSupprotsChar(string FontName, char Character) {
        var family = new FontFamily(FontName);
        int unicodeValue = Convert.ToUInt16(Character); 

        ushort glyphIndex;
        GlyphTypeface glyph;       

        foreach (Typeface typeface in family.GetTypefaces()) {
            typeface.TryGetGlyphTypeface(out glyph);
            if (glyph != null && glyph.CharacterToGlyphMap.TryGetValue(unicodeValue, out glyphIndex))
                return true;
        }
        return false;
}
وقد وضعت هذه الدالة في فئة اسمها FontChars، ووضعت معها دالة أخرى اسمها GetFontsSupprotingChar تفحص كل الخطوط الموجودة في مجلد خطوط النظام، وتعيد قائمة تحتوي على الخطوط التي تستطيع أن تعرض الحرف الذي ترسله إليها كمعامل.. ستجد كود هذه الفئة كاملا في المشروع ArabicFonts، وهو مشروع WPF مكتوب بلغة سي شارب، يعرض قائمة تحتوي على الخطوط العربية، وقائمة أخرى تحتوي على الخطوط الإنجليزية.. لاحظ أن بعض الخطوط تستطيع عرض اللغتين، لهذا ستجدها في القائمتين.
وقد كتبت لكم نسخة أخرى من المشروع بلغة فيجوال بيزيك دوت نت، لكن المشروع هذه المرة من النوع Windows Forms، وأضفت فيه الفئة FontChars بنفس الكود.. لكن لكي يفهم محرر الكود فئات WPF المستخدمة في الكود، يجب أن نضيف إلى مراجع المشروع References المرجعين التاليين:
PresentationCore
PresentationFramework
لفعل هذا افتح متصفح المشاريع Solution Explorer.. وبزر الفأرة الأيمن اضغط العنصر References الموجود تحت اسم المشروع Arabic Fonts ومن القائمة الموضعية اضغط Add Reference.. في النافذة التي ستظهر، تأكد من اختيار العنصر Assemblies/Framework من القائمة اليسرى، وفي القائمة الوسطى ابحث عن العنصرين PresentationCore و PresentationFramework، وضع علامة الاختيار بجوار كل منهما، ثم اضغط زر الموافقة.
الآن صار بإمكاننا استخدام نفس كود WPF داخل مشروع WinForms!
ستجدون الكود الكامل في المشروعين في هذا الرابط:

 

 


الجمعة، 7 يوليو، 2017

أنا كل العالم



أنا كل العالم

حانقةٌ أنتِ على الدنيا ورجالِ العالَمْ

هل ذُقتِ الدفءَ الكامنَ في همساتي؟

قاسيةٌ أحكامُكِ جدًا واللهُ العالِمْ

يا أغلى شيءٍ لا أملِكُه، يا ماساتي

أو يا مأساتي..

لا وصفَ يُلائمْ!

يا فتنةَ هذا الحسنِ العاتي

فليَسمعْ قلبُكِ منّي الآتي:

لو نَصفُو حينا أو نتخاصمْ

أناْ كلُّ العالَمْ

لو كلُّ رجالِ الدنيا ركعوا بينَ يديكِ

ووحدي سِرتُ بعيدًا عنكِ

لضاقَ العالمُ في عينيكِ

وظلَّ فؤادُكِ بعدي يبكي

حتى يُضحيَ هذا الكونُ رمادا

لا بل أتمادى

لو كلُّ رجالِ الدنيا سَخِروا منكِ

لضاعوا في مَوجةِ تَحنانٍ من عينيَّ إلى عينيكِ

وذابوا في سَكْرةِ نسيانٍ في قُبلةِ شفتيكِ

وتاهوا في كونِ أساطيرٍ عنّا تحكي

فدعي الأوغادا

مَثنَى وفُرَادى

أو جمعًا صيغةَ تكسيرٍ لا سالمْ

وانصهري توًّا في عشقي الحالمْ

وانتبهي

لن تَحْـيَيْ في الدنيا ما لَمْ

تَحْـيَـيْـني أناْ كلَّ العالمْ

ذا أنّي يا فاتنةَ الحسنِ الظالمْ

أناْ كلُّ العالَمْ

شعر محمد حمدي غانم
7/7/2017

 


صفحة الشاعر