عرض مشاركة واحدة
قديم 01-02-2008, 12:29 AM
  #26
محمد المعمري
مراقب سابق
 الصورة الرمزية محمد المعمري
تاريخ التسجيل: Oct 2007
الدولة: المنطقه الجنوبيه
المشاركات: 2,124
محمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond reputeمحمد المعمري has a reputation beyond repute
Read رد : المدخل إلى فيجوال بيسيك 2005و 2008 (الموضوع متجدد ويتبع )

3.2-كيفية تدريج اللون داخل الفورم



لكى نعرف كيف نتحكم فى تدرج اللون سنقوم بعمل تطبيق للتدرج داخل الفورم
-فورم يحتوى على PictuerBox وTimer
-تغييرالخاصية Enabled الموجودة فى Timer إلى True
الكود
فى قسم التصريحات العامة


كود:
Imports System.Drawing.Drawing2D
من الواضح طبعا الغرض واضح من استيراد Drawing2D حيث سنستخدم أدوات الرسم


فى الفورم


كود:

Private M_M As Single = 0
Private M_D As Single = 0.1
لتعريف الخاصية المطلوبة سنقوم بإنشاء روتين فرعى


كود:
Private Sub PictureBox1_Paint(ByVal sender As Object, _
ByVal e As System.Windows.Forms.PaintEventArgs) Handles _
PictureBox1.Paint
Dim LB As New LinearGradientBrush(New Point(0, 0), New Point _
(Me.ClientSize.Width, 0), Color.Green, Color.Yellow)
Dim CB As New ColorBlend
CB.Colors = New Color() {Color.Green, Color.YellowGreen, Color.Yellow}
CB.Positions = New Single() {0, M_M, 1}
LB.InterpolationColors = CB
e.Graphics.FillRectangle(LB, Me.ClientRectangle)
LB.Dispose()
M_M += M_D
If (M_M > 1) OrElse (M_M < 0) Then M_D = -M_D
End Sub
شرح هذا الكود


كود:
Dim LB As New LinearGradientBrush(New Point(0, 0), New Point _
(Me.ClientSize.Width, 0), Color.Green, Color.Yellow)LB
التدرج الخطى يبداء من النقطتين 0 و0 رأسيا وأفقيا التدرج يبداء من اللون الأخضر وينتهى بالأصفر


CB سيكون هو خالط اللون


كود:
CB.Colors = New Color() {Color.Green, Color.YellowGreen, Color.Yellow}

أثناء التدرج من الأخضر إلى الأصفر هناك مرحلة انتقالية وهى الأخضر المائل للصفرة


كود:
CB.Positions = New Single() {0, M_M, 1}
تحديد نقطة البداء بالنسبة ل CB

كود:
LB.InterpolationColors = CB
وهذة هى نقطة الإنقلاب

كود:
e.Graphics.FillRectangle(LB, Me.ClientRectangle)
وهنا يجب تعبئة الشكل الرباعى بكل ماسبق
الان سنعرف ماهى وظيفة Timer
ووظيفتة تحريك العمل الذى قمنا بة ولكى نقوم بتفعيلة دبل كليك علية ثم نكتب الكود التالى

كود:
PictureBox1.Invalidate()
ومعناة إجعل مربع الصورة يتلاشى
طبعا يمكنكم تغيير الألوان والأوضاع حسب الرغبة
ودة طبعا رابط المشروع
http://www.zshare.net/download/5068487a823b4f


ويتبع.....
__________________



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




كم هي جميلة شبكتنا .. وكم هي كبيره بكم
فشبكة قحطان بكم ولكم
فلننهظ بها
بصدق وأمانه
وبلا تذمر


محمد المعمري غير متواجد حالياً