تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس 15- البداية مع gdi+
#1
كاتب الموضوع : Tarek Aldwire

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

ماهي ال GDI+ ...

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

أولا : مبادئ في ال GDI+ :
أولا إنشئ مشروع جديد Windows Forms Application ثم ضع على الفورم Button واكتب في الحدث Click الخاص به ما يلي:


كود :
[COLOR=#000000][COLOR=#0000bb]
Graphics myg [/COLOR][color=#007700]= [/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]CreateGraphics[/color][COLOR=#007700]();
[/COLOR][color=#0000bb]Pen myp [/color][color=#007700]= new [/color][color=#0000bb]Pen[/color][color=#007700]([/color][color=#0000bb]Brushes[/color][color=#007700].[/color][color=#0000bb]Red[/color][color=#007700], [/color][color=#0000bb]2[/color][COLOR=#007700]);
[/COLOR][color=#0000bb]myg[/color][color=#007700].[/color][color=#0000bb]DrawLine[/color][color=#007700]([/color][color=#0000bb]myp[/color][color=#007700], [/color][color=#0000bb]0[/color][color=#007700], [/color][color=#0000bb]0[/color][color=#007700],[/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]Width[/color][color=#007700],[/color][color=#0000bb]this[/color][color=#007700].[/color][color=#0000bb]Height[/color][COLOR=#007700]);
[/COLOR][color=#0000bb]myg[/color][color=#007700].[/color][color=#0000bb]Dispose[/color][COLOR=#007700]();  
[/COLOR][color=#0000bb][/color][/COLOR]

جرب الكود ولاحظ...
سوف يرسم خط أحمر من الزاوية العليا اليسرى للفورم إلى الزاوية السفلى اليمنى...
ما الذي حصل؟
أولا:
عندما قمنا بتعريف ال Graphics المراد إستخدامه قمنا بذلك كما هو موضح بالشكل وبما أننا نرسم خارج الحدث Paint فإنه يجب عليك إستخدام هذه الطريقة...
ثانيا:
عندما عرفنا ال Pen قمنا بتحديد اللون كأحمر والعرض كـ 2 pixel ...
ثالثا:
قمنا برسم الخط عن طريق المتغير myg الذي عرفناه كـ Graphics عن طريق الأمر DrawLine
يتم إستخدام هذا الأمر كما هو واضح:

كود :
[color=#000000][COLOR=#0000bb]DrawLine[/color][color=#007700]([/color][color=#0000bb]FirstX[/color][color=#007700],[/color][color=#0000bb]FirstY[/color][color=#007700],[/color][color=#0000bb]SecX[/color][color=#007700],[/color][color=#0000bb]SecY[/color][COLOR=#007700]);  
[/COLOR][color=#0000bb][/color][/COLOR]

وعلى هذا النمط أو عن طريق متغير من نوع Point ...

----- الأوامر الموجودة في المتغير myg -----

-DrawLine تم شرحه
-DrawArc لرسم صورة أو شكل هندسي
- DrawCurve رسم منحنى
- DrawBeziers أيضا لرسم المنحنيات..
- DrawEllipse لرسم الأشكال البيضوية..
- DrawIcon لرسم الأيقونات
- DrawLines رسم مجموعة من الخطوط
- DrawPie رسم مخطط بياني
- DrawString رسم نص
- DrawPath رسم مسار (( متغير من نوع GraphicPath ))
- DrawRectangle لرسم مستطيل
- DrawRectangles لرسم مجموعة من المستطيلات
- FillPie تعبئة مخطط بياني بلون ما..
- FillRectangle تعبئة مستطيل بلون ما
- FillPolygon تعبئة شكل بيضوي........
- FillPath تعبئة مسار .......
}}}}
تم الشكر بواسطة:
#2
أمثلة...


المثال رقم 1 : رسم إطار منقط..

كود :
[COLOR=#0000BB]Graphics myg [/color][color=#007700]= [/color][color=#0000BB]this[/color][color=#007700].[/color][color=#0000BB]CreateGraphics[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]Pen myp [/color][color=#007700]= new [/color][color=#0000BB]Pen[/color][color=#007700]([/color][color=#0000BB]Brushes[/color][color=#007700].[/color][color=#0000BB]Red[/color][color=#007700], [/color][color=#0000BB]2[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]myp[/color][color=#007700].[/color][color=#0000BB]DashStyle [/color][color=#007700]= [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Drawing[/color][color=#007700].[/color][color=#0000BB]Drawing2D[/color][color=#007700].[/color][color=#0000BB]DashStyle[/color][color=#007700].[/color][color=#0000BB]DashDotDot[/color][COLOR=#007700];
[/COLOR][color=#0000BB]myg[/color][color=#007700].[/color][color=#0000BB]DrawRectangle[/color][color=#007700]([/color][color=#0000BB]myp[/color][color=#007700], [/color][color=#0000BB]5[/color][color=#007700], [/color][color=#0000BB]5[/color][color=#007700], [/color][color=#0000BB]100[/color][color=#007700], [/color][color=#0000BB]100[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]myg[/color][color=#007700].[/color][color=#0000BB]Dispose[/color][COLOR=#007700]();


[/COLOR]
المثال رقم 2: رسم مثلث...


كود :
[COLOR=#0000BB]Graphics myg [/color][color=#007700]= [/color][color=#0000BB]this[/color][color=#007700].[/color][color=#0000BB]CreateGraphics[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]Pen myp [/color][color=#007700]= new [/color][color=#0000BB]Pen[/color][color=#007700]([/color][color=#0000BB]Brushes[/color][color=#007700].[/color][color=#0000BB]Red[/color][color=#007700], [/color][color=#0000BB]2[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Drawing[/color][color=#007700].[/color][color=#0000BB]Drawing2D[/color][color=#007700].[/color][color=#0000BB]GraphicsPath mypath [/color][color=#007700]= new [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Drawing[/color][color=#007700].[/color][color=#0000BB]Drawing2D[/color][color=#007700].[/color][color=#0000BB]GraphicsPath[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]mypath[/color][color=#007700].[/color][color=#0000BB]AddLine[/color][color=#007700](new [/color][color=#0000BB]Point[/color][color=#007700]([/color][color=#0000BB]10[/color][color=#007700],[/color][color=#0000BB]10[/color][color=#007700]),new [/color][color=#0000BB]Point[/color][color=#007700]([/color][color=#0000BB]50[/color][color=#007700],[/color][color=#0000BB]50[/color][COLOR=#007700]));
[/COLOR][color=#0000BB]mypath[/color][color=#007700].[/color][color=#0000BB]AddLine[/color][color=#007700](new [/color][color=#0000BB]Point[/color][color=#007700]([/color][color=#0000BB]50[/color][color=#007700],[/color][color=#0000BB]50[/color][color=#007700]),new [/color][color=#0000BB]Point[/color][color=#007700]([/color][color=#0000BB]10[/color][color=#007700],[/color][color=#0000BB]50[/color][COLOR=#007700]));
[/COLOR][color=#0000BB]mypath[/color][color=#007700].[/color][color=#0000BB]AddLine[/color][color=#007700](new [/color][color=#0000BB]Point[/color][color=#007700]([/color][color=#0000BB]10[/color][color=#007700],[/color][color=#0000BB]50[/color][color=#007700]),new [/color][color=#0000BB]Point[/color][color=#007700]([/color][color=#0000BB]10[/color][color=#007700],[/color][color=#0000BB]10[/color][COLOR=#007700]));
[/COLOR][color=#0000BB]myg[/color][color=#007700].[/color][color=#0000BB]DrawPath[/color][color=#007700]([/color][color=#0000BB]myp[/color][color=#007700], [/color][color=#0000BB]mypath[/color][COLOR=#007700]);
[/COLOR][color=#0000BB]myg[/color][color=#007700].[/color][color=#0000BB]Dispose[/color][COLOR=#007700]();


[/COLOR]

المثال رقم 3: تعبئة مستطيل...





كود :
[color=#0000BB]Graphics myg [/color][color=#007700]= [/color][color=#0000BB]this[/color][color=#007700].[/color][color=#0000BB]CreateGraphics[/color][COLOR=#007700]();
[/COLOR][color=#0000BB]myg[/color][color=#007700].[/color][color=#0000BB]FillRectangle[/color][color=#007700]([/color][color=#0000BB]Brushes[/color][color=#007700].[/color][color=#0000BB]Gray[/color][color=#007700], new [/color][color=#0000BB]Rectangle[/color][color=#007700]([/color][color=#0000BB]50[/color][color=#007700], [/color][color=#0000BB]50[/color][color=#007700], [/color][color=#0000BB]400[/color][color=#007700], [/color][color=#0000BB]400[/color][COLOR=#007700]));
[/COLOR][color=#0000BB]myg[/color][color=#007700].[/color][color=#0000BB]Dispose[/color][COLOR=#007700]();


[/COLOR]

لم تنتهي رحلتنا مع ال GDI+ بعد بل ما زالت طويلة تجدها في المستوى المتقدم إن شاء الله...


إلى اللقاء في الدرس القادم إن شاء الله....
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس 22- دوال sql server RaggiTech 0 1,044 18-10-12, 04:11 PM
آخر رد: RaggiTech
  الدرس 21- Stored Procedures RaggiTech 0 923 18-10-12, 04:09 PM
آخر رد: RaggiTech
  الدرس 20- تنفيذ جمل الإستعلام insert-update-delete RaggiTech 2 963 18-10-12, 04:08 PM
آخر رد: RaggiTech
  الدرس 19- ربط قاعدة بيانات accessمع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل RaggiTech 0 1,315 18-10-12, 03:41 PM
آخر رد: RaggiTech
  الدرس 18- ربط قاعدة بيانات sql مع c#-vb.net وتنفيذ جمل إستعلام - الوضع المتصل RaggiTech 0 2,464 18-10-12, 03:29 PM
آخر رد: RaggiTech
  الدرس 17- مقدمة إلى قواعد البيانات RaggiTech 0 732 18-10-12, 03:21 PM
آخر رد: RaggiTech
  الدرس 16- تصميم الأدوات الخاصة RaggiTech 0 699 18-10-12, 03:20 PM
آخر رد: RaggiTech
  الدرس 14- شرح تقنية ال wpf مع بعض الأمثلة RaggiTech 4 1,093 18-10-12, 03:12 PM
آخر رد: RaggiTech
  الدرس 13- Multi-Threading RaggiTech 0 769 18-10-12, 03:03 PM
آخر رد: RaggiTech
  الدرس 12- شرح تقنية WCF والتخصص بال Sockets مع مثال RaggiTech 0 2,425 18-10-12, 02:57 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم