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

نام تاپیک: Class Helper در دلفی

  1. #1
    کاربر دائمی آواتار مصطفی ساتکی
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    www.7khatcode.com
    پست
    1,193

    Class Helper در دلفی

    Class Helper ها در واقع راهی جهت توسعه کلاس ها بدون استفاده از وراثت.
    در واقع Class Helper به شما اجازه می دن که کده خودتونو به کلاس هایی اضافه کنید که سورسشنو ندارید.
    Class Helper ها فقط به بخش pubic کلاس موردنظر دسترسی دارن و بخش private و protected کلاسی که بهش کمک میشه قابل دسترس نیستند.
    البته نا گفته نمونه که پشت صحنه این داستان مثل عملکرد فراخوانی یک تابع از کلاس میمونه.
    وقتیکه property یا متدی در کلاس helper تعریف میشه از اون میشه در کلاسی که بهش کمک شده و کلاس هایی که از این کلاس به ارث بردن استفاده کرد.
    قابل ذکر که به این نکته هم اشاره بشه زمانیکه سورس وجود داره استفاده از Class Helper نمی تونه زیاد جالب باشه یعنی یه جورایی داریم خدمونو گول میزنیم .
    حتی الامکان سعی کنید که بیش از یک Class Helper برای یک Class تعریف نکنید .البته شما آزادید که هر چند تا تعریف کنید ولی توصیه نمیشه.قضیش مثل فرزند کمتر زنگیه بهتره کلاً بگم اگر وراثت بهتر جواب میده Class Helper رو بیخیال شید.
    Class helper ها این قابلیتو ندارند که به طور مستقیم آبکجت توش Create کنید و همچنین Self هم اشاره داره به کلاسی که به اون کمک شده.
    اگر Class Helper ها به گونه ای بود که مختص به یک Object نمی شد اون وقت میشد وراثت چندگانه که بسیار مفید بود راحت میتونستیم مستقیم از کلاس مورد نظر استفاده می کردیم اما در وضعیت جاری مجبوریم یه Member از نوع اون کلاس تعریف کنیم اونو Create کنیم و سپس از اون استفاده کنیم و در نهایت هم free ش کنیم.
    به Class Helper ها می توان Property اضافه نمود ولی Member Field نمی تونیم برای property مون تعریف کنیم بلکه بایستی از Member Field های موجود استفاده کنیم.
    در زیر تابعی به کلاس TCanvas اضافه کردیم جهت رسم توابع هندسی
      TCanvasHelper = class helper for TCanvas
    private
    public
    procedure DrawFunc(X1,X2 : Integer;AFunc : TFunc<Integer,Integer>);
    end;

  2. #2
    کاربر دائمی آواتار SAASTN
    تاریخ عضویت
    خرداد 1385
    محل زندگی
    تهران
    سن
    39
    پست
    730

    نقل قول: Class Helper در دلفی

    در واقع Class Helper به شما اجازه می دن که کده خودتونو به کلاس هایی اضافه کنید که سورسشنو ندارید.
    این دقیقا یعنی چی؟ مثل کامپوننت هایی که فقط dcu ها همراهشونه؟ خود این Class Helper ها رو می شه register کرد؟

  3. #3
    کاربر دائمی آواتار مصطفی ساتکی
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    www.7khatcode.com
    پست
    1,193

    نقل قول: Class Helper در دلفی

    خود این Class Helper ها رو می شه register کرد
    Class Helper یک نوع type هستند که به کلاس کمک گیرنده متصل می شوند در نتیجه قابلیت register ندارند در ضمن محدوده استفاده آنها محدوده نزدیک unit که آن را پیاده کرده می باشد

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

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

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