المشكلات التي يبلغ عنها محرر الخطوات
يتحقق محرر الخطوات من خطواتك أثناء تحريرها. وتظهر رسائله في أربعة أماكن: أسفل حقل، وكشريحة على صف خطوة، وكـ لم يتم حفظ الخطوات: أسفل القائمة، ومكان القائمة عندما يتعذّر عرض الخطوات كصفوف.
أسفل حقل
يحصل الحقل الذي فيه مشكلة على إطار أحمر والرسالة أسفله، أثناء الكتابة. وما دام حقل يحتوي على نص مكتوب يفشل في فحصه، فلا تُحفظ الخطوات: يظهر لم يتم حفظ الخطوات: الخطوة N تحتوي على حقل غير صالح أسفل القائمة، ويحتفظ الإجراء بآخر خطوات محفوظة حتى تصلح الحقل (لم يتم حفظ الخطوات).
الحقل الفارغ لا يعرض أي رسالة ولا يمنع الحفظ؛ فتُحفظ الخطوات مع الحقل فارغًا. وعندما يعمل الإجراء، فإن الخطوة التي فيها حقل رقم أو صواب أو خطأ أو نافذة فارغ توقف الإجراء هناك، وتذكر مخرجات النظام في وحدة التحكم أن تلك الوسيطة من نوع خاطئ. أما حقل النص الفارغ فيعمل كنص فارغ، وهذا يعني بالنسبة إلى بعض الدوال المضمَّنة (اسم ملف، أو عنوان نافذة للبحث عنها) أن الخطوة لا تفعل شيئًا.
| الرسالة | السبب | الحل |
|---|---|---|
| هذه القيمة مطلوبة. | اسم المتغير في خطوة تعيين متغير فارغ. | اكتب اسمًا. |
| أدخل عددًا صحيحًا (عشريًا أو سداسي عشري بالبادئة 0x)، أو ثابتًا مسمى، أو $variable. | يحتوي حقل عدد صحيح، أو عدد عدد المرات، على شيء آخر، مثل 2.5 أو ten. | اكتب أرقامًا، مع علامة سالب اختيارية، أو 0x وعددًا سداسيًا عشريًا، أو ثابتًا مسمى مثل VirtualKey.F5 (معلمات الخطوات). |
| لا يوجد ثابت مسمى بهذا الاسم. تحقق من الإملاء وحالة الأحرف، كما في VirtualKey.MediaPlayPause. | يحتوي حقل عدد صحيح أو رقم، أو عدد عدد المرات، على اسم فيه نقطة، مثل VirtualKey.Mediaplaypause، ليس ثابتًا مسمى. | صحّح الاسم. حالة الأحرف مهمة. والأسماء مسرودة تحت الثوابت المسماة. |
| أدخل رقمًا، أو $variable. | يحتوي حقل رقم على شيء ليس رقمًا. | استخدم النقطة كفاصلة عشرية، دون فاصل آلاف: 1234.5. |
| أدخل true أو false، أو $variable. | تحتوي قيمة صواب أو خطأ في خطوة تعيين متغير على شيء آخر. | اكتب true أو false. |
| لا يمكن للخطوة تشغيل دالة مضمَّنة داخل وسيطة. انقلها إلى متغير أولًا. | يحتوي الحقل على استدعاء دالة مضمَّنة في أقواسه شيء، مثل WindowGetTitle($w). | انقر على نقل إلى متغير أسفل الحقل (معلمات الخطوات). وإذا لم يُعرض ذلك الارتباط، فأضف خطوة للاستدعاء بنفسك، واحفظ نتيجتها، واستخدم المتغير. |
| استخدم الأحرف والأرقام و_، على ألا يبدأ الاسم برقم. | اسم متغير، في حفظ النتيجة باسم أو المتغير، فيه حرف آخر أو يبدأ برقم. | أعِد تسميته (المتغيرات). |
| هذا الاسم محجوز. اختر اسمًا آخر. | اسم المتغير هو if أو else أو for أو true أو false. | اختر اسمًا آخر. |
| اختر الدالة المضمَّنة التي يتم فحص نتيجتها. | ليس للشرط المضبوط على نتيجة دالة مضمَّنة دالة مضمَّنة بعد. | انقر على اختيار دالة مضمَّنة… واختر واحدة. |
| لا يمكن استخدام «…» في مجموعة مفاتيح. | أُعطي مربع المفاتيح مفتاحًا لا تستطيع مجموعة المفاتيح تسميته، مثل مفتاح وسائط. | استخدم مفتاحًا آخر، أو الخطوة ضغط مفتاح وتحريره (KeyboardPressKey) (مفاتيح الوسائط). |
لا يُعرض نقل إلى متغير عندما يتعذّر قراءة الاستدعاء (مثلًا عندما يحتوي على عوامل مثل +)، ولا في شرط التكرار ما دام أو التكرار حتى.
ملاحظة واحدة ليست مشكلة: تُخزَّن هذه القيمة كنص، ولا يتم تشغيلها. للاحتفاظ بنتيجة دالة مضمَّنة، استخدم «حفظ النتيجة باسم» في خطوة تلك الدالة.
أسفل قيمة تعيين متغير من النوع نص تكون استدعاء دالة مضمَّنة في أقواسه شيء، مثل WindowGetTitle($w). وتُحفظ القيمة كتلك الأحرف. أما
الاستدعاء ذو الأقواس الفارغة، مثل ClipboardGetText()، فلا يحصل على ملاحظة: فهو قراءة من قائمة القيم (المتغيرات).
على صف خطوة
| الشريحة | السبب | الحل |
|---|---|---|
| ليست داخل تكرار | خطوة الخروج من الحلقة خارج كل التكرارات، عادةً بعد نقل. ولا يمكن تشغيل الإجراء ما دامت هناك. | أعِدها إلى داخل تكرار، أو أزلها (تكرار الخطوات). |
لم يتم حفظ الخطوات
لم يتم حفظ الخطوات: متبوعًا بسبب يعني أن المحرر لم يتمكن من كتابة صفوفك مرة أخرى في الإجراء. وحتى تصلح ذلك، يحتفظ الإجراء بآخر خطوات محفوظة، وتنتظر بقية تعديلاتك.
| السبب | المسبب | الحل |
|---|---|---|
| لم تُختر دالة مضمنة لأحد الشروط | إذا أو التكرار ما دام/حتى مضبوط على نتيجة دالة مضمَّنة دون دالة مضمَّنة. | اختر الدالة المضمَّنة، أو بدّل الفحص إلى نوع آخر. |
| قيمة value في أحد الشروط استدعاء (…)؛ يجب إسناده إلى متغير أولًا | تحتوي القيمة في شرط، أو أحد طرفي مقارنة، على استدعاء دالة مضمَّنة بوسيطات. | أضف خطوة فوقه تشغّل الاستدعاء مع حفظ النتيجة باسم، واستخدم المتغير في الشرط. |
| الوسيطة N للدالة Builtin استدعاء (…)؛ يجب إسنادها إلى متغير أولًا | يحتوي حقل خطوة على استدعاء دالة مضمَّنة بوسيطات. ويعدّ N حقول الخطوة بدءًا من 1. | نقل إلى متغير (معلمات الخطوات). |
| الخطوة N تحتوي على حقل غير صالح | يحتوي حقل في الخطوة N على نص مكتوب يفشل في فحصه (أسفل حقل): abc في حقل عدد صحيح أو رقم، أو اسم ليس ثابتًا مسمى، أو حقل صواب أو خطأ فيه نص آخر، أو عدد عدد المرات غير صالح، أو اسم متغير غير مسموح به. ولا يتسبب فيه الحقل الفارغ أبدًا. ويعدّ N الخطوات بدءًا من 1. | أصلح الحقل الذي تقع الرسالة أسفله. |
عندما يتعذّر عرض الخطوات كقائمة
أحيانًا توجد الخطوات كنص لا تستطيع قائمة الخطوات عرضه: حُرّرت في عرض التعليمات البرمجية، أو استُوردت، أو كُتبت يدويًا في ملف التكوين. عندئذٍ تُستبدل القائمة بـ:
تستخدم هذه الخطوات تحكمًا في التدفق لا يمكن عرضه كقائمة (السبب). يمكن تحريرها كتعليمات برمجية في الوضع المتقدم.
يحدث هذا في كل محرر خطوات: محرر الإجراء، والمقتطف، وبيئة التجربة، والإجراءات السابقة واللاحقة لمجموعة تطبيقات، والحدث العام.
تظل الخطوات تعمل كما هي؛ فالمحرر لا يستطيع فقط عرضها كصفوف. وفي الوضع المتقدم، يعرض عرض التعليمات البرمجية النص، وهو الطريقة الوحيدة لتحريره (عرض التعليمات البرمجية). وبمجرد أن يصبح للنص شكل قائمة مرة أخرى، تعود الصفوف. والصيغة النصية موصوفة في محرك الخطوات.
السبب واحد مما يلي. الكلمات المائلة تمثل جزء النص الذي يقتبسه السبب.
النص ككل
| السبب | ما يجب إصلاحه في النص |
|---|---|
| الخطوات ليست TOML صالحًا: الرسالة | النص ليس TOML صالحًا. وتذكر الرسالة الموضع. |
| لا توجد مصفوفة steps | ليس في النص جداول [[steps]]. |
| المفتاح key في المستوى الأعلى ليس قيمة بسيطة | مفتاح فوق أول [[steps]] يحتوي على جدول أو قائمة. ولا يمكن أن توجد هناك إلا القيم البسيطة. |
| تستخدم إحدى الخطوات op op، وليس له شكل قائمة | op في خطوة لا تستطيع القائمة عرضه. |
| تستخدم إحدى الخطوات صيغة goto من if، وليس لها شكل قائمة | if يقفز بـ then_goto أو else_goto، أو توجد خطوة goto. أعِد كتابته بكتلة if وend_if، أو تابع التحرير كنص. |
| خطوة if بلا شرط | خطوة if ليس لها condition. |
خطوة واحدة
| السبب | ما يجب إصلاحه في النص |
|---|---|
| خطوة call بلا fn | خطوة call لا تسمّي دالة مضمَّنة. |
| خطوة set بلا local | خطوة set لا تسمّي متغيرًا. |
| قيمة call في خطوة set بلا fn | call في خطوة set لا يسمّي دالة مضمَّنة. |
| قيمة value في خطوة set ليست قيمة مفردة | value في خطوة set قائمة، أو جدول غير القراءة ({ fn = "Name" }) أو الثابت المسمى ({ const = "Namespace.Name" }). |
| قيمة value في خطوة set هي النص text، وستحفظه القائمة كنتيجة تلك الدالة المضمّنة | value في خطوة set نص بين علامتي اقتباس يُقرأ كقراءة، مثل "ClipboardGetText()". لتخزين نتيجة القراءة، اكتبها بصيغة { fn = "ClipboardGetText" }؛ وإلا فغيّر النص. |
| خطوة set ليس فيها value ولا call | ليس لخطوة set ما تخزنه. |
| تحتاج خطوة repeat إلى واحد فقط من times أو while أو until | ليس لخطوة repeat أي منها، أو لها أكثر من واحد. |
| قيمة times في خطوة repeat رقم أو ثابت مسمى أو استدعاء دالة مضمّنة مخزَّن كنص، وستحفظه القائمة كرقم أو كثابت أو كنتيجة الدالة | times مكتوب بين علامتي اقتباس، مثل "3" أو "MouseButton.Middle" أو "MouseGetCursorX()". اكتب الرقم دون علامات اقتباس، والثابت بصيغة { const = "MouseButton.Middle" }، والقراءة بصيغة { fn = "MouseGetCursorX" }. |
| قيمة times في خطوة repeat ليست عددًا صحيحًا ولا نصًا | times هو، مثلًا، 2.5 أو true. |
| أحد الشروط ليس جدولًا | condition أو while أو until ليس جدولًا. |
| يحتاج الشرط إلى واحد فقط من fn أو value أو compare | ليس للشرط أي منها، أو له أكثر من واحد. |
| قيمة not في أحد الشروط ليست true ولا false | يحتوي not على شيء غير true أو false. |
| قيمة fn في أحد الشروط فارغة | fn في شرط نص فارغ. |
| قيمة compare في أحد الشروط ليست مقارنة مدعومة | compare ليس أحد == أو != أو < أو <= أو > أو >=. |
| تحتاج المقارنة إلى left وright معًا | ينقص مقارنة left أو right. |
| أحد معاملات الشرط ليس قيمة مفردة | value أو left أو right قائمة، أو جدول غير القراءة أو الثابت المسمى. |
| يقارن أحد الشروط النص text، وستحفظه القائمة كرقم أو ثابت مسمى أو true/false أو كنتيجة دالة مضمّنة | قيمة مقارنة مكتوبة بين علامتي اقتباس لكنها تُقرأ كرقم أو ثابت مسمى أو true/false أو قراءة، مثل "3" أو "MouseButton.Left" أو "ClipboardGetText()". ولا تستطيع القائمة الاحتفاظ بها كنص. اكتب القراءة بصيغة { fn = "ClipboardGetText" }، أو غيّر النص. |
| args ليست مصفوفة | args في خطوة ليست قائمة. |
| إحدى الوسيطات ليست قيمة مفردة | وسيطة قائمة، أو جدول غير القراءة ({ fn = "Name" }) أو الثابت المسمى ({ const = "Namespace.Name" }). |
| تشير إحدى القيم إلى الثابت text، وهو غير موجود | يحتوي { const = "…" } على اسم ليس ثابتًا مسمى، أو ليس نصًا. صحّح الاسم؛ حالة الأحرف مهمة. |
كتل غير متطابقة
N هو موضع الخطوة، بدءًا من 1.
| السبب | ما يجب إصلاحه في النص |
|---|---|
| الخطوة N هي else خارج كتلة if | else ليس قبله if مفتوح. |
| الخطوة N هي else ثانية في كتلة if واحدة | لكتلة if خطوتا else. |
| الخطوة N تغلق كتلة غير مفتوحة | end_if أو end_repeat بلا كتلة مفتوحة مطابقة. |
| الخطوة N تفتح كتلة لا تُغلق أبدًا | if أو repeat بلا end_if أو end_repeat. |
الإشعارات حول المحرر
| الإشعار | المعنى |
|---|---|
| لم يتم إعداد أي شيء في هذا الوضع، لذا لا يفعل تشغيله شيئًا. يُحتفظ بمحتوى الوضع لكنه لا يعمل. | مكتوب بصيغة مضبوط على وضع فارغ بينما في وضع آخر محتوى. انقر على استخدام الوضع للعودة (الخطوات والبرنامج النصي وAutoHotkey). |
| دعم AutoHotkey متوقف في الإعدادات العامة، لذا لا يفعل هذا الإجراء شيئًا حتى يتم تمكينه. | يعمل الإجراء كـ AutoHotkey، وهو متوقف (AutoHotkey). |
| لا يوفّر أي مكوّن إضافي مسجَّل المحرك «المحرك»، لذا يتم تخطي هذا البرنامج النصي عند تشغيله. أضف المكوّن الإضافي في صفحة «المكونات الإضافية»، أو اختر وضعًا آخر. | يعمل الإجراء على محرك مكوّن إضافي، وذلك المكوّن الإضافي غير مسجَّل (المكونات الإضافية). |