PDA

View Full Version : چگونگی متوقف کردن یک پروسجر



آیدا رضایی
دوشنبه 01 خرداد 1385, 13:45 عصر
دوستان چطور میشه مثلا در پروسجور OnClose فرممون با دوستوری بسته شدن فرم و در کل اون پروسجور رو متوقف کنیم ؟

dkhatibi
دوشنبه 01 خرداد 1385, 16:12 عصر
فکر کنم شما در اشتباه باشید
چون رویداد OnClose وقتی اتفاق می افتد که برنامه در حال بسته شدن باشد .مثلا دکمه ی ضربدر فشار داده شده باشد.
اما اگه منظور شما اینه که می خواهید برنامه را هرجایی متوقف کنید کافیه دستور Halt یا
َApplication.terminate را هر جایی که خواستید به کار برید.

آیدا رضایی
دوشنبه 01 خرداد 1385, 19:10 عصر
ببینید .
دستورات درون پروسه Onclose وقتی اجرا میشن که مثلا کاربر دکمه Close رو زده باشه .
حالا من میخوام اگه بعضی چیزا مطابق میلم نباشه به کاربر اجازه بستن فرم رو ندم و با نمایش یه پیام اون رو از این کار باز دارم .
و برای این کار هم لازمه که پروسه Onclose به کار خودش ادامه نده و پنجره دیگه بسته نشه ! .
مثلا مثل برنامه هایی همچون فتوشاپ که وقتی کاربر دکمه Close رو میزنه اگه پنجره ای باز باشه از اون تاییدیه میگیره و اگه کاربر موفقت نکنه پنجره بسته نمیشه .

Touska
دوشنبه 01 خرداد 1385, 19:28 عصر
شما کافیه یک شرط بذارید و اگه خواستید کاربر بتونه ببنده Action := cafree رو ست کنید در غیر

اینصورت Action := canone رو ست کنید.

موفق باشید :)

آیدا رضایی
دوشنبه 01 خرداد 1385, 21:01 عصر
جناب Touska عزیز ممنون از لطفتون .
دقیقا همین مشکل رو حل کرد .

vcldeveloper
سه شنبه 02 خرداد 1385, 07:25 صبح
رویداد OnCloseQuery دقیقا برای همین منظور ایجاد شده. در این رویداد پارامتر CanClose مشخص میکنه که آیا فرم می تونه بسته بشه یا نه. مثلا می تونید بنویسید:


if DocumentChanged then
MessageDlg....
else
CanClose := True;

Touska
سه شنبه 02 خرداد 1385, 11:55 صبح
رویداد OnCloseQuery دقیقا برای همین منظور ایجاد شده. در این رویداد پارامتر CanClose مشخص میکنه که آیا فرم می تونه بسته بشه یا نه. مثلا می تونید بنویسید:


if DocumentChanged then
MessageDlg....
else
CanClose := True;


روشی که آقای کشاورز می گن علمی تر هست