15-10-12, 07:50 AM
كاتب الموضوع : أحمد جمال
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
السلام عليكم ورحمة الله وبركاته .
تصميم شاشة تسجيل الدخول .
كما هو الحال مع الشاشة الافتتاحية ، فإن الفيجوال بيسك يوفر لنا شاشة قياسية لعملية تسجيل الدخول ... تستطيع تجربتها من خلال اختيار New ومن ثم Log in Form .
ولكننا سوف نصمم يدوياً شاشة تسجيل الدخول .
ينبغي أن يتوفر في هذه الشاشة زرين ( موافق - الغاء الامر ) ومربعي نص يحتوي أحدهما على اسم المستخدم ، وكلمة المرور .
وكما قمنا بتصميم الشاشة الماضية ، فسوف نجعل هذه الشاشة بدون زري التصغير والتكبير ، كما أن ضغط زر X سوف ينهي البرنامج .
والآن لنضع سوية أوامر الدخول :
ولكننا سوف نصمم يدوياً شاشة تسجيل الدخول .
ينبغي أن يتوفر في هذه الشاشة زرين ( موافق - الغاء الامر ) ومربعي نص يحتوي أحدهما على اسم المستخدم ، وكلمة المرور .
وكما قمنا بتصميم الشاشة الماضية ، فسوف نجعل هذه الشاشة بدون زري التصغير والتكبير ، كما أن ضغط زر 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 وذلك بالشكل التالي :
ونفس الأمر بالنسبة لكلمة المرور .
في حالة كان كل من اسم المستخدم وكلمة المرور صحيحين فإننا نخفي هذه الشاشة ... ونستدعي الدالة Start التي انشأناها في الدرس السابق .
وبذلك يصبح الكود في النهاية :
تحدد الخاصية 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 ، وفي هذه الحالة يتم الخروج مباشرة .
بذلك يصبح كود تسجيل الدخول بالشكل التالي :
ما هي العمليات التي يفترض أن تحدث عند بدء البرنامج . وهي التي سنضيفها في أمر 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 سوف نحدث محتويات هذا الفورم اضافة إلى اظهاره :
والملف مرفق بالعمليات حتى هذه اللحظة ، ولا تنس اضافة ملف قاعدة البيانات في نفس مسار البرنامج .
أما الجزء الثاني فهو سهل إن شاء الله ، ولكن ثم مشكلة متعلقة ب 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
والملف مرفق بالعمليات حتى هذه اللحظة ، ولا تنس اضافة ملف قاعدة البيانات في نفس مسار البرنامج .
والله الموفق ...
والسلام عليكم ورحمة الله وبركاته ...
والسلام عليكم ورحمة الله وبركاته ...