لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 06/01/22 في كل الموقع
-
1 نقطة
-
دورة جافاسكريبت كانت 47 ساعة والان اصبحت 55 ساعة ما هو الجديد في هذة الدورة1 نقطة
-
تمام، يمكن تطبيق دالة المقارنة whereDate للتاريخ دالة whrerTime للوقت أو where نمرر لها اسم العمود الأول ثم معامل المقارنة ثم تاريخ اليوم الحالي <?php {{ $projects->()where('nextdate', '=', (new DateTime)->format('Y-m-d') )->count }} ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ يمكن جلب تاريخ اليوم من خلال: date("Y-m-d H:i:s"); date("Y-m-d"); now()->format('Y-m-d') (new DateTime)->format('d-m-Y'); وغيرهم يمكن الاستعانة بحزمة Carbon <?php public function myDate($query) { // الوقت الحالي $now = Carbon::now(); // قصر الوقت لتاريخ $date = Carbon::parse($now)->toDateString(); // قصر الوقت لتوقيت $time = Carbon::parse($now)->toTimeString(); return $query ->whereDate('published_at', '<', $date) // مقارنة تاريخ ->orWhere(function($query) use ($date, $time) { $query ->whereDate('published_at', '=', $date) ->whereTime('published_at', '<=', $time); // مقارنة وقت }); } يوجد دوال أخرى مثل: whereYear whereMonth whereDay1 نقطة
-
السلام عليكم يعطيكم العافية جميعاً، ممكن أحد يشرح لي كيف استفاذ من كورس ال JavaScript وهل حصل على مشاريع في اثناء التعلم، وماذا سوف تكون بعد التخرج من هذه الدبلومة، شكراً لكم.1 نقطة
-
ما هي المنصة التي تشغل الاطبيق عليها؟ حاول عمل expo upgrade1 نقطة
-
1 نقطة
-
في جافاسكريبت يمكن إضافة تابع إلى كائن من خلال this على النحو التالي: function User () { this.save = function () { //do something }; }; أو إستخدام prototype للحصول على نفس النتيجة: function User () { }; User.prototype.save = function () { //do something }; هل يوجد فرق بين الطريقتين السابقتين؟1 نقطة
-
في حال التثبيت من yarn يمكنك تحديثهم منها أيضاً yarn upgrade في مسار مشروعك1 نقطة
-
تم الموافقة على التطبيق ولم يظهر فى محرك البحث ما السبب1 نقطة
-
1 نقطة
-
1 نقطة
-
يجب إجراء ربط الوحدات الأصلية Native Modules بشكل صحيح مع ملفات أندرويد أو IOS بحسب التطبيق الذي تستخدمه، اتبع خطوات تثبيت المكتبة ضمن الملفات الأصلية للتطبيق بحسب استخدامك والنسخ التي لديك.1 نقطة
-
لاستخدام الكاميرا يجب تثبيت مكتبة react-native-camera ضمن مشروعك عبر تنفيذ الأمر التالي: npm i react-native-camera وإذا كنت تستخدم إصدار react-native أقل من 0.60 يجب تنفيذ أمر ربط الوحدات الأصلية Native التالي: react-native link react-native-camera1 نقطة
-
كيفية التحقق من قيمة العمر المدخلة اكبر من 18 باستخدام preg_match1 نقطة
-
يمكنك أن تستخدم الأقواس المعقوفة { } للوصول إلى الخاصية content على النحو التالي: <?php class MyObject { public $content = "hello"; } $obj = new MyObject(); $obj->property_name = 'content'; $result = $obj->{$obj->property_name}; echo $result; // hello ليس عليك حتى تخزين اسم الخاصية content في خاصية أخرى property_name ويمكنك إستخدام المتغيرات مباشرة: <?php class MyObject { public $content = "hello"; } $obj = new MyObject(); $name = 'content'; $result = $obj->$name; echo $result; // hello1 نقطة
-
نعم يمكنك ذلك بإضافة الرمز # أثناء تعريف الـ properties والـ methods في الـ class : class Something { // Private properties إضافة #property; constructor(){ this.#property = "test"; } // Private methods إضافة #privateMethod() { return 'hello world'; } getPrivateMessage() { return this.#property; } } const instance = new Something(); console.log(instance.property); //=> undefined console.log(instance.privateMethod); //=> undefined console.log(instance.getPrivateMessage()); //=> test console.log(instance.#property); //=> Syntax error لاحظ انه لا يمكن الوصول للكل من الـ private properties و الـ private methods إلا من داخل class.1 نقطة
-
تحدثنا سابقًا عن منهجية كتابة الشيفرات وتعلمنا أن كل شيء في إكسل هو كائن Object، فالملف كائن والصفحة كائن والخلية كائن، قد يكون الكائن مفردًا أو مجموعةً من الكائنات، بحيث يُحدَّد الكائن فيها بذكر اسمه بين إشارتي تنصيص داخل أقواس كائن المجموعة. نستدعي الكائنات من أجل الحصول على خصائصها، إما للإرجاع معلومة أو لتغيير قيمتها، كما لدينا الأمر المباشر Method الذي يعمل على تنفيذ أمر على هذا الكائن بدون إرجاع قيمة. أسماء أهم الكائنات في إكسل لدينا العديد من الكائنات الأساسية التي سنتعامل معها دومًا في إكسل، وهذه الأسماء معرّفة في فيجوال بيسك Visual Basic، لذا يجب كتابتها بدون أخطاء حتى يتعرّف محرّر اللغة على الكائن بطريقة صحيحة. وتُعَد الكائنات التالية من أهم هذه الكائنات: Application: هو كائن البرنامج ويعمل مع كل تطبيقات مايكروسوفت أوفيس. ("workbooks("name: هو كائن ملف الإكسل وهو مجموعة نحدد فيها الملف الذي سنتعامل معه عن طريق الاسم. ("worksheets("name: هو كائن مجموعة يضم كل الصفحات الموجودة في ملف الإكسل نفسه، وسنتعامل معه عن طريق الاسم. ("Range("name: هو كائن مجموعة يضم كل الخلايا الموجودة في صفحة الإكسل، وسنتعامل معه عن طريق موقع الخلية. ThiseWorkbook: هو كائن الملف الحالي الذي نعمل عليه. Activesheet: هو كائن الصفحة الحالية ضمن الملف المفتوح. Activecell: هو كائن الخلية الحالية ضمن الصفحة المفتوحة. Selection: هو كائن الخلايا المحددة. مثال تطبيقي لدينا البيانات التالية ونريد ترجمة النصوص في عناوين الأعمدة من اللغة العربية إلى اللغة الإنكليزية وبالعكس: نفتح برنامج محرّر الشيفرات VBE ونُنشئ نموذج module من القائمة insert أو من شريط الأدوات، ثم نكتب الإجراء التالي لتحويل النصوص إلى اللغة الإنكليزية بالصيغة التالية: Sub Translate_EN() Range("A1").Value = "Section" Range("B1").Value = "Project code" Range("C1").Value = "Number of zones" End Sub نلاحظ من الاستعلامات أننا استعلمنا عن اسم الخلية من الكائن Range مباشرةً لأننا نُشغّل الشيفرة من نفس الصفحة التي نُنفّذ عليها الإجراء السابق، ونُجري الاستعلام عن قيمتها من الخاصية value ونُغيّر قيمتها إلى القيمة الجديدة. نكتب كل استعلام بسطرٍ منفصلٍ عن الآخر، وعند تشغيل الشيفرة من شريط الأدوات نلاحظ تغيير قيم الخلايا التي تحوي البيانات إلى القيم التي وضعناها في استعلامات الإجراء السابق. وعند تطبيق العكس، أي تحويل النصوص السابقة إلى اللغة العربية نكتب الصيغة السابقة ولكن مع تغيير القيم التي ستُعدل في الخلايا بالصيغة التالية: Sub translate_AR() Range("A1").Value = "القسم" Range("B1").Value = "كود المشروع" Range("C1").Value = "عدد المناطق" End Sub عند تشغيل الإجراء السابق من الممكن أن تواجهنا مشكلة عدم فهم المحرّر للغة العربية ويظهرها بشكل رموز غير مفهومة. وأسباب هذه المشكلة هي إمّا من نظام التشغيل ويندوز لدينا أو من محرّر الشيفرات نفسه ولحل هذه المشكلة من محرّر الشيفرات، نذهب للقائمة Tools ثم نختار الأمر Options، فتظهر لنا نافذة جديدة. نختار التبويب Editor Format ونتأكد أن نوع الخط المحدد هو أحد الخطوط العربية، مثلًا (Courier New (Arabic ثم نضغط موافق. إذا لم تُحل المشكلة سننتقل إلى لوحة التحكم من قائمة ابدأ، ونختار من القائمة اللغة والوقت، ثم نختار تبويب اللغة، بعدها إعدادات اللغة الإدارية، تظهر لنا نافذة جديدة نختار منها تبويب التنسيقات ونتأكد أن تنسيق اللغة من ضمن خيارات اللغة العربية. ثم من نفس النافذة ننتقل إلى التبويب إداري، نضغط على زر تغيير الإعدادات المحلية للنظام ونتأكد من أن اللغة المخصصة للإعدادات المحلية للنظام هي العربية أيضًا. سيطلب النظام إعادة التشغيل بعد هذا التغيير. بعد أن حللنا مشكلة اللغة نُعيد تشغيل الإجراء السابق لنجد أنه يعمل بطريقة صحيحة. لإضافة أزرار تُنفِّذ عملية الترجمة بدون تشغيل المحرّر نتبع الخطوات التالية: من قائمة المطور في برنامج إكسل، نضغط على الأداة إدراج ونختار منها إدراج زر فتظهر لنا نافذة جديدة نختار منها اسم الإجراء الذي نريد من الزر أن يعمل على تنفيذه، ثم نضغط موافق، بعدها ننقر نقرةً مزدوجةً على اسم الزر لنكتب له اسمًا مناسبًا يعبِّر عنه. نكرر العملية السابقة لإضافة زر خاص بالإجراء الثاني. الآن لنُجرب تطبيق استعلامًا يعمل على إخفاء الزر غير المُفعّل، أي عند الضغط على الزر عربي يختفي الزر الآخر وبالعكس. هنا يمكننا كتابة الاستدعاء أو الاستعلام بإحدى الصيغتين التاليتين ولنا حرية الاختيار: ActiveSheet.Buttons("Button1").Visible = False أو الصيغة التالية: Worksheets("VBA").Buttons("Button1").Visible = False وبتطبيق الصيغة السابقة على الإجراءين السابقين نحصل على الصيغ التالية: Sub Translate_EN() Range("A1").Value = "Section" Range("B1").Value = "Project code" Range("C1").Value = "Number of zones" ActiveSheet.Buttons("button1").Visible = True ActiveSheet.Buttons("button2").Visible = False End Sub Sub translate_AR() Range("A1").Value = "القسم" Range("B1").Value = "كود المشروع" Range("C1").Value = "عدد المناطق" ActiveSheet.Buttons("button1").Visible = False ActiveSheet.Buttons("button2").Visible = True End Sub الآن عند الضغط على أي زر ستُنفّذ عملية الترجمة ويختفي الزر الآخر تلقائيًا. المتغيرات يُعرِّف مفهوم الخوارزميات المتغيّر على أنه مخزن للبيانات تكون قيمته ثابتة أو متغيّرة، وذلك حسب الغرض من استعماله في الشيفرة. لدينا مثال من الحياة لتوضيح الفكرة أكثر: لدينا موظف توصيل طلبات طعام في أحد المطاعم، وإجمالي الدخل اليومي لهذا الموظف يعتمد على قيمتين، إحداهما ثابتة وهي الراتب، والثانية متغيّرة وهي الإكراميّة (البقشيش) التي يتقاضاها من الزبائن ولكن هذه القيمة غير محددة فمثلًا أحد الزبائن يدفع 20 وآخر يدفع 50 وآخر لا يدفع أبدًا لذا أصبح إجمالي الراتب اليومي هنا يعادل مرتبه اليومي مضافًا إليه مجموع الإكراميّات خلال اليوم، وهنا الإكراميّة تمثل المتغيّر أي أن المتغيّر قيمته ليست مشروطة برقم ثابت. استخدام المتغيرات تُستخدَم المتغيّرات في لغات البرمجة للأسباب التالية: سهولة كتابة الشيفرات وتعديلها: وفي مثال على ذلك عندما يكون لدينا شيفرة كبيرة ونريد الاستعلام عن قيمةٍ ما ضمنها في أكثر من موضع وليكن 50 موضعًا، وبعد عدة تطويرات للشيفرة أردنا تعديل هذا الاستعلام فيجب علينا أن نعدّله في جميع المواضع، أي لدينا 50 عملية تعديل؛ أمّا إذا كنّا قد عرّفنا متغيّرًا وأسندنا له قيمة تساوي هذا الاستعلام، فسنحتاج إلى تعديل الشيفرة في موضع واحد فقط وهو مكان إسناد القيمة للمتغيّر. تسريع عمل الشيفرة: إن استخدام المتغيّرات يخفف من حجم العمليات ضمن الشيفرة البرمجية وبالتالي تصبح الشيفرة أسرع في عملها. الاستخدام المتعدد للمتغيّر: حيث يمكننا استخدامه في أكثر من مكان ضمن الشيفرة. تعريف المتغيرات في VBA تُعّرف المتغيّرات بالصيغة التالية: Dim name As type Dim هي اختصار لكلمة Dimension والتي تعني حجز جزء من الذاكرة، ويقصد بها هنا أن الاسم التالي يُعبّر عن متغيّر. name: هو اسم اختياري ولكن له عدة شروط: يبدأ بحرف ولا يبدأ برقم أو رمز. لا يحتوي على الرموز التالية (#,$;%;&;!). لا يُسمى بأسماء معرفة في اللغة مثل (IF;SUM). لا يحتوي على فراغات أو نقط. type: يُعبر عن نوع البيانات التي سيكون عليها المتغيّر الذي نعرّفه، مثل: نصي، ورقمي، ومنطقي. فيما يلي جدول يضم جميع أنواع البيانات لدينا والقيم التي يمكن أن تأخذها: حالات تعريف المتغيّرات واستدعائها يُستدعى المتغيّر في الشيفرة عن طريق كتابة اسمه فقط ولكن هنا لدينا حالتان: تعريف متغيّر ضمن الإجراء: يمكننا هنا استدعاء المتغيّر داخل الإجراء فقط ولا يمكن التعرّف عليه ضمن إجراء آخر. Sub test() Dim x As Integer Code End Sub تعريف متغيّر ضمن الإجراء وجعله عامًا: أي جعل المتغيّر قابلًا للاستخدام في أكثر من إجراء وذلك عن طريق وضع الكلمة Public قبل صيغة التعريف الخاصة بالمتغيّر. Sub test() Public Dim x As Integer Code End Sub تعريف المتغيّر خارج الإجراءات: وذلك في بداية الشيفرات، عندها سيكون المتغيّر معرّفًا ضمن كل الإجراءات في نفس النموذج module. Dim x As Integer Sub test() Code End Sub حالات تعيين قيمة متغير إسناد قيمة ثابتة للمتغيّر، مثال: Dim x As Integer X=5 إسناد قيمة متغيّرة مثل خلية مرجعية، وفي مثال على ذلك ما يلي: Dim x As Integer X=Rang("name").value إسناد معادلات للمتغيّر، مثال: Dim x As Single X=15*260/42 خاتمة إن إتقاننا للتعليمات في لغات البرمجة يجعل منّا مبرمجين، ولكن إتقان التعامل مع المتغيّرات يجعلنا مبرمجين محترفين لما للمتغيّرات من أهمية كبيرة في صناعة الشيفرات البرمجية، ولأثرها الكبير على تحسين عمل الشيفرة وتسريعها وسهولة تعديلها، إضافةً إلى تخفيف كمية الاستعلامات في الشيفرة. اقرأ أيضًا مدخل إلى البرمجة باستخدام VBA في مايكروسوفت إكسل. العمليات الشرطية في مايكروسوفت إكسل باستخدام VBA. الحلقات التكرارية في مايكروسوفت إكسل باستخدام VBA. التفاعل مع المستخدم في مايكروسوفت إكسل باستخدام VBA.1 نقطة