التقييم : 3 نقاط : 360972 تاريخ التسجيل : 01/01/1970
| موضوع: مقال مترجم:برمجة الأدوات الخاصة>>>> الثلاثاء فبراير 19, 2013 2:19 pm | |
| يسعدني الإنضمام الى ها المنتدى الكبير وأعضائه الكبار،وأرجو قبولي معكم كعضو مشارك،ويسعدني تقديم أول موضوع لي،وهو ليس من كتابتي وانما مقال مترجم الى العربية. لنبدأ الموضوع:-
التقديم: هذا شرح بسيط وصغير لقابلية .Netframework لانشاء الأدوات الخاصة. هنا سوف أشرح كيفية انشاء أداة خاصة،ثم تجربتها في تطبيق من نوع Windows Application،وقد طبقت بعض الخصائص الخاصة بأداتي ،وبالتالي يمكنك تعلم كيفية فعل هذا عن طريق لغة C#.
بناء الأداة: 1-افتح الفيجوال ستوديو Visual Studio.Net ، وابدأ مشروع جديد من نوع Windows Control Library ، سم مشروعك ctlCuteButton ثم اضغط موافق Ok. 2-عندما يتم انشاء المشروع،احذف أداة الUserControl1 من المشروع،لقد حذفناها لأنها ليست الأداة التي نحتاجها. 3-الآن اذهب الى Project>>Add User Control وحدد الأداة الخاصة Custom Control من المربع الحواري،الأداة الخاصة Custom Control هي التي نحتاجها في حالتنا هذه،سم الأداة الجديدة cuteButton واضغط موافق Ok ،الأداة الجديدة قد أُضيفت الى المشروع. 4-أولاً لا بد من تغيير الفئة الأساسية ل cuteButton. بدل السطر التالي:
الرمز:كود: public class cuteButton : System.Windows.Forms.Control
بالسطر التالي
الرمز:كود: public class cuteButton : System.Windows.Forms.Buttonالآن أصبحت الأداة مشتقة من الفئة Button.
5-الآن دعنا ننشئ بعض الخصائص الخاصة بأداتنا،وهذا يتم بادراج الكود التالي في الفئة cuteButton.
الرمز:كود: private Color m_color1 = Color.LightGreen; //first color private Color m_color2 = Color.DarkBlue; // second color private int m_color1Transparent = 64; // transparency degree // (applies to the 1st color) private int m_color2Transparent = 64; // transparency degree // (applies to the 2nd color)
public Color cuteColor1 { get { return m_color1; } set { m_color1 = value; Invalidate(); } }
public Color cuteColor2 { get { return m_color2; } set { m_color2 = value; Invalidate(); } }
public int cuteTransparent1 { get { return m_color1Transparent; } set { m_color1Transparent = value; Invalidate(); } }
public int cuteTransparent2 { get { return m_color2Transparent; } set { m_color2Transparent = value; Invalidate(); } }6-آخر خطوة قبل ترجمة الأداة الجديدة هي اعادة القيد للحدث Paint الخاص بالأداة،هيا لنفعل ذلك.
كود: // Calling the base class OnPaint base.OnPaint(pe); // Create two semi-transparent colors Color c1 = Color.FromArgb(m_color1Transparent , m_color1); Color c2 = Color.FromArgb(m_color2Transparent , m_color2); Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(Clien tRectangle, c1, c2, 10); pe.Graphics.FillRectangle (b, ClientRectangle);
b.Dispose();7-الآن ربما تترجم الأداة بالضغط على Ctrl+Shift+B . وأخيراً هذا هو الكود الكامل لملف cuteButton.cs.
الرمز:كود: using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms;
namespace ctlCuteButton { /// /// Summary description for cuteButton. ///
public class cuteButton : System.Windows.Forms.Button { private Color m_color1 = Color.LightGreen; // first color private Color m_color2 = Color.DarkBlue; // second color private int m_color1Transparent = 64; // transparency degree // (applies to the 1st color) private int m_color2Transparent = 64; // transparency degree // (applies to the 2nd color)
public Color cuteColor1 { get { return m_color1; } set { m_color1 = value; Invalidate(); } }
public Color cuteColor2 { get { return m_color2; } set { m_color2 = value; Invalidate(); } }
public int cuteTransparent1 { get { return m_color1Transparent; } set { m_color1Transparent = value; Invalidate(); } }
public int cuteTransparent2 { get { return m_color2Transparent; } set { m_color2Transparent = value; Invalidate(); } }
public cuteButton() { }
protected override void OnPaint(PaintEventArgs pe) { // Calling the base class OnPaint base.OnPaint(pe); // Create two semi-transparent colors Color c1 = Color.FromArgb (m_color1Transparent , m_color1); Color c2 = Color.FromArgb (m_color2Transparent , m_color2); Brush b = new System.Drawing.Drawing2D.LinearGradientBrush (ClientRectangle, c1, c2, 10); pe.Graphics.FillRectangle (b, ClientRectangle); b.Dispose(); }
} }تجربة الأداة:1-افتح الفيجوال ستوديو دوت نت،وابدأ مشروع جديد من النوع Windows Application. 2-من المشروع الجديد يمكننا اضافة أداتنا المُترجمة الى صندوق الأدوات،وذلك عن طريق الضغط بالزر الأيمن للفأرة واختيار Customize Toolbox ، ومن تبويب .NETFramework Components،اضغط Browse وحدد مكتبة الDLL الخاصة بأداتنا وهي في هذه الحالة cuteButton.DLL،تم اضافة الأداة الى صندوق الأدوات،وهي الآن تظهر بداخله.
يمكنك تغيير خصائص الأداة التي أضفناها كما يحلو لك.
وهذا كل شئ اليوم،والآن يمكنك التعمق في بناء الأدوات الخاصة بك.
حظاً سعيداً...
رابط الملف المصدري للأداة http://www.codeproject.com/KB/miscct...Button_src.zip
بارط المكتبة بعد الترجمة http://www.codeproject.com/KB/miscct...Button_bin.zip | |
|