View Full Version : سوال: سوال در مورد Uses
سیروس مقصودی
شنبه 12 تیر 1395, 17:58 عصر
با سلام
وقتی ما میخواهیم از یک unit استفاده کنیم در برنامه با دستور uses آنرا فراخوانی میکنیم و از متغییرها وتوابع آن Unit استفاده میکنیم . آیا دستوری وجود دارد که با اجرای آن دستور کلیه متغییرها و توابع موجود در آن Unit را از حافظه خارج کنیم ؟ (بیشتر برای آزادسازی حافظه میخواهم)
با تشکر
ابوالفضل عباسی
دوشنبه 14 تیر 1395, 09:38 صبح
بنظر شما با این روش فضای حافظه تان آزاد میشود؟:متفکر:
نمیدونم که حافظه آزاد میشه یا نه، ولی شاید این فرمان کمک کنه:
system.FreeAndNil(I)
بجای system اسم یونیتی که میخواهید ازش متغیر آزاد کنید و بجای I اسم متغیر رو بنویسید که بهتره تمام متغیر هارو در یک string list بنویسید و اون با فرمان بالا تمامی اسامی متغیر های موجود string list رو free کنید.
شاید کمک کنه ولی ممکنه پروژه مشکل پیدا کنه.
یوسف زالی
دوشنبه 14 تیر 1395, 10:54 صبح
خودتون تا حالا این کد رو ران کردید؟!!
اسم یونیت به جای سیستم؟
با آزاد شدن فرم، تمام فرزندان آن هم آزاد خواهند شد.
استفاده نکردن از تابع، چنانچه در خود تابع عملیات درستی برای آزاد سازی حافظه صورت گرفته باشه، سرباری نخواهد داشت. در خصوص متغیر ها هم می تونید اونها رو به درون کلاس ببرید، و بعد از کار باهاشون شی رو آزاد کنید، اما مگر چند متغیر عمومی دارید که نگران حافظه مصرفی هستید؟
سیروس مقصودی
دوشنبه 14 تیر 1395, 11:15 صبح
با تشکر
نحوه آزاد سازی متغییر چگونه است ؟
اگر نام متغییرها را در داخل آرایه بریزم و بخواهم از طریق آرایه متغییرها را آزاد کنم چگونه است ؟
با تشکر
Mahmood_M
دوشنبه 14 تیر 1395, 17:57 عصر
اصولا نباید نگران آزادسازی متغیرها باشید
متغیرهای عمومی در ابتدای کار برنامه فضایی رو رزرو می کنن و در انتهای کار برنامه هم فضا آزاد میشه
برنامه نویس فقط مسئوال آزاد سازی فضاهایی هستش که در طول اجرای برنامه رزرو کرده
اگر یک Object رو Create می کنید، باید اون رو Free کنید
اگر یک فایل رو باز می کنید ( AssignFile ) باید اون رو ببندید ( CloseFile )
اگر یک پکیج ( یا DLL ) رو لود می کنید، باید اون رو آزاد کنید
سه مورد اصلی که برای برنامه مشکل حافظه ایجاد می کنه موارد بالاست
این عملیات باید با استفاده از try ... finally مدیریت بشه
برای متغیرهای محلی هم نیازی به آزاد سازی دستی نیست و توسط خود دلفی و سیستم عامل مدیریت میشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.