PDA

View Full Version : تعريف متغير global



rahjoya
سه شنبه 26 آذر 1387, 13:20 عصر
يك متغير global را در كجا بايد تعريف كرد تا تمام پروژه آنرا بشناسد؟
آيا ميتوان مقدار يك متغير را بعد از اجراي برنامه و خارج شدن از آن نگه داشت تا براي دفعه بعد كه برنامه اجرا ميشود از آن استفاده كرد؟

arash_ebrahimi_nk
سه شنبه 26 آذر 1387, 13:59 عصر
معمولا به این صورت: (به جایگاه متغیّر x از نوع Integer که بصورت عمومی تعریف شده توجه کنید).


var
Form1: TForm1;
x : Integer

implementation

{$R *.dfm}


در مورد سوال دوم فکر کنم باید متغیر مورد نظر رو بر روی فایل یا در رجیستری نگه دارید (خود ویندوز اغلب متغیّرهای مورد نیاز رو در رجیستری ذخیره میکنه).

rahjoya
شنبه 30 آذر 1387, 10:06 صبح
از راهنماييتان متشكرم
من متغير را همينطور كه گفتيد در يك فرم تعريف كردم، متغير از نوع string است. اما در فرمهاي ديگه كه ميخواهم استفاده كنم آنرا ميشناسد اما مقدار درونش را خالي كرده و محتواي آنرا نگه نداشته است.

arash_ebrahimi_nk
شنبه 30 آذر 1387, 12:05 عصر
اگر میخواهید در فرم های دیگه ازش استفاده کنید میتونید اون را در قسمت Public تعریف کنید.
البته در همین جا هم میشه؛ باید در یونیت های دیگه قبل از اسم متغییر اسم یونیتی که متغیّر توش تعریف شده رو بیاری؛ مثلاً اگر متغیّر x در Unit1 ذخیره شده باشه در Unit2 باید به اینصورت از اون استفاده کنی:

Unit1.x
در ضمن "محتوا = مقدار درون اون" (از نظر معنی فارسی میگم) بهتره سوالت رو با مثال بگی.

mafazel
شنبه 30 آذر 1387, 12:06 عصر
1- کلا هر چیزی که در یک یونیت زیر interface و بالای implementation نوشته بشه از یونیتهای دیگه قابل دسترسی هست و به عبارت دیگه در پروژه سراسریه و اگر در زیر implementation نوشته بشه "فقط" در "همه جای" اون یونیت قابل دسترسیه.
2-خالی اش نمی کنه. احتمالا خودتون اونو در جای دیگه خواسته یا نا خواسته مقدار دادید. یا اصلا مقداردهی که شما فکر میکردید در جایی انجام شده، در واقع انجام نشده. بهر حال ایراد از جای دیگه ای است. یکی از دلایل توصیه به عدم استفاده از متغیر سراسری همین مشکلات است.
برای ذخیره یک مقدار در خارج شدن از برنامه و بازیابی در اجرای دوباره، ساده ترین راه استفاده از یک فایل text یا صورت تخصصی تر و بهتر آن استفاده از فایل ini است که توابع ساده برای خواندن و نوشتن دارد. البته این فایل در اختیار کاربر هست. اگر ضروری هست که کاربر اونو نبینه در یکی از فولدرهای ویندوز ذخیره کنید (مثلا C:\Windows یا C:\Windows\System32). اگر بصورت تخصصی میخواهید با قضیه برخورد کنید از رجیستری استفاده کنید.
مثال این دو روش (فایل متنی و رجیستری) توی اینترنت و سایت زیاده.