PDA

View Full Version : OnClose رخ نمی دهد



رضا عربلو
جمعه 06 شهریور 1383, 02:27 صبح
من یک فرم دارم که در OnActivate ان یک ActiveX را ایجاد می کنم و Parentش را برابر با Form1 می کنم. حال یک دکمه بر روی فرمقرار می دهم که ابتدا ActiveX را Free و سپس فرم را Close می کند. دکمه فوق فرم را می بندد ولی وقتی که کد ازاد کردن ActiveX را در OnClose فرم می نویسم و برنامه را اجرا می کنم. با کلیک کردن fvبر روی دکمه Close فرم اصلاً OnClose رخ نمی دهد (در حالت Debuging برنامه را چک کردن و هیچ یک از Eventهای OnClose , OnCloseQuery رخ نمی دهد)

چکار باید بکنم که کاربر با فشار دادن دکمه close فرم بتواند فرم را ببندد.

Mohammad S
جمعه 06 شهریور 1383, 03:30 صبح
اگه مشکلت حل نشد بهتره یک دکمه به نام مثلا خروج بگذاری روی فرم و هم دستورات ازاد کردن ActiveX و هم بستن فرم رو همون جا انجام بدی. ضمنا از قسمت BordrerIcons، آیکون Close رو بردار.

Sohrab_Tapar
جمعه 06 شهریور 1383, 09:31 صبح
Parent یا Owner????!!!
اگر منظورت owner است .اصلا نیازی به آزاد کردن activex به صورت مستقیم
نداری.چون وقتی فرمت آزاد بشه همه child های خودشو آزاد میکنه.

رضا عربلو
شنبه 07 شهریور 1383, 01:21 صبح
-معذرت می خواهم Owner
-ولی مشکل من این است که اصلاً OnClose رخ نمی دهد (یعنی دکمه Close رویداد خودش را ایجاد نمی کند)
-اصلاً هم دوست ندارم بر روی فرمم دکمه خروج را بگذارم

_alish_
شنبه 07 شهریور 1383, 07:29 صبح
مگه میشه فرم را Closeکنی و ریداد مربوطه اش رخ ندهد راستش را بگو چیکار کردی ؟ باید بیشتر توضیح بدی ببینیم چه خبره .

رضا عربلو
یک شنبه 08 شهریور 1383, 01:16 صبح
در onClose نوشتم


َActiveX1.free;
action := caFree;


ولی مشکل در این است که وقتی که دکمه Close فرم را کلیک می کنم کنترل برنامه اصلاً به Activex1.free نمیرسد(ینی اصلاً مدیر رویداد نوشته شده اجرا نمی شود)

Sohrab_Tapar
یک شنبه 08 شهریور 1383, 14:39 عصر
no need to use this command


action =caFree

رضا عربلو
دوشنبه 09 شهریور 1383, 05:16 صبح
but onclose don't occurred evenn if this command used or not

SalarSoft
دوشنبه 09 شهریور 1383, 17:19 عصر
اولا بهتر است که کارهای مربوط به Free رو در OnFormDestroy انجام بدی!

دوما گفتی که
Parentش را برابر با Form1 می کنم
خب این کار باعث می شود که هنگام خروج از فرم تمام Child های آن فرم Free بشوند.

پس هیچ نیازی به Free کردن شما نیست!

رضا عربلو
سه شنبه 10 شهریور 1383, 02:12 صبح
I don't Know How ask my question.
my form can not close , beacuse the code written in event handler don't execute