PDA

View Full Version : تمام نشدن برنامه



kamand314
چهارشنبه 05 تیر 1387, 11:51 صبح
با سلام
وقتي فايل اجرايي برنامه ام را اجرا مي كنم و سپس از برنامه خاج ميشوم ويندوز دائم پيغام خطا
مربوط به دلفي را نشان مي دهد و وقتي كه وارد task manager در ويندوز مي شوم ميبينم كه هنوز برنامه من در حافظه است و تا آن را end task نكنم پيغام خطا مدام نمايش داده مي شود
فكر كنم من در برنامه ام يك فرم را به حافظه فراخواني كردم اما آن را نبسته ام !!
اين را از كجا ميشود فهميد ، آخه برنامه خيلي فرم داره و بخوام همه رو چك كنم خيلي طول ميكشه و اصلا راهي در دلفي هست كه و قتي كه كاربر دكمه خروج برنامه را مي زند براي اطمينان
تمام فرمها و پروژه را ببند؟

Amir_Safideh
چهارشنبه 05 تیر 1387, 13:07 عصر
در حالت عادی زمانی که شما فرم اصلی برنامه رو ببندی سایر فرها بسته خواهند شد و از حافظه خارج میشن . لازم نیست که تک تک فرمها رو ببندی . احتمالا شما فرم اصلی برنامه رو Close نمیکنی . برای اینکه تمام برنامه بسته بشه به جای دستور Close این کد رو بنویس :

Application.Terminate;

-------------
موفق باشید .

AFTABGARDAN2006
چهارشنبه 05 تیر 1387, 13:12 عصر
شما از منوی Projects\Option در تب Forms می توانید لیست فرمهای که اتوماتیک ساخته می شود را ببینید یکی از این فرمهاست که باز می ماند.
ولی من خودم گاهی وقت وقتی دلفی رو می بندم به این اشکال بر می خورم که باید فقط با دی End Task اونو ببندم

HadiDelphi
چهارشنبه 05 تیر 1387, 13:13 عصر
از دستور Halt یا Application.Terminate استفاده کن

m-khorsandi
چهارشنبه 05 تیر 1387, 16:00 عصر
تا جايی كه ميتونی از دستور Halt استفاده نكن.

tefos666
چهارشنبه 05 تیر 1387, 16:15 عصر
دوست عزیز از این دستور استفاده کن


application.terminate


امیدوارم مشکلت برطرف بشه

success is doing , not wishing !!! :لبخند:

vcldeveloper
چهارشنبه 05 تیر 1387, 17:00 عصر
تا آن را end task نكنم پيغام خطا مدام نمايش داده مي شود
بهتر بود خود پیغام خطا را هم می گذاشتید. در هر حال، روی کدی که قرار هست موجب بسته شدن برنامه تان بشود - مثلا Application.Terminate- یک Break-Point بزارید و اجرای کد را Trace -با استفاده از F7 یا F8 - کنید تا ببینید کدام خط از سورس کد شما موجب ایجاد خطا، یا مانع از بسته شدن برنامه می شود.

hentjanson
چهارشنبه 05 تیر 1387, 17:01 عصر
ابتدا ببين چه فرم هايي در حال اجرا داري طبق گفته دوستان :‌
از منوي Projects\Option
بعد ميرسيم به خروج برنامه از حافظه سيستم كه به اين صورت انجام ميگيره .


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;