السبت، 20 يوليو 2013

دوت نت الدرس(11):مدخل الى الفئات..الجزء الثاني


دوت نت
الدرس(11):مدخل الى الفئات..الجزء الثاني
السلام عليكم ورحمة الله وبركاته
 بسم الله الرحمن الرحيم
في هذا الدرس نكمل ما قد من حيث انتهينا في الفصل السابق:
الدرس(10):مدخل الى الفئاتClasses - الجزء الأول

 وقد ذكرنا أن الفئات تحتوي أربعة أجزاء وهي:

الحقول(Fields)
الطرق(Methods)
الخصائص(properties)
الأحداث(Events)

وتحدثنا عن الحقول والطرق واليوم ان شاء الله سنبدأ بالخصائص...

الخصائص Properties
 بطبيعة الحال فإن أي كائن يمتلك سمات وخصائص وهذا هو المبدأ الذي تطبقه البرمجة الكائنية OOP .
 الأمر بسيط لكن يحتاج قليل من التركيز.
 الآن يمكنك البدء بصنع خاصية باستخدام الكلمة المحجوزة Property وننهيها ب End Property
 مثال:

كود:
Class Person

Property ****() As String
...
...
...
End Property

End Class
الآن داخل الفئة أضفنا الخاصية **** لكن قد تلاحظ أنها تأخذ شكل الطريقة Method كما أنها تأخذ شكل الحقل Field
 اذن يمكن القول بان الخاصية عبارة عن مدمج ما بين الحقل و الطريقة.
 لكن الخاصية تحتاج الى ضبط قيمة كما نحتاج ايضا الى قراءة الخاصية.
 يمكن ذلك باستخدام الكلمتين المحجوزتين Get و Set

 أولا: الدالةGet:
 تستخدم هذه الدالة لتزويدنا بقيمة الخاصية الحالية. لكن علينا مسبقا تعريف متغير جديد من نوع الخاصية ليحمل القيمة وقت استرجاعها او ضبطها
 مثال:
Class Person
Dim m_**** As String
Property ****() As String
Get
Return m_****
End Get

....
....
....
End Property
End Class
الآن كما نرى قمنا بصنع خاصية جديدة باسم **** وقبلها عرفنا متغير من نوع الخاصية سنستخدمه في عملية الضبط والاسترجاع لهذه الخاصية ويفضل تسمية هذا المتغير تسمية قريبة من اسم الخاصية ويمكنك ملاحظة ان معظم البرامج تستخدم تسمية المتغير بهذه الطريقة m_**** أي باضافة m_ في بداية المتغير وبعدها كتابة اسم الخاصية ويمكنكم ملاحظة أن الدالةGet تحتاج ناتج والذي ارجعناه بواسطة الكلمة المحجوزة Return والتي شرحناها في فصل الاجراءات والدوال

 لكن كيف يمكننا الحصول على قيمة الخاصية ..
 سهل جدا:
 انظر المثال التالي:
Class Person
Dim m_**** As String = "Islam Son"
Property ****() As String
Get
Return m_****
End Get
..
..
..
End Property
End Class
الآن قمنا بصنع نفس الخاصية السابقة واسندنا للمتغير m_**** قيمة افتراضية "Islam Son" والآن داخل اي اجراء استخدم التالي للاستعلام عن القيمة:
Dim Lo2i As New Person
MsgBox(Lo2i.****)
انظر الناتج..


 ثانيا:الاجراء Set
 الآن بعد أن عرفنا كيف نقوم بالاستعلام فايضا قد يلزمنا اجراء لاسناد قيمة للخاصية
 يتم ذلك عن طريق الاجراء Set
 مثال:
كود:
Class Person

Dim m_**** As String = "Islam Son"

Property ****() As String
...
...
...

Set(ByVal value As String)
m_**** = value
End Set

End Property

End Class
كما نرى فان الطريقة الخاصة بضبط القيمة هي Set ..كيف تعمل؟؟
 تقوم هذه الطريقة بستقبال الوسيط الذي نرسله بنفس نوع الخاصية وسميت افتراضيا بValue ويمكنك تغيير المسمى فلا فرق وداخل هذا الاجراء قمنا باسناد قيمة الوسيط المرسل الى المتغير m_**** حتى عند الاستعلام يرجع لنا بنفس القيمة التي مررناها له
 هذا المثال يوضح كلا من Get وSet
 المثال:
Class Person
        Dim m_**** As String
        Property ****() As String
            Get
                Return m_****
            End Get

            Set(ByVal value As String)
                m_**** = value
            End Set

        End Property
    End Class

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles My****.Load
        Dim Lo2i As New Person
        Lo2i.**** = "Lo2i"
        MsgBox(Lo2i.****)
    End Sub
ويمكنك ملاحظة التالي:
 عند استخدام هذه التعليمة
Lo2i.**** = "Lo2i"
فان الاجراء المستخدم هو Set لانه يتم اسناد قيمة للخاصية
MsgBox(Lo2i.****)
فان الاجراء المستخدم حينها هو Get لانه يتم الاستعلام عن قيمة الخاصية


 ايضا ماذا ان اردنا جعل الخاصية محمية من القراءة فقط نريدها للكتابة .....يمكنك باستخدام الكلمة المحجوزة WriteOnly وبالتالي فان وجود الدالة Get يسبب خطأ كما ان عملية الاستعلام عن قيمة الخاصية ايضا يسبب خطأ
 مثال:
Class Person
Dim m_**** As String
WriteOnly Property ****() As String

Set(ByVal value As String)
m_**** = value
End Set

End Property
End Class
وهذا يفيد في منع الحصول على معلومات سرية مثلا ككلمة المرور..


 الآن هل يمكن ارسال اكثر من وسيط للخاصية...لا مشكلة
 مثال:
كود:
Class Person
        Dim m_****(1) As String

        Property ****(ByVal Index As Integer) As String

            Get

                Return m_****(Index)

            End Get

            Set(ByVal value As String)
                m_****(Index) = value
            End Set
        End Property
End Class

الآن قمنا بصنع خاصية الاسم وجعلنا المتغير المقترن بها على شكل مصفوفة تحتوي على عنصرين(1+1) على اعتبار الاسم الاول والاخير
 وأضفنا وسيط للخاصية باسم Index ليعمل عمل فهرس للاسمين الاول والثاني وعند عملية الاسناد في Set ترى ان القيم المسندة تكون على شكل مصفوفة
 الآن:
كود:
Dim Lo2i As New Person
Dim Full**** As String

Lo2i.****(0) = "Lo2i "
Lo2i.****(1) = "VB4ARAB"



For i = 0 To 1 Step 1
Full**** &= Lo2i.****(i)
Next

MsgBox(Full****)
أعلنا عن Lo2i كPerson وقمنا باسناد القيمة الاولى والثانية للخاصية **** التي تحمل معنى مصفوفة مكونة من عنصرين
 وقمنا بصنع عداد لربط قيمتين الخاصية وقمنا بعرض ناتج الربط والذي يحمله المتغير Full**** في رسالة

 ___________________________
 مداخلة: "&" عملية تقوم بربط النصوص. أما "&=" تقوم بربط ما قبل = بما بعدها
 أي أن:
كود:
Full**** &= "Mr_MOHAMMED"
تعادل
كود:
 Full**** = Full**** & "Mr_MOHAMMED"
 ويمكن استخدام هذه الصورة مع باقي العمليات الجبرية ..أي أن:
كود:
x += y


تعادل
كود:
 x = x + y
___________________________

ملاحظتان:

يمكن استخدام مبدأ إعادة التعريف OverLoading مع الخصائص
يمكن استخدام الخصائص في الوحدات البرمجية Modules والتركيبات Structures

الخصائص الافتراضية:
 هي الخصائص التي تمثل الفئة بشكل افتراضي ويمكنك جعل خاصية افتراضية باستخدام الكلمة المحجوزة Defualt
 مثال:
Class Person
        Dim m_****(1) As String

        Default Property ****(ByVal Index As Integer) As String

            Get

                Return m_****(Index)

            End Get

            Set(ByVal value As String)
                m_****(Index) = value
            End Set
        End Property
    End Class

Dim Lo2i As New Person
        Dim Full**** As String

        Lo2i(0) = "Lo2i "
        Lo2i(1) = "VB4ARAB"



        For i = 0 To 1 Step 1
            Full**** &= Lo2i(i)
        Next

        MsgBox(Full****)

    End Sub




قد تلاحظ أنه لا يتوجب ذكر الخاصية في عملية الاسناد أو الاستعلام لانها كما قلنا تمثل الفئة
 يمكنك ملاحظة هذا الشيء في فيجوال بيسك 6
 فالتعليمتان التاليتان لهما نفس الوظيفة
كود:
****1.****="Mr_MOHAMMED"
كود:
 ****1 = "Mr_MOHAMMED"
ومن هذا نستنتج ان الخاصية الافتراضية هي ****
                       Abdalkader Al-badani
انتظروا الدرس القادم

الجمعة، 19 يوليو 2013

قصص الأنبياء - إسماعيل عليه السلام .


إسماعيل عليه السلام

نبذة:


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


سيرته:

الاختبار الأول:

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

أنزل زوجته وابنه وتركهما هناك، ترك معهما جرابا فيه بعض الطعام، وقليلا من الماء. ثم استدار وتركهما وسار.

أسرعت خلفه زوجته وهي تقول له: يا إبراهيم أين تذهب وتتركنا بهذا الوادي الذي ليس فيه شيء؟

لم يرد عليها سيدنا إبراهيم وظل يسير.. عادت تقول له ما قالته وهو صامت.. أخيرا فهمت أنه لا يتصرف هكذا من نفسه.. أدركت أن الله أمره بذلك فسألته: هل الله أمرك بهذا؟

فقال إبراهيم عليه السلام: نعم.

قالت زوجته المؤمنة العظيمة: لن نضيع ما دام الله معنا وهو الذي أمرك بهذا.

وسار إبراهيم حتى إذا أخفاه جبل عنهما وقف ورفع يديه الكريمتين إلى السماء وراح يدعو الله:

رَّبَّنَا إِنِّي أَسْكَنتُ مِن ذُرِّيَّتِي بِوَادٍ غَيْرِ ذِي زَرْعٍ عِندَ بَيْتِكَ الْمُحَرَّمِ رَبَّنَا لِيُقِيمُواْ الصَّلاَةَ فَاجْعَلْ أَفْئِدَةً مِّنَ النَّاسِ تَهْوِي إِلَيْهِمْ وَارْزُقْهُم مِّنَ الثَّمَرَاتِ لَعَلَّهُمْ يَشْكُرُونَ (37) (إبراهيم)

لم يكن بيت الله قد أعيد بناؤه بعد، لم تكن الكعبة قد بنيت، وكانت هناك حكمة عليا في أمر الله سبحانه لإبراهيم، فقد كان إسماعيل -الطفل الذي تُرِكَ مع أمه في هذا المكان- ووالده من سيكونان المسؤولان بناء الكعبة فيما بعد.. وكانت حكمة الله تقضي أن يسكن أحد في هذا الوادي، لميتد إليه العمران.

بعد أن ترك إبراهيم زوجته وابنه الرضيع في الصحراء بأيام نفد الماء وانتهى الطعام، وجف لبن الأم.. وأحست هاجر وإسماعيل بالعطش.

بدأ إسماعيل يبكي من العطش.. فتركته أمه وانطلقت تبحث عن ماء.. راحت تمشي مسرعة حتى وصلت إلى جبل اسمه "الصفا".. فصعدت إليه وراحت تبحث به عن بئر أو إنسان أو قافلة.. لم يكن هناك شيء. ونزلت مسرعة من الصفا حتى إذا وصلت إلى الوادي راحت تسعى سعي الإنسان المجهد حتى جاوزت الوادي ووصلت إلى جبل "المروة"، فصعدت إليه ونظرت لترى أحدا لكنها لم تر أحدا. وعادت الأم إلى طفلها فوجدته يبكي وقد اشتد عطشه.. وأسرعت إلى الصفا فوقفت عليه، وهرولت إلى المروة فنظرت من فوقه.. وراحت تذهب وتجيء سبع مرات بين الجبلين الصغيرين.. سبع مرات وهي تذهب وتعود - ولهذا يذهب الحجاج سبع مرات ويعودون بين الصفا والمروة إحياء لذكريات أمهم الأولى ونبيهم العظيم إسماعيل. عادت هاجر بعد المرة السابعة وهي مجهدة متعبة تلهث.. وجلست بجوار ابنها الذي كان صوته قد بح من البكاء والعطش.

وفي هذه اللحظة اليائسة أدركتها رحمة الله، وضرب إسماعيل بقدمه الأرض وهو يبكي فانفجرت تحت قدمه بئر زمزم.. وفار الماء من البئر.. أنقذت حياتا الطفل والأم.. راحت الأم تغرف بيدها وهي تشكر الله.. وشربت وسقت طفلها وبدأت الحياة تدب في المنطقة.. صدق ظنها حين قالت: لن نضيع ما دام الله معنا.

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

كانت هذه هي المحنة الاولى.. أما المحنة الثانية فهي الذبح.

الاختبار الثاني:
كبر إسماعيل.. وتعلق به قلب إبراهيم.. جاءه العقب على كبر فأحبه.. وابتلى الله تعالى إبراهيم بلاء عظيما بسبب هذا الحب. فقد رأى إبراهيم عليه السلام في المنام أنه يذبح ابنه الوحيد إسماعيل. وإبراهيم يعمل أن رؤيا الأنبياء وحي.
انظر كيف يختبر الله عباده. تأمل أي نوع من أنواع الاختبار. نحن أمام نبي قلبه أرحم قلب في الأرض. اتسع قلبه لحب الله وحب من خلق. جاءه ابن على كبر.. وقد طعن هو في السن ولا أمل هناك في أن ينجب. ثم ها هو ذا يستسلم للنوم فيرى في المنام أنه يذبح ابنه وبكره ووحيده الذي ليس له غيره.
أي نوع من الصراع نشب في نفسه. يخطئ من يظن أن صراعا لم ينشأ قط. لا يكون بلاء مبينا هذا الموقف الذي يخلو من الصراع. نشب الصراع في نفس إبراهيم.. صراع أثارته عاطفة الأبوة الحانية. لكن إبراهيم لم يسأل عن السبب وراء ذبح ابنه. فليس إبراهيم من يسأل ربه عن أوامره.
فكر إبراهيم في ولده.. ماذا يقول عنه إذا أرقده على الأرض ليذبحه.. الأفضل أن يقول لولده ليكون ذلك أطيب لقلبه وأهون عليه من أن يأخذه قهرا ويذبحه قهرا. هذا أفضل.. انتهى الأمر وذهب إلى ولده (قَالَ يَا بُنَيَّ إِنِّي أَرَى فِي الْمَنَامِ أَنِّي أَذْبَحُكَ فَانظُرْ مَاذَا تَرَى). انظر إلى تلطفه في إبلاغ ولده، وترك الأمر لينظر فيه الابن بالطاعة.. إن الأمر مقضي في نظر إبراهيم لأنه وحي من ربه.. فماذا يرى الابن الكريم في ذلك؟ أجاب إسماعيل: هذا أمر يا أبي فبادر بتنفيذه (يَا أَبَتِ افْعَلْ مَا تُؤْمَرُ سَتَجِدُنِي إِن شَاء اللَّهُ مِنَ الصَّابِرِينَ). تأمل رد الابن.. إنسان يعرف أنه سيذبح فيمتثل للأمر الإلهي ويقدم المشيئة ويطمئن والده أنه سيجده (إِن شَاء اللَّهُ مِنَ الصَّابِرِينَ). هو الصبر على أي حال وعلى كل حال.. وربما استعذب الابن أن يموت ذبحا بأمر من الله.. ها هو ذا إبراهيم يكتشف أن ابنه ينافسه في حب الله. لا نعرف أي مشاعر جاشت في نفس إبراهيم بعد استسلام ابنه الصابر.
ينقلنا الحق نقلة خاطفة فإذا إسماعيل راقد على الأرض، وجهه في الأرض رحمة به كيلا يرى نفسه وهو يذبح. وإذا إبراهيم يرفع يده بالسكين.. وإذا أمر الله مطاع. (فَلَمَّا أَسْلَمَا) استخدم القرآن هذا التعبير.. (فَلَمَّا أَسْلَمَا) هذا هو الإسلام الحقيقي.. تعطي كل شيء، فلا يتبقى منك شيء.
عندئذ فقط.. وفي اللحظة التي كان السكين فيها يتهيأ لإمضاء أمره.. نادى الله إبراهيم.. انتهى اختباره، وفدى الله إسماعيل بذبح عظيم - وصار اليوم عيدا لقوم لم يولدوا بعد، هم المسلمون. صارت هذه اللحظات عيدا للمسلمين. عيدا يذكرهم بمعنى الإسلام الحقيقي الذي كان عليه إبراهيم وإسماعيل.
خبر زوجة إسماعيل:
عاش إسماعيل في شبه الجزيرة العربية ما شاء الله له أن يعيش.. روض الخيل واستأنسها واستخدمها، وساعدت مياه زمزم على سكنى المنطقة وتعميرها. استقرت بها بعض القوافل.. وسكنتها القبائل.. وكبر إسماعيل وتزوج، وزاره إبراهيم فلم يجده في بيته ووجد امرأته.. سألها عن عيشهم وحالهم، فشكت إليه من الضيق والشدة.
قال لها إبراهيم: إذا جاء زوجك مريه أن يغير عتبة بابه.. فلما جاء إسماعيل، ووصفت له زوجته الرجل.. قال: هذا أبي وهو يأمرني بفراقك.. الحقي بأهلك.
وتزوج إسماعيل امرأة ثانية.. زارها إبراهيم، يسألها عن حالها، فحدثته أنهم في نعمة وخير.. وطاب صدر إبراهيم بهذه الزوجة لابنه.
الاختبار الثالث:
وها نحن الآن أمام الاختبار الثالث.. اختبار لا يمس إبراهيم وإسماعيل فقط. بل يمس ملايين البشر من بعدهم إلى يوم القيامة.. إنها مهمة أوكلها الله تعالى لهذين النبيين الكريمين.. مهمة بناء بيت الله تعالى في الأرض.
كبر إسماعيل.. وبلغ أشده.. وجاءه إبراهيم وقال له: يا إسماعيل.. إن الله أمرني بأمر. قال إسماعيل: فاصنع ما أمرك به ربك.. قال إبراهيم: وتعينني؟ قال: وأعينك. فقال إبراهيم: فإن اللهأمرني أن ابني هنا بيتا. أشار بيده لصحن منخفض هناك.
صدر الأمر ببناء بيت الله الحرام.. هو أول بيت وضع للناس في الأرض.. وهو أول بيت عبد فيه الإنسان ربه.. ولما كان آدم هو أول إنسان هبط إلى الأرض.. فإليه يرجع فضل بنائه أول مرة.. قال العلماء: إن آدم بناه وراح يطوف حوله مثلما يطوف الملائكة حول عرش الله تعالى.
بنى آدم خيمة يعبد فيها الله.. شيء طبيعي أن يبني آدم -بوصفه نبيا- بيتا لعبادة ربه.. وحفت الرحمة بهذا المكان.. ثم مات آدم ومرت القرون، وطال عليه العهد فضاع أثر البيت وخفي مكانه.. وها هو ذا إبراهيم يتلقى الأمر ببنائه مرة ثانية.. ليظل في المرة الثانية قائما إلى يوم القيامة إن شاء الله. وبدأ بناء الكعبة..
هدمت الكعبة في التاريخ أكثر من مرة، وكان بناؤها يعاد في كل مرة.. فهي باقية منذ عهد إبراهيم إلى اليوم.. وحين بعث رسول الله، صلى الله عليه وسلم، تحقيقا لدعوة إبراهيم.. وجد الرسول الكعبة حيث بنيت آخر مرة، وقد قصر الجهد بمن بناها فلم يحفر أساسها كما حفره إبراهيم.
نفهم من هذا إن إبراهيم وإسماعيل بذلا فيها وحدهما جهدا استحالت -بعد ذلك- محاكاته على عدد كبير من الرجال.. ولقد صرح الرسول بأنه يحب هدمها وإعادتها إلى أساس إبراهيم، لولا قرب عهد القوم بالجاهلية، وخشيته أن يفتن الناس هدمها وبناؤها من جديد.. بناؤها بحيث تصل إلى قواعد إبراهيم وإسماعيل.
أي جهد شاق بذله النبيان الكريمان وحدهما؟ كان عليهما حفر الأساس لعمق غائر في الأرض، وكان عليهما قطع الحجارة من الجبال البعيدة والقريبة، ونقلها بعد ذلك، وتسويتها، وبناؤها وتعليتها.. وكان الأمر يستوجب جهد جيل من الرجال، ولكنهما بنياها معا.
لا نعرف كم هو الوقت الذي استغرقه بناء الكعبة، كما نجهل الوقت الذي استغرقه بناء سفينة نوح، المهم أن سفينة نوح والكعبة كانتا معا ملاذا للناس ومثوبة وأمنا.. والكعبة هي سفينة نوح الثابتة على الأرض أبدا.. وهي تنتظر الراغبين في النجاة من هول الطوفان دائما.
لم يحدثنا الله عن زمن بناء الكعبة.. حدثنا عن أمر أخطر وأجدى.. حدثنا عن تجرد نفسية من كان يبنيها.. ودعائه وهو يبنيها:
وَإِذْ يَرْفَعُ إِبْرَاهِيمُ الْقَوَاعِدَ مِنَ الْبَيْتِ وَإِسْمَاعِيلُ رَبَّنَا تَقَبَّلْ مِنَّا إِنَّكَ أَنتَ السَّمِيعُ الْعَلِيمُ (127) رَبَّنَا وَاجْعَلْنَا مُسْلِمَيْنِ لَكَ وَمِن ذُرِّيَّتِنَا أُمَّةً مُّسْلِمَةً لَّكَ وَأَرِنَا مَنَاسِكَنَا وَتُبْ عَلَيْنَا إِنَّكَ أَنتَ التَّوَّابُ الرَّحِيمُ (128) رَبَّنَا وَابْعَثْ فِيهِمْ رَسُولاً مِّنْهُمْ يَتْلُو عَلَيْهِمْ آيَاتِكَ وَيُعَلِّمُهُمُ الْكِتَابَ وَالْحِكْمَةَ وَيُزَكِّيهِمْ إِنَّكَ أَنتَ العَزِيزُ الحَكِيمُ (129) (البقرة)
إن أعظم مسلمين على وجه الأرض يومها يدعوان الله أن يتقبل عملهما، وأن يجعلهما مسلمين له.. يعرفان أن القلوب بين إصبعين من أصابع الرحمن. وتبلغ الرحمة بهما أن يسألا الله أن يخرج من ذريتهما أمة مسلمة له سبحانه.. يريدان أن يزيد عدد العابدين الموجودين والطائفين والركع السجود. إن دعوة إبراهيم وإسماعيل تكشف عن اهتمامات القلب المؤمن.. إنه يبني لله بيته، ومع هذا يشغله أمر العقيدة.. ذلك إيحاء بأن البيت رمز العقيدة. ثم يدعوان الله أن يريهم أسلوب العبادة الذي يرضاه، وأن يتوب عليهم فهو التواب الرحيم. بعدها يتجاوز اهتمامها هذا الزمن الذي يعيشان فيه.. يجاوزانه ويدعوان الله أن يبث رسولا لهؤلاء البشر. وتحققت هذه الدعوة الأخيرة.. حين بعث محمد بن عبد الله، صلى الله عليه وسلم.. تحققت بعد أزمنة وأزمنة
انتهى بناء البيت، وأراد إبراهيم حجرا مميزا، يكون علامة خاصة يبدأ منها الطواف حول الكعبة.. أمر إبراهيم إسماعيل أن يأتيه بحجر مميز يختلف عن لون حجارة الكعبة.
سار إسماعيل ملبيا أمر والده.. حين عاد، كان إبراهيم قد وضع الحجر الأسود في مكانه.. فسأله إسماعيل: من الذي أحضره إليك يا أبت؟ فأجاب إبراهيم: أحضره جبريل عليه السلام.
انتهى بناء الكعبة.. وبدأ طواف الموحدين والمسلمين حولها.. ووقف إبراهيم يدعو ربه نفس دعائه من قبل.. أن يجعل أَفْئِدَةً مِّنَ النَّاسِ تَهْوِي إلى المكان.. انظر إلى التعبير.. إن الهوى يصور انحدارا لا يقاوم نحو شيء.. وقمة ذلك هوى الكعبة. من هذه الدعوة ولد الهوى العميق في نفوس المسلمين، رغبة في زيارة البيت الحرام.
وصار كل من يزور المسجد الحرام ويعود إلى بلده.. يحس أنه يزداد عطشا كلما ازداد ريا منه، ويعمق حنينه إليه كلما بعد منه، وتجيء أوقات الحج في كل عام.. فينشب الهوى الغامض أظافره في القلب نزوعا إلى رؤية البيت، وعطشا إلى بئر زمزم.
قال تعالى حين جادل المجادلون في إبراهيم وإسماعيل.
مَا كَانَ إِبْرَاهِيمُ يَهُودِيًّا وَلاَ نَصْرَانِيًّا وَلَكِن كَانَ حَنِيفًا مُّسْلِمًا وَمَا كَانَ مِنَ الْمُشْرِكِينَ (67) (آل عمران)
عليه الصلاة والسلام.. استجاب الله دعاءه.. وكان إبراهيم أول من سمانا المسلمين

