التنبيهات التالية ظهرت :
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 864 - File: showthread.php PHP 7.4.33 (Linux)
File Line Function
/showthread.php 864 errorHandler->error



تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثامن - تصميم شاشة تسجيل الدخول Login
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .



تصميم شاشة تسجيل الدخول .

كما هو الحال مع الشاشة الافتتاحية ، فإن الفيجوال بيسك يوفر لنا شاشة قياسية لعملية تسجيل الدخول ... تستطيع تجربتها من خلال اختيار New ومن ثم Log in Form .
ولكننا سوف نصمم يدوياً شاشة تسجيل الدخول .

ينبغي أن يتوفر في هذه الشاشة زرين ( موافق - الغاء الامر ) ومربعي نص يحتوي أحدهما على اسم المستخدم ، وكلمة المرور .
وكما قمنا بتصميم الشاشة الماضية ، فسوف نجعل هذه الشاشة بدون زري التصغير والتكبير ، كما أن ضغط زر X سوف ينهي البرنامج .

والآن لنضع سوية أوامر الدخول :
المهمة الأولى هي التأكد من اسم المستخدم
Info(0) وكلمة المرور Info(1) ، وذلك بالشكل التالي :

*** بامكاننا كما نبهت سابقاً عند هذه العملية فتح قاعدة البيانات لقراءة القيم منها ومن ثم اغلاقها ثانية بدلاً من تخزينها في متغيرات .


كود :
If Text1.Text <> Info(0) Then
MsgBox "لقد ادخلت اسم المستخدم خطأ ... فضلاً أعد المحاولة", vbExclamation + arabic, "تسجيل مستخدم جديد"
Exit Sub
End If

If Text2.Text <> Info(1) Then
MsgBox "كلمة المرور غير صحيحة ... فضلاً أعد المحاولة", vbExclamation + arabic, "تسجيل مستخدم جديد"
Exit Sub
End If
الخطوة الثانية ، وهي أننا نريد أن نحدد ( كلمة المرور أو اسم المستخدم ) في حالة الخطأ .
وذلك باستخدام الخاصيتين SelLength و SelStart اضافة للدالة Len .
تحدد الخاصية SetStart بداية التحديد ، و SelLength نهاية التحديد والذي نبغي أن يكون طول النص الموجود Len وذلك بالشكل التالي :



كود :
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
ونفس الأمر بالنسبة لكلمة المرور .

في حالة كان كل من اسم المستخدم وكلمة المرور صحيحين فإننا نخفي هذه الشاشة ... ونستدعي الدالة Start التي انشأناها في الدرس السابق .
وبذلك يصبح الكود في النهاية :



كود :
If Text1.Text <> Info(0) Then
MsgBox "لقد ادخلت اسم المستخدم خطأ ... فضلاً أعد المحاولة", vbExclamation + arabic, "تسجيل مستخدم جديد"
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Exit Sub
End If

If Text2.Text <> Info(1) Then
MsgBox "كلمة المرور غير صحيحة ... فضلاً أعد المحاولة", vbExclamation + arabic, "تسجيل مستخدم جديد"
Text2.SelStart = 0
Text2.SelLength = Len(Text2.Text)
Exit Sub
End If

Me.Hide
Call Start


عمل عداد لتسجيل الدخول .

من الطبيعي دائماً ألا يترك الشخص ليدخل كلمات مرور كما يحلو له ، بل العادة أن تترك له ثلاث محاولات فقط قبل انهاء البرنامج .

لذلك سوف نضيف متغير ما وليكن اسمه My_Count في قسم التصريحات Genral ونضع قيمته في حدث Form_Load بحيث يصبح 0 .

ومع كل ضغطة على زر تسجيل الدخول تتم زيادة هذا المتغير بمقدار 1 ، والتأكد من أنه لم يصل إلى 4 ، وفي هذه الحالة يتم الخروج مباشرة .

بذلك يصبح كود تسجيل الدخول بالشكل التالي :



كود :
My_Count = My_Count + 1

If LCase(Text1.Text) <> LCase(Info(0)) Then
MsgBox "لقد ادخلت اسم المستخدم خطأ ... فضلاً أعد المحاولة", vbExclamation + arabic, "تسجيل مستخدم جديد"
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
If My_Count = 4 Then End
Exit Sub
End If

If Text2.Text <> Info(1) Then
MsgBox "كلمة المرور غير صحيحة ... فضلاً أعد المحاولة", vbExclamation + arabic, "تسجيل مستخدم جديد"
Text2.SelStart = 0
Text2.SelLength = Len(Text2.Text)
If My_Count = 4 Then End
Exit Sub
End If

Me.Hide
Call Start


ما هي العمليات التي يفترض أن تحدث عند بدء البرنامج . وهي التي سنضيفها في أمر Start

سوف يكون هناك العديد من الأشياء التي سنضيفها لاحقاً ، ومن أجل الحفاظ على تسلسل الشرح سوف نضيف ما نحتاج إليه عند الحاجة إليه فقط .

* اظهار اسم البرنامج + اسم المحل في عنوان الشاشة الرئيسية .
* اظهار معلومات المحل في منتصف الشاشة الرئيسية .

بالنسبة للمهمة الأولى فسيكون الأمر سهلاً جداً ... كل ما عليك هو كتابة الأمر التالي في Start :

MDIForm1.Caption
= "برنامج البائع الذكي - " & Info(2)


أما الجزء الثاني فهو سهل إن شاء الله ، ولكن ثم مشكلة متعلقة ب MDIForm .
لو لاحظت أنه لا يمكن وضع أي أدوات على الفورم مثل Lable وغيره مما نريد أن تظهر فيها معلومات المحل ، ولا يمكن عرض إلا أداة مثل PictureBox ، ولو قمنا بوضعه على كامل الشاشة فإن جميع الشاشات الأبناء للشاشة الرئيسية سوف تظهر أسفل منها ، وبهذا لا يمكننا رؤيتها ، لكننا سوف نتحايل على ذلك بأن ننشأ فورماً خاصاً Frm_Info ونعرضه بصورة دائمة في منتصف الشاشة .

سنبدأ فوراً بتصميم هذا الفورم ، تأكد من أنك تضع Label1 لاسم المحل ، Label2 لرقم الهاتف ، Label3 لعرض المعلومات الأخرى .
صمم الشكل العام كما يحلو لك .
وتذكر أن خاصية BorderStyle لهذا الفورم لا بد أن تكون 0 وبنفس اللون ، حتى لا يظهر مختلفاً عن خلفية الشاشة الرئيسية .

أيضاً لا تنس أن تضع خاصية MDIChild له True .

الآن وفي دالة Start سوف نحدث محتويات هذا الفورم اضافة إلى اظهاره :



كود :
Frm_Info.Label1 = Info(2)
Frm_Info.Label3 = Info(3)
Frm_Info.Label3 = Info(4)

Frm_Info.Show

والملف مرفق بالعمليات حتى هذه اللحظة ، ولا تنس اضافة ملف قاعدة البيانات في نفس مسار البرنامج .

والله الموفق ...
والسلام عليكم ورحمة الله وبركاته ...



الملفات المرفقة
.zip   prog4.zip (الحجم : 193.2 ك ب / التحميلات : 304)
}}}
تم الشكر بواسطة:


الردود في هذا الموضوع
الدرس الثامن - تصميم شاشة تسجيل الدخول Login - بواسطة Raggi Tech - 15-10-12, 07:50 AM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 11,191 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 3,983 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 4,073 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 4,959 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 3,826 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 3,606 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 5,299 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 6,116 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 4,349 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 3,769 15-10-12, 08:37 AM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم