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

كيفية الرسم في فيجوال بيسك نت

مغلق
بدأه أبوعزام في 14 أبريل 2007 · 6 رد · 4,070 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني العضاء الاعزاء سوف نتكلم في هذا الدرس عن الرسم في فيجوال بيسك 2005 وماهو الفرق الجوهري بينه وبين فيجوال بيسك 6 في الرسم

أولا الرسم في فيجوال يسك 2005 يختلف اختلافاً كبيرا عنه في سابقه فيجوال بيسك 6 حيث كان في فيجوال بيسك 6 وخاصة في كل أداة او كائن طرق وخصائص مختصة بالرسم،فنجد مثلا في كائن النموذج الحبيب Form الطريقة مثلا Line والمعروفة برسم الخطوط وكذلك الاداة Circle والمعروف من اسمها أنها مخصصة لرسم الدوائر ولكن في فيجوال بيسك 2005 فالاختلاف كبير حيث لايوجد في أي أداة هذه الطرق،وليس معنى ذلك أنه لايوجد في فيجوال بيسك 2005 امكانية الرسم أقولكم وبكل سراحة امكانية الرسم في فيجوال بيسك 2005 هائلة جدا حيث أنه يعتمد في فيجوال بيسك 2005 في الرسم على سياق الجهاز وأقصد بسياق الجهاز وهو كما يسمونه في الرسم بلوحة او ورقة الرسم وورقة الرسم في فيجوال بيسك 2005 هي الادوات أو الكائنات المختصة بالرسم.

طيب أين هذا السياق يا ابوعزام ومااسمه وكيف نصل إليه :unsure: ؟

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

ماذا تقصد بذلك يا أبوعزام أن الطباعة من الرسم :blink: وكيف ذلك ارجوا التوضيح ؟

حسنا سوف أوضح مع ان الموضوع ليس موضوع الطباعة ولكن أريد أن أخبرك أن الطباعة في فيجوال بيسك 6 وخاصة كائن الطباعة المشهور printer والامر المسكين EndDoc قد انتهى واختفى الله المستعان على الأقل لو يتركون هذا الامر حتى يذكرنا بالقديم كما يقول المثل "قديمك نديمك" ولكنهم يأخذون بالمثل القائل"اللي فات مات" ههههههههه فتحنا الباب للأمثال :P المهم أن هذا الكائن ليس له وجود ولكن وجد بدلا منه الفئة PrinterDocument وهي متعلقة تعلق كبير بالسياق الرسم ربما تقول لي كيف ذلك وضح أكثر فأقول لك معتذراً أن الدرس مختص بالرسم بشكل عام وليس بالطباعة وربما سوف احاول بإذن الله وضع درس مختص بالطباعة .

لاأريد أن أطول عليكم ولكني سوف أبدأ الان بتعليمك طريقة التعامل مع سياق الرسم (Graphics) .

أولا توجد طريقتين للتعامل مع سياق الرسم :

طبعاً سياق الرسم هذا عبارة عن فئة بالاسم نفسه أي graphics ولايمكنك إنشاء نسخة منها بالعبارة new لذلك يجب أن تسند لها السياق المطلوب.

الطريقة الاولى :عن طريق اسناد سياق الرسم الخاص بالكائن أو الفئة القابلة للرسم

dim Grp as graphics=e.Graphics

يجب أن تعلموا لاتستعمل إلا داخل الاحداث والدليل على ذلك الحرف e ربما تقول لي ما معنى الحرف e ومادخله بالحدث سوف أقول لك أن في كل حدث يوجد وسيطين كماهو معروف الوسيط Sender والوسيط e ولن أشرح معناه لأن درسنا كما قلت مختص بالرسم وليس بالاحداث .

المهم باختصار شديد الوسيط e هو عبارة عن وسيط الكائن القابل للرسم وللتوضيح سوف اضع لكم مثال يوضح ذلك

الان افتح مشروع جديد في فيجوال بيسك وادخل على الكود واختار من نافذة الاحداث الخاصة بالنموذج الحدث Paint (بعض المبرمجين يقولون أنه أي كائن لايوجد به الحدث paint أي انه ليس قابل للرسم فأقول له ليست كل الكائنات تستقبل الحدث paint فكائن الطباعة printerDocumnet لايوجد به حدثا بالاسم paint ولكن يمكن أن نقول أي حدث مختص بالرسم كالحدث paint والحدث Print في كائن الطباعة)

الان بعد اختيارك للحدث ستجد من ضمن وسائط الحدث الوسيط e ونوع الوسيط هو eventargs أو ما يطابقه وهذا الوسيط هو الواسطة بين الرسم وسياق الجهاز وإذا قلت لي كيف ذلك اقول لك سوف يتوضح لك كل شيء وقته .

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

الطريقة الثانية :وهي انشاء كائن رسم جديد عن طريق الطريقة CreateGraphic الخاصة بكائن النموذج او الادوات مثال

dim Grp as Graphics=form1.CreateGraphics

