استدعاء الدوال المضمَّنة
- الوسيطات موضعية وكل واحدة منها مطلوبة. لا تأخذ أي دالة مضمَّنة وسيطات اختيارية أو مسماة أو متغيرة العدد. أسماء المعلمات في المرجع مجرد تسميات.
- يُفحص عدد الوسيطات عند ترجمة البرنامج النصي، لذا يوقف العدد الخاطئ البرنامج النصي قبل تشغيل أي شيء.
- تُفحص أنواع الوسيطات عند تنفيذ الاستدعاء، ويجب أن تتطابق تمامًا، مع توسيع واحد. القيمة Integer حيث
يُعلَن عن Real تصبح تلك القيمة Real (
MathSqrt(16)يعمل)، كما يحدث في العمليات الحسابية. أما القيمة Real حيث يُعلَن عن Integer، أو الرقم حيث يُعلَن عن Text (UtilityPrint(42))، فيوقف الإجراء بالخطأ Name: الوسيطة N من نوع خاطئ. المعلمات المعروضة بالنوع Any تقبل أي نوع. - كل دالة مضمَّنة تُرجع قيمة. تُرجع معظم الإجراءات قيمة Bool تعني «هل نجح ذلك»، ويمكنك تجاهلها أو اختبارها.
- الأشياء المفقودة نتائج عادية، وليست أخطاء. النافذة التي لا يُعثر عليها هي قيمة Window فارغة. تمرير
Window فارغة، أو نافذة أُغلقت، إلى دالة مضمَّنة من نوع
Window*لا يفعل شيئًا ويُرجعfalseأو0أو""، لذا فإن سلسلة من استدعاءات النوافذ على مقبض لم يُعثر عليه آمنة. تُرجع دوال السياق المضمَّنة خارج المشغِّل الخاص بها""أو0أو-1أو Window فارغة. - النتائج المتعددة تستخدم أسلوب التعداد ثم الفهرسة. يُرجع استدعاء مثل
WindowGetAllTopLevel()أوFolderEnumerateAll(…)أوStringSplit(…)أوDisplayMonitorEnumeratedAll()عددًا، وتقرأ الدالة المقابلة…EnumeratedAt(i)/…PartAt(i)العنصرi، من0إلى العدد − 1. لكل عائلة ذاكرة تخزين مؤقت واحدة لكل تشغيل للبرنامج النصي، ويستبدلها استدعاء التعداد التالي في تلك العائلة. - يمكن للمكوّن الإضافي أن يضيف دوالًا مضمَّنة خاصة به. تبدو استدعاءاتها بالشكل نفسه. إذا لم يكن المكوّن الإضافي متصلًا عند ترجمة البرنامج النصي، فلن يعمل البرنامج النصي ويوضح إعلام السبب.
n = WindowGetAllTopLevel(); // العدد، ويملأ ذاكرة التخزين المؤقت للنوافذ
for (i = 0; i < n; i = i + 1) {
w = WindowGetEnumeratedAt(i); // العنصر i من تلك الذاكرة المؤقتة
if (WindowGetVisible(w) && WindowGetTitle(w)) {
UtilityPrint(WindowGetExecutableName(w) + " - " + WindowGetTitle(w));
}
}