نمایش نتایج 1 تا 7 از 7

نام تاپیک: تفاوت دستور Release و Free?

  1. #1
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    تفاوت دستور Release و Free?

    با سلام
    تفاوت این دو دستور چیست؟
    با تشکر

  2. #2
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    نقل قول: تفاوت دستور Release و Free?

    با سلام
    آیا کسی از دوستان می تواند من را راهنمایی کند؟
    موفق باشید

  3. #3
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: تفاوت دستور Release و Free?

    Help رو خوندی ؟



    Description

    Use Release to destroy the form and free its associated memory.


    Release does not destroy the form until all event handlers of the form and event handlers of components on the form have finished executing. Release also guarantees that all messages in the form's event queue are processed before the form is released. Any event handlers for the form or its children should use Release instead of Free (Delphi) or delete (C++‎‎‎). Failing to do so can cause a memory access error.


    Note: Release returns immediately to the caller. It does not wait for the form to be freed before returning.


    مي دونيد كه فقط فرم هست كه Release داره (من فقط فرم رو ديدم.)

  4. #4
    کاربر دائمی آواتار SYNDROME
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    تهران
    پست
    2,814

    نقل قول: تفاوت دستور Release و Free?

    با کمال تشکر
    من خودم و تا حدودی فهمیدم
    ولی اگر امکان دارد شما هم یک توضیح بدهید.
    با تشکر

  5. #5
    کاربر دائمی آواتار merced
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    خراسان جنوبي
    پست
    562

    نقل قول: تفاوت دستور Release و Free?

    والا قدرت بيان ندارم. چون خودم كامل متوجه نشدم.

    ولي Release امن تره . چون منتظر مي مونه تمام Handle‌ها free‌ شند و تمام Message ها جواب بگيرند و كامل شند (اصطلاح امن جالب نمياد .. مطمئن تر بهتر بايد باشه)
    ولي Free تلقي ميزنه فرم رو آزاد مي كنه . با هرچي كه بهش بسته هست .

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اصفهان
    پست
    204

    نقل قول: تفاوت دستور Release و Free?

    نقل قول نوشته شده توسط merced مشاهده تاپیک
    والا قدرت بیان ندارم. چون خودم کامل متوجه نشدم.

    ولی Release امن تره . چون منتظر می مونه تمام Handle‌ها free‌ شند و تمام Message ها جواب بگیرند و کامل شند (اصطلاح امن جالب نمیاد .. مطمئن تر بهتر باید باشه)
    ولی Free تلقی میزنه فرم رو آزاد می کنه . با هرچی که بهش بسته هست .
    فكر نكنم ربطي به امن‌تر بودن، داشته باشه.

    ولي با توجه به چيزي كه خوندم و شما نوشتين، فكر كنم Release براي برنامه‌هاي بانك اطلاعاتي مناسب‌تر باشه.
    ولي حالا سؤال اينجاست كه Terminate پس چي؟

  7. #7

    نقل قول: تفاوت دستور Release و Free?

    Release فقط برای TForm وجود داره؛ و علت وجودش هم این هست که اگر برنامه نویس خواست در یکی از Eventهای آن فرم، همان فرم را آزاد کند، به مشکل برنخورد.
    یک Event توسط یکی از متدهای یک شی فراخوانی می شود، یعنی زمانی که کد آن Event در حال اجرا هست، شما عملا در داخل یکی از متدهای آن شی قرار دارید. مثلا اگر متد مربوطه به این شکل باشد:
    procedure TMyClass.DoMyEvent;
    begin
    if Assigned(FMyEvent) then
    FMyEvent(Self);
    end;


    در این صورت، در زمان اجرای FMyEvent شما همچنان در داخل متد TMyClass.DoMyEvent هستید.
    حالا اگر در این کد شما TMyClass را آزاد کنید، عملا این متد را هم از بین می برید. به زبان ساده تر، این کار مثل آن است که شما شاخه ایی را که روی آن نشسته اید، اره کنید! معلوم هست که با این کار خودتان زمین می خورید.

    از اونجایی که احتمال انجام همچین کاری برای فرم ها زیاد هست، کلاس TForm یک متد Release برای این کار فراهم کرده. این متد قبل از آزاد کردن فرم مطمئن می شود که هیچ Event-handler ایی در فرم در حال اجرا نباشد. اگر Event-handlerایی در حال اجرا بود، Release کنترل اجرا را بلافاصله به شما بر می گرداند، ولی در پشت صحنه فرم شما تا زمانی که اجرای آن Event-handler پایان نیافته، همچنان وجود دارد، و زمانی که اجرای آن کد پایان یافت، به طور خودکار آزاد می شود.


    وَ سَيَعْلَمُ الَّذِينَ ظَلَمُوا [آل محمد حقهم] أَيَّ مُنْقَلَبٍ يَنْقَلِبُونَ - الشعراء (227)
    و ظالمین [حق آل محمد (ص) ] به زودی خواهند دانست که به کدام بازگشتگاه بازخواهند گشت.

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •