متغيرهادر vb - تالار گفتمان آذر فروم





دعوت به همکاری با آذر فروم

 

متغيرهادر vb
زمان کنونی: 13-09-1395،09:10 ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: moderator
آخرین ارسال: moderator
پاسخ: 1
بازدید: 338

 
 
رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

موضوع: متغيرهادر vb
ارسال: #1
متغيرهادر vb
پست‌ها: 1,456
تاریخ عضویت: 22 اردیبهشت 1390
اعتبار: 36
حالت من: Ghafelgir
در برخی زبانهای برنامه نويسی (مثل Basic) ، نوع متغيرهای بکار رفته در برنامه، لازم نيست از قبل تعريف شده باشد و در هنگام اجرا، کامپايلر، خود، آن را به نوع مورد نياز (مثل Integer برای برای داده های عددی صحيح، يا String برای نوع داده رشته ای و کاراکتری و ...) تعريف و اجرا خواهد کرد. اما در برخی ديگر (مانند زبان برنامه نويسی Pascal)لازم است، نوع داده متغيرهای بکار رفته، در جايی از برنامه (و عموماً قبل از استفاده از آن) تعريف شوند.
در VB، از آنجا که VB از Basic برای کدنويسی استفاده می شود، به طور معمول، نياز به تعريف نوع داده ها نيست. اما از آنجا که امروزه برنامه نويسان ترجيح می دهند که از کامپايلری برای برنامه نويسی استفاده کنند که او را به تعريف تمام متغيرها مجبور کند (زيرا اگر چنين نباشد، اگر او به اشتباه دستوری را غلط تايپ کند (مثلاً بجای then بنويسد Then) ، کامپايلر آن را به عنوان متغيری فرض می کند و در واقع بدون اينکه ما خطايی را دريافت کنيم، در روند برنامه مان مشکل پيدا می شود و خطايی رخ می دهد که شايد تشخيص علت آن سخت تر شود) ، می توانيم VB را موظف سازيم تا ما را مجبور به تعريف نوع داده متغيرها نمايد.
اگر در ابتدای هر يونيت (Unit) عبارت Option Explicit نوشته شود، VB ما را مظف می کند که در آن يونيت، هر متغيری که بخواهيم استفاده کنيم، آن را قبل از استفاده، تعريف نماييم (لذا بهتر است ابتدای همه Unitها عبارت مذکور باشد) . يونيت (Unit) ها، بخش هايی از برنامه اند که در آنها کدنويسی می شود. مثلاً هر فرم، دارای يک Unit مخصوص به خود است که تمام Event Procedureهايی که تا بحال می نوشتيم، در آن قرار می گرفت.
همچنين اگر از منوی Tools گزينه Options را اتنخاب کنيم، و از لبه General (Tab Sheet) ، گزينه Require Variable Declare را چک مارک بزنيم، از اين پس، VB هر فرمی که ايجاد می شود، به طور پيش فرض عبارت Option Explicit را در ابتدای آن خواهد نوشت و در واقع هميشه ما را موظف می سازد که متغيرها را تعريف نماييم.
برای تعريف متغيرها از دستور Dim به شکل کلی زير استفاده می شود:
Dim variableNames As variablsType
به عنوان مثال دستور Dim a,b As Integer متغيرهايی را به نام a,b از نوع داده Integer (نوع داده عددی صحيح) تعريف می کند و سپس از آن می توانيم متغير a را در برنامه مقداردهی نماييم.
متغيرها را می توان در سه سطح تعريف نمود (Space of Variables) :
1- سطح پروسيجر (procedure Level) :
اگر متغيری در يک Procedure (و معمولاً ابتدای آن) تعريف کنيم، آن متغير را فقط در همان Procedure می توان استفاده نمود و در واقع برای همان Procedure خاص تعريف شده است.
2- سصح فرم (Form Level) :در سطح فرم (يعنی در ابتدای Unit مربوط به فرم و پس از عبارت Option Explicit) ، متغيرها می توانند به دو نوع تعريف شوند:
2-1- تعريف به صورت Private (شخصی) :
اگر متغيری در سطح فرم به صورت Private و به شکل کلی:
Private variableNames As variableType
تعريف شود، آن متغير فقط در تمام Procedureهای فرم قابل استفاده است و در فرم های ديگر قابل دسترسی و استفاده نمی باشد (مگر اينکه در آنها هم جداگانه تعريف شده باشد) .
2-2- تعريف به صورت Public (عمومی) :
اگر متغيری در سطح فرم، به صورت Public و به شکل کلی:
Public variableNames As variableType
تعريف شود، در اين صورت آن متغير علاوه بر دسترسی در همان فرم (بوسيله نام آن متغير) ، در فرمهای ديگر (در واقع در کل پروژه) قابل دسترسی خواهد بود. فقط در صورت نياز به استفاده در فرمهای ديگر لازم است نام فرمی را که متغير در آن تعريف شده است ذکر شود (البته اگر آن فرم load باشد) و سپس پس از يک نقطه (Dot) نام آن متغير آورده شود. به عنوان مثال اگر در ابتدای يونيت مربوط به Form1 نوشته شده باشد:
Public Number As Integer
و بخواهيم در فرمی ديگر، به آن مقداردهی کنيم، لازم است چنين بنويسيم:
Form1.Number = 15
توجه: اگر در سطح فرم از Dim برای تعريف استفاده شود، به طور پيش فرض آن را Private در نظر خواهد گرفت.
3- سطح ماژول (Module Level) :
ماژولها بخشی از پروژه هستند که متغيرها، توابع و Procedureهای عمومی (Global) را در آن تعريف می کنيم. اگر تعريفی (مثل تعريف نوع داده متغير يا يک Procedure) با Private انجام گيرد، فقط در همان ماژول قابل استفاده می باشد و اگر با Public صورت گيرد، در هر فرمی و بدون نياز به نوشتن نام ماژول در ابتدای آن، قابل استفاده خواهد بود. نکته ای که بايد توجه داشت اينکه اگر بخواهيم از متغيريا Procedureای که در يک ماژول به صورت Public تعريف شده است، در ماژولی ديگر استفاذه کنيم، ذکر نام ماژول در ابتدای آن به همراه يک نقطه (Dot) ضروری است.
معمولاً از تعريف Public در ماژول زمانی استفاده می کنيم که بخواهيم متغير يا Procedureای به صورت Global (عمومی) در سراسر پروژه استفاده شود. شايد بگوييد می شود در هر فرمی که به آن نياز داريم، همانجا متغير را تعريف می کنيم، پس چه نيازی به ماژول داريم؟
هر چند اين کار باعث می شود که برنامه خطای دستوری از ما نگيرد اما در اينصورت وقتی از فرمی به فرم ديگر می رويم مقدار موجود در آن متغير، پس از تعريف مجدد، دوباره Null (تهی) می شود، در حاليکه اگر از يکبار تعريف Public در ماژول استفاده کنيم، پس از مقدار دهی در جايی از پروژه، تا مقداردهی مجدد، اين مقدار در تمام پروژه قابل دسترسی است.
برای افزودن يک ماژول به پروژه کافی است از منوی Project گزينه Add Module را انتخاب کنيد و آن را (با پسوند .BAS) save نماييم.
همانطور که ملاحظه می فرماييد، ماژولها تنها بخش کدنويسی (Unit) دارند بر خلاف فرمها که يک بخش Interface (ظاهری) داشتند که کنترلها را به صورت Visual روی آن قرار می داديم و يک بخش کدنويسی (Unit) که کدهای مربوط به Event Procedureها را در آن می نوشتيم. همچنين ملاحظه می فرماييد که با توجه به وظيفه ماژولها، معمولاً در کل پروژه اولاً به يک ماژول نيازمنديم ثانياً به بيش از يک ماژول احتياجی پيدا نمی کنيم.
نکته: علاوه بر متغيرها می توانيم از ثوابت (Constants) نيز در پروژه استفاده کنيم. ثوابت، بخشی از پرونده اند که هنگام تعريف، مقداردهی می شوند و تا پايان پروژه مقدارشان ثابت می ماند. برای تعريف ثوابت از دستور Constant استفاده می شود به عنوان مثال:
Const PI As single = 3.14
















گوزلیم عکسین دوشوب پیماندن پیمانیه

گوندریب عشقین منی میخاندن میخانیه

گئتمیشم میخانیه من دردیمه درمان اولام

دردیمی بیر بیر دیم من ساغر و پیمانیه

دردیمه درمان شراب اولدو حبیبیم ساقی لر

گوندریب عشقیم منی گور هانسی داروخانیه


[عکس: images?q=tbn:ANd9GcTiJ4evUTSiPaWN4c5Iczp...VY2wXNRMnQ]
17-06-1390 01:04 ق.ظ
 


[-]
پاسخ سریع
پیام
پاسخ خود را برای این پیام در اینجا بنویسید.


کد تصویری
royalfuns
(غیر حساس به بزرگی و کوچکی حروف)
لطفاً کد نشان داده شده در تصویر را وارد نمایید. این اقدام جهت جلوگیری از ارسال‌های خودکار ضروری می‌باشد.

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان