الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ال Classes في VB.NET

مغلق
بدأه hazzoom في 21 أغسطس 2005 · 31 رد · 10,219 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

الكثير من الأعضاء في قسمنا قادمين من فيجوال بيسك 6 مثلي وعلي الأغلب لم نكن نعرف ما معني كلاس وكيف تصنع لأنه لم يكن مفهوم الـ OOP كاملا أو واضحا ,,,

لكن كيف تصنع كلاس وهذا درس ومثال بسيط عليها,,,

أولا ما هي الكلاس ؟

الكلاس هي تعتبر نوع من أنواع الكائنات أي الـ Components الموجوده في الـ Tool box بطريق آخر عندما تضع علي الفورم Component من النوع Connection فانك بذلك أنشأت كلاس من النوع Connection وعلي ذلك يمكن الاستعاضه عن اضافة الـ Connection Component من الـ Tool box باستخدام صيغة ال Constructor كالآتي :

 Dim myconnection as new connection

وبذلك أنشأنا Component من النوع Connection ,,,

وذلك بغض النظر ان كان OLEDB أو SQL و ينطبق السابق علي كل الـ Components حتي الأزرار و مربع النص وباقي الأدوات أيضاأنك عندما تضع زر علي الفورم فانك تنشئ كلاس من نوع Command button وبالتالي نستنتج أن الكلاس هي الصوره الكوديه للـ Component ,,,

ويمكن للكلاس أن تحتوي علي دوال التي تسمي Methods وأيضا تحتوي علي Properties ,,,

أي أن الكلاس تعتبر Component حاويه للدوال والخصائص ,,,

وفي مثالنا هذا ننشئ كلاس تحتوي علي داله واحده تعمل علي تكبير الفورم لتملأ الشاشه تماما وتستقبل هذه الداله قيمتين الأولي هي الفورم التي سوف نقوم بتكبيرها والقيمه الثانيه هي قيمه منطقيه أي Ture or False أي هل تريد التكبير أم لا وتعود الداله بقيمه 1 اذا تم التكبير و صفر اذا لم يتم التكبير ,,,

الخطوات :

1- نضيف الي المشروع الحالي New Item من النوع Class ,,,

(((أضغط كليك يمين علي المشروع في ال Solution Explorer وقف علي زر Add واختر آخر زر في القائمه )))

2- ويكون الكود كالتالي ,,,

Public Class Formstate
    Public Function Mystate(ByVal myform As Form, ByVal state As Boolean) As Integer
        Dim ret As String 'متغير يحتوي علي القيمه التي ترجع بها الداله
        If state = True Then
            'كود تكبير الفورم
            myform.ShowInTaskbar = False
            myform.FormBorderStyle = FormBorderStyle.None
            myform.WindowState = FormWindowState.Maximized
            ret = 1 'نعود بالقيمه 1 اذا تم التكبير
        Else 'nothing to do
            ret = 0 'نعود بالقيمه صفر اذا لم يتم التكبير
        End If
        Return (ret) 'القيمه النهائيه
    End Function
End Class

3- في الفورم الرئيسه نستخدم صيغة ال Constructor لكي ننشئ وجود للكلاس داخل الفورم الحاليه ,,,

4- ثم ننشئ متغير من النوع Integer لكي نستقبل القيمه التي تعود بها الداله كما شرحنا ,,,

5- ثم نعرض القيمه في رساله (((لكي نتأكد فقط))) واذا لم تريد عرض الرساله فلا ضرر ,,,

ويكون الكود في الفورم كالتالي :

        Dim fs As New Formstate 'ننشئ وجود للكلاس
        Dim res As Integer 'مخزن لليقمه التي تعود بها الداله
        res = fs.Mystate(Me, True) 'ننفذ الداله ونخزن القيمه المرتجعه
        MsgBox(res) 'نعرض القيمه في رساله للتأكد فقط

6- شغل البرنامج وأنظر النتيجه ,,,

وكما لاحظتم أنا لم أشرح الفرق بين Byval ,Byref في تمرير المتغيرات الي الداله وأترك لكم درس الأخ العزيز Crazy-man لتعرفوا الفرق بينهما ,,,

***الدرس مرفق في الملف المضغوط ,لأني لم أجد رابطه ,,,

وأوجه الشكر الي الأخ محمد عبد العليم الذي عرفت منه كيفيه تكبير الفورم لتملأ الشاشه تماما والأخ Crazy-man الذي تعلمت منه الفرق بين الـ Byval ,Byref ,وكمان الأخ Ingm اللي أعطاني كتاب الـ OOP اللي عرفت منه معلومات في الموضوع ,,

عايز أشوف تجاوب مع الموضوع علشان أحس بالتفاعل ,,,

أتمني من الله أن يكون هذا الدرس خالصا لوجهه ويوضع في ميزان حسناتي كماأرجو أن أكون قد وفقت في توصيل معني الكلاس وكيفية انشاءها واستخدامها وان كان عندي خطأ فياريت توضحوه وأي أسئله أنا هعرف أجاوب عليها ان شاء الله ربنا يقدرني وأجاوب (((لأني مبتدأ زيكم وأقل منكم))) ,,,

