-
المساهمات
6975 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
218
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Wael Aljamal
-
تقدم Flutter المكون InkWell الذي يقبل مكون ابن له من الخاصية child والذي بدوره يصبح قابل للنقر مثلاً .. يمكنك عمل مكون فتح الرابط من النقر على النص بالشكل التالي حيث نربط النقر من خلال خاصية onTap وبدورها تنفيذ callback functionيفتح الرابط من الدالة launch : Center( child: InkWell( child: Text('Continue Reading'), onTap: () => launch('${news['url']}') ), ), على اعتبار أن news هو كائن يمثل الخبر الحالي وفيه الخاصية URL تضمن رابط ويب للموقع الهدف. توفر InkWell على أكثر من إيماء حسب التوثيق الرسمي: InkWell({Key? key, Widget? child, GestureTapCallback? onTap, GestureTapCallback? onDoubleTap, نقر مزدوج GestureLongPressCallback? onLongPress, نقر لمدة طويلة GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, رفع الاصبع GestureTapCancelCallback? onTapCancel, ValueChanged<bool>? onHighlightChanged, ValueChanged<bool>? onHover, عند المرور عليها MouseCursor? mouseCursor, Color? focusColor, Color? hoverColor, Color? highlightColor, MaterialStateProperty<Color?>? overlayColor, Color? splashColor, InteractiveInkFeatureFactory? splashFactory, double? radius, BorderRadius? borderRadius, ShapeBorder? customBorder, bool? enableFeedback = true, bool excludeFromSemantics = false, FocusNode? focusNode, bool canRequestFocus = true, ValueChanged<bool>? onFocusChange, bool autofocus = false})
-
إن المكون alert dialog هو عبارة عن widget و الشيفرة لديك لا تقوم بإضافته لشجرة المكونات widgets tree الخاصة بالصفحة، لاحظ أن on press تعمل ك callback function و حتى لو أضافت المكون يتوجب تحديث الحالة وإعادة استدعاء دالة build ليتم إضافة المكون للواجهة. الحل هو استدعاء show dialog وضمنه alert dialog FlatButton( onPressed: () { print('pay pressed'); showDialog( context: context, builder: (BuildContext context) { return AlertDialog( backgroundColor: Colors.red, shape: borderRadius, title: Text( 'Pay The Violation'), content: Text('Are You Sure?'), actions: <Widget>[ FlatButton( shape: borderRadius, color: Color(0XFF4a707a), child: Center( child: Text( "Yes", style: TextStyle( color: Colors.white, ), ), ), لاحظ أن المكون showDialog يستقبل سياق البرنامج context ثم يقوم ببناء build ل pop up واجهة التحذير و يظهر ضمنها alert dialog وبالتالي يظهر المكون بشكل صحيح. أي أن showDialog هو من ضيف alertDialog للصفحة الحالية.
-
قد يكون سبب المشكلة هو عدم تهيئة المتحولات التي قمت بتعريفها حيث من الأفضل وضعها ضمن دالة ready أو مكافئها من جيكويري لنتأكد أنها تطبق بعد تحميل الصفحة. $(function () { /// ننقل التعريف لداخل الدالة let project_card = $('.card-project'); let card_img_overlay = $('.card-img-overlay'); project_card.hover(function () { card_img_overlay.fadeIn(150) }, function () { card_img_overlay.fadeOut(150) }); });
-
لديك مشكلة في تنصيب حزمة pip وهي المسؤولة عن إدارة حزم بايثون، حاول إعادة تنصيب بايثون مع تحديد خيار add python to system path variables / environment وفي حال الدخول لتخصيص التنصيب لبايثون custom installation يمكنك تحديده من هنا:
-
أعتقد أن مثالك غير واضح، لتجريب الوصول لخواص كائن، حاول استدعائها منه بعد إنشائه كالمثال: قمت بحذف الكلمة المفتاحية this محاولة الوصول لخاصية بعد إنشاء الصنف وهي تعيد undefined أي لم يتم إنشاء خاصية للصنف بالأصل function User(name, email, age) { name1 = name; email1 = email; age1 = age; } const firstUser1 = new User("full name", "user@mail.com", 23); console.log(firstUser1.name1); undefined console.log(firstUser1.email1); undefined بدون استعمال this أنت تقوم بتعريف متغيرات مؤقتة ضمن الدالة البانية name1 - email1 - age1 ولن تستفيد منهم بعد إنتهاء التنفيذ و إنشاء الكائن الذي سيكون بدون خواص (يتوجب استخدام this) أي خاصية نسندها ل this سوف تصبح من خواص الصنف و الكائنات المشتقة منه بدون this: مع this:
-
يتوجب تحديد المجال بشكل أفضل و توضيح السؤال، Administrator في ماذا؟
-
نعم يوجد تطبيقات مصممة فقط من غير برمجة، يمكنك شرائها من منصات البيع الإلكتروني مثل بيكاليكا أو شراءها من خمسات أو توظيف مصمم من خلال هذه المواقع بالإضافة لمنصة مستقل. للبحث في غوغل يوجد الكثير من الاحتمالات.. مثلاً app desing for android application ^^^^^^^ Flutter React Native من الأفضل تحديد صنف التطبيق مثلاً Food app - Sport app. يمكن أن تكتب UI design for ..
-
يمكن الاعتماد على لغة جافا لتطوير تطبيقات على كل من المنصتين، ولكن من ناحية التصميم لكل من أندرويد و سطح المكتب مكتبات و مكونات تصميم مختلفة ولا تعمل بنفس الوقت على كليهما، أما مثلاً بناء الأصناف و جزء المعالجة المنطقية ضمن التطبيق يمكن أن يكون مشترك بالطبع. يوجد أطر عمل تدعم Cross Platform حيث أن نفس الشيفرة (الكود المصدري) يعمل بشكل مطابق و بأقل حاجة للتعديلات على المنصتين، مثل Flutter التي تعمل بلغة Dart و React Native التي تعمل بلغة جافاسكربت. Flutter قريباً ستعمل على جميع أنواع أنظمة التشغيل.
-
يشير الكائن window لغرض جافاسكربت الرئيسي الذي يدل على نافذة المتصفح الذي يحوي الصفحة الحالية. document هو خاصية فرعية / غرض من غرض النافذة window.document وفيه جذر الصفحة root وكل العناصر التي يتم عرضها أو تم عمل render لها لتظهر للمستخدم. يمكنك استعراض خواص كل منهم بطباعة التالي في console: console.dir(window); console.dir(document); اختلاف استخدامهم: window: setTimeout() and setInterval() binding event handlers to a timer ربط الأحداث إلى مؤقت location giving the current URL إعادة رابط الصفحة الحالي history with methods back() and forward() giving the tab's mutable history تاريخ الروابط المزارة في الصفحة navigator describing the browser software إعطاء معلومات عن المتصفح المستخدم document: لها دوال للبحث في شجرة الصفحة document.getElementById("id") document.querySelector("#id") document.body.firstChild document.body.children[0] توثيق موسوعة حسوب ب JavaScript/Document
- 3 اجابة
-
- 1
-
ماذا تقصد ب كل شيء في التطبيق يتوجب أن يكون مبرمج بشكل مسبق. إضافة عمليات الدفع للتطبيق تتم بالاشتراك مع خدمات الدفع الإلكتروني google pay - strip - paypal وتضمين مكتبات التوثيق الخاصة بهم في التطبيق. وعمل قاعدة بيانات لديك خاصة بالمستخدمين وتسجيل اشتراكاتهم.. وغيره من أمور الربط بين الخدمة و الحسابات التي قامت بالدفع. بالنسبة للسؤال الثاني، على المطور ترجمة تطبيقه بنفسه، وغوغل لا يقوم بهذه المهمة أبداً. لترجمة تطبيق أندرويد، تقوم بإنشاء ملف ترجمة خاص بكل لغة في مجلد Strings و تربط الواجهات مع استدعاء النص المقابل للغة. يمكنك البحث عن أي كورس يشرح أمر التعريب.. مثلا لكل لغة ملف نصوص خاص يكون بالمسار: res – > values-ar -> strings.xml يختار نظام التشغيل اللغة بشكل تلقائي و لحفظ تفضيل اللغة يمكنك حفظ الرمز في حفظ رمز اللغة في الـ shared preference. ولضمان جهة النص و التصميم اتبع مايلي: أضف خيار android:supportsRtl=”true” في ملف ال AndroidManifest وتحت tag ال application استخدم marginStart بدلا من marginLeft و marginEnd بدلا من marginRight استخدم paddingStart بدلا من paddingLeft و paddingEnd بدلا من paddingRight وكذلك يمكنك استخدام بعض ال attributes لتحديد اتجاه الواجهة كـ android:layoutDirection android:textDirection android:textAlignment
-
تجميع المنتجات التي يختارها الزبون ضمن حلقة while مثلاً. CreateOrder لديك تقوم بجمع فاتورة فقط، ولكن اسمها شيء آخر لا أفهم الارتباط بينهم.. ملاحظة: في حال لديك مصفوفة بمنتجات يمكن حساب كلفتهم بالمرور على القائمة مباشرة public int calculateTotal(ArrayList<Product> choosedList) { ^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^ int total = 0; for (int i = 0; i < choosedList.size(); i++) { total += choosedList.get(i).getproductsPrice(); } return total; }
-
هل نجحت إضافة البيانات؟ الملف نصي يمكنك فتحه لرؤية ما يحوي من بيانات و تتبع الإضافة فيه الملف الذي تحفظين به البيانات اسمه Customer information.txt يتوجب أن تجديه ضمن ملفات المشروع. لا أرى استدعاء للدالة creatOrder ربما تستخدمين متغير من نوع Product وتخزنين به جميع ما يدخله الزبون لذلك لا يحفظ جميع المنتجات تأكدي من ذلك (عليك تعريف قائمة تضيفين إليها كل منتج يقوم الزبون باختياره)
-
عليك شرح المشكلة بالتفصيل، مثلاً تقولين أن دالة displayInformation تطبع بيانات مستخدم واحد. وأكتب البيانات في الدالة WritingInFile. تمام، حاولت تمرير true كمعامل ثاني لدالة FileWriter ليعمل append. لكن تستعملين print writer من دون append FileWriter myFile= new FileWriter("Customer information.txt",true); PrintWriter write= new PrintWriter(myFile,true); ^^^^^^^^^^
-
لتستطيع تخزين أو عرض نص من عدة أسطر ضمن متغير في لغة Dart، يتوجب استعمال 3 علامات اقتباس فردية أو ثنائية قبل السلسلة النصية و بعدها لتحوى على n/ أو أسطر جديدة.. var myText = ''' نص من عدة أسطر '''; وبالتالي يمكن تمرير النص في حالتك لمكون Text (يفضل احتواءه ب SingleChildScrollView للسماح بالتمرير العمودي ضمن الصفحة) SingleChildScrollView( child: Text( ''' PRIVACY NOTICE .... '''), ),
- 1 جواب
-
- 1
-
يمكن اضافة ملفات جافا سكربت و التنسيقات js css ضمن مجلد wwwroot للمشروع في المجلد الخاص لكل منهم wwwroot - css - js - lib و ضمن مجلد shared يوجد ملف layout نضمن ملفات css js به فتصبح مضمنة لجميع صفحات المشروع (أي تطبيق التنسيق و أكواد جافا سكربت لجميع الصفحات) مع تعديل الكود ليناسب المشروع يتم معاملة المجلد wwwroot مثل public أي يمكن الوصول لللمفات مباشرة من السيرفر أو من ضمن المشروع: <!-- Additional CSS Files --> <link rel="stylesheet" href="~/assets/css/fontawesome.css"> <link rel="stylesheet" href="~/assets/css/style1.css"> <link rel="stylesheet" href="~/assets/css/style2.css"> http://localhost: /css/app.css. صور: wwwroot/images/MyImage.jpg <img src="~/images/MyImage.jpg" class="img" alt="My image" />
- 1 جواب
-
- 1
-
أعتقد أن المشكلة تكمن بسبب إسناد خاصية authorRepository غير معرفة ضمن الصنف class AuthorController يتوجب تعريفها قبل الدالة البانية. public class AuthorController : Controller { private readOnly IBookStoreRepository<Author> authorRepository; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ public AuthorController(IBookStoreRepository<Author> authorRepository) { this.authorRepository = authorRepository; } أرجو مشاركة رسائل الخطأ في حال ظهورها لتحديد المشكلة بدقة
- 1 جواب
-
- 1
-
حتى نحذف عنصر من قائمة الكتب، يتوجب تمرير الكتاب المراد حذفه للتابع Remove وطالما أن هنالك تابع البحث Find (تعيد مرجع لكتاب) يمكن الاستفادة منه كالتالي: public void Delete(int id) { Book book = Find(id); books.Remove(book); } الآن دالة الحذف تبحث عن كتاب وتزيله من القائمة أرجو مشاركة رسائل الخطأ في حال ظهورها لتحديد المشكلة بدقة
- 1 جواب
-
- 1
-
إذا كان ملف التنسيق في مجلد فرعي يتوجب تحديد الرابط بالشكل الصحيح <link type="text/css" rel="stylesheet" href="css/style.css"> ^^^^^^^ 404 أي الملف غير موجود "حسب المسار الذي قمنا بتحديده" وبضبط المسار بشكل صحيح يتوجب حل المشكلة
- 14 اجابة
-
- 1
-
يمكنك إعادة الامتحان في حال عدم النجاح فيه حيث سيقدم لك المدرب ملاحظات على نتيجتك في الامتحان بعد تقديمه. الامتحان عبارة عن مرحلتين أساسيتين: محادثة صوتية مشروع تخرج معلومات الامتحان من الرابط: academy/exams بعد إكمالك لدراسة أحد دورات أكاديمية حسوب (على الأقل 4 مسارات في أحد الدورات) عندها تتواصل مع مركز المساعدة والدعم من الرابط: support.academy ، بخصوص أسئلة الامتحان يمكنك التواصل مع مركز الدعم
- 2 اجابة
-
- 1