نجوم المشاركات
Popular Content
Showing content with the highest reputation on 06/02/26 in مشاركات
-
وعليكم السلام ورحمة الله وبركاته .. اعجبتني الفكرة ، و وددت المشاركة بالتالي .. ما عليك فعله بيدك حتى تنجح الفكرة .. في المديول :- الخطوة الأولى اذهب للدالة :- Private Function ExitTimer() As Boolean وقم بحذف السطر :- Call DeleteObject(hRgn1) الخطوة الثانية أيضاً اذهب للدالة :- Public Function GenerateExit() 'MyForm As Form) وأضف بعد هذا السطر :- Do Until ExitTimer() السطر DoEvents ، لتصبح جملة الحلقة :- Do Until ExitTimer() DoEvents Sleep clngTimerInterval Loop وبعد هذه الحلقة مباشرة ، أضف السطر التالي :- Call DeleteObject(hRgn) وعليه ، فأن الملف كاملاً بعد هذه التعديلات يصبح :- db.mdb3 points
-
السلام عليكم لكل من النموذج المنبثق والغير منبثق خصائص هامة يطول الشرح فيهما كمثال من الناحية الجمالية عند الخروج (الضغط على زر خروج) : النموذج المنبثق ( PopYes ) يستجيب فى جميع الإصدارات للأمر ( Call GenerateExit ) بالموديول المرفق BasCloseForm بينما الغير منبثق ( PopNo ) لا يستجيب إلا فى أكسس 2003 فقط ، وباقى الإصدارات كأنه غير موجود رغم عدم وجود خطأ هل هناك إضافة للموديول المذكور تجعله راضياً عن النماذج الغير منبثقة ( فى إصدارات 2007 فما فوق ) ؟؟ db.mdb1 point
-
ممتاز جداً كل شكري وامتناني لحضرتك لقد أرجعت الناحية الجمالية ( فى الخروج من البرنامج ) بعد أن قمت _أنا_ بتعطيلها لهذا السبب المذكور فى الموضوع1 point
-
اعرض الملف نظام تسجيل دخول احترافي، مع نظام صلاحيات متعدد المستويات السلام عليكم ورحمة الله وبركاته 🙂🖐 بفضل الله وتوفيقه أقدم لكم تصميم نظام تسجيل دخول + نظام صلاحيات متطور حاولت تبسيطه للمستخدم والمستفيدين منه لاحقا قدر المستطاع .. وسأبدأ بواجهة تسجيل الدخول المتواضعة : المزايا : حفظ بيانات دخول المستخدم (اختياري) الدخول مباشرة بمجرد كتابة كلمة المرور بشكل صحيح (تسريع عملية الدخول) ملاحظة : جميع كلمات المرور في البرنامج : 123 ثانيا الواجهة الرئيسية : يتم تطبيق الصلاحيات للمستخدم بمجرد تسجيل الدخول .. ثالثا : إدارة المستخدمين هنا يتم إدارة جميع ما يتعلق بمستخدمي البرنامج ( إضافة ، تعديل ، حذف ، تعيين الصلاحيات ) رابعا : إدارة مجموعات العمل والصلاحيات لكل مجموعة هنا يتم ضبط الصفحات المسموح لكل مجموعة دخولها والصلاحيات الخاصة بكل صفحة .. ومثل ماهو واضح يمكن إضافة النماذج أو إزالتها كما يحلو لك وبعد ضبط مجموعات العمل يتم تعيين كل مستخدم للمجموعة الخاصة به ، ويمكن عمل مجموعة خاصة لشخص واحد فالخيارات غير محدودة .. 🙂 الآن يمكنك الخروج من البرنامج ثم تجربة تسجيل الدخول باسم المستخدمين المسجيلين في البرنامج للاستمتاع بتجربة الصلاحيات الممنوحة لكل مستخدم 😊 وبعد الدخول للصفحات يتم تطبيق الصلحيات الخاصة بالنموذج أيضا .. وبقية الصلاحيات ستظهر حسب الزر الذي يتم الضغط عليه مزايا إضافية موجودة في البرنامج .. ولها علاقة بالأمان أيضا .. نظام النسخ الاحتياطي وله إعدادات خاصة به (نسخ احتياطي يدوي أو تلقائي ) وهو موجود في صفحة إعدادات البرنامج : ولكل مستخدم مجموعة خيارات يمكنه التحكم بها مثل ( تغيير كلمة المرور ، التشغيل عند إقلاع الجهاز ، إنشاء اختصار في سطح المكتب ، حفظ بيانات التسجيل لتسريع الدخول للبرنامج) هذه هي أهم الميزات التي يحتويها البرنامج 🙂 ولفتح البرنامج في وضع التصميم ، حتى هذي سهلة للمبرمج 😅🖐 في صفحة تسجيل الدخول وكذلك الصفحة الرئيسية يوجد هذا الزر الخاص بالمبرمج >> بعد الضغط عليه >> أدخل كلمة المرور : 123 ويمكنك تغييرها من الكود الخاص بالزر .. بتظهر لك هذي النافذة الخاصة بالمبرمج فقط : وأهم ما فيها : (1) عرض الشريط العلوي ونافذة الأكسس >> بعد تفعيله تحفظ وتشغل الماكرو وبتنفتح عندك واجهة الأكسس >> أعد تشغيل البرنامج من جديد للحصول على جميع الميزات. (2) اسم نموذج البداية >> وهو أو نموذج بيشتغل معاك في البرنامج >> وهذا يسهل على المبرمج تطبيق النظام على أي برنامج آخر 🙂 (3) اسم البرنامج (واللي ييظهر في الشريط العلوي للأكسس) : (4) رقم الإصدار (نسخة البرنامج) وتاريخها >> ويمكن الاعتماد عليها لتحديث البرنامج لاحقا .. (5) إدارة نماذج الصلاحيات >> وهي النماذج اللي ستسمح بإعطاء صلاحيات لدخولها للبرنامج .. وكذلك تعطي كل نموذج اسم صديق للمستخدم وسيتم استخدام المسمى الحقيقي للنموذج داخليا .. وهكذا أكون شرحت لكم أهم المميزات ويتبقى نقطة مهمة وهي : يمكن للمبرمج الآن الاستفادة من هذا الملف فهو قاعدة جاهزة لإنطلاق في تصميم برنامجك الخاص .. جميع الأكواد الخاصة بالصلاحيات ستجدها في الموديول التالي : وأهم ما ستحتاج معرفته في كيفية تطبيق الصلاحيات ذكرته في الملاحظات المكتوبة أول الموديول : ' (1) : لتطبيق صلاحية فتح النماذج وصلاحيات الإضافة والتعديل والحذف تضع الأسطر التالية أول الأكواد في حدث فتح النموذج '------------------------------------------------------------------------------- 'Private Sub Form_Open(Cancel As Integer) ' ' فحص صلاحة دخول النموذج ' Cancel = Not Permission_OpenForm(Me.Name, True) ' ' تطبيق صلاحيات : الإضافة / التعديل / الحذف ' Apply_Addition_Edits_Delete_Permissions (Me.Name) 'End Sub '------------------------------------------------------------------------------- ' (2) : لتطبيق صلاحيات الطباعة والاستيراد والتصدير داخل نموذج معين تكتب هذه الأسطر لمعرفة وجود الصلاحة من عدمها ' : وكل سطر من هذه الصلاحيات يرجع لك النتيجة كما يلي ' True : مسموح ' False : ممنوع '------------------------------------------------------------------------------- ' 1- فحص صلاحية الطباعة (True/False) ' Permission_Print(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها ' 2- فحص صلاحية الاستيراد (True/False) ' Permission_Import(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها ' 3- فحص صلاحية التصدير (True/False) ' Permission_Export(Me.Name , True) ' |_>> (True/False) : هذه الجزئية اختيارية لعرض رسالة تنبيه عند عدم وجود صلاحية من عدمها '------------------------------------------------------------------------------- والنماذج الموجودة في البرنامج مع أزرارها تم تطبيق الأكواد عليها بشكل عملي << راجعها وأدرسها لمعرفة كيفية عملها .. وهي سهلة يسيرة بفضل الله 🙂 وهذا مثال عملي لتطبيق الصلاحية على زر الطباعة (فتح التقرير) مثلا : وهكذا بقية الصلاحيات (اطلع على بقية الموديول) تم تحويلها لأسطر قليلة بسيطة للاستفادة منها بكل يسر .. 🙂 :: 🌹 وآخر دعوانا أن الحمد لله رب العالمين 🌹 :: صاحب الملف Moosak تمت الاضافه 05/12/26 الاقسام قسم الأكسيس1 point
-
1 point
-
الإصدار الثاني من لعبة الدومينو والتي تدعم الشبكة ( النسخة الأولى التي تعتمد على الربط بقاعدة بيانات الجداول الخلفية ) . مميزات الإصدار الأول :- إمكانية لعب اللعبة من خلال الشبكة المحلية ( 4 لاعبين = 4 أجهزة ) إمكانية إضافة الكمبيوتر كلاعب للعبة الشبكة . يعني بتقدر تلعب انت وصديقك وتضيف الكمبيوتر كلاعب ثالث أو رابع . أو إنك ممكن تلعب مع 3 لاعبين كمبيوتر 😁 . إتاحة دخول لاعب على الشبكة ،واستبدال لاعب كمبيوتر بإدارة كاملة من المضيف ( صاحب اللعبة الحالية = الهوست Host ) . في حال خروج أحد اللاعبين ( خلينا نسميهم البشريين ) سيتم ملئ مقعده بلاعب كمبيوتر لاستكمال اللعب بدلاً منه . في حال رغبة اللاعب الذي خرج ( لأي سبب من الأسباب ) ، سيتم منحه الإذن بالدخول للعبة إما متفرج أو بدل لاعب كمبيوتر آخر موجود ( أو الذي تم إدخاله بدلاً منه ) ... إلخ من سيناريوهات الخروج والعودة . كل لعبة تسمى غرفة لعب ، لها رقم خاص بها للإنضمام . وذلك لمنع تداخل اللعب في الغرف . في حال كان هناك أكثر من غرفة . يعني بتقدر تلعب اللعبة على 8 أجهزة على سبيل المثال وكل 4 في غرفة منفصلة . في حال انقطاع أو خروج المضيف = الـ Host ، رح يكون معه 60 ثانية للعودة للغرفة نفسها . بشرط أن يتم كتابة نفس الإسم السابق له قبل خروجه . وهذا ينطبق أيضاً على اللاعبين البشريين - كما أسميناهم وللتمييز بينهم وبين الكمبيوتر - عند خروج أحدهم والعودة الى نفس الغرفة = بنفس الإسم . بتقدر كمضيف = Host تحديد قيمة نتيجة الفوز التي تحدد الفائز بالغرفة . طبعاً القيمة الإفتراضية = 500 . وسيكون التجميع تراكمياً بمجموع أرقام الحجارة في يد اللاعب الذي يملك أقل عدد . في لعبة الشبكة بتقدر تختار صورة لشخصيتك من خلال قائمة منسدلة = Avatar . لنفترض انك كلاعب بشري سجلت انضمامك للغرفة - قبل بداية اللعبة طبعاً - وكنت بدك تعدل اسمك أو تغيره . كل اللي عليك انك ترجع تسجل انضمام جديد بفتح اللعبة من جديد لنفس الغرفة . لن تظهر أي حجارة عندما يكون عدد الاعبين أكثر من 2 . وإلا فسيأخذ اللاعب الثاني ( إذا كانت اللعبة تضم لاعبين اثنين فقط ) مكان الكمبيوتر وستظهر حجارة كلا اللعبين مقابل بعضهما البعض . ستظر صورة لشخصية ترفع يدها في واجهة اللاعبين للدلالة على أن الدور له ، حتى لو كان الكمبيوتر احد اللاعبين المنضمين الى لعبة الشبكة . لنفترض أن الغرفة فيها 3 أو 4 لاعبين ، وأراد لاعب رابع الإنضمام الى اللعبة . فسيتم إظهار رسالة في واجهة المضيف الـ Host فقط ، تخبره أن هناك لاعب يرغب بالإنضمام الى الغرفة . وستكون الخيارات للمضيف كالآتي :- * استبدال لاعب كمبيوتر باللاعب الجديد فوراً = في حال وجود لاعب كمبيوتر * قبول اللاعب كمتفرج حتى الفوز التام = سيتم إدخاله كمتفرج فقط ، و ينتظر حتى يحقق أحد اللاعبين القيمة التي تحدد الفائز في الغرفة * رفض الانضمام = عدم إدخاله أساساً * قبول الانضمام والبدء بلعبة جديدة كلياً = تصفير اللعبة والبدء من جديد بانضمام اللاعب الجديد محاكاة كاملة لسير اللعب والحركة والسحب وتمرير الدور عند جميع اللاعبين . إذا كان عدد الاعبين أكثر من 2 ، فسيتم إظهار عدد الحجارة في يد كل لاعب ، والنتيجة التي حققها من فوز في كل لعبة ؛ في واجهة كل اللاعبين . والكثير من المميزات سأترك لكم اكتشافها بأنفسكم 😉 . وسأكتفي بهذا القدر من النقاط . ما عليك فعله لضبط اللعب في الشبكة :- ربط جميع واجهات اللعب بالملف المرفق TBL ، وهو قاعدة بيانات الجداول التي تخص الشبكة على السيرفر فقط . وهنا في التحديث الجديد لاحقاً سيتم الاستغناء عنه كلياً بحيث يتم اللعب على الشبكة من خلال وسيط يعمل كسيرفر يربط اللعبة من خلال رقم الغرفة بشكل ديناميكي عجيب . وقد تم بناؤه من خلال لغة C# . المرفق مفتوح المصدر لعشاق البحث والتقصي 😁 . وليس هنا أي أسرار هذه المرة 😜 . ويسعدني تعليقاتكم حول آلية تطبيق اللعبة . Domino Network.zip1 point
-
يرجى مراجعة الخطأ عند إنشاء نسخة احتياطية1 point