Make Class.rar

تم تعديل هذه المشاركة بواسطة hazzoom في 21 أغسطس 2005 في 11:00

#2

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

جهد طيب تشكر عليه

و لكني اريد منك ان تشرح للاخوة كيف تتعامل مع خصائص OOP كلها

Inheritance

PolyMorphism

Encapsulation

بحيث يكون كل موضوع منهم له مثال خاص به

و انا للاسف لو كان عندي الوقت الكافي لكنت عملت هذه الامثلة

و لكني اثق بك و بقدراتك

سلام

حكمتي الدائمة.....................................................

ان ما عند الله لا يطلب الا بطاعته

.....................................................................

?who is Ingm

Name: Hasan Adel Hasan

Education: BCs in IS from Faculty of computers & information systems

Mansoura University- 2003

E-mail: hsn_3004@yahoo.com

#3

يا عم Ingm أنا لسه بقول يا هادي والمواضيع اللي انت اتكلمت عنها لسه ما اتقنتهاش لكن لما أتقنها

طبعا هعملها شرح ومثال ان شاء الله , لكن الكلاس مهمه جدا لأن أغلب شغل الدوت نت كلاسات ,

وربنا يسهل ...........,,,

وشكرا علي ردك .......,,,

#4

تمام ياحازم :rolleyes:

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#5

كلام حلو

مشكوووووووووووووور

#6

تمام يا حازم :rolleyes:

ربنا يوفقك وتجيبلنا الجديد على طول B)

Hany Saad Mostafa

ITI (Information Technology Institute) l

SD Dept.-Teaching Assistant

---

اسألكم الدعاء بظهر الغيب

#7

شكرا لك أخي حازم أود أن أنوه لشئ بسيط هو أن عند انشاء اي كلاس يمكنك انشاء Constructor يأخذ بارمترز من اختيارك (اذا لم تنشأه -كما هو الحال في مثال أخينا العزيز- سوف يتم انشاء واحد افتراضي لأنه عند انشاء كل عنصر جديد من أي كلاس يتم استدعاء ال constructor) و لأنشاءه تضيف هذا الكود:

Public X,Y As Integer
Public Sub New()
X=0
Y=0
End Sub
هذا من أجل انشاء انشاء constructor 
افتراضي و كما تلاحظون لا يأخذ أي برامترز فقط يعطي قيم افتراضية للمتغيريين
و بمساعدة مبدأ ال PolyMorphism 
و بالتحديد ال OverLoading
نقوم بانشاء constructor 
جديد
Public Sub New(ByVal Xvalue As Integer,ByVal Yvalue As Integer)
X=Xvalue
Y=Yvalue
End Sub 
هنا ال constructor 
يأخذ بارمترز
و يمكنك طبعا انشاء العدد الذي تريد من ال constructors 
لكلاس معين
و عندما تريد انشاء نسخة من الكلاس لنفرض أن اسم هذا الكلاس cTest
و يتم انشاء النسخة هكذا
Dim MyClass As New cTest()
او
Dim MyClass As New cTest(50,54)

و اذا كان اية ملحوظة او اي سؤال او خطأ في الكود المرجو اعلامي و شكرا

#9

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

عندي سؤال بسيط وهو

كيف يمكن ان آخذ الكلاس الذي انشأته على شكل Dll

فلقد قرات في المنتدى انك تستطيع تحوله عن طريق عمل build للمشروع تذهب الى bin وتجده على شكل dll ، جربت ولم اجده.

اللهم لا سهل الا ماجعلته سهلا، وانت تجعل الصعب ان شئت سهلا

83_45a7168be2ddb.jpg

#10

العفو.... :blink:

نسيت ان اشكرك على شرحك الرائع

اللهم لا سهل الا ماجعلته سهلا، وانت تجعل الصعب ان شئت سهلا

83_45a7168be2ddb.jpg

#11
اقتباس
فلقد قرات في المنتدى انك تستطيع تحوله عن طريق عمل build للمشروع تذهب الى bin وتجده على شكل dll

ذلك عندما تختار المشروع من النوع كلاس فقط تقريبا والله أعلم ,,,

لكن أنا قابلتي مشاكل لما حبيت أعمل الكلاس السابقه في مشروع خاص لكي أنتج DLL لأنه لم يتعرف علي الخواص الخاصه بالفورم لأنه لا توجد فورم في المشروع وأرجو ممن يستطيع حل هذه المشكله أن يساعدني فيها ,وذلك رغم أني عملت Import لل system.windows.form(s) مش فاكر ,...............ساعدوني ؟؟؟؟

#15

الف الف شكر يا باشا ربنا يخليك لينا

سبحان الله وبحمده سبحان الله العظيم

لا اله الا الله محمدا رسول الله

اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الاحياء منهم والاموات

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

حمل كريستال ريبورت 10 اربعه اصدارات

ww12kz.jpg

hashad.jpg

#16

لقد قمت بعمل مشروع كلاس جديد، وانا اعمل فيه دوال احصائية، ولقد جربت ان اعمل build له ، وكانت انتائج جيدة بحيث انني وجدت الdll في الbin

شكرا لك اخي حازم

اللهم لا سهل الا ماجعلته سهلا، وانت تجعل الصعب ان شئت سهلا

83_45a7168be2ddb.jpg

#17

أنا آسف علي التأخير يا أخ crazy-man ولكن جهازي فيه شوية مشاكل Hardware ........,,,

عندما تقوم بوضع الكلاس السابقه في مشروع من النوع كلاس وليس مشروع تطبيقات ويندوز وذلك لكي تنتج الكلاس في صورة ملف Dll يحدث التالي في الصوره وذلك لأنه لا توجد فورم أساسا في المشروع من النوع كلاس :

25_08_05_07_03_49_1125021829ERR.JPG

فما الحل لهذه المشكله ؟؟؟ رجاء اللي يعرف الحل يساعدني ,,,

جزاكم الله خيرا ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 26 أغسطس 2005 في 05:01

#18

بسم الله الرحمن الرحيم

سبب ذلك انك لم تعمل وراثة من الكلاس Form

ثم اتوقع انك لم تضف جملة Import لفضاء الاسماء

System.Windows.Forms.Form

سلام

حكمتي الدائمة.....................................................

ان ما عند الله لا يطلب الا بطاعته

.....................................................................

?who is Ingm

Name: Hasan Adel Hasan

Education: BCs in IS from Faculty of computers & information systems

Mansoura University- 2003

E-mail: hsn_3004@yahoo.com

#19

يا لغبائي الشديد نسيت أعمل Import لفضاء الاسماء System.Windows.Forms.Form ,,,

ولكن ليس لذلك علاقه بعدم الوراثه من الكلاس Form ,,,,

ألف شكر يا حسن كله تمام الحمد لله و جزاك الله خيرا ,,,

تم تعديل هذه المشاركة بواسطة hazzoom في 26 أغسطس 2005 في 06:28

#21

السلام عليكم و آسف علي التأخير يا أخ DreamNet:

بالنسبه لفضاء الأسماء فهو فقط لتغليف مجموعة من الـ Classes التي أنشأتها في NameSpace واحد حتي تكون منظمه يسهل الوصول اليها ولعمل ذلك في فقط عليك وضع السطر التالي في بداية المشروع من النوع Class :

Namespace Name
End Namespace

ثم كتابة الـ Classes داخل الـ Namespace كالتالي :

Imports System.Windows.Forms
Namespace Hazzoom
    Public Class Formstate
        Public Function Mystate(ByVal myform As Form, ByVal state As Boolean) As Integer
            Dim ret As String 'متغير يحتوي علي القيمه التي ترجع بها الداله
            If state = True Then
                'كود تكبير الفورم
                myform.ShowInTaskbar = False
                myform.FormBorderStyle = FormBorderStyle.None
                myform.WindowState = FormWindowState.Maximized
                ret = 1 'نعود بالقيمه 1 اذا تم التكبير
            Else 'nothing to do
                ret = 0 'نعود بالقيمه صفر اذا لم يتم التكبير
            End If
            Return (ret) 'القيمه النهائيه
        End Function
    End Class
    Public Class Class2

    End Class
    Public Class Class3

    End Class
End Namespace

ثم عمل Build للمشروع وبعد ذلك يمكنك استخدامه في مشروعات أخري ,,,

MyNameSpace.rar

تم تعديل هذه المشاركة بواسطة hazzoom في 29 أغسطس 2005 في 09:49

#22

هل من الصحيح ان تكون الدالة integer وترجع بالنوع string ام هذه ليسة مشكله ؟؟

تم تعديل هذه المشاركة بواسطة hacker_eg في 31 أكتوبر 2005 في 09:18

#23

شكرا يا حازم

Oracle 10G Certified Professional Developer.

عودة بعد 3 سنوات غياب، ان شاء الله سوف اتكلم معكم قريبا احبائي

#24

موضوع جميل أشكرك

قال رسول الله صلى الله عليه وسلم

يكبر بن أدام ويكبر معه شيئان كثرة المال وطول العمر

صدق رسول الله صلى الله عليه وسلم

قال عمر بن الخطاب رضي الله عنه

نحن قوم أعزنا الله بالإسلام فإذا إبتغينا العزة فى غيره أذلنا الله

#25

رائع ، ولكن ممكن تكمل يا أخي hazzoom ..

بعد الحصول على الملف MyNameSpace.dll كيف يمكن الاستفادة منه في مشاريع جديده ..

تم تعديل هذه المشاركة بواسطة yaseralshikh في 16 أكتوبر 2006 في 18:51

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

هذا الموضوع مغلق.

مواضيع مشابهة