<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب  - دورة تعليم البرمجة باستخدام VB.net,]]></title>
		<link>https://vb4arb.com/vb/</link>
		<description><![CDATA[منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب  - https://vb4arb.com/vb]]></description>
		<pubDate>Wed, 22 Apr 2026 21:55:53 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[تصميم برنامج الخطوه الاولى على فيجوال البيسك وراح يكون دروس ايضاءكثيره]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=9912</link>
			<pubDate>Sat, 03 Aug 2013 02:42:16 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=9207">الرحيل</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=9912</guid>
			<description><![CDATA[شرح تصميم برنامج على فيجوال البيسك بالفديو كااول برنامج لك على فيجوال البيسك 2010 <br />
<br />
<br />
اتبع الفديووو وانشاءالله راح يكون في دروس اكثر <br />
<br />
<br />
تصميم برنامج مع ربط قاعدة البيانات من فجيوال البيسك<br />
<br />
<br />
اظغط على الرابط<br />
<br />
<br />
<a href="http://www.youtube.com/watch?v=yyBwklopdao" target="_blank" rel="noopener" class="mycode_url">http://www.youtube.com/watch?v=yyBwklopdao</a><br />
<br />
<br />
اتمنى ان اكون وفقت في هذا الشرح]]></description>
			<content:encoded><![CDATA[شرح تصميم برنامج على فيجوال البيسك بالفديو كااول برنامج لك على فيجوال البيسك 2010 <br />
<br />
<br />
اتبع الفديووو وانشاءالله راح يكون في دروس اكثر <br />
<br />
<br />
تصميم برنامج مع ربط قاعدة البيانات من فجيوال البيسك<br />
<br />
<br />
اظغط على الرابط<br />
<br />
<br />
<a href="http://www.youtube.com/watch?v=yyBwklopdao" target="_blank" rel="noopener" class="mycode_url">http://www.youtube.com/watch?v=yyBwklopdao</a><br />
<br />
<br />
اتمنى ان اكون وفقت في هذا الشرح]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[السلام عليكم]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=9737</link>
			<pubDate>Mon, 22 Jul 2013 10:20:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=9010">درة</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=9737</guid>
			<description><![CDATA[اذا امكن محتاجة دورة فجول بيسك 6 ولكم كل الشكر والامتنان]]></description>
			<content:encoded><![CDATA[اذا امكن محتاجة دورة فجول بيسك 6 ولكم كل الشكر والامتنان]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل (11) :oop بالتفصيل ..الجزء الاول]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4635</link>
			<pubDate>Sun, 30 Sep 2012 02:35:34 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1070">Easy 4ever</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4635</guid>
			<description><![CDATA[<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">صاحب الموضوع الأخ :-</span> <span style="color: #0000ff;" class="mycode_color">Mohammed Asaad</span></span></span><br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">OOP</span></span></span></div>
<br />
<span style="color: #ff0000;" class="mycode_color">_______________________________________</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">ملاحظة:<br />
</span><span style="color: #b22222;" class="mycode_color">كاتب هذا الدرس الاستاذ أحمد نجم</span></span></span><br />
<span style="color: #ff0000;" class="mycode_color">_______________________________________</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #008000;" class="mycode_color">عندما نتحدث عن الـ </span><span style="color: #800080;" class="mycode_color">OOP </span><span style="color: #008000;" class="mycode_color">أو ما يسمى بالـ [ </span><span style="color: #800080;" class="mycode_color">Object-Oriented Programming</span><span style="color: #008000;" class="mycode_color"> ] ، فهنا نحن بصدد الحدي عن البرمجة الكائنية التوجهية او ما يسمى بالبرمجة الموجهة للكائنات. يتناول هذا الموضوع باذن الله تعالى مميزات وسمات ومبادئ الـ </span><span style="color: #800080;" class="mycode_color">OOP </span><span style="color: #008000;" class="mycode_color">والكامنة في الثلاث مبادئ الأساسية كما يلي :</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">الوراثة </span><span style="color: #008000;" class="mycode_color">...</span> <span style="color: #ff0000;" class="mycode_color">Inheritance</span><br />
<span style="color: #ff0000;" class="mycode_color">التغليف </span><span style="color: #008000;" class="mycode_color">...</span> <span style="color: #ff0000;" class="mycode_color">Encapsulation</span><br />
<span style="color: #ff0000;" class="mycode_color">التعدد أو تعدد الأوجه</span> <span style="color: #008000;" class="mycode_color">...</span> <span style="color: #ff0000;" class="mycode_color">Polymorphism</span><br />
<br />
<span style="color: #008000;" class="mycode_color">هذا بالإضافة لعدة مميزات أو مبادئ أخرى منبثقة من تلك الأساسية التي سبق وأن ذكرناها ، يمكنك متابعة ومعرفة الكثير عن الفئات أو ما يسمى بالـ Class في الدرس رقم ( 10 ) على الرابط</span>  </span></span><a href="https://vb4arb.com/vb/showthread.php?345" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">الفصل(10):مدخل الى الفئات..الجزء الثاني</span></span></a><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
<br />
<span style="color: #0000ff;" class="mycode_color">ولكن دعونا نبدأ من هنا ، فأولاً كي نتعامل مع الفئات فيجب أن يكون لكل فئة أحداثها وخصائصها وطرقها ( وظائفها ). فلو تناولنا عناصر الفئة الثلاث المذكورين فيما سبق فسيكون الآتي :</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">الخاصية [ Property ] ...</span> <span style="color: #008000;" class="mycode_color">الخاصية هي إحدى الطرق التي عن طريقها يتم تخزين نوع أو شكل معين من أنواع البيانات ، ومن الممكن أن تكون هذه القيمة بسيطة كاسم أو رقم أو تاريخ ، ومن الممكن أن تكون معقدة نسبياً كالمصفوفات أو تكون الخاصية أساسا عبارة عن كائن مستقل له خصائصه وأحداثه وطرقه أو وظائفه. للعلم هناك خصائص من النوع ( </span><span style="color: #0000ff;" class="mycode_color">Read/Write</span><span style="color: #008000;" class="mycode_color"> ) وهناك نوع آخر وهو ( </span><span style="color: #0000ff;" class="mycode_color">Read-Only</span><span style="color: #008000;" class="mycode_color"> ).<br />
</span><br />
<span style="color: #ff0000;" class="mycode_color">الطريقة أو الوسيلة [ Method ] ...</span> <span style="color: #008000;" class="mycode_color">تمثل الطريقة دالة أو إجراء ( </span><span style="color: #0000ff;" class="mycode_color">Function Or Subroutine</span><span style="color: #008000;" class="mycode_color"> ). وتعتبر الطريقة أو الوظيفة كجزء من الكود داخل الفئة </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">مما يضفي عليها السمة الأساسية للفئات وكذلك تواجد الطرق داخل الفئات لتنفيذ مجموعة من سطور الكود ضمنياً وتنفيذ وظيفة أو مهمة معينة ظاهرياً.<br />
</span><br />
<span style="color: #ff0000;" class="mycode_color">الحدث [ Event ] ...</span> <span style="color: #008000;" class="mycode_color">الحدث بكل بساطة هو عبارة عن إخطار حركي. يعني هذا أن الحدث يستدعي قطع أو إجراءات معينة من الكود داخل الـ </span><span style="color: #800080;" class="mycode_color">Class</span><span style="color: #008000;" class="mycode_color"> كي يخبرها أن بعض الأحداث أو الشروط داخل الفئة قد وقعت بالفعل.</span><br />
<br />
<br />
<span style="color: #0000ff;" class="mycode_color">اعلم بالطبع أني لم أضف لديك جديداً بل بكل تأكيد قد شوشت عقلك وأذهبت لديك ببعض المفاهيم إلى حيث لا تدري ، ولكن أصغ لي مرة أخيرة وتخيل معي هذا المثال البسيط.</span><br />
<span style="color: #008000;" class="mycode_color">بفرض مثلاً أنه لدينا </span><span style="color: #800080;" class="mycode_color">فئة </span><span style="color: #008000;" class="mycode_color">أو </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">بالمسمى ( </span><span style="color: #0000ff;" class="mycode_color">Job</span><span style="color: #008000;" class="mycode_color"> ) ، فهيا بنا نحلل ما جاء بها كما يلي :</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">أولاً - الخواص [ Properties ] :</span><br />
<br />
<span style="color: #008000;" class="mycode_color">JobDescription</span> <span style="color: #008000;" class="mycode_color">( </span><span style="color: #b22222;" class="mycode_color">وصف أو تعريف الوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">وهي خاصية تحتوي على وصف نصي للوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">WorkHours ( </span><span style="color: #b22222;" class="mycode_color">ساعات العمل</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">وهي خاصية تحتوي على عدد ساعات العمل لتلك الوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">JobCustomer ( </span><span style="color: #b22222;" class="mycode_color">المتقدم للوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">وهنا ستختلف نوع الخاصية فهنا سنقوم بتعريف الخاصية </span><span style="color: #800080;" class="mycode_color">JobCustomer </span><span style="color: #0000ff;" class="mycode_color">على أنها عبارة عن كائن مشتق من فئة </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #0000ff;" class="mycode_color">آخر بالاسم </span><span style="color: #800080;" class="mycode_color">Customer.</span><span style="color: #0000ff;" class="mycode_color"> والفئة </span><span style="color: #800080;" class="mycode_color">Customer </span><span style="color: #0000ff;" class="mycode_color">تحتوي على خصائص وأحداث وطرق ووظائف ومتغيرات وكذلك دوال وإجراءات.</span><br />
<span style="color: #008000;" class="mycode_color">EstimatedHours ( </span><span style="color: #b22222;" class="mycode_color">الساعات المُقدرة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">عدد الساعات المبدئية المُقدرة لأداء هذه الوظيفة.</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">ثانياً – الطرق أو الوسائل [ Methods ] :</span><br />
<br />
<span style="color: #008000;" class="mycode_color">AssignJob (</span><span style="color: #b22222;" class="mycode_color">اعتماد الوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">هذا الإجراء يقوم بتنفيذ اعتماد الوظيفة من الموظف المختص بالتعيين إلى العميل المتقدم للوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">BillJob ( </span><span style="color: #b22222;" class="mycode_color">كشف حساب</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">يقوم مثلا هذا الإجراء بطباعة كشف حساب على سبيل المثال للشخص المتقدم للوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">EstimatedCost ( </span><span style="color: #b22222;" class="mycode_color">التكلفة المقدرة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">دالة تقوم بالرجوع بالتكلفة المُقدرة بناءا على ما ورد في عقد خدمات العميل أو المتقدم للوظيفة وكذلك الساعات المُقدرة التي وردت بالخصائص سابقاً </span><span style="color: #800080;" class="mycode_color">EstimatedHours</span><span style="color: #0000ff;" class="mycode_color">.</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">ثالثاً – الأحداث [ Events ] :</span><br />
<br />
<span style="color: #008000;" class="mycode_color">Created ( </span><span style="color: #b22222;" class="mycode_color">إنشاء الوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">يوفر هذا الحدث إمكانية التحكم بالفئة أو التطبيق عند إنشاء الوظيفة عن طريق كتابة ما يشاء في هذا الحدث.</span><br />
<span style="color: #008000;" class="mycode_color">Assigned ( </span><span style="color: #b22222;" class="mycode_color">التعيين </span><span style="color: #008000;" class="mycode_color">) =</span><span style="color: #0000ff;" class="mycode_color"> يتم تنفيذ ما ورد في هذا الحدث عند موافقة الموظف على العميل المتقدم للوظيفة وإعطاء أمر التعيين.</span><br />
<span style="color: #008000;" class="mycode_color">Rejected ( </span><span style="color: #b22222;" class="mycode_color">الرفض أو ترك المهمة</span><span style="color: #008000;" class="mycode_color"> ) = </span><span style="color: #0000ff;" class="mycode_color">يتم تنفيذ هذا الحدث عند رفض إكمال المهمة من قِبَل الموظف ، ربما حدث هذا لعدم اكتمال أوراق العميل او ربما لظروف طارئة للموظف او عدم تواجد الخبرة الكافية للقيام بهذه المهمة.</span><br />
<span style="color: #008000;" class="mycode_color">Canceled (</span><span style="color: #b22222;" class="mycode_color"> إلغاء الأمر</span><span style="color: #008000;" class="mycode_color"> ) </span>= <span style="color: #0000ff;" class="mycode_color">وهذا مثلاً يتم من قِبَل العميل قبل إصدار أمر التعيين.<br />
</span><br />
<br />
<span style="color: #008000;" class="mycode_color">كانت هذه نظرة سريعة على </span><span style="color: #800080;" class="mycode_color">فئة</span><span style="color: #008000;" class="mycode_color"> أو </span><span style="color: #800080;" class="mycode_color">Class</span><span style="color: #008000;" class="mycode_color"> تحتوي على أحداث وخصائص ودوال وإجراءات وهذا فقط على سبيل المثال. نأتي بعد ذلك لملحوظة مهمة وهي مجمل ما سبق فتعريف الفئة هي عبارة عن مصدر أو كيان أو شخصية برمجية مستقلة تغلف او تحتوي على مجموعة من التعليمات البرمجية على اختلاف أنواعها ( </span><span style="color: #0000ff;" class="mycode_color">خصائص أو أحداث أو دوال وإجراءات</span><span style="color: #008000;" class="mycode_color"> ). لا يعني ما سبق هو شرط تواجد الثلاث مكونات السابقة داخل كل فئة ، ولكن نحن نتحدث عن الأحوال القياسية.<br />
بعد الحصول على نسخة من الفئة ووضع محتوياتها داخل كيان آخر عن طريق جمل التصاريح مهما اختلفت صيغتها كمثل :<br />
</span></span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[b][SIZE=4][color=#0000ff]Dim [/color]MyObj[color=#0000ff] As New [/color][color=#add8e6]Class1[/color][/SIZE][/b]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #008000;" class="mycode_color"><br />
<br />
فهنا يتضح الفرق بين</span><span style="color: #800080;" class="mycode_color"> الكائن</span><span style="color: #008000;" class="mycode_color"> و</span><span style="color: #800080;" class="mycode_color">الفئة</span><span style="color: #008000;" class="mycode_color"> على النحو التالي ، فهنا الفئة هي المسماة </span><span style="color: #800080;" class="mycode_color">Class1 </span><span style="color: #008000;" class="mycode_color">، أما إن الكائن فهو المقصود به الكيان البرمجي الذي قمنا بوضع كافة خصائص الفئة بداخله وهو المسمى في مثالنا </span><span style="color: #800080;" class="mycode_color">MyObj</span><span style="color: #008000;" class="mycode_color">.</span><br />
<br />
</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #FF0000;" class="mycode_color">___________________________<br />
</span></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color"><br />
              ** ملحوظة مهمة **<br />
</span></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #FF0000;" class="mycode_color">___________________________<br />
</span></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
<span style="color: #8b4513;" class="mycode_color">يعتبر الـ </span><span style="color: #ff0000;" class="mycode_color">Visual Basic .NET</span><span style="color: #8b4513;" class="mycode_color"> مكتظ بالفئات ، فعلى سبيل المثال تعتبر كل أداة موجودة داخل الـ </span><span style="color: #ff0000;" class="mycode_color">Component</span><span style="color: #8b4513;" class="mycode_color"> عبارة عن </span><span style="color: #ff0000;" class="mycode_color">Class</span><span style="color: #8b4513;" class="mycode_color"> مستقلة لها أحداثها وخصائصها وطرقها ، وتعتبر الفئة الأب هي الفئة المسماة </span><span style="color: #ff0000;" class="mycode_color">Control.</span><span style="color: #8b4513;" class="mycode_color"> وعند استخدامك لهذه الأدوات فما أنت تعمل إلا مع كائنات مشتقة من مصدرها الأساسي ، فلو فرضنا أننا لدينا </span><span style="color: #ff0000;" class="mycode_color">TextBox </span><span style="color: #8b4513;" class="mycode_color">على الـ </span><span style="color: #ff0000;" class="mycode_color">Form </span><span style="color: #8b4513;" class="mycode_color">فمربع النص هذا عبارة عن كائن مشتق من الفئة المسماة </span><span style="color: #ff0000;" class="mycode_color">TextBox</span><span style="color: #8b4513;" class="mycode_color"> ويحمل هذا الكائن كافة ما يميز هذه الفئة المشتق منها. باختصار وكما يقول البعض [ </span><span style="color: #ff0000;" class="mycode_color">Visual Basic .NET is jam-packed with classes</span><span style="color: #8b4513;" class="mycode_color"> ].</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">___________________________</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">التغليف [ Encapsulation ]</span><br />
<br />
<span style="color: #008000;" class="mycode_color">الواجهة العامة للفئات </span><span style="color: #800080;" class="mycode_color">Class's Interface</span><span style="color: #008000;" class="mycode_color"> تتكون مما سبق ذكره وهي الخصائص وكذلك الطرق والأحداث ، وعندما أتحدث عن الواجهة العامة أقصد بذلك الوظائف والأحداث والخصائص التي تظهر للمستخدم خارج الفئة. </span><br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[b][SIZE=4][color=#0000ff]Dim [/color]CN [color=#0000ff]As New[/color] SqlClient.[color=#add8e6]SqlConnection[/color][/SIZE][/b][b][SIZE=4]<br />
[/SIZE][/b][b][SIZE=4]CN.Open()[/SIZE][/b]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
<br />
<span style="color: #008000;" class="mycode_color">لو نظرنا في هذين السطرين السابقين فسيتضح ما يلي ... أولاً الفئة المسماة </span><span style="color: #800080;" class="mycode_color">SqlConnection </span><span style="color: #008000;" class="mycode_color">عبارة عن فئة مشتقة من مكتبة أو فئة كبرى مسماة </span><span style="color: #800080;" class="mycode_color">SqlClient</span><span style="color: #008000;" class="mycode_color"> ، أما عن الكائن </span><span style="color: #800080;" class="mycode_color">CN </span><span style="color: #008000;" class="mycode_color">فهو كائن يحمل خصائص الفئة </span><span style="color: #800080;" class="mycode_color">SqlConnection </span><span style="color: #008000;" class="mycode_color">فإذا كتبت في محرر </span><span style="color: #800080;" class="mycode_color">VB .NET</span><span style="color: #008000;" class="mycode_color"> اسم الكائن </span><span style="color: #800080;" class="mycode_color">CN </span><span style="color: #008000;" class="mycode_color">ثم ضغطت علامة ( . ) ستظهر كافة الخصائص والطرق الخاصة بالفئة </span><span style="color: #800080;" class="mycode_color">SqlConnection </span><span style="color: #008000;" class="mycode_color">ولكن ستظهر أسماء تلك الخصائص والطرق وليس الأكواد التي كُتبت بها تلك الطرق والخصائص.<br />
</span><br />
<span style="color: #008000;" class="mycode_color">تعال نضرب مثال آخر .. في مثالنا السابق عن الفئة المسماة </span><span style="color: #800080;" class="mycode_color">Job </span><span style="color: #008000;" class="mycode_color">فهناك طريقة أو أجراء بالاسم </span><span style="color: #800080;" class="mycode_color">AssignJob </span><span style="color: #008000;" class="mycode_color">ولكن من الطبيعي لتنفيذ هذه الوظيفة السابق ذكرها أن يكون هناك دالة أثناء التنفيذ بأن يقوم البرنامج بفحص مؤهلات أحد الموظفين للقيام بمتابعة تعيين العميل المتقدم للوظيفة كي ينفذ الوظيفة الرئيسية وهي التعيين ولتكن مثلاً اسم الدالة الفرعية او الثانوية هذه بالاسم </span><span style="color: #800080;" class="mycode_color">FindQualifiedEmployee</span><span style="color: #008000;" class="mycode_color">. وفيما سبق قصدت بأن الدالة المسماة </span><span style="color: #800080;" class="mycode_color">FindQualifiedEmployee </span><span style="color: #008000;" class="mycode_color">غير ظاهرة لمستخدم الـ </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">لذا فهي تم تعريفها أو التصريح عنها بالمفتاح </span><span style="color: #800080;" class="mycode_color">Private </span><span style="color: #008000;" class="mycode_color">أما عن الإجراء AssignJobفتم التصريح عنه بالمفتاح </span><span style="color: #800080;" class="mycode_color">Public</span><span style="color: #008000;" class="mycode_color">. طبقاً لما سبق فإن مستخدم الفئةJobستظهر له الطريقة </span><span style="color: #800080;" class="mycode_color">AssignJob </span><span style="color: #008000;" class="mycode_color">عند التصريح عن كائن كنسخة من الفئة ، أما الدالة </span><span style="color: #800080;" class="mycode_color">FindQualifiedEmployee </span><span style="color: #008000;" class="mycode_color">فهي خاصة بالفئة فقط ولا تظهر للمستخدم للفئة.<br />
بكل اختصار في حديثنا عن التغليف أو الـ </span><span style="color: #800080;" class="mycode_color">Encapsulation </span><span style="color: #008000;" class="mycode_color">، أنت تتحكم فيما يظهر لمستخدم الفئة وفيما لا يظهر من خصائص وطرق وأحداث. وما يظهر فهو يؤدي الوظيفة التي وُجِدَت من أجلها الفئة ( </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">) ، أما ما لا يظهر للمستخدم من أحداث وخصائص وطرق فهو يخدم ما يظهر مما سبق.<br />
يمكنك الاستفادة من مميزات التغليف </span><span style="color: #800080;" class="mycode_color">Encapsulation </span><span style="color: #008000;" class="mycode_color">بعيداً عن الفئات. في العِقد السابق قبل اعتماد بعض اللغات لمبادئ الـ </span><span style="color: #800080;" class="mycode_color">Object-Oriented</span><span style="color: #008000;" class="mycode_color"> كان المبرمجين يقومون بصناعة مكتبات الكود أو تطبيقات معينة وتدعم أيضاً التغليف وبنفس المفهوم الحالي ولكن كان آنذاك بمعنى آخر . على سبيل المثال : لو لدينا مكتبة تحتوي على وظائف ودوال لعلم المثلثات </span><span style="color: #800080;" class="mycode_color">Trigonometry </span><span style="color: #008000;" class="mycode_color">مثلدوالالـ </span><span style="color: #800080;" class="mycode_color">Sines </span><span style="color: #008000;" class="mycode_color">أو </span><span style="color: #800080;" class="mycode_color">Cosines </span><span style="color: #008000;" class="mycode_color">أو </span><span style="color: #800080;" class="mycode_color">Tangents</span><span style="color: #008000;" class="mycode_color"> أو </span><span style="color: #800080;" class="mycode_color">Ar ctagents</span><span style="color: #008000;" class="mycode_color"> ...الخ ، ولتنفيذ هذه الحسابات فيجب أن تحتوي المكتبة على وظائف ودوال مساعدة خفيّة تساهم في الوصول لنتائج الدوال الأساسية السابق ذكرها.</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">الوراثة [ Inheritance ]</span><br />
<br />
<span style="color: #008000;" class="mycode_color">الوراثة ضمن مبادئ الـ OOP عبارة عن اشتقاق فئة من فئة أخرى. وتكون الفئة الجديدة المشتقة ( </span><span style="color: #800080;" class="mycode_color">ChildClass </span><span style="color: #008000;" class="mycode_color">or </span><span style="color: #800080;" class="mycode_color">DerivedClass</span><span style="color: #008000;" class="mycode_color"> or </span><span style="color: #800080;" class="mycode_color">SubClassing </span><span style="color: #008000;" class="mycode_color">) تحتوي على كافة خصائص وأحداث وطرق الفئة الأب </span><span style="color: #800080;" class="mycode_color">ParentClass</span><span style="color: #008000;" class="mycode_color">. هذا بالإضافة إلى انك تستطيع إضافة أحداث وخصائص ودوال وإجراءات جديدة إضافة لما حصلت عليه عن طريق الوراثة من الفئة الأب من الخصائص والأحداث والدوال والإجراءات.<br />
<br />
</span><span style="color: #0000ff;" class="mycode_color">على سبيل المثال : لدينا فئة بالاسم </span><span style="color: #800080;" class="mycode_color">Person </span><span style="color: #0000ff;" class="mycode_color">ولهذه الفئة بعض المتغيرات كـ ( </span><span style="color: #800080;" class="mycode_color">FirstName </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">LastName </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">Age </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">Address </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">EMail </span><span style="color: #0000ff;" class="mycode_color">) ، ومثلاً هناك وظيفة اسمها </span><span style="color: #800080;" class="mycode_color">DialPhone </span><span style="color: #0000ff;" class="mycode_color">وهذه تختص بقيام التطبيق بالاتصال تليفونياً بالشخص وكذلك وظيفة أخرى اسمها </span><span style="color: #800080;" class="mycode_color">SendMail </span><span style="color: #0000ff;" class="mycode_color">وهذه تُمكن المستخدم من إرسال بريد إلكتروني للشخص.<br />
</span><br />
<span style="color: #ff0000;" class="mycode_color">_______</span><br />
<span style="color: #ff0000;" class="mycode_color">التتمة بالاسفل...<br />
</span></span></span>]]></description>
			<content:encoded><![CDATA[<span style="font-size: 4pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">صاحب الموضوع الأخ :-</span> <span style="color: #0000ff;" class="mycode_color">Mohammed Asaad</span></span></span><br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: 5pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #ff0000;" class="mycode_color">OOP</span></span></span></div>
<br />
<span style="color: #ff0000;" class="mycode_color">_______________________________________</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">ملاحظة:<br />
</span><span style="color: #b22222;" class="mycode_color">كاتب هذا الدرس الاستاذ أحمد نجم</span></span></span><br />
<span style="color: #ff0000;" class="mycode_color">_______________________________________</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #008000;" class="mycode_color">عندما نتحدث عن الـ </span><span style="color: #800080;" class="mycode_color">OOP </span><span style="color: #008000;" class="mycode_color">أو ما يسمى بالـ [ </span><span style="color: #800080;" class="mycode_color">Object-Oriented Programming</span><span style="color: #008000;" class="mycode_color"> ] ، فهنا نحن بصدد الحدي عن البرمجة الكائنية التوجهية او ما يسمى بالبرمجة الموجهة للكائنات. يتناول هذا الموضوع باذن الله تعالى مميزات وسمات ومبادئ الـ </span><span style="color: #800080;" class="mycode_color">OOP </span><span style="color: #008000;" class="mycode_color">والكامنة في الثلاث مبادئ الأساسية كما يلي :</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">الوراثة </span><span style="color: #008000;" class="mycode_color">...</span> <span style="color: #ff0000;" class="mycode_color">Inheritance</span><br />
<span style="color: #ff0000;" class="mycode_color">التغليف </span><span style="color: #008000;" class="mycode_color">...</span> <span style="color: #ff0000;" class="mycode_color">Encapsulation</span><br />
<span style="color: #ff0000;" class="mycode_color">التعدد أو تعدد الأوجه</span> <span style="color: #008000;" class="mycode_color">...</span> <span style="color: #ff0000;" class="mycode_color">Polymorphism</span><br />
<br />
<span style="color: #008000;" class="mycode_color">هذا بالإضافة لعدة مميزات أو مبادئ أخرى منبثقة من تلك الأساسية التي سبق وأن ذكرناها ، يمكنك متابعة ومعرفة الكثير عن الفئات أو ما يسمى بالـ Class في الدرس رقم ( 10 ) على الرابط</span>  </span></span><a href="https://vb4arb.com/vb/showthread.php?345" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">الفصل(10):مدخل الى الفئات..الجزء الثاني</span></span></a><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
<br />
<span style="color: #0000ff;" class="mycode_color">ولكن دعونا نبدأ من هنا ، فأولاً كي نتعامل مع الفئات فيجب أن يكون لكل فئة أحداثها وخصائصها وطرقها ( وظائفها ). فلو تناولنا عناصر الفئة الثلاث المذكورين فيما سبق فسيكون الآتي :</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">الخاصية [ Property ] ...</span> <span style="color: #008000;" class="mycode_color">الخاصية هي إحدى الطرق التي عن طريقها يتم تخزين نوع أو شكل معين من أنواع البيانات ، ومن الممكن أن تكون هذه القيمة بسيطة كاسم أو رقم أو تاريخ ، ومن الممكن أن تكون معقدة نسبياً كالمصفوفات أو تكون الخاصية أساسا عبارة عن كائن مستقل له خصائصه وأحداثه وطرقه أو وظائفه. للعلم هناك خصائص من النوع ( </span><span style="color: #0000ff;" class="mycode_color">Read/Write</span><span style="color: #008000;" class="mycode_color"> ) وهناك نوع آخر وهو ( </span><span style="color: #0000ff;" class="mycode_color">Read-Only</span><span style="color: #008000;" class="mycode_color"> ).<br />
</span><br />
<span style="color: #ff0000;" class="mycode_color">الطريقة أو الوسيلة [ Method ] ...</span> <span style="color: #008000;" class="mycode_color">تمثل الطريقة دالة أو إجراء ( </span><span style="color: #0000ff;" class="mycode_color">Function Or Subroutine</span><span style="color: #008000;" class="mycode_color"> ). وتعتبر الطريقة أو الوظيفة كجزء من الكود داخل الفئة </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">مما يضفي عليها السمة الأساسية للفئات وكذلك تواجد الطرق داخل الفئات لتنفيذ مجموعة من سطور الكود ضمنياً وتنفيذ وظيفة أو مهمة معينة ظاهرياً.<br />
</span><br />
<span style="color: #ff0000;" class="mycode_color">الحدث [ Event ] ...</span> <span style="color: #008000;" class="mycode_color">الحدث بكل بساطة هو عبارة عن إخطار حركي. يعني هذا أن الحدث يستدعي قطع أو إجراءات معينة من الكود داخل الـ </span><span style="color: #800080;" class="mycode_color">Class</span><span style="color: #008000;" class="mycode_color"> كي يخبرها أن بعض الأحداث أو الشروط داخل الفئة قد وقعت بالفعل.</span><br />
<br />
<br />
<span style="color: #0000ff;" class="mycode_color">اعلم بالطبع أني لم أضف لديك جديداً بل بكل تأكيد قد شوشت عقلك وأذهبت لديك ببعض المفاهيم إلى حيث لا تدري ، ولكن أصغ لي مرة أخيرة وتخيل معي هذا المثال البسيط.</span><br />
<span style="color: #008000;" class="mycode_color">بفرض مثلاً أنه لدينا </span><span style="color: #800080;" class="mycode_color">فئة </span><span style="color: #008000;" class="mycode_color">أو </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">بالمسمى ( </span><span style="color: #0000ff;" class="mycode_color">Job</span><span style="color: #008000;" class="mycode_color"> ) ، فهيا بنا نحلل ما جاء بها كما يلي :</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">أولاً - الخواص [ Properties ] :</span><br />
<br />
<span style="color: #008000;" class="mycode_color">JobDescription</span> <span style="color: #008000;" class="mycode_color">( </span><span style="color: #b22222;" class="mycode_color">وصف أو تعريف الوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">وهي خاصية تحتوي على وصف نصي للوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">WorkHours ( </span><span style="color: #b22222;" class="mycode_color">ساعات العمل</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">وهي خاصية تحتوي على عدد ساعات العمل لتلك الوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">JobCustomer ( </span><span style="color: #b22222;" class="mycode_color">المتقدم للوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">وهنا ستختلف نوع الخاصية فهنا سنقوم بتعريف الخاصية </span><span style="color: #800080;" class="mycode_color">JobCustomer </span><span style="color: #0000ff;" class="mycode_color">على أنها عبارة عن كائن مشتق من فئة </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #0000ff;" class="mycode_color">آخر بالاسم </span><span style="color: #800080;" class="mycode_color">Customer.</span><span style="color: #0000ff;" class="mycode_color"> والفئة </span><span style="color: #800080;" class="mycode_color">Customer </span><span style="color: #0000ff;" class="mycode_color">تحتوي على خصائص وأحداث وطرق ووظائف ومتغيرات وكذلك دوال وإجراءات.</span><br />
<span style="color: #008000;" class="mycode_color">EstimatedHours ( </span><span style="color: #b22222;" class="mycode_color">الساعات المُقدرة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">عدد الساعات المبدئية المُقدرة لأداء هذه الوظيفة.</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">ثانياً – الطرق أو الوسائل [ Methods ] :</span><br />
<br />
<span style="color: #008000;" class="mycode_color">AssignJob (</span><span style="color: #b22222;" class="mycode_color">اعتماد الوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">هذا الإجراء يقوم بتنفيذ اعتماد الوظيفة من الموظف المختص بالتعيين إلى العميل المتقدم للوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">BillJob ( </span><span style="color: #b22222;" class="mycode_color">كشف حساب</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">يقوم مثلا هذا الإجراء بطباعة كشف حساب على سبيل المثال للشخص المتقدم للوظيفة.</span><br />
<span style="color: #008000;" class="mycode_color">EstimatedCost ( </span><span style="color: #b22222;" class="mycode_color">التكلفة المقدرة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">دالة تقوم بالرجوع بالتكلفة المُقدرة بناءا على ما ورد في عقد خدمات العميل أو المتقدم للوظيفة وكذلك الساعات المُقدرة التي وردت بالخصائص سابقاً </span><span style="color: #800080;" class="mycode_color">EstimatedHours</span><span style="color: #0000ff;" class="mycode_color">.</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">ثالثاً – الأحداث [ Events ] :</span><br />
<br />
<span style="color: #008000;" class="mycode_color">Created ( </span><span style="color: #b22222;" class="mycode_color">إنشاء الوظيفة</span><span style="color: #008000;" class="mycode_color"> ) =</span> <span style="color: #0000ff;" class="mycode_color">يوفر هذا الحدث إمكانية التحكم بالفئة أو التطبيق عند إنشاء الوظيفة عن طريق كتابة ما يشاء في هذا الحدث.</span><br />
<span style="color: #008000;" class="mycode_color">Assigned ( </span><span style="color: #b22222;" class="mycode_color">التعيين </span><span style="color: #008000;" class="mycode_color">) =</span><span style="color: #0000ff;" class="mycode_color"> يتم تنفيذ ما ورد في هذا الحدث عند موافقة الموظف على العميل المتقدم للوظيفة وإعطاء أمر التعيين.</span><br />
<span style="color: #008000;" class="mycode_color">Rejected ( </span><span style="color: #b22222;" class="mycode_color">الرفض أو ترك المهمة</span><span style="color: #008000;" class="mycode_color"> ) = </span><span style="color: #0000ff;" class="mycode_color">يتم تنفيذ هذا الحدث عند رفض إكمال المهمة من قِبَل الموظف ، ربما حدث هذا لعدم اكتمال أوراق العميل او ربما لظروف طارئة للموظف او عدم تواجد الخبرة الكافية للقيام بهذه المهمة.</span><br />
<span style="color: #008000;" class="mycode_color">Canceled (</span><span style="color: #b22222;" class="mycode_color"> إلغاء الأمر</span><span style="color: #008000;" class="mycode_color"> ) </span>= <span style="color: #0000ff;" class="mycode_color">وهذا مثلاً يتم من قِبَل العميل قبل إصدار أمر التعيين.<br />
</span><br />
<br />
<span style="color: #008000;" class="mycode_color">كانت هذه نظرة سريعة على </span><span style="color: #800080;" class="mycode_color">فئة</span><span style="color: #008000;" class="mycode_color"> أو </span><span style="color: #800080;" class="mycode_color">Class</span><span style="color: #008000;" class="mycode_color"> تحتوي على أحداث وخصائص ودوال وإجراءات وهذا فقط على سبيل المثال. نأتي بعد ذلك لملحوظة مهمة وهي مجمل ما سبق فتعريف الفئة هي عبارة عن مصدر أو كيان أو شخصية برمجية مستقلة تغلف او تحتوي على مجموعة من التعليمات البرمجية على اختلاف أنواعها ( </span><span style="color: #0000ff;" class="mycode_color">خصائص أو أحداث أو دوال وإجراءات</span><span style="color: #008000;" class="mycode_color"> ). لا يعني ما سبق هو شرط تواجد الثلاث مكونات السابقة داخل كل فئة ، ولكن نحن نتحدث عن الأحوال القياسية.<br />
بعد الحصول على نسخة من الفئة ووضع محتوياتها داخل كيان آخر عن طريق جمل التصاريح مهما اختلفت صيغتها كمثل :<br />
</span></span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[b][SIZE=4][color=#0000ff]Dim [/color]MyObj[color=#0000ff] As New [/color][color=#add8e6]Class1[/color][/SIZE][/b]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #008000;" class="mycode_color"><br />
<br />
فهنا يتضح الفرق بين</span><span style="color: #800080;" class="mycode_color"> الكائن</span><span style="color: #008000;" class="mycode_color"> و</span><span style="color: #800080;" class="mycode_color">الفئة</span><span style="color: #008000;" class="mycode_color"> على النحو التالي ، فهنا الفئة هي المسماة </span><span style="color: #800080;" class="mycode_color">Class1 </span><span style="color: #008000;" class="mycode_color">، أما إن الكائن فهو المقصود به الكيان البرمجي الذي قمنا بوضع كافة خصائص الفئة بداخله وهو المسمى في مثالنا </span><span style="color: #800080;" class="mycode_color">MyObj</span><span style="color: #008000;" class="mycode_color">.</span><br />
<br />
</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #FF0000;" class="mycode_color">___________________________<br />
</span></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color"><br />
              ** ملحوظة مهمة **<br />
</span></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><span style="color: #FF0000;" class="mycode_color">___________________________<br />
</span></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
<span style="color: #8b4513;" class="mycode_color">يعتبر الـ </span><span style="color: #ff0000;" class="mycode_color">Visual Basic .NET</span><span style="color: #8b4513;" class="mycode_color"> مكتظ بالفئات ، فعلى سبيل المثال تعتبر كل أداة موجودة داخل الـ </span><span style="color: #ff0000;" class="mycode_color">Component</span><span style="color: #8b4513;" class="mycode_color"> عبارة عن </span><span style="color: #ff0000;" class="mycode_color">Class</span><span style="color: #8b4513;" class="mycode_color"> مستقلة لها أحداثها وخصائصها وطرقها ، وتعتبر الفئة الأب هي الفئة المسماة </span><span style="color: #ff0000;" class="mycode_color">Control.</span><span style="color: #8b4513;" class="mycode_color"> وعند استخدامك لهذه الأدوات فما أنت تعمل إلا مع كائنات مشتقة من مصدرها الأساسي ، فلو فرضنا أننا لدينا </span><span style="color: #ff0000;" class="mycode_color">TextBox </span><span style="color: #8b4513;" class="mycode_color">على الـ </span><span style="color: #ff0000;" class="mycode_color">Form </span><span style="color: #8b4513;" class="mycode_color">فمربع النص هذا عبارة عن كائن مشتق من الفئة المسماة </span><span style="color: #ff0000;" class="mycode_color">TextBox</span><span style="color: #8b4513;" class="mycode_color"> ويحمل هذا الكائن كافة ما يميز هذه الفئة المشتق منها. باختصار وكما يقول البعض [ </span><span style="color: #ff0000;" class="mycode_color">Visual Basic .NET is jam-packed with classes</span><span style="color: #8b4513;" class="mycode_color"> ].</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">___________________________</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">التغليف [ Encapsulation ]</span><br />
<br />
<span style="color: #008000;" class="mycode_color">الواجهة العامة للفئات </span><span style="color: #800080;" class="mycode_color">Class's Interface</span><span style="color: #008000;" class="mycode_color"> تتكون مما سبق ذكره وهي الخصائص وكذلك الطرق والأحداث ، وعندما أتحدث عن الواجهة العامة أقصد بذلك الوظائف والأحداث والخصائص التي تظهر للمستخدم خارج الفئة. </span><br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[b][SIZE=4][color=#0000ff]Dim [/color]CN [color=#0000ff]As New[/color] SqlClient.[color=#add8e6]SqlConnection[/color][/SIZE][/b][b][SIZE=4]<br />
[/SIZE][/b][b][SIZE=4]CN.Open()[/SIZE][/b]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
<br />
<span style="color: #008000;" class="mycode_color">لو نظرنا في هذين السطرين السابقين فسيتضح ما يلي ... أولاً الفئة المسماة </span><span style="color: #800080;" class="mycode_color">SqlConnection </span><span style="color: #008000;" class="mycode_color">عبارة عن فئة مشتقة من مكتبة أو فئة كبرى مسماة </span><span style="color: #800080;" class="mycode_color">SqlClient</span><span style="color: #008000;" class="mycode_color"> ، أما عن الكائن </span><span style="color: #800080;" class="mycode_color">CN </span><span style="color: #008000;" class="mycode_color">فهو كائن يحمل خصائص الفئة </span><span style="color: #800080;" class="mycode_color">SqlConnection </span><span style="color: #008000;" class="mycode_color">فإذا كتبت في محرر </span><span style="color: #800080;" class="mycode_color">VB .NET</span><span style="color: #008000;" class="mycode_color"> اسم الكائن </span><span style="color: #800080;" class="mycode_color">CN </span><span style="color: #008000;" class="mycode_color">ثم ضغطت علامة ( . ) ستظهر كافة الخصائص والطرق الخاصة بالفئة </span><span style="color: #800080;" class="mycode_color">SqlConnection </span><span style="color: #008000;" class="mycode_color">ولكن ستظهر أسماء تلك الخصائص والطرق وليس الأكواد التي كُتبت بها تلك الطرق والخصائص.<br />
</span><br />
<span style="color: #008000;" class="mycode_color">تعال نضرب مثال آخر .. في مثالنا السابق عن الفئة المسماة </span><span style="color: #800080;" class="mycode_color">Job </span><span style="color: #008000;" class="mycode_color">فهناك طريقة أو أجراء بالاسم </span><span style="color: #800080;" class="mycode_color">AssignJob </span><span style="color: #008000;" class="mycode_color">ولكن من الطبيعي لتنفيذ هذه الوظيفة السابق ذكرها أن يكون هناك دالة أثناء التنفيذ بأن يقوم البرنامج بفحص مؤهلات أحد الموظفين للقيام بمتابعة تعيين العميل المتقدم للوظيفة كي ينفذ الوظيفة الرئيسية وهي التعيين ولتكن مثلاً اسم الدالة الفرعية او الثانوية هذه بالاسم </span><span style="color: #800080;" class="mycode_color">FindQualifiedEmployee</span><span style="color: #008000;" class="mycode_color">. وفيما سبق قصدت بأن الدالة المسماة </span><span style="color: #800080;" class="mycode_color">FindQualifiedEmployee </span><span style="color: #008000;" class="mycode_color">غير ظاهرة لمستخدم الـ </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">لذا فهي تم تعريفها أو التصريح عنها بالمفتاح </span><span style="color: #800080;" class="mycode_color">Private </span><span style="color: #008000;" class="mycode_color">أما عن الإجراء AssignJobفتم التصريح عنه بالمفتاح </span><span style="color: #800080;" class="mycode_color">Public</span><span style="color: #008000;" class="mycode_color">. طبقاً لما سبق فإن مستخدم الفئةJobستظهر له الطريقة </span><span style="color: #800080;" class="mycode_color">AssignJob </span><span style="color: #008000;" class="mycode_color">عند التصريح عن كائن كنسخة من الفئة ، أما الدالة </span><span style="color: #800080;" class="mycode_color">FindQualifiedEmployee </span><span style="color: #008000;" class="mycode_color">فهي خاصة بالفئة فقط ولا تظهر للمستخدم للفئة.<br />
بكل اختصار في حديثنا عن التغليف أو الـ </span><span style="color: #800080;" class="mycode_color">Encapsulation </span><span style="color: #008000;" class="mycode_color">، أنت تتحكم فيما يظهر لمستخدم الفئة وفيما لا يظهر من خصائص وطرق وأحداث. وما يظهر فهو يؤدي الوظيفة التي وُجِدَت من أجلها الفئة ( </span><span style="color: #800080;" class="mycode_color">Class </span><span style="color: #008000;" class="mycode_color">) ، أما ما لا يظهر للمستخدم من أحداث وخصائص وطرق فهو يخدم ما يظهر مما سبق.<br />
يمكنك الاستفادة من مميزات التغليف </span><span style="color: #800080;" class="mycode_color">Encapsulation </span><span style="color: #008000;" class="mycode_color">بعيداً عن الفئات. في العِقد السابق قبل اعتماد بعض اللغات لمبادئ الـ </span><span style="color: #800080;" class="mycode_color">Object-Oriented</span><span style="color: #008000;" class="mycode_color"> كان المبرمجين يقومون بصناعة مكتبات الكود أو تطبيقات معينة وتدعم أيضاً التغليف وبنفس المفهوم الحالي ولكن كان آنذاك بمعنى آخر . على سبيل المثال : لو لدينا مكتبة تحتوي على وظائف ودوال لعلم المثلثات </span><span style="color: #800080;" class="mycode_color">Trigonometry </span><span style="color: #008000;" class="mycode_color">مثلدوالالـ </span><span style="color: #800080;" class="mycode_color">Sines </span><span style="color: #008000;" class="mycode_color">أو </span><span style="color: #800080;" class="mycode_color">Cosines </span><span style="color: #008000;" class="mycode_color">أو </span><span style="color: #800080;" class="mycode_color">Tangents</span><span style="color: #008000;" class="mycode_color"> أو </span><span style="color: #800080;" class="mycode_color">Ar ctagents</span><span style="color: #008000;" class="mycode_color"> ...الخ ، ولتنفيذ هذه الحسابات فيجب أن تحتوي المكتبة على وظائف ودوال مساعدة خفيّة تساهم في الوصول لنتائج الدوال الأساسية السابق ذكرها.</span><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">الوراثة [ Inheritance ]</span><br />
<br />
<span style="color: #008000;" class="mycode_color">الوراثة ضمن مبادئ الـ OOP عبارة عن اشتقاق فئة من فئة أخرى. وتكون الفئة الجديدة المشتقة ( </span><span style="color: #800080;" class="mycode_color">ChildClass </span><span style="color: #008000;" class="mycode_color">or </span><span style="color: #800080;" class="mycode_color">DerivedClass</span><span style="color: #008000;" class="mycode_color"> or </span><span style="color: #800080;" class="mycode_color">SubClassing </span><span style="color: #008000;" class="mycode_color">) تحتوي على كافة خصائص وأحداث وطرق الفئة الأب </span><span style="color: #800080;" class="mycode_color">ParentClass</span><span style="color: #008000;" class="mycode_color">. هذا بالإضافة إلى انك تستطيع إضافة أحداث وخصائص ودوال وإجراءات جديدة إضافة لما حصلت عليه عن طريق الوراثة من الفئة الأب من الخصائص والأحداث والدوال والإجراءات.<br />
<br />
</span><span style="color: #0000ff;" class="mycode_color">على سبيل المثال : لدينا فئة بالاسم </span><span style="color: #800080;" class="mycode_color">Person </span><span style="color: #0000ff;" class="mycode_color">ولهذه الفئة بعض المتغيرات كـ ( </span><span style="color: #800080;" class="mycode_color">FirstName </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">LastName </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">Age </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">Address </span><span style="color: #0000ff;" class="mycode_color">, </span><span style="color: #800080;" class="mycode_color">EMail </span><span style="color: #0000ff;" class="mycode_color">) ، ومثلاً هناك وظيفة اسمها </span><span style="color: #800080;" class="mycode_color">DialPhone </span><span style="color: #0000ff;" class="mycode_color">وهذه تختص بقيام التطبيق بالاتصال تليفونياً بالشخص وكذلك وظيفة أخرى اسمها </span><span style="color: #800080;" class="mycode_color">SendMail </span><span style="color: #0000ff;" class="mycode_color">وهذه تُمكن المستخدم من إرسال بريد إلكتروني للشخص.<br />
</span><br />
<span style="color: #ff0000;" class="mycode_color">_______</span><br />
<span style="color: #ff0000;" class="mycode_color">التتمة بالاسفل...<br />
</span></span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(16): مدخل لمسارات التنفيذ Threading]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4388</link>
			<pubDate>Sun, 23 Sep 2012 14:46:49 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4388</guid>
			<description><![CDATA[<span style="color: #ff0000;" class="mycode_color">السلام عليكم ورحمة الله وبركاته</span><br />
في هذا الفصل سنتطرق لموضوع نال أهمية واضحة في عالم الدوت نت<br />
سأتطرق لعدة أمثلة توضح مضمون فصلنا لهذا اليوم إن شاء الله<br />
<br />
<span style="color: red;" class="mycode_color">ملاحظة </span>: بعض الأمثلة اقتبستها من مصادر أخرى لوضوحها<br />
<br />
لنأخذ مثلا برنامج الوورد.. نعرف جميعا أن برنامج الوورد يقوم بعملية  التدقيق الإملائي وعند كتابة أي كلمة يقوم الورد بالبحث عنها في معجمه وإن  لم يجدها يخبرك بأنها خاطئة<br />
في الحقيقة عملية البحث في معجم يحتوي على كم هائل من الكلمات عملية ليست  بالبسيطة وتستغرق وقت ومصادر ليست بالقليلة.. وإن كان الأمر أن يقوم  البرنامج بعملية تدقيق بعد كل حرف - وهذا ما يحدث فعلا - بتفكيرنا وعلمنا  الضيق بواسطة برنامج واحد لمكثنا وقتا طويلا في كتابة جملة واحدة فقط وهنا  تأتي فكرة التطبيقات متعددة مسارات التنفيذ<br />
حيث تم إنشاء مسار خاص بالمدقق وحده بشكل لا يؤثر على عمل البرنامج.<br />
<br />
إن لم تتضح الفكرة بالمثال السابق لنتناول المثال التالي:<br />
مضادات الفيروسات تقوم بالكثير من المهام في نفس الوقت ( مراقبة المنافذ وفحص الملفات و تحديثات للبرنامج ووو)<br />
من البديهي جدا أن كل ذلك لا يتم في مسار واحد وإلا لما استطاع البرنامج القيام بهذه المهام في ذات الوقت.<br />
<br />
<br />
الآن أتمنى أن تكون الفكرة قد وصلت ولندخل لموضوعنا بإذن الله.<br />
<br />
في بادئ الأمر دعني أناقش معك المثال التالي من باب التوضيح:<br />
الآن قم بانشاء مشروع جديد وضع فيه بوتون واحد  وأداة Label وأداة تايمر<br />
دعنا نقوم بعملية ربط نصوص في حلقة تكرارية ل 100000 مرة.<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#007700]Private [/color][color=#0000BB]Sub Button1_Click[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Button1[/color][color=#007700].[/color][COLOR=#0000BB]Click<br />
Dim MyString&nbsp;&nbsp;[/COLOR][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]For [/color][color=#0000BB]I [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 100000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyString [/COLOR][color=#007700]&amp;= [/color][COLOR=#DD0000]"o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]Next<br />
<br />
End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
نفذ البرنامج واضغط على البوتون الذي وضعته.<br />
ستجد أن البرنامج توقف عن الاستجابة لثوان عديدة مما سيثير استفزاز المستخدم <img src="http://www.vb4arab.com/vb/images/smilies/smile.gif" loading="lazy"  alt="[صورة مرفقة: smile.gif]" class="mycode_img" /><br />
وسبب التوقف - لم يتوقف فعلا - أن البرنامج مشغول ب100000 عملية ربط نصوص<br />
لتفادي هذه المشكلة دعنا نجعل تنفيذ عملية الربط في مسار آخر حتى لا يؤثر  ذلك على عمل البرنامج ومن هنا يستدعي الأمر الإعلان عن Thread جديد<br />
في البداية قم باستيراد مجال الأسماء System.Threading<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]Imports System[/color][color=#007700].[/color][COLOR=#0000BB]Threading&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
الآن نقوم بتعريف كائن جديد من نوع Thread<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[COLOR=#000000] [COLOR=#0000BB]Dim NewThread [/color][color=#007700]As New [/color][color=#0000BB]Thread[/color][color=#007700]([/color][color=#0000BB]AddressOf DoIt[/color][color=#007700])&nbsp;&nbsp;[/color][/COLOR]<br />
[/COLOR][/COLOR][/align]</code></div></div><br />
تجد أنه من الضروري تمرير وسيط باستخدام الكلمة المحجوزة AddressOf وفي المثال التعليمة السابقة مررنا له إجراء DoIt <br />
<br />
وهذا الإجراء الذي قمنا بتمريره قبل قليل<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB] Sub DoIt[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For [/COLOR][color=#0000BB]I [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 100000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyString [/COLOR][color=#007700]&amp;= [/color][COLOR=#DD0000]"o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]Next<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewThread[/COLOR][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]End Sub <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span>تجد أننا قمنا بعملية الربط داخل الإجراء DoIt<br />
<br />
لتنفيذ الThread الذي أعلنا عنه (NewThread) استخدم الطريقة Start<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Start[/color][color=#007700]()[/color][/COLOR]<br />
[/align]</code></div></div><br />
الآن بعد تشغيل المسار الآخر دعنا نراقب ما وصلت إليه عملية الربط باستخدام تايمر جديد<br />
<br />
وهذا الكود بشكله النهائي للمثال الأخير لربط المفاهيم بعضها ببعض<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]&nbsp;&nbsp; Dim MyString [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]""<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]Dim NewThread [/color][color=#007700]As New [/color][color=#0000BB]Threading[/color][color=#007700].[/color][color=#0000BB]Thread[/color][color=#007700]([/color][color=#0000BB]AddressOf DoIt[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;Private [/COLOR][color=#0000BB]Sub Button1_Click[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Button1[/color][color=#007700].[/color][COLOR=#0000BB]Click<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewThread[/COLOR][color=#007700].[/color][color=#0000BB]Start[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]Button1[/color][color=#007700].[/color][color=#0000BB]Enabled [/color][color=#007700]= [/color][COLOR=#0000BB]False<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Sub DoIt[/COLOR][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For [/COLOR][color=#0000BB]I [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 100000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyString [/COLOR][color=#007700]&amp;= [/color][COLOR=#DD0000]"o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]Next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewThread[/COLOR][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]End Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Private [/color][color=#0000BB]Sub Timer1_Tick[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Timer1[/color][color=#007700].[/color][COLOR=#0000BB]Tick<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label1[/COLOR][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][color=#0000BB]MyString[/color][color=#007700].[/color][COLOR=#0000BB]Length<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Private [/color][color=#0000BB]Sub Form1_Load[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Me[/color][color=#007700].[/color][COLOR=#0000BB]Load<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer1[/COLOR][color=#007700].[/color][color=#0000BB]Enabled [/color][color=#007700]= [/color][COLOR=#0000BB]True<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span><br />
بهذا إن شاء الله نكون أتممنا توضيح مفهوم الThreads<br />
<br />
نأتي الآن لطرق الThread<br />
<ul class="mycode_list"><li>Start<br />
</li>
</ul>
 وهي إشارة لبدء تنفيذ الThread<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Start[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Abort<br />
</li>
</ul>
 وهي لإحباط و إيقاف ال Thread<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Suspend<br />
</li>
</ul>
 وهي للإيقاف المؤقت لل Tread<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Suspend[/color][color=#007700]()&nbsp;&nbsp;[/color][/COLOR]<br />
[/align]</code></div></div><br />
<ul class="mycode_list"><li>Resume<br />
</li>
</ul>
 وهي لمتابعة الThread بعد اللإيقاف المؤقت له<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Resume[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Sleep<br />
</li>
</ul>
 وهي لايقاف الThread بشكل مؤقت لفترة زمنية تقوم بتحديدها<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Sleep[/color][color=#007700]([/color][color=#0000BB]1000[/color][color=#007700])&nbsp;&nbsp;[/color][color=#0000BB]Will Suspend [/color][color=#007700]for [/color][COLOR=#0000BB]1 second&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
يمكننا التحكم بالمسار الحالي من خلال<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]Thread[/color][color=#007700].[/color][COLOR=#0000BB]CurrentThread&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]Thread[/color][color=#007700].[/color][color=#0000BB]CurrentThread[/color][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
ونأتي لخاصية من خواص الThread<br />
IsAlive()<br />
<div style="text-align: left;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"> </span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#007700]If [/color][color=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]IsAlive[/color][color=#007700]() [/color][COLOR=#0000BB]Then<br />
[/COLOR][color=#DD0000]''[/color][COLOR=#0000BB]Statements<br />
End [/COLOR][COLOR=#007700]If <br />
[/COLOR]</code></div></div></span><br />
</div>
<span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
قرأت عبارة في كتاب الاستاذ تركي العسيري طريفة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>من الغباء الاستعلام عن الخاصية IsAlive لمسار التنفيذ الحالي:[align=left] If Thread.CurrentThread.IsAlive() Then ......<br />
[/align]<br />
 فهي ستعود بالقيمة True دائما لأسباب منطقية .</code></div></div><br />
طبعا تعرفوا السبب !<br />
<br />
أيضا يمكن إسناد اسم لكل مسار تنفيذ ما يساعدك على مراقبة عمل برنامج بدقة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Name [/color][color=#007700]= [/color][COLOR=#DD0000]"My Thread"&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #DD0000;" class="mycode_color"><br />
</span></span><br />
أيضا يمكنك معرفة حالة الThread باستخدام الخاصية ThreadState<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB][/color][color=#007700]If [/color][color=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]ThreadState [/color][color=#007700]= [/color][color=#0000BB]ThreadState[/color][color=#007700].[/color][color=#0000BB]Running Then[/color][COLOR=#007700].....&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
والحالات التي يمكن أن تصادف الThread هي<br />
<div style="text-align: left;" class="mycode_align">ThreadState.Aborted<br />
ThreadState.AbortRequested<br />
ThreadState.Background<br />
ThreadState.Running<br />
ThreadState.Stopped<br />
ThreadState.StopRequested<br />
ThreadState.Suspended<br />
ThreadState.SuspendRequested<br />
ThreadState.Unstarted<br />
ThreadState.WaitSleepJoin<br />
</div>
<br />
<br />
نأتي لنقطة أخيرة في فصلنا لهذا اليوم<br />
يمكن تعيين الأفضلية للمسارات باستخدام الخاصية Priority<br />
وبها خمس تعيينات <br />
<ul class="mycode_list"><li>الأقل<br />
</li>
<li>أقل من العادي<br />
</li>
<li>عادي<br />
</li>
<li>أكثر من العادي<br />
</li>
<li>الأكثر<br />
</li>
</ul>
 <br />
<span style="color: #0000cd;" class="mycode_color"> بهذا نتمم فصلنا لهذا اليوم </span><span style="color: #ff0000;" class="mycode_color"><br />
والسلام عليكم </span><br />
<br />
إخوانكم <span style="color: #0000ff;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span>]]></description>
			<content:encoded><![CDATA[<span style="color: #ff0000;" class="mycode_color">السلام عليكم ورحمة الله وبركاته</span><br />
في هذا الفصل سنتطرق لموضوع نال أهمية واضحة في عالم الدوت نت<br />
سأتطرق لعدة أمثلة توضح مضمون فصلنا لهذا اليوم إن شاء الله<br />
<br />
<span style="color: red;" class="mycode_color">ملاحظة </span>: بعض الأمثلة اقتبستها من مصادر أخرى لوضوحها<br />
<br />
لنأخذ مثلا برنامج الوورد.. نعرف جميعا أن برنامج الوورد يقوم بعملية  التدقيق الإملائي وعند كتابة أي كلمة يقوم الورد بالبحث عنها في معجمه وإن  لم يجدها يخبرك بأنها خاطئة<br />
في الحقيقة عملية البحث في معجم يحتوي على كم هائل من الكلمات عملية ليست  بالبسيطة وتستغرق وقت ومصادر ليست بالقليلة.. وإن كان الأمر أن يقوم  البرنامج بعملية تدقيق بعد كل حرف - وهذا ما يحدث فعلا - بتفكيرنا وعلمنا  الضيق بواسطة برنامج واحد لمكثنا وقتا طويلا في كتابة جملة واحدة فقط وهنا  تأتي فكرة التطبيقات متعددة مسارات التنفيذ<br />
حيث تم إنشاء مسار خاص بالمدقق وحده بشكل لا يؤثر على عمل البرنامج.<br />
<br />
إن لم تتضح الفكرة بالمثال السابق لنتناول المثال التالي:<br />
مضادات الفيروسات تقوم بالكثير من المهام في نفس الوقت ( مراقبة المنافذ وفحص الملفات و تحديثات للبرنامج ووو)<br />
من البديهي جدا أن كل ذلك لا يتم في مسار واحد وإلا لما استطاع البرنامج القيام بهذه المهام في ذات الوقت.<br />
<br />
<br />
الآن أتمنى أن تكون الفكرة قد وصلت ولندخل لموضوعنا بإذن الله.<br />
<br />
في بادئ الأمر دعني أناقش معك المثال التالي من باب التوضيح:<br />
الآن قم بانشاء مشروع جديد وضع فيه بوتون واحد  وأداة Label وأداة تايمر<br />
دعنا نقوم بعملية ربط نصوص في حلقة تكرارية ل 100000 مرة.<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#007700]Private [/color][color=#0000BB]Sub Button1_Click[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Button1[/color][color=#007700].[/color][COLOR=#0000BB]Click<br />
Dim MyString&nbsp;&nbsp;[/COLOR][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]""<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]For [/color][color=#0000BB]I [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 100000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyString [/COLOR][color=#007700]&amp;= [/color][COLOR=#DD0000]"o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]Next<br />
<br />
End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
نفذ البرنامج واضغط على البوتون الذي وضعته.<br />
ستجد أن البرنامج توقف عن الاستجابة لثوان عديدة مما سيثير استفزاز المستخدم <img src="http://www.vb4arab.com/vb/images/smilies/smile.gif" loading="lazy"  alt="[صورة مرفقة: smile.gif]" class="mycode_img" /><br />
وسبب التوقف - لم يتوقف فعلا - أن البرنامج مشغول ب100000 عملية ربط نصوص<br />
لتفادي هذه المشكلة دعنا نجعل تنفيذ عملية الربط في مسار آخر حتى لا يؤثر  ذلك على عمل البرنامج ومن هنا يستدعي الأمر الإعلان عن Thread جديد<br />
في البداية قم باستيراد مجال الأسماء System.Threading<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]Imports System[/color][color=#007700].[/color][COLOR=#0000BB]Threading&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
الآن نقوم بتعريف كائن جديد من نوع Thread<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[COLOR=#000000] [COLOR=#0000BB]Dim NewThread [/color][color=#007700]As New [/color][color=#0000BB]Thread[/color][color=#007700]([/color][color=#0000BB]AddressOf DoIt[/color][color=#007700])&nbsp;&nbsp;[/color][/COLOR]<br />
[/COLOR][/COLOR][/align]</code></div></div><br />
تجد أنه من الضروري تمرير وسيط باستخدام الكلمة المحجوزة AddressOf وفي المثال التعليمة السابقة مررنا له إجراء DoIt <br />
<br />
وهذا الإجراء الذي قمنا بتمريره قبل قليل<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB] Sub DoIt[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For [/COLOR][color=#0000BB]I [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 100000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyString [/COLOR][color=#007700]&amp;= [/color][COLOR=#DD0000]"o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]Next<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewThread[/COLOR][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]End Sub <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span>تجد أننا قمنا بعملية الربط داخل الإجراء DoIt<br />
<br />
لتنفيذ الThread الذي أعلنا عنه (NewThread) استخدم الطريقة Start<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Start[/color][color=#007700]()[/color][/COLOR]<br />
[/align]</code></div></div><br />
الآن بعد تشغيل المسار الآخر دعنا نراقب ما وصلت إليه عملية الربط باستخدام تايمر جديد<br />
<br />
وهذا الكود بشكله النهائي للمثال الأخير لربط المفاهيم بعضها ببعض<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]&nbsp;&nbsp; Dim MyString [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]""<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]Dim NewThread [/color][color=#007700]As New [/color][color=#0000BB]Threading[/color][color=#007700].[/color][color=#0000BB]Thread[/color][color=#007700]([/color][color=#0000BB]AddressOf DoIt[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;Private [/COLOR][color=#0000BB]Sub Button1_Click[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Button1[/color][color=#007700].[/color][COLOR=#0000BB]Click<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewThread[/COLOR][color=#007700].[/color][color=#0000BB]Start[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]Button1[/color][color=#007700].[/color][color=#0000BB]Enabled [/color][color=#007700]= [/color][COLOR=#0000BB]False<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Sub DoIt[/COLOR][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For [/COLOR][color=#0000BB]I [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 100000<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MyString [/COLOR][color=#007700]&amp;= [/color][COLOR=#DD0000]"o"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]Next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NewThread[/COLOR][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][COLOR=#0000BB]End Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Private [/color][color=#0000BB]Sub Timer1_Tick[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Timer1[/color][color=#007700].[/color][COLOR=#0000BB]Tick<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label1[/COLOR][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][color=#0000BB]MyString[/color][color=#007700].[/color][COLOR=#0000BB]Length<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Private [/color][color=#0000BB]Sub Form1_Load[/color][color=#007700]([/color][color=#0000BB]ByVal sender [/color][color=#007700]As [/color][color=#0000BB]Object[/color][color=#007700], [/color][color=#0000BB]ByVal e [/color][color=#007700]As [/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]EventArgs[/color][color=#007700]) [/color][color=#0000BB]Handles Me[/color][color=#007700].[/color][COLOR=#0000BB]Load<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer1[/COLOR][color=#007700].[/color][color=#0000BB]Enabled [/color][color=#007700]= [/color][COLOR=#0000BB]True<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span><br />
بهذا إن شاء الله نكون أتممنا توضيح مفهوم الThreads<br />
<br />
نأتي الآن لطرق الThread<br />
<ul class="mycode_list"><li>Start<br />
</li>
</ul>
 وهي إشارة لبدء تنفيذ الThread<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Start[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Abort<br />
</li>
</ul>
 وهي لإحباط و إيقاف ال Thread<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Suspend<br />
</li>
</ul>
 وهي للإيقاف المؤقت لل Tread<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Suspend[/color][color=#007700]()&nbsp;&nbsp;[/color][/COLOR]<br />
[/align]</code></div></div><br />
<ul class="mycode_list"><li>Resume<br />
</li>
</ul>
 وهي لمتابعة الThread بعد اللإيقاف المؤقت له<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Resume[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Sleep<br />
</li>
</ul>
 وهي لايقاف الThread بشكل مؤقت لفترة زمنية تقوم بتحديدها<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Sleep[/color][color=#007700]([/color][color=#0000BB]1000[/color][color=#007700])&nbsp;&nbsp;[/color][color=#0000BB]Will Suspend [/color][color=#007700]for [/color][COLOR=#0000BB]1 second&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
يمكننا التحكم بالمسار الحالي من خلال<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]Thread[/color][color=#007700].[/color][COLOR=#0000BB]CurrentThread&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]Thread[/color][color=#007700].[/color][color=#0000BB]CurrentThread[/color][color=#007700].[/color][color=#0000BB]Abort[/color][COLOR=#007700]()&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
ونأتي لخاصية من خواص الThread<br />
IsAlive()<br />
<div style="text-align: left;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"> </span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#007700]If [/color][color=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]IsAlive[/color][color=#007700]() [/color][COLOR=#0000BB]Then<br />
[/COLOR][color=#DD0000]''[/color][COLOR=#0000BB]Statements<br />
End [/COLOR][COLOR=#007700]If <br />
[/COLOR]</code></div></div></span><br />
</div>
<span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
قرأت عبارة في كتاب الاستاذ تركي العسيري طريفة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>من الغباء الاستعلام عن الخاصية IsAlive لمسار التنفيذ الحالي:[align=left] If Thread.CurrentThread.IsAlive() Then ......<br />
[/align]<br />
 فهي ستعود بالقيمة True دائما لأسباب منطقية .</code></div></div><br />
طبعا تعرفوا السبب !<br />
<br />
أيضا يمكن إسناد اسم لكل مسار تنفيذ ما يساعدك على مراقبة عمل برنامج بدقة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]Name [/color][color=#007700]= [/color][COLOR=#DD0000]"My Thread"&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #DD0000;" class="mycode_color"><br />
</span></span><br />
أيضا يمكنك معرفة حالة الThread باستخدام الخاصية ThreadState<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB][/color][color=#007700]If [/color][color=#0000BB]NewThread[/color][color=#007700].[/color][color=#0000BB]ThreadState [/color][color=#007700]= [/color][color=#0000BB]ThreadState[/color][color=#007700].[/color][color=#0000BB]Running Then[/color][COLOR=#007700].....&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
والحالات التي يمكن أن تصادف الThread هي<br />
<div style="text-align: left;" class="mycode_align">ThreadState.Aborted<br />
ThreadState.AbortRequested<br />
ThreadState.Background<br />
ThreadState.Running<br />
ThreadState.Stopped<br />
ThreadState.StopRequested<br />
ThreadState.Suspended<br />
ThreadState.SuspendRequested<br />
ThreadState.Unstarted<br />
ThreadState.WaitSleepJoin<br />
</div>
<br />
<br />
نأتي لنقطة أخيرة في فصلنا لهذا اليوم<br />
يمكن تعيين الأفضلية للمسارات باستخدام الخاصية Priority<br />
وبها خمس تعيينات <br />
<ul class="mycode_list"><li>الأقل<br />
</li>
<li>أقل من العادي<br />
</li>
<li>عادي<br />
</li>
<li>أكثر من العادي<br />
</li>
<li>الأكثر<br />
</li>
</ul>
 <br />
<span style="color: #0000cd;" class="mycode_color"> بهذا نتمم فصلنا لهذا اليوم </span><span style="color: #ff0000;" class="mycode_color"><br />
والسلام عليكم </span><br />
<br />
إخوانكم <span style="color: #0000ff;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(15): الفئتان Stack و Queue]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4387</link>
			<pubDate>Sun, 23 Sep 2012 14:28:35 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4387</guid>
			<description><![CDATA[السلام عليكم ورحمة الله وبركاته<br />
موضوعنا لليوم خفيف وبسيط<br />
<br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: DarkOrange;" class="mycode_color">الفئة Stack :</span></span><br />
يمكن تسمية الفئة Stack  بالمكدسة وهي تطبق خوارزمية <span style="color: Red;" class="mycode_color">LIFO </span>- <span style="color: Red;" class="mycode_color">L</span>ast <span style="color: Red;" class="mycode_color">I</span>n <span style="color: Red;" class="mycode_color">F</span>irst <span style="color: Red;" class="mycode_color">O</span>ut <br />
 بمعنى أول ما يدخل أول ما يخرج<br />
ويمكن تمثيل العملية بالشكل التالي<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_01348409877.png" loading="lazy"  alt="[صورة مرفقة: 203_01348409877.png]" class="mycode_img" /><br />
<br />
لنعرف كائن جديد من هذه الفئة :<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]Dim stk [/color][color=#007700]As New [/color][color=#0000BB]Stack[/color][color=#007700]([/color][color=#0000BB]Of String[/color][color=#007700])&nbsp;&nbsp;[/color][/COLOR]</code></div></div><br />
في السطر السابق صرحنا عن كائن جديد من نوع Stack وجعلناها مكدسة كائنات من النوع String<br />
<br />
<br />
طرق هذه الفئة - ليس جميعها -  :<br />
<ul class="mycode_list"><li>Push <br />
</li>
</ul>
تفوم هذه الطريقة بعملية إضافة عنصر جديد للمكدسة:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Mohammed"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Islam"[/color][COLOR=#007700])<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><ul class="mycode_list"><li>Pop <br />
</li>
</ul>
تقوم هذه الطريقة بقراءة العنصر الأخير ومن ثم إزالته:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]يصبح عدد العناصر بعد الازالة 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLine[/color][color=#007700]([/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Pop[/color][color=#007700]) [/color][COLOR=#DD0000]' Islam<br />
&nbsp;&nbsp; يصبح عدد العناصر بعد الازالة 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLine(stk.Pop) ' [/COLOR][COLOR=#0000BB]Lo2i<br />
&nbsp;&nbsp; يصبح عدد العناصر بعد الازالة 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLine[/COLOR][color=#007700]([/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Pop[/color][color=#007700])&nbsp;&nbsp;[/color][COLOR=#0000BB]Mohammed<br />
[/COLOR][/COLOR]<br />
[COLOR=#000000][COLOR=#0000BB]<br />
[/COLOR][/COLOR]</code></div></div><br />
وبعد أن أصبحت المكدسة فارغة لو قمنا بعملية إزالة أخرى سيصدر خطأ لأن المكدسة فارغة...<br />
<br />
<ul class="mycode_list"><li>Clear <br />
</li>
</ul>
تقوم بإزالة جميع العناصر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]stk[/color][color=#007700].[/color][COLOR=#0000BB]Clear<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
<br />
<ul class="mycode_list"><li>Contains <br />
</li>
</ul>
تقوم هذه الطريقة بالتحقق فيما إذا كانت القيمة الممرة لها محتواة داخل المكدسة أم لا<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#007700]If [/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Contains[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][color=#007700]) [/color][COLOR=#0000BB]Then<br />
 MsgBox[/COLOR][color=#007700]([/color][color=#DD0000]"True"[/color][COLOR=#007700])<br />
 [/COLOR][color=#0000BB]End [/color][COLOR=#007700]If<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>CopyTo <br />
</li>
</ul>
<br />
تقوم هذه الطريقة بنسخ عناصر المكدسة لمصفوفة مع تحديد رقم الفهرس من المصفوفة للبدء بالنسخ انطلاقا منه<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim stk [/color][color=#007700]As New [/color][color=#0000BB]Stack[/color][color=#007700]([/color][color=#0000BB]Of String[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Mohammed"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Islam"[/color][COLOR=#007700])<br />
&nbsp;&nbsp;<br />
[/COLOR][color=#0000BB]Dim A[/color][color=#007700]([/color][color=#0000BB]2[/color][color=#007700]) As [/color][COLOR=#0000BB]String<br />
stk[/COLOR][color=#007700].[/color][color=#0000BB]CopyTo[/color][color=#007700]([/color][color=#0000BB]A[/color][color=#007700], [/color][color=#0000BB]0[/color][COLOR=#007700])<br />
For [/COLOR][color=#0000BB]I [/color][color=#007700]= [/color][color=#0000BB]0 To UBound[/color][color=#007700]([/color][color=#0000BB]A[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#0000BB]A[/color][color=#007700]([/color][color=#0000BB]I[/color][COLOR=#007700]))<br />
[/COLOR][color=#0000BB]Next[/color][/COLOR]</code></div></div><br />
<br />
والناتج :<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Islam<br />
 Lo2i<br />
 Mohammed</code></div></div><br />
لاحظ أنه عند عملية النسخ لا يبدأ بالنسخ من الصفر بل من آخر عنصر وصولا لأول عنصر<br />
أيضا يجب الانتباه بألا تخرج عملية النسخ عن حدود المصفوفة <br />
<ul class="mycode_list"><li>Count <br />
</li>
</ul>
خاصية للقراءة فقط تعود بعدد عناصر المكدسة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Count[/color][COLOR=#007700])&nbsp;&nbsp;<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Peek <br />
</li>
</ul>
تقوم هذه الطريقة بارجاع قيمة آخر عنصر دون حذف<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]stk[/color][color=#007700].[/color][COLOR=#0000BB]Peek&nbsp;&nbsp;<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span><ul class="mycode_list"><li>ToArray <br />
</li>
</ul>
<br />
تقوم بإرجاع مصفوفة بالعناصر الموجودة في المكدسة ويجب أن تكون من نفس النوع للمكدسة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]Dim strArray[/color][color=#007700]() As [/color][color=#0000BB]String [/color][color=#007700]= [/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]ToArray&nbsp;&nbsp;[/color][/COLOR]</code></div></div><br />
الآن ننتهي من الفئة Stack<br />
<br />
  <span style="font-size: 5pt;" class="mycode_size"><span style="color: DarkOrange;" class="mycode_color">الفئة Queue:</span></span><br />
يمكن تسميتها بالطابور وتطبق مبدأ <span style="color: Red;" class="mycode_color">FIFO </span>- <span style="color: Red;" class="mycode_color">F</span>irst <span style="color: Red;" class="mycode_color">I</span>n <span style="color: Red;" class="mycode_color">F</span>irst <span style="color: Red;" class="mycode_color">O</span>ut<br />
أي ما يضاف أولا يخرج أولا <img src="http://www.vb4arab.com/vb/images/smilies/smile.gif" loading="lazy"  alt="[صورة مرفقة: smile.gif]" class="mycode_img" /><br />
ويمكن تمثيل العملية بالشكل التالي :<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_11348409877.png" loading="lazy"  alt="[صورة مرفقة: 203_11348409877.png]" class="mycode_img" /><br />
<br />
طرقها :<br />
<ul class="mycode_list"><li>Enqueue <br />
</li>
</ul>
تقوم هذه الطريقة بإضافة عنصر للطابور<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim que [/color][color=#007700]As New [/color][color=#0000BB]Queue[/color][color=#007700]([/color][color=#0000BB]Of String[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/COLOR][color=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Enqueue[/color][color=#007700]([/color][color=#DD0000]"Mohammed"[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/COLOR][color=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Enqueue[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/COLOR][color=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Enqueue[/color][color=#007700]([/color][color=#DD0000]"Islam"[/color][COLOR=#007700]) <br />
[/COLOR][/COLOR][color=#000000][COLOR=#007700] [/color][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><ul class="mycode_list"><li>Dequeue <br />
</li>
</ul>
تقوم هذه الطريقة بازالة العنصر الأول في الطابور<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Dequeue[/color][color=#007700]()&nbsp;&nbsp;[/color][/COLOR][COLOR=#000000][COLOR=#007700]<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
أما بالنسبة لباقي الطرق فلا تختلف كثيرا عن المكدسة<br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>]]></description>
			<content:encoded><![CDATA[السلام عليكم ورحمة الله وبركاته<br />
موضوعنا لليوم خفيف وبسيط<br />
<br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: DarkOrange;" class="mycode_color">الفئة Stack :</span></span><br />
يمكن تسمية الفئة Stack  بالمكدسة وهي تطبق خوارزمية <span style="color: Red;" class="mycode_color">LIFO </span>- <span style="color: Red;" class="mycode_color">L</span>ast <span style="color: Red;" class="mycode_color">I</span>n <span style="color: Red;" class="mycode_color">F</span>irst <span style="color: Red;" class="mycode_color">O</span>ut <br />
 بمعنى أول ما يدخل أول ما يخرج<br />
ويمكن تمثيل العملية بالشكل التالي<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_01348409877.png" loading="lazy"  alt="[صورة مرفقة: 203_01348409877.png]" class="mycode_img" /><br />
<br />
لنعرف كائن جديد من هذه الفئة :<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]Dim stk [/color][color=#007700]As New [/color][color=#0000BB]Stack[/color][color=#007700]([/color][color=#0000BB]Of String[/color][color=#007700])&nbsp;&nbsp;[/color][/COLOR]</code></div></div><br />
في السطر السابق صرحنا عن كائن جديد من نوع Stack وجعلناها مكدسة كائنات من النوع String<br />
<br />
<br />
طرق هذه الفئة - ليس جميعها -  :<br />
<ul class="mycode_list"><li>Push <br />
</li>
</ul>
تفوم هذه الطريقة بعملية إضافة عنصر جديد للمكدسة:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Mohammed"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Islam"[/color][COLOR=#007700])<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><ul class="mycode_list"><li>Pop <br />
</li>
</ul>
تقوم هذه الطريقة بقراءة العنصر الأخير ومن ثم إزالته:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]يصبح عدد العناصر بعد الازالة 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLine[/color][color=#007700]([/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Pop[/color][color=#007700]) [/color][COLOR=#DD0000]' Islam<br />
&nbsp;&nbsp; يصبح عدد العناصر بعد الازالة 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLine(stk.Pop) ' [/COLOR][COLOR=#0000BB]Lo2i<br />
&nbsp;&nbsp; يصبح عدد العناصر بعد الازالة 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteLine[/COLOR][color=#007700]([/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Pop[/color][color=#007700])&nbsp;&nbsp;[/color][COLOR=#0000BB]Mohammed<br />
[/COLOR][/COLOR]<br />
[COLOR=#000000][COLOR=#0000BB]<br />
[/COLOR][/COLOR]</code></div></div><br />
وبعد أن أصبحت المكدسة فارغة لو قمنا بعملية إزالة أخرى سيصدر خطأ لأن المكدسة فارغة...<br />
<br />
<ul class="mycode_list"><li>Clear <br />
</li>
</ul>
تقوم بإزالة جميع العناصر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]stk[/color][color=#007700].[/color][COLOR=#0000BB]Clear<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
<br />
<ul class="mycode_list"><li>Contains <br />
</li>
</ul>
تقوم هذه الطريقة بالتحقق فيما إذا كانت القيمة الممرة لها محتواة داخل المكدسة أم لا<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#007700]If [/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Contains[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][color=#007700]) [/color][COLOR=#0000BB]Then<br />
 MsgBox[/COLOR][color=#007700]([/color][color=#DD0000]"True"[/color][COLOR=#007700])<br />
 [/COLOR][color=#0000BB]End [/color][COLOR=#007700]If<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>CopyTo <br />
</li>
</ul>
<br />
تقوم هذه الطريقة بنسخ عناصر المكدسة لمصفوفة مع تحديد رقم الفهرس من المصفوفة للبدء بالنسخ انطلاقا منه<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim stk [/color][color=#007700]As New [/color][color=#0000BB]Stack[/color][color=#007700]([/color][color=#0000BB]Of String[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Mohammed"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Push[/color][color=#007700]([/color][color=#DD0000]"Islam"[/color][COLOR=#007700])<br />
&nbsp;&nbsp;<br />
[/COLOR][color=#0000BB]Dim A[/color][color=#007700]([/color][color=#0000BB]2[/color][color=#007700]) As [/color][COLOR=#0000BB]String<br />
stk[/COLOR][color=#007700].[/color][color=#0000BB]CopyTo[/color][color=#007700]([/color][color=#0000BB]A[/color][color=#007700], [/color][color=#0000BB]0[/color][COLOR=#007700])<br />
For [/COLOR][color=#0000BB]I [/color][color=#007700]= [/color][color=#0000BB]0 To UBound[/color][color=#007700]([/color][color=#0000BB]A[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#0000BB]A[/color][color=#007700]([/color][color=#0000BB]I[/color][COLOR=#007700]))<br />
[/COLOR][color=#0000BB]Next[/color][/COLOR]</code></div></div><br />
<br />
والناتج :<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Islam<br />
 Lo2i<br />
 Mohammed</code></div></div><br />
لاحظ أنه عند عملية النسخ لا يبدأ بالنسخ من الصفر بل من آخر عنصر وصولا لأول عنصر<br />
أيضا يجب الانتباه بألا تخرج عملية النسخ عن حدود المصفوفة <br />
<ul class="mycode_list"><li>Count <br />
</li>
</ul>
خاصية للقراءة فقط تعود بعدد عناصر المكدسة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]Count[/color][COLOR=#007700])&nbsp;&nbsp;<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<ul class="mycode_list"><li>Peek <br />
</li>
</ul>
تقوم هذه الطريقة بارجاع قيمة آخر عنصر دون حذف<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]stk[/color][color=#007700].[/color][COLOR=#0000BB]Peek&nbsp;&nbsp;<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span><ul class="mycode_list"><li>ToArray <br />
</li>
</ul>
<br />
تقوم بإرجاع مصفوفة بالعناصر الموجودة في المكدسة ويجب أن تكون من نفس النوع للمكدسة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000] [COLOR=#0000BB]Dim strArray[/color][color=#007700]() As [/color][color=#0000BB]String [/color][color=#007700]= [/color][color=#0000BB]stk[/color][color=#007700].[/color][color=#0000BB]ToArray&nbsp;&nbsp;[/color][/COLOR]</code></div></div><br />
الآن ننتهي من الفئة Stack<br />
<br />
  <span style="font-size: 5pt;" class="mycode_size"><span style="color: DarkOrange;" class="mycode_color">الفئة Queue:</span></span><br />
يمكن تسميتها بالطابور وتطبق مبدأ <span style="color: Red;" class="mycode_color">FIFO </span>- <span style="color: Red;" class="mycode_color">F</span>irst <span style="color: Red;" class="mycode_color">I</span>n <span style="color: Red;" class="mycode_color">F</span>irst <span style="color: Red;" class="mycode_color">O</span>ut<br />
أي ما يضاف أولا يخرج أولا <img src="http://www.vb4arab.com/vb/images/smilies/smile.gif" loading="lazy"  alt="[صورة مرفقة: smile.gif]" class="mycode_img" /><br />
ويمكن تمثيل العملية بالشكل التالي :<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_11348409877.png" loading="lazy"  alt="[صورة مرفقة: 203_11348409877.png]" class="mycode_img" /><br />
<br />
طرقها :<br />
<ul class="mycode_list"><li>Enqueue <br />
</li>
</ul>
تقوم هذه الطريقة بإضافة عنصر للطابور<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim que [/color][color=#007700]As New [/color][color=#0000BB]Queue[/color][color=#007700]([/color][color=#0000BB]Of String[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/COLOR][color=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Enqueue[/color][color=#007700]([/color][color=#DD0000]"Mohammed"[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/COLOR][color=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Enqueue[/color][color=#007700]([/color][color=#DD0000]"Lo2i"[/color][COLOR=#007700])<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/COLOR][color=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Enqueue[/color][color=#007700]([/color][color=#DD0000]"Islam"[/color][COLOR=#007700]) <br />
[/COLOR][/COLOR][color=#000000][COLOR=#007700] [/color][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><ul class="mycode_list"><li>Dequeue <br />
</li>
</ul>
تقوم هذه الطريقة بازالة العنصر الأول في الطابور<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]que[/color][color=#007700].[/color][color=#0000BB]Dequeue[/color][color=#007700]()&nbsp;&nbsp;[/color][/COLOR][COLOR=#000000][COLOR=#007700]<br />
[/COLOR][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
أما بالنسبة لباقي الطرق فلا تختلف كثيرا عن المكدسة<br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل (13):- العمليات الرياضية في الدوت نيت بإستخدام الفئة System.Math]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4386</link>
			<pubDate>Sun, 23 Sep 2012 13:45:01 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4386</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align">السلام عليكم ورحمة الله وبركاته :_ <br />
<br />
درسنا اليوم عن كيفية التعامل مع الدوال الرياضية من خلال الفئة :_ <span style="color: Blue;" class="mycode_color">system.math</span><br />
<br />
أولاً وقبل البداية يجب علينا ان نستورد الفئة   <span style="color: DarkRed;" class="mycode_color"> math  </span><br />
<br />
من خلال الكود التالي :-<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Imports System.Math&nbsp;&nbsp;<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">
<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_01348407006.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348407006.jpg]" class="mycode_img" /><br />
<br />
<br />
=====================<br />
===============<br />
========<br />
====<br />
==<br />
<br />
<span style="color: Red;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size">من اهم الاستخدامات لهذا النطاق في الدوت نيت :- </span><br />
</span><ul class="mycode_list"><li>معرفة جتا الزاوية من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">sin</span></span><br />
</li>
<li>معرفة ظل الزاوية من خلال  <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">tan</span></span><br />
</li>
<li>معرفة جيب الزاوية من خلال  <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">cos</span></span><br />
</li>
</ul>
<span style="font-size: 7pt;" class="mycode_size"><span style="color: Sienna;" class="mycode_color"><br />
<br />
ويوجد ايضاً شي مهم وهو للمدرسة <img src="http://www.vb4arab.com/vb/images/smilies/biggrin.gif" loading="lazy"  alt="[صورة مرفقة: biggrin.gif]" class="mycode_img" /><br />
</span></span><ul class="mycode_list"><li>معرفة الجذر التربيعي من خلال    <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">sqrt</span></span><br />
</li>
<li>القيمة المطلقة لعدد ما من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">abs</span></span><br />
</li>
<li>معرفة العدد اذا اكبر من صفر او اصغر من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">sign</span></span><br />
</li>
</ul>
<br />
<br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: DarkRed;" class="mycode_color">وهناك ايضاً عمليات المقارنة مثل :_ </span><br />
</span><ul class="mycode_list"><li>اظهار اكبر قيمة من معامليين رئيسيين    من خلال    <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">max</span></span><br />
</li>
<li>اظهار اقل قيمة من معامليين رئيسيين من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">min</span></span><br />
</li>
<li>لتقريب العدد إلى الفاصلة من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">round</span></span><br />
</li>
<li>لاعطاء رقم صحيح غير قابل لوضع الفاصلة   من خلال    <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">fix</span></span><br />
</li>
</ul>
<br />
<br />
نبدأ اولاً بتعريف متغير لاستخدامه في البرنامج  كما تعلمنا  <a href="http://www.vb4arab.com/vb/showthread.php?t=36557" target="_blank" rel="noopener" class="mycode_url">هنا ...</a><br />
---------------------------------------------------------------------<br />
بداية سنقوم بتعريف متغيرات تحمل قيمة كل انواع المتغيرات لاستخدامه مع الجميع <br />
<br />
بهذا الكود  :_ <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Dim x, y ,zAs Object<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = 12.12<br />
z = 16<br />
[/align]</code></div></div><br />
=================<br />
هذا الكود الخاص لمعرفة ظل الزاوية من خلاله<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Tan[/color][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span>ونستطيع ايضاً كتابته بهذا الشكل<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Tan[/color][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700]))<br />
<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<br />
وكلاهما سيعطي نفس النتيجة <br />
==================<br />
هذا الكود الخاص بجتا الزاوية<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sin[/color][color=#007700]([/color][color=#0000BB]x[/color][color=#007700]))[/color][/COLOR]<br />
[/align]</code></div></div><br />
وايضاً يمكننا استخدامه بالطريقة الطويلة كما سبف ذكره مع ظل الزاوية <br />
=================<br />
ها الكود لمعرفة بجيب الزاوية<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Cos[/color][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700]))<br />
[/COLOR][/COLOR][/align]<br />
[COLOR=#000000][COLOR=#007700]<br />
[/COLOR][/COLOR]</code></div></div><br />
ويمكننا ايضاً استخدام هذا الكود لمعرفة الجذر التربيعي لرقم ما :-<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sqrt[/color][color=#007700]([/color][color=#0000BB]z[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
<br />
[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]<br />
<br />
[/COLOR][/COLOR][/align]</code></div></div><br />
لاظهار القيمة المطلقة لعدد ما <br />
<br />
ماهي القيمة المطلقة :_ القيمة المطلقة هي القيمة التي يتحول فيها اي عدد سالب الاشارة إلى موجب الاشارة <br />
<br />
لاحظ الكود التالي :-<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Abs[/color][color=#007700](-[/color][color=#0000BB]10[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>ولاحظ انك يمكنك استخدامه بالطريقة المختصرة <br />
<br />
كالتالي :_<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]msgbox [/color][color=#007700]([/color][color=#0000BB]abs[/color][color=#007700](-[/color][color=#0000BB]100[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
الدالة  sign   ترجع قيمة (-1) اذا كان الرقم الذي بداخلها   صفر او اقل <br />
وترجع القيمة (+1) اذا كان الرقم الذي بداخلها اكبر من صفر . <img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
ويمكننا استخدامها باطريقة التالية :- <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sign[/color][color=#007700](+[/color][color=#0000BB]10[/color][color=#007700]))&nbsp;&nbsp;[/color][/COLOR]<br />
[/align]</code></div></div><br />
هنا سيتم ارجاع قيمة ( +1 )  لان الرقم الذي بداخلها اكبر من صفر<br />
<br />
اما هنا<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sign[/color][color=#007700](-[/color][color=#0000BB]10[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>هنا سيتم ارجاع قيمة ( -1 )  لان الرقم الذي بداخلها اصغر من صفر<br />
<br />
-------------------------------------------------------------------<br />
<br />
ومن خلال هذا الكود الصغير نستطيع حساب اي الرقميين السابقيين اكبر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Max[/color][color=#007700]([/color][color=#0000BB]12[/color][color=#007700], [/color][color=#0000BB]14[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>طبعاً سيعطي في الرسالة  الرقم 14  لا نه اكبر من 12 <img src="https://vb4arb.com/vb/images/smilies/biggrin.gif" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><br />
<br />
وفي الكود التالي نستطيع حساب اي الرقميين السابقيين اصغر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Min[/color][color=#007700]([/color][color=#0000BB]10[/color][color=#007700], [/color][color=#0000BB]9[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
سيتم ارجاع الرقم 9 لانه اصغر من ال 10 <br />
-----------------------------------------------------------------------<br />
<br />
تقريبا العدد إلى فاصلة من خلال الكود التالي <br />
<br />
مثلاً اذا احببنا ان نأخد اول رقميين بعد الفاصلة في الرقم المدخل<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Round[/color][color=#007700]([/color][color=#0000BB]12.12345[/color][color=#007700], [/color][color=#0000BB]2[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
في الكود التالي سوف يدخل الرقم (12.12345)  في الذاكرة ويختار اول رقميين بعد الفاصلة <br />
<br />
يعني سوف يكون المخرج الرقم التالي  (12.12)<br />
<br />
واذا احببت ان تاخد اول 3 ارقام بعد الفاصلة تكتب 3 عوضاً عن 2  وهكذا <br />
<br />
------------------------------<br />
<br />
اذا احببت ان تعطي ناتج بدون كسور واعشار زائدة اخر الرقم <br />
<br />
ابسط طريقة هي استخدام الدالة   fix   <br />
<br />
وبعد ان عرفنا في الاعلى المتغير المتغير  y   على ان قيمته تساوي 12.12  <br />
<br />
نسعمل الان على اخراج المتغير  Y  بدون  الرقم الذي بعد الفاصلة <br />
<br />
اي اني اريد الرقم رقم صحيح <br />
<br />
نستخدم الكود التالي :-<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Fix[/color][color=#007700]([/color][color=#0000BB]y[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
ستجد ان المخرج عندك سيكون رقم (12)<br />
<br />
<span style="color: Red;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">وهناك اسهل طريقة لمنع المستخدم من ادخال الفاصلة في صندوق النص <br />
<br />
من خلال الكود التالي<br />
<br />
</span></span></span></span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]SelectionStart [/color][color=#007700]= [/color][color=#0000BB]Len[/color][color=#007700]([/color][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]****[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][color=#0000BB]Fix[/color][color=#007700]([/color][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]****[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]SelectionStart [/color][color=#007700]= [/color][color=#0000BB]Len[/color][color=#007700]([/color][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]****[/color][color=#007700])[/color][/COLOR][color=#000000][COLOR=#007700][COLOR=Red][/color]<br />
[/COLOR][/COLOR][/align]</code></div></div><br />
==========<br />
========<br />
=====<br />
===<br />
=<br />
<br />
في النهاية ارجوا ان يكون الدرس في غاية السهولة <br />
<br />
<span style="color: DarkRed;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">[align=center]<span style="font-weight: bold;" class="mycode_b"><br />
وانتظرونا في الدرس القادم ان شاء الله<br />
<br />
</span><span style="color: #000000;" class="mycode_color">تقبلوا تحياتنا :_</span><br />
<br />
<span style="color: #0000cd;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
</div>
</span></span><br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align">السلام عليكم ورحمة الله وبركاته :_ <br />
<br />
درسنا اليوم عن كيفية التعامل مع الدوال الرياضية من خلال الفئة :_ <span style="color: Blue;" class="mycode_color">system.math</span><br />
<br />
أولاً وقبل البداية يجب علينا ان نستورد الفئة   <span style="color: DarkRed;" class="mycode_color"> math  </span><br />
<br />
من خلال الكود التالي :-<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Imports System.Math&nbsp;&nbsp;<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">
<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_01348407006.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348407006.jpg]" class="mycode_img" /><br />
<br />
<br />
=====================<br />
===============<br />
========<br />
====<br />
==<br />
<br />
<span style="color: Red;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size">من اهم الاستخدامات لهذا النطاق في الدوت نيت :- </span><br />
</span><ul class="mycode_list"><li>معرفة جتا الزاوية من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">sin</span></span><br />
</li>
<li>معرفة ظل الزاوية من خلال  <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">tan</span></span><br />
</li>
<li>معرفة جيب الزاوية من خلال  <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">cos</span></span><br />
</li>
</ul>
<span style="font-size: 7pt;" class="mycode_size"><span style="color: Sienna;" class="mycode_color"><br />
<br />
ويوجد ايضاً شي مهم وهو للمدرسة <img src="http://www.vb4arab.com/vb/images/smilies/biggrin.gif" loading="lazy"  alt="[صورة مرفقة: biggrin.gif]" class="mycode_img" /><br />
</span></span><ul class="mycode_list"><li>معرفة الجذر التربيعي من خلال    <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">sqrt</span></span><br />
</li>
<li>القيمة المطلقة لعدد ما من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">abs</span></span><br />
</li>
<li>معرفة العدد اذا اكبر من صفر او اصغر من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">sign</span></span><br />
</li>
</ul>
<br />
<br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: DarkRed;" class="mycode_color">وهناك ايضاً عمليات المقارنة مثل :_ </span><br />
</span><ul class="mycode_list"><li>اظهار اكبر قيمة من معامليين رئيسيين    من خلال    <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">max</span></span><br />
</li>
<li>اظهار اقل قيمة من معامليين رئيسيين من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">min</span></span><br />
</li>
<li>لتقريب العدد إلى الفاصلة من خلال   <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">round</span></span><br />
</li>
<li>لاعطاء رقم صحيح غير قابل لوضع الفاصلة   من خلال    <span style="color: Green;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">fix</span></span><br />
</li>
</ul>
<br />
<br />
نبدأ اولاً بتعريف متغير لاستخدامه في البرنامج  كما تعلمنا  <a href="http://www.vb4arab.com/vb/showthread.php?t=36557" target="_blank" rel="noopener" class="mycode_url">هنا ...</a><br />
---------------------------------------------------------------------<br />
بداية سنقوم بتعريف متغيرات تحمل قيمة كل انواع المتغيرات لاستخدامه مع الجميع <br />
<br />
بهذا الكود  :_ <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Dim x, y ,zAs Object<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x = 12<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y = 12.12<br />
z = 16<br />
[/align]</code></div></div><br />
=================<br />
هذا الكود الخاص لمعرفة ظل الزاوية من خلاله<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Tan[/color][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span>ونستطيع ايضاً كتابته بهذا الشكل<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Tan[/color][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700]))<br />
<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<br />
وكلاهما سيعطي نفس النتيجة <br />
==================<br />
هذا الكود الخاص بجتا الزاوية<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sin[/color][color=#007700]([/color][color=#0000BB]x[/color][color=#007700]))[/color][/COLOR]<br />
[/align]</code></div></div><br />
وايضاً يمكننا استخدامه بالطريقة الطويلة كما سبف ذكره مع ظل الزاوية <br />
=================<br />
ها الكود لمعرفة بجيب الزاوية<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Cos[/color][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700]))<br />
[/COLOR][/COLOR][/align]<br />
[COLOR=#000000][COLOR=#007700]<br />
[/COLOR][/COLOR]</code></div></div><br />
ويمكننا ايضاً استخدام هذا الكود لمعرفة الجذر التربيعي لرقم ما :-<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sqrt[/color][color=#007700]([/color][color=#0000BB]z[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
<br />
[/COLOR][/COLOR][COLOR=#000000][COLOR=#007700]<br />
<br />
[/COLOR][/COLOR][/align]</code></div></div><br />
لاظهار القيمة المطلقة لعدد ما <br />
<br />
ماهي القيمة المطلقة :_ القيمة المطلقة هي القيمة التي يتحول فيها اي عدد سالب الاشارة إلى موجب الاشارة <br />
<br />
لاحظ الكود التالي :-<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Abs[/color][color=#007700](-[/color][color=#0000BB]10[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>ولاحظ انك يمكنك استخدامه بالطريقة المختصرة <br />
<br />
كالتالي :_<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]msgbox [/color][color=#007700]([/color][color=#0000BB]abs[/color][color=#007700](-[/color][color=#0000BB]100[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
الدالة  sign   ترجع قيمة (-1) اذا كان الرقم الذي بداخلها   صفر او اقل <br />
وترجع القيمة (+1) اذا كان الرقم الذي بداخلها اكبر من صفر . <img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
ويمكننا استخدامها باطريقة التالية :- <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sign[/color][color=#007700](+[/color][color=#0000BB]10[/color][color=#007700]))&nbsp;&nbsp;[/color][/COLOR]<br />
[/align]</code></div></div><br />
هنا سيتم ارجاع قيمة ( +1 )  لان الرقم الذي بداخلها اكبر من صفر<br />
<br />
اما هنا<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Sign[/color][color=#007700](-[/color][color=#0000BB]10[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>هنا سيتم ارجاع قيمة ( -1 )  لان الرقم الذي بداخلها اصغر من صفر<br />
<br />
-------------------------------------------------------------------<br />
<br />
ومن خلال هذا الكود الصغير نستطيع حساب اي الرقميين السابقيين اكبر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Max[/color][color=#007700]([/color][color=#0000BB]12[/color][color=#007700], [/color][color=#0000BB]14[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>طبعاً سيعطي في الرسالة  الرقم 14  لا نه اكبر من 12 <img src="https://vb4arb.com/vb/images/smilies/biggrin.gif" alt="Big Grin" title="Big Grin" class="smilie smilie_4" /><br />
<br />
وفي الكود التالي نستطيع حساب اي الرقميين السابقيين اصغر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Min[/color][color=#007700]([/color][color=#0000BB]10[/color][color=#007700], [/color][color=#0000BB]9[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
سيتم ارجاع الرقم 9 لانه اصغر من ال 10 <br />
-----------------------------------------------------------------------<br />
<br />
تقريبا العدد إلى فاصلة من خلال الكود التالي <br />
<br />
مثلاً اذا احببنا ان نأخد اول رقميين بعد الفاصلة في الرقم المدخل<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]System[/color][color=#007700].[/color][color=#0000BB]Math[/color][color=#007700].[/color][color=#0000BB]Round[/color][color=#007700]([/color][color=#0000BB]12.12345[/color][color=#007700], [/color][color=#0000BB]2[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
في الكود التالي سوف يدخل الرقم (12.12345)  في الذاكرة ويختار اول رقميين بعد الفاصلة <br />
<br />
يعني سوف يكون المخرج الرقم التالي  (12.12)<br />
<br />
واذا احببت ان تاخد اول 3 ارقام بعد الفاصلة تكتب 3 عوضاً عن 2  وهكذا <br />
<br />
------------------------------<br />
<br />
اذا احببت ان تعطي ناتج بدون كسور واعشار زائدة اخر الرقم <br />
<br />
ابسط طريقة هي استخدام الدالة   fix   <br />
<br />
وبعد ان عرفنا في الاعلى المتغير المتغير  y   على ان قيمته تساوي 12.12  <br />
<br />
نسعمل الان على اخراج المتغير  Y  بدون  الرقم الذي بعد الفاصلة <br />
<br />
اي اني اريد الرقم رقم صحيح <br />
<br />
نستخدم الكود التالي :-<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[color=#000000] [COLOR=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]Fix[/color][color=#007700]([/color][color=#0000BB]y[/color][COLOR=#007700]))&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
ستجد ان المخرج عندك سيكون رقم (12)<br />
<br />
<span style="color: Red;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">وهناك اسهل طريقة لمنع المستخدم من ادخال الفاصلة في صندوق النص <br />
<br />
من خلال الكود التالي<br />
<br />
</span></span></span></span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]SelectionStart [/color][color=#007700]= [/color][color=#0000BB]Len[/color][color=#007700]([/color][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]****[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][color=#0000BB]Fix[/color][color=#007700]([/color][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]****[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]SelectionStart [/color][color=#007700]= [/color][color=#0000BB]Len[/color][color=#007700]([/color][color=#0000BB]****Box1[/color][color=#007700].[/color][color=#0000BB]****[/color][color=#007700])[/color][/COLOR][color=#000000][COLOR=#007700][COLOR=Red][/color]<br />
[/COLOR][/COLOR][/align]</code></div></div><br />
==========<br />
========<br />
=====<br />
===<br />
=<br />
<br />
في النهاية ارجوا ان يكون الدرس في غاية السهولة <br />
<br />
<span style="color: DarkRed;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">[align=center]<span style="font-weight: bold;" class="mycode_b"><br />
وانتظرونا في الدرس القادم ان شاء الله<br />
<br />
</span><span style="color: #000000;" class="mycode_color">تقبلوا تحياتنا :_</span><br />
<br />
<span style="color: #0000cd;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
</div>
</span></span><br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(12): Oop بالتفصيل...الجزء الثاني]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4384</link>
			<pubDate>Sun, 23 Sep 2012 13:09:17 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4384</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="color: #b22222;" class="mycode_color">بسم الله الرحمن الرحيم<br />
السلام عليكم ورحمة الله وبركاته</span><br />
<span style="color: #0000cd;" class="mycode_color">نبدا من حيث انتهينا من الفصل السابق</span><br />
<span style="text-decoration: underline;" class="mycode_u"><span style="color: #ff0000;" class="mycode_color">يجب قراءة الفصل السابق</span></span> <span style="color: #0000cd;" class="mycode_color">لتتمكن من الاستمرار في هذا الفصل</span><br />
<span style="text-decoration: underline;" class="mycode_u"><span style="color: #ff0000;" class="mycode_color"> الفصل 11 </span></span><br />
<br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color"> وهذا الفصل ايضا كتب بقلم الاستاذ احمد نجم</span></span><br />
</div>
 <br />
<br />
  <span style="font-family: Arial;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size"><span style="color: Red;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">وراثة الواجهاتInterface Inheritance</span></span></span></span><br />
<br />
    <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">تحدثنا سالفاً عن اشتقاق او وراثة فئة من أخرى  وفيها تورث الفئة المشتقة كافة خصائص ووسائل وأحداث الفئة الأب وكذلك أيضاً  وراثة الكود المكتوب بالداخل كاملاً. يُمكنك </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Visual Basic .NET</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">  من تعريف أو التصريح عن الواجهات ، والواجهة ما هي إلا واجهة لفئة ما  واسمها خير دليل على هذا وهي لا تحتوي على أية أكواد للتنفيذ. بعد تصريحك  عن واجهة جديدة يمكنك استخدام الكلمة </span></span><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Implements[/FONT]</span>[FONT=&amp;amp]&lt;InterfaceName&gt;[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> وذلك كي تشتق أو تستدعي كافة الوسائل والخصائص والأحداث التي تم التصريح عنها داخل الواجهة.</span></span><br />
  <br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">كي تتضح لديك الرؤية أكثر من ذلك ، اتبع ما يلي ... قم بالتصريح عن هذين المتغيرين كما هو موضح أدناه :<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Dim CN1 As New System.Data.OleDb.OleDbConnection<br />
[/align]</code></div></div><br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">العجيب في هذين التصريحين أنك إذا نظرت في الوسائل والخصائص المصاحبة للكائن </span></span>[FONT=&amp;amp]CN1[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ستجدها بنفس الترتيب ونفس الهجاء بالنسبة للكائن </span></span>[FONT=&amp;amp]CN2[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، ولكن مع اختلاف الوظيفة ... يعني مثلا الوظيفة </span></span>[FONT=&amp;amp]Open[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فهي مصاحبة لكلا الكائنين ولكنها مع </span></span>[FONT=&amp;amp]CN1[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> تتصل بأي قاعدة بيانات حسب جملة الاتصال الممررة إليها </span></span>[FONT=&amp;amp]Connection[/FONT][FONT=&amp;amp]String[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، أما مع الكائن </span></span>[FONT=&amp;amp]CN2[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فهي لا تتعامل إلا مع محركات قواعد بيانات </span></span>[FONT=&amp;amp]MS[/FONT][FONT=&amp;amp]SQL[/FONT][FONT=&amp;amp]Server[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فقط بالرغم من أن اسم الوظيفة واحد في كلا الكائنين ... هنا يتضح معنى الواجهات.</span></span><br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">            سأوضح لك مرة أخرى وبمثال آخر .. بفرض أنك مدير مشروع برمجي معين وليكن هذا المشروع خاص بصناعة مكتبة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">DLL</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> للتعامل مع ملفات </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS OFFICE</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، وقد قررت كمدير مشروع أن تقوم بعمل أربعة فئات </span></span>[FONT=&amp;amp]4[/FONT][FONT=&amp;amp]Classes[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، الأولى منهم لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Word</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> والثانية لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Access</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> والثالثة لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS PowerPoint</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> والرابعة لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Excel</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، وتم الاتفاق على عدة وظائف مثلا كالآتي :</span></span><br />
  <ul class="mycode_list"><li>[FONT=&amp;amp]Method [/FONT][FONT=&amp;amp]&gt;&gt; [/FONT][FONT=&amp;amp]OpenFile[/FONT] <br />
</li>
<li>[FONT=&amp;amp]Method [/FONT][FONT=&amp;amp]&gt;&gt; [/FONT][FONT=&amp;amp]DeleteFile[/FONT] <br />
</li>
<li>[FONT=&amp;amp]Property &gt;&gt; FileName[/FONT] <br />
</li>
<li>[FONT=&amp;amp]Method [/FONT][FONT=&amp;amp]&gt;&gt; FileSize[/FONT] <br />
</li>
</ul>
  <br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">وهذا فقط كان على سبيل المثال .. تعال معي نرجع  سوياً إلى موضوعنا الأساسي ، أنت كمدير مشروع كما ذكرنا سالفا أنك تريد  تواجد هذه الخصائص والوسائل في كل فئة من الأربعة فئات المرجو إنشائها. هل  الحل أنك تقوم بالنسخ واللصق ومن ثم تغيير الأكواد ، أم الإملاء على  المطورين ومن ثم تجد الأخطاء ؟؟؟ ... هنا سنلجأ إلى استخدام الواجهات فهي  من ستحل الموضوع.<br />
</span></span><br />
<img src="https://vb4arb.com/vb/uploaded/203_01348405327.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348405327.jpg]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">من القائمة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Project</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> اختر العنصر </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Add Component</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ثم اختر العنصر </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Interface</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> كما هو موضح بالصورة أدناه :</span></span><br />
  <br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">قد قمت بالتصريح عن الوسائل والخصائص السالف  ذكرها في الواجهة كما يلي ... ولا زلت أكرر أننا لا نكتب أية أكواد داخل  الواجهة ، فقط نقوم بالتعريف والتصريح عن مكونات الفئة كما يلي :<br />
<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Public Interface MyInterface<br />
'This subroutine to open the file by using [FileName] property value&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Sub OpenFile()<br />
&nbsp;&nbsp;&nbsp;&nbsp;'Use this property to specify file path or read the file path to open it or delete it<br />
&nbsp;&nbsp;&nbsp;&nbsp;Property FileName() As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;'This subroutine to delete the file by using [FileName] property value<br />
&nbsp;&nbsp;&nbsp;&nbsp;Sub DeleteFile()<br />
&nbsp;&nbsp;&nbsp;&nbsp;'This function used to return the file size by using [FileName] property value<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Function FileSize() As Double<br />
End Interface[b][FONT=Tahoma]<br />
[/FONT][/b][/align]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
<br />
<br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">أنا فقط قمت بعمل مثال عابر ومبسط ، فيمكنك عزيزي  القارئ أن تقوم بالتصريح عما تحب وكيف تحب ومتي تحب ... قم بالتصريح مثلا  عن متغيرات عادية وأحداث ووسائل وخصائص ، أما أن لضيق الوقت أردت إيصال  الفكرة فقط. أنا متشوق بالفعل حتى أريك كيف يتم وراثة هذه الواجهة داخل  الفئات التي قمنا بإنشائها سابقاً ، فكل ما عليك إلا الدخول داخل كل فئة  وتكتب هذه العبارة :<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Implements MyInterface[b][FONT=Tahoma]<br />
[/FONT][/b][/align]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
<br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">ستجد نفسك في الفئة مثلا الخاصة بالـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Excel</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> قد حصلت على النتيجة التالية كوراثة حقيقية لما تم التصريح عنه في الواجهة </span></span>[FONT=&amp;amp]MyInterface[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Public Class Excel&nbsp;&nbsp;<br />
Implements MyInterface&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; Public Sub DeleteFile() Implements MyInterface.DeleteFile&nbsp;&nbsp;&nbsp;&nbsp;<br />
End Sub<br />
&nbsp;&nbsp;&nbsp;&nbsp; Public Property FileName() As String Implements MyInterface.FileName <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
End Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;Public Function FileSize() As Double Implements MyInterface.FileSize<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;Public Sub OpenFile() Implements MyInterface.OpenFile<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
&nbsp;&nbsp;End Class<br />
[/align]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
<br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">هذه هي بالفعل شكل الفئة بعد وراثة الواجهة وما عليك إلا توزيع الهيكل العام لهذه المكتبة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">DLL</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">  على المطورين في المشروع وهم يقوموا بكتابة الكود فقط داخل الوسائل  والخصائص والأحداث المصرح عنها ... <span style="color: #ff0000;" class="mycode_color">يمكنك تحميل المشروع من الرابط التالي :</span><br />
<a href="http://www.4shared.com/rar/8gCjzUtj/21250864124.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/rar/8gCjzUtj/21250864124.html</a></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"></span></span><br />
<span style="color: #ff0000;" class="mycode_color">أو من المرفقات </span><span style="color: #000000;" class="mycode_color">بإسم</span><span style="color: #ff0000;" class="mycode_color"> : </span><span style="color: #0000ff;" class="mycode_color">مرفق 1<br />
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">** <span style="color: red;" class="mycode_color">ملحوظة</span> **</span></span><br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">            كما ذكرنا سابقاً أن </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Visual Basic .NET</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> لا يسمح لك بالوراثة من أكثر من فئة ، ولكن داخل الفئة الواحدة يمكنك وراثة أكثر من واجهة.</span></span><br />
  <br />
  <div style="text-align: center;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">كلمة أخيرة في مبدأ الوراثة .. الكلمات المفتاحية</span></span></div>
</div>
  <div style="text-align: center;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Access Modifiers[/FONT]</span></span></div>
</div>
  <ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Public[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:  يجعل المتغير أو الوسيلة معرفة على مستوى الفئة ككل وكذلك على مستوى  المشروع بالكامل ، كما يمكنك الحصول على هذا المتغير أو هذه الوسيلة إذا  قمت بأخذ نسخة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Instance</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> من الفئة في أي مكان آخر على      اختلاف نوع المشاريع سواء </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">******sApplications</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> أو </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">ClassLibrary</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ... الخ. كما أن هذا المتغير      أو الوسية من النوع </span></span>[FONT=&amp;amp]Public[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> تظهر في حالات الوارثة في      الفئات المشتقة.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Friend[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:      يجعل الإجراء معرف على مستوى الفئة ككل وداخل المشروع الحالي بصفة عامة ، لكن      اذا تم دمج الفئة في ملف </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">DLL</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> وأخذ نسخة لكائن من الفئة فإن الاجراءات من هذا النوع لا      تظهر.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Default[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:      وهنا نحن بصدد الحديث عن عدم استخدام الكلمات المفتاحية والتي يعتبرها      المترجم من أنها من النوع </span></span>[FONT=&amp;amp]Public[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> وينطبق عليها ما ورد سابقاً.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Private[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:      يجعل الإجراء معرف على مستوى على الفئة فقط ، ولا يظهر في أي مكان خارجها.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Protected[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:  يشبه الـ </span></span>[FONT=&amp;amp]Private[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> تماماً ولكن يختلف عنه في نقطة ، ألا وهي أنه في حالة      التوريث فإن الفئة المشتقة </span></span>[FONT=&amp;amp]Derived[/FONT][FONT=&amp;amp]Class[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> يظهر بداخله الإجراءات والمتغيرات من النوع </span></span>[FONT=&amp;amp]Protected[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، ولكن إذا أخذت نسخة من الفئة الأب </span></span>[FONT=&amp;amp]****[/FONT][FONT=&amp;amp]Class[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> أو ما يسمى بالـ </span></span>[FONT=&amp;amp]Parent[/FONT][FONT=&amp;amp]Class[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فلن تظهر المتغيرات ولا الإجراءات من النوع </span></span>[FONT=&amp;amp]Protected[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">.</span></span> <br />
</li>
</ul>
  <br />
<br />
<br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">يمكنك مراجعة المثال التالي</span> ، فهو عبارة عن فئة بالاسم ( </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MyClass</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ) وبها بعض الإجراءات باختلاف الكلمات المفتاحية لكل منها:<br />
<a href="http://www.4shared.com/rar/pmYpsxLx/31250864124.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/rar/pmYpsxLx/31250864124.html</a></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
</span></span><span style="color: #ff0000;" class="mycode_color">أو من المرفقات </span><span style="color: #000000;" class="mycode_color">بإسم</span><span style="color: #ff0000;" class="mycode_color"> : </span><span style="color: #0000ff;" class="mycode_color">مرفق 2<br />
<br />
</span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
</span></span><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=2633" target="_blank" title="">&#1605;&#1585;&#1601;&#1602; 1.rar</a> (الحجم : 55.41 ك ب / التحميلات : 48)
<br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=2634" target="_blank" title="">&#1605;&#1585;&#1601;&#1602; 2.rar</a> (الحجم : 10.8 ك ب / التحميلات : 48)
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="color: #b22222;" class="mycode_color">بسم الله الرحمن الرحيم<br />
السلام عليكم ورحمة الله وبركاته</span><br />
<span style="color: #0000cd;" class="mycode_color">نبدا من حيث انتهينا من الفصل السابق</span><br />
<span style="text-decoration: underline;" class="mycode_u"><span style="color: #ff0000;" class="mycode_color">يجب قراءة الفصل السابق</span></span> <span style="color: #0000cd;" class="mycode_color">لتتمكن من الاستمرار في هذا الفصل</span><br />
<span style="text-decoration: underline;" class="mycode_u"><span style="color: #ff0000;" class="mycode_color"> الفصل 11 </span></span><br />
<br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color"> وهذا الفصل ايضا كتب بقلم الاستاذ احمد نجم</span></span><br />
</div>
 <br />
<br />
  <span style="font-family: Arial;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size"><span style="color: Red;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">وراثة الواجهاتInterface Inheritance</span></span></span></span><br />
<br />
    <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">تحدثنا سالفاً عن اشتقاق او وراثة فئة من أخرى  وفيها تورث الفئة المشتقة كافة خصائص ووسائل وأحداث الفئة الأب وكذلك أيضاً  وراثة الكود المكتوب بالداخل كاملاً. يُمكنك </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Visual Basic .NET</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">  من تعريف أو التصريح عن الواجهات ، والواجهة ما هي إلا واجهة لفئة ما  واسمها خير دليل على هذا وهي لا تحتوي على أية أكواد للتنفيذ. بعد تصريحك  عن واجهة جديدة يمكنك استخدام الكلمة </span></span><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Implements[/FONT]</span>[FONT=&amp;amp]&lt;InterfaceName&gt;[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> وذلك كي تشتق أو تستدعي كافة الوسائل والخصائص والأحداث التي تم التصريح عنها داخل الواجهة.</span></span><br />
  <br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">كي تتضح لديك الرؤية أكثر من ذلك ، اتبع ما يلي ... قم بالتصريح عن هذين المتغيرين كما هو موضح أدناه :<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Dim CN1 As New System.Data.OleDb.OleDbConnection<br />
[/align]</code></div></div><br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">العجيب في هذين التصريحين أنك إذا نظرت في الوسائل والخصائص المصاحبة للكائن </span></span>[FONT=&amp;amp]CN1[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ستجدها بنفس الترتيب ونفس الهجاء بالنسبة للكائن </span></span>[FONT=&amp;amp]CN2[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، ولكن مع اختلاف الوظيفة ... يعني مثلا الوظيفة </span></span>[FONT=&amp;amp]Open[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فهي مصاحبة لكلا الكائنين ولكنها مع </span></span>[FONT=&amp;amp]CN1[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> تتصل بأي قاعدة بيانات حسب جملة الاتصال الممررة إليها </span></span>[FONT=&amp;amp]Connection[/FONT][FONT=&amp;amp]String[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، أما مع الكائن </span></span>[FONT=&amp;amp]CN2[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فهي لا تتعامل إلا مع محركات قواعد بيانات </span></span>[FONT=&amp;amp]MS[/FONT][FONT=&amp;amp]SQL[/FONT][FONT=&amp;amp]Server[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فقط بالرغم من أن اسم الوظيفة واحد في كلا الكائنين ... هنا يتضح معنى الواجهات.</span></span><br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">            سأوضح لك مرة أخرى وبمثال آخر .. بفرض أنك مدير مشروع برمجي معين وليكن هذا المشروع خاص بصناعة مكتبة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">DLL</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> للتعامل مع ملفات </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS OFFICE</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، وقد قررت كمدير مشروع أن تقوم بعمل أربعة فئات </span></span>[FONT=&amp;amp]4[/FONT][FONT=&amp;amp]Classes[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، الأولى منهم لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Word</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> والثانية لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Access</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> والثالثة لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS PowerPoint</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> والرابعة لـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Excel</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، وتم الاتفاق على عدة وظائف مثلا كالآتي :</span></span><br />
  <ul class="mycode_list"><li>[FONT=&amp;amp]Method [/FONT][FONT=&amp;amp]&gt;&gt; [/FONT][FONT=&amp;amp]OpenFile[/FONT] <br />
</li>
<li>[FONT=&amp;amp]Method [/FONT][FONT=&amp;amp]&gt;&gt; [/FONT][FONT=&amp;amp]DeleteFile[/FONT] <br />
</li>
<li>[FONT=&amp;amp]Property &gt;&gt; FileName[/FONT] <br />
</li>
<li>[FONT=&amp;amp]Method [/FONT][FONT=&amp;amp]&gt;&gt; FileSize[/FONT] <br />
</li>
</ul>
  <br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">وهذا فقط كان على سبيل المثال .. تعال معي نرجع  سوياً إلى موضوعنا الأساسي ، أنت كمدير مشروع كما ذكرنا سالفا أنك تريد  تواجد هذه الخصائص والوسائل في كل فئة من الأربعة فئات المرجو إنشائها. هل  الحل أنك تقوم بالنسخ واللصق ومن ثم تغيير الأكواد ، أم الإملاء على  المطورين ومن ثم تجد الأخطاء ؟؟؟ ... هنا سنلجأ إلى استخدام الواجهات فهي  من ستحل الموضوع.<br />
</span></span><br />
<img src="https://vb4arb.com/vb/uploaded/203_01348405327.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348405327.jpg]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">من القائمة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Project</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> اختر العنصر </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Add Component</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ثم اختر العنصر </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Interface</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> كما هو موضح بالصورة أدناه :</span></span><br />
  <br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">قد قمت بالتصريح عن الوسائل والخصائص السالف  ذكرها في الواجهة كما يلي ... ولا زلت أكرر أننا لا نكتب أية أكواد داخل  الواجهة ، فقط نقوم بالتعريف والتصريح عن مكونات الفئة كما يلي :<br />
<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Public Interface MyInterface<br />
'This subroutine to open the file by using [FileName] property value&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;Sub OpenFile()<br />
&nbsp;&nbsp;&nbsp;&nbsp;'Use this property to specify file path or read the file path to open it or delete it<br />
&nbsp;&nbsp;&nbsp;&nbsp;Property FileName() As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;'This subroutine to delete the file by using [FileName] property value<br />
&nbsp;&nbsp;&nbsp;&nbsp;Sub DeleteFile()<br />
&nbsp;&nbsp;&nbsp;&nbsp;'This function used to return the file size by using [FileName] property value<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Function FileSize() As Double<br />
End Interface[b][FONT=Tahoma]<br />
[/FONT][/b][/align]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
<br />
<br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">أنا فقط قمت بعمل مثال عابر ومبسط ، فيمكنك عزيزي  القارئ أن تقوم بالتصريح عما تحب وكيف تحب ومتي تحب ... قم بالتصريح مثلا  عن متغيرات عادية وأحداث ووسائل وخصائص ، أما أن لضيق الوقت أردت إيصال  الفكرة فقط. أنا متشوق بالفعل حتى أريك كيف يتم وراثة هذه الواجهة داخل  الفئات التي قمنا بإنشائها سابقاً ، فكل ما عليك إلا الدخول داخل كل فئة  وتكتب هذه العبارة :<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Implements MyInterface[b][FONT=Tahoma]<br />
[/FONT][/b][/align]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
<br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">ستجد نفسك في الفئة مثلا الخاصة بالـ </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MS Excel</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> قد حصلت على النتيجة التالية كوراثة حقيقية لما تم التصريح عنه في الواجهة </span></span>[FONT=&amp;amp]MyInterface[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:<br />
<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Public Class Excel&nbsp;&nbsp;<br />
Implements MyInterface&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; Public Sub DeleteFile() Implements MyInterface.DeleteFile&nbsp;&nbsp;&nbsp;&nbsp;<br />
End Sub<br />
&nbsp;&nbsp;&nbsp;&nbsp; Public Property FileName() As String Implements MyInterface.FileName <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get <br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
End Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;Public Function FileSize() As Double Implements MyInterface.FileSize<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;Public Sub OpenFile() Implements MyInterface.OpenFile<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
&nbsp;&nbsp;End Class<br />
[/align]</code></div></div><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
<br />
</span></span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">هذه هي بالفعل شكل الفئة بعد وراثة الواجهة وما عليك إلا توزيع الهيكل العام لهذه المكتبة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">DLL</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">  على المطورين في المشروع وهم يقوموا بكتابة الكود فقط داخل الوسائل  والخصائص والأحداث المصرح عنها ... <span style="color: #ff0000;" class="mycode_color">يمكنك تحميل المشروع من الرابط التالي :</span><br />
<a href="http://www.4shared.com/rar/8gCjzUtj/21250864124.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/rar/8gCjzUtj/21250864124.html</a></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"></span></span><br />
<span style="color: #ff0000;" class="mycode_color">أو من المرفقات </span><span style="color: #000000;" class="mycode_color">بإسم</span><span style="color: #ff0000;" class="mycode_color"> : </span><span style="color: #0000ff;" class="mycode_color">مرفق 1<br />
</span><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">** <span style="color: red;" class="mycode_color">ملحوظة</span> **</span></span><br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">            كما ذكرنا سابقاً أن </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Visual Basic .NET</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> لا يسمح لك بالوراثة من أكثر من فئة ، ولكن داخل الفئة الواحدة يمكنك وراثة أكثر من واجهة.</span></span><br />
  <br />
  <div style="text-align: center;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">كلمة أخيرة في مبدأ الوراثة .. الكلمات المفتاحية</span></span></div>
</div>
  <div style="text-align: center;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Access Modifiers[/FONT]</span></span></div>
</div>
  <ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Public[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:  يجعل المتغير أو الوسيلة معرفة على مستوى الفئة ككل وكذلك على مستوى  المشروع بالكامل ، كما يمكنك الحصول على هذا المتغير أو هذه الوسيلة إذا  قمت بأخذ نسخة </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">Instance</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> من الفئة في أي مكان آخر على      اختلاف نوع المشاريع سواء </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">******sApplications</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> أو </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">ClassLibrary</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ... الخ. كما أن هذا المتغير      أو الوسية من النوع </span></span>[FONT=&amp;amp]Public[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> تظهر في حالات الوارثة في      الفئات المشتقة.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Friend[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:      يجعل الإجراء معرف على مستوى الفئة ككل وداخل المشروع الحالي بصفة عامة ، لكن      اذا تم دمج الفئة في ملف </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">DLL</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> وأخذ نسخة لكائن من الفئة فإن الاجراءات من هذا النوع لا      تظهر.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Default[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:      وهنا نحن بصدد الحديث عن عدم استخدام الكلمات المفتاحية والتي يعتبرها      المترجم من أنها من النوع </span></span>[FONT=&amp;amp]Public[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> وينطبق عليها ما ورد سابقاً.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Private[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:      يجعل الإجراء معرف على مستوى على الفئة فقط ، ولا يظهر في أي مكان خارجها.</span></span> <br />
</li>
<li><span style="font-weight: bold;" class="mycode_b"><span style="color: blue;" class="mycode_color">[FONT=&amp;amp]Protected[/FONT]</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">:  يشبه الـ </span></span>[FONT=&amp;amp]Private[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> تماماً ولكن يختلف عنه في نقطة ، ألا وهي أنه في حالة      التوريث فإن الفئة المشتقة </span></span>[FONT=&amp;amp]Derived[/FONT][FONT=&amp;amp]Class[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> يظهر بداخله الإجراءات والمتغيرات من النوع </span></span>[FONT=&amp;amp]Protected[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ، ولكن إذا أخذت نسخة من الفئة الأب </span></span>[FONT=&amp;amp]****[/FONT][FONT=&amp;amp]Class[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> أو ما يسمى بالـ </span></span>[FONT=&amp;amp]Parent[/FONT][FONT=&amp;amp]Class[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> فلن تظهر المتغيرات ولا الإجراءات من النوع </span></span>[FONT=&amp;amp]Protected[/FONT]<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">.</span></span> <br />
</li>
</ul>
  <br />
<br />
<br />
  <span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><span style="color: #ff0000;" class="mycode_color">يمكنك مراجعة المثال التالي</span> ، فهو عبارة عن فئة بالاسم ( </span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font">MyClass</span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"> ) وبها بعض الإجراءات باختلاف الكلمات المفتاحية لكل منها:<br />
<a href="http://www.4shared.com/rar/pmYpsxLx/31250864124.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/rar/pmYpsxLx/31250864124.html</a></span></span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
</span></span><span style="color: #ff0000;" class="mycode_color">أو من المرفقات </span><span style="color: #000000;" class="mycode_color">بإسم</span><span style="color: #ff0000;" class="mycode_color"> : </span><span style="color: #0000ff;" class="mycode_color">مرفق 2<br />
<br />
</span><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Tahoma;" class="mycode_font"><br />
</span></span><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=2633" target="_blank" title="">&#1605;&#1585;&#1601;&#1602; 1.rar</a> (الحجم : 55.41 ك ب / التحميلات : 48)
<br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=2634" target="_blank" title="">&#1605;&#1585;&#1601;&#1602; 2.rar</a> (الحجم : 10.8 ك ب / التحميلات : 48)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(10):مدخل الى الفئات..الجزء الثاني]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4383</link>
			<pubDate>Sun, 23 Sep 2012 12:48:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4383</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size">السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم<br />
</span></span>في هذا الفصل نكمل ما قد من حيث انتهينا في الفصل السابق:<br />
</div>
[h=3]<a href="https://vb4arb.com/vb/showthread.php?342-%D8%A7%D9%84%D9%81%D8%B5%D9%84%289%29-%D9%85%D8%AF%D8%AE%D9%84-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D9%81%D8%A6%D8%A7%D8%AAClasses-%D8%A7%D9%84%D8%AC%D8%B2%D8%A1-%D8%A7%D9%84%D8%A3%D9%88%D9%84" target="_blank" rel="noopener" class="mycode_url">الفصل(9):مدخل الى الفئاتClasses - الجزء الأول</a>[/h]<div style="text-align: center;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color"> وقد ذكرنا أن الفئات تحتوي أربعة أجزاء وهي:</span><br />
</div>
<br />
<ol type="1" class="mycode_list"><li>[*=center]الحقول(Fields)<br />
[*=center]الطرق(Methods)<br />
[*=center]الخصائص(properties)<br />
[*=center]الأحداث(Events)<br />
</li>
</ol>
<div style="text-align: center;" class="mycode_align">وتحدثنا عن الحقول والطرق واليوم ان شاء الله سنبدأ بالخصائص...<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color">الخصائص Properties</span></span></span></span><br />
بطبيعة الحال فإن أي كائن يمتلك سمات وخصائص وهذا هو المبدأ الذي تطبقه البرمجة الكائنية OOP . <br />
الأمر بسيط لكن يحتاج قليل من التركيز.<br />
الآن يمكنك البدء بصنع خاصية باستخدام الكلمة المحجوزة Property وننهيها ب End Property<br />
مثال:</div>
 <div style="text-align: left;" class="mycode_align">
<div style="text-align: right;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
<br />
Property ****() As String<br />
...<br />
...<br />
...<br />
End Property<br />
<br />
End Class<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">الآن داخل الفئة أضفنا الخاصية **** لكن قد تلاحظ أنها تأخذ شكل الطريقة Method كما أنها تأخذ شكل الحقل Field<br />
اذن يمكن القول بان الخاصية عبارة عن مدمج ما بين الحقل و الطريقة. <br />
لكن الخاصية تحتاج الى ضبط قيمة كما نحتاج ايضا الى قراءة الخاصية.<br />
يمكن ذلك باستخدام الكلمتين المحجوزتين Get و Set<br />
<br />
أولا: الدالةGet:<br />
تستخدم هذه الدالة لتزويدنا بقيمة الخاصية الحالية. لكن علينا مسبقا تعريف  متغير جديد من نوع الخاصية ليحمل القيمة وقت استرجاعها او ضبطها<br />
مثال:<br />
</div>
 <div style="text-align: left;" class="mycode_align">
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
Dim m_**** As String<br />
Property ****() As String<br />
Get<br />
Return m_****<br />
End Get<br />
<br />
....<br />
....<br />
....<br />
End Property<br />
End Class<br />
[/align]</code></div></div><br />
</div>
</div>
   <div style="text-align: center;" class="mycode_align">الآن كما نرى قمنا بصنع خاصية جديدة باسم **** وقبلها عرفنا  متغير من نوع الخاصية سنستخدمه في عملية الضبط والاسترجاع لهذه الخاصية  ويفضل تسمية هذا المتغير تسمية قريبة من اسم الخاصية ويمكنك ملاحظة ان معظم  البرامج تستخدم تسمية المتغير بهذه الطريقة m_**** أي باضافة m_ في بداية  المتغير وبعدها كتابة اسم الخاصية ويمكنكم ملاحظة أن الدالةGet تحتاج ناتج  والذي ارجعناه بواسطة الكلمة المحجوزة Return والتي شرحناها في فصل  الاجراءات والدوال<br />
<br />
لكن كيف يمكننا الحصول على قيمة الخاصية ..<br />
سهل جدا:<br />
انظر المثال التالي:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
Dim m_**** As String = "Islam Son"<br />
Property ****() As String<br />
Get<br />
Return m_****<br />
End Get<br />
..<br />
..<br />
..<br />
End Property<br />
End Class<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align"> الآن قمنا بصنع نفس الخاصية السابقة واسندنا للمتغير m_**** قيمة افتراضية  "Islam Son" والآن داخل اي اجراء استخدم التالي للاستعلام عن القيمة:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Dim Lo2i As New Person<br />
MsgBox(Lo2i.****)<br />
[/align]</code></div></div> انظر الناتج..<br />
<br />
<br />
ثانيا:الاجراء Set<br />
الآن بعد أن عرفنا كيف نقوم بالاستعلام فايضا قد يلزمنا اجراء لاسناد قيمة للخاصية<br />
يتم ذلك عن طريق الاجراء Set<br />
مثال:<br />
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
<br />
Dim m_**** As String = "Islam Son"<br />
<br />
Property ****() As String<br />
...<br />
...<br />
...<br />
<br />
Set(ByVal value As String)<br />
m_**** = value<br />
End Set<br />
<br />
End Property<br />
<br />
End Class<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">كما نرى فان الطريقة الخاصة بضبط القيمة هي Set ..كيف تعمل؟؟<br />
تقوم هذه الطريقة بستقبال الوسيط الذي نرسله بنفس نوع الخاصية وسميت  افتراضيا بValue ويمكنك تغيير المسمى فلا فرق وداخل هذا الاجراء قمنا  باسناد قيمة الوسيط المرسل الى المتغير m_**** حتى عند الاستعلام يرجع لنا  بنفس القيمة التي مررناها له <br />
هذا المثال يوضح كلا من Get وSet<br />
المثال:<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim m_**** As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property ****() As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return m_****<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_**** = value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Class<br />
[/align]</code></div></div> <div style="text-align: left;" class="mycode_align">
    <br />
<br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles My****.Load<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Lo2i As New Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo2i.**** = "Lo2i"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox(Lo2i.****)<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div></div>
<br />
<div style="text-align: center;" class="mycode_align">ويمكنك ملاحظة التالي:<br />
عند استخدام هذه التعليمة<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Lo2i.**** = "Lo2i"<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">فان الاجراء المستخدم هو Set لانه يتم اسناد قيمة للخاصية <br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] MsgBox(Lo2i.****)<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">فان الاجراء المستخدم حينها هو Get لانه يتم الاستعلام عن قيمة الخاصية<br />
<br />
<br />
ايضا ماذا ان اردنا جعل الخاصية محمية من القراءة فقط نريدها للكتابة  .....يمكنك باستخدام الكلمة المحجوزة WriteOnly وبالتالي فان وجود الدالة  Get يسبب خطأ كما ان عملية الاستعلام عن قيمة الخاصية ايضا يسبب خطأ<br />
مثال:<br />
</div>
 <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Class Person<br />
Dim m_**** As String<br />
WriteOnly Property ****() As String<br />
<br />
Set(ByVal value As String)<br />
m_**** = value<br />
End Set<br />
<br />
End Property<br />
End Class<br />
<br />
 [/align]</code></div></div> <br />
<div style="text-align: center;" class="mycode_align">وهذا يفيد في منع الحصول على معلومات سرية مثلا ككلمة المرور..<br />
<br />
<br />
الآن هل يمكن ارسال اكثر من وسيط للخاصية...لا مشكلة<br />
مثال:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim m_****(1) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property ****(ByVal Index As Integer) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return m_****(Index)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_****(Index) = value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Property<br />
End Class<br />
<br />
 [/align]</code></div></div><div style="text-align: center;" class="mycode_align">الآن قمنا بصنع خاصية الاسم وجعلنا المتغير المقترن بها على شكل مصفوفة تحتوي على عنصرين(1+1) على اعتبار الاسم الاول والاخير <br />
وأضفنا وسيط للخاصية باسم Index ليعمل عمل فهرس للاسمين الاول والثاني وعند  عملية الاسناد في Set ترى ان القيم المسندة تكون على شكل مصفوفة <br />
الآن:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Dim Lo2i As New Person<br />
Dim Full**** As String<br />
<br />
Lo2i.****(0) = "Lo2i "<br />
Lo2i.****(1) = "VB4ARAB"<br />
<br />
<br />
<br />
For i = 0 To 1 Step 1<br />
Full**** &amp;= Lo2i.****(i)<br />
Next<br />
<br />
MsgBox(Full****)<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">أعلنا عن Lo2i كPerson وقمنا باسناد القيمة الاولى والثانية للخاصية **** التي تحمل معنى مصفوفة مكونة من عنصرين <br />
وقمنا بصنع عداد لربط قيمتين الخاصية وقمنا بعرض ناتج الربط والذي يحمله المتغير Full**** في رسالة<br />
<br />
___________________________<br />
مداخلة: "&amp;" عملية تقوم بربط النصوص. أما "&amp;=" تقوم بربط ما قبل = بما بعدها<br />
أي أن:<br />
</div>
 <div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Full**** &amp;= "Mr_MOHAMMED"</code></div></div><br />
تعادل<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Full**** = Full**** &amp; "Mr_MOHAMMED"</code></div></div></div>
<div style="text-align: center;" class="mycode_align"> ويمكن استخدام هذه الصورة مع باقي العمليات الجبرية ..أي أن:</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>x += y</code></div></div><br />
</div>
 <br />
<br />
<div style="text-align: left;" class="mycode_align">تعادل<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] x = x + y<br />
[/align]</code></div></div><br />
___________________________<br />
<br />
<div style="text-align: center;" class="mycode_align">ملاحظتان:<br />
</div>
<ul class="mycode_list"><li>[*=center]يمكن استخدام مبدأ إعادة التعريف OverLoading مع الخصائص<br />
[*=center]يمكن استخدام الخصائص في الوحدات البرمجية Modules  والتركيبات Structures<br />
</li>
</ul>
<div style="text-align: center;" class="mycode_align">الخصائص الافتراضية:<br />
هي الخصائص التي تمثل الفئة بشكل افتراضي ويمكنك جعل خاصية افتراضية باستخدام الكلمة المحجوزة Defualt <br />
مثال:</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim m_****(1) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default Property ****(ByVal Index As Integer) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return m_****(Index)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_****(Index) = value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Class<br />
[/align]</code></div></div><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
Dim Lo2i As New Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Full**** As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo2i(0) = "Lo2i "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo2i(1) = "VB4ARAB"<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To 1 Step 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Full**** &amp;= Lo2i(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox(Full****)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">قد تلاحظ أنه لا يتوجب ذكر الخاصية في عملية الاسناد أو الاستعلام لانها كما قلنا تمثل الفئة <br />
يمكنك ملاحظة هذا الشيء في فيجوال بيسك 6 <br />
فالتعليمتان التاليتان لهما نفس الوظيفة<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]****1.****="Mr_MOHAMMED"<br />
[/align]</code></div></div><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] ****1 = "Mr_MOHAMMED"<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">ومن هذا نستنتج ان الخاصية الافتراضية هي ****<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color">الأحداث Events</span></span></span></span><br />
بالنسبة لموضوع الاحداث فضلت عدم الحديث عنها في هذا الموضوع -ليس لضعف او  عجز في موضوعها لكن لعدم مناسبة الموضوع للمبتدئين- لكن بالتأكيد سنتطرق  لهذا الموضوع في دورتنا في الجانب العملي حيث تلزمنا وسنفصل فيها وقتها قدر  الامكان ان شاء الله وسنربطها ربطا مباشرا مع فصلنا هذا وسترونها موضوعا   سهلا وبسيطا ان شاء الله<br />
<br />
مع تحيات<br />
<span style="color: #0000ff;" class="mycode_color">Lo2i </span>و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">انتظروا الدرس القادم</span></span><br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-family: Arial;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size">السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم<br />
</span></span>في هذا الفصل نكمل ما قد من حيث انتهينا في الفصل السابق:<br />
</div>
[h=3]<a href="https://vb4arb.com/vb/showthread.php?342-%D8%A7%D9%84%D9%81%D8%B5%D9%84%289%29-%D9%85%D8%AF%D8%AE%D9%84-%D8%A7%D9%84%D9%89-%D8%A7%D9%84%D9%81%D8%A6%D8%A7%D8%AAClasses-%D8%A7%D9%84%D8%AC%D8%B2%D8%A1-%D8%A7%D9%84%D8%A3%D9%88%D9%84" target="_blank" rel="noopener" class="mycode_url">الفصل(9):مدخل الى الفئاتClasses - الجزء الأول</a>[/h]<div style="text-align: center;" class="mycode_align"><span style="color: #0000ff;" class="mycode_color"> وقد ذكرنا أن الفئات تحتوي أربعة أجزاء وهي:</span><br />
</div>
<br />
<ol type="1" class="mycode_list"><li>[*=center]الحقول(Fields)<br />
[*=center]الطرق(Methods)<br />
[*=center]الخصائص(properties)<br />
[*=center]الأحداث(Events)<br />
</li>
</ol>
<div style="text-align: center;" class="mycode_align">وتحدثنا عن الحقول والطرق واليوم ان شاء الله سنبدأ بالخصائص...<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color">الخصائص Properties</span></span></span></span><br />
بطبيعة الحال فإن أي كائن يمتلك سمات وخصائص وهذا هو المبدأ الذي تطبقه البرمجة الكائنية OOP . <br />
الأمر بسيط لكن يحتاج قليل من التركيز.<br />
الآن يمكنك البدء بصنع خاصية باستخدام الكلمة المحجوزة Property وننهيها ب End Property<br />
مثال:</div>
 <div style="text-align: left;" class="mycode_align">
<div style="text-align: right;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
<br />
Property ****() As String<br />
...<br />
...<br />
...<br />
End Property<br />
<br />
End Class<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">الآن داخل الفئة أضفنا الخاصية **** لكن قد تلاحظ أنها تأخذ شكل الطريقة Method كما أنها تأخذ شكل الحقل Field<br />
اذن يمكن القول بان الخاصية عبارة عن مدمج ما بين الحقل و الطريقة. <br />
لكن الخاصية تحتاج الى ضبط قيمة كما نحتاج ايضا الى قراءة الخاصية.<br />
يمكن ذلك باستخدام الكلمتين المحجوزتين Get و Set<br />
<br />
أولا: الدالةGet:<br />
تستخدم هذه الدالة لتزويدنا بقيمة الخاصية الحالية. لكن علينا مسبقا تعريف  متغير جديد من نوع الخاصية ليحمل القيمة وقت استرجاعها او ضبطها<br />
مثال:<br />
</div>
 <div style="text-align: left;" class="mycode_align">
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
Dim m_**** As String<br />
Property ****() As String<br />
Get<br />
Return m_****<br />
End Get<br />
<br />
....<br />
....<br />
....<br />
End Property<br />
End Class<br />
[/align]</code></div></div><br />
</div>
</div>
   <div style="text-align: center;" class="mycode_align">الآن كما نرى قمنا بصنع خاصية جديدة باسم **** وقبلها عرفنا  متغير من نوع الخاصية سنستخدمه في عملية الضبط والاسترجاع لهذه الخاصية  ويفضل تسمية هذا المتغير تسمية قريبة من اسم الخاصية ويمكنك ملاحظة ان معظم  البرامج تستخدم تسمية المتغير بهذه الطريقة m_**** أي باضافة m_ في بداية  المتغير وبعدها كتابة اسم الخاصية ويمكنكم ملاحظة أن الدالةGet تحتاج ناتج  والذي ارجعناه بواسطة الكلمة المحجوزة Return والتي شرحناها في فصل  الاجراءات والدوال<br />
<br />
لكن كيف يمكننا الحصول على قيمة الخاصية ..<br />
سهل جدا:<br />
انظر المثال التالي:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
Dim m_**** As String = "Islam Son"<br />
Property ****() As String<br />
Get<br />
Return m_****<br />
End Get<br />
..<br />
..<br />
..<br />
End Property<br />
End Class<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align"> الآن قمنا بصنع نفس الخاصية السابقة واسندنا للمتغير m_**** قيمة افتراضية  "Islam Son" والآن داخل اي اجراء استخدم التالي للاستعلام عن القيمة:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Dim Lo2i As New Person<br />
MsgBox(Lo2i.****)<br />
[/align]</code></div></div> انظر الناتج..<br />
<br />
<br />
ثانيا:الاجراء Set<br />
الآن بعد أن عرفنا كيف نقوم بالاستعلام فايضا قد يلزمنا اجراء لاسناد قيمة للخاصية<br />
يتم ذلك عن طريق الاجراء Set<br />
مثال:<br />
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
<br />
Dim m_**** As String = "Islam Son"<br />
<br />
Property ****() As String<br />
...<br />
...<br />
...<br />
<br />
Set(ByVal value As String)<br />
m_**** = value<br />
End Set<br />
<br />
End Property<br />
<br />
End Class<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">كما نرى فان الطريقة الخاصة بضبط القيمة هي Set ..كيف تعمل؟؟<br />
تقوم هذه الطريقة بستقبال الوسيط الذي نرسله بنفس نوع الخاصية وسميت  افتراضيا بValue ويمكنك تغيير المسمى فلا فرق وداخل هذا الاجراء قمنا  باسناد قيمة الوسيط المرسل الى المتغير m_**** حتى عند الاستعلام يرجع لنا  بنفس القيمة التي مررناها له <br />
هذا المثال يوضح كلا من Get وSet<br />
المثال:<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim m_**** As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property ****() As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return m_****<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_**** = value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Class<br />
[/align]</code></div></div> <div style="text-align: left;" class="mycode_align">
    <br />
<br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles My****.Load<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Lo2i As New Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo2i.**** = "Lo2i"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox(Lo2i.****)<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div></div>
<br />
<div style="text-align: center;" class="mycode_align">ويمكنك ملاحظة التالي:<br />
عند استخدام هذه التعليمة<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Lo2i.**** = "Lo2i"<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">فان الاجراء المستخدم هو Set لانه يتم اسناد قيمة للخاصية <br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] MsgBox(Lo2i.****)<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">فان الاجراء المستخدم حينها هو Get لانه يتم الاستعلام عن قيمة الخاصية<br />
<br />
<br />
ايضا ماذا ان اردنا جعل الخاصية محمية من القراءة فقط نريدها للكتابة  .....يمكنك باستخدام الكلمة المحجوزة WriteOnly وبالتالي فان وجود الدالة  Get يسبب خطأ كما ان عملية الاستعلام عن قيمة الخاصية ايضا يسبب خطأ<br />
مثال:<br />
</div>
 <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Class Person<br />
Dim m_**** As String<br />
WriteOnly Property ****() As String<br />
<br />
Set(ByVal value As String)<br />
m_**** = value<br />
End Set<br />
<br />
End Property<br />
End Class<br />
<br />
 [/align]</code></div></div> <br />
<div style="text-align: center;" class="mycode_align">وهذا يفيد في منع الحصول على معلومات سرية مثلا ككلمة المرور..<br />
<br />
<br />
الآن هل يمكن ارسال اكثر من وسيط للخاصية...لا مشكلة<br />
مثال:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim m_****(1) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Property ****(ByVal Index As Integer) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return m_****(Index)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_****(Index) = value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Property<br />
End Class<br />
<br />
 [/align]</code></div></div><div style="text-align: center;" class="mycode_align">الآن قمنا بصنع خاصية الاسم وجعلنا المتغير المقترن بها على شكل مصفوفة تحتوي على عنصرين(1+1) على اعتبار الاسم الاول والاخير <br />
وأضفنا وسيط للخاصية باسم Index ليعمل عمل فهرس للاسمين الاول والثاني وعند  عملية الاسناد في Set ترى ان القيم المسندة تكون على شكل مصفوفة <br />
الآن:<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] Dim Lo2i As New Person<br />
Dim Full**** As String<br />
<br />
Lo2i.****(0) = "Lo2i "<br />
Lo2i.****(1) = "VB4ARAB"<br />
<br />
<br />
<br />
For i = 0 To 1 Step 1<br />
Full**** &amp;= Lo2i.****(i)<br />
Next<br />
<br />
MsgBox(Full****)<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">أعلنا عن Lo2i كPerson وقمنا باسناد القيمة الاولى والثانية للخاصية **** التي تحمل معنى مصفوفة مكونة من عنصرين <br />
وقمنا بصنع عداد لربط قيمتين الخاصية وقمنا بعرض ناتج الربط والذي يحمله المتغير Full**** في رسالة<br />
<br />
___________________________<br />
مداخلة: "&amp;" عملية تقوم بربط النصوص. أما "&amp;=" تقوم بربط ما قبل = بما بعدها<br />
أي أن:<br />
</div>
 <div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Full**** &amp;= "Mr_MOHAMMED"</code></div></div><br />
تعادل<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Full**** = Full**** &amp; "Mr_MOHAMMED"</code></div></div></div>
<div style="text-align: center;" class="mycode_align"> ويمكن استخدام هذه الصورة مع باقي العمليات الجبرية ..أي أن:</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>x += y</code></div></div><br />
</div>
 <br />
<br />
<div style="text-align: left;" class="mycode_align">تعادل<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] x = x + y<br />
[/align]</code></div></div><br />
___________________________<br />
<br />
<div style="text-align: center;" class="mycode_align">ملاحظتان:<br />
</div>
<ul class="mycode_list"><li>[*=center]يمكن استخدام مبدأ إعادة التعريف OverLoading مع الخصائص<br />
[*=center]يمكن استخدام الخصائص في الوحدات البرمجية Modules  والتركيبات Structures<br />
</li>
</ul>
<div style="text-align: center;" class="mycode_align">الخصائص الافتراضية:<br />
هي الخصائص التي تمثل الفئة بشكل افتراضي ويمكنك جعل خاصية افتراضية باستخدام الكلمة المحجوزة Defualt <br />
مثال:</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]Class Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim m_****(1) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default Property ****(ByVal Index As Integer) As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return m_****(Index)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Get<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set(ByVal value As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_****(Index) = value<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Property<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Class<br />
[/align]</code></div></div><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
Dim Lo2i As New Person<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Full**** As String<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo2i(0) = "Lo2i "<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lo2i(1) = "VB4ARAB"<br />
<br />
<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To 1 Step 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Full**** &amp;= Lo2i(i)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox(Full****)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">قد تلاحظ أنه لا يتوجب ذكر الخاصية في عملية الاسناد أو الاستعلام لانها كما قلنا تمثل الفئة <br />
يمكنك ملاحظة هذا الشيء في فيجوال بيسك 6 <br />
فالتعليمتان التاليتان لهما نفس الوظيفة<br />
</div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]****1.****="Mr_MOHAMMED"<br />
[/align]</code></div></div><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left] ****1 = "Mr_MOHAMMED"<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">ومن هذا نستنتج ان الخاصية الافتراضية هي ****<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color">الأحداث Events</span></span></span></span><br />
بالنسبة لموضوع الاحداث فضلت عدم الحديث عنها في هذا الموضوع -ليس لضعف او  عجز في موضوعها لكن لعدم مناسبة الموضوع للمبتدئين- لكن بالتأكيد سنتطرق  لهذا الموضوع في دورتنا في الجانب العملي حيث تلزمنا وسنفصل فيها وقتها قدر  الامكان ان شاء الله وسنربطها ربطا مباشرا مع فصلنا هذا وسترونها موضوعا   سهلا وبسيطا ان شاء الله<br />
<br />
مع تحيات<br />
<span style="color: #0000ff;" class="mycode_color">Lo2i </span>و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">انتظروا الدرس القادم</span></span><br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(9):مدخل الى الفئاتClasses - الجزء الأول]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4380</link>
			<pubDate>Sun, 23 Sep 2012 12:17:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4380</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم</span></span><br />
</div>
عندما نتحدث عن الفيجوال بيسك دوت نت فاننا نتحدث عن لغة كائنية(غرضية) التوجه...<br />
كتوضيح: العالم من حولنا مليء بالكائنات وكل كائن له خصائصه وسماته وهذا ما  يتم تطبيقه في لغة البرمجة كائنية التوجه حيث يتم اعتبار مساحة العمل  كالعالم فتكون الكائنات وتحدد خصائصها وسماتها وتستخدم ظواهرها في عملك..<br />
<br />
الآن سنتطرق الى أهم مواضيع البرمجة كائنية التوجه OOP وهو موضوع الفئات Classes..<br />
الفئة(Class): عبارة عن قالب يمكنك بواستطه تشكيل الكائنات التي حددت  صفاتها ومن ثم استخدمها..كتشبيه يمكن اعتبارها كقالب الأحذية -أعزكم الله-  التي يمكنك بواستطها انشاء حذاء بمواصفات هذا القالب.<br />
<br />
يتم انشاء Class باستخدام الكلمة المحجوزة Class وتنهيه بالعبارة المشهورة End Class<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Class****<br />
<br />
End [/COLOR][color=#007700]Class[/color][/COLOR]<br />
[/align]</code></div></div><br />
كما أسلفنا فان الفئة عبارة عن كائن له خصائصه وظواهره لذلك فان الكلاس يحتوي على أعضاء وظواهر تصفه حركاته<br />
لنأخذ مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]**** [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]Weight [/color][color=#007700]As [/color][COLOR=#0000BB]Double<br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
الآن كما ترى فاننا قمنا ببناء فئة جديدة أسميناها Person وأضفنا لها خصائص الاسم والعمر والوزن<br />
ولكي تستطيع الوصول الى عناصر الفئة فانظر المثال التالي:<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][COLOR=#000000][COLOR=#007700]<br />
[/COLOR][/COLOR][color=#000000][COLOR=#0000BB]Dim x [/color][color=#007700]As New [/color][COLOR=#0000BB]Person<br />
x[/COLOR][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][COLOR=#DD0000]"Lo2i"<br />
[/COLOR][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]Age [/color][color=#007700]= [/color][COLOR=#0000BB]20<br />
x[/COLOR][color=#007700].[/color][color=#0000BB]Weight [/color][color=#007700]= [/color][COLOR=#0000BB]70<br />
MsgBox[/COLOR][color=#007700]([/color][color=#DD0000]"**** is " [/color][color=#007700]&amp; [/color][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]&amp; [/color][color=#0000BB]vbCrLf [/color][color=#007700]&amp; [/color][color=#DD0000]"Age: " [/color][color=#007700]&amp; [/color][color=#0000BB]Str[/color][color=#007700]([/color][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]Age[/color][color=#007700]) &amp; [/color][color=#0000BB]vbCrLf [/color][color=#007700]&amp; [/color][color=#DD0000]"Weight: " [/color][color=#007700]&amp; [/color][color=#0000BB]Str[/color][color=#007700]([/color][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]Weight[/color][COLOR=#007700]))<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color">كما ترى فاننا قمنا بالاعلان عن متغير جديد من نوع الفئة التي صغنا معالمها  وأسندنا لعناصرها قيم جديدة وبعدها استعلمنا عن القيم التي تحملها عناصرها<br />
والنتيجة:</span></span><br />
[h=3][/h]<span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<div style="text-align: center;" class="mycode_align"><img src="https://vb4arb.com/vb/uploaded/203_01348401212.png" loading="lazy"  alt="[صورة مرفقة: 203_01348401212.png]" class="mycode_img" /><br />
</div>
<br />
لعلك انتبهت إلى أن الفئة بتركيبتها البرمجية تشبه كثيرا تركيبة Structure  فيمكن صنع فئة من تركيبة Structure باستبدال كلمة Structure بكلمة Class<br />
راجع: <a href="https://vb4arb.com/vb/showthread.php?179-%D8%A7%D9%84%D9%81%D8%B5%D9%84%283%29-%D8%A7%D9%84%D8%AA%D8%B1%D9%83%D9%8A%D8%A8%D8%A7%D8%AA-%D8%A3%D9%86%D9%88%D8%A7%D8%B9%D9%87%D8%A7-%D9%88%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85%D8%A7%D8%AA%D9%87%D8%A7" target="_blank" rel="noopener" class="mycode_url">الفصل(3): التركيبات أنواعها واستخداماتها</a><br />
<br />
<br />
لكن هناك شيء من الاختلاف بين  الفئة والتركيبة Structue<br />
1)<br />
الفئة من النوع المرجعي بينما التركيبة Structure من النوع ذات القيمة<br />
راجع: <a href="https://vb4arb.com/vb/showthread.php?336-%D8%A7%D9%84%D9%81%D8%B5%D9%84%288%29-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D9%88%D8%A7%D9%84%D8%A7%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA" target="_blank" rel="noopener" class="mycode_url">الفصل(8): الدوال والاجراءات</a> 				<br />
2)<br />
الفئة يمكن أن لا تحتوي على أعضاء بينما التركيبة تصدر رسالة خطأ عند خلوها من العناصر<br />
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#000000][COLOR=#007700]Class empty<br />
 [/COLOR][COLOR=#0000BB]No Problems<br />
End [/COLOR][color=#007700]Class[/color][/COLOR]</code></div></div></div>
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Structure [/color][COLOR=#007700]empty<br />
 [/COLOR][color=#DD0000]'Error ****: Error Structure '[/color][color=#007700]empty [/color][color=#0000BB]must contain at least one instance member variable [/color][color=#007700]or [/color][COLOR=#0000BB]Event declaration<br />
End Structure<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span><div style="text-align: right;" class="mycode_align">أي ان التركيبة empty يجب أن تحتوي على عضو ابتدائي متغير أو اجراء<br />
<br />
<br />
</div>
3)<br />
المحدد الافتراضي للفئة هو Private<br />
بينما المحدد الافتراضي لتركيبة الStructure هو Public<br />
<br />
4)<br />
يمكننا تطبيق مبدأ الورائة والاشتقاق على الفئات<br />
بينما التركيبات فلا<br />
                      ___________________________<br />
<span style="color: Red;" class="mycode_color">ملاحظة:</span> يمكن للفئة أن تكون متداخلة Nested<br />
مثال:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
&nbsp;&nbsp; [/COLOR][color=#007700]Class [/color][COLOR=#0000BB]****<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]First [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Last [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp; End [/COLOR][COLOR=#007700]Class<br />
&nbsp;&nbsp; Public [/COLOR][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
End [/COLOR][COLOR=#007700]Class <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span>___________________________<br />
<br />
<span style="color: Red;" class="mycode_color">ملاحظة أخرى:</span>بامكاننا استخدام الفئة كوسيط نرسله  للاجراءات والدوال بالطريقتين التي ذكرناها (الارسال بالمرجع أو بالقيمة)  وبالرغم من انك ارسلته بالقيمة فان الجراء الحاضن سيغير قيمة المرسل بالرغم  من ان ارسال الوسيط تم بالقيمة  وهذا يتطابق مع الفرق الذي ذكرناه بالاعلى  أن الفئة من النوع المرجعي...<br />
<br />
كل ما سبق نظرة مبسطة جدا عن الفئات...<br />
<br />
<br />
الآن تحدثنا أن الفئة تمثل كائن والكائن له أعضاء إذن الفئة لها أعضاء ويمكن تقسيمها لاربعة مكونات:<br />
<br />
<ol type="1" class="mycode_list"><li>الحقول(Fields)<br />
</li>
<li>الطرق(Methods)<br />
</li>
<li>الخصائص(properties)<br />
</li>
<li>الأحداث(Events)<br />
</li>
</ol>
نبدأ بالحقول:<br />
<br />
<br />
<span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color">الحقول Fields</span></span></span><br />
تعتبر الحقول أصغر وأبسط مكونات الفئة وما هي الا متغيرات عادية.<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim **** [/COLOR][color=#007700]As [/color][color=#0000BB]String&nbsp;&nbsp; [/color][COLOR=#DD0000]'Field<br />
Dim Age As Integer&nbsp;&nbsp; '[/COLOR][COLOR=#0000BB]Field<br />
[/COLOR][COLOR=#007700]...<br />
...<br />
...<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
كما نرى فان هذه الفئة تحتوى على فئتين أو أكثر وهما **** و Age<br />
أيضا من مجمل الفروق بين الفئة والتركيبة Structure فان حقول الفئة يكمن اسناد قيم لها  وقت كتابة الفئة بخلاف التركيبة Structure<br />
توضيح:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim **** [/COLOR][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"Mr_MOHAMMED" 'No Problem<br />
Dim Age As Age =18 '[/COLOR][COLOR=#0000BB]No Problem<br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[COLOR=#000000][COLOR=#0000BB]Structure Person<br />
Dim **** [/COLOR][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"Mr_MOHAMMED" 'Error<br />
Dim Age As Age =18 '[/COLOR][COLOR=#0000BB]Error<br />
End Structure <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span>وبالتطرق لقضية أخرى : بامكانك تعريف حقل داخل الفئة من نوع هذه الفئة وهذا يفيد في خوارزميات المكدسة(LIFO) والطوابير(FIFO)<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim Im [/COLOR][color=#007700]As [/color][COLOR=#0000BB]Person<br />
[/COLOR][COLOR=#007700]...<br />
...<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><br />
_____________<br />
مداخلة بسيطة:<br />
المكدسة (LIFO) اختصار ل Last In First Out   أي آخر ما يدخل أول ما يخرج<br />
الطابور(FIFO) اختصار ل First In First Out أي أول ما يدخل أول ما يخرج<br />
_____________<br />
<br />
يمكن للحقول أن تكون على شكل مصفوفات<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim ****[/COLOR][color=#007700]() As [/color][color=#0000BB]String [/color][color=#007700]= {[/color][color=#DD0000]"Mr" [/color][color=#007700], [/color][color=#DD0000]"_" [/color][color=#007700], [/color][color=#DD0000]"MOHAMMED"[/color][COLOR=#007700]}<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
لكن ماذا ان أردت حماية الحقل من تغيير قيمته ..يمكن ذلك باستخدام الكلمة المحجوزة ReadOnly وتعني للقراءة فقط<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]ReadOnly Relegion [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"Islam and broud"<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><div style="text-align: right;" class="mycode_align">وبذلك لن يستطيع المستخدم تغيير قيمة المتغير بعد جعله مقروء فقط<br />
لحظة...بماذ تختلف ReadOnly  عن Const أي ماذا يختلف هذا المتغير المحمي عن الثابت ان لن نقدر على تغيير قيمته <br />
الاختلاف بينهما أن الثابت يجب عليك اسناد قيمته وقت كتابته أم المتغير  المحمي فلك الخيار اما أن تسند قيمته وفت كتابته أو تعطيه قيمته عند أول  عملية اسناد ولن يتغير بعدها في ي عملية اسناد أخرى<br />
</div>
 <br />
<span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color"><br />
الطرق Methods</span></span></span><br />
<br />
الطرق ما هي الا اجراءات ودوال ويمكنك مراجعتها من هذا الفصل:<br />
[h=3]<a href="https://vb4arb.com/vb/showthread.php?336-%D8%A7%D9%84%D9%81%D8%B5%D9%84%288%29-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D9%88%D8%A7%D9%84%D8%A7%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA" target="_blank" rel="noopener" class="mycode_url">الفصل(8): الدوال والاجراءات</a>[/h]<br />
كيف يمكنني الاستفادة من الطرق:<br />
<br />
1) بوساطة الطرق يمكنك صنع أحداث هذا الكائن<br />
توضيح:<br />
الآن نحن البشر نستطيع المشي يمكننا تطبيق ذلك بكل سهولة في عالم البرمجة الكائنية<br />
لنقم بصنع فئة نسميها انسان ونطبق عليها المبدأ السابق:<br />
في داخل جسم الفئة Person نضيف اجراء جديد نسميه Walk وداخل هذا الاجراء نحدد كيفية المشي<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
 Sub walk[/COLOR][COLOR=#007700]()<br />
....<br />
....<br />
....<br />
 [/COLOR][COLOR=#0000BB]End Sub<br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
وطريقة استدعاء هذا الاجراء هي كالتالي:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000] [COLOR=#0000BB]Dim Lo2i [/color][color=#007700]As [/color][COLOR=#0000BB]Person<br />
Lo2i[/COLOR][color=#007700].[/color][color=#0000BB]Walk[/color][COLOR=#007700]()<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><br />
وبهذا نكون قد صنعنا متغير من النوع Person أسميناه Lo2i (سامحني يا لؤي بدي اغلبك معي <img src="https://vb4arb.com/vb/images/smilies/biggrin.gif" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />) وقمنا باستدعاء اجراء المشي الخاص بLo2i ...<br />
<br />
<br />
2) مثال  رائع وجدته في كتاب الاستاذ تركي العسيري...<br />
باستخدام الطرق يمكنك اختصار الاسطر والوقت في اسناد القيم لعناصر الفئة<br />
توضيح:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]PersonRecord<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]**** [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Address [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
 End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span>في المثال السابق تم صنع فئة جديدة سميت PersonRecord وتم اضافة بضعة حقول  لها **** و Age وAdress ويمكننا اسناد القيم لتلك الحقول بالشكل التالي:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#0000BB]Dim PersonObject [/color][color=#007700]As New [/color][COLOR=#0000BB]PersonRecord <br />
 <br />
<br />
PersonObject[/COLOR][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][COLOR=#DD0000]"Turki" <br />
[/COLOR][color=#0000BB]PersonObject[/color][color=#007700].[/color][color=#0000BB]Age [/color][color=#007700]= [/color][COLOR=#0000BB]99 <br />
PersonObject[/COLOR][color=#007700].[/color][color=#0000BB]Address [/color][color=#007700]= [/color][COLOR=#DD0000]"Suadia"<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #DD0000;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>لكن كيف تفيدنا الطرق باختصار الأسطر والوقت<br />
دعنا نرجع لذات الفئة, باضافة اجراء داخل الفئة لعملية اسناد  القيم الثلاثة:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]&nbsp;&nbsp;&nbsp;&nbsp;[/color][color=#007700]Class [/color][COLOR=#0000BB]PersonRecord<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]**** [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Address [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
<br />
Sub SetValues[/COLOR][color=#007700]([/color][color=#0000BB]ByVal Person**** [/color][color=#007700]As [/color][color=#0000BB]String[/color][color=#007700],[/color][color=#0000BB]ByVal PersonAge [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][color=#007700], [/color][color=#0000BB]ByVal PersonAddress [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700]) <br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]**** [/color][color=#007700]= [/color][COLOR=#0000BB]Person**** <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Age [/COLOR][color=#007700]= [/color][COLOR=#0000BB]PersonAge <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address [/COLOR][color=#007700]= [/color][COLOR=#0000BB]PersonAddress <br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
<br />
 End [/COLOR][COLOR=#007700]Class&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>الشرح:<br />
اضفنا اجراء جديد باسم SetValues ومهمته اسناد القيم للحقول الثلاثة وفي  هذا الاجراء نقوم بتمرير ثلاثة وسيطات حسب الحقول المراد استغراقها  وبالتالي فان عملية الاسناد اصبحت بالشكل التالي:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#0000BB]Dim PersonObject [/color][color=#007700]As New [/color][COLOR=#0000BB]PersonRecord <br />
PersonObject[/COLOR][color=#007700].[/color][color=#0000BB]SetValues[/color][color=#007700]([/color][color=#DD0000]"Turki"[/color][color=#007700], [/color][color=#0000BB]99[/color][color=#007700], [/color][color=#DD0000]"Suadia"[/color][COLOR=#007700]) <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: Red;" class="mycode_color"><br />
<br />
[SIZE=5]مبدأ إعادة التعريف OverLoading</span></span>[/SIZE]<br />
</div>
  <div style="text-align: left;" class="mycode_align">
</div>
 من مبادئ البرمجة الكائنية التوجه مبدأ إعادة تعريف الطرق بوسيطات مختلفة وجوبا:<br />
مثال:<br />
لدينا الطريقة OverTest سنقيم عليها مبدا إعادة التعريف:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest[/color][COLOR=#007700]()<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var2 [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
قد تلاحظ أننا قمنا بتغيير نوع المتغير Var1 في الاجراء الثالث بالرغم من تغيير المتغير وهذا من أسس مبدأ إعادة الوراثة...<br />
اذ ان الأمر اعادة التعريف التالية تصدر خطأ لاننا بالرغم من تغيير اسم الوسيط لم نغير نوعه ولك التجربة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var2 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">معوقات عملية إعادة التعريف <br />
</div>
   <ul class="mycode_list"><li>السبب الذي وضحناه بالاعلى..ثبات نوع الوسيط<br />
</li>
<li>تغيير نوع الارسال يصدر خطأ:<br />
</li>
</ul>
المثال التالي يصدر خطأ لتغيير نوع ارسال الوسطيات<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]OverTest [/color][color=#007700]( [/color][color=#0000BB]ByRef Var2 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><ul class="mycode_list"><li>تغيير محدد الوصول أيضا يصدر خطأ<br />
</li>
</ul>
المثال التالي يصدر خطأ لتغيير محدد الوصول<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Public [/color][color=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
 [/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][COLOR=#000000][COLOR=#0000BB]<br />
[/COLOR][/COLOR][color=#000000][COLOR=#007700]Private [/color][color=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByRef Var2 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
 [/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span>في النهاية عند تطبيق مبدأ اعادة التعريف يستحسن استخدام الكلمة المحجوزة OverLoads لتسريع عمل المترجم <br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]OverLoads Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]OverLoads Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var2 [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span>تكمن أهمية مبدأ إعادة التعريف في تسهيل عمل المبرمج :<br />
المثال التالي سيوضح كيف:<br />
الآن عندما نطلب من المستخدم ادخال عمره هل نضمن أنه سيدخله حرفيا ام  رقميا...بهذا ستضطر لخوارزمية اكثر تعقيدا بدءا بقنص الأخطاء الواردة مرورا  بتحويل المدخلات في حال خالفت المطلوب انتهاء بخطأ وارد في حال فشل  العمليتين السابقتين..<br />
لذلك يفيدنا مبدأ إعادة التعريف في تخطي هذا الخطأ كالتالي:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
 <br />
Overloads Sub SetAge[/COLOR][color=#007700]([/color][color=#0000BB]ByVal Age [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
<br />
Overloads Sub SetAge[/COLOR][color=#007700]([/color][color=#0000BB]ByVal Age [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
 <br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"> </span><span style="color: #007700;" class="mycode_color">-----------------------------------<br />
</span></span><span style="color: #ff0000;" class="mycode_color"> In</span><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"> Form</span><span style="color: #007700;" class="mycode_color">.</span><span style="color: #0000BB;" class="mycode_color">Load<br />
<br />
</span></span><div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim Lo2i [/color][color=#007700]As New [/color][COLOR=#0000BB]Person<br />
Lo2i[/COLOR][color=#007700].[/color][color=#0000BB]SetAge[/color][color=#007700]([/color][color=#0000BB]19[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]Lo2i[/color][color=#007700].[/color][color=#0000BB]SetAge[/color][color=#007700]([/color][color=#DD0000]"تسعة عشر"[/color][COLOR=#007700])<br />
[/COLOR][/COLOR]</code></div></div></div>
<br />
الآن في حال ادخال المستخدم قيمة حرفية سيتم التعامل معها وفق الاجراء  الاول الذي يستقبل نصا بينما إن أدخل قيمة رقمية سيتم التعامل معها وفق  الاجراء الثاني الذي يستقبل رقما بهذا نتخطى احتمالات الوقوع في خطأ من  جراء ادخال قيمة غير النوع المحدد<br />
<br />
نكتفي بمبدأ إعادة التعريف حول موضوع الطرق وهناك بعض القضايا الأخرى التي سيتم شرحها باذن الله وقت حاجتنا لها ان شاء الله<br />
<br />
<br />
<br />
بهذا نكون قد أنهينا فصلنا لهذا اليوم وسنتحدث في الفصل القادم عن الجزء المتبقي من الفئات ان شاء الله<br />
<br />
<div style="text-align: center;" class="mycode_align">مع تحيات:<br />
<span style="color: #0000ff;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">انتظروا الدرس القادم</span><br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم</span></span><br />
</div>
عندما نتحدث عن الفيجوال بيسك دوت نت فاننا نتحدث عن لغة كائنية(غرضية) التوجه...<br />
كتوضيح: العالم من حولنا مليء بالكائنات وكل كائن له خصائصه وسماته وهذا ما  يتم تطبيقه في لغة البرمجة كائنية التوجه حيث يتم اعتبار مساحة العمل  كالعالم فتكون الكائنات وتحدد خصائصها وسماتها وتستخدم ظواهرها في عملك..<br />
<br />
الآن سنتطرق الى أهم مواضيع البرمجة كائنية التوجه OOP وهو موضوع الفئات Classes..<br />
الفئة(Class): عبارة عن قالب يمكنك بواستطه تشكيل الكائنات التي حددت  صفاتها ومن ثم استخدمها..كتشبيه يمكن اعتبارها كقالب الأحذية -أعزكم الله-  التي يمكنك بواستطها انشاء حذاء بمواصفات هذا القالب.<br />
<br />
يتم انشاء Class باستخدام الكلمة المحجوزة Class وتنهيه بالعبارة المشهورة End Class<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Class****<br />
<br />
End [/COLOR][color=#007700]Class[/color][/COLOR]<br />
[/align]</code></div></div><br />
كما أسلفنا فان الفئة عبارة عن كائن له خصائصه وظواهره لذلك فان الكلاس يحتوي على أعضاء وظواهر تصفه حركاته<br />
لنأخذ مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]**** [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]Weight [/color][color=#007700]As [/color][COLOR=#0000BB]Double<br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
الآن كما ترى فاننا قمنا ببناء فئة جديدة أسميناها Person وأضفنا لها خصائص الاسم والعمر والوزن<br />
ولكي تستطيع الوصول الى عناصر الفئة فانظر المثال التالي:<br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][COLOR=#000000][COLOR=#007700]<br />
[/COLOR][/COLOR][color=#000000][COLOR=#0000BB]Dim x [/color][color=#007700]As New [/color][COLOR=#0000BB]Person<br />
x[/COLOR][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][COLOR=#DD0000]"Lo2i"<br />
[/COLOR][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]Age [/color][color=#007700]= [/color][COLOR=#0000BB]20<br />
x[/COLOR][color=#007700].[/color][color=#0000BB]Weight [/color][color=#007700]= [/color][COLOR=#0000BB]70<br />
MsgBox[/COLOR][color=#007700]([/color][color=#DD0000]"**** is " [/color][color=#007700]&amp; [/color][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]&amp; [/color][color=#0000BB]vbCrLf [/color][color=#007700]&amp; [/color][color=#DD0000]"Age: " [/color][color=#007700]&amp; [/color][color=#0000BB]Str[/color][color=#007700]([/color][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]Age[/color][color=#007700]) &amp; [/color][color=#0000BB]vbCrLf [/color][color=#007700]&amp; [/color][color=#DD0000]"Weight: " [/color][color=#007700]&amp; [/color][color=#0000BB]Str[/color][color=#007700]([/color][color=#0000BB]x[/color][color=#007700].[/color][color=#0000BB]Weight[/color][COLOR=#007700]))<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color">كما ترى فاننا قمنا بالاعلان عن متغير جديد من نوع الفئة التي صغنا معالمها  وأسندنا لعناصرها قيم جديدة وبعدها استعلمنا عن القيم التي تحملها عناصرها<br />
والنتيجة:</span></span><br />
[h=3][/h]<span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
<div style="text-align: center;" class="mycode_align"><img src="https://vb4arb.com/vb/uploaded/203_01348401212.png" loading="lazy"  alt="[صورة مرفقة: 203_01348401212.png]" class="mycode_img" /><br />
</div>
<br />
لعلك انتبهت إلى أن الفئة بتركيبتها البرمجية تشبه كثيرا تركيبة Structure  فيمكن صنع فئة من تركيبة Structure باستبدال كلمة Structure بكلمة Class<br />
راجع: <a href="https://vb4arb.com/vb/showthread.php?179-%D8%A7%D9%84%D9%81%D8%B5%D9%84%283%29-%D8%A7%D9%84%D8%AA%D8%B1%D9%83%D9%8A%D8%A8%D8%A7%D8%AA-%D8%A3%D9%86%D9%88%D8%A7%D8%B9%D9%87%D8%A7-%D9%88%D8%A7%D8%B3%D8%AA%D8%AE%D8%AF%D8%A7%D9%85%D8%A7%D8%AA%D9%87%D8%A7" target="_blank" rel="noopener" class="mycode_url">الفصل(3): التركيبات أنواعها واستخداماتها</a><br />
<br />
<br />
لكن هناك شيء من الاختلاف بين  الفئة والتركيبة Structue<br />
1)<br />
الفئة من النوع المرجعي بينما التركيبة Structure من النوع ذات القيمة<br />
راجع: <a href="https://vb4arb.com/vb/showthread.php?336-%D8%A7%D9%84%D9%81%D8%B5%D9%84%288%29-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D9%88%D8%A7%D9%84%D8%A7%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA" target="_blank" rel="noopener" class="mycode_url">الفصل(8): الدوال والاجراءات</a> 				<br />
2)<br />
الفئة يمكن أن لا تحتوي على أعضاء بينما التركيبة تصدر رسالة خطأ عند خلوها من العناصر<br />
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#000000][COLOR=#007700]Class empty<br />
 [/COLOR][COLOR=#0000BB]No Problems<br />
End [/COLOR][color=#007700]Class[/color][/COLOR]</code></div></div></div>
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Structure [/color][COLOR=#007700]empty<br />
 [/COLOR][color=#DD0000]'Error ****: Error Structure '[/color][color=#007700]empty [/color][color=#0000BB]must contain at least one instance member variable [/color][color=#007700]or [/color][COLOR=#0000BB]Event declaration<br />
End Structure<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span><div style="text-align: right;" class="mycode_align">أي ان التركيبة empty يجب أن تحتوي على عضو ابتدائي متغير أو اجراء<br />
<br />
<br />
</div>
3)<br />
المحدد الافتراضي للفئة هو Private<br />
بينما المحدد الافتراضي لتركيبة الStructure هو Public<br />
<br />
4)<br />
يمكننا تطبيق مبدأ الورائة والاشتقاق على الفئات<br />
بينما التركيبات فلا<br />
                      ___________________________<br />
<span style="color: Red;" class="mycode_color">ملاحظة:</span> يمكن للفئة أن تكون متداخلة Nested<br />
مثال:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
&nbsp;&nbsp; [/COLOR][color=#007700]Class [/color][COLOR=#0000BB]****<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]First [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Last [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp; End [/COLOR][COLOR=#007700]Class<br />
&nbsp;&nbsp; Public [/COLOR][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
End [/COLOR][COLOR=#007700]Class <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span>___________________________<br />
<br />
<span style="color: Red;" class="mycode_color">ملاحظة أخرى:</span>بامكاننا استخدام الفئة كوسيط نرسله  للاجراءات والدوال بالطريقتين التي ذكرناها (الارسال بالمرجع أو بالقيمة)  وبالرغم من انك ارسلته بالقيمة فان الجراء الحاضن سيغير قيمة المرسل بالرغم  من ان ارسال الوسيط تم بالقيمة  وهذا يتطابق مع الفرق الذي ذكرناه بالاعلى  أن الفئة من النوع المرجعي...<br />
<br />
كل ما سبق نظرة مبسطة جدا عن الفئات...<br />
<br />
<br />
الآن تحدثنا أن الفئة تمثل كائن والكائن له أعضاء إذن الفئة لها أعضاء ويمكن تقسيمها لاربعة مكونات:<br />
<br />
<ol type="1" class="mycode_list"><li>الحقول(Fields)<br />
</li>
<li>الطرق(Methods)<br />
</li>
<li>الخصائص(properties)<br />
</li>
<li>الأحداث(Events)<br />
</li>
</ol>
نبدأ بالحقول:<br />
<br />
<br />
<span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color">الحقول Fields</span></span></span><br />
تعتبر الحقول أصغر وأبسط مكونات الفئة وما هي الا متغيرات عادية.<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim **** [/COLOR][color=#007700]As [/color][color=#0000BB]String&nbsp;&nbsp; [/color][COLOR=#DD0000]'Field<br />
Dim Age As Integer&nbsp;&nbsp; '[/COLOR][COLOR=#0000BB]Field<br />
[/COLOR][COLOR=#007700]...<br />
...<br />
...<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
كما نرى فان هذه الفئة تحتوى على فئتين أو أكثر وهما **** و Age<br />
أيضا من مجمل الفروق بين الفئة والتركيبة Structure فان حقول الفئة يكمن اسناد قيم لها  وقت كتابة الفئة بخلاف التركيبة Structure<br />
توضيح:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim **** [/COLOR][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"Mr_MOHAMMED" 'No Problem<br />
Dim Age As Age =18 '[/COLOR][COLOR=#0000BB]No Problem<br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[COLOR=#000000][COLOR=#0000BB]Structure Person<br />
Dim **** [/COLOR][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"Mr_MOHAMMED" 'Error<br />
Dim Age As Age =18 '[/COLOR][COLOR=#0000BB]Error<br />
End Structure <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
<br />
</span></span>وبالتطرق لقضية أخرى : بامكانك تعريف حقل داخل الفئة من نوع هذه الفئة وهذا يفيد في خوارزميات المكدسة(LIFO) والطوابير(FIFO)<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim Im [/COLOR][color=#007700]As [/color][COLOR=#0000BB]Person<br />
[/COLOR][COLOR=#007700]...<br />
...<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><br />
_____________<br />
مداخلة بسيطة:<br />
المكدسة (LIFO) اختصار ل Last In First Out   أي آخر ما يدخل أول ما يخرج<br />
الطابور(FIFO) اختصار ل First In First Out أي أول ما يدخل أول ما يخرج<br />
_____________<br />
<br />
يمكن للحقول أن تكون على شكل مصفوفات<br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
Dim ****[/COLOR][color=#007700]() As [/color][color=#0000BB]String [/color][color=#007700]= {[/color][color=#DD0000]"Mr" [/color][color=#007700], [/color][color=#DD0000]"_" [/color][color=#007700], [/color][color=#DD0000]"MOHAMMED"[/color][COLOR=#007700]}<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
لكن ماذا ان أردت حماية الحقل من تغيير قيمته ..يمكن ذلك باستخدام الكلمة المحجوزة ReadOnly وتعني للقراءة فقط<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
[/COLOR][color=#007700]Public [/color][color=#0000BB]ReadOnly Relegion [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][COLOR=#DD0000]"Islam and broud"<br />
[/COLOR][color=#0000BB]End [/color][COLOR=#007700]Class <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><div style="text-align: right;" class="mycode_align">وبذلك لن يستطيع المستخدم تغيير قيمة المتغير بعد جعله مقروء فقط<br />
لحظة...بماذ تختلف ReadOnly  عن Const أي ماذا يختلف هذا المتغير المحمي عن الثابت ان لن نقدر على تغيير قيمته <br />
الاختلاف بينهما أن الثابت يجب عليك اسناد قيمته وقت كتابته أم المتغير  المحمي فلك الخيار اما أن تسند قيمته وفت كتابته أو تعطيه قيمته عند أول  عملية اسناد ولن يتغير بعدها في ي عملية اسناد أخرى<br />
</div>
 <br />
<span style="font-family: Comic Sans MS;" class="mycode_font"><span style="font-size: 6pt;" class="mycode_size"><span style="color: Blue;" class="mycode_color"><br />
الطرق Methods</span></span></span><br />
<br />
الطرق ما هي الا اجراءات ودوال ويمكنك مراجعتها من هذا الفصل:<br />
[h=3]<a href="https://vb4arb.com/vb/showthread.php?336-%D8%A7%D9%84%D9%81%D8%B5%D9%84%288%29-%D8%A7%D9%84%D8%AF%D9%88%D8%A7%D9%84-%D9%88%D8%A7%D9%84%D8%A7%D8%AC%D8%B1%D8%A7%D8%A1%D8%A7%D8%AA" target="_blank" rel="noopener" class="mycode_url">الفصل(8): الدوال والاجراءات</a>[/h]<br />
كيف يمكنني الاستفادة من الطرق:<br />
<br />
1) بوساطة الطرق يمكنك صنع أحداث هذا الكائن<br />
توضيح:<br />
الآن نحن البشر نستطيع المشي يمكننا تطبيق ذلك بكل سهولة في عالم البرمجة الكائنية<br />
لنقم بصنع فئة نسميها انسان ونطبق عليها المبدأ السابق:<br />
في داخل جسم الفئة Person نضيف اجراء جديد نسميه Walk وداخل هذا الاجراء نحدد كيفية المشي<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
 Sub walk[/COLOR][COLOR=#007700]()<br />
....<br />
....<br />
....<br />
 [/COLOR][COLOR=#0000BB]End Sub<br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><br />
وطريقة استدعاء هذا الاجراء هي كالتالي:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000] [COLOR=#0000BB]Dim Lo2i [/color][color=#007700]As [/color][COLOR=#0000BB]Person<br />
Lo2i[/COLOR][color=#007700].[/color][color=#0000BB]Walk[/color][COLOR=#007700]()<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><br />
وبهذا نكون قد صنعنا متغير من النوع Person أسميناه Lo2i (سامحني يا لؤي بدي اغلبك معي <img src="https://vb4arb.com/vb/images/smilies/biggrin.gif" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />) وقمنا باستدعاء اجراء المشي الخاص بLo2i ...<br />
<br />
<br />
2) مثال  رائع وجدته في كتاب الاستاذ تركي العسيري...<br />
باستخدام الطرق يمكنك اختصار الاسطر والوقت في اسناد القيم لعناصر الفئة<br />
توضيح:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]PersonRecord<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]**** [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Address [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
 End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span>في المثال السابق تم صنع فئة جديدة سميت PersonRecord وتم اضافة بضعة حقول  لها **** و Age وAdress ويمكننا اسناد القيم لتلك الحقول بالشكل التالي:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#0000BB]Dim PersonObject [/color][color=#007700]As New [/color][COLOR=#0000BB]PersonRecord <br />
 <br />
<br />
PersonObject[/COLOR][color=#007700].[/color][color=#0000BB]**** [/color][color=#007700]= [/color][COLOR=#DD0000]"Turki" <br />
[/COLOR][color=#0000BB]PersonObject[/color][color=#007700].[/color][color=#0000BB]Age [/color][color=#007700]= [/color][COLOR=#0000BB]99 <br />
PersonObject[/COLOR][color=#007700].[/color][color=#0000BB]Address [/color][color=#007700]= [/color][COLOR=#DD0000]"Suadia"<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #DD0000;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>لكن كيف تفيدنا الطرق باختصار الأسطر والوقت<br />
دعنا نرجع لذات الفئة, باضافة اجراء داخل الفئة لعملية اسناد  القيم الثلاثة:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]&nbsp;&nbsp;&nbsp;&nbsp;[/color][color=#007700]Class [/color][COLOR=#0000BB]PersonRecord<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]**** [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Age [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Public [/color][color=#0000BB]Address [/color][color=#007700]As [/color][COLOR=#0000BB]String<br />
<br />
Sub SetValues[/COLOR][color=#007700]([/color][color=#0000BB]ByVal Person**** [/color][color=#007700]As [/color][color=#0000BB]String[/color][color=#007700],[/color][color=#0000BB]ByVal PersonAge [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][color=#007700], [/color][color=#0000BB]ByVal PersonAddress [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700]) <br />
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]**** [/color][color=#007700]= [/color][COLOR=#0000BB]Person**** <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Age [/COLOR][color=#007700]= [/color][COLOR=#0000BB]PersonAge <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address [/COLOR][color=#007700]= [/color][COLOR=#0000BB]PersonAddress <br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
<br />
 End [/COLOR][COLOR=#007700]Class&nbsp;&nbsp;<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
</span></span>الشرح:<br />
اضفنا اجراء جديد باسم SetValues ومهمته اسناد القيم للحقول الثلاثة وفي  هذا الاجراء نقوم بتمرير ثلاثة وسيطات حسب الحقول المراد استغراقها  وبالتالي فان عملية الاسناد اصبحت بالشكل التالي:<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]<br />
[color=#000000][COLOR=#0000BB]Dim PersonObject [/color][color=#007700]As New [/color][COLOR=#0000BB]PersonRecord <br />
PersonObject[/COLOR][color=#007700].[/color][color=#0000BB]SetValues[/color][color=#007700]([/color][color=#DD0000]"Turki"[/color][color=#007700], [/color][color=#0000BB]99[/color][color=#007700], [/color][color=#DD0000]"Suadia"[/color][COLOR=#007700]) <br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: Red;" class="mycode_color"><br />
<br />
[SIZE=5]مبدأ إعادة التعريف OverLoading</span></span>[/SIZE]<br />
</div>
  <div style="text-align: left;" class="mycode_align">
</div>
 من مبادئ البرمجة الكائنية التوجه مبدأ إعادة تعريف الطرق بوسيطات مختلفة وجوبا:<br />
مثال:<br />
لدينا الطريقة OverTest سنقيم عليها مبدا إعادة التعريف:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest[/color][COLOR=#007700]()<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var2 [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><br />
قد تلاحظ أننا قمنا بتغيير نوع المتغير Var1 في الاجراء الثالث بالرغم من تغيير المتغير وهذا من أسس مبدأ إعادة الوراثة...<br />
اذ ان الأمر اعادة التعريف التالية تصدر خطأ لاننا بالرغم من تغيير اسم الوسيط لم نغير نوعه ولك التجربة<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var2 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div style="text-align: right;" class="mycode_align">معوقات عملية إعادة التعريف <br />
</div>
   <ul class="mycode_list"><li>السبب الذي وضحناه بالاعلى..ثبات نوع الوسيط<br />
</li>
<li>تغيير نوع الارسال يصدر خطأ:<br />
</li>
</ul>
المثال التالي يصدر خطأ لتغيير نوع ارسال الوسطيات<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]OverTest [/color][color=#007700]( [/color][color=#0000BB]ByRef Var2 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><ul class="mycode_list"><li>تغيير محدد الوصول أيضا يصدر خطأ<br />
</li>
</ul>
المثال التالي يصدر خطأ لتغيير محدد الوصول<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Public [/color][color=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
 [/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][COLOR=#000000][COLOR=#0000BB]<br />
[/COLOR][/COLOR][color=#000000][COLOR=#007700]Private [/color][color=#0000BB]Sub OverTest [/color][color=#007700]( [/color][color=#0000BB]ByRef Var2 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
 [/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span>في النهاية عند تطبيق مبدأ اعادة التعريف يستحسن استخدام الكلمة المحجوزة OverLoads لتسريع عمل المترجم <br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]OverLoads Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var1 [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#0000BB]OverLoads Sub OverTest[/color][color=#007700]([/color][color=#0000BB]ByVal Var2 [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><br />
</span></span>تكمن أهمية مبدأ إعادة التعريف في تسهيل عمل المبرمج :<br />
المثال التالي سيوضح كيف:<br />
الآن عندما نطلب من المستخدم ادخال عمره هل نضمن أنه سيدخله حرفيا ام  رقميا...بهذا ستضطر لخوارزمية اكثر تعقيدا بدءا بقنص الأخطاء الواردة مرورا  بتحويل المدخلات في حال خالفت المطلوب انتهاء بخطأ وارد في حال فشل  العمليتين السابقتين..<br />
لذلك يفيدنا مبدأ إعادة التعريف في تخطي هذا الخطأ كالتالي:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left][color=#000000][COLOR=#007700]Class [/color][COLOR=#0000BB]Person<br />
 <br />
Overloads Sub SetAge[/COLOR][color=#007700]([/color][color=#0000BB]ByVal Age [/color][color=#007700]As [/color][color=#0000BB]String[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
<br />
Overloads Sub SetAge[/COLOR][color=#007700]([/color][color=#0000BB]ByVal Age [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]End Sub<br />
 <br />
End [/COLOR][COLOR=#007700]Class<br />
[/COLOR][/COLOR][/align]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="color: #007700;" class="mycode_color"><br />
<br />
</span></span><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"> </span><span style="color: #007700;" class="mycode_color">-----------------------------------<br />
</span></span><span style="color: #ff0000;" class="mycode_color"> In</span><span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"> Form</span><span style="color: #007700;" class="mycode_color">.</span><span style="color: #0000BB;" class="mycode_color">Load<br />
<br />
</span></span><div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim Lo2i [/color][color=#007700]As New [/color][COLOR=#0000BB]Person<br />
Lo2i[/COLOR][color=#007700].[/color][color=#0000BB]SetAge[/color][color=#007700]([/color][color=#0000BB]19[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]Lo2i[/color][color=#007700].[/color][color=#0000BB]SetAge[/color][color=#007700]([/color][color=#DD0000]"تسعة عشر"[/color][COLOR=#007700])<br />
[/COLOR][/COLOR]</code></div></div></div>
<br />
الآن في حال ادخال المستخدم قيمة حرفية سيتم التعامل معها وفق الاجراء  الاول الذي يستقبل نصا بينما إن أدخل قيمة رقمية سيتم التعامل معها وفق  الاجراء الثاني الذي يستقبل رقما بهذا نتخطى احتمالات الوقوع في خطأ من  جراء ادخال قيمة غير النوع المحدد<br />
<br />
نكتفي بمبدأ إعادة التعريف حول موضوع الطرق وهناك بعض القضايا الأخرى التي سيتم شرحها باذن الله وقت حاجتنا لها ان شاء الله<br />
<br />
<br />
<br />
بهذا نكون قد أنهينا فصلنا لهذا اليوم وسنتحدث في الفصل القادم عن الجزء المتبقي من الفئات ان شاء الله<br />
<br />
<div style="text-align: center;" class="mycode_align">مع تحيات:<br />
<span style="color: #0000ff;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">انتظروا الدرس القادم</span><br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(8): الدوال والاجراءات]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4374</link>
			<pubDate>Sun, 23 Sep 2012 08:41:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4374</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align">     السلام عليكم ورحمة الله وبركاته<br />
    بسم الله الرحمن الرحيم<br />
    اليوم سوف نتطرق لموضوع بالغ الأهمية في فيجوال بيسك دوت نت وهو الاجراءات و      الدوال.<br />
    أفضل شرح هذا الدرس باستخدام مشروع Widows Appllication<br />
    <br />
    <br />
    <span style="font-size: 5pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">أولا:الدوال Functions</span></span><br />
    الدالة Function : هي عبارة عن برنامج صغير يستقبل وسيطات(Parameters) ويطبق      بعض العمليات عليها ثم يخرج لنا ناتج الدالة...وتكون بالشكل التالي:<br />
 </div>
 <div style="text-align: left;" class="mycode_align">     <div style="text-align: center;" class="mycode_align">
 </div>
     <br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Function FunctionName ( Parameters)</code></div></div> </div>
 <div style="text-align: center;" class="mycode_align">     أي أننا نقوم بتعريف دالة جديدة باستخدام الكلمة المحجوزة Function ونضع بعدها      اسم الدالة FuncionName ثم بين قوسين نضع الوسيطيات(Parameters)<br />
    <br />
    <br />
    القسم الأول: الدوال الموجودة في فيجوال بيسك دوت نت<br />
    بداية الدوال الموجودة في فيجوال بيسك دوت نت كثيرة جدا وسنشرح القليل منها ان      شاء الله<br />
    <br />
    <br />
    هناك دوالة رياضية و هناك دوال لها وظائف تقنية كالتحويل وبعض الوظائف الأخرى..<br />
    هناك تركيبة(Structure-راجع فصل التركيبات) خاصة باللغة تسمى بMath وتحتوي      الكثير من الدوال ويمكن استخدامها بسهولة..<br />
    مثال: حساب القيمة المطلقة لقيمة عددية(نعرف القيمة المطلقة بانها القيمة      الموجبة للمقدار سواء كان موجبا أو سالبا)<br />
    أنشيء نموذج جديد وضع فيه أداة نص TextBox وأداة تسمية Label وأداة زر Button      واضبط الخصائص ليظهر بالشكل التالي:<br />
    <br />
    <img src="https://vb4arb.com/vb/uploaded/203_01348389318.png" loading="lazy"  alt="[صورة مرفقة: 203_01348389318.png]" class="mycode_img" /><br />
    <br />
    <br />
    <br />
    وفي اجراء Click للزر Button أدخل الكود التالي:<br />
    <br />
    <br />
 </div>
 <div style="text-align: left;" class="mycode_align">     <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Label1.Text = Math.Abs(Integer.Parse(TextBox1.Text))</code></div></div> </div>
 <div style="text-align: center;" class="mycode_align">     ببساطة: استدعينا الدالة Abs من التركيبة Math والتي تقوم بحساب القيمة المطلقة      ولاحظ أننا استخدمنا الدالة Integer.Parse لتحويل محتوى النص من صورته النصية      إلى عددية<br />
    <br />
    مثال آخر:</div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <br />
Label1.Text = Math.Pow( 2 , 3 ) <br />
 <div style="text-align: center;" class="mycode_align">     وضعت هذا المثال لتوضيح أن الدالة لا تقتصر على وسيط واحد بل أكثر حسب المراد      وتقوم الدالة Pow بحساب القوة الثالثة للأساس 2 ويمكنك تغيير القيم حسب رغبتك.<br />
    <br />
    وبتطرق بسيط إلى الدوال التي تقوم بوظائف تقنية كالتحويل بنستعرض بعض الأمثلة:<br />
    مثال: تحويل القيمة النصية إلى قيمة عددية<br />
    كما رأينا في مثال حساب القيمة المطلقة فاننا قمنا بعملية تحويل من نص(مدخل      صندوق النص) إلى قيمة عددية لان الدالة Abs لا تتعامل مع نصوص بل أعداد وجرب      إزالة التحويل وسيظهر الخطأ.<br />
    اذن ان اردنا التحويل من قيمة نصية لعددية يمكننا استخدام الدالة      Integer.Parse(String) وتقوم بتحويل النص الوسيط إلى قيمة عددية<br />
    <br />
    مثال آخر:تحويل القيمة العددية لنصية:<br />
    هناك بعض الدوال التي لا تستطيع التعامل مع القيمة على صورتها العددية بل تحتاج      وسيط نصي فنقوم بتحويل الصورة العددية إلى صورتها النصية باستخدام الدالة  </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Str(Number) <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     فهذه الدالة تستقبل وسيط عددي ويكون ناتجها صورة نصية<br />
    <br />
    بهذا نكون انتهينا من الدوال الموجودة في فيجوال بيسك دوت نت<br />
    <br />
    الآن ماذا اذا أردت صنع دالة خاصة مثلا تقوم بحساب مساحة دائرة...؟<br />
    يمكنك بناء دالة باستخدام الكلمة المحجوزة Function كما وضحنا في بداية الدرس<br />
    بداية الصورة الافتراضية للدالةو بما أن للدالة ناتج و قيمة فالافضل تحديد نوع      الدالة:</div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Function Fun_Name (Parameters) As Type <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     الآن سوف نسمي الدالة باسم CircleArea وعلينا تحديد الوسيطات اللازمة لعلمية      حساب المساحة وكما هو معروف لا يلزمنا سوى نصف قطر الدائرة وبالنسبة للقيمة ط      (PI) يمكننا استخدامها من خلال الثابت Math.PI<br />
    تمعن في الكود التالي:<br />
    <br />
 </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Function CircleArea(ByVal Radius As Integer) As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim Area As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;Area = Math.PI * Math.Pow(Radius, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Return Area<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.EventArgs) Handles Button1.Click<br />
&nbsp;&nbsp;&nbsp;&nbsp;Label1.Text = CircleArea(Integer.Parse(TextBox1.Text))<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     الآن انظر معي:<br />
    قمنا بصنع دالة سميناها CircleArea والتي تقوم بحساب مساحة الدائرة حسب نصف      قطرها المدخل<br />
    وبعدها قمنا بتحديد الوسطيات وهي Radius نصف القطر<br />
    والآن كما قلنا فان للدالة ناتج لها يمكن استخراجه من عمليات الدالة الداخلية      لكن كيف يمكن اعطاء هذه الدالة تلك القيمة بعد انتاجها داخل الدالة....<br />
    يمكن ذلك باحدى طريقتين:</div>
 <ul class="mycode_list"><li>[*=center]استخدام الكلمة المحجوزة Return <br />
[*=center]اسناد ناتج الدالة المطلوب إلى الدالة مباشرة <br />
</li>
</ul>
 <div style="text-align: center;" class="mycode_align">     توضيح:<br />
    في المثال الاخير أردنا أن يكون ناتج الدالة هو المتغير Area ويمكن إعطاء قيمته      للدالة كالتالي:<br />
    الاولى:<br />
    استخدمنا الأمر Return واستخدمناه كالتالي:</div>
 <div style="text-align: left;" class="mycode_align">     <div style="text-align: center;" class="mycode_align">
 </div>
     <br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Return Area</code></div></div> <div style="text-align: right;" class="mycode_align">         <div style="text-align: center;" class="mycode_align">             ويقوم باعطاء قيمة Area لناتج الدالة<br />
            <br />
            الثانية:<br />
            يمكننا استبدال الأمر Return بالاسناد المباشر للقيمة كمثال:</div>
         <div style="text-align: left;" class="mycode_align">             <div style="text-align: center;" class="mycode_align">
 </div>
             <br />
            <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CicleArea=Area</code></div></div> <div style="text-align: right;" class="mycode_align">                 <div style="text-align: center;" class="mycode_align">
                    أما بالنسبة لByVal و ByRef فيتم شرحهما بعد قليل<br />
                    لكن ماذا ان اردت الخروج من الدالة عند الوصول لنتيجة معينة<br />
                    يمكن ذلك بسهولة باستخدام الأمر Exit Funtion<br />
                    مثال:</div>
                 <div style="text-align: left;" class="mycode_align">                     <div style="text-align: center;" class="mycode_align">
 </div>
                     <br />
                    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=right]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=right]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Function Fun_Name (Parameters) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If X &gt; 2 Then Exit Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function <br />
 [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]</code></div></div> <br />
 </div>
             </div>
         </div>
     </div>
 </div>
 <div style="text-align: center;" class="mycode_align">     ويمكنك استخدام الدالة في أي مكان حسبما تحديدك لمحدوديتها كما وضحنا في الفصول      السابقة عن المحدودية ومجال الاستخدام<br />
    وبهذا يمكنك استنتاج أن من أهم فوائد الدوال توفير الوقت وتقليل حجم الكود.<br />
    <br />
    <span style="font-size: 5pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">ثانيا:الاجراءات الفرعية Subs</span></span><br />
    تختلف هذه عن سابقتها بانها لا تخرج لنا نواتج وانما تقوم بتنفيذ تعليمات وفقا      للوسيطات <br />
    بداية أيضا هناك اجراءات موجودة اصلا في فيجوال بيسك دوت نت وأخرى تصنعها انت<br />
    صياغة الاجراء الفرعي مشابهة لصياغة الدالة باختلاف أن الدالة يمكنك تحديد نوع      ناتجها بينما الاجراء الفرعي تستطيع تحديد مقبض الإجراء<br />
    أولا : الدوال الموجودة في فيجوال بيسك دوت نت<br />
    سوف نستعرض مثالا من الاجراءات الموجود في فيجوال بيسك دوت نت ونوضح أجزاءه<br />
    مثال:</div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.EventArgs) Handles Button1.Click<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     الشرح:</div>
 <ul class="mycode_list"><li>[*=center]الكلمة المحجوزة Private تفيد أن الاجراء يمكن      استخدامه فقط داخل نموذج الحاضن فقط <br />
[*=center]الكلمة المحجوز Sub تفيد اننا نبدا بصنع اجراء      فرعي <br />
[*=center]Button1_Click هو اسم الاجراء <br />
[*=center]ما بين القوسين تمثل الوسيطات المرسلة للحدث <br />
[*=center]الآن Handle تفيد كيف يتم اجراء الحدث وهنا      ألحقناها ب Button1.Click وهنا نفيد الاجراء أن يتم تنفيذ الاجراء عند القيام      بالضغط على Button1 <br />
[*=center]End Sub تفيد بانتهاء الاجراء <br />
</li>
</ul>
 <div style="text-align: center;" class="mycode_align">     الآن اصنع الاجراء الخاص بك بنفسك:<br />
    بداية الصيغة العامة للاجراء الفرعي هي</div>
 <div style="text-align: left;" class="mycode_align">     <div style="text-align: center;" class="mycode_align">         Sub</div>
     <div style="text-align: center;" class="mycode_align">
 </div>
     <br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Sub_Name (Parameters)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Statements<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div> <div style="text-align: right;" class="mycode_align">         <div style="text-align: center;" class="mycode_align">             والآن لنقوم بتصميم اجراء فرعي يقوم باغلاق النموذج الذي نمرره للاجراء</div>
         <div style="text-align: left;" class="mycode_align">             <div style="text-align: center;" class="mycode_align">
 </div>
             <br />
            <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Sub CloseForm(frm As Form)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm.Close()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div> </div>
     </div>
 </div>
 <div style="text-align: center;" class="mycode_align">     لكن كيف يمكن استدعاء هذا الحدث وتمرير الوسيطات له<br />
    ضع زر Button جديد واضغط عليه ضغطا مزدوجا وقم يكتابة الكود التالي:</div>
 <div style="text-align: center;" class="mycode_align">     رمز برمجي:</div>
 <br />
CloseForm(Me) <br />
 <div style="text-align: center;" class="mycode_align">     هنا قمنا باستدعاء الاجراء CloseForm ومررنا له النموذج الحالي(Me)<br />
    ويمكن أيضا استدعاء الاجراء بالطريقة التاليه باستخدام الكلمة المحجوزة Call<br />
    مثال:</div>
 <div style="text-align: center;" class="mycode_align">     رمز برمجي:</div>
 <br />
Call CloseForm(Me) <br />
 <div style="text-align: center;" class="mycode_align">
    الآن انتهينا من الدوال والاجراءات وبقت علينا قضية تتعلق بتمرير الوسيطات<br />
    الارسال بالقيمة او الارسال بالمرجع<br />
    <br />
    أولا: الارسال بالقيمة باستخدام الكلمة المحجوزة ByVal<br />
    هنا يتم تمرير المتغيرات دون تغيير القيمة الاصلية للمتغير وبالتالي يتم ارسال      نسخة جديدة من البيانات المرسلة في كل مرة تستدعي فيها الاجراء لذا فهي تستهلك      مزيدا من الوقت لكنها لا تؤثر على باقي أجزاء البرنامج لانها تقوم بارسال نسخة      جديدة من البيانات المرسلة.<br />
    <br />
    ثانيا:الارسال بالمرجع باستخدام الكلمة المحجوزة ByRef<br />
    هنا يتم ارسال مؤشر للمتغير مما يمكنك بتغيير قيمة المتغير الاصلية وهنا لا يتم      انشاء نسخة جديدة من البيانات بل فقط يتم ارسال البيانات الاصلية وهنا تكون      العملية اسرع من الارسال بالقيمة<br />
    <br />
    بهذا نكون قد انتهينا ان شاء الله من الشرح لهذا الفصل وسوف اعرض مثالا يجمع      الكثير مما تم دراسته في الفصول السابقة.<br />
    <br />
    أولا :قم بفتح مشروع جديد من نوع Windows Appllication<br />
    وأضف نموذج غير الاصلي وأيضا قم باضافة وحدة نمطية (Module) ويمكن استخدام      الModule في صناعة الاجراءات واستخدامها في كامل اجزاء المشروع<br />
    <br />
    ثانيا:سمي النموذج الاول بـ MainForm والثاني بـMsgForm<br />
    واضف الأدوات الظاهرة بالشكل واضبط خصائصها كما هو واضح:<br />
    <br />
    <br />
    <br />
    <br />
    <img src="https://vb4arb.com/vb/uploaded/203_11348389318.png" loading="lazy"  alt="[صورة مرفقة: 203_11348389318.png]" class="mycode_img" /><br />
    <br />
    <br />
    <img src="https://vb4arb.com/vb/uploaded/203_21348389318.png" loading="lazy"  alt="[صورة مرفقة: 203_21348389318.png]" class="mycode_img" /><br />
    <br />
    <br />
    في داخل الموديول أضف الكود التالي:<br />
 </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Const PI As Double = 3.14<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Structure Circle<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public Function CalculateArea(ByVal Radius As Integer) As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return (PI * Math.Pow(Radius, 2))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public Function CalculateLength(ByVal Radius As Integer) As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return (PI * Radius * 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public Sub ShowMsg(ByVal Text As String, ByVal Title As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgForm.Label1.Text = Text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgForm.Text = Title<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgForm.ShowDialog()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim A As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Structure</code></div></div> <div style="text-align: center;" class="mycode_align">     في هذا الكود قمنا بتعريف ثابت اسميناه PI واسندنا اليه القيمة 3.14<br />
    وقمنا ببناء تركيبة من نوع Structure واسميناها Circle ووضعنا فيها دالتين      واحدة تقوم بحساب محيط الدائرة والثانية تقوم بحساب مساحة الدائرة <br />
    كما قمنا بصنع اجراء يقوم بعرض النموذج MsgForm من خلال الامر ShowDialog الذي      يقوم باظهار النموذج على شكل مربع حوار مثل مربعات الرسائل <br />
    <br />
    أما في نموذج MainForm فتمعن في الأكواد التالية داخل النموذج <br />
    <br />
    وكذلك نموذج الMsgForm<br />
 </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <br />
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As&nbsp;&nbsp;System.EventArgs) Handles Button1.Click<br />
Me.Close()<br />
End Sub</code></div></div></div>
 <div style="text-align: center;" class="mycode_align">      وقد وضعت لكم المثال كاملا <span style="color: #ff0000;" class="mycode_color">بالمرفقات</span><br />
<span style="color: #0000cd;" class="mycode_color">أو</span> من الرابط التالي<br />
    <br />
    <a href="http://www.4shared.com/rar/zxklLlvC/Example.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/rar/zxklLlvC/Example.html</a><br />
    <br />
    <br />
    نتمنى ان تكونوا قد استمعتم معنا <br />
    <br />
    أبلغكم تحياتنا<br />
    <br />
    <span style="color: #0000cd;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
    <span style="color: #ff0000;" class="mycode_color">انتظروا الدرس القادم</span><br />
</div><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=2632" target="_blank" title="">Example.rar</a> (الحجم : 66.9 ك ب / التحميلات : 193)
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align">     السلام عليكم ورحمة الله وبركاته<br />
    بسم الله الرحمن الرحيم<br />
    اليوم سوف نتطرق لموضوع بالغ الأهمية في فيجوال بيسك دوت نت وهو الاجراءات و      الدوال.<br />
    أفضل شرح هذا الدرس باستخدام مشروع Widows Appllication<br />
    <br />
    <br />
    <span style="font-size: 5pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">أولا:الدوال Functions</span></span><br />
    الدالة Function : هي عبارة عن برنامج صغير يستقبل وسيطات(Parameters) ويطبق      بعض العمليات عليها ثم يخرج لنا ناتج الدالة...وتكون بالشكل التالي:<br />
 </div>
 <div style="text-align: left;" class="mycode_align">     <div style="text-align: center;" class="mycode_align">
 </div>
     <br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Function FunctionName ( Parameters)</code></div></div> </div>
 <div style="text-align: center;" class="mycode_align">     أي أننا نقوم بتعريف دالة جديدة باستخدام الكلمة المحجوزة Function ونضع بعدها      اسم الدالة FuncionName ثم بين قوسين نضع الوسيطيات(Parameters)<br />
    <br />
    <br />
    القسم الأول: الدوال الموجودة في فيجوال بيسك دوت نت<br />
    بداية الدوال الموجودة في فيجوال بيسك دوت نت كثيرة جدا وسنشرح القليل منها ان      شاء الله<br />
    <br />
    <br />
    هناك دوالة رياضية و هناك دوال لها وظائف تقنية كالتحويل وبعض الوظائف الأخرى..<br />
    هناك تركيبة(Structure-راجع فصل التركيبات) خاصة باللغة تسمى بMath وتحتوي      الكثير من الدوال ويمكن استخدامها بسهولة..<br />
    مثال: حساب القيمة المطلقة لقيمة عددية(نعرف القيمة المطلقة بانها القيمة      الموجبة للمقدار سواء كان موجبا أو سالبا)<br />
    أنشيء نموذج جديد وضع فيه أداة نص TextBox وأداة تسمية Label وأداة زر Button      واضبط الخصائص ليظهر بالشكل التالي:<br />
    <br />
    <img src="https://vb4arb.com/vb/uploaded/203_01348389318.png" loading="lazy"  alt="[صورة مرفقة: 203_01348389318.png]" class="mycode_img" /><br />
    <br />
    <br />
    <br />
    وفي اجراء Click للزر Button أدخل الكود التالي:<br />
    <br />
    <br />
 </div>
 <div style="text-align: left;" class="mycode_align">     <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Label1.Text = Math.Abs(Integer.Parse(TextBox1.Text))</code></div></div> </div>
 <div style="text-align: center;" class="mycode_align">     ببساطة: استدعينا الدالة Abs من التركيبة Math والتي تقوم بحساب القيمة المطلقة      ولاحظ أننا استخدمنا الدالة Integer.Parse لتحويل محتوى النص من صورته النصية      إلى عددية<br />
    <br />
    مثال آخر:</div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <br />
Label1.Text = Math.Pow( 2 , 3 ) <br />
 <div style="text-align: center;" class="mycode_align">     وضعت هذا المثال لتوضيح أن الدالة لا تقتصر على وسيط واحد بل أكثر حسب المراد      وتقوم الدالة Pow بحساب القوة الثالثة للأساس 2 ويمكنك تغيير القيم حسب رغبتك.<br />
    <br />
    وبتطرق بسيط إلى الدوال التي تقوم بوظائف تقنية كالتحويل بنستعرض بعض الأمثلة:<br />
    مثال: تحويل القيمة النصية إلى قيمة عددية<br />
    كما رأينا في مثال حساب القيمة المطلقة فاننا قمنا بعملية تحويل من نص(مدخل      صندوق النص) إلى قيمة عددية لان الدالة Abs لا تتعامل مع نصوص بل أعداد وجرب      إزالة التحويل وسيظهر الخطأ.<br />
    اذن ان اردنا التحويل من قيمة نصية لعددية يمكننا استخدام الدالة      Integer.Parse(String) وتقوم بتحويل النص الوسيط إلى قيمة عددية<br />
    <br />
    مثال آخر:تحويل القيمة العددية لنصية:<br />
    هناك بعض الدوال التي لا تستطيع التعامل مع القيمة على صورتها العددية بل تحتاج      وسيط نصي فنقوم بتحويل الصورة العددية إلى صورتها النصية باستخدام الدالة  </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Str(Number) <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     فهذه الدالة تستقبل وسيط عددي ويكون ناتجها صورة نصية<br />
    <br />
    بهذا نكون انتهينا من الدوال الموجودة في فيجوال بيسك دوت نت<br />
    <br />
    الآن ماذا اذا أردت صنع دالة خاصة مثلا تقوم بحساب مساحة دائرة...؟<br />
    يمكنك بناء دالة باستخدام الكلمة المحجوزة Function كما وضحنا في بداية الدرس<br />
    بداية الصورة الافتراضية للدالةو بما أن للدالة ناتج و قيمة فالافضل تحديد نوع      الدالة:</div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Function Fun_Name (Parameters) As Type <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     الآن سوف نسمي الدالة باسم CircleArea وعلينا تحديد الوسيطات اللازمة لعلمية      حساب المساحة وكما هو معروف لا يلزمنا سوى نصف قطر الدائرة وبالنسبة للقيمة ط      (PI) يمكننا استخدامها من خلال الثابت Math.PI<br />
    تمعن في الكود التالي:<br />
    <br />
 </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Function CircleArea(ByVal Radius As Integer) As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;Dim Area As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;Area = Math.PI * Math.Pow(Radius, 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Return Area<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.EventArgs) Handles Button1.Click<br />
&nbsp;&nbsp;&nbsp;&nbsp;Label1.Text = CircleArea(Integer.Parse(TextBox1.Text))<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     الآن انظر معي:<br />
    قمنا بصنع دالة سميناها CircleArea والتي تقوم بحساب مساحة الدائرة حسب نصف      قطرها المدخل<br />
    وبعدها قمنا بتحديد الوسطيات وهي Radius نصف القطر<br />
    والآن كما قلنا فان للدالة ناتج لها يمكن استخراجه من عمليات الدالة الداخلية      لكن كيف يمكن اعطاء هذه الدالة تلك القيمة بعد انتاجها داخل الدالة....<br />
    يمكن ذلك باحدى طريقتين:</div>
 <ul class="mycode_list"><li>[*=center]استخدام الكلمة المحجوزة Return <br />
[*=center]اسناد ناتج الدالة المطلوب إلى الدالة مباشرة <br />
</li>
</ul>
 <div style="text-align: center;" class="mycode_align">     توضيح:<br />
    في المثال الاخير أردنا أن يكون ناتج الدالة هو المتغير Area ويمكن إعطاء قيمته      للدالة كالتالي:<br />
    الاولى:<br />
    استخدمنا الأمر Return واستخدمناه كالتالي:</div>
 <div style="text-align: left;" class="mycode_align">     <div style="text-align: center;" class="mycode_align">
 </div>
     <br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Return Area</code></div></div> <div style="text-align: right;" class="mycode_align">         <div style="text-align: center;" class="mycode_align">             ويقوم باعطاء قيمة Area لناتج الدالة<br />
            <br />
            الثانية:<br />
            يمكننا استبدال الأمر Return بالاسناد المباشر للقيمة كمثال:</div>
         <div style="text-align: left;" class="mycode_align">             <div style="text-align: center;" class="mycode_align">
 </div>
             <br />
            <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>CicleArea=Area</code></div></div> <div style="text-align: right;" class="mycode_align">                 <div style="text-align: center;" class="mycode_align">
                    أما بالنسبة لByVal و ByRef فيتم شرحهما بعد قليل<br />
                    لكن ماذا ان اردت الخروج من الدالة عند الوصول لنتيجة معينة<br />
                    يمكن ذلك بسهولة باستخدام الأمر Exit Funtion<br />
                    مثال:</div>
                 <div style="text-align: left;" class="mycode_align">                     <div style="text-align: center;" class="mycode_align">
 </div>
                     <br />
                    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=right]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=right]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [align=left]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Function Fun_Name (Parameters) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If X &gt; 2 Then Exit Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function <br />
 [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/align]</code></div></div> <br />
 </div>
             </div>
         </div>
     </div>
 </div>
 <div style="text-align: center;" class="mycode_align">     ويمكنك استخدام الدالة في أي مكان حسبما تحديدك لمحدوديتها كما وضحنا في الفصول      السابقة عن المحدودية ومجال الاستخدام<br />
    وبهذا يمكنك استنتاج أن من أهم فوائد الدوال توفير الوقت وتقليل حجم الكود.<br />
    <br />
    <span style="font-size: 5pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">ثانيا:الاجراءات الفرعية Subs</span></span><br />
    تختلف هذه عن سابقتها بانها لا تخرج لنا نواتج وانما تقوم بتنفيذ تعليمات وفقا      للوسيطات <br />
    بداية أيضا هناك اجراءات موجودة اصلا في فيجوال بيسك دوت نت وأخرى تصنعها انت<br />
    صياغة الاجراء الفرعي مشابهة لصياغة الدالة باختلاف أن الدالة يمكنك تحديد نوع      ناتجها بينما الاجراء الفرعي تستطيع تحديد مقبض الإجراء<br />
    أولا : الدوال الموجودة في فيجوال بيسك دوت نت<br />
    سوف نستعرض مثالا من الاجراءات الموجود في فيجوال بيسك دوت نت ونوضح أجزاءه<br />
    مثال:</div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=left]&nbsp;&nbsp;&nbsp;&nbsp; Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.EventArgs) Handles Button1.Click<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub <br />
 [/align]</code></div></div> <div style="text-align: center;" class="mycode_align">     الشرح:</div>
 <ul class="mycode_list"><li>[*=center]الكلمة المحجوزة Private تفيد أن الاجراء يمكن      استخدامه فقط داخل نموذج الحاضن فقط <br />
[*=center]الكلمة المحجوز Sub تفيد اننا نبدا بصنع اجراء      فرعي <br />
[*=center]Button1_Click هو اسم الاجراء <br />
[*=center]ما بين القوسين تمثل الوسيطات المرسلة للحدث <br />
[*=center]الآن Handle تفيد كيف يتم اجراء الحدث وهنا      ألحقناها ب Button1.Click وهنا نفيد الاجراء أن يتم تنفيذ الاجراء عند القيام      بالضغط على Button1 <br />
[*=center]End Sub تفيد بانتهاء الاجراء <br />
</li>
</ul>
 <div style="text-align: center;" class="mycode_align">     الآن اصنع الاجراء الخاص بك بنفسك:<br />
    بداية الصيغة العامة للاجراء الفرعي هي</div>
 <div style="text-align: left;" class="mycode_align">     <div style="text-align: center;" class="mycode_align">         Sub</div>
     <div style="text-align: center;" class="mycode_align">
 </div>
     <br />
    <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Sub_Name (Parameters)<br />
&nbsp;&nbsp;&nbsp;&nbsp;Statements<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div> <div style="text-align: right;" class="mycode_align">         <div style="text-align: center;" class="mycode_align">             والآن لنقوم بتصميم اجراء فرعي يقوم باغلاق النموذج الذي نمرره للاجراء</div>
         <div style="text-align: left;" class="mycode_align">             <div style="text-align: center;" class="mycode_align">
 </div>
             <br />
            <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Sub CloseForm(frm As Form)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frm.Close()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div> </div>
     </div>
 </div>
 <div style="text-align: center;" class="mycode_align">     لكن كيف يمكن استدعاء هذا الحدث وتمرير الوسيطات له<br />
    ضع زر Button جديد واضغط عليه ضغطا مزدوجا وقم يكتابة الكود التالي:</div>
 <div style="text-align: center;" class="mycode_align">     رمز برمجي:</div>
 <br />
CloseForm(Me) <br />
 <div style="text-align: center;" class="mycode_align">     هنا قمنا باستدعاء الاجراء CloseForm ومررنا له النموذج الحالي(Me)<br />
    ويمكن أيضا استدعاء الاجراء بالطريقة التاليه باستخدام الكلمة المحجوزة Call<br />
    مثال:</div>
 <div style="text-align: center;" class="mycode_align">     رمز برمجي:</div>
 <br />
Call CloseForm(Me) <br />
 <div style="text-align: center;" class="mycode_align">
    الآن انتهينا من الدوال والاجراءات وبقت علينا قضية تتعلق بتمرير الوسيطات<br />
    الارسال بالقيمة او الارسال بالمرجع<br />
    <br />
    أولا: الارسال بالقيمة باستخدام الكلمة المحجوزة ByVal<br />
    هنا يتم تمرير المتغيرات دون تغيير القيمة الاصلية للمتغير وبالتالي يتم ارسال      نسخة جديدة من البيانات المرسلة في كل مرة تستدعي فيها الاجراء لذا فهي تستهلك      مزيدا من الوقت لكنها لا تؤثر على باقي أجزاء البرنامج لانها تقوم بارسال نسخة      جديدة من البيانات المرسلة.<br />
    <br />
    ثانيا:الارسال بالمرجع باستخدام الكلمة المحجوزة ByRef<br />
    هنا يتم ارسال مؤشر للمتغير مما يمكنك بتغيير قيمة المتغير الاصلية وهنا لا يتم      انشاء نسخة جديدة من البيانات بل فقط يتم ارسال البيانات الاصلية وهنا تكون      العملية اسرع من الارسال بالقيمة<br />
    <br />
    بهذا نكون قد انتهينا ان شاء الله من الشرح لهذا الفصل وسوف اعرض مثالا يجمع      الكثير مما تم دراسته في الفصول السابقة.<br />
    <br />
    أولا :قم بفتح مشروع جديد من نوع Windows Appllication<br />
    وأضف نموذج غير الاصلي وأيضا قم باضافة وحدة نمطية (Module) ويمكن استخدام      الModule في صناعة الاجراءات واستخدامها في كامل اجزاء المشروع<br />
    <br />
    ثانيا:سمي النموذج الاول بـ MainForm والثاني بـMsgForm<br />
    واضف الأدوات الظاهرة بالشكل واضبط خصائصها كما هو واضح:<br />
    <br />
    <br />
    <br />
    <br />
    <img src="https://vb4arb.com/vb/uploaded/203_11348389318.png" loading="lazy"  alt="[صورة مرفقة: 203_11348389318.png]" class="mycode_img" /><br />
    <br />
    <br />
    <img src="https://vb4arb.com/vb/uploaded/203_21348389318.png" loading="lazy"  alt="[صورة مرفقة: 203_21348389318.png]" class="mycode_img" /><br />
    <br />
    <br />
    في داخل الموديول أضف الكود التالي:<br />
 </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Const PI As Double = 3.14<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Structure Circle<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public Function CalculateArea(ByVal Radius As Integer) As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return (PI * Math.Pow(Radius, 2))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public Function CalculateLength(ByVal Radius As Integer) As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return (PI * Radius * 2)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Function<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Public Sub ShowMsg(ByVal Text As String, ByVal Title As String)<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgForm.Label1.Text = Text<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgForm.Text = Title<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgForm.ShowDialog()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sub<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim A As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Structure</code></div></div> <div style="text-align: center;" class="mycode_align">     في هذا الكود قمنا بتعريف ثابت اسميناه PI واسندنا اليه القيمة 3.14<br />
    وقمنا ببناء تركيبة من نوع Structure واسميناها Circle ووضعنا فيها دالتين      واحدة تقوم بحساب محيط الدائرة والثانية تقوم بحساب مساحة الدائرة <br />
    كما قمنا بصنع اجراء يقوم بعرض النموذج MsgForm من خلال الامر ShowDialog الذي      يقوم باظهار النموذج على شكل مربع حوار مثل مربعات الرسائل <br />
    <br />
    أما في نموذج MainForm فتمعن في الأكواد التالية داخل النموذج <br />
    <br />
    وكذلك نموذج الMsgForm<br />
 </div>
 <div style="text-align: center;" class="mycode_align">
 </div>
 <br />
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As&nbsp;&nbsp;System.EventArgs) Handles Button1.Click<br />
Me.Close()<br />
End Sub</code></div></div></div>
 <div style="text-align: center;" class="mycode_align">      وقد وضعت لكم المثال كاملا <span style="color: #ff0000;" class="mycode_color">بالمرفقات</span><br />
<span style="color: #0000cd;" class="mycode_color">أو</span> من الرابط التالي<br />
    <br />
    <a href="http://www.4shared.com/rar/zxklLlvC/Example.html" target="_blank" rel="noopener" class="mycode_url">http://www.4shared.com/rar/zxklLlvC/Example.html</a><br />
    <br />
    <br />
    نتمنى ان تكونوا قد استمعتم معنا <br />
    <br />
    أبلغكم تحياتنا<br />
    <br />
    <span style="color: #0000cd;" class="mycode_color">Lo2i</span> و <span style="color: #b22222;" class="mycode_color">Mohammed Asaad</span><br />
    <span style="color: #ff0000;" class="mycode_color">انتظروا الدرس القادم</span><br />
</div><br />
<br />
<img src="https://vb4arb.com/vb/images/attachtypes/zip.gif" title="" border="0" alt=".rar" />
&nbsp;&nbsp;<a class="attachembed" href="attachment.php?aid=2632" target="_blank" title="">Example.rar</a> (الحجم : 66.9 ك ب / التحميلات : 193)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل (7):- اوامر التكرار والدوران ( شرح مفصل )]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4371</link>
			<pubDate>Sun, 23 Sep 2012 08:04:11 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=1674">B3dak Hbebe_mybb_import4575</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4371</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 8pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">بسم الله الرحمن الرحيم<br />
</span></span></span></span></span></span></div>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size"><span style="font-family: Arial;" class="mycode_font">السلام عليكم ورحمة الله وبركاته</span> </span></span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سيكون درسنا اليوم ان شاء الله عن جمل التكرار والدوران وسيكون عملنا الكلي على الكونسول<br />
ولفتح مشروع كونسول جديد اتبع الصورة التالية :_</span></span></span><br />
</div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align">
</div>
</span><br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_01348387083.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348387083.jpg]" class="mycode_img" /><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">لقد قمنا بإيضاح شيء بسيط حول الكونسول في الفصل الاول <a href="https://vb4arb.com/vb/showthread.php?157-%C7%E1%DD%D5%E1-%281%29-%C7%E1%DD%ED%CC%E6%C7%E1-%C8%ED%D3%DF-%CF%E6%CA-%E4%CA-%28%E1%E3%CD%C9-%CA%DA%D1%ED%DD%ED%C9%29" target="_blank" rel="noopener" class="mycode_url"><span style="color: #0000FF;" class="mycode_color">هنا</span></a></span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">والان سوف نتعلم سوياً كيفية استخدام جمل التكرار والدوران داخل هذا الكونسول</span></span></span></div>
</span><br />
<br />
<span style="color: DarkOrange;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">ملاحظة هامة :_ المصفوفات غالباً مايتم استخدامها مع جمل التكرار والدوران<br />
لذلك سوف نتعلم ذلك الان<br />
</span></span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">==================================================</span></span></span></div>
</span><br />
<br />
<span style="font-size: 8pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: Red;" class="mycode_color">اولاً :- ماهي جمل التكرار :- </span></span></span></span></span></span></div>
</span><br />
<br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size">جمل التكرار :- </span></span></span></span></div>
</span><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">باختصار هي جزء من البرنامج يتكرر</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فمثلاً اذا اردنا ان نضيف على الكومبو ال قائمة المنسادلة الارقام من </span></span></span></div>
</span><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">0</span></span></span></div>
</span><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"> إلى </span></span></span></div>
</span><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">100</span></span></span></div>
</span><br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فهل من المعقول ان نقوم بكتابة <span style="color: Red;" class="mycode_color">100 </span>سطر لاجل ذلك ؟؟<br />
بالطبع لا ....</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">---------------------------------------</span></span></span></div>
</span><br />
<span style="color: Purple;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
وسينتج لنا كود كبير جدأً وبدون اي فائدة منه :- مثل </span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: left;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]1[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]2[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]3[/color][COLOR=#007700])<br />
[/COLOR]</code></div></div><span style="color: #007700;" class="mycode_color"><br />
</span></span></span></span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #007700;" class="mycode_color"> .<br />
.<br />
.<br />
<br />
</span></span></span></span></div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Verdana][FONT=arial][b]<br />
[color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]99[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]100[/color][COLOR=#007700]) <br />
[/COLOR][/b][/FONT][/FONT]</code></div></div></div>
</span><span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الان سنجرب ان نضيف اليه الارقام ولكن باستخدام جملة التكرار <span style="color: Red;" class="mycode_color">for </span>مثلاً :-</span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]For [/color][color=#0000BB]i [/color][color=#007700]= [/color][COLOR=#0000BB]1 to 100<br />
ComboBox1[/COLOR][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]i[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]next [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: DarkSlateBlue;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">بهذه الكود هنا سوف يقوم بعمل اضافة للاعداد من <span style="color: DarkOrange;" class="mycode_color">1</span> إلى <span style="color: DarkOrange;" class="mycode_color">100 </span>ولا حظ ان كلمة <span style="color: Red;" class="mycode_color">next </span>تاتي مع حلقة <span style="color: Red;" class="mycode_color">for </span>دائماً </span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">---------------------------------------------</span></span></span></div>
</span><br />
<span style="color: DarkRed;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size"><br />
</span></span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: DarkRed;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">أقسام جمل التكرار:<br />
1-جمل التكرار باستخدام For..Next<br />
2-جمل التكرار باستخدام Do...Loop<br />
<br />
</span></span><br />
</span></span></span></div>
</span><span style="color: DarkOrchid;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">-------------------------------</span></span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">*******************************************</span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 7pt;" class="mycode_size">اولاً :- </span>جملة التكرار for --- next</span></span></span></div>
</span><br />
<br />
<span style="color: Green;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
يمكننا استخدام هذه الجملة عندما نريد تكرار التعليمة حسب المراد</span></span></span></div>
</span><br />
<br />
<span style="color: Teal;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فمثلاً كما في المثال السابق حدد انا نريد الارقام من <span style="color: Red;" class="mycode_color">1</span> إلى <span style="color: Red;" class="mycode_color">100 </span>وبهذا صار التكرار معلوماً لدينا</span></span></span></div>
</span><br />
<br />
<span style="color: DarkSlateGray;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">وتكون الصيغة العامة لجملة التكرار for .... next بالشكل التالي :-</span></span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Verdana][FONT=arial][b][COLOR=#007700]<br />
For [/COLOR][color=#0000BB]i [/color][color=#007700]= ([/color][color=#0000BB]ٍStartValue[/color][color=#007700]) [/color][color=#0000BB]to [/color][color=#007700]([/color][color=#0000BB]EndValue[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]Condition<br />
Next i <br />
[/COLOR][/b][/FONT][/FONT]</code></div></div></div>
<div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"> <br />
<span style="color: SeaGreen;" class="mycode_color">&gt;</span><br />
<br />
</span></span></span></div>
</span><span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">.......................<span style="color: Red;" class="mycode_color">/\/\/\/\\/\/\/</span>...........................</span></span></span></div>
</span><br />
<br />
<span style="color: Sienna;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
مثلاً هذا الكود لاضافة مصفوفة جديدة ومن خلال جملة التكرار اريدها ان تضع الاسماء التي بداخل المصفوفة<br />
وتكتب في الكونسول</span></span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b] [COLOR=#0000BB]Dim *****rab[/color][color=#007700]() As [/color][color=#0000BB]String [/color][color=#007700]= {[/color][color=#DD0000]"lo2i"[/color][color=#007700], [/color][color=#DD0000]"ali"[/color][color=#007700], [/color][color=#DD0000]"mohammed"[/color][color=#007700], [/color][color=#DD0000]"samer"[/color][color=#007700], [/color][color=#DD0000]"some one"[/color][COLOR=#007700]}<br />
<br />
For [/COLOR][color=#0000BB]i [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 4<br />
<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"the name is " [/color][color=#007700]&amp; [/color][color=#0000BB]*****rab[/color][color=#007700]([/color][color=#0000BB]i[/color][COLOR=#007700]))<br />
<br />
[/COLOR][COLOR=#0000BB]Next<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]ReadKey[/color][color=#007700]() [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">------------------------------------------</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: Sienna;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">قمنا بتعريف مصفوفة جديد وادخلنا فيها القيم التالية -</span></span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]{[/color][color=#DD0000]"lo2i"[/color][color=#007700], [/color][color=#DD0000]"ali"[/color][color=#007700], [/color][color=#DD0000]"mohammed"[/color][color=#007700], [/color][color=#DD0000]"samer"[/color][color=#007700], [/color][color=#DD0000]"some one"[/color][color=#007700]} [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: DarkOrange;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">استخدمنا الكلمة المحجوزة</span></span></span></span></div>
</span><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">for </span></span></span></div>
</span><br />
<br />
<br />
<span style="color: Green;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">قمنا بتنفيذ تكرار جديد واعطينا قيمة له هي ان يبدأ بالعد من الصفر وينتهي ب اربعة<br />
اي 0 1 2 3 4 اي خمس مرات</span></span></span></div>
</span><br />
<span style="color: DarkRed;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
الصفر رقم منفصل -<br />
الواحد رقم منفصل -<br />
الاثنين رقم منفصل -<br />
الثلاثة رقم منفصل -<br />
الاربعة رقم منفصل –<br />
</span></span></span></div>
</span><img src="https://vb4arb.com/vb/uploaded/203_01348387211.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348387211.jpg]" class="mycode_img" /><br />
<br />
<br />
<br />
<br />
<br />
<span style="color: YellowGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">يمكنك تجريب النتيجة بنفسك الان لعمل ذلك<br />
ولا حظ هنا اننا كتبنا هذا الكود</span></span></span></span><br />
</div>
</span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Console[/color][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"the name is " [/color][color=#007700]&amp; [/color][color=#0000BB]*****rab[/color][color=#007700]([/color][color=#0000BB]i[/color][color=#007700])) [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: DarkOrange;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">وهو الكود الذي سيقوم بتكرار نفسه خمس مرات على التوالي<br />
</span></span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 7pt;" class="mycode_size">ملاحظة هامة جداً :-</span></span></span></span></div>
</span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سيقوم تكرار العد على العداد الذي نقوم بتعريفه في جملة التكرار<br />
فمثلاً قيمة <span style="color: Red;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size">i</span></span><br />
لاول مرة سيكون <span style="color: Red;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size">0</span></span></span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وبعد وصوله للكلمة المحجوزة <span style="color: DarkRed;" class="mycode_color">next</span></span></span></span></div>
</span><br />
<span style="color: YellowGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سوف يعود لبداية التكرار<br />
بعد ان تصبح قيمته 2<br />
وهكذا حتى تصل إلى خمسة<br />
اذا وصل العداد إلى الرقم <span style="color: Green;" class="mycode_color">5</span> خرج من جملة التكرار<br />
وادى الاكواد التالية ...<br />
<br />
ولا تنسوا انه يمكننا الحصول على القيمة التي بداخل اي مصفوفة من خلال الكود التالي<br />
</span></span></span></div>
</span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Textbox1[/color][color=#007700].[/color][color=#0000BB]text [/color][color=#007700]= [/color][color=#0000BB]*****rab[/color][color=#007700]([/color][color=#0000BB]1[/color][color=#007700]) [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: Green;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وسيظهر لنا في التيكست اسم <span style="color: Red;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">lo2i</span></span></span></span></span></div>
</span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">طيب لماذا في جملة التكرار لم نقم بكتابة عدد داخل فهرس المصفوفة<br />
<br />
كما تلاحظون كتبنا داخل فهرس المصفوفة العداد <span style="color: Red;" class="mycode_color">i</span><br />
الذي عرفناه على انه جملة تكرار تبدأ من <span style="color: Red;" class="mycode_color">الصفر </span>وتنهي عند <span style="color: Red;" class="mycode_color">الاربعة</span><br />
</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">*********************************************</span></span></span></div>
</span><br />
<span style="color: DarkSlateGray;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
نعم المسألة بسيطة اكثر مما تتصور<br />
فكما قلنا ان العداد سوف يبدأ من القيمة صفر وهي اول قيمة في المصفوقة ايضاً<br />
لان المصفوفة كمان قيمها تبدأ من العدد ر قم صفر<br />
وعند وصوله اول مرة إلى كلمة <span style="color: Red;" class="mycode_color">next</span><br />
سوف يذهب إلى ال <span style="color: Red;" class="mycode_color">for</span><br />
وتكون قيمته <span style="color: Red;" class="mycode_color">1</span><br />
وسيعرض لنا القيمة الاولى في المصفوفة التي تأتي بعد الصفر<br />
وهكذا</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</span></span></span></div>
</span><br />
<br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">[SIZE=7]ثانياً :- </span>جملة التكرار Do...Loop[/SIZE]</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">القسم الأول:توضيح الحلقة Do...Loop</span><br />
<br />
</span></span></span></div>
</span><br />
<span style="font-size: 4pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: SeaGreen;" class="mycode_color">هذا    التكرار لا يقيدنا بقيم البداية أو النهاية بل يتحدد فقط بتحقق الشرط    وبالنسبة للحلقة For..Next نحدد مقدار الزيادة أو النقصان في مقدار العداد<br />
</span></span></span></span></span></span></div>
</span><br />
<span style="font-size: 5pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الفرق بين ال <span style="color: Red;" class="mycode_color">for next </span></span></span></span></span></span></div>
</span><span style="font-size: 5pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">و </span></span></span></span></span></div>
</span><span style="font-size: 5pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: Red;" class="mycode_color">Do...Loop</span> </span></span></span></span></span></div>
</span><br />
<br />
<br />
<br />
<span style="color: Teal;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الفرق كما ذكرنا في التعريف ان جملة ال <span style="color: DarkOrange;" class="mycode_color">for next</span> قمنا بتحديد مقدار الاضافة ومقدار العداد له<br />
اما جملة التكرار <span style="color: DarkOrange;" class="mycode_color">do while</span> </span></span></span></div>
</span><br />
<br />
<span style="color: Magenta;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فهي غير محددة وينتهي تكرارها بالاعتماد على الشرط التي اعطيته بها<br />
<br />
مثلاً في هذا الكود هنا<br />
</span></span></span></div>
</span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]For [/color][color=#0000BB]x [/color][color=#007700]= [/color][COLOR=#0000BB]o to 2<br />
Msgbox x<br />
Next [/COLOR]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: Blue;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ستظهر لنا ثلاث رسايل فيها التالي:-</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اقتباس:</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الاولى رقم 1</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الثانية رقم 2</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الثالثة رقم 3 </span></span></span></div>
</span><br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">واما الكود التالي لجملة التكرار ال </span></span></span></div>
</span><span style="color: Olive;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">do ..Loop</span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Dim x [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
x [/COLOR][color=#007700]= [/color][COLOR=#0000BB]0<br />
[/COLOR][color=#007700]Do While [/color][color=#0000BB]Not x [/color][color=#007700]= [/color][COLOR=#0000BB]4<br />
MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]x [/color][color=#007700]= [/color][color=#0000BB]x [/color][color=#007700]+ [/color][COLOR=#0000BB]1<br />
Loop [/COLOR]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">--------------------</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: Olive;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سيقوم الكود التالي بطباعة المسج الرسالة <span style="color: Red;" class="mycode_color">msgbox 3</span> مرات على التوالي :<br />
<br />
وبهذا //؟ <img src="http://www.vb4arab.com/vb/images/smilies/redface.gif" loading="lazy"  alt="[صورة مرفقة: redface.gif]" class="mycode_img" /></span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اعتقد ان الفرق اصبح واضح الان</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">.................................................. .....................................</span></span></span></div>
</span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: Black;" class="mycode_color">القسم الثاني:جزأي الحلقة Do...Loop</span></span><br />
<br />
<br />
</span></span></span></div>
</span><br />
</div>
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><ul class="mycode_list"><li>[*=center]الحلقة Do While...Loop <br />
[*=center]الحلقة Do Until...Loop <br />
</li>
</ul>
</div>
</span></span></span></div>
</span><div style="text-align: center;" class="mycode_align">
</div>
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">أولا:الحلقة Do While...Loop<br />
باختصار تقوم هذه الحلقة بتنفيذ التعليمات المحتواة طالما تحقق الشرط وعند فشل الشرط تتوقف هذه الحلقة<br />
مثال بسيط:</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim I As Integer = 0 Do While I &lt; 10 Console.Write(I) I = I + 1 Console.WriteLine() Loop Console.ReadKey()</code></div></div><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"></span></span></span><div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
الآن سيقوم البرنامج باختبار الشرط عند اول عملية تنفيذ وسيرى أن الشرط قد    تحقق لان صفر اقل من عشرة وهكذا الى ان يصل الرقم تسعة فيزيد البرنامج 1    ويفشل الشرط وبهذا تنتهي الحلقة<br />
والناتج:<br />
</div>
<div style="text-align: left;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9</div>
<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
ثانيا:الحلقة Do Until...Loop<br />
تقوم هذه الحلقة بتنفيذ التعليمات داخل كتلة Do...Loop طالما لم يتحقق    الشرط وبمجرد تحققه تتوقف الحلقة(اذن كما نرى فهي تعمل عكس الحلقة Do    While...Loop<br />
مثال:</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim I As Integer = 0 Do Until I &gt;= 10 Console.Write(I) I = I + 1 Console.WriteLine() Loop Console.ReadKey()</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
كما نرى فان الشرط هو مضاد تماما للشرط في الحلقة السابقة لكن نتج نفس النتائج بالضبط!!كيف ذلك؟<br />
<br />
الآن ستبدأ الحلقة باختبار الشرط ووجده خاطئ لذلك ينفذ التعليمات الى ان    يتحقق الشرط وعندما يصل الرقم تسعة فبزيادة 1 تصبح عشرة وبالتالي يصبح    الشرط صحيحا وتتوقف الحلقة<br />
وناتج الحلقة هو</div>
<div style="text-align: left;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
<br />
<span style="font-size: 5pt;" class="mycode_size">القسم الثالث:الفحص قبل الحلقة أو بعد الحلقة</span><br />
<br />
<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">الجزء الأول: الفحص المبدأي: Pre-Test<br />
يقوم البرنامج بفحص الشرط ثم ينفذ الحلقة بعد التحقق من صحة الشرط<br />
مثال: جميع أمثلة Do..Loop السابقة هي من هذا النوع من الفحص<br />
<br />
الجزء الثاني:الفحص بعد تنفيذ الحلقة: Posted-Test<br />
يقوم البرنامج بتنفيذ التعليمات لاول مرة ثم يقوم بعد تنفيذ التعليمات للمرة الأولى بفحص الشرط<br />
أي أنه ينفذ التعليمات لاول مرة بالرغم من صحة الشرط المعطى:<br />
مثال: نظام (هل تريد اعادة البرنامج في تطبيقات الكونسول)<br />
الآن سأوضح الفكرة بهذا الكود:<br />
<br />
</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right][align=left][align=right][align=left][align=right][align=left][align=right][align=left][align=center][align=right][align=center]Dim&nbsp;&nbsp;&nbsp;&nbsp;again As String Do Console.Write("Do you Want to re-start The&nbsp;&nbsp;&nbsp;&nbsp;Program?(Y/N)") again = Console.ReadLine() Loop While (again = "Y" Or&nbsp;&nbsp;&nbsp;&nbsp;again = "y")<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">
<br />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<span style="color: #000000;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font">[b][/CODE]</span></span></span></span><br />
</div>
<div style="text-align: center;" class="mycode_align">
الآن نخبر البرنامج أول مرة أن يقوم بتنفيذ التعليمات وبعد ذلك يقوم    البرنامج بالتحقق من قيمة again التي أدخلناها وقت التنفيذ فاذا كانت تساوي    y أو Y فنخبره بتكرار الحلقة وان لم يكن يتخطى الحلقة<br />
</div>
</div>
[/b]</span></span></div>
</span><div style="text-align: center;" class="mycode_align"><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 8pt;" class="mycode_size">ثالثاً :-</span></span></span></span></div>
</span><br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
طبعاً النوع هذا لا يعتبر نوع بحد مايعتبر طريقة استثنائية ثانية<br />
فمثلاً اذا اردنا ان نقوم بتعبئة الكونسول <span style="color: Red;" class="mycode_color">10 </span>مرات <span style="color: Red;" class="mycode_color">ali</span><br />
بدون ذكر اي من الكلمات <span style="color: Red;" class="mycode_color">for </span>او <span style="color: Red;" class="mycode_color">do while</span><br />
فسنعمل طريقة التالية لتعبئة الكونسول بدون استخدام اي من جمل التكرار المعروفة<br />
وهذه هي الطريقة :_</span></span></span></div>
</span><br />
<br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][COLOR=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]<br />
Dim s [/COLOR][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
<br />
s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]0<br />
lo2i[/COLOR][COLOR=#007700]:<br />
<br />
[/COLOR][color=#0000BB]s [/color][color=#007700]= [/color][color=#0000BB]s [/color][color=#007700]+ [/color][COLOR=#0000BB]1<br />
<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"ali"[/color][COLOR=#007700])<br />
<br />
If [/COLOR][color=#0000BB]s [/color][color=#007700]&lt; [/color][COLOR=#0000BB]5 Then GoTo lo2i<br />
<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]ReadKey[/color][color=#007700]() [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">شرح الكود السابق :-</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الاول :-</span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB] Dim s [/color][color=#007700]As [/color][color=#0000BB]Integer [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">عرفنا متغير من نوع رقمي وللتعلم المزيد حول المتغيرات والثوابت ادخل هنا</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">****</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الثاني :-</span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]s [/color][color=#007700]= [/color][color=#0000BB]0 [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اسندنا قيمة للمتغير s وهي صفر .</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">*****</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الثالث :- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]lo2i[/color][color=#007700]: [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ماهذا </span></span></span></div>
</span><img src="http://www.vb4arab.com/vb/images/smilies/confused.gif" loading="lazy"  alt="[صورة مرفقة: confused.gif]" class="mycode_img" /><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"> ((سنشرحه بعد قليل))</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الخامس :- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Console[/color][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"ali"[/color][color=#007700]) [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الكود الذي تستطيع من خلاله كتابة اي شيء في الكونسول</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وهنا اخترنا اسم علي ali</span></span></span><br />
</div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">**********</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر السادس:- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]If [/color][color=#0000BB]s [/color][color=#007700]&lt; [/color][color=#0000BB]5 Then GoTo lo2i [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">جملة شرطية واعتقد انها واضحة بعد ماقمت بقرأءة هذا الدرس هنا</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ومضمون هذه الحملة الشرطية انه اذا كانت قيمة المتعير s</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اذهب إلى كلمة لؤي lo2i</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وابدأ بالقراءة من هناك ...</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">****************</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر السابع :- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Console[/color][color=#007700].[/color][color=#0000BB]ReadKey[/color][color=#007700]() [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">هذا الكود اذا لم تضعه فسوف تفتح لك شاشة الكونسول وتقفل بدون ان ترى اي شيء كتب فيها</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">لذلك يجب عليك ان تقوم بكتابته لكي تستطيع القراءة من الكونسول ...</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">**********</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اي انه باستخدام جملة ال Goto</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">يمكنك البدء من سطر جديد في الكود ام من اجراء معين</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ولا حظ ان كلمة Lo2i يكتب بعدها : نقطتان رئسيتان</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">كما هو موضح في الصورة التالية :-</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align">
<img src="https://vb4arb.com/vb/uploaded/203_01348387331.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348387331.jpg]" class="mycode_img" /><br />
<br />
</div>
</span><br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">[b]<span style="font-size: 9pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">يتبع</span></span></span>[/b]</span></span><br />
</div>
</span><br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Arial;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 8pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">بسم الله الرحمن الرحيم<br />
</span></span></span></span></span></span></div>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size"><span style="font-family: Arial;" class="mycode_font">السلام عليكم ورحمة الله وبركاته</span> </span></span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سيكون درسنا اليوم ان شاء الله عن جمل التكرار والدوران وسيكون عملنا الكلي على الكونسول<br />
ولفتح مشروع كونسول جديد اتبع الصورة التالية :_</span></span></span><br />
</div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align">
</div>
</span><br />
<br />
<img src="https://vb4arb.com/vb/uploaded/203_01348387083.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348387083.jpg]" class="mycode_img" /><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">لقد قمنا بإيضاح شيء بسيط حول الكونسول في الفصل الاول <a href="https://vb4arb.com/vb/showthread.php?157-%C7%E1%DD%D5%E1-%281%29-%C7%E1%DD%ED%CC%E6%C7%E1-%C8%ED%D3%DF-%CF%E6%CA-%E4%CA-%28%E1%E3%CD%C9-%CA%DA%D1%ED%DD%ED%C9%29" target="_blank" rel="noopener" class="mycode_url"><span style="color: #0000FF;" class="mycode_color">هنا</span></a></span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">والان سوف نتعلم سوياً كيفية استخدام جمل التكرار والدوران داخل هذا الكونسول</span></span></span></div>
</span><br />
<br />
<span style="color: DarkOrange;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">ملاحظة هامة :_ المصفوفات غالباً مايتم استخدامها مع جمل التكرار والدوران<br />
لذلك سوف نتعلم ذلك الان<br />
</span></span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">==================================================</span></span></span></div>
</span><br />
<br />
<span style="font-size: 8pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: Red;" class="mycode_color">اولاً :- ماهي جمل التكرار :- </span></span></span></span></span></span></div>
</span><br />
<br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size">جمل التكرار :- </span></span></span></span></div>
</span><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">باختصار هي جزء من البرنامج يتكرر</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فمثلاً اذا اردنا ان نضيف على الكومبو ال قائمة المنسادلة الارقام من </span></span></span></div>
</span><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">0</span></span></span></div>
</span><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"> إلى </span></span></span></div>
</span><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">100</span></span></span></div>
</span><br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فهل من المعقول ان نقوم بكتابة <span style="color: Red;" class="mycode_color">100 </span>سطر لاجل ذلك ؟؟<br />
بالطبع لا ....</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">---------------------------------------</span></span></span></div>
</span><br />
<span style="color: Purple;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
وسينتج لنا كود كبير جدأً وبدون اي فائدة منه :- مثل </span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: left;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]1[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]2[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]3[/color][COLOR=#007700])<br />
[/COLOR]</code></div></div><span style="color: #007700;" class="mycode_color"><br />
</span></span></span></span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #007700;" class="mycode_color"> .<br />
.<br />
.<br />
<br />
</span></span></span></span></div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Verdana][FONT=arial][b]<br />
[color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]99[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]ComboBox1[/color][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]100[/color][COLOR=#007700]) <br />
[/COLOR][/b][/FONT][/FONT]</code></div></div></div>
</span><span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الان سنجرب ان نضيف اليه الارقام ولكن باستخدام جملة التكرار <span style="color: Red;" class="mycode_color">for </span>مثلاً :-</span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]For [/color][color=#0000BB]i [/color][color=#007700]= [/color][COLOR=#0000BB]1 to 100<br />
ComboBox1[/COLOR][color=#007700].[/color][color=#0000BB]Items[/color][color=#007700].[/color][color=#0000BB]Add[/color][color=#007700]([/color][color=#0000BB]i[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]next [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: DarkSlateBlue;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">بهذه الكود هنا سوف يقوم بعمل اضافة للاعداد من <span style="color: DarkOrange;" class="mycode_color">1</span> إلى <span style="color: DarkOrange;" class="mycode_color">100 </span>ولا حظ ان كلمة <span style="color: Red;" class="mycode_color">next </span>تاتي مع حلقة <span style="color: Red;" class="mycode_color">for </span>دائماً </span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">---------------------------------------------</span></span></span></div>
</span><br />
<span style="color: DarkRed;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size"><br />
</span></span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: DarkRed;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">أقسام جمل التكرار:<br />
1-جمل التكرار باستخدام For..Next<br />
2-جمل التكرار باستخدام Do...Loop<br />
<br />
</span></span><br />
</span></span></span></div>
</span><span style="color: DarkOrchid;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">-------------------------------</span></span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">*******************************************</span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 7pt;" class="mycode_size">اولاً :- </span>جملة التكرار for --- next</span></span></span></div>
</span><br />
<br />
<span style="color: Green;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
يمكننا استخدام هذه الجملة عندما نريد تكرار التعليمة حسب المراد</span></span></span></div>
</span><br />
<br />
<span style="color: Teal;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فمثلاً كما في المثال السابق حدد انا نريد الارقام من <span style="color: Red;" class="mycode_color">1</span> إلى <span style="color: Red;" class="mycode_color">100 </span>وبهذا صار التكرار معلوماً لدينا</span></span></span></div>
</span><br />
<br />
<span style="color: DarkSlateGray;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">وتكون الصيغة العامة لجملة التكرار for .... next بالشكل التالي :-</span></span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Verdana][FONT=arial][b][COLOR=#007700]<br />
For [/COLOR][color=#0000BB]i [/color][color=#007700]= ([/color][color=#0000BB]ٍStartValue[/color][color=#007700]) [/color][color=#0000BB]to [/color][color=#007700]([/color][color=#0000BB]EndValue[/color][COLOR=#007700])<br />
[/COLOR][COLOR=#0000BB]Condition<br />
Next i <br />
[/COLOR][/b][/FONT][/FONT]</code></div></div></div>
<div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"> <br />
<span style="color: SeaGreen;" class="mycode_color">&gt;</span><br />
<br />
</span></span></span></div>
</span><span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">.......................<span style="color: Red;" class="mycode_color">/\/\/\/\\/\/\/</span>...........................</span></span></span></div>
</span><br />
<br />
<span style="color: Sienna;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size"><br />
مثلاً هذا الكود لاضافة مصفوفة جديدة ومن خلال جملة التكرار اريدها ان تضع الاسماء التي بداخل المصفوفة<br />
وتكتب في الكونسول</span></span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b] [COLOR=#0000BB]Dim *****rab[/color][color=#007700]() As [/color][color=#0000BB]String [/color][color=#007700]= {[/color][color=#DD0000]"lo2i"[/color][color=#007700], [/color][color=#DD0000]"ali"[/color][color=#007700], [/color][color=#DD0000]"mohammed"[/color][color=#007700], [/color][color=#DD0000]"samer"[/color][color=#007700], [/color][color=#DD0000]"some one"[/color][COLOR=#007700]}<br />
<br />
For [/COLOR][color=#0000BB]i [/color][color=#007700]= [/color][COLOR=#0000BB]0 To 4<br />
<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"the name is " [/color][color=#007700]&amp; [/color][color=#0000BB]*****rab[/color][color=#007700]([/color][color=#0000BB]i[/color][COLOR=#007700]))<br />
<br />
[/COLOR][COLOR=#0000BB]Next<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]ReadKey[/color][color=#007700]() [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">------------------------------------------</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: Sienna;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">قمنا بتعريف مصفوفة جديد وادخلنا فيها القيم التالية -</span></span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]{[/color][color=#DD0000]"lo2i"[/color][color=#007700], [/color][color=#DD0000]"ali"[/color][color=#007700], [/color][color=#DD0000]"mohammed"[/color][color=#007700], [/color][color=#DD0000]"samer"[/color][color=#007700], [/color][color=#DD0000]"some one"[/color][color=#007700]} [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: DarkOrange;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">استخدمنا الكلمة المحجوزة</span></span></span></span></div>
</span><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">for </span></span></span></div>
</span><br />
<br />
<br />
<span style="color: Green;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">قمنا بتنفيذ تكرار جديد واعطينا قيمة له هي ان يبدأ بالعد من الصفر وينتهي ب اربعة<br />
اي 0 1 2 3 4 اي خمس مرات</span></span></span></div>
</span><br />
<span style="color: DarkRed;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
الصفر رقم منفصل -<br />
الواحد رقم منفصل -<br />
الاثنين رقم منفصل -<br />
الثلاثة رقم منفصل -<br />
الاربعة رقم منفصل –<br />
</span></span></span></div>
</span><img src="https://vb4arb.com/vb/uploaded/203_01348387211.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348387211.jpg]" class="mycode_img" /><br />
<br />
<br />
<br />
<br />
<br />
<span style="color: YellowGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">يمكنك تجريب النتيجة بنفسك الان لعمل ذلك<br />
ولا حظ هنا اننا كتبنا هذا الكود</span></span></span></span><br />
</div>
</span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Console[/color][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"the name is " [/color][color=#007700]&amp; [/color][color=#0000BB]*****rab[/color][color=#007700]([/color][color=#0000BB]i[/color][color=#007700])) [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: DarkOrange;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">وهو الكود الذي سيقوم بتكرار نفسه خمس مرات على التوالي<br />
</span></span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 7pt;" class="mycode_size">ملاحظة هامة جداً :-</span></span></span></span></div>
</span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سيقوم تكرار العد على العداد الذي نقوم بتعريفه في جملة التكرار<br />
فمثلاً قيمة <span style="color: Red;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size">i</span></span><br />
لاول مرة سيكون <span style="color: Red;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size">0</span></span></span></span></span></div>
</span><br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وبعد وصوله للكلمة المحجوزة <span style="color: DarkRed;" class="mycode_color">next</span></span></span></span></div>
</span><br />
<span style="color: YellowGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سوف يعود لبداية التكرار<br />
بعد ان تصبح قيمته 2<br />
وهكذا حتى تصل إلى خمسة<br />
اذا وصل العداد إلى الرقم <span style="color: Green;" class="mycode_color">5</span> خرج من جملة التكرار<br />
وادى الاكواد التالية ...<br />
<br />
ولا تنسوا انه يمكننا الحصول على القيمة التي بداخل اي مصفوفة من خلال الكود التالي<br />
</span></span></span></div>
</span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Textbox1[/color][color=#007700].[/color][color=#0000BB]text [/color][color=#007700]= [/color][color=#0000BB]*****rab[/color][color=#007700]([/color][color=#0000BB]1[/color][color=#007700]) [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: Green;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وسيظهر لنا في التيكست اسم <span style="color: Red;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">lo2i</span></span></span></span></span></div>
</span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">طيب لماذا في جملة التكرار لم نقم بكتابة عدد داخل فهرس المصفوفة<br />
<br />
كما تلاحظون كتبنا داخل فهرس المصفوفة العداد <span style="color: Red;" class="mycode_color">i</span><br />
الذي عرفناه على انه جملة تكرار تبدأ من <span style="color: Red;" class="mycode_color">الصفر </span>وتنهي عند <span style="color: Red;" class="mycode_color">الاربعة</span><br />
</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">*********************************************</span></span></span></div>
</span><br />
<span style="color: DarkSlateGray;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
نعم المسألة بسيطة اكثر مما تتصور<br />
فكما قلنا ان العداد سوف يبدأ من القيمة صفر وهي اول قيمة في المصفوقة ايضاً<br />
لان المصفوفة كمان قيمها تبدأ من العدد ر قم صفر<br />
وعند وصوله اول مرة إلى كلمة <span style="color: Red;" class="mycode_color">next</span><br />
سوف يذهب إلى ال <span style="color: Red;" class="mycode_color">for</span><br />
وتكون قيمته <span style="color: Red;" class="mycode_color">1</span><br />
وسيعرض لنا القيمة الاولى في المصفوفة التي تأتي بعد الصفر<br />
وهكذا</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;</span></span></span></div>
</span><br />
<br />
<span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 4pt;" class="mycode_size">[SIZE=7]ثانياً :- </span>جملة التكرار Do...Loop[/SIZE]</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 5pt;" class="mycode_size">القسم الأول:توضيح الحلقة Do...Loop</span><br />
<br />
</span></span></span></div>
</span><br />
<span style="font-size: 4pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: SeaGreen;" class="mycode_color">هذا    التكرار لا يقيدنا بقيم البداية أو النهاية بل يتحدد فقط بتحقق الشرط    وبالنسبة للحلقة For..Next نحدد مقدار الزيادة أو النقصان في مقدار العداد<br />
</span></span></span></span></span></span></div>
</span><br />
<span style="font-size: 5pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الفرق بين ال <span style="color: Red;" class="mycode_color">for next </span></span></span></span></span></span></div>
</span><span style="font-size: 5pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">و </span></span></span></span></span></div>
</span><span style="font-size: 5pt;" class="mycode_size"><div style="text-align: center;" class="mycode_align"><span style="color: #222222;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: Red;" class="mycode_color">Do...Loop</span> </span></span></span></span></span></div>
</span><br />
<br />
<br />
<br />
<span style="color: Teal;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الفرق كما ذكرنا في التعريف ان جملة ال <span style="color: DarkOrange;" class="mycode_color">for next</span> قمنا بتحديد مقدار الاضافة ومقدار العداد له<br />
اما جملة التكرار <span style="color: DarkOrange;" class="mycode_color">do while</span> </span></span></span></div>
</span><br />
<br />
<span style="color: Magenta;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">فهي غير محددة وينتهي تكرارها بالاعتماد على الشرط التي اعطيته بها<br />
<br />
مثلاً في هذا الكود هنا<br />
</span></span></span></div>
</span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]For [/color][color=#0000BB]x [/color][color=#007700]= [/color][COLOR=#0000BB]o to 2<br />
Msgbox x<br />
Next [/COLOR]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: Blue;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ستظهر لنا ثلاث رسايل فيها التالي:-</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اقتباس:</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الاولى رقم 1</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الثانية رقم 2</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الثالثة رقم 3 </span></span></span></div>
</span><br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">واما الكود التالي لجملة التكرار ال </span></span></span></div>
</span><span style="color: Olive;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">do ..Loop</span></span></span></div>
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Dim x [/color][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
x [/COLOR][color=#007700]= [/color][COLOR=#0000BB]0<br />
[/COLOR][color=#007700]Do While [/color][color=#0000BB]Not x [/color][color=#007700]= [/color][COLOR=#0000BB]4<br />
MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]x[/color][COLOR=#007700])<br />
[/COLOR][color=#0000BB]x [/color][color=#007700]= [/color][color=#0000BB]x [/color][color=#007700]+ [/color][COLOR=#0000BB]1<br />
Loop [/COLOR]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">--------------------</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: Olive;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">سيقوم الكود التالي بطباعة المسج الرسالة <span style="color: Red;" class="mycode_color">msgbox 3</span> مرات على التوالي :<br />
<br />
وبهذا //؟ <img src="http://www.vb4arab.com/vb/images/smilies/redface.gif" loading="lazy"  alt="[صورة مرفقة: redface.gif]" class="mycode_img" /></span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اعتقد ان الفرق اصبح واضح الان</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">.................................................. .....................................</span></span></span></div>
</span><br />
<br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: Black;" class="mycode_color">القسم الثاني:جزأي الحلقة Do...Loop</span></span><br />
<br />
<br />
</span></span></span></div>
</span><br />
</div>
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><ul class="mycode_list"><li>[*=center]الحلقة Do While...Loop <br />
[*=center]الحلقة Do Until...Loop <br />
</li>
</ul>
</div>
</span></span></span></div>
</span><div style="text-align: center;" class="mycode_align">
</div>
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">أولا:الحلقة Do While...Loop<br />
باختصار تقوم هذه الحلقة بتنفيذ التعليمات المحتواة طالما تحقق الشرط وعند فشل الشرط تتوقف هذه الحلقة<br />
مثال بسيط:</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim I As Integer = 0 Do While I &lt; 10 Console.Write(I) I = I + 1 Console.WriteLine() Loop Console.ReadKey()</code></div></div><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"></span></span></span><div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
الآن سيقوم البرنامج باختبار الشرط عند اول عملية تنفيذ وسيرى أن الشرط قد    تحقق لان صفر اقل من عشرة وهكذا الى ان يصل الرقم تسعة فيزيد البرنامج 1    ويفشل الشرط وبهذا تنتهي الحلقة<br />
والناتج:<br />
</div>
<div style="text-align: left;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9</div>
<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
ثانيا:الحلقة Do Until...Loop<br />
تقوم هذه الحلقة بتنفيذ التعليمات داخل كتلة Do...Loop طالما لم يتحقق    الشرط وبمجرد تحققه تتوقف الحلقة(اذن كما نرى فهي تعمل عكس الحلقة Do    While...Loop<br />
مثال:</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim I As Integer = 0 Do Until I &gt;= 10 Console.Write(I) I = I + 1 Console.WriteLine() Loop Console.ReadKey()</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
كما نرى فان الشرط هو مضاد تماما للشرط في الحلقة السابقة لكن نتج نفس النتائج بالضبط!!كيف ذلك؟<br />
<br />
الآن ستبدأ الحلقة باختبار الشرط ووجده خاطئ لذلك ينفذ التعليمات الى ان    يتحقق الشرط وعندما يصل الرقم تسعة فبزيادة 1 تصبح عشرة وبالتالي يصبح    الشرط صحيحا وتتوقف الحلقة<br />
وناتج الحلقة هو</div>
<div style="text-align: left;" class="mycode_align"><div style="text-align: center;" class="mycode_align">
<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
<br />
<span style="font-size: 5pt;" class="mycode_size">القسم الثالث:الفحص قبل الحلقة أو بعد الحلقة</span><br />
<br />
<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align">الجزء الأول: الفحص المبدأي: Pre-Test<br />
يقوم البرنامج بفحص الشرط ثم ينفذ الحلقة بعد التحقق من صحة الشرط<br />
مثال: جميع أمثلة Do..Loop السابقة هي من هذا النوع من الفحص<br />
<br />
الجزء الثاني:الفحص بعد تنفيذ الحلقة: Posted-Test<br />
يقوم البرنامج بتنفيذ التعليمات لاول مرة ثم يقوم بعد تنفيذ التعليمات للمرة الأولى بفحص الشرط<br />
أي أنه ينفذ التعليمات لاول مرة بالرغم من صحة الشرط المعطى:<br />
مثال: نظام (هل تريد اعادة البرنامج في تطبيقات الكونسول)<br />
الآن سأوضح الفكرة بهذا الكود:<br />
<br />
</div>
<div style="text-align: left;" class="mycode_align"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=right][align=left][align=right][align=left][align=right][align=left][align=right][align=left][align=center][align=right][align=center]Dim&nbsp;&nbsp;&nbsp;&nbsp;again As String Do Console.Write("Do you Want to re-start The&nbsp;&nbsp;&nbsp;&nbsp;Program?(Y/N)") again = Console.ReadLine() Loop While (again = "Y" Or&nbsp;&nbsp;&nbsp;&nbsp;again = "y")<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]<br />
[/align]</code></div></div><div style="text-align: center;" class="mycode_align">
<br />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<span style="color: #000000;" class="mycode_color"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font">[b][/CODE]</span></span></span></span><br />
</div>
<div style="text-align: center;" class="mycode_align">
الآن نخبر البرنامج أول مرة أن يقوم بتنفيذ التعليمات وبعد ذلك يقوم    البرنامج بالتحقق من قيمة again التي أدخلناها وقت التنفيذ فاذا كانت تساوي    y أو Y فنخبره بتكرار الحلقة وان لم يكن يتخطى الحلقة<br />
</div>
</div>
[/b]</span></span></div>
</span><div style="text-align: center;" class="mycode_align"><span style="color: Red;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 8pt;" class="mycode_size">ثالثاً :-</span></span></span></span></div>
</span><br />
<span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
طبعاً النوع هذا لا يعتبر نوع بحد مايعتبر طريقة استثنائية ثانية<br />
فمثلاً اذا اردنا ان نقوم بتعبئة الكونسول <span style="color: Red;" class="mycode_color">10 </span>مرات <span style="color: Red;" class="mycode_color">ali</span><br />
بدون ذكر اي من الكلمات <span style="color: Red;" class="mycode_color">for </span>او <span style="color: Red;" class="mycode_color">do while</span><br />
فسنعمل طريقة التالية لتعبئة الكونسول بدون استخدام اي من جمل التكرار المعروفة<br />
وهذه هي الطريقة :_</span></span></span></div>
</span><br />
<br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][COLOR=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]<br />
Dim s [/COLOR][color=#007700]As [/color][COLOR=#0000BB]Integer<br />
<br />
s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]0<br />
lo2i[/COLOR][COLOR=#007700]:<br />
<br />
[/COLOR][color=#0000BB]s [/color][color=#007700]= [/color][color=#0000BB]s [/color][color=#007700]+ [/color][COLOR=#0000BB]1<br />
<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"ali"[/color][COLOR=#007700])<br />
<br />
If [/COLOR][color=#0000BB]s [/color][color=#007700]&lt; [/color][COLOR=#0000BB]5 Then GoTo lo2i<br />
<br />
Console[/COLOR][color=#007700].[/color][color=#0000BB]ReadKey[/color][color=#007700]() [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: SeaGreen;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">شرح الكود السابق :-</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الاول :-</span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB] Dim s [/color][color=#007700]As [/color][color=#0000BB]Integer [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">عرفنا متغير من نوع رقمي وللتعلم المزيد حول المتغيرات والثوابت ادخل هنا</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">****</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الثاني :-</span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]s [/color][color=#007700]= [/color][color=#0000BB]0 [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اسندنا قيمة للمتغير s وهي صفر .</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">*****</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الثالث :- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]lo2i[/color][color=#007700]: [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ماهذا </span></span></span></div>
</span><img src="http://www.vb4arab.com/vb/images/smilies/confused.gif" loading="lazy"  alt="[صورة مرفقة: confused.gif]" class="mycode_img" /><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"> ((سنشرحه بعد قليل))</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر الخامس :- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Console[/color][color=#007700].[/color][color=#0000BB]WriteLine[/color][color=#007700]([/color][color=#DD0000]"ali"[/color][color=#007700]) [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">الكود الذي تستطيع من خلاله كتابة اي شيء في الكونسول</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وهنا اخترنا اسم علي ali</span></span></span><br />
</div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">**********</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر السادس:- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#007700]If [/color][color=#0000BB]s [/color][color=#007700]&lt; [/color][color=#0000BB]5 Then GoTo lo2i [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">جملة شرطية واعتقد انها واضحة بعد ماقمت بقرأءة هذا الدرس هنا</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ومضمون هذه الحملة الشرطية انه اذا كانت قيمة المتعير s</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اذهب إلى كلمة لؤي lo2i</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">وابدأ بالقراءة من هناك ...</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">****************</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">السطر السابع :- </span></span></span></div>
</span><br />
<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[align=center][color=#000000][align=left][FONT=Verdana][FONT=arial][b][COLOR=#0000BB]Console[/color][color=#007700].[/color][color=#0000BB]ReadKey[/color][color=#007700]() [/color]<br />
[/b][/FONT][/FONT][/align]<br />
[/COLOR][/align]</code></div></div><div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">هذا الكود اذا لم تضعه فسوف تفتح لك شاشة الكونسول وتقفل بدون ان ترى اي شيء كتب فيها</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">لذلك يجب عليك ان تقوم بكتابته لكي تستطيع القراءة من الكونسول ...</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">**********</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">اي انه باستخدام جملة ال Goto</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">يمكنك البدء من سطر جديد في الكود ام من اجراء معين</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">ولا حظ ان كلمة Lo2i يكتب بعدها : نقطتان رئسيتان</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">كما هو موضح في الصورة التالية :-</span></span></span></div>
</span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align">
<img src="https://vb4arb.com/vb/uploaded/203_01348387331.jpg" loading="lazy"  alt="[صورة مرفقة: 203_01348387331.jpg]" class="mycode_img" /><br />
<br />
</div>
</span><br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=</span></span></span></div>
</span><br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-</span></span></span></div>
</span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-family: Verdana;" class="mycode_font"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">[b]<span style="font-size: 9pt;" class="mycode_size"><span style="color: Red;" class="mycode_color">يتبع</span></span></span>[/b]</span></span><br />
</div>
</span><br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(6):صنع القرار...الجزء الثاني-تكوين الشروط]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4358</link>
			<pubDate>Sat, 22 Sep 2012 20:45:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=6">Omar Mekkawy_mybb_import4421</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4358</guid>
			<description><![CDATA[<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: red;" class="mycode_color">بسم الله الرحمن الرحيم </span></span><br />
</div>
<span style="font-size: 4pt;" class="mycode_size"><span style="color: red;" class="mycode_color"><br />
تكوين الشروط (Condition)</span></span><br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: right;" class="mycode_align">
تحدثنا في الفصل السابق عن الجزء الأول من صنع القرار ..ألا وهو الجمل الشرطية.<br />
<a href="http://vb4arab.com/vb/showthread.php?t=36743" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b"><span style="color: #22229c;" class="mycode_color">الفصل(5):صنع القرار...الجزء الأول-الجمل الشرطية</span></span></a><br />
<br />
<br />
وفي هذا الموضوع ان شاء الله سنتحدث عن الجزء المكمل وهو كيف نكتب الشروط...<br />
وهذا الدرس ابسط من سابقه كثيرا ان شاء الله<br />
<br />
بشكل عام <br />
الشروط يمكن أن تكون مفردة أو مزدوجة<br />
كيف ؟<br />
جميع الحالات السابق كنا نقوم بفحص صحة شرط وحيد فقط لكن ماذا عن التحقق من شرطين أو أكثر ؟<br />
يمكن وبكل سهولة بواسطة الروابط المنطقية <span style="color: blue;" class="mycode_color">And Or Not</span> ..إلخ<br />
(تذكر أنك تتحدث مع الحاسوب وهو يفهمك قدر بلاغتك)<br />
<br />
أولا: المعامل(<span style="color: blue;" class="mycode_color">And</span>)<br />
عندما نريد تطبيق تعليمة مرتبطة بشرطين فيمكننا ذلك عبر المثال التالي:<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span>Condition1 <span style="color: blue;" class="mycode_color">And </span>Condition2 <span style="color: blue;" class="mycode_color">Then</span><br />
Statement<br />
<span style="color: blue;" class="mycode_color">End If</span><br />
<div style="text-align: right;" class="mycode_align">كما نرى فان التعليمة تنفذ ففي حال صحة الشرطين وفشل أحدهما يعطي نتيجة خاطئة لمجمل الشرطين(ارجع لجدول الصحة)<br />
أي انه بفشل الشرط الأول فالبرغم من صحة الثاني فإن المجمل خاطئي ولا تطبق التعليمة والعكس صحيح<br />
وبصحة الشرطين فان يكون المجمل صحيح وتطبق التعليمة<br />
<br />
<div style="text-align: left;" class="mycode_align">Truth Table For (<span style="color: blue;" class="mycode_color">And</span> Logical Operator)<br />
________________________________<br />
<div style="text-align: left;" class="mycode_align">Condition1-------Condition2-------Result<br />
</div>
________________________________<br />
True-------------True--------------True<br />
True-------------False-------------False<br />
False------------True--------------False<br />
False----------- False------------- False<br />
________________________________<br />
<div style="text-align: right;" class="mycode_align">ثانيا:المعامل <span style="color: blue;" class="mycode_color">Or</span><br />
عندما نريد تطبيق تعليمة مرتبطة بصحة واحد على الاقل من شرطين فاننا نستخدم المعامل Or<br />
أي أنه يكفي صحة أحد الشرطين فقط لتطبيق التعليمة<br />
أنظر جدول الصحة الخاص بالمعامل <span style="color: blue;" class="mycode_color">Or</span><br />
<div style="text-align: left;" class="mycode_align">Truth Table For (<span style="color: blue;" class="mycode_color">Or </span>Logical Operator)<br />
________________________________<br />
Condition1-------Condition2-------Result<br />
________________________________<br />
True-------------True--------------True<br />
True-------------False-------------True<br />
False------------True--------------True<br />
False----------- False------------- False<br />
________________________________<br />
<div style="text-align: right;" class="mycode_align">وكما نرى فان فشل الشرطين معا يؤدي لفشل المجمل بالكامل<br />
<br />
ثالثا: المعامل <span style="color: blue;" class="mycode_color">Not</span><br />
عندما مريد تطبيق تعليمة مرتبطة بفشل الشرط نستخدم المعامل Not<br />
أي أن مجمل الشرط صحيح عندما يكون الشرط داخل <span style="color: blue;" class="mycode_color">Not </span>خاطئ<br />
انظر جدول الصحة الخاص يالمعامل <span style="color: blue;" class="mycode_color">Not</span><br />
<div style="text-align: left;" class="mycode_align">Truth Table For (<span style="color: blue;" class="mycode_color">Not </span>Logical Operator)<br />
____________________<br />
Condition-------Result<br />
____________________<br />
True-------------False<br />
False-------------True<br />
____________________<br />
<br />
<div style="text-align: right;" class="mycode_align">رابعا:المعامل <span style="color: blue;" class="mycode_color">AndAlso</span><br />
<br />
لا تختلف عن المعامل <span style="color: blue;" class="mycode_color">And </span>كثيرا لكن هناك فرق جوهري بينهما <br />
المعامل And بالرغم من فشل الشرط الأول فانه يتحقق من الشرط الثاني والنتيجة عرفت مسبقا بالفشل وبهذا عملية اضافية لا داعي لها<br />
المعامل <span style="color: blue;" class="mycode_color">AndAlso </span>عندما يفشل الشرط الأول فانه يتخطى الشرط الثاني معلنا فشل المجمل بالرغم من نتيجة الشرط الآخر<br />
<br />
خامسا:المعامل <span style="color: blue;" class="mycode_color">OrElse </span><br />
لا تختلف عن المعامل <span style="color: blue;" class="mycode_color">Or </span>كثيرا لكن هناك فرق جوهري بينهما<br />
المعامل <span style="color: blue;" class="mycode_color">Or </span>بالرغم من صحة الشرط الأول فانه يتحقق من الشرط الثاني والنتيجة عرفت مسبقا بصحة المجمل وبهذا عملية اضافية لا داعي منها<br />
المعامل <span style="color: blue;" class="mycode_color">OrElse </span>عندما يتأكد من صحة الشرط الأول فانه يتخطى الشرط الثاني معلنا صحة المجمل بالرغم من نتيجة الشرط الثاني<br />
<br />
<br />
مسألة أخيرة:<br />
هل لاحظت يوما في أحد المصادر الكود التالي:<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span>x <span style="color: blue;" class="mycode_color">Then </span>statement<br />
<div style="text-align: right;" class="mycode_align">فقد راينا أن الشرط هنا لا يحمل معنى المقارنة اذن كيف يتم التحقق من صحة الشرط من فشله<br />
دعنا نرجع قليلا الى المتغيرات وانواعها: كما نعرف فان هناك متغيرات من النوع <span style="color: blue;" class="mycode_color">Boolean</span>(منطقي)<br />
والآن أيضا دعنا نركز في الشروط التي شرحناها مسبقا فكل الشروط تخرج بنتيجة <span style="color: blue;" class="mycode_color">True </span>او <span style="color: blue;" class="mycode_color">False </span><br />
وهذا ما حدث مع المتغير X فقد تم الاعلان عنه كمتغير منطقي وبهذا تكون قيمته اما <span style="color: blue;" class="mycode_color">True </span>او <span style="color: blue;" class="mycode_color">False</span>(هونها بتهون..!!)<br />
===================================<br />
نرجو ان نكون قد افدناكم<br />
<br />
أبلغكم تحياتنا<br />
<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و <a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a><br />
انتظروا الدرس القادم<br />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: right;" class="mycode_align"><div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: red;" class="mycode_color">بسم الله الرحمن الرحيم </span></span><br />
</div>
<span style="font-size: 4pt;" class="mycode_size"><span style="color: red;" class="mycode_color"><br />
تكوين الشروط (Condition)</span></span><br />
<div style="text-align: center;" class="mycode_align"><div style="text-align: right;" class="mycode_align">
تحدثنا في الفصل السابق عن الجزء الأول من صنع القرار ..ألا وهو الجمل الشرطية.<br />
<a href="http://vb4arab.com/vb/showthread.php?t=36743" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b"><span style="color: #22229c;" class="mycode_color">الفصل(5):صنع القرار...الجزء الأول-الجمل الشرطية</span></span></a><br />
<br />
<br />
وفي هذا الموضوع ان شاء الله سنتحدث عن الجزء المكمل وهو كيف نكتب الشروط...<br />
وهذا الدرس ابسط من سابقه كثيرا ان شاء الله<br />
<br />
بشكل عام <br />
الشروط يمكن أن تكون مفردة أو مزدوجة<br />
كيف ؟<br />
جميع الحالات السابق كنا نقوم بفحص صحة شرط وحيد فقط لكن ماذا عن التحقق من شرطين أو أكثر ؟<br />
يمكن وبكل سهولة بواسطة الروابط المنطقية <span style="color: blue;" class="mycode_color">And Or Not</span> ..إلخ<br />
(تذكر أنك تتحدث مع الحاسوب وهو يفهمك قدر بلاغتك)<br />
<br />
أولا: المعامل(<span style="color: blue;" class="mycode_color">And</span>)<br />
عندما نريد تطبيق تعليمة مرتبطة بشرطين فيمكننا ذلك عبر المثال التالي:<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span>Condition1 <span style="color: blue;" class="mycode_color">And </span>Condition2 <span style="color: blue;" class="mycode_color">Then</span><br />
Statement<br />
<span style="color: blue;" class="mycode_color">End If</span><br />
<div style="text-align: right;" class="mycode_align">كما نرى فان التعليمة تنفذ ففي حال صحة الشرطين وفشل أحدهما يعطي نتيجة خاطئة لمجمل الشرطين(ارجع لجدول الصحة)<br />
أي انه بفشل الشرط الأول فالبرغم من صحة الثاني فإن المجمل خاطئي ولا تطبق التعليمة والعكس صحيح<br />
وبصحة الشرطين فان يكون المجمل صحيح وتطبق التعليمة<br />
<br />
<div style="text-align: left;" class="mycode_align">Truth Table For (<span style="color: blue;" class="mycode_color">And</span> Logical Operator)<br />
________________________________<br />
<div style="text-align: left;" class="mycode_align">Condition1-------Condition2-------Result<br />
</div>
________________________________<br />
True-------------True--------------True<br />
True-------------False-------------False<br />
False------------True--------------False<br />
False----------- False------------- False<br />
________________________________<br />
<div style="text-align: right;" class="mycode_align">ثانيا:المعامل <span style="color: blue;" class="mycode_color">Or</span><br />
عندما نريد تطبيق تعليمة مرتبطة بصحة واحد على الاقل من شرطين فاننا نستخدم المعامل Or<br />
أي أنه يكفي صحة أحد الشرطين فقط لتطبيق التعليمة<br />
أنظر جدول الصحة الخاص بالمعامل <span style="color: blue;" class="mycode_color">Or</span><br />
<div style="text-align: left;" class="mycode_align">Truth Table For (<span style="color: blue;" class="mycode_color">Or </span>Logical Operator)<br />
________________________________<br />
Condition1-------Condition2-------Result<br />
________________________________<br />
True-------------True--------------True<br />
True-------------False-------------True<br />
False------------True--------------True<br />
False----------- False------------- False<br />
________________________________<br />
<div style="text-align: right;" class="mycode_align">وكما نرى فان فشل الشرطين معا يؤدي لفشل المجمل بالكامل<br />
<br />
ثالثا: المعامل <span style="color: blue;" class="mycode_color">Not</span><br />
عندما مريد تطبيق تعليمة مرتبطة بفشل الشرط نستخدم المعامل Not<br />
أي أن مجمل الشرط صحيح عندما يكون الشرط داخل <span style="color: blue;" class="mycode_color">Not </span>خاطئ<br />
انظر جدول الصحة الخاص يالمعامل <span style="color: blue;" class="mycode_color">Not</span><br />
<div style="text-align: left;" class="mycode_align">Truth Table For (<span style="color: blue;" class="mycode_color">Not </span>Logical Operator)<br />
____________________<br />
Condition-------Result<br />
____________________<br />
True-------------False<br />
False-------------True<br />
____________________<br />
<br />
<div style="text-align: right;" class="mycode_align">رابعا:المعامل <span style="color: blue;" class="mycode_color">AndAlso</span><br />
<br />
لا تختلف عن المعامل <span style="color: blue;" class="mycode_color">And </span>كثيرا لكن هناك فرق جوهري بينهما <br />
المعامل And بالرغم من فشل الشرط الأول فانه يتحقق من الشرط الثاني والنتيجة عرفت مسبقا بالفشل وبهذا عملية اضافية لا داعي لها<br />
المعامل <span style="color: blue;" class="mycode_color">AndAlso </span>عندما يفشل الشرط الأول فانه يتخطى الشرط الثاني معلنا فشل المجمل بالرغم من نتيجة الشرط الآخر<br />
<br />
خامسا:المعامل <span style="color: blue;" class="mycode_color">OrElse </span><br />
لا تختلف عن المعامل <span style="color: blue;" class="mycode_color">Or </span>كثيرا لكن هناك فرق جوهري بينهما<br />
المعامل <span style="color: blue;" class="mycode_color">Or </span>بالرغم من صحة الشرط الأول فانه يتحقق من الشرط الثاني والنتيجة عرفت مسبقا بصحة المجمل وبهذا عملية اضافية لا داعي منها<br />
المعامل <span style="color: blue;" class="mycode_color">OrElse </span>عندما يتأكد من صحة الشرط الأول فانه يتخطى الشرط الثاني معلنا صحة المجمل بالرغم من نتيجة الشرط الثاني<br />
<br />
<br />
مسألة أخيرة:<br />
هل لاحظت يوما في أحد المصادر الكود التالي:<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span>x <span style="color: blue;" class="mycode_color">Then </span>statement<br />
<div style="text-align: right;" class="mycode_align">فقد راينا أن الشرط هنا لا يحمل معنى المقارنة اذن كيف يتم التحقق من صحة الشرط من فشله<br />
دعنا نرجع قليلا الى المتغيرات وانواعها: كما نعرف فان هناك متغيرات من النوع <span style="color: blue;" class="mycode_color">Boolean</span>(منطقي)<br />
والآن أيضا دعنا نركز في الشروط التي شرحناها مسبقا فكل الشروط تخرج بنتيجة <span style="color: blue;" class="mycode_color">True </span>او <span style="color: blue;" class="mycode_color">False </span><br />
وهذا ما حدث مع المتغير X فقد تم الاعلان عنه كمتغير منطقي وبهذا تكون قيمته اما <span style="color: blue;" class="mycode_color">True </span>او <span style="color: blue;" class="mycode_color">False</span>(هونها بتهون..!!)<br />
===================================<br />
نرجو ان نكون قد افدناكم<br />
<br />
أبلغكم تحياتنا<br />
<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و <a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a><br />
انتظروا الدرس القادم<br />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(5):صنع القرار...الجزء الأول-الجمل الشرطية]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4357</link>
			<pubDate>Sat, 22 Sep 2012 20:41:53 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=6">Omar Mekkawy_mybb_import4421</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4357</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: red;" class="mycode_color">السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم</span></span><br />
</div>
<br />
سنتحدث اليوم عن قضية هامة جدا في البرمجة وهي صنع القرار .<br />
<span style="color: red;" class="mycode_color">صنع القرار</span> : توجيه سير البرنامج عند الوصول لنتيجة معينة.<br />
<br />
يتم ذلك عن طريق الجمل الشرطية والتي تنقسم لقسمين:<br />
<br />
<ol type="1" class="mycode_list"><li>الجمل الشرطية باستخدام الكلمة المحجوزة If<br />
</li>
<li>الجمل الشرطية باستخدام الكلمتان المحجوزتان Select Case<br />
</li>
</ol>
أولاً:الجمل الشرطية باستخدام If<br />
للتوضيح:يقصد ب <span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span>الشرط قيد الفحص<br />
و <span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement </span></span>التعليمة التي يتم تنفيذها عند تحقيق الشرط<br />
يمكن استخدام القاعدة If باكثر من صورة:<br />
التصنيف الأول - من حيث التركيب:<br />
<br />
1)<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement</span></span><br />
</div>
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمة بعد Then وان فشل الشرط يتم تخطيها<br />
<div style="text-align: left;" class="mycode_align">
</div>
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark &gt; 90 Then Result = "Very Good"</code></div></div><div style="text-align: right;" class="mycode_align">2)<br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمة داخل الIf وان فشل الشرط يتم تخطيها<br />
<span style="color: black;" class="mycode_color">مثال:<br />
</span><div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark&gt;90 ThenResult = "Very Good"End If</code></div></div><div style="text-align: right;" class="mycode_align">3)<br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement3</span></span><br />
<br />
....<br />
....<br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
<div style="text-align: right;" class="mycode_align">وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمات داخل الIf وان فشل الشرط يتم تخطيها</div>
<br />
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark&gt;90 ThenResult1="Very"Result2="Good"Result=Result1+Result2End If</code></div></div><div style="text-align: right;" class="mycode_align">4)<br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">Else</span></span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement3</span></span><br />
....<br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
وهنا نخبر البرنامج انه في حال صحة الشرط يتم تطبيق التعليمات <span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement1 </span></span>و <span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement2</span></span><br />
وفي حال فشل الشرط يتم تنفيذ التعليمات بعد Else وهي تستخدم لتنفيذ التعليمات التي تحتضنها في حال فشل الشروط السابقة لها.<br />
ملاحظة:Else تعني غير<br />
<br />
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark&gt;50 ThenResult="Successful"ElseResult="Not Successful"End If</code></div></div><div style="text-align: right;" class="mycode_align">5) <br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition1 </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">ElseIf <span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition2</span></span></span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span><br />
<span style="color: blue;" class="mycode_color">Else </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement3</span></span><br />
....<br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
وهنا نخبر البرنامج انه اذا تأكد من صحة الشرط الأول يتم تنفيذ ما بعد Then في نفس سطر الشرط إلى أن تنتهي بابتداء الشرط الآخر وهكذا مع بقية الشروط في حال فشل الشروط السالقة وصولا الى Else والتي تنفذ في حال فشل كل الشروط السابقة<br />
<br />
التصنيف الثاني-من حيث التوزيع:<br />
1) في سطر واحد:<br />
<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement</span></span><br />
<span style="color: blue;" class="mycode_color">If </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1 </span></span>: <span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement2 </span></span>:.....<br />
<span style="color: blue;" class="mycode_color">If </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement1 </span></span><span style="color: blue;" class="mycode_color">Else </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span></div>
حيث في الصورة الثانية بتحقق الشروط يتم تنفيذ التعليمات المرتبطة ويتم الفصل بينها بعلامة ":"<br />
أما في الصورة الثالثة فتعادل الصورة رقم 4 في التصنيف الأول<br />
2) في أكثر من سطر:<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Condition </span></span><span style="color: blue;" class="mycode_color">Then</span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement</span></span><br />
<span style="color: blue;" class="mycode_color">End If</span><br />
</div>
<br />
<br />
وباقي الحالات في التصنيف العلوي ما عدا الرقم واحد ينطبق عليها تصنيف اكثر من سطر<br />
كما في الامثلة السابقة<br />
ملاحظة مهمة: في حال تعدد الاسطر علينا انهاء كتلة الشرط If ب End If لكي يستطيع المترجم تحديد نهابة كتلة If<br />
<br />
مثال يوضح قاعدة If وهو حساب معدل ثلاث علامات وعرض النتيجة<br />
1) قم بانشاء مشروع جديد من نوع Windows Application بلغة فيجوال بيسك دوت نت<br />
2) أضف ثلاث صناديق نص (TextBox) للنموذج واضف زر تحكم Button وأداتان تسمية Label.<br />
3)أعد ضبط الخصائص <br />
<div style="text-align: center;" class="mycode_align">
</div>
<br />
4) اضغط ضغطا مزدوجا على زر التحكم Button ليتم ادخال الكود في حدث من احداثه والحدث الافتراضي له هو Click<br />
<div style="text-align: left;" class="mycode_align">
        <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Mark1, Mark2, Mark3, Total As Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Abrave As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark1 = Integer.Parse(TextBox1.Text)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark2 = Integer.Parse(TextBox2.Text)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark3 = Integer.Parse(TextBox3.Text)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total = Mark1 + Mark2 + Mark3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abrave = (Total / 3)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label1.Text = Abrave.ToString<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Abrave &gt; 90 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "ممتاز"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 80 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "جيد جدا"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 70 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "جيد"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 60 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "متوسط"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 50 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "مقبول"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "راسب"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If</code></div></div><div style="text-align: right;" class="mycode_align">الآن قمنا بحجز اربع وتغيرات من النوع Integer وهم الثلاث علامات ومجموعهم وقمنا بحجز متغير آخر من النوع Double وهو المعدل لانه من المتوقع أن يحمل المعدل كسور عشرية<br />
</div>
</div>
لعلك لاحظت جديد في الكود وهو الدالة<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Integer.Parse(String)</code></div></div><div style="text-align: right;" class="mycode_align">كما نعلم فان القيم التي يتم ادخالها لمربع النص TextBox تكون على شكل نص وهنا لا نحتاجها كنص بل نريدها عدد صحيح وهي تعمل عكس عمل .ToString وتقوم بتغيير نوع المدخل من نص إلى رقم صحيح<br />
</div>
</div>
<br />
ملاحظة:كتلة If هي كتلة متداخلة(Nested)<br />
ثانيا: الجمل الشرطية باستخدام Select Case<br />
لا تختلف قاعدة Select Case كثيرا عن قاعدة If من ناحية الوظيف لكن لكل حادث حديث<br />
كيف يمكننا استخدام Select Case<br />
1)<br />
يمكننا استخدام لمقارنة قيمة واحدة <br />
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim X As Integer = 20Select Case XCase 20 MsgBox("القيمة هي 20")Case ElseMsgBox("القيمة غير 20")End Select</code></div></div><div style="text-align: right;" class="mycode_align">وهنا قمنا باختبار هل المتغير X يحمل القيمة 20 أم لا<br />
<br />
</div>
</div>
<br />
2)<br />
مقارنة مدى معين<br />
تمعن في المثال التالي:<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case X<br />
Case Is &gt;= 90&nbsp;&nbsp;<br />
Result = "ممتاز"<br />
Case 80 To 89<br />
Result = "جيد جدا"<br />
Case 70 To 79<br />
Result = "جيد"<br />
Case 60 To 69<br />
Result = "متوسط"<br />
Case 50 To 59<br />
Result = "مقبول"<br />
Case Else<br />
Result="راسب"<br />
End Select</code></div></div><div style="text-align: right;" class="mycode_align">الآن نستطيع القول اننا انتهينا من الجمل الشرط بنوعيها الرئيسين والآن انتظروا الجزء الثاني في الفصل القادم -ان شاء الله-<br />
<br />
أبلغكم تحياتنا<br />
<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و <a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a><br />
انتظروا الدرس القادم<br />
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 4pt;" class="mycode_size"><span style="color: red;" class="mycode_color">السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم</span></span><br />
</div>
<br />
سنتحدث اليوم عن قضية هامة جدا في البرمجة وهي صنع القرار .<br />
<span style="color: red;" class="mycode_color">صنع القرار</span> : توجيه سير البرنامج عند الوصول لنتيجة معينة.<br />
<br />
يتم ذلك عن طريق الجمل الشرطية والتي تنقسم لقسمين:<br />
<br />
<ol type="1" class="mycode_list"><li>الجمل الشرطية باستخدام الكلمة المحجوزة If<br />
</li>
<li>الجمل الشرطية باستخدام الكلمتان المحجوزتان Select Case<br />
</li>
</ol>
أولاً:الجمل الشرطية باستخدام If<br />
للتوضيح:يقصد ب <span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span>الشرط قيد الفحص<br />
و <span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement </span></span>التعليمة التي يتم تنفيذها عند تحقيق الشرط<br />
يمكن استخدام القاعدة If باكثر من صورة:<br />
التصنيف الأول - من حيث التركيب:<br />
<br />
1)<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement</span></span><br />
</div>
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمة بعد Then وان فشل الشرط يتم تخطيها<br />
<div style="text-align: left;" class="mycode_align">
</div>
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark &gt; 90 Then Result = "Very Good"</code></div></div><div style="text-align: right;" class="mycode_align">2)<br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمة داخل الIf وان فشل الشرط يتم تخطيها<br />
<span style="color: black;" class="mycode_color">مثال:<br />
</span><div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark&gt;90 ThenResult = "Very Good"End If</code></div></div><div style="text-align: right;" class="mycode_align">3)<br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement3</span></span><br />
<br />
....<br />
....<br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
<div style="text-align: right;" class="mycode_align">وهنا اذا تأكد البرنامج من صحة الشرط يتم تنفيذ التعليمات داخل الIf وان فشل الشرط يتم تخطيها</div>
<br />
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark&gt;90 ThenResult1="Very"Result2="Good"Result=Result1+Result2End If</code></div></div><div style="text-align: right;" class="mycode_align">4)<br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">Else</span></span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement3</span></span><br />
....<br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
وهنا نخبر البرنامج انه في حال صحة الشرط يتم تطبيق التعليمات <span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement1 </span></span>و <span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement2</span></span><br />
وفي حال فشل الشرط يتم تنفيذ التعليمات بعد Else وهي تستخدم لتنفيذ التعليمات التي تحتضنها في حال فشل الشروط السابقة لها.<br />
ملاحظة:Else تعني غير<br />
<br />
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>If Mark&gt;50 ThenResult="Successful"ElseResult="Not Successful"End If</code></div></div><div style="text-align: right;" class="mycode_align">5) <br />
</div>
<br />
<span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition1 </span></span><span style="color: blue;" class="mycode_color">Then </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1</span></span><br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">ElseIf <span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition2</span></span></span></span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span><br />
<span style="color: blue;" class="mycode_color">Else </span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement3</span></span><br />
....<br />
<span style="color: teal;" class="mycode_color"><span style="color: blue;" class="mycode_color">End If</span></span><br />
</div>
وهنا نخبر البرنامج انه اذا تأكد من صحة الشرط الأول يتم تنفيذ ما بعد Then في نفس سطر الشرط إلى أن تنتهي بابتداء الشرط الآخر وهكذا مع بقية الشروط في حال فشل الشروط السالقة وصولا الى Else والتي تنفذ في حال فشل كل الشروط السابقة<br />
<br />
التصنيف الثاني-من حيث التوزيع:<br />
1) في سطر واحد:<br />
<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement</span></span><br />
<span style="color: blue;" class="mycode_color">If </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement1 </span></span>: <span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement2 </span></span>:.....<br />
<span style="color: blue;" class="mycode_color">If </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Condition </span></span><span style="color: blue;" class="mycode_color">Then </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Statement1 </span></span><span style="color: blue;" class="mycode_color">Else </span><span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement2</span></span></div>
حيث في الصورة الثانية بتحقق الشروط يتم تنفيذ التعليمات المرتبطة ويتم الفصل بينها بعلامة ":"<br />
أما في الصورة الثالثة فتعادل الصورة رقم 4 في التصنيف الأول<br />
2) في أكثر من سطر:<br />
<div style="text-align: left;" class="mycode_align"><span style="color: blue;" class="mycode_color">If </span><span style="font-style: italic;" class="mycode_i"><span style="color: teal;" class="mycode_color">Condition </span></span><span style="color: blue;" class="mycode_color">Then</span><br />
<span style="color: teal;" class="mycode_color"><span style="font-style: italic;" class="mycode_i">Statement</span></span><br />
<span style="color: blue;" class="mycode_color">End If</span><br />
</div>
<br />
<br />
وباقي الحالات في التصنيف العلوي ما عدا الرقم واحد ينطبق عليها تصنيف اكثر من سطر<br />
كما في الامثلة السابقة<br />
ملاحظة مهمة: في حال تعدد الاسطر علينا انهاء كتلة الشرط If ب End If لكي يستطيع المترجم تحديد نهابة كتلة If<br />
<br />
مثال يوضح قاعدة If وهو حساب معدل ثلاث علامات وعرض النتيجة<br />
1) قم بانشاء مشروع جديد من نوع Windows Application بلغة فيجوال بيسك دوت نت<br />
2) أضف ثلاث صناديق نص (TextBox) للنموذج واضف زر تحكم Button وأداتان تسمية Label.<br />
3)أعد ضبط الخصائص <br />
<div style="text-align: center;" class="mycode_align">
</div>
<br />
4) اضغط ضغطا مزدوجا على زر التحكم Button ليتم ادخال الكود في حدث من احداثه والحدث الافتراضي له هو Click<br />
<div style="text-align: left;" class="mycode_align">
        <div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Mark1, Mark2, Mark3, Total As Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Abrave As Double<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark1 = Integer.Parse(TextBox1.Text)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark2 = Integer.Parse(TextBox2.Text)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Mark3 = Integer.Parse(TextBox3.Text)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Total = Mark1 + Mark2 + Mark3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Abrave = (Total / 3)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label1.Text = Abrave.ToString<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If Abrave &gt; 90 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "ممتاز"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 80 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "جيد جدا"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 70 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "جيد"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 60 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "متوسط"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ElseIf Abrave &gt; 50 Then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "مقبول"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Label2.Text = "راسب"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If</code></div></div><div style="text-align: right;" class="mycode_align">الآن قمنا بحجز اربع وتغيرات من النوع Integer وهم الثلاث علامات ومجموعهم وقمنا بحجز متغير آخر من النوع Double وهو المعدل لانه من المتوقع أن يحمل المعدل كسور عشرية<br />
</div>
</div>
لعلك لاحظت جديد في الكود وهو الدالة<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Integer.Parse(String)</code></div></div><div style="text-align: right;" class="mycode_align">كما نعلم فان القيم التي يتم ادخالها لمربع النص TextBox تكون على شكل نص وهنا لا نحتاجها كنص بل نريدها عدد صحيح وهي تعمل عكس عمل .ToString وتقوم بتغيير نوع المدخل من نص إلى رقم صحيح<br />
</div>
</div>
<br />
ملاحظة:كتلة If هي كتلة متداخلة(Nested)<br />
ثانيا: الجمل الشرطية باستخدام Select Case<br />
لا تختلف قاعدة Select Case كثيرا عن قاعدة If من ناحية الوظيف لكن لكل حادث حديث<br />
كيف يمكننا استخدام Select Case<br />
1)<br />
يمكننا استخدام لمقارنة قيمة واحدة <br />
مثال:<br />
<div style="text-align: left;" class="mycode_align">
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim X As Integer = 20Select Case XCase 20 MsgBox("القيمة هي 20")Case ElseMsgBox("القيمة غير 20")End Select</code></div></div><div style="text-align: right;" class="mycode_align">وهنا قمنا باختبار هل المتغير X يحمل القيمة 20 أم لا<br />
<br />
</div>
</div>
<br />
2)<br />
مقارنة مدى معين<br />
تمعن في المثال التالي:<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Select Case X<br />
Case Is &gt;= 90&nbsp;&nbsp;<br />
Result = "ممتاز"<br />
Case 80 To 89<br />
Result = "جيد جدا"<br />
Case 70 To 79<br />
Result = "جيد"<br />
Case 60 To 69<br />
Result = "متوسط"<br />
Case 50 To 59<br />
Result = "مقبول"<br />
Case Else<br />
Result="راسب"<br />
End Select</code></div></div><div style="text-align: right;" class="mycode_align">الآن نستطيع القول اننا انتهينا من الجمل الشرط بنوعيها الرئيسين والآن انتظروا الجزء الثاني في الفصل القادم -ان شاء الله-<br />
<br />
أبلغكم تحياتنا<br />
<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و <a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a><br />
انتظروا الدرس القادم<br />
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(4): المصفوفات]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4355</link>
			<pubDate>Sat, 22 Sep 2012 20:24:14 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=6">Omar Mekkawy_mybb_import4421</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4355</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align">السلام عليكم إخواني الكرام <br />
<span style="color: #333333;" class="mycode_color">كيف حالكم ؟ </span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">هذا الموضوع ملك للأستاذ </span><a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #840084;" class="mycode_color">Mohammed Asaad</span></a><span style="color: #ff0000;" class="mycode_color"> وقد طلبت منه أن أنقل مشاركاته ووافق بحمد الله</span><img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
<br />
السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم<br />
<div style="text-align: right;" class="mycode_align">درسنا لليوم ان شاء الله سيتحدث عن المصفوفات(من الموضوعات ذات الأهمية الكبرى في عالم البرمجة)<br />
<br />
______________<br />
<span style="color: red;" class="mycode_color">ملاحظة:</span> الموضوع ليس موضوعي بل موضوع اخي وحبييبي لؤي لكن مجرد اضافة بسيطة رفض رفضا قاطعا انو ينزله والشكر اولا واخير لاخي لؤي <br />
_____________<br />
<br />
<br />
<br />
بداية اعلم عزيزي أن المصفوفة عبارة عن مجموعة من المتغيرات التي تحمل عدة قيم تحت مسمى واحد بطريقة مفهرسة<br />
<br />
سوف نقوم بشرح هذا الفصل تحت مشروع الConsole<br />
قم بفتح مشروع Console جديد وسوف نوضح تعريفنا السابق...<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Sub Main()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Days(6) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(0) = "Saturday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(1) = "Sunday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(2) = "Monday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(3) = "Tuesday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(4) = "Wednesday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(5) = "Thursday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(6) = "Friday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To 6 Step 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write(Days(i))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey()<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div><br />
مداخلة: بالنسبة لبعض الأكواد<br />
الامر<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Console.Write(String)</code></div></div><br />
يقوم بقنص النص المدخل وعرضه على الشاشة<br />
<br />
الأمر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Console.WriteLine()</code></div></div><br />
<div style="text-align: right;" class="mycode_align">يقوم بطباعة سطر جديد<br />
<br />
الأمر<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Console.ReadKey()</code></div></div><br />
يقوم بقنص مفاتيح الكيبورد لتنفيذ ما بعده<br />
<br />
بالنسبة للحلقة باستخدام For سوف <br />
نضع لها فصلا كاملا ان شاء الله في القريب<br />
كذلك مشروع الConsole سنوضحه في فصل <br />
كامل وباختصار هو يستخدم للاشياء البسيطة كدرسنا كما يستخدم في العمليات الخفيفة <br />
كالنسخ والحذف وما الى ذلك...<br />
<br />
الآن كما نرى فاننا قمنا بحجز مصفوفة كنص باسم Days و وجعلنا عناصرها 7 <br />
عناصر...كيف؟؟<br />
في فيجوال بيسك دوت نت نعلن عن المصفوفة بالشكل التالي:<br />
<br />
Dim Array(n) As Type<br />
<br />
بحيث أن عدد عناصر المصفوفة يساوي n+1<br />
والآن هل لاحظت أن أول عنصر تبدأ فهرسته <br />
من صفر<br />
لعلك عرفت أن n ترمز إلى فهرس المصفوفة<br />
فإذا أردنا استخراج أو اسناد <br />
قيمة للعنصر(النوني n ) في المصفوفة فنرمز له باسم المصفوفة وبداخل القوسين العدد <br />
n-1<br />
باختصار: كما رأينا المصفوفة عبارة عن (متغير أو ثابت) يحمل عدة قيم بسحب <br />
المحجوز من البداية...<br />
<br />
<br />
الآن فلنتعمق أكثر(لكن لن نغرق باذن <br />
الله)<br />
المصفوفات لا تقتصر على ما شرحناه فهي اكبر من ذلك ... والآن سندخل في <br />
أنواع المصفوفات<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
<div style="text-align: center;" class="mycode_align"><span style="font-size: 7pt;" class="mycode_size"><span style="color: red;" class="mycode_color">أنواع المصفوفات<br />
</span></span> :eek: (مش للهدرجة....هونها <br />
بتهون)<br />
</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">الآن تقسم المصفوفات الى أكثر من نوع:<br />
<br />
<ul class="mycode_list"><li>مصفوفات أحادية الرتبة<br />
</li>
<li>مصفوفات ثنائية الرتبة<br />
</li>
<li>مصفوفات متعددة الرتبة<br />
</li>
</ul>
أولا: المصفوفات أحادية الرتبة..<br />
اعلم <br />
عزيزي أن المثال بالأعلى هو عبارة عن مصفوفة أحادية الرتبة<br />
المصفوفة أحادية <br />
الرتبة تتكون من صف واحد وعدة أعمدة أو عمود واحد وعدة صفوف<br />
طريقة الإعلان:<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Array(n) As Type</code></div></div><br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim MyLovers(3) As String<br />
MyLovers(0) ="MOHAMMED"<br />
MyLovers(1) = "Lo2i"<br />
MyLovers(2) = "7hoooda"<br />
MyLovers(3) = "The Rest</code></div></div><br />
الآن كما رأينا قمنا بحجز مصفوفة من 4 عناصر(3+1) <br />
وقمنا باسناد قيمة لكل عنصر <br />
حسب فهرسته في المصفوفة( مش قلنالك هينة..!)<br />
<br />
ثانيا: المصفوفات ثنائية <br />
الرتبة..<br />
الآن دعنا نرتفع بالسلم درجة للأعلى...<br />
المصفوفة ثنائية الرتبة :هي <br />
المصفوفة التي تكون رتبتها مقيدة برقمين (كتشبيه ثنائية الأبعاد)<br />
وعدد عناصر <br />
المصفوفة تساوي عدد الصفوف مضروبا بعدد الأعمدة<br />
<br />
طريقة الإعلان:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Array(m,n) As Type</code></div></div><br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim ages(2, 2) As Integer <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(0, 0) = 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(0, 1) = 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(0, 2) = 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(1, 0) = 4 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(1, 1) = 5 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(1, 2) = 6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(2, 0) = 7 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(2, 1) = 8 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ages(2, 2) = 9</code></div></div><br />
لكن ما الذي حدث؟<br />
اقتباس:<br />
_______________<br />
عدد عناصر المصفوفة تساوي عدد <br />
الصفوف مضروبا بعدد الأعمدة<br />
_______________<br />
<br />
لكن عدد عناصر المصفوفة 9 <br />
والمفروض 2*2 =4<br />
احذر عزيزي من الوقوع في هذا الخطأ الفادح....كما قلنا بالأعلى <br />
فان رتبة المصفوفة (فهرستها) تبدأ من الصفر أي أن عدد عناصر المصفوفة أعلاه لا <br />
يساوي 2*2 بل يساوي (2+1)*(2+1) = 3*3 =9(مش قلنا هونها <br />
بتهون.!)<br />
<br />
ثالثا:المصفوفة متعددة الرتبة وتكون ثلاثية الأبعاد وطريقة الحجز <br />
كالتالي:<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Array(x,y,z) As Type</code></div></div><br />
ولكن لا أظنك تحتاج اليها في حياتك البرمجية لذلك حبذت عدم الحديث <br />
عنها..<br />
<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: 7pt;" class="mycode_size"><span style="color: red;" class="mycode_color">طرق حجز المصفوفات في <br />
الذاكرة</span></span><br />
<br />
<div style="text-align: right;" class="mycode_align">الطريقة الأولى:طريقة الحجز باعطاء الرتبة ثم إسناد القيم....كما <br />
جميع الأمثلة السابقة..<br />
الطريقة الثانية: الحجز بدون اعطاء الرتبة مع الاسناد <br />
المباشر للقيم<br />
مثال:<br />
</div>
</div>
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim *****() as string ={“mohammed”,”7hoooda”,hitmaker”,”lo2i”}</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: black;" class="mycode_color">وبالتالي يقوم المترجم تلقائيا بحجز مصفوفة <br />
بعدد عناصر المصفوفة المعطاة <br />
</span>بهذا نكون انتهينا ان شاء الله من درسنا <br />
...يا اخي هونها بتهون!!<br />
<br />
<div style="text-align: center;" class="mycode_align">
<br />
<span style="font-weight: bold;" class="mycode_b"><br />
أبلغكم تحياتنا<br />
<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و </span><a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a><br />
<span style="font-weight: bold;" class="mycode_b">انتظروا الدرس <br />
القادم</span><br />
</div>
</div>
 <br />
</div>
</div>
</div>
</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align">السلام عليكم إخواني الكرام <br />
<span style="color: #333333;" class="mycode_color">كيف حالكم ؟ </span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">هذا الموضوع ملك للأستاذ </span><a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #840084;" class="mycode_color">Mohammed Asaad</span></a><span style="color: #ff0000;" class="mycode_color"> وقد طلبت منه أن أنقل مشاركاته ووافق بحمد الله</span><img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
<br />
السلام عليكم ورحمة الله وبركاته<br />
بسم الله الرحمن الرحيم<br />
<div style="text-align: right;" class="mycode_align">درسنا لليوم ان شاء الله سيتحدث عن المصفوفات(من الموضوعات ذات الأهمية الكبرى في عالم البرمجة)<br />
<br />
______________<br />
<span style="color: red;" class="mycode_color">ملاحظة:</span> الموضوع ليس موضوعي بل موضوع اخي وحبييبي لؤي لكن مجرد اضافة بسيطة رفض رفضا قاطعا انو ينزله والشكر اولا واخير لاخي لؤي <br />
_____________<br />
<br />
<br />
<br />
بداية اعلم عزيزي أن المصفوفة عبارة عن مجموعة من المتغيرات التي تحمل عدة قيم تحت مسمى واحد بطريقة مفهرسة<br />
<br />
سوف نقوم بشرح هذا الفصل تحت مشروع الConsole<br />
قم بفتح مشروع Console جديد وسوف نوضح تعريفنا السابق...<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Sub Main()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Days(6) As String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim i As Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(0) = "Saturday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(1) = "Sunday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(2) = "Monday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(3) = "Tuesday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(4) = "Wednesday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(5) = "Thursday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Days(6) = "Friday"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To 6 Step 1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write(Days(i))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadKey()<br />
&nbsp;&nbsp;&nbsp;&nbsp;End Sub</code></div></div><br />
مداخلة: بالنسبة لبعض الأكواد<br />
الامر<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Console.Write(String)</code></div></div><br />
يقوم بقنص النص المدخل وعرضه على الشاشة<br />
<br />
الأمر<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Console.WriteLine()</code></div></div><br />
<div style="text-align: right;" class="mycode_align">يقوم بطباعة سطر جديد<br />
<br />
الأمر<br />
</div>
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Console.ReadKey()</code></div></div><br />
يقوم بقنص مفاتيح الكيبورد لتنفيذ ما بعده<br />
<br />
بالنسبة للحلقة باستخدام For سوف <br />
نضع لها فصلا كاملا ان شاء الله في القريب<br />
كذلك مشروع الConsole سنوضحه في فصل <br />
كامل وباختصار هو يستخدم للاشياء البسيطة كدرسنا كما يستخدم في العمليات الخفيفة <br />
كالنسخ والحذف وما الى ذلك...<br />
<br />
الآن كما نرى فاننا قمنا بحجز مصفوفة كنص باسم Days و وجعلنا عناصرها 7 <br />
عناصر...كيف؟؟<br />
في فيجوال بيسك دوت نت نعلن عن المصفوفة بالشكل التالي:<br />
<br />
Dim Array(n) As Type<br />
<br />
بحيث أن عدد عناصر المصفوفة يساوي n+1<br />
والآن هل لاحظت أن أول عنصر تبدأ فهرسته <br />
من صفر<br />
لعلك عرفت أن n ترمز إلى فهرس المصفوفة<br />
فإذا أردنا استخراج أو اسناد <br />
قيمة للعنصر(النوني n ) في المصفوفة فنرمز له باسم المصفوفة وبداخل القوسين العدد <br />
n-1<br />
باختصار: كما رأينا المصفوفة عبارة عن (متغير أو ثابت) يحمل عدة قيم بسحب <br />
المحجوز من البداية...<br />
<br />
<br />
الآن فلنتعمق أكثر(لكن لن نغرق باذن <br />
الله)<br />
المصفوفات لا تقتصر على ما شرحناه فهي اكبر من ذلك ... والآن سندخل في <br />
أنواع المصفوفات<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
<div style="text-align: center;" class="mycode_align"><span style="font-size: 7pt;" class="mycode_size"><span style="color: red;" class="mycode_color">أنواع المصفوفات<br />
</span></span> :eek: (مش للهدرجة....هونها <br />
بتهون)<br />
</div>
<br />
<br />
<div style="text-align: right;" class="mycode_align">الآن تقسم المصفوفات الى أكثر من نوع:<br />
<br />
<ul class="mycode_list"><li>مصفوفات أحادية الرتبة<br />
</li>
<li>مصفوفات ثنائية الرتبة<br />
</li>
<li>مصفوفات متعددة الرتبة<br />
</li>
</ul>
أولا: المصفوفات أحادية الرتبة..<br />
اعلم <br />
عزيزي أن المثال بالأعلى هو عبارة عن مصفوفة أحادية الرتبة<br />
المصفوفة أحادية <br />
الرتبة تتكون من صف واحد وعدة أعمدة أو عمود واحد وعدة صفوف<br />
طريقة الإعلان:<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Array(n) As Type</code></div></div><br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim MyLovers(3) As String<br />
MyLovers(0) ="MOHAMMED"<br />
MyLovers(1) = "Lo2i"<br />
MyLovers(2) = "7hoooda"<br />
MyLovers(3) = "The Rest</code></div></div><br />
الآن كما رأينا قمنا بحجز مصفوفة من 4 عناصر(3+1) <br />
وقمنا باسناد قيمة لكل عنصر <br />
حسب فهرسته في المصفوفة( مش قلنالك هينة..!)<br />
<br />
ثانيا: المصفوفات ثنائية <br />
الرتبة..<br />
الآن دعنا نرتفع بالسلم درجة للأعلى...<br />
المصفوفة ثنائية الرتبة :هي <br />
المصفوفة التي تكون رتبتها مقيدة برقمين (كتشبيه ثنائية الأبعاد)<br />
وعدد عناصر <br />
المصفوفة تساوي عدد الصفوف مضروبا بعدد الأعمدة<br />
<br />
طريقة الإعلان:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Array(m,n) As Type</code></div></div><br />
مثال:<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim ages(2, 2) As Integer <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(0, 0) = 1 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(0, 1) = 2 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(0, 2) = 3 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(1, 0) = 4 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(1, 1) = 5 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(1, 2) = 6 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(2, 0) = 7 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ages(2, 1) = 8 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ages(2, 2) = 9</code></div></div><br />
لكن ما الذي حدث؟<br />
اقتباس:<br />
_______________<br />
عدد عناصر المصفوفة تساوي عدد <br />
الصفوف مضروبا بعدد الأعمدة<br />
_______________<br />
<br />
لكن عدد عناصر المصفوفة 9 <br />
والمفروض 2*2 =4<br />
احذر عزيزي من الوقوع في هذا الخطأ الفادح....كما قلنا بالأعلى <br />
فان رتبة المصفوفة (فهرستها) تبدأ من الصفر أي أن عدد عناصر المصفوفة أعلاه لا <br />
يساوي 2*2 بل يساوي (2+1)*(2+1) = 3*3 =9(مش قلنا هونها <br />
بتهون.!)<br />
<br />
ثالثا:المصفوفة متعددة الرتبة وتكون ثلاثية الأبعاد وطريقة الحجز <br />
كالتالي:<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim Array(x,y,z) As Type</code></div></div><br />
ولكن لا أظنك تحتاج اليها في حياتك البرمجية لذلك حبذت عدم الحديث <br />
عنها..<br />
<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-size: 7pt;" class="mycode_size"><span style="color: red;" class="mycode_color">طرق حجز المصفوفات في <br />
الذاكرة</span></span><br />
<br />
<div style="text-align: right;" class="mycode_align">الطريقة الأولى:طريقة الحجز باعطاء الرتبة ثم إسناد القيم....كما <br />
جميع الأمثلة السابقة..<br />
الطريقة الثانية: الحجز بدون اعطاء الرتبة مع الاسناد <br />
المباشر للقيم<br />
مثال:<br />
</div>
</div>
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>Dim *****() as string ={“mohammed”,”7hoooda”,hitmaker”,”lo2i”}</code></div></div><br />
<div style="text-align: right;" class="mycode_align"><span style="color: black;" class="mycode_color">وبالتالي يقوم المترجم تلقائيا بحجز مصفوفة <br />
بعدد عناصر المصفوفة المعطاة <br />
</span>بهذا نكون انتهينا ان شاء الله من درسنا <br />
...يا اخي هونها بتهون!!<br />
<br />
<div style="text-align: center;" class="mycode_align">
<br />
<span style="font-weight: bold;" class="mycode_b"><br />
أبلغكم تحياتنا<br />
<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و </span><a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a><br />
<span style="font-weight: bold;" class="mycode_b">انتظروا الدرس <br />
القادم</span><br />
</div>
</div>
 <br />
</div>
</div>
</div>
</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[الفصل(2):الثوابت والمتغيرات وخصائصها....نظرة مفصلة]]></title>
			<link>https://vb4arb.com/vb/showthread.php?tid=4354</link>
			<pubDate>Sat, 22 Sep 2012 20:14:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://vb4arb.com/vb/member.php?action=profile&uid=6">Omar Mekkawy_mybb_import4421</a>]]></dc:creator>
			<guid isPermaLink="false">https://vb4arb.com/vb/showthread.php?tid=4354</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align">السلام عليكم إخواني الكرام <img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<span style="color: #333333;" class="mycode_color">كيف حالكم ؟ </span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">هذا الموضوع ملك للأستاذ </span><a href="https://vb4arb.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #008000;" class="mycode_color">lo2i</span></a><span style="color: #ff0000;" class="mycode_color"> وقد طلب مني بأن أنقل مشاركاته </span><img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 7pt;" class="mycode_size"><span style="color: red;" class="mycode_color">بسم الله الرحمن الرحيم<br />
السلام <br />
عليكم ورحمة الله وبركاته</span></span><br />
</span></span></span><br />
<br />
<span style="color: seagreen;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><br />
عند فتح الفيجوال بيسك 2008 ستظهر لنا هذه النافذة هنا ويمكنك من خلالها <br />
تحديد اللغة <br />
التي ستبرمج بها والية العمل التي تريدها داخل البرنامج والصورة <br />
توضح :_<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_01348221080.jpg" loading="lazy"  alt="[صورة مرفقة: 5_01348221080.jpg]" class="mycode_img" /><br />
</span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">[b]<span style="font-size: 9pt;" class="mycode_size"><span style="color: purple;" class="mycode_color"><br />
الدرس الثالث :_ الثوابت والمتغيرات . </span></span></span><br />
[/b]</span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">[b]<span style="font-size: 6pt;" class="mycode_size"><span style="color: navy;" class="mycode_color">اولاً الثوابت :-</span></span></span><br />
[/b]</span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: darkorange;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size">تنقسم الثوابت في لغة الفيجوال بسيك 2008 إلى ثلاثة اقسام رئيسية وهي نصية او رقمية ومنطقية<br />
ويمكننا تعريف ثابت في البرنامج من خلال الكلمة المحجوزة</span></span><br />
<br />
</span></span></span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#007700][FONT=Simplified Arabic Fixed]const[/FONT][/color][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
<span style="color: #0000ff;" class="mycode_color">ولاحظ هنا اخي الكريم في الفيجوال بيسك 2008 لا يمكنك تعريف ثابت <br />
إلا من خلال المبدأ التالي</span><br />
<br />
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#007700]Const&nbsp;&nbsp; [/color][color=#0000bb]name&nbsp;&nbsp;[/color][color=#007700]as&nbsp;&nbsp;[/color][color=#0000bb]type&nbsp;&nbsp;[/color][color=#007700]=&nbsp;&nbsp;[/color][color=#0000bb]value[/color]</code></div></div><span style="color: #0000bb;" class="mycode_color">  <br />
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const&nbsp;&nbsp; [/color][color=#0000bb]اسم الثابت&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/color][color=#007700]as&nbsp;&nbsp;[/color][color=#0000bb]قيمته [/color][color=#007700]=&nbsp;&nbsp; [/color][color=#0000bb]نوعه [/color][/FONT][/COLOR]</code></div></div></span></span></span><br />
<br />
<span style="color: #ff8c00;" class="mycode_color">ولاحظ هنا عند كتابة الثابت لا يمكنك نسب قيمة له إلا في <br />
نفس السطر الذي قمت بكتابة الثابت فيه .</span><br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_01348226033.jpg" loading="lazy"  alt="[صورة مرفقة: 5_01348226033.jpg]" class="mycode_img" /><br />
<br />
<br />
اي انه لايمكنك ان تكتب الثابت في سطر وقيمة الثابت في سطر اخر<br />
وهذا من الاشياء <br />
التي تميز المتغير عن الثابت<br />
امثلة على تعريف ثوابت جديدة لاستخدامها في <br />
البرنامج :-<br />
<br />
اي انه لايمكنك ان تكتب الثابت في سطر وقيمة الثابت في سطر اخر<br />
وهذا من الاشياء التي تميز المتغير عن الثابت<br />
امثلة على تعريف ثوابت <br />
جديدة لاستخدامها في البرنامج :-<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"mohammed"&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
' ثابت من نوع نص<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#007700]Const [/color][color=#0000bb]age [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]22[/color]</code></div></div><span style="color: #0000bb;" class="mycode_color">  <br />
<br />
</span></span></span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">' ثابت من نوع عدد صحيح<br />
<br />
<span style="color: #000000;" class="mycode_color"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]marry [/color][color=#007700]As [/color][color=#0000bb]Boolean [/color][color=#007700]= [/color][/FONT][color=#0000bb][FONT=Simplified Arabic Fixed]False[/FONT][/color]</code></div></div><span style="color: #0000bb;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">  <br />
<br />
</span></span></span><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">' ثابت من نوع قيمة منطقية<br />
<br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">الطرق التي من خلالها تستطيع تعريف ثوابت <br />
لبرنامج :-</span></span><br />
<br />
<span style="font-size: 5pt;" class="mycode_size">1 - الطريقة التقليدية تعريف ثابت ونسب قيمة له مثل </span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"ali"&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">2 - كتابة الثابت بدون تحديد نوع له مثل <br />
:-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]= [/color][color=#dd0000]"lo2i" [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">3 - كتابة اكثر من ثابت مع تحديد القيمة لها في سطر واحد :- مثل </span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"mohammed"[/color][color=#007700], [/color][color=#0000bb]age [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]22 [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">4 - كتابة اكثر من ثابت بودن تحديد نوع الثابت <br />
مثل</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]= [/color][color=#dd0000]"mohammed"[/color][color=#007700], [/color][color=#0000bb]age [/color][color=#007700]= [/color][color=#0000bb]33[/color][color=#007700], [/color][color=#0000bb]marry [/color][color=#007700]= [/color][color=#0000bb]False&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
لاحظ هنا اننا لم نستخدم كلمة تعريف الثابت إلا في بداية الجملة فقط <br />
<br />
<span style="color: red;" class="mycode_color">[b]<span style="font-size: 8pt;" class="mycode_size">فوائد الثوابت في البرنامج <br />
:_</span></span></span><br />
<br />
1- تسهيل البرمجة عندما تريد التعويض بقيمة ثابتة لعدد <br />
غير معين من المتغيرات.<br />
<br />
فمثلاً اذا اردت ان ان تعٌرف ثابت لعمر اعضاء في <br />
المنتدى<br />
اسماؤهم كالتالي :_ أحمد و محمد و لؤي<br />
ونريد اعطاء عمر واحد لكل <br />
الاعضاء<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]age [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000bb]20<br />
Dim person1 [/COLOR][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#dd0000]"ahmad"<br />
[/COLOR][color=#0000bb]Dim person2 [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#dd0000]"mohammed"<br />
[/COLOR][color=#0000bb]Dim person3 [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#dd0000]"lo2i"<br />
[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#0000bb]person1 [/color][color=#007700]&amp; [/color][color=#dd0000]" = " [/color][color=#007700]&amp; [/color][color=#0000bb]age [/color][color=#007700]&amp; [/color][color=#0000bb]vbCrLf [/color][color=#007700]&amp; [/color][color=#0000bb]person2 [/color][color=#007700]&amp; [/color][color=#dd0000]" = " [/color][color=#007700]&amp; [/color][color=#0000bb]age [/color][color=#007700]&amp; [/color][color=#0000bb]vbCrLf [/color][color=#007700]&amp; [/color][color=#0000bb]person3 [/color][color=#007700]&amp; [/color][color=#dd0000]" = " [/color][color=#007700]&amp; [/color][color=#0000bb]age[/color][color=#007700]) [/color][/FONT][/COLOR]</code></div></div></span><span style="color: #000000;" class="mycode_color"><span style="color: #0000bb;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><br />
<br />
</span><br />
ووظيفة الدالة VBCRLF<br />
هي كالتالي :-<br />
الدالة تعمل على اعطاء سطر جديد في الرسالة ويمكن ايضاً استخدامها في اكثر من مجال <br />
في التيكست وفي اللابيل وفي اكثر من اداة <br />
وضيغتها كالتالي :_ &amp; VBCRLF &amp;<br />
<br />
****************************<br />
</span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<img src="https://vb4arb.com/vb/uploaded/5_31348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_31348343187.jpg]" class="mycode_img" /><br />
<br />
<br />
2- انها تتعامل مع المصفوفات بكل يسر وسهولة ويمكنها الوصول إلى مصفوفة معينة <br />
<br />
<br />
================================================== ==========<br />
<br />
[b]<span style="font-size: 8pt;" class="mycode_size">ال</span></span></span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">[b]<span style="font-size: 8pt;" class="mycode_size">اخطاء المتوقعة حدوثها عند تعاملك مع الثوابت :-</span></span><br />
</span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: #000000;" class="mycode_color"><br />
</span><span style="color: red;" class="mycode_color"><span style="font-size: 9pt;" class="mycode_size">اولاً :-</span></span><br />
</span></span></span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">تغيير قيمة الثابت في البرنامج او اثناء التشغيل مثال لذلك :- <br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]age [/color][color=#007700]As [/color][color=#0000BB]Integer [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]20<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;age [/COLOR][color=#007700]= [/color][color=#0000BB]22&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">ثانياً:-<br />
</span></span>تعريف الثابت في سطر ونسب <br />
القيمة له في سطر اخر كما قلنا سابقاً .<br />
مثال لذلك ..<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]age [/color][color=#007700]As [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Integer <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;age [/COLOR][color=#007700]= [/color][color=#0000BB]18&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">ملاحظة هامة جداً جداً :-</span></span> <span style="color: seagreen;" class="mycode_color">عند تعاملنا مع الثوابت يجب علينا ادخال القيمة للثابت في نفس جملة <br />
تعريف الثابت .<br />
</span><br />
<br />
ولا حظ هنا انا الفرق بين النقطة الاولى والثانية <br />
هي ماسيوضحه هذا الشكل <br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_41348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_41348343187.jpg]" class="mycode_img" /><br />
</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #0000ff;" class="mycode_color">وهي ان الكود الاول اعطى قيمة للثابت في تعريف الثابت <br />
وفي الخطوة الثانية حاول تغيير القيمة وهنا هو الخطأ قما قلنا سابقاً الثابت لا يمكن تغييره في وقت تنفيذ البرنامج.<br />
</span></span>------------------------------------<br />
[b]<span style="color: darkorange;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">الكود الثاني الخطأ فيه هنا انه لم يعطي قيمة للثابت في التعريف </span></span></span><br />
</span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">واقصد بالتعريف هنا اي تعريف الثابت باستخدام الكلمة المحجوزة واعطاه قيمة في سطر جديد .<br />
</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<br />
---------------------------------------------------------------------------------------------------<br />
<span style="color: purple;" class="mycode_color">[b]<span style="font-size: 8pt;" class="mycode_size">ملاحظة يمكنك عمل ثابت بالبرنامج <br />
بدون تحديد نوعه اي نصي او حرفي مثل</span></span></span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]a [/color][color=#007700]= [/color][/FONT][COLOR=#DD0000][FONT=Simplified Arabic Fixed]"lo2i"&nbsp;&nbsp;<br />
[/FONT]<br />
[/COLOR][color=#0000BB][/color][/COLOR]</code></div></div><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]s [/color][color=#007700]= [/color][color=#0000BB]123&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]x [/color][color=#007700]= [/color][color=#0000BB]true [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 6pt;" class="mycode_size"><span style="color: #696969;" class="mycode_color">ولكن في هذه الحالة يمكنك اعطاء اي قيمة كانت <br />
له حرفية نصية منطقية(اي قيمة صحيحة او <br />
خاطئة)<br />
<br />
</span></span>==================================<br />
<br />
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size"><span style="color: navy;" class="mycode_color">ثانياً المتغيرات <br />
:-</span></span></span></div>
<br />
<span style="color: purple;" class="mycode_color">تعريفها :-</span></span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"> موقع محدد في <br />
الذاكرةيمكن ان يحتوي بيانات من اي نوع فالمتغير لايعطي قيمة ثابتة بل يمكن تغييرها <br />
بعكس الثابت .<br />
<br />
</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: red;" class="mycode_color">[b]<span style="font-size: 5pt;" class="mycode_size">الشروط اللازمة لكتابة اسماء <br />
المتغيرات في البرنامج:</span></span></span><br />
<br />
1<span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"> - عدم استخدام الكلمات المحجوزة في البرنامج <br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700](if&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/color][color=#0000BB]dim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/color][color=#007700]while&nbsp;&nbsp;&nbsp;&nbsp; do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......)&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
2<span style="color: purple;" class="mycode_color">[SIZE=4] - عدم البدء برقم في اسم المتغير مثل لذلك <br />
:-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim 1a [/color][color=#007700]as [/color][color=#0000BB]string&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">3 - يمنع استخدام الرموز في اسماء المتغيرات مثل </span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim [/color][color=#007700]? as [/color][color=#0000BB]Integer [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">4 - يمنع استخدام النقطة او الفاصلة في اسم <br />
المتغير مثل :</span></span>-<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim a.1 [/color][color=#007700]as [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim a[/COLOR][color=#007700],[/color][color=#0000BB]1 [/color][color=#007700]as [/color][color=#0000BB]String&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
[/SIZE]</span></span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">طرق تعريف المتغيرات في البرنامج باستخدام الكلمة المحجوزة Dim<br />
[SIZE=4]<br />
</span>[/SIZE]</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><span style="color: darkred;" class="mycode_color">[SIZE=4]1 – الطريقة الافتراضية لتعريف <br />
المتغيرات<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
[SIZE=4]<span style="color: #8b0000;" class="mycode_color">2 - طريقة تعريف متغير منفصل مع نسب القيمة له في نفس السطر</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][color=#DD0000]"ali"[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #8b0000;" class="mycode_color">3 - طريقة تعريف اكثر من متغير في سطر واحد <br />
ويكونوا لنفس النوع (اي كلاهما من نوع نصي او كلاهما من نوع رقمي) مثل لذلك <br />
</span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim f_name[/color][color=#007700], [/color][color=#0000BB]l_name [/color][color=#007700]As [/color][/FONT][COLOR=#0000BB][FONT=Simplified Arabic Fixed]String</code></div></div>  <br />
<br />
</span></span></span>[/SIZE]</span>[/SIZE]</span></span></span></span></span>[/FONT][/COLOR]<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font">في هذا المتغير عرفنا متغيريين من نوع نص اسم المتغير الاول <br />
والثاني L_name <br />
F_name <br />
</span></span>[/SIZE]</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><span style="color: darkred;" class="mycode_color">[SIZE=4]<span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: darkred;" class="mycode_color">[SIZE=4]<br />
4 - تعريف متغيرات مختلفة في نفس <br />
السطر (اي مختلفة في النوع اي متغير نصي ومتغير رقمي ومتغير منطقي) مثل <br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String[/color][color=#007700], [/color][color=#0000BB]age [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][color=#007700], [/color][color=#0000BB]marry [/color][color=#007700]As [/color][COLOR=#0000BB]Boolean</code></div></div>  <br />
<br />
<br />
<span style="color: #2e8b57;" class="mycode_color">لاحظ هنا اننا كتبنا المتغيرات جميعها بكلمة واحد فقط <br />
للتعريف وهي Dim<br />
<br />
</span><span style="color: purple;" class="mycode_color">5 - تعريف متغيرات من غير نوع في <br />
سطر واحد ونسب القيم لها مثل <br />
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][color=#DD0000]"mr.mohammed"[/color][color=#007700], [/color][color=#0000BB]age [/color][color=#007700]As [/color][color=#0000BB]Integer [/color][color=#007700]= [/color][color=#0000BB]12[/color][color=#007700], [/color][color=#0000BB]marry [/color][color=#007700]As [/color][color=#0000BB]Boolean [/color][color=#007700]= [/color][color=#0000BB]True[/color][/FONT][/COLOR]</code></div></div></span></span></span></span></span></span></span></span>[/SIZE]</span>[/SIZE]</span></span></span></span></span></span>[/COLOR]<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><br />
لاحظ اننا عرفنا 3 متغيرات من انواع مختلفة منها النصي ومنها الرقمي ومنها <br />
المنطقي..<br />
6 - تعريف متغير من دون ذكر الكلمة Dim مثل :-</span></span></span>[/SIZE][/SIZE]</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><span style="color: darkred;" class="mycode_color">[SIZE=4]<span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: darkred;" class="mycode_color">[SIZE=4]<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000BB;" class="mycode_color"> <br />
</span></span></span><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Name[/color][color=#007700]=[/color][color=#DD0000]"lo2i" [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #2e8b57;" class="mycode_color">طرق تعريف المتغيرات في البرنامج <br />
:_<br />
<br />
باستخدام الكلمة المحجوزة </span></span><span style="color: red;" class="mycode_color">static <br />
</span><br />
<br />
<span style="color: purple;" class="mycode_color">1 - يمكنك استخدمها بهذه الطريقة <br />
</span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Static [/color][color=#0000BB]name [/color][color=#007700]As [/color][color=#0000BB]String&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="color: #2f4f4f;" class="mycode_color">وسيبقى البرنامج محتفظاً بها داخل البرنامج من لحظة <br />
تشغيله إلى لحظة ايقافه<br />
المعلومات المستخدمة لاضافة المتغيرات باستخدام الامر <br />
Dim <br />
لاتختلف عن طرق اضافة المتغيرات في الاستاتيك static <br />
<br />
<br />
<br />
</span><span style="color: seagreen;" class="mycode_color">الفرق بين الكلمتين </span><span style="color: red;" class="mycode_color">Dim </span>و <span style="color: red;" class="mycode_color">static</span><br />
<br />
<span style="color: seagreen;" class="mycode_color">عندما تريد من المتغير ان يحتفظ باقيمة داخل اجراء خاص فقط تستخدم <br />
له هذه الكلمة </span><span style="color: red;" class="mycode_color">Dim </span><br />
<span style="color: seagreen;" class="mycode_color"><br />
عندما تريد من المتغير ان يحتفظ بقيمة المتغير طيلة فترة عمر <br />
البرنامج يمكنك استخدام هذه <span style="color: red;" class="mycode_color">Static </span>الانواع من المتغيرات <br />
</span><br />
<br />
مع التنبيه ان الكلمة <span style="color: red;" class="mycode_color">الاولى </span>تكون اخف على <br />
الذاكرة من الكلمة الثانية <br />
<span style="color: wheat;" class="mycode_color">لان الاولى تحتفظ بالقيمة داخل <br />
اجراء منفصل بها والثانية تحتفظ بها طيلة وقت البرنامج.<br />
</span><br />
<span style="color: navy;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size"><br />
انواع المتغيرات التي يمكن التعامل معها نوضح كل <br />
ذلك<br />
من خلال الجدول التالي </span></span><br />
<br />
</span><br />
</span></span>[/SIZE]</span>[/SIZE]</span></span></span></span></span></span></span><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font">[SIZE=4]<span style="color: #000000;" class="mycode_color"><img src="https://vb4arb.com/vb/uploaded/5_51348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_51348343187.jpg]" class="mycode_img" /><br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_61348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_61348343187.jpg]" class="mycode_img" /><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">ويمكننا القول هنا ان انواع المتغيرات تنقسم إلى ثلاث اقسام رئيسية وهي كالتالي :-<br />
</span>[SIZE=3]<span style="color: seagreen;" class="mycode_color">1 - متغيرات عددية .</span><br />
</span><span style="font-size: 3pt;" class="mycode_size"><span style="color: seagreen;" class="mycode_color">2 - متغيرات نصية .<br />
3 - متغيرات منطقية. <br />
4 - متغير عام ويحمل كل هذه القيم .</span><br />
<br />
*******************************<br />
</span><span style="color: deepskyblue;" class="mycode_color"><span style="font-size: 5pt;" class="mycode_size"><br />
سوف اعطي هنا امثلة بسيطة عن المتغيرات النصية</span></span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][SIZE=3][COLOR=#0000BB]Dim NAME [/color][color=#007700]As [/color][/SIZE][SIZE=3][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Static [/color][color=#0000BB]NAME2 [/color][color=#007700]As [/color][/SIZE][SIZE=3][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NAME [/COLOR][color=#007700]= [/color][/SIZE][SIZE=3][COLOR=#DD0000]"ali"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]NAME2 [/color][color=#007700]= [/color][/SIZE][SIZE=3][COLOR=#DD0000]"MOHAMMED"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]NAME [/color][color=#007700]&amp; [/color][color=#DD0000]"&nbsp;&nbsp; " [/color][color=#007700]&amp; [/color][color=#0000BB]NAME2[/color]</code></div></div><span style="color: #007700;" class="mycode_color">)<br />
<br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #00bfff;" class="mycode_color">امثلة عن المتغيرات الرقيمة <br />
:_</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Simplified Arabic Fixed][color=#0000bb]Dim num1 [/color][color=#007700]As [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Static [/color][color=#0000BB]num2 [/color][color=#007700]As [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num1 [/COLOR][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num2 [/COLOR][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]num1 [/color][color=#007700]* [/color][color=#0000BB]num2[/color][/FONT][COLOR=#007700][FONT=Simplified Arabic Fixed])&nbsp;&nbsp;[/FONT]<br />
[/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #00bfff;" class="mycode_color">امثلة عن العمليات المنطقية في المتغيرات :-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim value [/color][color=#007700]As [/color][COLOR=#0000BB]Boolean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value [/COLOR][color=#007700]= [/color][COLOR=#0000BB]True<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value [/COLOR][color=#007700]= [/color][COLOR=#0000BB]false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]value[/color][color=#007700])[/color][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #00bfff;" class="mycode_color">مثال على تعريف المتغير العام في البرنامج :-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim s [/color][color=#007700]As [/color][COLOR=#0000BB]Object<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]12345<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]12.345<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#DD0000]"mohammed"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]s [/color][color=#007700]= [/color][COLOR=#DD0000]"lo2i"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]s [/color][color=#007700]= [/color][COLOR=#0000BB]True<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]False<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]s[/color][color=#007700])[/color][/COLOR]</code></div></div><br />
<span style="color: #ff00ff;" class="mycode_color">كما قلنا سابقاً يمكننا الاستعان بهذا النوع من المتغيرات اذا كنا غير متأكدين من المدخلات التي يدخلها المستخدم .<br />
<br />
</span>*************************************<br />
<span style="color: darkred;" class="mycode_color">[b]<div style="text-align: center;" class="mycode_align">المتغيرات والمساحات التخزينية التي تأخذها من الذاكرة توضحها الصورة التالية :-</div>
</span></span><br />
<img src="https://vb4arb.com/vb/uploaded/5_01348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_01348343187.jpg]" class="mycode_img" /><br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #9acd32;" class="mycode_color">طبعاً اخواني لن نستطيع ان نحصر كل خصائص المتغيرات والثوابت في هذا الدرس<br />
<br />
لذلك تركت لكم اسلوب التنقيب بنفسكم عن الحل لان هذا من اهم اساسيات تعلم البرمجة<br />
<br />
</span>واخيراً وليس اخراً اعتذر عن تأخر الدرس بسبب انقطاع الانترنت </span><br />
<br />
أبلغكم تحياتنا<br />
<span style="color: red;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size"><br />
[SIZE=4]<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و </span>[/SIZE]</span><span style="font-size: 4pt;" class="mycode_size"><a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a></span><span style="color: red;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size"><br />
انتظروا الدرس القادم</span></span><br />
*************</span>[/SIZE]</span>[/COLOR][/SIZE]</span>[/SIZE][/SIZE]</span>[/b]</span></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align">السلام عليكم إخواني الكرام <img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<span style="color: #333333;" class="mycode_color">كيف حالكم ؟ </span><br />
<br />
<span style="color: #ff0000;" class="mycode_color">هذا الموضوع ملك للأستاذ </span><a href="https://vb4arb.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #008000;" class="mycode_color">lo2i</span></a><span style="color: #ff0000;" class="mycode_color"> وقد طلب مني بأن أنقل مشاركاته </span><img src="https://vb4arb.com/vb/images/smilies/smile.gif" alt="Smile" title="Smile" class="smilie smilie_1" /><br />
<br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 7pt;" class="mycode_size"><span style="color: red;" class="mycode_color">بسم الله الرحمن الرحيم<br />
السلام <br />
عليكم ورحمة الله وبركاته</span></span><br />
</span></span></span><br />
<br />
<span style="color: seagreen;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><br />
عند فتح الفيجوال بيسك 2008 ستظهر لنا هذه النافذة هنا ويمكنك من خلالها <br />
تحديد اللغة <br />
التي ستبرمج بها والية العمل التي تريدها داخل البرنامج والصورة <br />
توضح :_<br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_01348221080.jpg" loading="lazy"  alt="[صورة مرفقة: 5_01348221080.jpg]" class="mycode_img" /><br />
</span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">[b]<span style="font-size: 9pt;" class="mycode_size"><span style="color: purple;" class="mycode_color"><br />
الدرس الثالث :_ الثوابت والمتغيرات . </span></span></span><br />
[/b]</span></span><br />
<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b">[b]<span style="font-size: 6pt;" class="mycode_size"><span style="color: navy;" class="mycode_color">اولاً الثوابت :-</span></span></span><br />
[/b]</span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: darkorange;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size">تنقسم الثوابت في لغة الفيجوال بسيك 2008 إلى ثلاثة اقسام رئيسية وهي نصية او رقمية ومنطقية<br />
ويمكننا تعريف ثابت في البرنامج من خلال الكلمة المحجوزة</span></span><br />
<br />
</span></span></span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#007700][FONT=Simplified Arabic Fixed]const[/FONT][/color][/COLOR]</code></div></div><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><br />
<span style="color: #0000ff;" class="mycode_color">ولاحظ هنا اخي الكريم في الفيجوال بيسك 2008 لا يمكنك تعريف ثابت <br />
إلا من خلال المبدأ التالي</span><br />
<br />
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#007700]Const&nbsp;&nbsp; [/color][color=#0000bb]name&nbsp;&nbsp;[/color][color=#007700]as&nbsp;&nbsp;[/color][color=#0000bb]type&nbsp;&nbsp;[/color][color=#007700]=&nbsp;&nbsp;[/color][color=#0000bb]value[/color]</code></div></div><span style="color: #0000bb;" class="mycode_color">  <br />
</span></span></span><br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const&nbsp;&nbsp; [/color][color=#0000bb]اسم الثابت&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/color][color=#007700]as&nbsp;&nbsp;[/color][color=#0000bb]قيمته [/color][color=#007700]=&nbsp;&nbsp; [/color][color=#0000bb]نوعه [/color][/FONT][/COLOR]</code></div></div></span></span></span><br />
<br />
<span style="color: #ff8c00;" class="mycode_color">ولاحظ هنا عند كتابة الثابت لا يمكنك نسب قيمة له إلا في <br />
نفس السطر الذي قمت بكتابة الثابت فيه .</span><br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_01348226033.jpg" loading="lazy"  alt="[صورة مرفقة: 5_01348226033.jpg]" class="mycode_img" /><br />
<br />
<br />
اي انه لايمكنك ان تكتب الثابت في سطر وقيمة الثابت في سطر اخر<br />
وهذا من الاشياء <br />
التي تميز المتغير عن الثابت<br />
امثلة على تعريف ثوابت جديدة لاستخدامها في <br />
البرنامج :-<br />
<br />
اي انه لايمكنك ان تكتب الثابت في سطر وقيمة الثابت في سطر اخر<br />
وهذا من الاشياء التي تميز المتغير عن الثابت<br />
امثلة على تعريف ثوابت <br />
جديدة لاستخدامها في البرنامج :-<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"mohammed"&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
' ثابت من نوع نص<br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#007700]Const [/color][color=#0000bb]age [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]22[/color]</code></div></div><span style="color: #0000bb;" class="mycode_color">  <br />
<br />
</span></span></span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">' ثابت من نوع عدد صحيح<br />
<br />
<span style="color: #000000;" class="mycode_color"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]marry [/color][color=#007700]As [/color][color=#0000bb]Boolean [/color][color=#007700]= [/color][/FONT][color=#0000bb][FONT=Simplified Arabic Fixed]False[/FONT][/color]</code></div></div><span style="color: #0000bb;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">  <br />
<br />
</span></span></span><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">' ثابت من نوع قيمة منطقية<br />
<br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">الطرق التي من خلالها تستطيع تعريف ثوابت <br />
لبرنامج :-</span></span><br />
<br />
<span style="font-size: 5pt;" class="mycode_size">1 - الطريقة التقليدية تعريف ثابت ونسب قيمة له مثل </span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"ali"&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">2 - كتابة الثابت بدون تحديد نوع له مثل <br />
:-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]= [/color][color=#dd0000]"lo2i" [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">3 - كتابة اكثر من ثابت مع تحديد القيمة لها في سطر واحد :- مثل </span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][color=#dd0000]"mohammed"[/color][color=#007700], [/color][color=#0000bb]age [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][color=#0000bb]22 [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">4 - كتابة اكثر من ثابت بودن تحديد نوع الثابت <br />
مثل</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]name [/color][color=#007700]= [/color][color=#dd0000]"mohammed"[/color][color=#007700], [/color][color=#0000bb]age [/color][color=#007700]= [/color][color=#0000bb]33[/color][color=#007700], [/color][color=#0000bb]marry [/color][color=#007700]= [/color][color=#0000bb]False&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
لاحظ هنا اننا لم نستخدم كلمة تعريف الثابت إلا في بداية الجملة فقط <br />
<br />
<span style="color: red;" class="mycode_color">[b]<span style="font-size: 8pt;" class="mycode_size">فوائد الثوابت في البرنامج <br />
:_</span></span></span><br />
<br />
1- تسهيل البرمجة عندما تريد التعويض بقيمة ثابتة لعدد <br />
غير معين من المتغيرات.<br />
<br />
فمثلاً اذا اردت ان ان تعٌرف ثابت لعمر اعضاء في <br />
المنتدى<br />
اسماؤهم كالتالي :_ أحمد و محمد و لؤي<br />
ونريد اعطاء عمر واحد لكل <br />
الاعضاء<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#007700]Const [/color][color=#0000bb]age [/color][color=#007700]As [/color][color=#0000bb]Integer [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000bb]20<br />
Dim person1 [/COLOR][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#dd0000]"ahmad"<br />
[/COLOR][color=#0000bb]Dim person2 [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#dd0000]"mohammed"<br />
[/COLOR][color=#0000bb]Dim person3 [/color][color=#007700]As [/color][color=#0000bb]String [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#dd0000]"lo2i"<br />
[/COLOR][color=#0000bb]MsgBox[/color][color=#007700]([/color][color=#0000bb]person1 [/color][color=#007700]&amp; [/color][color=#dd0000]" = " [/color][color=#007700]&amp; [/color][color=#0000bb]age [/color][color=#007700]&amp; [/color][color=#0000bb]vbCrLf [/color][color=#007700]&amp; [/color][color=#0000bb]person2 [/color][color=#007700]&amp; [/color][color=#dd0000]" = " [/color][color=#007700]&amp; [/color][color=#0000bb]age [/color][color=#007700]&amp; [/color][color=#0000bb]vbCrLf [/color][color=#007700]&amp; [/color][color=#0000bb]person3 [/color][color=#007700]&amp; [/color][color=#dd0000]" = " [/color][color=#007700]&amp; [/color][color=#0000bb]age[/color][color=#007700]) [/color][/FONT][/COLOR]</code></div></div></span><span style="color: #000000;" class="mycode_color"><span style="color: #0000bb;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><br />
<br />
</span><br />
ووظيفة الدالة VBCRLF<br />
هي كالتالي :-<br />
الدالة تعمل على اعطاء سطر جديد في الرسالة ويمكن ايضاً استخدامها في اكثر من مجال <br />
في التيكست وفي اللابيل وفي اكثر من اداة <br />
وضيغتها كالتالي :_ &amp; VBCRLF &amp;<br />
<br />
****************************<br />
</span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<img src="https://vb4arb.com/vb/uploaded/5_31348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_31348343187.jpg]" class="mycode_img" /><br />
<br />
<br />
2- انها تتعامل مع المصفوفات بكل يسر وسهولة ويمكنها الوصول إلى مصفوفة معينة <br />
<br />
<br />
================================================== ==========<br />
<br />
[b]<span style="font-size: 8pt;" class="mycode_size">ال</span></span></span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">[b]<span style="font-size: 8pt;" class="mycode_size">اخطاء المتوقعة حدوثها عند تعاملك مع الثوابت :-</span></span><br />
</span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: #000000;" class="mycode_color"><br />
</span><span style="color: red;" class="mycode_color"><span style="font-size: 9pt;" class="mycode_size">اولاً :-</span></span><br />
</span></span></span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">تغيير قيمة الثابت في البرنامج او اثناء التشغيل مثال لذلك :- <br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]age [/color][color=#007700]As [/color][color=#0000BB]Integer [/color][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]20<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;age [/COLOR][color=#007700]= [/color][color=#0000BB]22&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">ثانياً:-<br />
</span></span>تعريف الثابت في سطر ونسب <br />
القيمة له في سطر اخر كما قلنا سابقاً .<br />
مثال لذلك ..<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]age [/color][color=#007700]As [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Integer <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;age [/COLOR][color=#007700]= [/color][color=#0000BB]18&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 7pt;" class="mycode_size"><span style="color: #ff0000;" class="mycode_color">ملاحظة هامة جداً جداً :-</span></span> <span style="color: seagreen;" class="mycode_color">عند تعاملنا مع الثوابت يجب علينا ادخال القيمة للثابت في نفس جملة <br />
تعريف الثابت .<br />
</span><br />
<br />
ولا حظ هنا انا الفرق بين النقطة الاولى والثانية <br />
هي ماسيوضحه هذا الشكل <br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_41348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_41348343187.jpg]" class="mycode_img" /><br />
</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #0000ff;" class="mycode_color">وهي ان الكود الاول اعطى قيمة للثابت في تعريف الثابت <br />
وفي الخطوة الثانية حاول تغيير القيمة وهنا هو الخطأ قما قلنا سابقاً الثابت لا يمكن تغييره في وقت تنفيذ البرنامج.<br />
</span></span>------------------------------------<br />
[b]<span style="color: darkorange;" class="mycode_color"><span style="font-size: 6pt;" class="mycode_size">الكود الثاني الخطأ فيه هنا انه لم يعطي قيمة للثابت في التعريف </span></span></span><br />
</span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font">واقصد بالتعريف هنا اي تعريف الثابت باستخدام الكلمة المحجوزة واعطاه قيمة في سطر جديد .<br />
</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><br />
<br />
---------------------------------------------------------------------------------------------------<br />
<span style="color: purple;" class="mycode_color">[b]<span style="font-size: 8pt;" class="mycode_size">ملاحظة يمكنك عمل ثابت بالبرنامج <br />
بدون تحديد نوعه اي نصي او حرفي مثل</span></span></span><br />
<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]a [/color][color=#007700]= [/color][/FONT][COLOR=#DD0000][FONT=Simplified Arabic Fixed]"lo2i"&nbsp;&nbsp;<br />
[/FONT]<br />
[/COLOR][color=#0000BB][/color][/COLOR]</code></div></div><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]s [/color][color=#007700]= [/color][color=#0000BB]123&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Const [/color][color=#0000BB]x [/color][color=#007700]= [/color][color=#0000BB]true [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 6pt;" class="mycode_size"><span style="color: #696969;" class="mycode_color">ولكن في هذه الحالة يمكنك اعطاء اي قيمة كانت <br />
له حرفية نصية منطقية(اي قيمة صحيحة او <br />
خاطئة)<br />
<br />
</span></span>==================================<br />
<br />
<br />
<div style="text-align: right;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: 6pt;" class="mycode_size"><span style="color: navy;" class="mycode_color">ثانياً المتغيرات <br />
:-</span></span></span></div>
<br />
<span style="color: purple;" class="mycode_color">تعريفها :-</span></span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"> موقع محدد في <br />
الذاكرةيمكن ان يحتوي بيانات من اي نوع فالمتغير لايعطي قيمة ثابتة بل يمكن تغييرها <br />
بعكس الثابت .<br />
<br />
</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: red;" class="mycode_color">[b]<span style="font-size: 5pt;" class="mycode_size">الشروط اللازمة لكتابة اسماء <br />
المتغيرات في البرنامج:</span></span></span><br />
<br />
1<span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"> - عدم استخدام الكلمات المحجوزة في البرنامج <br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700](if&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [/color][color=#0000BB]dim&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/color][color=#007700]while&nbsp;&nbsp;&nbsp;&nbsp; do&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......)&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
2<span style="color: purple;" class="mycode_color">[SIZE=4] - عدم البدء برقم في اسم المتغير مثل لذلك <br />
:-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim 1a [/color][color=#007700]as [/color][color=#0000BB]string&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">3 - يمنع استخدام الرموز في اسماء المتغيرات مثل </span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim [/color][color=#007700]? as [/color][color=#0000BB]Integer [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #800080;" class="mycode_color">4 - يمنع استخدام النقطة او الفاصلة في اسم <br />
المتغير مثل :</span></span>-<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim a.1 [/color][color=#007700]as [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]string<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim a[/COLOR][color=#007700],[/color][color=#0000BB]1 [/color][color=#007700]as [/color][color=#0000BB]String&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
[/SIZE]</span></span></span></span>[/b]</span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">طرق تعريف المتغيرات في البرنامج باستخدام الكلمة المحجوزة Dim<br />
[SIZE=4]<br />
</span>[/SIZE]</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><span style="color: darkred;" class="mycode_color">[SIZE=4]1 – الطريقة الافتراضية لتعريف <br />
المتغيرات<br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
[SIZE=4]<span style="color: #8b0000;" class="mycode_color">2 - طريقة تعريف متغير منفصل مع نسب القيمة له في نفس السطر</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][color=#DD0000]"ali"[/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #8b0000;" class="mycode_color">3 - طريقة تعريف اكثر من متغير في سطر واحد <br />
ويكونوا لنفس النوع (اي كلاهما من نوع نصي او كلاهما من نوع رقمي) مثل لذلك <br />
</span></span><br />
<br />
<span style="color: #000000;" class="mycode_color"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim f_name[/color][color=#007700], [/color][color=#0000BB]l_name [/color][color=#007700]As [/color][/FONT][COLOR=#0000BB][FONT=Simplified Arabic Fixed]String</code></div></div>  <br />
<br />
</span></span></span>[/SIZE]</span>[/SIZE]</span></span></span></span></span>[/FONT][/COLOR]<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font">في هذا المتغير عرفنا متغيريين من نوع نص اسم المتغير الاول <br />
والثاني L_name <br />
F_name <br />
</span></span>[/SIZE]</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><span style="color: darkred;" class="mycode_color">[SIZE=4]<span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: darkred;" class="mycode_color">[SIZE=4]<br />
4 - تعريف متغيرات مختلفة في نفس <br />
السطر (اي مختلفة في النوع اي متغير نصي ومتغير رقمي ومتغير منطقي) مثل <br />
<br />
<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String[/color][color=#007700], [/color][color=#0000BB]age [/color][color=#007700]As [/color][color=#0000BB]Integer[/color][color=#007700], [/color][color=#0000BB]marry [/color][color=#007700]As [/color][COLOR=#0000BB]Boolean</code></div></div>  <br />
<br />
<br />
<span style="color: #2e8b57;" class="mycode_color">لاحظ هنا اننا كتبنا المتغيرات جميعها بكلمة واحد فقط <br />
للتعريف وهي Dim<br />
<br />
</span><span style="color: purple;" class="mycode_color">5 - تعريف متغيرات من غير نوع في <br />
سطر واحد ونسب القيم لها مثل <br />
</span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Dim name [/color][color=#007700]As [/color][color=#0000BB]String [/color][color=#007700]= [/color][color=#DD0000]"mr.mohammed"[/color][color=#007700], [/color][color=#0000BB]age [/color][color=#007700]As [/color][color=#0000BB]Integer [/color][color=#007700]= [/color][color=#0000BB]12[/color][color=#007700], [/color][color=#0000BB]marry [/color][color=#007700]As [/color][color=#0000BB]Boolean [/color][color=#007700]= [/color][color=#0000BB]True[/color][/FONT][/COLOR]</code></div></div></span></span></span></span></span></span></span></span>[/SIZE]</span>[/SIZE]</span></span></span></span></span></span>[/COLOR]<span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><br />
لاحظ اننا عرفنا 3 متغيرات من انواع مختلفة منها النصي ومنها الرقمي ومنها <br />
المنطقي..<br />
6 - تعريف متغير من دون ذكر الكلمة Dim مثل :-</span></span></span>[/SIZE][/SIZE]</span></span></span></span><span style="color: #000000;" class="mycode_color"><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000bb;" class="mycode_color"><span style="color: purple;" class="mycode_color"><span style="font-size: 4pt;" class="mycode_size"><span style="color: darkred;" class="mycode_color">[SIZE=4]<span style="color: #000000;" class="mycode_color"><span style="color: #0000BB;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: darkred;" class="mycode_color">[SIZE=4]<span style="color: #000000;" class="mycode_color"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="color: #0000BB;" class="mycode_color"> <br />
</span></span></span><br />
</span></span><div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Name[/color][color=#007700]=[/color][color=#DD0000]"lo2i" [/color][/FONT][/COLOR]</code></div></div><br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #2e8b57;" class="mycode_color">طرق تعريف المتغيرات في البرنامج <br />
:_<br />
<br />
باستخدام الكلمة المحجوزة </span></span><span style="color: red;" class="mycode_color">static <br />
</span><br />
<br />
<span style="color: purple;" class="mycode_color">1 - يمكنك استخدمها بهذه الطريقة <br />
</span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB][/color][FONT=Simplified Arabic Fixed][color=#007700]Static [/color][color=#0000BB]name [/color][color=#007700]As [/color][color=#0000BB]String&nbsp;&nbsp;[/color][/FONT][/COLOR]</code></div></div><br />
<span style="color: #2f4f4f;" class="mycode_color">وسيبقى البرنامج محتفظاً بها داخل البرنامج من لحظة <br />
تشغيله إلى لحظة ايقافه<br />
المعلومات المستخدمة لاضافة المتغيرات باستخدام الامر <br />
Dim <br />
لاتختلف عن طرق اضافة المتغيرات في الاستاتيك static <br />
<br />
<br />
<br />
</span><span style="color: seagreen;" class="mycode_color">الفرق بين الكلمتين </span><span style="color: red;" class="mycode_color">Dim </span>و <span style="color: red;" class="mycode_color">static</span><br />
<br />
<span style="color: seagreen;" class="mycode_color">عندما تريد من المتغير ان يحتفظ باقيمة داخل اجراء خاص فقط تستخدم <br />
له هذه الكلمة </span><span style="color: red;" class="mycode_color">Dim </span><br />
<span style="color: seagreen;" class="mycode_color"><br />
عندما تريد من المتغير ان يحتفظ بقيمة المتغير طيلة فترة عمر <br />
البرنامج يمكنك استخدام هذه <span style="color: red;" class="mycode_color">Static </span>الانواع من المتغيرات <br />
</span><br />
<br />
مع التنبيه ان الكلمة <span style="color: red;" class="mycode_color">الاولى </span>تكون اخف على <br />
الذاكرة من الكلمة الثانية <br />
<span style="color: wheat;" class="mycode_color">لان الاولى تحتفظ بالقيمة داخل <br />
اجراء منفصل بها والثانية تحتفظ بها طيلة وقت البرنامج.<br />
</span><br />
<span style="color: navy;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size"><br />
انواع المتغيرات التي يمكن التعامل معها نوضح كل <br />
ذلك<br />
من خلال الجدول التالي </span></span><br />
<br />
</span><br />
</span></span>[/SIZE]</span>[/SIZE]</span></span></span></span></span></span></span><span style="font-family: arial;" class="mycode_font"><span style="font-weight: bold;" class="mycode_b"><span style="font-family: Simplified Arabic Fixed;" class="mycode_font"><span style="font-size: 4pt;" class="mycode_size">[SIZE=4]<span style="font-family: Simplified Arabic Fixed;" class="mycode_font">[SIZE=4]<span style="color: #000000;" class="mycode_color"><img src="https://vb4arb.com/vb/uploaded/5_51348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_51348343187.jpg]" class="mycode_img" /><br />
<br />
<img src="https://vb4arb.com/vb/uploaded/5_61348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_61348343187.jpg]" class="mycode_img" /><br />
<br />
<br />
<span style="color: #ff0000;" class="mycode_color">ويمكننا القول هنا ان انواع المتغيرات تنقسم إلى ثلاث اقسام رئيسية وهي كالتالي :-<br />
</span>[SIZE=3]<span style="color: seagreen;" class="mycode_color">1 - متغيرات عددية .</span><br />
</span><span style="font-size: 3pt;" class="mycode_size"><span style="color: seagreen;" class="mycode_color">2 - متغيرات نصية .<br />
3 - متغيرات منطقية. <br />
4 - متغير عام ويحمل كل هذه القيم .</span><br />
<br />
*******************************<br />
</span><span style="color: deepskyblue;" class="mycode_color"><span style="font-size: 5pt;" class="mycode_size"><br />
سوف اعطي هنا امثلة بسيطة عن المتغيرات النصية</span></span><br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][SIZE=3][COLOR=#0000BB]Dim NAME [/color][color=#007700]As [/color][/SIZE][SIZE=3][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Static [/color][color=#0000BB]NAME2 [/color][color=#007700]As [/color][/SIZE][SIZE=3][COLOR=#0000BB]String<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NAME [/COLOR][color=#007700]= [/color][/SIZE][SIZE=3][COLOR=#DD0000]"ali"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]NAME2 [/color][color=#007700]= [/color][/SIZE][SIZE=3][COLOR=#DD0000]"MOHAMMED"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]MsgBox[/color][color=#007700]([/color][color=#0000BB]NAME [/color][color=#007700]&amp; [/color][color=#DD0000]"&nbsp;&nbsp; " [/color][color=#007700]&amp; [/color][color=#0000BB]NAME2[/color]</code></div></div><span style="color: #007700;" class="mycode_color">)<br />
<br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #00bfff;" class="mycode_color">امثلة عن المتغيرات الرقيمة <br />
:_</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[FONT=Simplified Arabic Fixed][color=#0000bb]Dim num1 [/color][color=#007700]As [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#007700]Static [/color][color=#0000BB]num2 [/color][color=#007700]As [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]Integer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num1 [/COLOR][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num2 [/COLOR][color=#007700]= [/color][/FONT][FONT=Simplified Arabic Fixed][COLOR=#0000BB]10<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]num1 [/color][color=#007700]* [/color][color=#0000BB]num2[/color][/FONT][COLOR=#007700][FONT=Simplified Arabic Fixed])&nbsp;&nbsp;[/FONT]<br />
[/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #00bfff;" class="mycode_color">امثلة عن العمليات المنطقية في المتغيرات :-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim value [/color][color=#007700]As [/color][COLOR=#0000BB]Boolean<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value [/COLOR][color=#007700]= [/color][COLOR=#0000BB]True<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;value [/COLOR][color=#007700]= [/color][COLOR=#0000BB]false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]value[/color][color=#007700])[/color][/COLOR]</code></div></div><br />
<span style="font-size: 5pt;" class="mycode_size"><span style="color: #00bfff;" class="mycode_color">مثال على تعريف المتغير العام في البرنامج :-</span></span><br />
<br />
<div class="codeblock"><div class="title">كود :</div><div class="body" dir="ltr"><code>[color=#000000][COLOR=#0000BB]Dim s [/color][color=#007700]As [/color][COLOR=#0000BB]Object<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]12345<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]12.345<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#DD0000]"mohammed"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]s [/color][color=#007700]= [/color][COLOR=#DD0000]"lo2i"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[/COLOR][color=#0000BB]s [/color][color=#007700]= [/color][COLOR=#0000BB]True<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s [/COLOR][color=#007700]= [/color][COLOR=#0000BB]False<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MsgBox[/COLOR][color=#007700]([/color][color=#0000BB]s[/color][color=#007700])[/color][/COLOR]</code></div></div><br />
<span style="color: #ff00ff;" class="mycode_color">كما قلنا سابقاً يمكننا الاستعان بهذا النوع من المتغيرات اذا كنا غير متأكدين من المدخلات التي يدخلها المستخدم .<br />
<br />
</span>*************************************<br />
<span style="color: darkred;" class="mycode_color">[b]<div style="text-align: center;" class="mycode_align">المتغيرات والمساحات التخزينية التي تأخذها من الذاكرة توضحها الصورة التالية :-</div>
</span></span><br />
<img src="https://vb4arb.com/vb/uploaded/5_01348343187.jpg" loading="lazy"  alt="[صورة مرفقة: 5_01348343187.jpg]" class="mycode_img" /><br />
<br />
<span style="font-size: 4pt;" class="mycode_size"><span style="color: #9acd32;" class="mycode_color">طبعاً اخواني لن نستطيع ان نحصر كل خصائص المتغيرات والثوابت في هذا الدرس<br />
<br />
لذلك تركت لكم اسلوب التنقيب بنفسكم عن الحل لان هذا من اهم اساسيات تعلم البرمجة<br />
<br />
</span>واخيراً وليس اخراً اعتذر عن تأخر الدرس بسبب انقطاع الانترنت </span><br />
<br />
أبلغكم تحياتنا<br />
<span style="color: red;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size"><br />
[SIZE=4]<a href="http://vb4arab.com/vb/member.php?u=57241" target="_blank" rel="noopener" class="mycode_url"><span style="color: #22229c;" class="mycode_color">Lo2i</span></a> و </span>[/SIZE]</span><span style="font-size: 4pt;" class="mycode_size"><a href="http://vb4arab.com/vb/member.php?u=69705" target="_blank" rel="noopener" class="mycode_url"><span style="color: #800000;" class="mycode_color">Mohammed Asaad</span></a></span><span style="color: red;" class="mycode_color"><span style="font-size: 7pt;" class="mycode_size"><br />
انتظروا الدرس القادم</span></span><br />
*************</span>[/SIZE]</span>[/COLOR][/SIZE]</span>[/SIZE][/SIZE]</span>[/b]</span></div>]]></content:encoded>
		</item>
	</channel>
</rss>