العودة   :: مجموعة الاوائل العربية :: > ::..:: + قسم تطوير المواقع +::..:: > قسم لغــــــــات البرمجـــــــــــه
التسجيل تعليمات قائمة الأعضاء التقويم البحث مشاركات اليوم اجعل كافة الأقسام مقروءة
 

قسم لغــــــــات البرمجـــــــــــه قسم لغات البرمجة Ajax XML CSS JavaScript PHP Perl CGI seo Search Engine web2



إضافة رد
 
LinkBack أدوات الموضوع انواع عرض الموضوع
قديم 17-Sep-2007, 12:37 AM   رقم المشاركة : 1 (permalink)
!! Awa2il !!
:: مُـَـَ جَرَدْـَـَ إْنْـَـَ سَـَـَاَنْـَـَ ::
 
الصورة الرمزية !! Awa2il !!






!! Awa2il !! متواجد حالياً

!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا

افتراضي كيف تصبح مبرمج Visual Basic محترف









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

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

الخطوة التالية
بالاعتماد على الوقت المستغرق لتعلم الاساسيات، قد تحتاج الى عدة شهور حتى تصبح مبرمج منافس. والان حان وقت تعلم تفاصيل متقدمة. في مجال Visual Basic، فقد تشمل هذه التفاصيل مواضيع متقدمة كبرمجة العميل الخادم Client/Server، مكونات COM كمشاريع ActiveX، برمجة قواعد البيانات، بيئة التطوير المتكاملة نفسها (كالاضافات Add-Ins)/ اجراءات برمجة واجهة التطبيقات API الخ.. الكتب المتقدمة والامثلة العملية قد تفيدك.

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

الاحتراف في برمجة Visual Basic
اذا تمكنك من المواضيع المتقدمة التي ذكرتها سابق، فان مبرمج Visual Basic محترف! قد تحتاج هذه الامور مدة سنة لانجازها باعتماد على الوقت التي تمضيه لها.
حتى تصبح مبرمج محترف خبير حقيقي، تحتاج الان الى تعلم لغة برمجة اخرى كـ Delphi، C ++ الخ.. مع ابقاء نظرة محايدة وواسعة. من المذهل جدا انك تجد الكثير من الناس يدخلون في مناوشات الى حد الحروب الدينية! في اثبات ماهي افضل لغة برمجة. وهي في الحقيقة مضيعة للوقت. لانك تستطيع عمل أي شئ باي لغة برمجة.
جميع لفات البرمجة لديها شئ لتقدمه. هي جيدة لانجاز مهام معينة وسيئة في محاولة انجاز مهام اخرى. تعلم نقاط القوة ونقاط الضعف في كل لغة. قارنها مع لغة البرمجة التي تتقنها الان. اذا كانت احدى لغات البرمجة لديها نقطة قوة في انجاز مهمة تكون نقطة ضعف في لغة اخرى، حاول كيفية انجاز هذه المهمة لتقوية واضافتها الى لغة البرمجة تلك.
بعد تعلمك للغات برمجة مختلفة، سترى العينات المشتركة التي تقدمها. ستتعلم كيف تكيف لغة برمجة حتى تقدم الميزة المتوفرة في اللغة الاخرى. ستتعلم كيف تسرق التقنيات من لغة الى اخرى حتى تغطي نقاط الضعف التي بها. في هذه الحالة فقط، انت خبير بحق!
اكتشاف الاخطاء ( للمبتدئين )

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

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

اخطاء وقت التصميم Design Time Errors
وقد تسمى ايضا بالاخطاء النحوية Syntax Errors وهي اسهل انواع الاخطاء اكتشافا واصلاحا. وقت حدوث هذه الاخطاء يكون في مرحلة التصميم او الترجمة للبرنامج. سببها الرئيسي في طريقة كتابة العبارات البرمجية الخاطئة. فمثلا قد تكتب اسم دالة ليست موجودة، او تنشئ حلقة For بدون اقفالها باستخدام Next.
توفر لك بيئة التطوير المتكاملة لـ Visual Basic اداة في قمة الروعة هدفها قنص هذه الاخطاء تلقائيا بمجرد الوقوع فيها وذلك بعد الضغط على المفتاح ENTER. مثلا، قم بكتابة X == 4 واضغط مفتاح الادخال ستلاحظ ظهور رسالة توضح لك الخطأ وقد قلب لون السطر بالاحمر. تعرف هذه الميزة بالتدقيق النحوي التلقائي Auto Syntax Check والتي تستطيع الغاء عن طريق الاختيار Auto Syntax Check الموجود في خانة التبويب Editor في نافذة الخيارات Options. لا اعتقد انك ستلغيها يوما من الايام اليس كذلك؟!

اخطاء وقت التنفيذ Run Time Errors
وقت ظهور هذه الاخطاء مختلف. فلن تظهر الرسالة المزعجة وقت كتابة الكود وانما في وقت التنفيذ (أي بعد الضغط على F5). عندما يصل المفسر عند سطرصحيح نحويا لكنه خاطئ منطقيا ستظهر رسالة مفيدة بعنوان Run Time Error ويظهر تحديد لمكان السطر الذي وقع فيه الخطأ. مثلا اكتب هذا الكود:



Code:
--------------------------------------------------------------------------------


Dim X As Byte
X = 256



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



من الواضح ان الصيغة النحوية لهذا الكود صحيحة لكن منطقيا خطأ! جرب تنفيذ البرنامج وستلاحظ ظهور رسالة خطأ OverFlow بسبب ان القيمة القصوى التي يحملها أي متغير من نوع Byte هي 255. طبعا اخطاء وقت التنفيذ كثيرة جدا جدا، فانت عندما تصمم البرنامج تتوقع ان كل الاحتمالات الخارجية كما هي في حالة تصميم البرنامج. مثلا لو وجد في احد سطور برنامج امر يقوم بمسح ملف معين وكتبت هذا الكود:



Code:
--------------------------------------------------------------------------------


Kill “FileName.EXT”



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



قد عمل معك بالشكل المطلوب، لكن افترض ان الملف لم يكن موجود؟ فان رسالة الخطأ سيكون لها نصيب من عمر تنفيذ البرنامج. فلو كنت ذكيا ستتأكد من وجود الملف باستخدام دالة Dir ومن ثم حذفه:



Code:
--------------------------------------------------------------------------------


If Dir$(“FileName.EXT”) Then Kill “FileName.EXT”



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



يبدو ان ذكائك خارق جدا يا قارئ هذه السطور لكن مهلا كاتب هذه السطور لديه شئ اخر ليخبرك. ماذا لو كان الملف موجود لكن خاصية ReadOnly مدعومة به أي انه غير قابل للحذف؟؟ ارأيت رسالة الخطأ ستظهر من جديد. اذا ستستخدم ذكائك الخارق وتتأكد من وجود الملف ومن ثم من عدم وجود خاصية ReadOnly:



Code:
--------------------------------------------------------------------------------


If Dir$(“FileName.EXT”) Then
If Not (GetAttr("FileName.EXT”) And vbReadOnly) Then
Kill “FileName.EXT”
End If
End If



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



حسنا يا قارئي الفاضل. لك مني فائق التقدير والاحترام على محاولتك الرائعة لتجنب الخطأ لكن مع ذلك فهناك احتمال اخر لوقوع الخطأ!!! افترض ان الملف FileName.EXT يتم استخدامه من قبل برنامج اخر Process وكانت عليه خاصية الاقفال (أي مسموح للبرنامج الذي يستخدمه فقط) فانك لن تستطيع فتح الملف وستظهر رسالة الخطأ التي اخبرتك بها واكون قد غلبتك في هذا التحدي.
القضية ليست من يغلب من، فكلنا مبرمجين ننسى كثيرا. لكن لابد من أي مبرمج وضع جميع وكافة الاحتمالات الممكنة لتفادي وتجنب الاخطاء كما سنرى لاحقا.

الشوائب Bugs
قد يكون الكود سليم من ناحية نحوية ولا توجد به أي اخطاء في وقت التنفيذ لكن به شوائب. لا يوجد برنامج الا وبه شوائب. الشوائب هي اخطاء في سلوك تنفيذ البرنامج لكنها لا تسبب في ايقافه، وهي صعبة الايجاد والاكتشاف. لذلك، تجد غالبا في البرامج التجارية الكبيرة صدور نسخ تجريبية Beta توزع على اشخاص وشركات معينة الهدف منها تجربة البرنامج والتحقق من واكتشاف الشوائب الموجودة فيه. من اكبر الاخطاء الذي يقع فيها المبرمج هي محاولة اكتشاف الشوائب بنفسه! والصحيح لن تستطيع اكتشاف الشوائب الا عن طريق غيرك. ففي حالة تجربة برامجك الشخصية فانك اكثر من يعرف طريقة التعامل معها، لكن في حالة وجود نسخة من البرنامج عند شخص اخر فالوضع يختلف، وتبدأ الشوائب بالظهور لديه.
Visual Basic به شوائب!!! هناك الكثير من الشوائب التي تكتشف شهريا وتصدر شركة Microsoft تقارير عنها تجدها بشكل دوري في مكتبة MSDN، بعضها تم اصلاحه وبعض لا. المقصد من هذا الكلام، انه مهما كان مستواك في البرمجة لابد من وجود شوائب في برنامجك.
يوجد الكثير من الكتب التي تناقش مسألة الشوائب البرمجية وكيفية تفاديها اقصد الاقلال منها. احاول في نهاية هذه المقالة اعطاءك تلميحات شخصية قد تفيدك لتجنب الشوائب.






التوقيع !! Awa2il !!

مجموعة الأوائل العربية
ساندنا بنشاطك والعيب إن لم نعطيك ما يفيدك لموقعك
    رد مع اقتباس
قديم 17-Sep-2007, 12:38 AM   رقم المشاركة : 2 (permalink)
!! Awa2il !!
:: مُـَـَ جَرَدْـَـَ إْنْـَـَ سَـَـَاَنْـَـَ ::
 
الصورة الرمزية !! Awa2il !!






!! Awa2il !! متواجد حالياً

!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا

افتراضي

2) تفادي الاخطاء

الكائن Err
عودا الى موضوع اخطاء وقت التشغيل وبالتحديد في مثال الملف FileName.EXT، بدلا من كتابة عشرات الاسطر للتأكد من قابلية حذف الملف، استخدم كائن الخطأ Err. قبل تطبيق هذا الكائن لا بد من معرفة أي كل خطأ من اخطاء وقت التشغيل له رقم خاص فيه ووصف. وعند حدوث الخطأ يتم وضع هذه البيانات (الخاصة بالخطأ) في الكائن Err. عند رغبتك في الاستمرار في عملية تنفيذ البرنامج حتى عند وقوع الخطأ لابد من كتابة التعليمة On Error Resume Next عند بداية كل اجراء حتى يستمر في تنفيذ سطور البرنامج وهي افضل من On Error Goto X. راقب هذا المثال:



Code:
--------------------------------------------------------------------------------


On Error Resume Next

Kill “FileName.EXT”
If Err Then
MsgBox Err.De******ion
Err.Clear
End If



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



هنا سنقوم بمحاولة حذف الملف. ان لم يستطع البرنامج فعل ذلك فان الكائن Err سيحتوي على خصائص تتعلق بذلك الخطأ. كما تلاحظ، سنظهر رسالة توضح وصف الخطأ. من المهم التأكد من تنظيف الكائن Err عن طريق استدعاء الطريقة Clear حتى تخبر البرنامج اننا انتهينا من قنص الخطأ وانه لا يوجد خطأ اخر.

طريقة مفيدة لتجنب الشوائب
تجنب الشوائب يحتاج الى كتب لا نهاية لها! الا انني ساعرض لك طريقة معروفة لمحاولة معرفة اسباب حدوث الشوائب واصلاحها وهي التنفيذ خطوة خطوة! المقصد تنفيذ سطر تلو الاخر عن طريق الضغط على مفتاح F8 للانتقال الى تنفيذ السطر التالي او Shift + F8 لتنفيذ اجراء كامل. من المهم ان اذكر هنا، ان بعض الاحداث كـ KeyUp و غيرها لن يتم تنفيذها بالشكل الصحيح. بالاضافة الى ذلك، اجعل قيمة الخاصية Interval لاداة المؤقت Timer مساوية للصفر حتى لا تزعك كثرة الانتقال الى كود الاداة. ايضا الق نظرة الى قائمة Debug ستجد فيها الكثير من الخدمات الفعالة كمراقبة قيم المتغيرات وتحديد نقاط الايقاف المؤقت للبرنامج.

خاتمة
ناقشت في هذه المقالة موضوع الاخطاء وصنفتها حسب وقت حدوثها. كما تطرقت الى موضوع الشوائب وهو موضوع كبير لا نهاية له وطريقة التنفيذ خطوة خطوة لمعرفة اسباب حدوثها.


















ارسال القيم الى الاجراءات والدوال (للمبتدئين)


الاجراءات Sub's او Functions قابلة لاستقبال متغيرات Argument. تحديد المتغيرات التي يحتاجها الاجراء يعتمد بشكل كبير على الهدف والوظيفة التي يقوم بها الاجراء. ومن اهمية هذا الموضوع خصصت مقالة تتكلم عن موضوع ارسال المتغيرات الى الاجراءات بشيء من التفصيل.



بصفة عامة، الاجراءات سواء كانت Sub او Functions يمكن ان تستقبل انواع مختلفة من المتغيرات سواء كانت انواع قياسية كـ Integer او String الخ.. او حتى انواع معرفة من قبل المستخدم كتركيبات UDT او فئات Classes. بالاضافة الى قابلية الاجراءات لاستقبال المصفوفات Arrays. عملية ارسال المتغير الى الاجراء تتطلب وضع القيم بين قوسين في حالة كون الاجراء سيعود بقيمة لمستدعي ذلك الاجراء، اما غير ذلك فلا يشترط وضع الاقواس.

الارسال بالمرجع او بالقيمة
افتراضيا، تستقبل الاجراءات المتغيرات المرسلة لها بالمرجع. وفي حالة رغبتك لجعلها تستقبل المتغيرات بالقيمة لابد من كتابة الكلمة ByVal عند تصريح المتغير الذي يستقبله الاجراء. اما الفرق بين عملية ارسال المتغير بالمرجع وارساله بالقيمة فهو بسيط جدا. فعملية ارسال المتغير بالمرجع Reference تقوم على اساس ارسال مؤشر المتغير أي عنوان المتغير بالذاكرة والذي عن طريقه تستطيع تعديل قيمة المتغير في الاجراء:



Code:
--------------------------------------------------------------------------------


Sub Start ()
' هنا نقطة البداية
Dim X As Integer

' X = 0
Print X
MySub X
' X = 5
Print X
End Sub

Sub MySub (X As Integer)
X = 5
End Sub



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



فكما تلاحظ في الكود السابق، الاجراء MySub توقع استقبال مرجع لمتغير من نوع Integer مما يعطيه قابلية لتغيير القيمة المرسلة لها. الكثير من الحلول يوفرها لك اسلوب الاستدعاء بالمرجع لعل اسهلها اجراء يقوم بتبديل قيمتين مرسلتان له:



Code:
--------------------------------------------------------------------------------


Sub Swap (X As Variant, Y As Variant)
' اجراء يقوم بتبديل قيم لمتغيران
' ارسلا له مهما كان نوعهما
Dim vTemp As Variant
vTemp = X : X = Y : Y = vTemp
End Sub



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




اما الارسال بالقيمة فهو ابطأ من الارسال بالمرجع خاصة مع الحروف Strings والسبب في ذلك ان Visual Basic سيضطر لنسخ قيمة المتغير الى مكان مؤقت في الذاكرة، كذلك لن تستطيع تعديل قيمة المتغير المرسل لك. لجعل الاجراء يستقبل متغيرات بالقيمة استخدم الكلمة المحجوزة ByVal:



Code:
--------------------------------------------------------------------------------


Sub Start ()
' هنا نقطة البداية
Dim X As Integer, Y As Integer

' X = 0, Y = 0
Print X, Y
MySub X, Y
' X = 3, Y = 0
Print X, Y
End Sub

Sub MySub (X As Integer, ByVal Y As Integer)
X = 5
Y = 10
End Sub



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




ارسال المتغيرات من نوع تركيبات UDT
المتغيرات من نوع التركيبات UDT والتي تنشئها عن طريق الكلمة المحجوزة Type تستطيع ارسالها لكن في حالات خاصة وشروط معينة اختصرها في هذه النقاط:

1) اذا كان مجال التركيب من نوع Private ومعرف في داخل وحدة برمجية كنافذة نموذج، فئة، ملف برمجة الخ.. فان الاجراءت التي داخل تلك الوحدة البرمجية يمكن لها ان تستقبل المتغيرات من نوع ذلك التركيب.

2) اذا كان التركيب مجاله عام Public معرف في ملف برمجة BAS فان جميع الاجراءات التي في نفس المشروع قابلة لاستقبال ذلك التركيب.

3) في حالة كون التركيب معرف في فئة في مشروع COM، فان الاجراءات الموجودة في برنامجك تستطيع ان تستقبل ذلك التركيب المعرف في داخل مكون COM اذا كان مسموح بذلك طبعا.

المتغيرات الاختيارية
اذا كان عدد المتغيرات المرسلة للاجراء غير عدد المتغيرات المصرحة فيه والتي يتوقعها، فان رسالة الخطأ لها نصيب. لذلك، في حالات كثيرة جدا تريد ان تجعل اجراءك مرن بما فيه الكفاية وذلك عن طريق تعريف متغيرات اختيارية تعطي المستخدم حرية ما اذا كان يريد ان يرسلها او لا. تتم هذه العملية عن طريق الكلمة المحجوزة Optional. واذا اردت معرفة ما اذا كان المستخدم قد ارسل قيمة الى الاجراء تحقق عن طريق الدالة IsMissing لكن احذر! دالة IsMissing تعود بقيم صحيحة في حالة كون المتغير المرسل لها من نوع Variant فقط!







التوقيع !! Awa2il !!

مجموعة الأوائل العربية
ساندنا بنشاطك والعيب إن لم نعطيك ما يفيدك لموقعك
    رد مع اقتباس
قديم 17-Sep-2007, 12:38 AM   رقم المشاركة : 3 (permalink)
!! Awa2il !!
:: مُـَـَ جَرَدْـَـَ إْنْـَـَ سَـَـَاَنْـَـَ ::
 
الصورة الرمزية !! Awa2il !!






!! Awa2il !! متواجد حالياً

!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا!! Awa2il !! مميز جدا

افتراضي

Code:
--------------------------------------------------------------------------------


Sub Start ()
' هنا نقطة البداية

' MyFunction = -1
Print MyFunction ()

' MyFunction = 4
Print MyFunction (2)
End Sub

Function MyFunction (Optional X As Variant) As Integer
If IsMissing(X) Then
' لم يتم ارسال قيمة للمتغير
MyFunction = -1
Else
' تم ارسال قيمة للمتغير
MyFunction = X ^ 2
End If
End Function



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




المشكلة هنا ان المتغيرات لابد ان تكون من نوع Variant حتى نتمكن التحقق من ارسالها عن طريق الدالة IsMissing وهو ابطأ الانواع استخدام. لذلك، يبدو ان الحل الافضل هو عن طريق وضع قيمة افتراضية تستخدم في حالة لم يتم ارسال قيم للمتغيرات:




Code:
--------------------------------------------------------------------------------


Sub Start ()
' هنا نقطة البداية

' MyFunction = -1
Print MyFunction ()

' MyFunction = 4
Print MyFunction (2)
End Sub

Function MyFunction (Optional X As Integer = -1) As Integer
If X = -1 Then
' لم يتم ارسال قيمة للمتغير
MyFunction = -1
Else
' تم ارسال قيمة للمتغير
MyFunction = X ^ 2
End If
End Function



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




ملاحظة هامة، هو ان المتغيرات الاختيارية Optional لابد من ان تكون في نهاية سلسة المتغيرات المرسلة الى الاجراء -أي من جهة اليسار- للاجراء.

متغيرات غير محددة العدد
في هذه الحالة، فانك لا تحدد عددا معينا من المتغيرات التي سيستقبلها الاجراء لان القيم ستكون في مصفوفة تعرفها بنفسك عن طريق استخدام الكلمة المحجوزة ParamArray، هذا مثال لدالة توجد مجموع القيم المرسلة لها:




Code:
--------------------------------------------------------------------------------


Function Sum (ParamArray args() As Variant) As Long
Dim iCounter As Integer

For iCounter = 0 To Ubound(args)
Sum = Sum + args(iCounter)
Next iCounter
End Function



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




لابد ان يكون المتغير من نوع Variant حتى تطبق عليه هذا المبدأ، لاستدعاء الدالة الموجودة في المثال السابق كل هذه الامثلة صحيحة:



Code:
--------------------------------------------------------------------------------


' Sum = 10
Print Sum (5, 5)
' Sum = 100
Print Sum (20, 20, 20, 20, 20)
' Sum = 1000
Print Sum (250, 250, 250, 250)



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




خاتمة
ناقشت في هذه المقالة عملية ارسال المتغيرات الى الاجراءت وتطرقت الى الطرق المختلفة لعمل ذلك سواء كانت بالمرجع او بالقيمة. كما عرضت الحالات الخاصة للمتغيرات والخاصة بالتركيبات. ايضا لجعل المتغيرات اختيارية استخدم الكلمة المحجوزة Option والكلمة ParamArray لجعل عدد المتغيرات لا نهائي.



المشكله ليست في البرنامج

المشكله في الكود كيفية كتابة

فيجوال بيسك لا يقبل أي خطىء في الاكواد







التوقيع !! Awa2il !!

مجموعة الأوائل العربية
ساندنا بنشاطك والعيب إن لم نعطيك ما يفيدك لموقعك
    رد مع اقتباس
إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة



الساعة الآن 01:44 AM.

Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2008
:: المعهد غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء يتم عن طريق الماسنجر . [طرق الإتصال بنا عبر الشبكة فقط لا غير ]
 
 
LinkBacks Enabled by vBSEO 3.1.0
  رئيسية المعهد مراسلة الإداره الاعلى