میدان دید متغیر یعنی چه ؟
سلام دانش آموزان عزیز !!!
برای شروع باید بگویم که ما سه نوع میدان دید متغیر داریم .
1 ـ متغیر هایی که میدان دیدشان فقط در سطح روالی می باشد که در آن تعریف شده اند .
برای ساخت اینگونه متغیرها باید آنها را داخل بدنه روال مورد نظر تعریف کرد و نیز از حکم Dim استفاده کرد . مثال
برای ساخت اینگونه متغیر ها باید آنها را داخل بدنه روال مورد نظر تعریف کرد و نیز از حکم Dim استفاده کرد . مثال :
Private Sub Form1_Load
Dim A as Single
End Sub
بطور مثال شما متغیری را داخل روال form_Load یک فرم تعریف می کنید . در این صورت باید بدانید که متغیرها فقط در داخل روال form_Load شناخته شده هستند و روالهای دیگر این متغیر ها را نمی شناسند و نمی دانند که از چه نوعی هستند . مثلا اگر داخل روال S1 یک متغیر عددی به اسم a تعریف کنیم و مقدار 10 را در آن ذخیره کنیم و سپس بخواهیم داخل روال S2 مقدار آن را با 2 جمع کنیم می بینیم که مقدار a همان 2 است و خبری از 10 نیست که با 2 جمع شود و حاصل ان 12 شود . علت هم این است که روال S2 متغیر a را نمی شناسد تا بداند که مقدار آن 10 است و مقدار آن را صفر می داند و صفر را با عدد 2 جمع می کند و حاصل را 2 می آورد .
2 ـ متغیرهایی که میدان دیدشان در سطح فرم می باشد .
برای ساخت اینگونه متغیر ها باید آنها را در قسمت General فرم مورد نظر تعریف کرد و نیز از حکم Dim استفاده کرد .
برای ساخت اینگونه متغیر ها باید آنها را در قسمت General فرم مورد نظر تعریف کرد و نیز از حکم Dim استفاده کرد .
اینگونه متغیر ها در سطح فرم ، هر روالی که نوشته شود و یا وجود داشته باشد قابل دسترسی می باشند . این مطلب شامل روالهای سایر کنترلهایی که روی این فرم قرار دارد نیز می شود . مثلا روال کلیک دکمه فرمان یا غیره ...
3 ـ متغیرهایی که میدان دیدشان در سطح پروژه می باشد .
برای ساخت اینگونه متغیر ها باید یک ماژول باز کرد و سپس متغیر را در آن ماژول تعریف کرد و نیز ار حکم Global استفاده کرد . با بقیه فرق دارد . درسته ؟ به جای Dim از Global استفاده کردیم . بدین صورت :
برای ساخت اینگونه متغیر ها باید یک ماژول باز کرد و سپس متغیر را در آن ماژول تعریف کرد و نیز ار حکم Global استفاده کرد . با بقیه فرق دارد . درسته ؟ به جای Dim از Global استفاده کردیم . بدین صورت :
Global A as Single
این متغیر ها در تمامی روالها و فرم هایی که در پروژه قرار دارند قابل دید می باشند و مقدار آنها قابل دسترسی و تغییر می باشد .
یک نصیحت :
سعی کنید از متغیرهایی که میدان دیدشان از نوع اول می باشد استفاده کنید . تداخل داده ها باعث بروز خطاهایی می شود که ویژوال بیسیک به ِاداوری آنها نیست به همین دلیل سما گیج می شوید و نمی توانید عیب برنامه خود را پیدا کنید . در مثال نوع اول دیدید که ما انتظار دریافت عدد 12 را داشتیم اما عدد 2 حاصل شما شد . این یک اشتباه منطقی می باشد و هیچ کامپایلری نمی تواند تشخیص دهد که شما عدد 2 را می خواستید و یا عدد 12 را . این شما هستید که باید این اشکالات را پیدا کنید . اگر از متغیر هایی که دیدیشان از نوع اول می باشد کمتر به اینگونه اشکالات بر می خورید .
در صورت ناچاری از متغیرهای سطح فرم ( نوع دوم ) استفاده کنید و اگر با این نوع متغیر هم نیازتان بر طرف نشد از متغیر سطح پروژه ( نوع دوم ) استفاده کنید . اما بعدا خواهید دید که متغیر های سطح روال از همه بیشتر کاربرد دارند .
ادامه دارد ...
آخرين ويرايش 2006-04-03 12:19:34