اخواني في منتدى الفجوال بيسك السلام عليكم
اود ان اتطرق الى موضوع الرسم في الفورم في لغة الفيجوال بيسك
و ارجو ان ينال رضاكم و ارجو المشاركة من الاخوة المختصين
اولا من الصيغ الاساسية للتعامل مع الالوان الدالتين
pset( , )
point( , )
و هما عكس بعضهما
فالدالة الاولى تقوم بارسال لون لنقطة محددة مثلا
pset(100,100)
ترسل الي النقطة ذات الاحداثيات (100و100) لونا =لون الخط في الفورم
form1.forecolor
والوضع الطبيعي هو اللون الاسود ما لم يغيره المستخدم
بالنسبة للاحداثيات في الشاشة :
تعتبر النقطة اعلى يسار الشاشة هي النقطة (0و0)والتدرج يذداد كلما اتجهنا يمينا او الى اسفل
اي ان المحور الراسى معكوس من ما معتاد لنا في الرسم البياني
نعود الان الى الالوان ونفرض اننا نريد ان نضع نقطة بيضاء في النقطة (50و150) فيصبح الكود
pset(50,150),vbwhite
ستلاحظ ان النقطة صغيرة جدا و يمك التحكم في حجم النقطة عن طريق
form1.drawwidth=7
و وضع اي رقم بدلا 7 التي في المثال
بالنسبة للالوان توجد عدة طرق لكتابتها ..اشهرها
vbcolor
مثل
vbwhite,vbred , vbblack
و غيرها من الالوان و لكن في بعض الاحيان تحتاج لدرجة لون محددة و هنا نستعمل
rgb( , , )
و هي الحروف الاولى للالوان احمر اخضر و ازرق
فنضع في البارميتر درجة كل لون من الالوان الثلاث ( وهي الالوان الاساسية ) لنحصل على درجة اللون المطلوب
مع ملاحظة ان درجة اللون تتدرج من 0 الى 255
الصيغة point
تقوم بالعملية العكسية فباختيار اي نقطة تقوم هذه الدالة بارجاع درجة لونها
لنجرب الان هذا المثال
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) form1.drawwidth=7 pset(x,y),rgb(100,100,100) end sub
سيقوم البرنامج برسم خطوط متقطعة اقرب الى نقاط متقطعة مع حركة الماوس
لمعالجة التقاطعات نستعمل دالة اخرى و هى
line(,)-(,)
وباعطاء احداثيات نقطتين يتم رسم خط بينهما مثلا
مع اضافة
text1 and text2 to the form
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Form1.ForeColor = vbRed Line (X, Y)-(Val(Text1.Text), Val(Text2.Text)) Text1.Text = X Text2.Text = Y End Sub
وللحديث بقية نواصلها قريبا إن شاء الله:)

