كوكب الكفيف الجزائريBlind Technology
106 subscribers
15 photos
3 videos
257 files
266 links
🌟 أهلاً بكم في قناة كوكب الكفيف الجزائري! 🌟

نحن قناة شاملة للمكفوفين، تهتم بتقنية المعلومات والتكنولوجيا لتسهيل حياة المكفوفين. نقدم لكم أحدث التطبيقات والأدوات التي تساعدكم في حياتكم اليومية.

إذا كنت تبحث عن معلومات حول التكنولوجيا أو تريد تعلم كيفية
Download Telegram
Forwarded from تطبيقات امكانية الوصول (عباس المنصوري 🏆)
base (2).apk
6.8 MB
🚨 تطبيق مقتفي النقاط الذكي (GPS Tracker) 🛰️🌍
​تطبيق رهيب ومطور خصيصاً لتتبع الأماكن وحفظها بدقة عالية باستخدام الأقمار الصناعية (GPS) وبدون الحاجة لإنترنت!
​📌 مميزات التطبيق:
​حفظ نقاط متعددة: تقدر تحفظ موقع بيتك، محلك، الكوفي، أو أي مكان تقف فيه بذاكرة الجهاز.
​التتبع الذكي النشط: تحكم كامل بكل نقطة (تفعيل التتبع لها أو حذفها من الذاكرة بنقرة واحدة).
​الناطق الصوتي والاهتزاز: أول ما تقرب من مكانك المحفوظ بمسافة 20 متر أو أقل، الموبايل راح يهتز بقوة وينطق صوتياً تلقائياً: (لقد وصلت إلى نقطة...)‌.
​💡 ملاحظة تقنية مهمة للتشغيل (علّة الأندرويد):
​بسبب أنظمة حماية البطارية الحديثة في الأندرويد، النظام يميل لـ "تنويم" حساس الـ GPS وتقليل تحديثاته لما يكون الموبايل بجيبك والشاشة طافية لتوفير الشحن.
​⚙️ للحصول على أفضل أداء والتنبيه فوراً وأنت تمشي:
يرجى الدخول إلى: إعدادات الموبايل ⬅️ البطارية ⬅️ تحسين استخدام البطارية ⬅️ اختر التطبيق ⬅️ واجعل الخيار (غير مقيد / لا تحسّن).

📦 صيغة الملف: APK جاهز للتثبيت
Forwarded from تطبيقات امكانية الوصول (عباس المنصوري 🏆)
base (2).apk
6.7 MB
مقتفي النقاط الذكي، تم اظافة زر الايقاف. صار تكدر تشغل وطفي، ماتحتاج لاقلاق التطبيق من الخلفية
Forwarded from كوكب المكفوفين التقني (Osama Khamis)
الأداة ببساطة لعبة بقاء، محتاج توقف قارئ الشاشة أو تعلقه.
اللعبة لسه شايفها انهاردا ومعرفش عنها كتير.
نبذة بسيطة عنها (بالانجليزي) https://t.me/Tech_VisionaryM_M/364
استمتعوا
Forwarded from Jieshuo Community
🎙️ تحديث جديد لوظيفة أدوات متقدمة Advanced Tools في وظيفة. راديو العرب Pro

نحن سعداء بإعلانكم عن تحديث في وظيفة راديو العرب Pro، يأتي هذا التحديث بمميزات رائعة ستغير تجربتك مع الاستماع إلى الراديو .




🔧

أولاً: إصلاح مشكلة التقطيع



تم حل مشكلة التقطيع والخرشة في الصوت التي كانت تزعج المستمعين أثناء تشغيل المحطات، الآن يتدفق الصوت بسلاسة تامة بدون أي انقطاع.




📻

ثانياً: قسم الإذاعات الرياضية الجديد



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

Anis FM Max ⚽

BeiN Sports 1
BeiN Sports 2
BeiN Sports 3
⚽

BeiN Sports 4
BeiN Sports 5
BeiN Sports 6
🎙️

AswatAlweb
بالاضافه الى محطات
On Sport FM

— Radio Mars

— 🎤

Al Shabab Voice / صوت الشباب

— Al Shabab Sport /

خاص بكأس العالم



محطة Anis FM max و

AswatAlweb
.
و محطة صوت الشباب تقوم ببث مباريات كأس العالم مباشرة على الهواء. لا تفوّت أي مباراة، استمع الآن من خلال وظيفة راديو العرب Pro.




قائمة اختيار الدولة محسّنة مع جميع الدول العربية
.

- نظام مفضلة ذكي يحفظ محطاتك المفضلة
- ضغط مطوّل على أي محطة لإضافتها للمفضلة أو تشغيلها مباشرة
- التشغيل في الخلفية أثناء استخدام تطبيقات أخرى
- تحديث تلقائي للقنوات الرياضية من السحابة بدون تحديث الوظيفة
- إعادة اتصال تلقائية عند انقطاع البث






راديو العرب — معك أينما كنت

🎶

Jieshuo Community
حزمة AHMED GHAZY
..
ENJOOOOOOOOOOOy
Forwarded from تطبيقاتي
الاصدار 1.2 من التطبيق اصبح جاهز ما الجديد في هذا الاصدارما الْجَدِيدُ فِي هَذَا الْإِصْدَارتمت إضافة ميزة الأذكار الصوتية وأيضاً يعني وتمت إصلاح موضوع النافذة المنبثقة أن هو بيتأكد الآن من تفعيل المربع الاختياري الخاص بالنافذة ولكن ميزة اختيار الذكر الصوتي مش شغالة ولكن يعني هو مثلاً بيشوف الذكر الحالي دولة لذكر صوتي بيشغله لو ملقاش ذكر صوتي بيبعت الإشعار والنافذة فقط بس كدهيجب إخراج التّطبيق من تحت سيطرة البطارية لكي يعمل معكم بشكل صحيح
السلام عليكم، لمشاهدة مباراة الجزائر والأرجنتين: قناة بي إن سبورت ماكس 1. ⚽📺
العلاماتُ التي نَحتاجُهَا في كتابة الوظائف
%
بالمِئَة.
هذه العَلَامَةُ نَضَعُها قَبْلَ استدعاءِ وظيفةٍ أساسيةٍ في التطبيق. أو إضافة, أو أداة.
ولا حاجةَ لنا بكتابتها إذا اخترنا إدراج, عن طريقِ المزيدِ مِنَ الخَيَارَات.
أمثلةٌ بالترتيبِ السابق.
المثالُ الأول.
if service.click({{"%إسم الوظيفة",}})return true end
المثالُ الثاني.
if service.click({{"%Plugins/إسم الإضافة",}})return true end
المثالُ الثالث.
if service.click({{"%Tools/إسم الأداة",}})return true end
مُلاحظة.
*
نجمة.
هذه العَلامَةُ نَضَعُها لحصر الجملة أَوِ الكلمة وَهَذا لِنَتَخَلَّصَ مِنَ المتغيرات.
عندنا ثلاثُ حالات.
الحالةُ الأولى.
عندنا رِسالةٌ واحدةٌ غيرُ مقروءة, وعندنا ثلاثُ رسائلَ غيرُ مقروءة.
فالثابتُ هنا عِبَارَة: غيرُ مقروءة. والمتغيرُ هو العدد.
فهنا نَسْتَخْدِمُ عِبارةَ غيرَ مقروءة, وَنضَعُ عَلَامَةَ النجمةِ قَبْلَها لكي يبحثَ الناطقُ عَنِ الْعِبارة,وَيَضْغَطَ عليها حتى لو كان قَبْلَها نص.
مثال.
if service.click({{"*غير مقروءة",}})return true end
الحالةُ الثَّانِيَة.
عندنا مكالمةٌ صوتية, وعندنا مكالمةُ فديو.
فالثابتُ هنا كَلِمَةُ مكالمة, والمتغيرُ صوتية, أو فديو.
فهنا نَسْتَخْدِمُ كلمةَ مكالمة, وَنضَعُ عَلَامَةَ النجمةِ بعدَها لكي يبحثَ الناطقُ عَنِ الكلمة, وَيَضْغَطَ عليها حتى لو كان بعدها نص.
مثال.
if service.click({{"مكالمة*",}})return true end
الحالةُ الثالثة.
عندنا إغلاقُ جميعِ التطبيقات, وعندنا مَسْحُ جميعِ المحادثات, وعندنا حَذْفُ جميعِ الإشعارات.
فَكُلُّ ما في هَذهِ الْجُمَلِ متغير, سوى كَلِمَةِ جميع.
فهنا نَسْتَخْدِمُ كلمةَ جميع, وَنَضَعُها بَيْنَ عَلَمَتَيِ النجمة, لكي يبحثَ الناطقُ عَنِ الكلمة, وَيَضْغَطَ عليها حتى لو كان قَبْلَها أو بعدها نص.
if service.click({{"*جميع*",}})return true end
ملاحظات.
أولا. العِباراتُ أََوِ الجُمَلُ أَوِ الكلمات, نقصدُ بها ما هو موجودٌ في التركيز. سواءً كان زِرًّا أو نَصًّا أو نحوَ ذلك.
ثانيًا. القواعدُ المذكورةُنستطيعُ تطبيقَها على جزء مِنَ الكلمة. كَأَنْ نَضَعَ عِبارةَ مِي بينَنَجْمَتَيْن. وَهَذِهِ العبارةُ موجودَةٌ في كلمةِ جميع. لكنَّ الأمرَ ليس عمليا لِأَنَّ الميمَ مَعَ الياءِ نَجِدُهُما في الكثيرِ مِنَ الكلمات. وَرُبَّما نحتاجُ إلى هذا الأَمْرِ في الحالاتِ الشاذَّةِ فقط.
الحالةُ الثالثة.
#
عَلَامَةُ المُرَبَّع.
هذه العلامَةُ نَضَعُها قَبْلَ إِسْمِ الزِّرِّ القابلِ لِلتصنيفْ, أو قَبْلَ إِسْمِ الْعُقْدَة, أو قَبْلَ إسْمِ الحُزمةِ معَ إسْمِ الْعُقْدَة. (viewIdResName)
مثال.
if service.click({{"#voice_note_btn",}})return true end
if service.click({{"#com.whatsapp:id/voice_note_btn",}})return true end
وَنَضَعُها بعدَ إسْمِ الزِّرِّ بِكُلِّ أنواعِهِ للترتيب. وذَلِكَ إذا كان هذا الزِّرُّ موجودا في النافذةِ الحاليةِ أكثرَ مِنْ مرةٍ بِنَفسِ الإسْم.
إنَّ زرَّ تشغيلْ في محادَثاتْ WhatsApp يوجدُ أكثرَ من مرة.
فإذأ أردنا الترتيبَ مِنَ الأولِ للأخير, فإننا نَضَعُ عَلامَةَ المُرَبَّعْ, ونَضَعُ بعدَها رقمَ الترتيب.
وإذأ أردنا الترتيبَ مِنَ الأخيرِ لِلْأولْ,فإننا نَضَعُ عَلامَةَ المُرَبَّعْ, ونَضَعُ بعدَها عَلامَةَ الناقص, ونَضَعُ بعدَهُما رَقْمَ الترتيب.
أمثِلَةُ الترتيبِ مِنَ الأولِ للأخير.
if service.click({{"#voice_note_btn#1",}})return true end
if service.click({{"#voice_note_btn#2",}})return true end
if service.click({{"تشغيل#1",}})return true end
if service.click({{"تشغيل#2",}})return true end
أمْثِلةُ الترتيبِ مِنَ الأخيرِ لِلْأولْ.
if service.click({{"#voice_note_btn#-1",}})return true end
if service.click({{"#voice_note_btn#-2",}})return true end
if service.click({{"تشغيل#-1",}})return true nd
if service.click({{"تشغيل#-2",}})return true end
مُلاحظة.
عندما يكونُ هناك زِرٌّ في نافذةٍ مُعَيَّنَةٍ أكثرَ من مرة, فإنهُ إفْتِرَاضِيًّا يَضْغَطُ على آخِرِ زِرْ.
فالثابتُ هنا كَلِمَةُ مكالمة, والمتغيرُ صوتية, أو فديو.
>
أكبرْ مِنْ.
هذه العلامَةُ نَضَعُها قَبْلَ إسمِ التطبيق لِفَتْحِه.
وإذا اخترنا فَتْحَ تطبيقٍ عن طريقِ إدراج فتح تطبيقْ, فلا حاجةَ لنا بها.
مثال.
if service.click({{">Acapela TTS Voices",}})return true end
وَنَضَعُها بعدَ إسْمِ زِرْ, أو فَتْحِ تطبيق, وَنَضَعُ بعدَها مُدَّةً مُعَيَّنَة, وذَلِكَ للإنتظار.
بحيث لو لم يَجِدْ ذَلكَ الزِّرْ, أو لَمْ يَتِمَّ فَتْحُ التطبيقِ في الوقت الذي حددناه فإِنَّ الضَّغْطَ على الزِّرِّ أو فَتْحَ التطبيقِ سَيُلْغى.
وذَلك ينفعُ مع التطبيقاتِ التي تحتاجُ إلى وقتٍ لِتُفْتَحْ, وخصوصا مع الهواتفِ الضعيفة.
وينفعُ أيْضًا مع الأزرارِ التي تحتاجُ إلى وقتٍ لِتظْهَرْ.
مثال.
if service.click({{">Acapela TTS Voices>10","الإعدادات>5",}})return true end
وهَذا يعني إنتظارَ عَشْرِ ثَوان, لِفَتْحِ تطبيق Acapela TTS Voices ثُمَّ انتظارَ زِرِّ الإعدادات 5 ثوان.
في المثالِ السابق, إذا فُتِحَ التطبيقُ قبلَ عَشْرِ ثوان, فإنهُ سيبحثُ عَنِ الزِّر. وإنْ لم يُفْتَحِ التطبيقُ قَبْلَ هَذهِ المدة, سَتُلْغَى العمليةُ كاملة.
وَإذا فُتِحَ التطبيقُ قَبْلَ المدةِ المحددةِ فإنه سيبحثُ عنِ الزِّر. فإذا وجدهُ قَبْلَ المدةِ الْمُحَدَّدَةِ سَيَضْغَطُ عليه, وإنْ لم يَجِدْهُ سَتَتَوَقَّفُ العمليةُ عند البحثِ عنِ الزِّرْ.
مُلاحظات.
أولا. قد نَجِدُ علامَةَ أكبرْ مِنْ قَبْلَ إِسْمِ التطبيقِ وبعدَه. وهَذا يعني فَتْحَهْ. وَإِنْ لَمْ يُفْتَحْ, ننتظرهُ حتى يُفْتَحْ.
ثانيًا. الْمُدَّتُ تُحْسَبُ بالثَّانِيَة.
وينفعُ أيْضًا مع الأزرارِ التي تحتاجُ إلى وقتٍ لِتظْهَرْ.
<
أصغرْ مِنْ.
هذه العَلامَةُ نَضَعُها قَبْلَ إسمِ زِرٍّ أو عُنْصُرٍ لِيَقِفَ التركيزُ على ذلك الزِّرِّ أَوِ العنصرِ دون أنْ يُفَعَّل.
مثال.
if service.click({{"<تسجيل رسالة صوتية",}})return true end
لأننا في تيليجرام لو ضَغَطْنَا عليه سوف يصير: تسجيلُ رسالة مَرْئِيَّة.
وَنَضَعُها بعدَ وظيفة, أو إسمِ زِرْ, لِيَتِمَّ تِكرارُ تلك الوظيفةِ, أو تِكرارُ الضغطِ على ذَلكَ الزِّرْ, بالعددِ الذي نُحَدِّدُه.
if service.click({{"%ترجمة<5","تشغيل<5",}})return true end
مُلاحظات.
أولا. في حالةِ وضعِ أصغَرْ مِنْ ثُمَّ أكبرْ مِنْ بَعْدَ وظيفةٍ أو زِرٍّ فإنَّ أصغَرْ مِنْ يُؤَدِّي دورَهْ, وأكبرْ مِنْ لا يعملُ أيَّ شيء.
ثانيًا. في حالةِ وضعِ أكبرْ مِنْ ثُمَّ أصغَرْ مِنْ بَعْدَ وظيفةٍ أو زِرٍّ فإنَّ كِلاهما لا يؤدي أيَّ شيء.
ثالثًا. يمكن الجمعُ بينَ أصغرْ مِنْ وأكبرْ مِنْ بشرطِ أن يكونَ أصغرْ مِنْ قَبْلَ إسمِ الزِّرِّ مِنْ أَجْلِ وَضْعِ التركيزِ عليهْ, وَيَكُونَ أكبرْ مِنْ بعدَ إسمِ الزِّرِّ للإنتظار.
مثال.
@
علامة آت.
هذه العَلامَةُ نَضَعُها بعدَ وظيفة, أو بعدَ إسْمِ زِرْ, وَنَضَعُ بعدَها إسمَ التطبيق, لِيَتِمَّ تنفيذُ تلكَ الوظيفةِ, أو لِيَتِمَّ الضغطُ على ذَلكَ الزِّرْ, في التطبيقِ الذي حَدَّدْناهُ فقط.
بحَيْثُ لا يُنَفِّذُ تلكَ الوظيفةَ أو لا يبحثُ عن ذلك الزِّرِّ لِيَضْغَطَ عليه إلا في ذَلكَ التطبيق.
if service.click({{"%ترجمة@تيليجرام",}})return true end
if service.click({{"إرسال@تيليجرام",}})return true end
|
شريط.
هذه العَلامَةُ نَضَعُها بَيْنَ أسماءِ الأزرارْ, لاِخْتيارِ زِرٍّ واحدٍ مِنْ بَيْنِ عِدَّةِ أزرارْ, ويكونُ الترتيبُ مِنَ الأولِ للأخير.
بِحَيْثُ إذا لم يَجِدِ الزِّرَّ الأول, يبحثُ عَنِ الثاني. وإذا لم يَجِدِ الثاني يبحثُ عَنِ الثالث. وَهَكذا حتى يَجِدَ زِرًّا وَيَضْغَطَ عليه.
مثال.
if service.click({{"تشغيل|تسجيل رسالة صوتية|إرسال|رسالة جديدة",}})return true end
ملاحظات.
أولا. لا يمكنُ التخييرُ بينَ الأزرارِ والوظائف.
ثانيًا. لا يمكنُ وَضْعُ هَذهِ العلامةِ إذا وضَعْنَا علامَةَ الْمُرَبَّعِ قَبْلَ إِسْمِ الزِّرِّ القابلِ للتصنيفْ, أو قَبْلَ إسمِ العُقْدَة.
بِحَيْثُ لا يمكنُ الجَمْعُ بينَ أزرارٍ قابلةٍ للتصنيف, أو أسماءِ العُقَدِ في سَطْرٍ واحدٍ للتخيير.
وإذا أردنا أن نجمعَ بين هَذهِ الأخيرةِ من أجلِ أن يختارَ أحدها فإننا نستخدِمُ الأقواسَ المُزَخْرَفَةَ لِهَذا الغرضْ.
وَسَنَشْرَحُ ذلك في حينِه.
شريط.
@*
عَلَامَةُ آتْوَبَعْدَهَا عَلَامَةُ النجمة.
نَضَعُ العلَامَتَيْنِ بَعْدَ إسمِ الزِّرْ, لِيَتِمَّ البحثُ عَنْهُ في جَمِيعِ النوافِذِ المَفْتُحَةِ في الشاشةِ الحالية.
هذا ينفعُ مَعَ بعضِ النوافِذِ المنْبَثِقَة, أَوِ العائمة, مِثْلَ لَوْحةِ المَفَاتِيح.
وَهُوَ يَنْفَعُ أيضًا مَعَ بعضِ النوافِذِ التي تكونُ مُقَسَّمَة.
مِثَال.
if service.click({{"الإدْخَالُ الصوتي@*",}})return true end
مُلاحظة.
هذا لا ينفعُ مَعَ الأزرارِ القابِلَةِ للتصنيفْ, أو أسماءِ العُقَد.
وإذا أردنا أن نجمعَ بين هَذهِ الأخيرةِ من أجلِ أن يختارَ أحدها فإننا نستخدِمُ الأقواسَ المُزَخْرَفَةَ لِهَذا الغرضْ.
!@#
عَلَامَةُ التَّعَجُّبْ, ثُمَّ عَلَامَةُ آتْ, ثُمَّ عَلَامَةُ الْمُرَبَّع.
هذه العَلَامَاتُ الثلاثة, نَضَعُهَا قَبْلَ كِتَابَةِ الأمْرِ الصوتيِّ في السَّطْرِ الأوَّل, لِنَسْتَطِيعَ إِنْشَاءَهُ أو تَجْرِبَتَهُ مِنْ أَيِّ مكان, دُونَ الحَاجَةِ لِإِِنْشائِهِ مِنَ المكانِ المُخَصَّصِ لِإِنْشاءِ الْأَوَامِرِ الصوتية.
والأوامِرُ الصوتيةُ تُكْتَبُ دونَ عَلَامَاتِ التنصيص, أَوِ الأقْوَاسْ, أَوِ الأكواد مِثْلَ service.click, أو return true, أو غيرِها.
نَضَعُ بِداخلِهَا الأزرار, أَوِ الوظائف, أَوِ الإضافات, أَوِ الأدوات, أَوِ الْأَوَامِرَ الصوتية, أو فَتْحَ تطبيقات.
نستطيعُ أَنْ نَجْمَعَ بينَ بعضِ هذه الأنواعِ أو كُلِّهَا.
لَكِنَّنَا لا نستطيعُ أَنْ نَجْمَعَ بينَ وظائفَ مُتَعَدِّدَة, تعملُ في أَمَاكِنَ مُخْتَلِفَة.
فالأَمْرُ الصوتيُّ هو عِبَارَةٌ عَنْ وظيفةٍ واحدة, تَتَكَوَّنُ مِنْ خُطْوَةٍ واحدة, أو مِنْ عِدَّةِ خُطُواتْ.
طريقةُ عَمَلِ ذلك.
نَقِفُ على أَيِّ مُرَبَّعِ تحرير, ثُمَّ نَضَعُ الْعَلَامَاتِ الثلاثة في السَّطْرِ الأَوَّل, ثُمَّ في السَّطْرِ الثاني نَضَعُ إِسْمَ زِر, أو وظيفة, أو إضافة, أو أداة, أو أمْرًا صوتيًّا آخَرْ, أو فَتْحَ تطبيق.
وَنُكْمِلُ بنفسِ الطريقة, نَضَعُ عُنْصُرًا واحدًا في السَّطْرِ الواحدِ فقط.
لِنَحْفَظَ أو نُجَرِّبَ ما أَنْشَأْنَاه, نَنْسَخُهُ عبرَ jieshuo لِتَظْهَرَ لَنَا نافذةٌ تحتوي على خيارََيْنْ.
زِرُّ حَسَنً, لِتَنْفيذِهْ,
أو زُِّ الحِفْظْ, لِحِفْظِهِ كَأَمْرٍ صوتي.
مِثال.
!@#
%الموقع الحالي
فائدةُ العَلاماتِ الثلاثة, أننا نستطيعُ تَجْرِبَةَ مَ نُنْشِئُ في أَيِّ مَرْحلَة.
كما يُمْكِنُنَا مِنْ خِلالِهَا مساعَدَةُ الآخَرينَ بِإِرْسَالِهَا إِلَيْهِم على شكلِ نص, لِيَسْتَطِيعُو تنفيذَهَا مِنَ النافذةِ التي إستقبلوهُ فيها.
طريقةُ عَمَلِ ذلك.
$
دولار.
هذه العَلامَةُ نَضَعُها بَعْدَ إسمِ زِرْ, أو وظيفة, أو إضافة, أو أداة, أو فَتْحِ تطبيق, في إِحْدَى الحالاتِ الآتية.
الحالةُ الأولى.
تأخيرُ الوظيفةِ التاليةِ لِمُدَّةٍ مُعَيَّنَة.
نَضَعُ العَلامَةَ بعدَ الأشياءِ المذكورة, ثُمَّ نَضَعُ المُدة.
الحالةُ الثَّانِيَة.
لِتَحْدِيدِ فاصِلٍ زَمَنِيٍّ لِتِكرارِ الوظيفةِ الْحَالِيَّة.
نَضَعُ عَلامَةَ أصْغَرْ مِنْ بعدَ الأشياءِ المذكورة, ثُمَّ عددَ التكرار, ثُمَّ عَلامةَ الدولار, ثُمَّ المدة.
الحالةُ الثالثة.
الْجَمْعُ بَيْنَ الحالةِ الأولى والثَّانِيَة.
وتكونُ المُدَّةُ بِأَجْزاءٍِ مِنَ الثَّانِيَة ms. ألف لِكُلِّ ثَانِيَة.
أمثلة.
الحالةُ الأولى.
if service.click({{">فيس بوك$5000","الإشعارات",}})return true end
نعني إِفْتَحِ الفَيْسْبُوكْ ثُمَّ انتظر خَمْسَ ثوان للضغطِ على الإشعارات.
الحالةُ الثَّانِيَة.
if service.click({{"تخطي الإعلان<10000$5000",}})return true end
نعني إِضْغَطْ على الزِّرْ أَلْفَ مَرَّة, , واجْعَلِ الفاصِلَ الزَّمَنِيَّ بينَ كُلِّ مرةٍ خَمْسَ ثوان.
الحالةُ الثالثة.
if service.click({{"إصدار MIUI*<8$100","%رجوع<3$000",}})return true end
هذه الحالَةُ تحتاجُ إلى بعضِ التفصيل, لأننا جمعنا فيها بينَ عِدَّةِ علامات.
أولا. إسمُ العنصرِ وهو إصدار MIUI. وضعنا بعده عَلامَةَ النجمةِ لأنهُقد يحتوي على متغيراتٍ في آخِرِه.
ثانيًا. عَلامَةُ أصغرْ مِنْ وضعناها بعدَ عَلامَةِ النجمةِ ووضعنا بعدهما عددَ التِكرارِ الخاصِّ بالضغطِ على الزِّرْ, لِتَفْعيلِ إعداداتِ الْمُطَوِّر.
ثالثا. وضعنا عَلَامَةَ الدولارْ بعدَ العَلَامَتَيْنِ السابقتينِ لِتَحْدِيدِ الفاصلِ الزَّمَنِيِّ بَيْنَ كُلِّ ضَغْطَة. لأن تفعيلَ إعداداتِ المطوِّرْ يتطلبُ ضغطًا متتالِيًا بسُرْعة.
رابعا. علامَةُ الدولار في السطرِ الأولِ تؤدي الدورَ السابق, وفي نفسِ الوقتِ تُحَدِّدُ مُدَّةَ تأخيرِ وظيفةِ الرُّجُوعِ بعدَ آخِرِ ضغطة.
خامسًا. وضعنا عَلامَةَ بالمئةِ قبلَ وظيفةِ الرجوع, لأننا قُلْنا سابقا أنَّ عَلامَةَ بالمئةِ تُوضَعُ قَبْلَ الوظائفِ الأساسيةِ للتطبيق.
سادسا. وضعنا علامَةَ أصغرْ مِنْ بعدَ الرجُّوعْ, ووضعنا بعدها عددا, لأننا حتى نَرْجِعَ إلى الشاشةِ الرئيسيةِ نحتاجُ للضغطِ على الرجوعِ ثلاثَ مرَّات.
سابعا. وضعنا علامَةَ الدولار بعدَ عددِ التِّكرارْ, لِنَتَمَكَّنَ مِنَ الرُّجُوعِ بِسُرْعَة.
مُلاحظة.
إنَّ الفاصِلَ الزَّمَنِيَّ الإفتراضيَّ بينَ تَأْدِيَةِ الوظائفِ أَوِ الضغطِ على الأزرار, هو ثَانِيَةٌ واحدة.
فإذا وضعنا بعدَ علامةِ الدولار أكثرَ مِنْ ألْفْ, فإننا نعني الزيادةَ على المدةِ الإفتراضية.
وإذا وضعنا بعدَ علامةِ الدولار أَقَلَّ مِنْ ألْفْ, فإننا نعني جَعْلَ المدةِ أَقَلَّ مِنَ المدةِ الإفتراضية.
وإذا وضعنا بعدَ علامةِ الدولار أصفارْ, فإننا نعني إلغاءَ المدة.
وهنا يعتمدُ الأَمْرُ في السرعةِ على التطبيقِ الذي نَتَعَامَلُ معهْ, أو على سُرعةِ الهاتفْ, أو على سُرعةِ الإتصال.
فإذا كان الفاصلُ الزَّمَنِيُّ مُلْغَى مِنْ أجلِ تِكرارِ وظيفةٍ في قارئِ الشاشة, فإنَّ الأمرَ يكونُ سريعا جدا.
رابعا. علامَةُ الدولار في السطرِ الأولِ تؤدي الدورَ السابق, وفي نفسِ الوقتِ تُحَدِّدُ مُدَّةَ تأخيرِ وظيفةِ الرُّجُوعِ بعدَ آخِرِ ضغطة.
&
وَ.
هذه العَلامَةُ نَضَعُها بَعْدَ وظيفة, أو إضافة, أو أداة, أو فتحِ تطبيق, للشَّرْطِ في أكثرَ مِنْ حالة.
الحالةُ الأولى.
الضغطُ على زِرٍّ مُعَيَّنْ, أو تنفيذُ وظيفةٍ مُعَيَّنَةٍ إذا كان في الشاشةِ الحاليةِ عِبارةٌ أو كلمةٌ مُعَيَّنَة.
الحالةُ الثَّانِيَة.
عدمُ الضغطِ على زِرٍّ مُعَيَّنْ, أو عدمُ تنفيذِ وظيفةٍ مُعَيَّنَةٍ إذا كان في الشاشةِ الحاليةِ عِبارةٌ أو كلمةٌ مُعَيَّنَة.
الحالةُ الثالثة.
الضغطُ على زِرٍّ مُعَيَّنْ, أو تنفيذُ وظيفةٍ مُعَيَّنَةٍ إذا كان التركيزُ على نوعٍ مِنْ أنواع العناصرِ التي سَنُبَيِّنُها. .
مثالُ الحالةِ الأولى.
عندنا مربعُ حِوارٍ مفاده: هل تُريدُ الخروج. وعندنا زر مُوافِق وَزِرْ إلغاء.
نريدهُ أن يضغطَ على زِرْ مُوافِقْ إذا كانت كلمةُ الخروجِ مَوْجُودَةً في نفسِ النافذة.
فَتَكُونُ الجُمْلَةُ كالتالي:
if service.click({{"موافق&الخروج",}})return true end
مثالُ الحالةِ الثَّانِيَة.
عندنا مربعُ حِوارٍ مفاده: هل تُريدُ الْحَذْفْ. وعِندنا زر مُوافِق وَزِرْ إلغاء.
نريدهُ أن لا يضغطَ على زِرْ مُوافِقْ إذا كانت كلمةُ الْحَذْفِ مَوْجُودَةً في نفسِ النافذة.
ونريدهُ أن يضغطَ على مُوافِق في باقي مربعاتِ الحِوار.
فَتَكُون الجملة كالتالي:
if service.click({{"موافق&!الحذف",}})return true end
في الحالةِ الثَّانِيَةِ التي هي عَكْسُ الحالةِ الأولى وضَعْنا بعدَ عَلامَةِ وَ عَلامَةَ التَّعَجُّبْ.
مثالُ الحالةِ الثالثة.
نريد أن لا يقومَ التطبيقُ بتنفيذِ وظيفةٍ معينة, أَوِ الضغطِ على زِرٍّ مُعَيَّن, إلا إذا كان التركيزُ على نوعٍ مُعَيَّنْ مِنْ أنواع العناصر.
نَضَعُ العَلامَةَ في أولِ السطرْ, وَنَضَعُ بعدَها نوعَ العُنْصُرْ. ثُمَّ نَكْتُبُ في السطرِ الثاني بَقِيَّةَ الأوامر.
وبذلك لا يؤدي التطبيقُ تلكَ الوظيفةَ, إلا إذا كانَ التركيزُ الحاليُّ على نفس النوعِ الذي وضعناهُ بعدَ العلامة.
فَتَكُونُ الْجُمْلَةُ كالتالي.
if service.click({{"&可编辑","%لصق",}})return true end
نشترطُ أن يكونَ التركيزُ على مربعِ التحرير, لِتُؤَدَّى وظيفةُ اللَّصْقْ.
والأنواعُ التي أعلمُها 4.
وهناك نَوْعٌ خامس وهو يشبهُ النَّوْعَ الأول, إلا أنَّ الفَرْقَ بينهما أنَّ الخامسَ لا يعملُ إلا إذا ضَغَطْنا على مربعِ التحريرِ ضغطتين.
النوعُ الأول.
مربعُ التحرير.
&可编辑
النوعُ الثاني.
قابل للنقر.
&可点击
النوعُ الثالث.
قائمة.
&列表
النوعُ الرابع.
عنصر داخل قائمة.
&列表项目
النوعُ الخامس.
هو مِثْلُ الأولِ مَعَ الْفَرْقِ المذكور.
&编辑框
مُلاحظات.
أولا. مِنَ الناحيةِ العملية, النوعُ الوحيدُ من أنواعِ العناصرِ الذي يمكننا أن نستفيدَ مِنْهُ بشكلٍ جيد, هو مربعُ التحرير.
ثانيًا. بالنسبة للنوع الثاني وهو العنصرُ القابلُ للنقر, وبعد التجربة, وجدتُ أنه يعملُ أحيانًا مع بعضِ العناصرِ التي لا تُفَعَّلْ.
ثالثا. بالنسبة للنوعِ الثالثِ وهو القائمة, فهو لا يتوفرُ إلا في بعض الحالات. منها التَّصَفُّحُ بِالْعُقْدَة, والتمريرُ للأَمامِ أَوِ الخلف.
رابعا. بالنسبةِ للنوعِ الرابعِ وهو العنصرُ في القائمة, فإنه موجودٌ بشكلٍ كبير, وبذلك عندما نضعهُ كَشَرْطْ, فإِنَّ الوظيفةَ التي نُلْحِقُها بهِ تُؤَدَّ تقريبا في كل مكان. وحينئذ الشرطُ لا تكونُ له قيمة.
خامسا. هذه الطريقةُ مِنَ الشُّرُوطِ لم أحصُلْ فيها إلا على أربعةِ أو خمسةِ أنواعٍ مِنَ العناصر.
سادسا. هناك طريقةٌ أخرى للشُّرُوطْ, سأشرحها في ملفٍّ خاصٍّ بها. وهي طريقةٌ أفضل في نظري.
النوعُ الخامس.
[]
قَوْسَيْنِ مُرَبَّعَيْنْ.
نَضَعُ بينهما إسمَ زِرٍّ معين, لِيَتِمَّ الضَّغْطُ عليهِ عن طريقِ النقرِ المباشر.
وَنَضَعُ بينهما إِحْدَاثِيَّاتٍ مُعَيَّنَة, لِيَتِمَّ الضَّغْطُ عليها عن طريقِ النقرِ المباشر, أَوِ الضَّغْطِ الْمُطَوَّلِ المباشِر.
وَنَضَعُ بينهما إِحْدَاثِيَّاتٍ مُعَيَّنَة, لِنَقْلِ الزِّرِّ مِنْ مَوْضِعٍ إلى آخَر.
مثالُ الحالةِ الأولى.
if service.click({{"[تشغيل]",}})return true end
وَضَعنَ بينهما زِرَّ تشغيلْ, لِيُفَعِّلَهُ عن طريقِ النَّقْرِ الْمُبَاشِر.
مثالُ الحالَةِ الثَّانِيَة.
if service.click({{"[850, 1100,300]",}})return true end
وَضَعنَ بينهما إحداثياتٍ مُعَيَّنٍَ لِمَوْضِعٍ مُعَيَّن في الشاشة, لِيُفَعِّلَهُ عن طريقِ النقرِ المباشر, أَوِ الضَّغْطِ الْمُطَوَّلِ المباشِر.
سواءً كان هذا المكانُ يحتوي على عُنْصُرٍ أو زِرٍّ أو لا يحتوي على أيٍّ منهما.
الرَّقْمُ الأوَّلُ للإحداثيات الخاصةِ بالعرضْ, والرَّقْمُ الثاني للإحداثيات الخاصةِ بِالطُّولْ, والرَّقْمُ الثالثُ للمُدة.
فإذا كانتِ المُدَّةُ 300 أو ما يَقْرُبْ, فإنها للنَّقْرِ المباشر. وإذا كانت 1000 أو ما يقرُبْ, فإنها للضَّغْطِ الْمُطَوَّلِ المباشِر.
وإذا حَذَفْنا الرَّقْمَ الثالث, فإنه سَيُفَعِّلُهُ عن طريقِ النَّقْرِ المُباشِر. لَكنْ, الأفضَلُ أن نَضَعَ المُدَّةَ للتخييرِ بينَ النَّقْرِ المباشِر, أَوِ الضَّغْطِ المُطَوَّلِ المباشِر.
مثالُ الحالَةِ الثالثة.
if service.click({{"[950,1100,850,1000,1000,5]",}})return true end
الرَّقْمُ الأوَّلُ والثاني للإحداثيات الخاصةِ بالْمَوْضِعِ الأول, والرَّقْمُ الثالثُ والرابعُ للإحداثياتِ الخاصةِ بالْمَوْضِعِ الذي يَتِمُّ الإنتِقالُ إِلَيْهْ, والرَّقْمُ الخامسُ لِمُدَّةِ الإنتقالْ, والرَّقْمُ السادسُ لِعددِ تِكْرارِ العملية, وهو إِخْتِيَاري.
وَيَجِبُ أنْ نَضَعَ بينَ الأرقامِ عَلَامَةَ الفاصلة.
هذه العمليةُ قد تُفيدُنا في التقليبِ بينَ الصفحات, وفي بعضِ التطبيقات التي لا تحتوي على تركيزْ..
والْخُلاصَةُ أنَّ كلَّ ما يُضَعُ بينَ القَوْسَيْنِ المُرَبَّعَيْنِ هو محاكاتٌ للضَّغطِ دونَ استخدامِ الناطق. فَلَا علاقةَ للتركيزِ الخاصِّ بإمكانيَّةِ الوصولِ بِهَذَا الأمر.
أولا. لا يمكنُ أنْ نَضَعَ بعدَ الأقواسِ المُرَبَّعَةِ علامةَ آت لِيَكونَ الضَّغطُ على الزرِّ أَوِ الإحداثياتِ خاصا بتطبيقٍ مُعَيَّنْ.
ثانيًا. لا يمكنُ أنْ نَضَعَ بعدَ الأقواسِ المُرَبَّعَةِ علامَةَ أكبرْ مِنْ, إذا وضعنا بينَ تلكَ الأقواسِ إِحْدَاثِيَّاتِ مَوْضِعٍ مُعَيَّنْ.
ثالثًا. لا يمكنُ أن نضعَ إِسْمًا خاصًّا بِعُقْدَةٍ أو إسمَ زِرٍّ قابلٍ للتصنيفِ بينَ الأقواسِ المُرَبَّعَة.
رابعًا. لا يمكنُ أنْ نَجْمَعَ بَيْنَ الأقواسِ المُرَبَّعَةِ والأقواسِ المزخرفةِ إذا إِسْتَعْمَلْنَا هَذهِ الأخيرةَ مِنْ أجل التخيير. وَسَنَشْرَحُ ذَلِكَ حينَ التَّطَرُّقِ لِموضوعِ الأقواسِ المزخرفة.
خامسًا. لا يمكنُ أنْ نَجْمَعَ بَيْنَ الأقواسِ المُرَبَّعَةِ والشريطِ العموديِّ مِنْ أجل التخيير.
سادِسا. لا يمكنُ وضْعُ عَلامَةِ الدولار بعدَ الأقواسِ المُرَبَّعَةِ لِتحديدِ الفاصلِ الزَّمَنِيِّ لِتِكْرارِ العمليةِ إذا كانَ قَبْلَهُ أصغرْ مِنْ, أو لِتحديدِ مُدَّةِ تأخيرِ الوظيفةِ التالية. .
سابعا. يمكنُ وضْعُ عَلَامَةِ أصغرْ مِنْ بعدَ الأقواسِ المُرَبَّعَة, أو قَبْلَ القَوْسِ الْمُرَبَّعِ الْمُغْلَقْ, لِتِكْرارِ الْعَمَلِيَّة.
ثامنًا. يمكنُ أنْ نَضَعَ بعدَ الأقواسِ المُرَبَّعَةِ علامَةَ أكبرْ مِنْ, إذا وضعنا بينَ تلكَ الأقواسِ إسْمَ زِرٍّ مُعَيَّنْ.
تاسِعًا. نستطيع الْإِسْتِفَادَةَ مِنَ القَوْسَيْنِ المُرَبَّعَيْنِ في الإسْتِبْدَالِ النمطي, بحيثُ نَضَعُ بَيْنَهُمَ ما نُرِيدُ إِسْتِبْدَالَه.
[a-z]
في المثالِ السابقِ قُلْنَا له, إِسْتَبْدِلْ كُلَّ الأَحْرُفِ اللاتينية, وَهُوَ ينفعُنَا إذا كنا نريدُ حَذْفَ اللُّغَاتِ الأجنبيةِ مِنَ النَّص, والإِبْقَاءَ على العربية. []
عَاشِرًا. نستطيعُ أيضًا الْإِسْتِفَادَةَ مِنَ القَوْسَيْنِ المُرَبَّعَيْنِ في تعديلِ التقسيمِ إلى الكلمات, الموجودِ في الإعداداتِ المُتَقَدِّمة, ثُمَّ إعداداتٍ أخرى.
بحيثُ نَضَعُ بينَهُمَا العَلَامَاتِ التي نُريدُ التقسيمَ حَسَبَهَا.
مثال.
[,:;.]
ثانيًا. لا يمكنُ أنْ نَضَعَ بعدَ الأقواسِ المُرَبَّعَةِ علامَةَ أكبرْ مِنْ, إذا وضعنا بينَ تلكَ الأقواسِ إِحْدَاثِيَّاتِ مَوْضِعٍ مُعَيَّنْ.
{}
الأقواسُ المزخرفة.
هَذهِ نُعَدِّلُ عليها لِنَجْعَلَ الأشيَاءَ الموجودَ ةَ داخلْ service.click({}) للترتيب, أو للتخيير, أو للدَّمْجِ بينَ الترتيبِ والتخيير.
الحالةُ الأولى وهي للترتيب.
إِفْتراضيا نَجِدُ بعدَ عِبارة service.click({}) أربعةَ أقواسٍ مُزَخْرَفة. وَنَجِدُ بينَ تلك الأقواسِ أزرارًا, أو وظائف, أو أدوات, أو فَتْحَ تطبيق, أو خليطًا بينَ بعضِ هَذِهِ الأشياءأو كُلِّها.
فهوَ سيبدأُ بأولِ شيء, ثُمَّ الثاني, ثُمَّ الثالث, حتى ينتهي.
فهنا لاحظنا أنهُ يُؤَدِّي هذه الوظيفةَ على أساسِ الترتيب.
إذا كانتِ الوظيفةُ تحتوي على زِرٍّ فإنه سيضغطُ عليه. فإذا لم يجدْهُ لَن يُكْمِلَ الوظيفة.
إذا كانتِ الوظيفةُ تحتوي على إضافةٍ أو أداةٍ فإنه سيقومُ باستدعائها. فإذا لم يجدْها لَن يُكْمِلَ الوظيفة.
مثالُ الحالَةِ الأولى.
if service.click({{">Acapela TTS Voices","الإعدادات",}})return true end
الحالةُ الثَّانِيَةُ وهي للتخيير.
لقد قُمْنا بِحَذْفِ قَوْسَيْنِ مُزَخْرَفَيْنِ بعدَ عِبارة service.click({{})وهَذا يعني أنها صارت للتخيير.
نستطيعُ أن نَضَعَ عِدَّةَ أزرارٍ لِيَقومَ التطبيقُ بالبحثِ عنها. وَأَوَّلُ زرٍّ يَجِدهُ سيضغطُ عليهِ ويتوقف.
ونستطيعُ أيضً أن نجمعَ بينَ زِرٍّ أو عِدَّةِ أزرارٍ ووظيفة,, أو أداة, أو فتحِ تطبيق. بِشَرْطِ أنْ تكونَ الأزرارُ في الأولِ لِيَبْحَثَ عنها وإذا لم يجدْها يُنَفِّذُ إِحْدَى هذه الأشياءَ الثلاثة .
أما إذا كانت إِحْدَى هذه الأشياءِ الثلاثة في الأول, فإنهُ سَيُنَفِّذُها ولن يبحثَ عَنِ الأزرار.
مثالُ الحالَةِ الثَّانِيَة.
if service.click({"#end_call_btn@WhatsApp","#call_notification@WhatsApp","#voice_note_cancel_btn@WhatsApp","#voice_note_draft_discard_btn@WhatsApp","#cancel@WhatsApp","%رجوع",})return true end
الحالةُ الثالثةُ وهي للدمْجِ بينَ الترتيبِ والتخيير.
وهَذِهِ الحالةُ تحتاجُ إلى بعضِ التركيز.
عندنا عِبارة service.click({})أربعةُ أَقْوَاسٍ في الحالةِ الإفتراضيةِ كما ذكرنا.
نستطيع أن نُضِيفَ قَوْسَيْن, أو أربعة, أو ستة, أو أكثر. المُهمُّ أن يكونَ العددُ زوجيًّا.
وكلُّ زوجٍ مِنْ هذه الأقواس, نَضَعُ بِداخِلِهِ الأشياءَ التي يكونُ فيها التخييرُ كما في الحالةِ الثَّانِيَة, وبنفسِ القواعد.
نَفْتحُ قَوْسًا قبلَ التنصيصِ الأولِ الذي يبدأُ بعدَهُ التخييرْ, وَنُغْلِقُ قوسا بعدَ التنصيصِ الذي ينتهي عندهُ التخيير.
فَتَكونُ الوظيفةُ كالتالي.
service.click({{{"الرد على المكالمة@واتساب","تسجيل رسالة صوتية@واتساب"},"%الإزاحة إلى الأعلى",}})
أضَفنا قَوْسًا مفتوحا قبلَ التنصيصِ الموجودِ قبلَ الردِّ على المكالمة. وهَذا لِبِدايَةِ التخيير.
ووضعنا قوسا مُغْلَقًا بعدَ التنصيصِ الموجودِ بعدَ تسجيلِ الرِّسَالةِ الصوتية, وهَذا لإنهاءِ التخيير.
مثالُ الحالَةِ الثالثة.
if service.click({{{"#accept_incoming_call_view@WhatsApp","#voice_note_btn@WhatsApp"},"%الازاحه الى الاعلى",}})return true end
عندنا الردُّ والتسجيل. وكلاهما يحتاج إلى الإزاحة إلى الأعلى.
هما يختلفَانِ في الإسم, ويجتمِعانِ في احتياجهما للإزاحة, ويجتمِعانِ أيضا في تطبيقٍ واحد.
هنا نقولُ للتطبيق, إِبْحَثْ عن أحدِ الزِّرَّيْنْ, وإذا وجدْتَ أحدَهما إِضْغَطْ عليه ثُمَّ أَزِحْهُ.
فكيف نجعلُهُ يختارُ أَحَدَ الزِّرَّيْنِ إذا وُجِدْ, ثُمَّ يرجعُ للترتيب, أي للإزاحة.
هنا يجب علينا أن نركزَ جيدا.
للترتيبِ يجبُ أن تكون هناك أربعةُ أقواسٍ مزخرفة. إثنان في الأول, واثنان في الأخير.
وللتخييرِ يجبُ أن يكونَ هناك قَوْسَيْنِ مزخرفَيْن فقط. واحد في الأول, والثاني في الأخير.
فَفِي حَالَتِنَا هذه أدخلْنا التخييرَ داخل الترتيب.
بحيث نُبْقِي على الأربعةِ الخاصةِ بالترتيب في مكانها, وَنُضِيفُ أخرى بداخلها للتخيير.
فَفِي حَالَتِنَا السابقةِ وضعنا قَوْسَيْنِ في الأولِ وقَوْسَيْنِ في الأخيرِ للترتيبِ بين الأزرارِ التي يتمُّ اختيارُ أحدِها وبين الإزاحة.
ووضعنا قَوْسًا مفتوحا قَبْلَ الزِّرِّ الأولِ لِبِدايةِ التخييرْ, ووضعنا قوسا مغلقا بعدَ الزِّرِّ الثاني لإنهاءِ التخييرْ, والعودةِ إلى الترتيبِ الذي وضعنا له أقواسا في الأولِ والأخير.
مُلاحظات.
أولا. نستطيع أن نجعلَ التخييرَ بينَ إِسْمِ زِرٍّ واحدٍ أو عِدَّةِ أزرارٍ ووظيفة. بشرطِ أن تكونَ الأزرارُ هي الأولى.
ثانيًا. الْقَوْسُ الذي نضعهُ لِبِدايةِ التخييرْ, يكونُ قَبْلَ عَلامَةِ التنصيص. والذي نضعهُ لإنهاءِ التخييرْ, يكونُ بعدَ عَلامَةِ التنصيص. وليسَ بعدَ علامَةِ الفاصلة.
ثالثا. نستطيعُ أن نبدأَ تخييرًا ثَانِيًا دونَ أن نَفْصِلَ بينه وبينَ التخييرِ الأولِ بشيءٍ خاصٍّ بالترتيب.
ولو نظرنا في هذه الحالةِ نجدُه ترتيبً يَجْمَعُ بينَ تَخْيِيرَيْن.
رابعا. الأقواسُ التي نتحدثُ عنها هي الأقواسُ المزخرفة. ولا علاقةَ للأقواسِ العاديةِ بالموضوع.
بحيث نُبْقِي على الأربعةِ الخاصةِ بالترتيب في مكانها, وَنُضِيفُ أخرى بداخلها للتخيير.
()
الأقواس.
هي إفتراضيا تكونُ بعدَ عِبارة service.click({{{}}) وقد نَكْتُبُهَا إذا كَتَبْنَا هذه العِبارةَ بشكلٍ يدوي, أو إذا قمنا بحذفِ أحدِها عن طريقِ الخَطَأ.
أما إذا إِسْتَعْمَلْنَا إِدْرَاجْ فَلَا نكتُبُها لأنها تُكْتَبُ تِلْقَائِيًّا كما قُلنا.
وما دامَ أنَّنا نتحدَّثُ فقط عن عِبارة service.click({{{}}) فإنه يوجَدُ بعدَهَا زوجٌ مِنَ الأقواس. الأوَّلُ مفتوحْ بعدَ كلمة click, والثاني مُغْلَقْ في الأخير. وبعدَهُ نَجِدُ عبارة return true end.
الخُلاصَةُ أننا لا نضعُ هذه الأقواس. بَلْ نَجِدُهَا قد أُضِيفَت تِلقائيا. وقد نَضَعُها في حالةِ كِتَابَةِ الأَمْرِ بشكلٍ يدوي, أو عند حَذْفِها عن طريقِ الخَطَأ.
مثال.
if service.click({{}})return true end
ثانيًا. الْقَوْسُ الذي نضعهُ لِبِدايةِ التخييرْ, يكونُ قَبْلَ عَلامَةِ التنصيص. والذي نضعهُ لإنهاءِ التخييرْ, يكونُ بعدَ عَلامَةِ التنصيص. وليسَ بعدَ علامَةِ الفاصلة.
"
التنصيص, أو الإقتباس.
بعدَ service.click({{{}}) يمكنُ أنْ نضَعَ الكثيرَ مِنَ العناصر. كالأزرار, والوظائف, وغيرِها مِنَ الأُمورِ التي ذُكِرَتْ في هذا الدرس.
قد نَضَعُ عنصرا واحدا, وقد نَضَعُ الكثيرَ مِنَ العناصر.
يجبُ علينا أن نَضَعَ كُلَّ عنصرٍ بينَ تَنْصِيصَيْن.
في حالةِ الإدراجِ لا نحتاجُ إلى ذلك, أما إذا كَتَبْنَ الأمرَ بشكلٍ يدوي, فإننا نحتاجُ إلى أن نَضَعَ كُلَّ عنصرٍ بينَ تَنْصِيصَيْن.
في حالةِ إدراجِ أو كتابةِ عنصرٍ واحد, فإننا لا نحتاجُ إلى وَضْعِ عَلامَةِ الفاصِلَةِ بعدَ التنصيصِ الثاني. أما إذا أَدْرَجْنَا أو كَتَبْنَا أكثرَ مِنْ عُنْصُر, فإننا نحتاجُ إلى وَضْعِ عَلامَةِ الفاصِلَةِ بعدَ كُلِّ عنصر, عدا العنصرِ الأخير. وتكونُ عَلامَةُ الفاصِلَةِ بعدَ التنصيصِ الثاني لِلْعُنْصُر.
وَلَوْ وَضَعْنَاهَا بعدَ العنصرِ الأخيرْ, أو بعدَ كلِّ عنصر, فإنها لا تؤثِّر.
مثالُ العنصرِ الواحد.
if service.click({{"إرسال"}})return true end
مثالُ أكثر من عنصر.
if service.click({{"تسجيل رسالة صوتية","%الإزاحةُ إلى الأعلى"}})return true end
لاحظنا في المثالِ الثاني وُجودَ الفاصلة بعدَ العنصرِ الأوَّل, لأنَّ بعدَهُ عنصرا آخَر. وعدَمَ وجودِها بعدَ العنصرِ الأخير, لأنه لا يوجدُ بعدهُ شيء.
يجبُ علينا أن نَضَعَ كُلَّ عنصرٍ بينَ تَنْصِيصَيْن.
هذه بعضُ العلامات, وأكيدْ هناك علاماتٌ أخرى. لَكِنِّي رَكَّزْتُ على العلاماتِ المشهورة, والتي نحتاجُها كثيرا في كتابةِ الوظائفِ البسيطة. .
العلاماتُ التي نَكتُبُها يدويا بشكلٍ دائمٍ هي.
* # < @ $ & []
والعلاماتُ التي قد نكتُبُها وقد نُدْرِجُها وَهَذَا بِحَسَبِ الحال هي.
% > {} " ,
العلاماتُ التي شَرَحْنَاهَا نستخدمُها داخلَ أَمْرْ service.click({{}}).
هناكَ الكثيرُ مِنَ الأوامرِ الأخرى. لَكِنَّ هذا الأمرَ هو الأشْهَرُ والأسهل. لأننا نستطيع مِنْ خلالهِ الدمجَ بينَ الضغطِ على الأزرار, واستِدعاءِ الوظائفِ الأساسية, والإضافات, والأدوات, وَفَتْحِ التطبيقات.
نستطيعُ أن نَضَعَ المحتوى داخلَ هذا الأمرِ بإحدَ الطريقتين.
الطريقةُ الأولى. إنشاءُ وظيفةِ النقرِ التلقائي.
نَصِلُ إليها عَبْرَ الذهابِ إلى الإعدادات, ثُمَّ الإعداداتِ العامة, ثُمَّ إعداداتِ الإيماءاتِ المُخصَّصة, ثُمَّ المزيدِ مِنَ الخياراتْ, ثُمَّ إنشاءِ وظيفةِ النقرِ التلقائي, ثُمَّ كتابةِ إسمِ الوظيفةِ, ثُمَّ الضغطِ على حَسَنًا أو مُوافِق.
وهنا نجدُ مربعَ التحرير, نضعُ بِداخلِهِ الأزرار, واحدا في كُلِّ سَطْرْ.
ونستطيعُ أيضا أن نُدْرِجَ وظيفة, أو إضافة, أو أداة, أو فَتْحَ تطبيق, عن طريقِ الضغطِ على المزيدِ مِنَ الخيارات.
ونستطيعُ أيضا أن نُدْرِجَ وظيفة, عن طريقِ كتابتِها ووَضْعِ عَلامَةِ بالمئةِ قَبْلَها.
ونستطيعُ أيضا أن نُدْرِجَ إضافة, عن طريقِ كتابتِها ووَضْعِ عِبارة %Plugins/ قَبْلَها.
ونستطيعُ أيضا أن نُدْرِجَ أداة, عن طريقِ كتابتِها ووَضْعِ عِبارة %Tools/ قَبْلَها.
في حالةِ كتابةِ إسمِ زِرٍّ أو كتابةِ إحدى الأُمورِ المذكورةِ في السطرِ السابق بشكلٍ يدوي, يجبُ علينا بعدَ الكتابةِ أن نَضْغَطَ على إدخالْ في لَوْحةِ المَفَاتِيحْ, لِنَنْزِلَ إلى السطرِ التالي.
أما إذا اخترنا إدراجْ بالضغطِ على المزيدِ مِنَ الخياراتْ, فإننا لا نحتاجُ إلى ذلك.
بعدَ الإنتهاء, نَضْغَطُ على حِفْظْ.
ولو رَجَعنا إلى الوظيفةِ التي أنشأناها لِنُعَدِّلَ عليها فإننا لن نستطيعَ إدراجَ الأزرارِ أَوِ الوظائفِ بالطريقةِ الأولى. وإنما نحتاجُ في هذه الحالَةِ إلى الطريقةِ الثَّانِيَة.
الطريقةُ الثَّانِيَة. إنشاءُ وظيفة.
نَصِلُ إليها عَبْرَ الذهابِ إلى الإعدادات, ثُمَّ الإعداداتِ العامة, ثُمَّ إعداداتِ الإيماءاتِ المُخصَّصة, ثُمَّ المزيدِ مِنَ الخياراتْ, ثُمَّ إنشاءِ وظيفة, ثُمَّ كتابةِ إسمِ الوظيفةِ, ثُمَّ الضغطِ على حَسَنًا أو مُوافِق, ثُمَّ المزيدِ مِنَ الخيارات, ثُمَّ إدراجْ نَقْرْ تلقائي.
وهنا نجدُ مربعَ التحريرْ, نضعُ بِداخلِهِ الأزرار, واحدا في كل سَطْرْ.
ونستطيعُ أيضا أن نُدْرِجَ إضافة, عن طريقِ كتابتِها ووَضْعِ عِبارة %Plugins/ قَبْلَها.
ونستطيعُ أيضا أن نُدْرِجَ أداة, عن طريقِ كتابتِها ووَضْعِ عِبارة %Tools/ قَبْلَها.
وبَعْدَ الإنتهاء, نَضْغَطُ على حَسَنًا أو مُوافِق, لِنَجِدَ ما أضفناهُ موجودا داخلَ أمر, service.click({{}})
فما علينا سوى الضَّغْطِ على حِفْظْ كما في الطريقةِ الأولى.
الْفَرْقُ بينَ الطريقةِ الأولى والثَّانِيَة.
أولا. في الطريقةِ الأولى نستطيعُ إدراجَ الوظائفِ وغيرِها بشكلٍ تلقائيٍّ داخلَ أمر, service.click({{}}), عن طريقِ المزيدِ مِنَ الخيارات, لَكنْ في الطريقةِ الثَّانِيَة, نَكْتُبُها بشكلٍ يدوي.
ثانيًا. في الطريقةِ الأولى نستطيعُ التعديلَ بعدَ إدخالِ الأشياءِ المطلوبةِ قَبْلَ الضَّغْطِ على زِرِّ الحِفْظْ. أما في الطريقةِ الثَّانِية, فإننا لو ضَغَطْنا على حَسَنً أو مُوافِق, فإنه سيقومُ بإنشاءِ أَمْرْ, service.click({{}}). . وبالتالي يَصْعُبُ التعديلُ على المحتوى داخلَ الأمر, فَنُضْطَرُّ إلى مَسْحِ كلِّ شيء وَإِعادَةِ كِتَابَتِهِ مِنْ جديد
ثالثا. الطريقةُ الأولى تنفعُ لإنشاءِ وظيفةٍ واحدة. والطريقةُ الثَّانِيَةُ تنفعُ لإنشاءِ عِدَّةِ وظائفَ داخلَ وظيفةٍ واحدةٍ لِنَسْتَخْدِمَها في عِدَّةِ أمور, أو في عِدَّةِ تطبيقات.
مُلاحظة.
إذا أنشأنا وَظِيفَةً بالطريقةِ الأولى, فإننا نَجِدُ في آخِرِ تلكَ الوظيفةِ عِبارة, return true. وَنَجِدُ قبْلَها عِبارة, end.
إذا أنشأنا وَظِيفَةً بالطريقةِ الأولى, فإننا نجدُ في آخِرِ تلكَ الوظيفةِ عِبارة, return true. ونَجِدُ قبْلَها عِبارة, end.
فَعِبَارَةُ return true إذا كانت في الأخيرْ, تمنعُنا مِنْ أَمْرَيْنْ.
الأمرُ الأوَّل. لا نستطيعُ إضافةَ وظيفةٍ أخرى إلى الوظيفةِ الحاليَّة.
الأمرُ الثاني. إذا لَمْ يِجِدِ الأزرارَ التي وضعناها في هذه الوظيفة, فإنَّهُ لَنْ يُؤَدِّيَ الوظيفةَ الْإِفْتِرَاضِيَّةَ للإيماءةِ التي حددناها لهذه الوظيفة
فَالْحَلُّ أنْ نَحْذِفَ عِبارة, return true إذا كانت في الأخير.