اذهب إلى المحتوى

Wael Aljamal

الأعضاء
  • المساهمات

    6975
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    218

كل منشورات العضو Wael Aljamal

  1. آخر أمرين لتنظيف الذاكرة المؤقتة للمكتبات لتجنب تضارب في عملهم.
  2. هل يظهر أي نص توضيحي أعلى هذه التعليمة؟ بعد وضع مؤشر الفأرة عليها أو إخطار بجانبها؟ هل تستخدم الإصدار 3 من المكتبة؟ مستبعد حدوث مشكلة أرجو تجريب التالي للتأكد من حذف أي كاش قديم قد يسبب تضارب و مشاكل: flutter channel stable flutter upgrade flutter pub cache repair flutter clean
  3. هل يمكنك تجريب تنفيذها كالتالي: context.locale = Locale('en', 'US'); فهي طريقة تعامل المكتية في أحدث إصدارها وهو 3.0.0
  4. لتعريف متغير يتم إسناد قيمة استدعاء دالة من غرض إليه تتم بالشكل التالي ضمن الصنف: نقوم بحساب المعدل ضمن الدالة مثلا و إسنادها للخاصية الموافقة: class child(parent): Gpa def calculate_gpa(self): self.Gpa = (حساب المتوسط) return self.Gpa وإن كنت تريد تخزينه في متغير خارج الصنف لاستعماله ضمن البرنامج: # تعريف غرض من الصنف c = child("xxx", "yyy") myGpa = c.calculate_gpa()
  5. يتم استدعاء دالة عن طريق استخدام متحول نصي يحوي الاسم كالتالي: getattr يقوم بإعادة (method | attribute) من الصنف المستدعاة عليه نقوم بتنفيذ الدالة المعادة # تضمين الصنف import foo # جلب الدالة bar = 'bar' method_bar = getattr(foo, bar) # الاستدعاء result = method_bar() ويمكن تنفيذها مباشرة كالتالي: result = getattr(foo, 'bar')() وأيضا يمكننا باستخدام الدالتين حسب scope: locals()["bar"]() globals()["bar"]()
  6. حسنا قمت بتحميل المشروع، أرجو شرح المشكلة بطريقة واضحة وأين تظره و ماذا تريد أن يحدث..
  7. أرجو إرفاق جزء الشيفرة الخاص ب HTML و شيفرة jQuery لنحلها و نقدم نصيحة مبنية على كيفية حل المشكلة
  8. على الأغلب المشكلة في استهداف محدد CSS المطلوب class | id
  9. مرحبا عمر، إن كنت مسجلا في الدورات، أرجو طرح السؤال أسفل الدرس الذي ظهرت فيه المشكلة، وبشكل عام، أرجو مشاركة رسالة الخطأ (التي تظهر في console) مع ملفات المشروع كملنف مصغوط rar | zip (المجلد الأساسي/الجذر)
  10. افتح خاصية الTerminal ثم قم بتفعيل هذا الخيار:
  11. لقد تم الإجابة على هذه الأسئلة بشكل متفرق عن طريق طرحها من طلاب آخرين. يمكنك البحث في الأسئلة السابقة و قراءة الشروحات و التعلم كيف يتم كتابة الشيفرة. تابع الأسئلة التي تحوي في عنوانها كلمة بايثون أو مايمكن أن يتواجد في سؤالك.
  12. يمكننا استخدام المكتبة natsort المطلوبة فهي تقوم باستخدام الفرز الطبيعي لترتيب العناصر. # تضمين المكتة from natsort import natsorted, ns # تعريف المصفوفة x = ['Item10', 'item2', 'Item9', 'item3'] # استدعاء الدالة x = natsorted(x, key=lambda k: k.lower()) #1 # طباعة النتيجة print(x) # ['item2', 'item3', 'Item9', 'Item10'] ######################################### natsorted(x, alg=ns.IGNORECASE) #2 إما نقوم بتحويل جميع الحروف للشكل الصغير lower case أو نمرر وسيط لتجاهل حالة الأحرف: ربما تحتاج لتثبيت المكتبة: pip install natsort
  13. إن الدالة delay تستقبل المدة محددة ب milliseconds وكل ثانية تحوي 1000 ميلي ثانية. لذلك ليكون الوقت المحدد 40 ثانية يجب عمل التعديل الرياضي 40*1000 = 40,000 : #include <Servo.h> Servo myservo; Servo yservo; int pos = 0; void setup() { // initialize the LED pin as an output: pinMode(1, INPUT); pinMode(2, INPUT); myservo.attach(9); yservo.attach(10); } void loop() { int sensorvalue1 = digitalRead(1); int sensorvalue2 = digitalRead(2); if (sensorvalue1 == 0) { for(pos = 0; pos <90; pos +=5) { myservo.write(pos); yservo.write(pos); delay(40*1000); break ; } } if (sensorvalue2 == 0) { for(pos = 90; pos>0; pos -=5) { myservo.write(pos); yservo.write(pos); delay(40*1000); break; } } }
  14. يمكننا استخدام المكتبة importlib بالشكل التالي: # تعريف المسار MODULE_PATH = "/path/to/your/module/__init__.py" # تحديد اسم ال module MODULE_NAME = "mymodule" # تضمين import importlib import sys # تحميل الملف spec = importlib.util.spec_from_file_location(MODULE_NAME, MODULE_PATH) # بناء النمذج module = importlib.util.module_from_spec(spec) # إضافته للبيئة sys.modules[spec.name] = module #تنفيذ spec.loader.exec_module(module)
  15. هل يمكنك من فضلك مشاركة الشيفرة؟
  16. نستخدم المسالك (البرمجة التفرعية) عندما نستطيع تقسيم البرنامج لمشاكل بسيطة و نسند كل مهمة جزئية لمسلك ما. تطبيق عملية مجموع على عناصر سطر في مصفوفة ثائية الأبعاد لكل مسلك ثم نقوم بجمع النواتج. عندما نريد تستدعاء دالة بمجموعة من القيم المختلفة، نقوم باستدعاء مسلك بتحديد قيم للوسطاء فكل مسلك يحسب خيار مختلف. عندما نريد معالجة الصور وتطبيق الفلاتر معالجة الفيديو العملات المشفرة
  17. localhost تشير للعنوان المحلي وهي كلمتين local host وهي اختصار عن كتابة عنوان IP الذي يشير لنفس جهاز الحاسوب: localhost = 127.0.0.1 مثلا عندما نريد تشغيل مخدم محلي على حاسوبنا فسوف نستطيع الدخول إليه من local host أو IP السابق. في RMI نقوم بضبط عنوان المخدم باستخدام إحدى القيمتين: java.rmi.server.hostname=localhost java.rmi.server.hostname=127.0.0.1 تستخدم من المطورين عند العمل على أجهزتهم قبل وضع عنوان IP للمخدم الحقيقي
  18. يمكننا حل المشكلة بتمرير وسيط للدالة print يحدد المحرف الذي ينتهي به السطر أي بدل المحرف الافتراضي n\ لن نطبع شيئاً. (محرف فارغ) for i in range(10): print(i, end='') سيتم طباعة جميع المخرجات بنفس السطر
  19. channel_id تعمل على تجميع الإشعارات مثل سنحاول إبقائها ثابتة لعلى مستوى التطبيق ونغير id في الدالة show فقط: static Future<void> _demoNotification(String title, String body) async { Random random = new Random(); int randomNumber = random.nextInt(100); var androidPlatformChannelSpecifics = AndroidNotificationDetails( 'channel_ID', 'channel name', 'channel description', importance: Importance.max, playSound: true, // sound: 'sound', // sound: true, // setAsGroupSummary: true, showProgress: true, priority: Priority.high, ticker: 'test ticker'); var iOSChannelSpecifics = IOSNotificationDetails(); var platformChannelSpecifics = NotificationDetails( android: androidPlatformChannelSpecifics, iOS: iOSChannelSpecifics); await flutterLocalNotificationsPlugin .show(randomNumber, title, body, platformChannelSpecifics, payload: 'test'); } _________ إن لم تحل المشكلة تأكد من قاعدة البيانات لديك هل يتم تكرار الإشعار في البيانات..
  20. هل يصل إشعارين متطابقين في نفس اللحظة؟
  21. لنفس الاشعار يكون له channel_id نفس القيمة نمررها في الحقلين نفس النمط أيضا.
  22. ربما لأن parse لا يستطيع تحويل date of today المتغير لديك لقيمة رقمية. حاول استخدام المثال الذي أدرجته أنا في التعليق الأول هذه بشكل كامل كقيمة عددية.
  23. عفوا علينا تعديل هذه أيضا: await flutterLocalNotificationsPlugin .show(0, title, body, platformChannelSpecifics, payload: 'test'); استبدل الرقم 0 يتم تجميع الإشعارات حسب channel_id التي يتم تمريرها في الدالة التالية. لذلك وجب بناء قناة للإشعارات و توجيه الإشعار الجديد لها.
  24. حاول إعطاء رقم فريد لكل إشعار، مثل المعرف الخاص به لا تجعله نص ثابت لأنه سوف يتم استبدال الإشعار الحالي بالإشعار الجديد الذي له نفس المعرًف. حاول وضع قيمة متغيرة مثل نص متغير أو قيمة الوقت الفعلي أو قيمة عشوائية وهذا سيعمل على الحفاظ على كل الإشعارات. AndroidNotificationDetails( 'channel_ID', 'channel name', 'channel description', importance: Importance.max, playSound: true, // sound: 'sound', // sound: true, showProgress: true, priority: Priority.high, ticker: 'test ticker'); تحديدا channel_ID. ضع مكانة رقم عشوائي مثلا: import 'dart:math'; main() { var rng = new Random(); rng.nextInt(100); } أو عداد في البرنامج أو قيمة الوقت. new DateTime.now().microsecondsSinceEpoch مكان channel_ID
  25. بالنسبة لتشغيل الإشعارات في وضع تشغيل التطبيق أي بحالة Foreground Notifications يوجد طريقة مختلفة لتشغيلها. لاحظ في الشيفرة لديك، قمت بعمل دالة للتعامل مع Background Notifications وهي: FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); أمالتشغيل الإشعارت بالواجهة تاكد من اتباع التوثيق: notifications/#foreground-notifications حيث يعمل على الدالة: setForegroundNotificationPresentationOptions مثال المكتبة: firebase_messaging/example من التوثيق. مثال منشور على gitHub يمكنك تجربته و التأكد من ذلك: firebase_messaging/example. في حال وجدت حلاً للمشكلة أرجو مشاركته ليستفاد الآخرون وشكرا لك تعديل، أرجو مشاركة نوع نظام التشغيل الذي تعمل عليه لاختلاف المشاكل بين أندرويد و IOS مثالا اختلاف طريقة الوصول للإشعارت في أندرويد: ["notification"]["title"] في IOS: ["aps"]["alert"]["title"]. _____ حل آخر كان بسبب عدم تحديد أيقونة التطبيق في: android drawable file contains the launcher_icon وجود أيقونة استعراض الإشعار لتعمل في الواجهة الأمامية
×
×
  • أضف...