منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الدرس الثامن - تصميم شاشة تسجيل الدخول Login
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : أحمد جمال

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



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

كما هو الحال مع الشاشة الافتتاحية ، فإن الفيجوال بيسك يوفر لنا شاشة قياسية لعملية تسجيل الدخول ... تستطيع تجربتها من خلال اختيار 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

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

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