.............................
قام بالجمع والنشر : محمد دماج .


لسماع القصة بصوت الدكتور طارق السويدان برجاء زيارة الرابط التالي :


..............
زرونا في مجموعتكم ( ملتقى الجامعات لكل التخصصات العلمية ) .. اتبع الرابط التالي :

دورة السي شارب الدرس 10- تعرف على أهم ال Controls


دورة السي شارب
الدرس 10- تعرف على أهم ال Controls
السلام عليكم ورحمة الله وبركاته...

في هذا الدرس سوف نقوم بشرح أهم الأدوات الموجودة داخل ال Visual Studio 2008
وهي كالتالي:
TextBox
label
PictureBox
ProgressBar
Numeric UpDown
Masked TextBox
Radio Button
Tool Tip
Web Browser
ComboBox
ListBox

ملاحظة : أن أكثر الخواص التي تملكها هذه الأدوات هي خواص متماثلة حيث تجدها في كل هذه الأدوات ومنها:
Enabled : تتحكم بإن كان الأداة تعمل أم لا
Nane: إسم الأداة
Location : تحديد مكان الأداة
Maximum Size : ومن خلالها تحدد أكبر حجم ممكن
Minimum Size : أصغر حجم ممكن
Dock : تفعيل خاصية Dock في الجهة التي تريد
Cursor : تتحكم بأيقونة الفأرة عند الإقتراب على الأداة

__________________________________________________ __________________

أولا: TextBox
وهو عبارة عن صندوق يكتب به النص المراد إدخاله للبرنامج وأهم خصائصه هي كالتالي:
Text : ومن خلالها يتم تحديد أو جلب ما كتب فيه
Font : ومن خلالها يتم تحديد حجم الخط , نوعه , وحدات قياسه ....
ForeColor : ويتم من خلالها تحديد اللون للخط
BackColor : ويتم من خلالها تحديد لون الخلفية لل TextBox

- مثال على إستخدامه:


كود:
textBox1.Text = "i love text boxes";
textBox1.ForeColor = Color.Red;
textBox1.BackColor = Color.Yellow;
(( بعدتجربت هذا الكود سوف تؤلمك عيونك بسبب الألون التي أجدها مزعحة بالنسبة لي ))

2- label
وهي صندوق للكتابة أيضا ولكن لا يمكن للمستخدم الكتابة بها حيث يقتصر إستخدامها عليم فقط.
وخواصها هي نس خواص ال TextBox

3- PictureBox

وهي أداة يتم من خلالها عرض الصور أهم خواصها:
Image ومن خلالها تحدد الصورة التي تود عرضها به

مثال على إستخدامها:



كود:
pictureBox1.Image = Image.FromFile("your image url");
-Progress Bar
وهي أداة تستخدم لإظهار مقدار تقدم ما مثل التنصيب... وأهم خواصها:
Value وهي من خلالها يتم تحديد قيمت المنجز من الشيئ
Maximum ومن هنا يتم تحديد أقصى فيمة لها ((( وإذا كانت ال Value = ال Maximum فإنها سوف تكون كلها باللون الأخضر ))

Minimum : تحديد أصغر قيمة له

Styel : تحديد نوع ال Progress Bar..
MarqueeAnimationSpeed ومن خلالها يتم تحديد سرعة ال ProgressBar إذا تم إختيار ال Styel كـ Marquee

مثال على إستخدامها:



كود:
         progressBar1.Maximum = 500;
            progressBar1.Minimum = 0;
            progressBar1.Value = 250;
مثال اخر بفرض أننا نريد تحديد ال Styel كـ Marquee
كود:
progressBar1.MarqueeAnimationSpeed = 50;
progressBar1.Style = ProgressBarStyle.Marquee;


5- Numeric UpDown
وتستخدم هذه الأداة لكتابة الأرقام فقط مثلا العمر.. وأهم خصائصها:
Value وهي كالقيمة Text بالنسبة لل TextBox ولكنها لا تقبل إلا الأرقام
مثال على إستحدامها:


كود:
numericUpDown1.Value = 50;
            MessageBox.Show(numericUpDown1.Value.ToString());
6- Masked TextBox
ويستخدم لكتابة شيئ محدد مثل التاريخ, رقم الهاتف وميزته أنه يمكنه رسم التفاصيل التي تود أن يدخلها المستخدم كما تشاء وأهم خواصه:

Mask وهي من خلالها يتم تحديد ال Mask حيث أكتب أصفارا مكان الرموز المراد إدخالها ورمز خاص أين ما تشاء مثل 0000 00 00

مثال على إستخدامها:
سوف أجعله يرسم بشكل مناسب لإدخال التاريخ:


كود:
maskedTextBox1.Mask = "0000 00 00";
7- Radio Button
وهي أداة تستخدم للإختيار المتعدد ولذلك لا يمكنك إستخدام واحدة منها فقط بل يجب أن يكون على الأقل 2 أهم خواصها:

Checked وهي التي بحدد إن كانت الأداة محددة أم لا
AutoCheck وتعني أنه عندما يتم النقر على ال RadioButton يتم تحديدها وأنصحك أن تجعلها true لأنه إذا سويتها false سوف يصبح التعامل معها صعب...

مثال على إستخدامها (( ضع إثنين Radio Button على ال Form واكتب )):
كود:
if (radioButton1.Checked == true)
            {
                MessageBox.Show("The Selected Radio Button Is Radio Button1");
            }
            else if (radioButton2.Checked == true)
            {
                MessageBox.Show("The Selected Radio Button Is Radio Button2");
            }
            else
            {
                MessageBox.Show("Please Select A Radio Button!");
            }
ToolTip-8
وهي أداة تستخدم لإظهار التلميحات عن أداة معينة وأهم خوصها:
IsBallon : وهنا تحدد هل هي على شكل بالون
ToolTipIcon: أيقونة التلميح (( خطا , معلومة , تحذير ... ))
ToolTipTitle : عنوان التلميح
Reshow Delay : ومن خلالها تحدد بعد بكم تظهر الرسالة من وقوف الفأرة فوق الاداة...

مثال على إستخدامها:
ضع بوتون على الفورم بعد إضافة الأداة ToolTip وذهب إلى خاصية ToolTip on toolTip1
واكتب التلميح الذي تريد ويمكنك إنجاز ذلك برمجيا كالتالي:


كود:
toolTip1.SetToolTip(button1, "my button is beatuful");

- WebBrowser
وهي أداة لتصفح الإنترنت وهي بسيطة جدا من ناحية التعامل أهم خصائصها:
url ومن خلاله يتم الإستعلام حول الurl المتصفح الان..

مثال على إستخدامه...


كود:
webBrowser1.Navigate("http://www.google.com");

ComboBox-10
وهو صندوق يتم به إضافة عناصر للإظهار أو الإدخال تكون عناصره كمصفوفة وأهم خواصه:
Items وهي التي من خلالها يتم تحديد عناصره ( أكتب في كل سطر عنصر )

أو برمجيا:

كود:
comboBox1.Items.Add("MyItem");
مثال على إستخدامه:
أولا جلب العناصر:
كود:
foreach (string x in listBox1.Items)
            {
                MessageBox.Show(x);
            }
ثانيا إضافة عنصر:


كود:
comboBox1.Items.Add("MyItem");
ثالثا : معرقة ما هو العنصر المحدد:
كود:
MessageBox.Show(listBox1.SelectedItem.ToString());
رابعا : تحديد عنصر ما حسب الترتيب:


كود:
listBox1.SelectedIndex = 2;
حيث سوف يتم في هذا الكود تعيين العنصر الثالث

خامسا : تحديد العنصر حسب المكتوب به:


كود:
listBox1.SelectedItem = "td";
11- ListBox
وهي أداة مماثلة تماما لل ComboBox والفرق الوحيد بينهما هو طريقة العرض



أرجو أن أكون قد أفدتكم في هذا الدرس...
وإلى اللقاء في الدرس القادم إن شاء الله...