استدعاء وظيفة المساعد في نافذة تقييم/تعديل (CTRL+F7)؟

StackOverflow https://stackoverflow.com/questions/1373728

  •  21-09-2019
  •  | 
  •  

سؤال

دعنا نقول أنني كتبت Helper لـ tstringlist

TslHelper = class helper for TStringList
  function DoSth: boolean;
end;

ثم قمت بتضمين هذا المساعد (الوحدة التي يتم فيها تعريف المساعد) في الوحدة التي أريد استخدامها. أثناء تصحيح الأخطاء ضربت كنترول + F7 وأريد تقييم:

someStringList.DoSth

لا أستطيع الحصول عليه للعمل. هل هو ممكن؟

هل كانت مفيدة؟

المحلول

يقدم مساعدو الفصل طرقًا جديدة في النطاق الحالي. إذا لم يكن المساعد في الفصل في نطاق ، فإن أساليبه لا تسري ، حتى لو كان الفصل الذي يساعدونه. لذا ، فإن الخطوة الأولى لجعلها تعمل هي ضمان ذلك TslHelper هو مساعد الفصل الذي سيكون ساري المفعول في النقطة الحالية في البرنامج.

إذا كنت قد استوفت هذا المطلب ، لكنه لا يزال لا يعمل ، فربما لا يتعرف مصحح الأخطاء ببساطة على مساعدي الفصل. إنها مخترقة قليلاً على أي حال ، لذلك لن أفاجأ للغاية إذا لم يتعرف عليها مصحح الأخطاء. في نهاية المطاف ، المساعدون الطبقي هم مجرد سكر النحوية. يمكن أن يكون مساعد الفئة أعلاه قد تمت كتابته بنفس السهولة كدالة قائمة بذاتها ، مثل هذا:

function TStringList_DoSth(SL: TStringList): Boolean;

اكتب هذه الوظيفة باستخدام تنفيذك الحالي للطريقة ، ثم استخدم الوظيفة لتنفيذ مساعد الفصل:

function TslHelper.DoSth: Boolean;
begin
  TStringList_DoSth(Self);
end;

يمكنك الاستمرار في استدعاء طريقة الدرس في الكود العادي الخاص بك ، ولكن يمكنك العودة إلى وظيفة مستقلة في مصحح الأخطاء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top