PDA

View Full Version : سوال: کاربرد halt چیه؟



mbshareat
شنبه 27 آذر 1400, 00:31 صبح
سلام
گاهی برنامه به خطاهای گنگ میخوره و فقط میخوایم برنامه رو ببنیدم.
1.اگر در OnClose یا OnCloseQuery کدی داشته باشیم بعد از اجرای Halt آیا کدش اجرا میشه؟
2.آیا برنامه بی درنگ بسته میشه و مثلا حافظه رزو شده برای بیت مپ و استرینگ لیست و غیره آزاد نمیشه؟
میشه کمی توضیح بدید
من میخوام بشه در صورت بروز بعضی خطاها ( مثلا Access violation)با ApplicationEvents-Exception با اجرای Halt برنامه رو بست. میخوام بدونم آیا مشکلی پیش میاد.
علاوه بر این گاهی ابتدای بالا اومدن برنامه فایلها رو میخونم و یک نقص در فایل هست و میخوام فی الفور برنامه رو ببندم.
3.میخوام بدونم آیا سطرهای بعد از پروسیجر جاری اجرا میشه؟ یا مثل Application.Terminate برنامه هنوز به کار خودش ادامه میده تا فرصت مناسب ؟

یوسف زالی
شنبه 27 آذر 1400, 01:16 صبح
سلام.
Halt صاف برنامه رو می پوکونه. بدون هیچ چیز اضافه ای، حافظه ها یهو ول می شن و هیچ دستور دیگه ای بعدش ران نمی شه.
تقریبا نباید هیچ وقت از اون استفاده کنید.

mbshareat
شنبه 27 آذر 1400, 12:02 عصر
ممنون. گاهی به دردم میخوره.
چون دیگه لازم نیست از مقدار بازگشتی و تنظیم و بررسی متغیر برای خروج از حلقه و پروسیجر استفاده کنم و لازم نیست نگران باشم که شاید روند معمولی هنگام بستن پنجره اجرا میشه( اگر بخوام اجرا بشه هم خودم اجراش می کنم بعد Halt اجرا می کنم)
کلا عشق نابود کردن هستم!

یوسف زالی
شنبه 27 آذر 1400, 12:43 عصر
خب اینطوری هرچی حافظه گرفتی آزاد نمی شه
راه خوبش استفاده از Terminate و در خط بعدیش بلافاصله Exit کردن است

mbshareat
دوشنبه 29 آذر 1400, 22:33 عصر
بله درسته اما گاهی خیلی مهم نیست که یه مگ یا جند کیلو بایت از حافظه آزاد نشه ولی کد سر راست تر میشه و لازم نیست چیزی رو بررسی کنیم.:گیج:
بهترین راه حل مساله پاک کردن صورت مساله است!:تشویق: (از روش خودم!!)

یوسف زالی
سه شنبه 30 آذر 1400, 02:44 صبح
پیداست به خاطر فری نکردن حافظه تو مالتی ترد، 90 میلیون ضرر نخوردی عاشقی یادت بره

mbshareat
پنج شنبه 02 دی 1400, 14:56 عصر
نه بابا. تازه فهمیدم که چنین چیزی وجود داره. از اون کارهای بزرگ به ما نمیاد. من فقط یه برنامه دارم که ده ساله دارم توسعه اش میدم.:بامزه:
بعضی اشتباهات رو هم صدها بار تکرار کردم. مثل خارج نشدن از حلقه- جابجایی کد- استفاده از متغییر از نوع بی علامت و کوچک که باعث سرریز شده - استفاده از I به جای J( هنگام کپی کد و دست نزدن به متغیر)
فراموش کردن مقداردهی متغییر عددی- خوندن کارکتر بعد از پایان رشته و اشکالات گفتاری و اصالتا غیر برنامه نویسی زیاد.
شاید بعد از ده زندگی به پای شما رسیدم. شما فقط لطف می کنید جواب میدید.:لبخند:

یوسف زالی
جمعه 03 دی 1400, 09:08 صبح
من مخلصم، لطف شماست، :قلب:

mbshareat
یک شنبه 05 دی 1400, 23:07 عصر
درخت میوه وقتی بار بده افتاده میشه. من هم مثل بقیه بابت محبت و صبر و حوصله شما ممنونم.:تشویق: