PDA

View Full Version : مبتدی: مشکل در تعیین میدان دید یک متغییر



maktabi
پنج شنبه 05 مرداد 1391, 15:25 عصر
سلام

من می خواستم یک متغییر ایجاد کنم ، بدون اینکه اونو فراخوانی کنم ، یعنی می خواستم تا متغییر تعریف بشه ، ولی کاربر اونو نبینه ، تا بتونه حدس بزنه مقدار اون متغییر چنده ( یه بازیه )

متغییر از نوع Int Rnd بود ، یعنی عدد تصادفی ، خب واضحه که اگر من متغییر رو در یک فرم مثلاً Label یا command تعریف میکردم ، عمر متغییر وابسته به عمر فرم میشد و من اینو نمی خواستم ( من میخوام در تمام طول برنامه متغییری که تصادفی انتخاب شده ، مقدارش ثابت بمونه)

پس از نظر خودم (مبتدی) دو راه بشتر نداشتم

راه اول ) متغییر رو در بخش Option Explicit تعریف میکردم
راه دوم ) متغییر رو در فرم اصلی یا همون قرم زمینه تعریف میکردم


خب ، زمانی که متغییر رو در Option Explicit تعریف میکردم ، برنامه err زیر رو میداد


Invalid outside procedue

و قسمت Rnd متغییر رو بعنوان بخش قابل تصحیح نشانه گزاری میکرد ، در صورتی که من همین متغییر رو بار ها مورد استفاده قرا دادم و از صحت اون اطمینان کامل دارم


و راه دوم : من زمانی که متغییر رو در رویداد فرم اصلی قرار میدادم :


Private Sub Form_Load()
x = Int(Rnd * 10) + 1
End Sub

بازم با err زیر مواجه میشدم


Variable not Defined


حالا میشه دوستان راهنمایی کنن که من باید این متغییر پایین رو کجا و چگونه تعریف کنم که بتونم در هر فرمی اونو فراخانی کنم؟

راستی ببخشید یادم رفت کد رو بزارم :


x = Int(Rnd * 10) + 1

barnamenevisforme
پنج شنبه 05 مرداد 1391, 15:31 عصر
سلام
یه module به برنامتون اضافه کنید و متغیر از نوع public در اون تغریف کنید.

arenaw
دوشنبه 09 مرداد 1391, 01:07 صبح
سلام
شما نوع متغیر رو میتونید تو قسمت جنرال تعریف کنید:
dim adad as integer

بعد توی فرم لود مقدار بهش بدید:
randomize timer
adad = int(rnd * 10) + 1

(اون randomi... واسه اینه که هر دفعه عدد تصادفی تولید بشه، اگه تازه کار هستید بهش توجه نکنید)