استدعاء وظيفة المساعد في نافذة تقييم/تعديل (CTRL+F7)؟
سؤال
دعنا نقول أنني كتبت 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;
يمكنك الاستمرار في استدعاء طريقة الدرس في الكود العادي الخاص بك ، ولكن يمكنك العودة إلى وظيفة مستقلة في مصحح الأخطاء.