MANSUR

تعلم اليوم - المتغيرات في الVB

6 ردود في هذا الموضوع

[C][F=4][F=Red][F=Andalus] بسم الرحمن الرحيم[/F][/F][/F][/C]

[F=Blue]اشكر جميع من راسلني خلال فترة الانقطاع عن المنتدى واخص بالشكر الاخ Hello وأعتذر اشد الاعتذار

لوجود ظروف كانت تعوق تواصلي مع المنتدى الا في فترات قليلة لا تذكر ...

وسنستأنف دروسنا ان شاء الله ودرسنا اليوم هو عن شي مهم وأساسي في الفيجول بيسك له دور كبير

في انجاح برنامجك من ناحية تعامله مع الذاكره وكثير منا يغفل ذلك الامر ويهتم بإخراج البرنامج فقط

ولا يعلم عن تعامله مع الذاكره

الدرس هو :

[/F]

[C][F=Maroon][F=6]المتغيرات[/F][/F][/C]

معنى المتغير : المتغير هو اسم تستعمله لحمل قيمه متغيره مثل ان تسأل المستخدم عن اسمه

فاسم المستخدم قيمه متغيره لأنك لآتعرفه فمن الممكن ان يكون فهد او منى او اي اسم آخر

لذلك نستخدم له متغير كما في المثال التالي

username = InputBox("أدخل اسمك لو سمحت")

يقوم الامر inputbox بعرض مربع حوار على المستخدم لإدخال اسمه ويقوم الامر بتخزين الاسم

الذي يدخله المستخدم في المتغير usernameويبقى هذا المتغير يحمل هذه القيمة حتى يدخل

المستخدم اسم آخر فيلغي القيمه القديمة ويضع مكانها الجديده .

[F=Red]شرط لاستخدام المتغيرات[/F]

* يجب الانتباه الى عدم استخدام الاسماء المحجوزة من قبل الفيجول بيسك كمتغيرات مثل استخدم

print او len ....

[F=Red]انواع المتغيرات[/F]

1- Integer معناه عدد صحيح 2 بايت يبدأ من -32768 إلى 32767

=============================================================================

2- long معناه عدد صحيح 4 بايت يبدأ من -2147483648 إلى 2147483674

=============================================================================

3- Single معناه عدد ذو علامة عشرية عائمة 4 بايت ( Floation Point )

FROM -3.402823E38 TO -1.401298E-45

قيمه سالبة

FROM 1.401298E-45 TO 3.402823E38

قيمه موجبه

=============================================================================

4- DOUBLE عدد ذو علامة عشرية عائمة 8 بايت

FROM -1.79769373486232D308 TO - 4.9406564584124D-324

قيمة سالبة

FROM 4.9406564584124D-324 TO 1.79769373486232D308

قيمة موجبه

=============================================================================

5-Currency عدد ثابت ذو علامة عشرية ثابتة (Fixed Point )

From -922337203685477.5808 to 922337203685477.5807

=============================================================================

6-String مجموعة من الحروف من 0 الى 65.500 حرف تقريبا

=============================================================================

7- Variant متغير يوضع فيه الوقت -التاريخ -عدد ذو علامة عشرية عائمة -سلسة حروف

التاريخ من 1يناير 0000 إلى 31 ديسمبر 9999

الاعدد مثل المتغير Double

الحروف مثل المتغير String

=-=-=-=-=-=-=-=-=-=-=-=--=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

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

DIM NAME 

يعتبرها Variant

[F=Red]الاعلان عن المتغيرات[/F]

معناه اصدار أمر للفيجول بيسك تخبره باسم المتغير ونوعه مثل

DIM NAME AS STRING

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

عملية الاعلان ليست مفروضه على المبرمج وإنما اختيارية ويمكنك ان تضع عدة متغيرات بدون تعريفها .

[C][F=Blue][F=5]فما فائدة الاعلان عن المتغيرات اذن ؟؟؟؟؟[/F][/F][/C]

[M-l][F=Red]هذا ما سنعرفه في الدرس القادم ان شاء الله[/F][/M]

[M][F=Red]هذا ما سنعرفه في الدرس القادم ان شاء الله[/F][/M]

اخوكم

[عدلت بواسطة MANSUR ت:27-04-2001 س: 02:09 AM]

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

الحمدلله على السلامة اخوي منصور وإن شاء الله يكون سبب انقطاعك عن المنتدى مانع خير إن شاء الله :)

هذا انت رديت لنا وكعادتك في جعبتك الكثير والكثير...الله يعطيك العافيه.

Welcome Back

وشكرا

________

dollar6.gif

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

[F=Maroon]استكمالاً لما بدئناه بالحديث عن المتغيرات يسرنا أن أوضح لكم اليوم فائدة الاعلان عن المتغيرات

إن عدم الاعلان عن النتغيرات قد يؤدي إلى أخطاء خفيه في برنامجك ( بس تدوخ مالقيتها ) فمثلاً

UserName=inputbox ("أدخل اسمك ")

magbox ("اسمك هو"& UseName )

في هذا الكود يفترض ان تدخل اسمك والسطر الثاني يعطيك رساله يقول فيها اسمك هو ..

ولكن ولوجود اختلاف في اسم المتغير في السطر الثاني وهو UseName عن السطر الأول وهو UserName سوف

تكون الرساله بدون ذكر اسمك الذي أدخلت لأن الفيجول بيسك سيعتبره متغير جديد لا يحمل اي قيمه .

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

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

ما هو الحل ؟

لحل المسأله يمكنك كتابة الجملة الاتية في قسم الاعلانات في النموذج الامر هو Option Explicit

هذا الأمر يقوم برفض اي متغير لم يعرف ( اي لم يعلن عنه ) والاعلان عن المتغيرات كالتالي

Dim VBNAME AS String ولكن هذا الامر سوف يعمل مع النموذج المكتوب فيه فقط فإذا كان لديك

مجموعة نماذج فمن قائمة Tools اختر Option ثم Editor ثم ضع علامة صح أمام Requir Variable Declarations

وسوف يقوم الفيجول بيسك بإضافة الجملة Option Explicit في كل نموذج تنشئه .

يتم الاعلان عن المتغيرات بإحدى الاوامر الاتية Dim , Global , static

ويتم اختيار احدها حسب الحاجة وسوف أبين الفرق بينهم ان شاء الله .

[/F]

[C][F=5][F=Red]المتغيرات العامة : Global Variable[/F][/F][/C]

وهذا المتغير يمكنك استخدامه من أي مكان في البرنامج أي أن مداه يشمل البرنامج بجميع ملفاته

ونوافذه ويبقى في الذاكره حتى تنهي البرنامج ويتم الاعلان عنه في ملف برمجه أو ( مود يول ) بالصيغة

الأتية Global Mename AS string

[C][F=5][F=Red]المتغيرات على مستوى النموذج ( الفورم ): Global Variable[/F][/F][/C]

وهي متغيرات محدودة بالنموذج فقط ولا يمكن استعمالها في النوذج الثاني وهذه ايضاً تبقى في الذاكره

حتى ينتهي البرنامج والفرق بين المتغير العام وبين هذا المتغير فقط في المدى فالاول يستخدم من

اي مكان بينما هذا من الفورم الموجود فيه فقط .ويتم كتابته في قسم الاعلانات في النموذج ( الفورم )

بالصيغة الأتية Dim Mename as strig

[C][F=5][F=Red]المتغيرات المحلية على مستوى الاجراء Global Variable[/F][/F][/C]

وهذا النوع هو من اقصر المتغيرات من حيث المدى حيث يقتصر عمله على الاجراء (Procedure) الذي

أعلن عنها فيه ولا يمكن استخدامها في خارج نطاقه . ويتم الاعلان عن المتغير داخل الاجراء نفسه كالتالي

Private Sub Command1_Click()
Static s As Integer
s = s + 10
Text1.Text = s
End Sub

ولو جربت في المثال السابق تبديل الـ static بـ Dim سوف تجد أن القيمة ثابته لأن S تزال من

الذاكره وتصبح قيمتها صفر وطبعاً 0+10 =10 في كل مره بينما static يبقي قيمة المتغير في الذاكره

فيكون الاتي : قيمة الـ S هي 10 في البداية ثم تنقل للذاكره 10 وتبقى هناك وعند استدعاء الاجراء

مره أخرى يكون 10+sالموجوده بالذاكره =20 ثم تنقل ال 20 للذاكره وتبقى هكذا .

ويختلف عمر المتغير حسب طريقة الاعلان عنه فإذا أعلنت عنه بستخدام الامرDim فإن فيجول بيسك

يزيل المتغيرمن الذاكره بعد انتهاء الاجراء وبالتالي تفقد قيمتها ويتم استرجاع قيمة الذاكره

المحجوزه لها وعند استدعاء الاجراء مره اخرى تحجز الذاكره مره ثانية وهذا النوع من المتغيرات مفيد

جداً للمتغيرات المؤقته لقلة استهلاكه للذاكره .

[C] [note ][LT ][F=7][F=Blue]خلاصة الحديث[/F][/F][/note ][/C]

انه يجب عليك ان تحدد مدى المتغير الذي تريد استخدامه منعاً لستهلاك الذاكره بدون داع فإذا كنت

تحتاج استخدام متغير في أكثر من نافذه ( نموذج او فورم ) فيجب ان تعلن عنه

كمتغير عام Global Vairabal

واذا كنت تحتاجه داخل النموذج فقط تعلن عنه داخل النافذه فقط واذا كنت تحتاج احتياج مؤقت اعلن عنه داخل

الاجراء

اشكر لكم متابعتكم واقدم شديد اعتذاري على قصور ما أقدم فلكم علينا الحق الكثير والشكر لمن اهدى إلي

الملاحظات فأنا بأشد الحاجة إليها .

اخوكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

الموضوع جميل تسلم ;)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

فعلاً استاذ

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .