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

Wael Aljamal

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

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

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

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

    218

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

  1. يمكن استعمال PageView.builder لوضع كل عنصر لوحده في العرض و يمكن التنقل بينهم SizedBox( height: 200, child: PageView.builder( controller: controller, scrollDirection: Axis.horizontal, // حدد الجهة التي تريدها itemCount: 15, // data.length itemBuilder: (context, index) => Padding( padding: EdgeInsets.all(6), child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), color: Colors.red, ), child: Center(child: Text(index.toString())), ), ), ), ) ويمكن عمل ListView.builder SizedBox( height: 200, child: ListView.builder( scrollDirection: Axis.horizontal, itemCount: 15, itemBuilder: (context, index) => Padding( padding: EdgeInsets.all(6), child: Container( width: MediaQuery.of(context).size.width * .90, // 90 بالمئة من عرض الصفحة decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), color: Colors.red, ), child: Center(child: Text(index.toString())), // قيمة الاين ), ), ), )
  2. لتحويل قيمة من عدد صحيح integer إلى رقم ذو فاصلة عشرية (رقم عشري) decimal علينا تعديل القيمة قبل دخولها في عمليات حسابية. في برنامجك عند تنفيذه يظهر الخطأ: /MyClass.java:9: error: incompatible types: possible lossy conversion from double to int z=y+x; ^ 1 error الحل هو بتحويل نمط القيم ضمن العملية إلى double ويمكن فعل ذلك من خلال القصر cast بكتابة النمط ضمن قوسين أمام العملية import java.lang.*; public class HelloWorld { public static void main(String args[]) { int x = 7; int y = 3; double z = (double) 7 / 3; // ^^^^^^^^^^ System.out.println(z); } }
  3. بالنسبة للسؤال الأول: مهما كان نوع الشهادة، على حاملها أن يحمل المهارات التي تخوله الدخول لسوق العمل، و فهم إمكانياته و العمل على تطويرها بشكل مستمر، الشهادة قابلة للتحقق الإلكتروني أي أنها غير قابلة للتزوير، و يمكنك الوصول لها من خلال موقع الأكاديمية. بالنسبة للسؤال الثاني: لا يوجد مدة صلاحية لدورات أكاديمية حسوب، فلديك بعد شراء الدورة وصول مدى الحياة و الحصول على كافة التحديثات مجاناً بدون دفع مبالغ إضافية. بالنسبة للسؤال الثالث: يمكنك بالطبع إعادة الامتحان، بحيث إن فشلت في اجتيازه لأول مرة سيقوم المدرب الذي قام بعمل الاختبار لك قد قدم نصائح و ملاحظات، لكي تنتبهي لأماكن الضعف. يمكنك القراءة عن الأسئلة الشائعة: هنا
  4. نحن نستخدم فكرة التغليف لحماية البيانات و قيم الخاصيات التي يحملها الغرض من التعديل بشكل خطأ و منع قراءة قيمتها إلا عن طريق دوال get التي نكتبها خصيصاً لكل خاصية / دالة. بما أن First_Name و Last_Name خاصيتان لها محدد الوصول private أي أننا لا نريد قراءة قيمهم من خارج الصنف، فنقوم بتوفير دوال get لذلك، فأرجو استخدامهم بدل قراءة القيمة مباشرة. public static void main(String[] args) { admin ad = new admin(); ad.setFirst_Name("Majd"); // ^^^^^^^^^^ ad.setLast_Name("mm"); // ^^^^^^^^^^ System.out.print(ad.getFirst_Name()); // Majd // ^^^^^^^^^^^^^^^^^^ System.out.print(ad.getLast_Name()); // mm // ^^^^^^^^^^^^^^^^^^ } والدوال set نمرر لهم قيمة و لا نقوم بعمل إسناد عند استدعاء الدوال.
  5. يبدو أن Back End يعيد مصفوفة من النتائج للتطبيق، حاول عرضهم في قائمة، أي نفس مجموعة الحقول لديك مكررة ضمن عناصر قائمة. يمكنك المرور على المصفوفة data data = convertDataToJson['result']; ولكل كائن منها تقوم بإنشاء عنصر من قائمة و تعرض بيانات المستخدم. شيفرة تقريبية: create list usersList for(var user in data){ txtName = user['Name']; txtNumber= user['Number']; txt['Adress'] = user['Adress']; new ListItem {txtName, txtNumber, .. } usersList.append(ListItem) }
  6. نعتمد على الشكلين، لكن الأكثر عمومية هو قواعد البيانات الموجودة في الاستضافة. نقوم بتوجيه الطالب حسب نوع المشروع، بشكل عام جميع أنواع قواعد البيانات مستخدمة، قاعدة البيانات الداخلية في التطبيق أقل أهمية. ولكن كما أخبرتك حسب نوع المشروع.
  7. تقنيات الويب توفر تخزين على مستوى المتصفح local storage / التطبيق باستعمال sqlite وفي الدورة تم استخدام مخدمات قواعد بيانات خارجية على الحاسوب mySQL. أي تم استخدام النوعين.
  8. يوجد أكثر من مستوى لقواعد البيانات، Local DataBase ضمن التطبيق نفسه و يتم تخزينها على الجهاز الخاص بالمستخدم و يتم إنشائها عند أول تشغيل للتطبيق (غير قابلة للنقل) ضمن الاستضافة أو مشرع BackEnd (يتصل التطبيق من جميع أجهزة المستخدمين لنفس قاعدة البيانات و يكون لكل منهم بياناته الخاصة) إن قاعدة البيانات المحلية التي نقوم بإنشائها على حواسيبنا تكون بغرض التجريب، و التطوير حتى نصل للمطلوب من هيكلية القاعدة و منطق برمجة الواجهات الخلفية BackEnd، ثم يتوجب علينا رفع قاعدة البيانات و الشيفرات البرمجية للاستضافة وهي مقدمة من شركات متنوعة، تعتبر بمثاية حاسوب له مواصفات قوية و مساحة تخزين، يمكننا من تشغيل تطبيق الواجهة الخلفية، ويكون له عنوان انترنت IP ثابت، نقوم بتثبيته في التطبيق ليستطيع الاتصال عليه. فكرة تخزين معلومات المستخدمين يجب أن تكون على الاستضافة و ليس على جهاز العميل. إمكانية تعديل بيانات المستخدمين و تصفح قواعد البيانات (توفير واجهة لتصفح قواعد البينات) تختلف من موفر خدمة لآخر، فمنها من يقوم بحجب وصول المطور لها، و منهم من يعرضها، ولكن إن قمت بعمل استعلامات لجلب المعلومات فبالطبع سوف تظهر لك. مع العلم، إمكانية التعديل برمجياً على البيانات ممكنة، ولكن حسب برمجتك للصلاحيات لكل مستخدم و أدوارهم، أي كيف تحمي البيانات.
  9. أرجو إرفاق صورة ل cmd بعد تنفيذ الأوامر وتغشيل المشروع و رفعه على ngrok
  10. موضوع السؤال: هل تسمح أكاديمية حسوب برفع المشاريع على منصات خارجية عند إرفاقهم في السؤال؟ توفر الأكاديمية عملية رفع الملفات والصور كمرفقات للسؤال، فلا حاجة لرفع المشروع أو الملفات على منصات استضافة خارجية رفع المشروع على GitHub والتي هي أداة مشهورة بين المطورين يسرع على الطالب نشر السؤال في حال كان حجم المشروع كبير ولا أعتقد أن هنالك مشكلة في ذلك (يمكن المدرب من تتبع التعديلات على المشروع) و تصفح الملفات بشكل سلس و بدون الاضطرار لتحميل مشاريع التي من الممكن أن تكون كبيرة الحجم. على كل حال يجب أن يكون السؤال المطروح يوضح مشكلة واحدة بدقة و نكتب عنوان السؤال بشكل واضح مع إرفاق أجزاء الشيفرات البرمجية المتعلقة بالمشكلة، مع توضيح الخلل و ما المطلوب حله، ليتمكن المدربون من إعطاء إجابة دقيقة قدر الإمكان لم أفهم السؤال بالضبط، الصور متاحة في عدة مشاريع للأكاديمية وجميعها مفتوحة المصدر و يمكنك استخدام أي صور من الانترنت أثناء و بعد الدراسة. ضمن مسارات الدورة، يكون المدرب قد قام بتجهيز الصور مع أبعاد مناسبة لتصميم الموقع فلذلك لها أفضلية في الاستخدام ضمن الدروس، لأنها مصممة لذلك.
  11. يمكنك مشاركة الحل النهائي أو آخر تعديل ليستفيد من يقرأ السؤال شكرا لك
  12. تأكد أي جزء من الشيفرة يعمل و أي جزء لا يعمل، حاول ضباعة echo row لنعرف هل المشكلة في الاستعلام أم غيره
  13. ما سبب ؟ في السطر في الشيفرة؟ لا أعتقد أن له داع ليصبح: JOIN city ON items.city_id=city.city_id WHERE items.NAME LIKE '%$inputSearch%' or items.description2 LIKE '%$inputSearch%' "); أما في الجزء الثاني لم تستخدم fetch all $searchRslt=$stmt3->fetch(); وبما أن هنالك limit 2 أي عنصرين، نحتاج لحلقة لآخر جزء <?php if (!empty($searchRslt)) { foreach ($searchRslt as $value){ echo "<div class='show'>".$value['NAME'].'<br>'."</div>"; } }else{ echo "<div class='show'>No results</div>"; } إن بقي مشكلة حاول تحديدها بشكل أفضل. فنحن لا نستطيع اختبار البرنامج
  14. أرجو مشاركة الاستعلام و الشيفرة البرمجية لنستطيع المساعدة
  15. هذا بسبب استخدام replace سوف تستبدل أول كلمة يجدها بالفراغ و لكن سيطبق نفس الأمر على جميه الكلمات بين الفاصلة التي تساوي الكلمة المحذوفة.. لذلك نستخدم substring SET @names = SUBSTRING(@names, LOCATE(',', @names) + 1);
  16. إن كنت تقصد عند نشر المشكلة في الأسئلة العامة، يتوجب على الطالب وضع الشيفرة البرمجية مباشرة في محرر الأكواد و كتابة أي رسائل خطأ تظهر له أو صورة في حال كان التصميم لا يعمل.. وفي حال ترابط أكثر من ملف مع بعضهم لنفس المشكلة، نضع الشيفرات جميعها، ولا مشكلة من وضع رابط المستودع، في آخر السؤال إن احتاج الأمر لذلك فهي تسمح بتصفح المشروع بسهولة
  17. أولاً حدد حد أدنى لعرض الصفحة للعنصر body body { min-width:600px; } بما تراه مناسباً، ملاحظة: للتحكم في تحديد أبعاد المتصفح، يجب أن نفتح النافذة بالتعليمة window.poen ملاحظة من مقالة أكاديمية حسوب المرفقة مع الإجابة: أي يجب فتح الصفحة التي نستطيع التحكم بعرضها كالتالي: window.open('http://www.your.url/','yourWindowsName','width=640,height=480'); ثم يمكننا محاولة منع إطار المتصفح من أن يتم تصغيره لعرض أقل من طرف المستخدم و نقوم بعمل إعادة تعيين لعرض النافذة الخاصة بالمتصفح من خلال الحدث resize التابع لغرض window ثم تطبيق الدالة resizeTo و نمرر لها الأبعاد function resizeToMinimum(){ // الحد الأدني للأبعاد var minimum = [640, 480]; // الأبعاد الحالية للنافذة var current = [window.outerWidth, window.outerHeight]; // تحقيقي الحد الأدني var restricted = []; // للمرور على مصفوفتي العرض var i = 2; while(i-- > 0){ restricted[i] = minimum[i] > current[i] ? minimum[i] : current[i]; } window.resizeTo(restricted[0], restricted[1]); } window.addEventListener('resize', resizeToMinimum, false) يمكنك قراءة توثيق الدالة resizeTo: developer.mozilla/docs/Web/API/Window/resizeTo كما يوجد شيفرتين يمكنك تجريبهم في حال لم تعمل الأولى تستخدمان نفس المبدأ بحساب عرض الشاشة ومن ثم تعديل عرض النافذة: تأكد من تعديل الأبعدا كما ترغب function resizeToMinimum(w,h){ // جلب الطول و العرض w=w>window.outerWidth?w:window.outerWidth; h=h>window.outerHeight?h:window.outerHeight; // تحديد الطول و العرض window.resizeTo(w, h); }; // حدث تعديل أبعاد النافذة window.addEventListener('resize', function(){resizeToMinimum(100,100)}, false) ^^^^^^^^^ // عدل العرض ************************* // دالة أكثر دقة في الحساب function ensureMinimumWindowSize(width, height) { var tooThin = (width > window.innerWidth); var tooShort = (height > window.innerHeight); if (tooThin || tooShort) { var deltaWidth = window.outerWidth - window.innerWidth; var deltaHeight = window.outerHeight - window.innerHeight; width = tooThin ? width + deltaWidth : window.outerWidth; height = tooShort ? height + deltaHeight : window.outerHeight; // Edge not reporting window outer size correctly if (/Edge/i.test(navigator.userAgent)) { width -= 16; height -= 8; } window.resizeTo(width, height); } } var resizeTimer; // حدث تعديل أبعاد النافذة window.addEventListener('resize', function(event) { clearTimeout(resizeTimer); resizeTimer = setTimeout(function () { ensureMinimumWindowSize(<width>,<height>); // حدد العرض المطلوب }, 250); }, false);
  18. في دالة الزر رقم 6 لن تتم تهيئة الاتصال، حاول إضافة التعليمة com.Connection = conn; لتصبح private void button6_Click(object sender, EventArgs e) { // هنا com.Connection = conn; com.CommandText = "select book.* from book,authors where AID= '" + textBox2.Text + "'"; dr = com.ExecuteReader();
  19. أهلا بك، ملاحظة: Replace تستبدل جميع السلاسل الجزئية و في حال تكرار اسم ما، سيحدث مشكلة
  20. غريب، أنا جربت كلا الدالتين بشكل منفصل، اول مرو يقتطع الاسم ثم يتم حفظ الباقي في المتغير names .. سأجرب حل جديد.. مشكلة SQL انها غير مرنة بشكل كاف
  21. هل تقوم بتشغيل مخدم المشروع قبل تشغيل ngrok? تأكد من مدير اوامر cmd منفصل لكل منهم
  22. حاول التواصل مع مركز مساعدة و اشرح لهم ما تريده مركز مساعدة حسوب
  23. آخر تعديل @Name = SUBSTRING(@names, 1, LOCATE(',', @names)-1); لأن الدالة تأخذ أول عنصر بترقيم 1 و ليس 0 أرجو الانتباه، أن وضع الفاصلة في آخر السلسلة النصية إجباري
×
×
  • أضف...