الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ورشة عمل : برنامج الرسام

بدأه bahbah في 27 أغسطس 2012 · 4 رد · 792 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اللهم صل على محمد وآل محمد

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

اليوم سأعرض لكم عن ورشتي الأولى : برنامج الرسام ..

للنتعلم الرسم .. وننتج برنامج للرسم ..

فلنبدأ بسم الله الرحمن الرحيم ..

اليوم نريد أن نصل لهذه النتيجة ..

post-219398-000548700 1346073625_thumb.p

أولاً قم بتصميم النافذة كما رأيتها في الصورة وهذا توضيح للأدوات التي سنحتاجها ..

post-219398-024605000 1346073990_thumb.p

قم بتعديل خاصية BackColor الخاصة بأداة PictureBox إلى White .. أبيض ..

والآن إلى الأكواد ..

في البداية نحتاج إلى إستيراد بعض المكتبات الرسومية ..

لذلك أكتب هذا الكود في أعلى جميع الأكواد ..

Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Brush

وهو يعني إستيراد مكتبة Drawing و Drawing2D و Brush ..

الآن نحتاج إلى تعريف متغييرن جديدين وهما MO و BT ..

الأول من نوع Boolean أما الثاني فمن نوع String ..

MO إختصار لماوس اوفير mouse over ..

وأما BT إختصار للنوع الفرشاة Brush Type ..

أسند للمتغير MO قمية False ..

والآن أصبح الكود هكذا ..

post-219398-072699200 1346074494_thumb.p

نتبع في المشاركة الثانية إن شاء الله

تحياتي :happy:

المرفقات
1.png2.png3.png

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#2

الآن مع العودة للتكملة الموضوع ..

الآن سننشئ ثلاثة أحداث جديدة هي .. MouseDown .. MouseMove .. MouseUp

وهي كلها أحداث للأداة الصور PictureBox ..

وكيفية عمل الأحداث هذه كما في الصورة ..

post-219398-089518400 1346075500_thumb.p

وهذه الصور تجدها في أعلى متصفح الأكواد ..

post-219398-093647500 1346075493_thumb.p

في حدث MouseDown ..

نضع قيمة MO تساوي True ..

ونقصد هنا أنك الآن تستطيع الرسم ..

أما في حدث MouseUp ..

فنضع قيمة MO تساوي False ..

ونقصد هنا أنك لا تستطيع الرسم الآن ..

نتبع في المشاركة التالية ..

وآسف على كثرة الإطالة ..

تحياتي :happy:

المرفقات
5.png4.png

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#3

نسيت أن أقول لكم يجب أن تملؤا الكومبو بوكس كالتالي ..

من خاصية items إضغطوا على زر "... " .. وأكتبوا كما في الصورة ..

post-219398-098396400 1346128604_thumb.p

الآن سنكتب الأكواد للأزرار ..

في زر Clear أضف هذا الكود .ز

post-219398-036031100 1346128694_thumb.p

PictureBox1.Refresh()

وهو لكي يقوم بتحديث أداة الصور .. ويمسح كل شئ ..

وأما في زر Eraser .. كتبته خط في الصورة ..

post-219398-036378200 1346128841_thumb.p

فنكتب الكود التالي ..

BT = "Eraser"

أي سنقوم بوضع نوع الفرشاة ممحاة .. وسيتم ذكرهم لاحقاً .. كيفية الإستعمال ..

أما في حدث Form_load ..

فأكتب الكود التالي ..

BT = "Pencil"

وتم شرحه سابقاً .. والآن مع حدث .. SelectedIndexChanged .. الخاص بأداة الكومبو بوكس ComboBox ..

BT = ComboBox1.Text

وهو يعني أن نوع الفرشاة حسب النص الموجود في الأداة ..

والآن مع الحدث الاهم .. والذي سيجعلك ترسم .. وتطبق كما في الصورة هو حدث ..

MouseMove الخاص بأداة PictureBox ..

الآن كل ما علينا هو أن نقوم بعمل جملة شرطية إذا كان يمكننا الرسم فإفعل التالي إي إذا كان المتغير MO يساوي True ..

ومن ثم نقوم بعمل جمل شرطية .. كل جملة شرطية على حسب نوع الفرشاة BT ..

الآن سيصبح الكود مثل هذا ..

    Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
        If MO = True Then
            If BT = "Pencil" Then
            End If
            If BT = "Pen" Then
            End If
            If BT = "Brush" Then
            End If
            If BT = "Eraser" Then
            End If
        End If
    End Sub

والآن سنستعمل خاصية CreateGraphics للنقوم بالرسم ..

طريقة الإستعمال هي كالتالي ..

نقوم بوضع اسم الأداة التي نريد الرسم عليها وهي PictureBox1 .. ثم نضع نقطة ثم نكتب CreateGraphics .. ثم نقطة أيضاً ونختار من الخصائص

ونحن في هذا الدرس سنستعمل خاصيتين فقط هما FillEllipse و FillRectangle ..

FillRectangle سنستخدمها في نوع الفرشاة التي تكون إما قلم حبر أو ممحاة .. يمكنك التغيير كما تريد ..

FillEllipse سنستخدمها للقلم الرصاص أو الفرشاة ..

بعدما كتبنا إحدى الخاصيتين نقوم بفتح قوس .. أول فراغ نكتب فيه اللون الذي نريده ولكن يجب أولاً أن نختار Brushes ثم نكتب نقطة ثم نختار

اللون الذي نريده .. ثم نكتب فاصلة أي إنتقلنا للفراغ آخر .. نكتب e.X ونقصد هنا موضع الماوس على الأداة على إحداثي X وكذلك في الفراغ الثاني ولكن الفراغ

الثاني للإحداثي Y .. أي نقوم بإستبدال X ب Y ..

ثم نضع فاصلة أيضاً ونكتب حجم الفرشاة الفراغ الذي بعد الإحداثي Y هو للعرض أما الذي بعد العرض هو للطول .. وأنا أترك لك حرية القياسات ..

سيصبح كود إستعمال الخاصية هو كالتالي ..

PictureBox1.CreateGraphics.FillEllipse(Brushes.Blue, e.X, e.Y, 3, 3)

وأما كود الحدث MouseMove .. فسيكون كالتالي كاملاً والكامل الله ..

post-219398-017774400 1346130225_thumb.p

أتمنى أنك الآن تستطيع الرسم بحرية كما تشاء .. ألقاكم غداً إن شاء الله في موضوع جديد لكي نطور ..

هذا الرسام ليكون أفضل ..

(وقل رب زدني علما)

المرفقات
5.png6.png7.png9.png

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#4

شكرا أخي الكريم على الموضوع الرائع

بانتظار المزيد

#5
asn كتب:

شكرا أخي الكريم على الموضوع الرائع

بانتظار المزيد

شكراً أخي الكريم على المرور .. تقبل تحياتي وأتمنى المشاركة في ورشة العمل القادمة والتي ستكون تطوير هذا البرنامج ..

تقبل تحياتي :happy:

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

مواضيع مشابهة