ولكن هذه الطريقة تستهلك أكثر من موارد النظام ويجب عليك قتل الكائن باسناد الكلمة nothing وكذلك طريقة المسح Dispose

Grp=Nothing 
Drp,Dispose

ولذلك أكثر المبرمجين يعتمدون على الطريقة الاولى أكثر .

الان تعلمنا كيفية التعامل مع سياق الجهاز أي أن ورقة الرسم جاهزة ولم يبقى إلا أدوات الرسم

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

أولا /الطريقة DrawLine مثلها مثل الطريقة Line في فيجوال بيسك 6 ولكن تحتاج فقط إلى لون القلم وشكرا لفيجوال بيسك حيث قدم لنا مجموعة كبيرة من الالوان وذلك في أول وسيط للطريقة (أي عندما تفتح القوس )والوسائط الباقية الاربعة بالترتيب y2,x2,y1,x1 هي المحاور السينية والصادية و

لنجرب لذلك معا الان في نفس المشرع الذي فتحته وفي نفس اجراء الحدث paint الخاص بالنموذج اكتب التالي

dim Grp as Graphics=e.Graphics
Grp.DrawLine(Pens.Black,0,0,200,200)

الطريقة الثانية :طريقة رسم المستطيلات DrawRectangle

وهذه الطريقة تستخدم لرسم مستطيلات ووسيطات هذه الطريقة نفس وسيطات الطريقة السابقة ولكن الوسائط الاخيرة هي المحور السيني(X) والمحور الصادي(Y) والعرض والارتفاع .

يمكننا ان نوضح لكم أن المحور الصادي يشبه لحد كبير الخاصية Top في فيجوال بيسك 6 والمحور السيني يشبه الخاصية left لذلك يمكن أن نقول أن المحور السيني يزيد كلما اتجهنا لليمين وينقص كلما اتجهنا لليسار والمحور الصادي يزيد كلما اتجهنا للاسفل وينقص كلما اتجهنا للاعلى والنقطة العائمة (0،0) هي في الركن العلوي الايسر لسياق الجهاز أي للكائن .

حسنا لنجرب رسم مستطيل اضف هذا السطر للاسطر السابقة

Grp.DrawRectangle(pens.red,0,0,200,200)

طبعا لعلمك أن الطريقة رسم المستطيل تم اعادة تعريفها ثلاث مرات يمكنك ان تختصر الطريق وتقوم برسم نفس المستطيل ولكن مع جعل الوسيط الثاني معرف جديد من الفئة rectangle وتضع نفس الوسائط داخل هذه الفئة أي هكذا

Grp.DrawRectangle(pens.Green,new rectangle(0,0,200,200))

الطريقة الثالثة/هي طريقة كتابة النصوص أي بمعنى آخر طباعة النصوص أو رسم النصوص وهي الطريقة DrawString وهذه الطريقة تطلب معرف جديد من النوع font لاتخاف سوف اوضح لك طريقة سهلة لرسم النصوص ،بالنسبة للوسيط الاول هو وسيط النص المراد طباعته والثاني هو وسيط الخط من الفئة font والثالث وسيط لون الفرشاة وهو لون وسيط لون القلم المستخدم في رسم الخطوط والمستطيلات والفرق بينهما ان الفرشاة كماهو معروف تستخدم للتلون وكتابة النصوص والقلم لرسم الخطوط والدوائر وغيرها والوسيطين الاخرين يحددان مكان رسم النص على الجهاز وهما الوسيطان x,y .

لتجربة ذلك اضف هذا السطر للاسطر السابقة أو احذف ماعدا السطر الاول واضف هذا السطر

grp.drawstring("منتديات الفريق العربي للبرمجة",new font("Andalus",20),100,100)

طبعا لعلمك يمكنك ان شاء نسخة من الفئة font في بداية الصفحة وإضافة ماتريد من الخصائص للفئة وضبط النص وبعد ذلك الحاق متغير الفئة الذي انشأته مكان السطر

new font("Andalus",20)

طبعا هذا مااستطعت أن أضيفه هنا وشكرا.

نسيت أن أخبركم كتلميحة خفيفة يمكنكم وضع هذا الكود كله في مكان الحدث الخاص بالكائن printDocument وهو الحدث printpage ثم وضع نفس الكود لاتزيد عليه ولاتنقص وستجد ان الطباعة بدأت تعمل لديك وسوف يتم طباعة المخرجات على الطابعة بدلا من النموذج (طبعاَ هذا إن وجد طابعة في الجهاز <_<

تم تعديل هذه المشاركة بواسطة أبوعزام في 14 أبريل 2007 في 22:19

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#2

بارك الله فيك فعلا من المواضيع المميزه والمهمه الزي يحتاجه الكثير من الاعضاء

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#3
اقتباس
طبعاَ هذا إن وجد طابعة في الجهاز <_<

ههههه فكرتني والله عايز واحده , جزاك الله خيرا ع الدرس ,,,

#4

جزاك الله خير يا ابوعزام

الله يرضى عليك

#5

بارك الله فيك أخي

#6

حياكم الله اخواني الاعضاء فهذا واجبي

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…