![]() |
|
[مقال] Fun with Windows Forms & Graphics - Spy Form - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : [مقال] Fun with Windows Forms & Graphics - Spy Form (/showthread.php?tid=12577) |
Fun with Windows Forms & Graphics - Spy Form - silverlight - 23-06-15 السلام عليكم و رحمة الله و بركاته مقدمة: من الأشياء الطريفة جدا و القديمة أيضا في عالم الكمبيوتر هي برنامج عبارة عن صورة متحركة تتحرك خلف الماوس و مثل هذه الأفكار البرمجية البسيطة قد يستمتع بها كثيرا بعض من مستخدمي برامج الكمبيوتر و خاصة الأطفال. و غالبا بعض المبرمجين يستخدمون هذه الأفكار البرمجية لإضفاء مؤثرات لها شكل لطيف علي برامجهم و الهدف من ذلك هو إسعاد المستخدم و جذبه الي برامجهم. قد يتخيل البعض ان مثل هذه البرامج تحتاج الي مجهود ضخم من المبرمج لكنها و في واقع الأمر عبارة عن برامج بسيطة جدا يمكن كتابتها باستخدام مجموعة من الأسطر القليلة من الكود. المرحلة الأولي لتنفيذ الفكرة: لتنفيذ المرحلة الأولي يجب علينا ان نبني فورم بسيط جدا و لنطلق عليه SpyForm و الخطوات التالية توضح كيفية بناء SpyForm 1- افتح مشروع عادي WindowsApplication 2- اضف كلاس الي هذا الفورم و ليكن اسمه SpyForm 3- في الكلاس SpayForm اكتب Inherits Form كود : Public Class SpyForm4- لنعدل في خصائص الفورم برمجيا حتي نجعله خفيا و ابعاده تملأ الشاشة الكود التالي يوضح ذلكPublic Class SpyForm كود : Inherits Formالخطوة التالية هي أن نضيف هذا الفورم الي الفورم الرئيسي في مشروعنا في الفورم الرئيسي نقوم بتعريف متغير يعبر عن SpyForm ثم في الحدث Load نضيف هذا Spyform و في الحدث Closing نتخلص منه او يمكن عمل Overrides للخدثان OnLoad و OnformClosing كما هو مبين في الكود االتالي كود : Public Class Form1قم بتشغيل برنامجك حينها ستري فقط الفورم الرئيسي إن أردت ان تري SpyForm عليك ان تعيد ضبط خاصية BackColor الخاصة به الي لون اخر او يمكنك ضبط خاصية TransparencyKey Color الخاصة بهذا SpyForm الي اي لون اخر في المرفقات ستجدون الكود الخاص ب المرحلة الأولي و هو بناء SpyForm و اضافته الي الفورم الرئيسي و في المشاركات التالية سوف نتحدث عن كيفية الاستفادة من هذا الفورم و اعتقد ان بعض القراء لهذا الموضوع سيبدعون في الاستفادة من هذا SpyForm في برامجهم قد يتساءل البعض هل يمكن استخدام الفورم الرئيسي ليعمل بمثابة SpyForm بدون أن نبني كلاس خاص اسمه SpyForm بالتاكيد يمكن استخدام الفورم الرئيسي و لكن الكود في تلك الحالة سوف يحتاج الي بعض التعديلات القليلة [attachment=7319] RE: Fun with Windows Forms & Graphics - Spy Form - silverlight - 23-06-15 السلام عليكم و رحمة الله و بركاته الأن و بعد أن قمنا بكتابة الجزء الأول عن كيفية بناء SpyForm لنبدأ في توضيح كيفية الاستفادة من هذا الفورم في بناء فكرة بسيطة و هي عبارة عن رسم شئ يتحرك خلف الماوس و هذه المرحلة تحتاج الي بعض المعرفة البسيطة بكيفية الرسم علي الفورم بالتاكيد يمكن الاستفادة من هذا الفورم بأساليب أهم كثيرا و أعتقد ان اهم شئ ممكن ان نستفيد به هو أن نرسم NonClientArea للفورم الرئيسي و لكن لهذا حديث أخر و الأن لنعود الي SpyForm ونقوم بالتعديل في الكود الخاص به قليلا أولا: سوف نقوم بإضافة صورة متحركة بحجم صغير مناسب و نضيفها الي Resources المشروع و سيتم تحريك هذه الصورة علي الفورم باستخدام ImageAnimator Class ثانيا: اهم شئ في الرسم علي الفورم و لكي يكون الرسم دقيقا يجب علينا أن نحدد المكان الذي سوف نرسم به الصورة و هو سيكون عبارة عن مستطيل ابعاده عبارة عن ابعاد الصورة و لكن نقطة رسم هذا المستطيل ستكون مرتبطة بمكان Cursor او بمكان MousePosition علي شاشة الكمبيوتر لهذا سوف نحتاج الي استخدام Translation او Offset لنقطة بداية الرسم لكي نربطها مع MousePosition علي الشاشة و لمن لا يعلم كيفية نقل مكان الرسم يمكنه أن يسأل و سوف اقوم بالتوضيح له لاحقا خاصة و اننا هنا ليس هدفنا توضيح عمليات الرسم علي الفورم و الكود التالي يوضح الشكل النهائي للكلاس SpyForm كود : Public Class SpyFormفي المرفقات ستجدون الكود كاملا المراجع 1- ImageAnimator Class 2- Control.MousePosition Property 3- Rectangle.Offset Method (Point) أتمني من الله ان يكون الموضوع مفيدا لكم و كل عام و انتم بخير [attachment=7320] |