الفصل(3): التركيبات أنواعها واستخداماتها - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم دورات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=187) +--- الموضوع : الفصل(3): التركيبات أنواعها واستخداماتها (/showthread.php?tid=127) |
الفصل(3): التركيبات أنواعها واستخداماتها - Omar Mekkawy - 16-09-13 إقتباس :هذا الدرس منقول من المنتدى القديم طبقاً لموافقة صاحب الموضوع السلام عليكم ورحمة الله وبركاته
بسم الله الرحمن الرحيم درسنا اليوم دسم بعض الشيء ويحتاج لشيء من التركيز.
بداية علينا أن نتيقن أن الأنواع في فيجوال بسيك دوت نت لا تقتصر على ما قد طور مع اللغة مثل short int16 int32 single short integer string date point .......إلخ فربما احتاج أنواع جديدة من المتغيرات والثوابت التي لا تتواجد في فيجوال بيسك دوت نت....لا مشكلة.....اصنعها بنفسك! سيحتوي الدرس باذن الله على التالي:
بالنسبة للتركيبات من نوع Enums فهي تستخدم لتعريف أنواع جديدة من التركيبات على وجه الحصر أو التعميم ....كيف ذلك؟؟! كما نعرف في السنة 12 شهرًا وبما ان عددها ثابت فيمكننا اختصار جهد تكرارها في الشيفرة كالتالي: كود : Enum Month لكن ما الذي حدث وما استفيد؟؟
انظر أخي الكريم: لقد قمنا بصنع تركيبة جديدة واسميناها بالشهر ووضعنا كل شهر داخل التركيبة كجزء منها.... وماذا بعد...؟ الآن علينا معرفة بعض الأمور: .عند الاستعلام عن عنصر من عناصر الEnum فاننا نستعلم بالشكل التالي: كود : TextBox1.Text = Month.Jan وبما أن الثابت Month.Jan لم يتم اسناد قيمة له فسيتم اسناد القيمة الافتراشية له وهي صفر ..لماذا؟
العنصر الأول من عناصر تركيبة الEnum تبدأ من الصفر والعنصر الثاني يساوي السابق+1 والثالث يساوي السابق+1 وهكذا إلى أن نصل إلى العنصر Month.Dec فسنراه يحمل القيمة 11 ولك التجربة .يمكن اسناد قيم وقت صنع التركيبة كالتالي: كود : Enum Month كود : TextBox1.Text = Month.Mar وكما نرى فان العنصر Month.Mar يحمل القيمة 23 والعنصر التالي سيحمل القيمة السابقة + 1 حسب ما ذكرنا في الأعلى .
كود : TextBox1.Text = Month.Apr اذن يمكن استخدام الEnum في استخدامات الثوابت والتي يمكنك مراجعتها من الموضوع التالي: الفصل(2):الثوابت والمتغيرات وخصائصها....نظرة مفصلة ملاحظة : جميع قيم الEnum في المثالين السابقة من النوع Integer كما يمكن تغيير نوعها لLong او Short او ما الى ذلك(أقصد المتغيرات العددية الصحيحة) مثال: كود : Enum Month As Long والآن دعونا نتطرق قليلا الى موضوع مرتبط بالمتغيرات والثوابت ألا وهو محدودية المتغيرات والثوابت (بمعني آخر أين يمكنني استخدامها) .... يمكنك تحديد محدودية الEnum كالتالي:
عندما تريد الEnum عامة ومستخدمة من جميع وحدات المشروع عليك سبقها ب Public أو بلا شيء مثال: كود : Public Enum Month As Long أو
كود : Enum Month As Long وإن كنت حصرها داخل الوحدة البرمجية المعلنة بها فعليك سبقها ب Private
مثال: كود : Private Enum Month As Long ملاحظة أخيرة: علينا وضع التركيبة خارج أي حدث لان ذلك سوف يحدث خطأ برمجي:
مثال: كود : Public Class Form1 كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ___________________________________
ثانيا: التركيبات من نوع Structureيعرف هذا النوع من التركيبات بالانواع المعرفة من قبل المستخدم(User Defined Type-UDT) ويمكن دمج العديد من المتغيرات والتركيبات داخل التركيبة الأم باستخدام الكلمة المحجوزة Structure نعرف انه لدينا متغيرات من النوع String و Integer وDate وما الى ذلك. لكن هل يمكنني صياغة متغير بالكيفية التي اريدها....لم لا؟ هذا النوع من المتغيرات يسمى Structure والتي دعمت ببيئة الدوت نت اكثر من ذي قبل الآن نريد صنع متغير من نوع سيارة اي صنع خاص لا يعرفه فيجوال بيسك دوت نت...لكن قبل ذلك علينا تحديد العناصر التي تدخل في مكونات السيارة وهي الاسم والموديل والسعر والسعة وتاريخ الصناعة وتاريخ التصدير..... وما الى ذلك مثال: كود : Structure Car مثال: كود : Dim NewCar As Car والناتج من هذه العملية:
لعلك لاحظت شيئا: عندما قمنا بربط المعطيات داخل الرسالة فان الجزء NewCar.Cost الحقناه بالدالة .ToString ......ما وظيفتها...؟!
عندما قمنا بربط نصوص في محتوى الرسالة رأينا أن هناك معطى يلزم ربطه لكنه خارج عن الجماعة(جماعة النصوص) ولكي يتم التلاءم قمنا بتطبيق الدالة ToString عليه والتي تقوم بتحويل المعطى من قيمة عددية الي نصية ليتم الربط بسلام (يمكن تشبيهها بالدالة Str()) في لغة الفيجوال بيسك 6 الآن دعونا نتعمق أكثر يمكن للتركيبة من Structure أن تحتوي على تراكيب داخلية الأمر الذي يطلق عليه تراكيب متداخلة Nested Structures كيف ذلك ولماذا..؟ الآن دعنا نرجع قليلا الى السيارة ...نريد ألحاق مكون آخر للسيارة وهو تاريخ الانتاج وتاريخ التصدير..هل يتوجب علينا جعل كل مكون منفصلا عن الآخر؟ ليس تماما .. كما نعلم فان كلا المكونين من النوع Date والذي يمكن اجماله بالشكل التالي: كود : Structure Car الآن قمنا بادخال تركيبة التواريخ داخل تركيبة مكونات السيارة والذي يمكن استخدامه بالصورة التالية: كود : Dim NewCar As Car والناتج:
كما يمكننا تضمين أحداث داخل التركيبة والتي ساوجزها وساخصص للاحداث فصل كامل ان شاء الله
مثال بسيط: كود :
ويستخدم كالتالي:
كود : NewCar.CloseForm(Me) [align=right] الذي حصل اننا صنعنا حدث أو اجراء يقوم باغلاق النموذج الذي تم تمريره وهنا مررنا للاجراء النموذج Me وهو النموذج قيد التطوير بهذا نكون قد انهينا درسنا لهذا اليوم ان شاء الله بانتظار القادم باذن الله Lo2i و Mohammed Asaad RE: الفصل(3): التركيبات أنواعها واستخداماتها - Abu Ehab - 16-09-13 ممتـــــاز عمر ... هذا درس مفيد . RE: الفصل(3): التركيبات أنواعها واستخداماتها - Omar Mekkawy - 16-09-13 (16-09-13, 04:03 PM)Abu Ehab كتب : ممتـــــاز عمر ... هذا درس مفيد . الله يعطيك العافية أخوي
أكثر شىء يجنني أن الدروس هذه أنا نقلتها فقط وليست من كتابتي والكل يشكرني يجب ان نشكر أصحاب هذه المواضيع لأنهم سمحوا لي بنقلها RE: الفصل(3): التركيبات أنواعها واستخداماتها - mohammed moh - 16-09-13 و الله روعة الدروس أخي عمر
كل الكتب التي قرأتها و لم تتوضح عندي بعض المفاهيم مثل ما توضحت هنا
و صدق من قال تجد في النهر ما لا تجده في البحر
على العموم شكرا جزيلا لك و لأصحاب الدرس
و ربي يجازيكم جميعا
RE: الفصل(3): التركيبات أنواعها واستخداماتها - sooriaty03 - 18-09-13 (16-09-13, 04:17 PM)Omar Mekkawy كتب :(16-09-13, 04:03 PM)Abu Ehab كتب : ممتـــــاز عمر ... هذا درس مفيد . السلام عليكم ورحمة الله وبركاته جزاكم الله خيرا وجعله في موازين حسناتكم أخي عمر لا تنسى أن الناقل للعلم له أجر أيضا ... وفقكم الله لكل خير RE: الفصل(3): التركيبات أنواعها واستخداماتها - دمعة المقهور - 25-11-13 رووووووووعة يا عمر دروووووووووس دسمة بالفعل ...... استمر منتظرين درووووسك الجديدة RE: الفصل(3): التركيبات أنواعها واستخداماتها - Omar Mekkawy - 27-11-13 (25-11-13, 12:44 AM)دمعة المقهور كتب : رووووووووعة يا عمر دروووووووووس دسمة بالفعل ...... أخي أنا لست منشىء الدروس ( أنا نقلتها فقط )
إن شاء الله راح اضع المزيد بعدما يفرغ وقتي قليلاً RE: الفصل(3): التركيبات أنواعها واستخداماتها - hoob computer - 01-12-13 ما شاء الله و لا حول و لا قوة إلا بالله ... موضوع جميل جداً, جزاكم الله خيراً أنت و صاحب الموضوع الاصلي تحياتي RE: الفصل(3): التركيبات أنواعها واستخداماتها - Omar Mekkawy - 06-12-13 (01-12-13, 11:31 AM)hoob computer كتب : ما شاء الله و لا حول و لا قوة إلا بالله ... الله يخليك أخوي كله من زوقك
RE: الفصل(3): التركيبات أنواعها واستخداماتها - ابو إياد - 17-11-16 الله يجزاك خير مجهود ولو بالنقل وشكر خاص لكاتب الموضوع وجزاه الله خيرا |