الدرس 15- البداية مع gdi+ - RaggiTech - 18-10-12
كاتب الموضوع : 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 تعبئة مسار .......
الدرس 15- البداية مع gdi+ - RaggiTech - 18-10-12
أمثلة...
المثال رقم 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+ بعد بل ما زالت طويلة تجدها في المستوى المتقدم إن شاء الله...
إلى اللقاء في الدرس القادم إن شاء الله....
|