امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
عدم توانايي در بستن برنامه
نویسنده پیام
Majid_Ebru آفلاین
كاربر دو ستاره
**

ارسال‌ها: 153
موضوع‌ها: 32
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 350
( 59 تشکر در 32 ارسال )
ارسال: #1
عدم توانايي در بستن برنامه
سلام
خيلي خيلي خوشحالم كه سايت از ف ي ل ي ت ر در اومد.
آقا فقط خواهش مي كننم نخنديد ؟!؟ يه سوال مبتدي دارم؟
.
.
.
يه برنامه دلفي دارم كه توش يه فورم هست و يه Datamodule و توي datamoudel يه Mainmenu .من اين Mainmenu به فورم اصلي نسبت دادم ( توي فورم ازش استفاده كردم ) حالا توي Mainmenu يه گزينه خروج دارم .اما نمي تونم از دستور Application.terminate استفاده كنم؟؟؟من Unit هر دوتا ، يعني هم فورم و هم Datamodule رو هم اضافه كردم . اما كار نمي كنه؟
فقط با اين دستور مشكل دارم؟با بقيه اي دستورات مشكلي ندارم؟
ببخشيد سوال خيلي مبتدي بود
با تشكر

یاس : پس باخت کسی که به حمله نرفت .
احتیاج ، مادر اختراع
۲۸-خرداد-۱۳۸۹, ۱۰:۱۳:۱۸
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: عدم توانايي در بستن برنامه
از این کد استفاده کن
کد:
halt;

اگه جواب ندارد از این کد استفاده کن

کد:
TerminateProcess(GetCurrentProcess,0);

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۸-خرداد-۱۳۸۹, ۱۰:۱۸:۱۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Majid_Ebru
Majid_Ebru آفلاین
كاربر دو ستاره
**

ارسال‌ها: 153
موضوع‌ها: 32
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 350
( 59 تشکر در 32 ارسال )
ارسال: #3
RE: عدم توانايي در بستن برنامه
سلام
ممنون كه جواب داديد..اما
1- دستور Halt با Application.terminate چه فرق داره؟
2-دستور دوك رو كه اصلن نمي دونم چي ؟ لطفا بشتر توضيح بديد؟
3-آيا اين دستور ميتونه جواب سوال من باشه (تازه پيداش كردم) Application.mainform.terminate ?
ممنون

یاس : پس باخت کسی که به حمله نرفت .
احتیاج ، مادر اختراع
۲۸-خرداد-۱۳۸۹, ۱۰:۲۶:۵۲
وب سایت ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #4
RE: عدم توانايي در بستن برنامه
Halt: تابعی برای خروج اضطراری از برنامه هست که توسط سیستم عامل ارائه میشه.

Application.Terminate: تمام منابع برنامه در حافظه را آزاد میکنه، و از Process خارج میشه. برای این منظور، Application.Terminate از تابع PostQuitMessage با پارامتر 0 استفاده میکنه که به سیستم اعلام میکنه این Thread (یعنی Thread اصلی برنامه) قصد خروج به صورت عادی را داره.

TForm.Close: برای فرم های عادی، فقط موجب بسته شدن فرم مربوطه میشه. فرم آزاد نمیشه، مگر اینکه برنامه نویس در رویداد OnClose صراحتا اعلام کنه که میخواد فرم را آزاد کنه. اگر متد Close مربوط به فرم اصلی برنامه فراخوانی بشه، علاوه بر بسته شدن فرم اصلی برنامه، متد Application.Terminate هم فراخوانی میشه؛ پس متد Close فرم اصلی معادل استفاده از Application.Terminate هست، با این تفاوت در صورت استفاده از متد Close رویدادهای OnCloseQuery و OnClose فرم اصلی هم فراخوانی میشند، ولی در صورت استفاده از Application.Terminate این رویدادها فراخوانی نمیشند.

TerminateProcess:هم از توابع api هست که پروسه رو میبنده

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۸-خرداد-۱۳۸۹, ۲۱:۱۹:۳۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Majid_Ebru, __Genius__
Majid_Ebru آفلاین
كاربر دو ستاره
**

ارسال‌ها: 153
موضوع‌ها: 32
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 350
( 59 تشکر در 32 ارسال )
ارسال: #5
RE: عدم توانايي در بستن برنامه
(۲۸-خرداد-۱۳۸۹, ۱۰:۱۸:۱۹)lord_viper نوشته است: از این کد استفاده کن
کد:
halt;

اگه جواب ندارد از این کد استفاده کن

کد:
TerminateProcess(GetCurrentProcess,0);

سلام
دستور اول كار كرد.ممنون
اما دستور دوم كار نكرد
.
.
.
متاسفانه من با Datamodule‌مشكل دارم .اولش فكر مي كردم فقط با Manimenu كه توي datamodule گذاشتم مشكل دارم اما حالا متاسفانه با بقيه كامپوننت هاي كه توي Datamodule ميزارم ، هم مشكل دارم.
به نظر شما آيا بايد ( / بهتر ) از Datamodule استفاده كرد؟؟ چون توي يه جاي خوندم كه استفاده ازDatamodule براي برنامه خوبه ، اما من الان به يه نتيجه ديگه رسيدم؟
نظر شما و دوستان چي؟
.
.
.
اگه من از Halt استفاده كنم باز هم منابع سيستم آزاد ميشه ؟؟ آيا استفاده كنم يا خير؟

یاس : پس باخت کسی که به حمله نرفت .
احتیاج ، مادر اختراع
(آخرین ویرایش در این ارسال: ۲۹-خرداد-۱۳۸۹, ۱۳:۴۸:۱۱، توسط Majid_Ebru.)
۲۹-خرداد-۱۳۸۹, ۱۳:۴۴:۱۴
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بستن سورس برنامه!!! The.Ghost 3 4,265 ۱۹-شهریور-۱۳۹۱, ۱۳:۰۴:۳۵
آخرین ارسال: lord_viper

پرش به انجمن:


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

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS