02-10-12, 06:40 PM
كيف نستفيد من الصور المتحركة؟
أكيد عزيزي القارئ جميعنا نعلم كيف نستفيد من الصور المتحركة ببرامجنا لكن هل فكرنا في استخدمها لصناعة باتون متحرك مثلا أكيد البعض قد فكر في هذا الأمر ولكن كيف نفعل ذلك في الدوت نت للإجابة علي هذا السؤال قمت باستخدام صور جاهزة امتدادها GIF
في الواقع الموضوع سهل جدا مع الصور المتحركة التي تم تصميمها مسبقا بأي من البرامج التي تصمم صور امتداده GIF عموما لنفعل ذلك كل ما علينا هو إتباع الخطوات التالية
المثال الثالث:
أولا: فتح مشروع جديد و نطلق عليه DrawAnimatedButton مثلا
ثانيا: نضيف الصور المتحركة التي صممناها الي Resources المشروع
ثالثا: نضيف كلاس جديد الي المشروع ونطلق عليه AnimatedButton وهنا نضيف PictureBox لهذا الكلاس عن طريق استخدام الوراثة
ثالثا: نضيف بعض المتغيرات تعبر عن الصور التي تمت إضافتها الي المشروع ثم من داخل Constructor او داخل Sub New وأيضا نغير من بعض صفات PictureBox
رابعا: نقوم بعمل Overrides لحركة الماوس في حالة OnMouseHover و أيضا في حالة OnMouseLeave ثم أخيرا في حدث OnMouseDown ونقوم بتغيير الخاصية Image مع الصورة المناسبة لها
وبالتالي يكون الكود النهائي الخاص بهذا الكلاس كالأتي
أخيرا: نقوم ببناء المشروع من قائمة Build سنلاحظ أن الكلاس قد أصبح موجود داخل Toolbox وبالتالي يمكننا إضافته الي الفورم بسهولة
والكود التالي يوضح كيفية الاستفادة من الباتون عن طريق إضافة الحدث Click الخاص بالكلاس الذي أنشئناه الي الفورم ووضع الكود المناسب من خلاله مثل تكبير الفورم أو تصغيره أو إغلاق الفورم أو نستخدمه كما نريد ليؤدي هدف ما داخل مشروعنا
كما تلاحظون أنني لم أتوقف كثيرا لكي أوضح الكود السابق بالتفصيل لأنه كود بسيط جدا وأعتقد أن الكثيرين منكم قد صمموا أشياء مماثلة مرات عديدة.
عموما لمن يريد معلومات إضافية يمكنه قراء الموضوعات المتعلقة بتطوير الكونترول والموجودة بالموقع أو يمكنه قراءة الموضوعات الكثيرة الموجودة في المندي و التي يقوم بكتابتها الأخوة الزملاء الأفاضل فهي كثيرة والحمد لله رب العالمين
أكيد عزيزي القارئ جميعنا نعلم كيف نستفيد من الصور المتحركة ببرامجنا لكن هل فكرنا في استخدمها لصناعة باتون متحرك مثلا أكيد البعض قد فكر في هذا الأمر ولكن كيف نفعل ذلك في الدوت نت للإجابة علي هذا السؤال قمت باستخدام صور جاهزة امتدادها GIF
في الواقع الموضوع سهل جدا مع الصور المتحركة التي تم تصميمها مسبقا بأي من البرامج التي تصمم صور امتداده GIF عموما لنفعل ذلك كل ما علينا هو إتباع الخطوات التالية
المثال الثالث:
أولا: فتح مشروع جديد و نطلق عليه DrawAnimatedButton مثلا
ثانيا: نضيف الصور المتحركة التي صممناها الي Resources المشروع
ثالثا: نضيف كلاس جديد الي المشروع ونطلق عليه AnimatedButton وهنا نضيف PictureBox لهذا الكلاس عن طريق استخدام الوراثة
ثالثا: نضيف بعض المتغيرات تعبر عن الصور التي تمت إضافتها الي المشروع ثم من داخل Constructor او داخل Sub New وأيضا نغير من بعض صفات PictureBox
رابعا: نقوم بعمل Overrides لحركة الماوس في حالة OnMouseHover و أيضا في حالة OnMouseLeave ثم أخيرا في حدث OnMouseDown ونقوم بتغيير الخاصية Image مع الصورة المناسبة لها
وبالتالي يكون الكود النهائي الخاص بهذا الكلاس كالأتي
كود :
Public Class AnimatedButton
Inherits PictureBox
Private isAnimating As Boolean = False
Private m_CloseHov As Bitmap = My.Resources.eq_close_hov
Private m_CloseNo As Bitmap = My.Resources.eq_close_no
Private m_CloseDo As Bitmap = My.Resources.eq_close_do
Public Sub New()
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer Or _
ControlStyles.Selectable Or _
ControlStyles.AllPaintingInWmPaint Or _
ControlStyles.StandardClick Or _
ControlStyles.UserPaint, True)
Me.BackColor = Color.Transparent
Me.Image = m_CloseNo
Me.Size = Me.Image.Size
Me.MinimumSize = Me.Image.Size
Me.MaximumSize = Me.Image.Size
Me.ErrorImage = Nothing
Me.DoubleBuffered = True
End Sub
Protected Overrides Sub OnMouseHover(ByVal e As System.EventArgs)
MyBase.OnMouseHover(e)
Me.Image = m_CloseHov
End Sub
Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
MyBase.OnMouseLeave(e)
Me.Image = m_CloseNo
End Sub
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
MyBase.OnMouseDown(e)
Me.Image = m_CloseDo
End Sub
End Classوالكود التالي يوضح كيفية الاستفادة من الباتون عن طريق إضافة الحدث Click الخاص بالكلاس الذي أنشئناه الي الفورم ووضع الكود المناسب من خلاله مثل تكبير الفورم أو تصغيره أو إغلاق الفورم أو نستخدمه كما نريد ليؤدي هدف ما داخل مشروعنا
كود :
Public Class Form1
Private Sub AnimatedButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AnimatedButton1.Click
Application.Exit()
End Sub
End Classعموما لمن يريد معلومات إضافية يمكنه قراء الموضوعات المتعلقة بتطوير الكونترول والموجودة بالموقع أو يمكنه قراءة الموضوعات الكثيرة الموجودة في المندي و التي يقوم بكتابتها الأخوة الزملاء الأفاضل فهي كثيرة والحمد لله رب العالمين
