بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .
تصميم شاشة
New User .
في هذه الشاشة سوف نلغي خاصيتي التكبير والتصغير من الفورم عن طريق ضبط خاصية BorderStyle للفورم بحيث تصبح = 1 .
أيضاً سيعد ضغط زر X بمثابة اغلاق البرنامج ، لذلك لا بد من كتابة ذلك في حدث Unload للفورم بالشكل التالي :
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
والآن صمم الشاشة كما يحلو لك ، مع وجود خمسة مربعات ادخال للاسم - كلمة المرور - اسم المحل - التلفون - العنوان ، وزرين لالغاء الامر وللاستمرار .
لا تنس أن تعدل خاصية Caption للفورم بحيث تصبح ( تسجيل مستخدم جديد ) أو ما شابه ، لن يكون سيئاً أن تكتب التاريخ أيضاً .
لكتابة التاريخ في خاصية Caption للفورم اكتب الأمر التالي في حدث Form_Load :
Me.Caption
= " تسجيل مستخدم جديد " & DateTime.Date
كذلك اضبط خاصية RightToLeft بحيث تساوي True ، وذلك كما أسلفنا عند الحديث عن تصميم البرمجيات العربية .
ملاحظات سريعة :
* لا تنس أنه لكي تنشأ مربع نص خاص بكتابة كلمة السر اضبط خاصية
PasswordChar إلى الحرف الذي تريد له أن يظهر بدل كلمة السر - غالباً * - .
* لا تنس أيضاً أنه لكي تنشأ حقل لكتابة ملاحظات ( حقل
More بالنسبة إلينا ) فلا بد من ضبط خاصية MultiLine بحيث تصبح True وذلك لنستطيع الكتابة على أكثر من سطر .
* أيضاً يمكنك التحكم في ظهور أشرطة التمرير من عدمها من خلال خاصية
ScrollBars
نعود الآن لحدث التحميل لهذا الفورم ، فاضافة لتغيير خاصية Caption للفورم وقت التنفيذ ، فإبمكاننا أيضاً وضع اسم مستخدم الجهاز ( افتراضياً ) في خانة ( اسم المستخدم ) .
نقوم بذلك بالشكل التالي :
أولاً . استدعي دالة
GetComputerNameA من مكتبة kernel32 في الموديول بالشكل التالي :
رمز:
Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
أو تستطيع تعريفها في الفورم بالشكل التالي :
رمز:
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
لكننا عرفناها في الموديول لأننا قد نحتاج إليها لاحقاً في أماكن أخرى .
وهذا الدالة أحد دوال API في الويندوز والتي تعطينا اسم المستخدم المسجل في جهاز الكومبيوتر .
ثانياً : الآن ضع الأمر التالي في حدث
Form_Load :
Dim A As String * 256
Dim X
X = GetComputerName(A, 256)
Text1.Text = Left(A, InStr(A, Chr(0)) - 1)
نعود مرة أخرى ، وكما ذكرنا أن ضغط زر ( الغاء الأمر ) يعني الخروج من البرنامج ، لذلك سنكتب End في الحدث الخاص بها .
لكن ماذا عن ضغط زر موافق ؟ سنقوم بمهمتين :
* المهمة الأولى التأكد من المدخلات .
* المهمة الثانية هي اضافة المدخلات في حالة كانت صحيحة .
وبما أن الغرض من هذه الدروس التعليم ، وبناء على طلب الإخوة من أعضاء vb4arab سوف نقوم بعمل دالة نمرر لها قيم الحقول الخمسة ، وتعيد -1 في حالة وجود أي خطأ - لتعلم أسلوب الدوال في فيجوال بيسك - .
لن أتوسع في شرح أنواع الارسال - وفي حالة وجود وقت سوف أشرح الامر في درس منفصل ولكن لاحقاً - لكننا سنكتب صيغة هذه الدالة :
* لاحظ أنها دالة Function ( لانها تعيد قيمة ) وليست اجراء Sub أو Prcedure .
Private Function Check(A, B, C, D, E)
End Function
حيث أن كل حرف يمثل أحد قيم مربعات النص .
*** طبعاً المفروض تسميها اسماء واضحة في برامجك الجدية علشان متتوهش وسط الكود ...
المهمة الأولى هي التأكد من وجود الاسم ، كلمة المرور ، كون كلمة المرور بين 3 و 12 حرف . وفي حالة وجود أي خطأ سوف أعيد القيمة - 1 .
ونعيد القيمة من الدالة بمعنى أن نجعل اسم الدالة = القيمة التي نرغب باعادتها .
سنكتب الكود للمهمة الأولى والذي سيكون بالشكل التالي :
If A = "" Then
MsgBox "لا بد من ادخال اسم المستخدم", vbExclamation, "تسجيل مستخدم جديد"
Check = -1
Exit Function
ElseIf B = "لا بد من ادخال كلمة المرور" Then
MsgBox "", vbExclamation, "تسجيل مستخدم جديد"
Check = -1
Exit Function
ElseIf Len(B) < 3 Or Len(B) > 12 Then
MsgBox "لا بد أن تكون كلمة المرور بين 3 و 12 حرف", vbExclamation, "تسجيل مستخدم جديد"
Check = -1
Exit Function
Else
Check = 1
End If
المهمة الثانية هي وضع قيم افتراضية للحقول المتبقية في حالة لم يقم المستخدم بادخالها ، وذلك بالشكل التالي :
If C = "" Then
Text3.Text = "برنامج البائع الذكي"
End If
If D = "" Then
Text4.Text = "0"
End If
If E = "" Then
Text5.Text = "البرنامج من تصميم منتدى فيجوال بيسك للعرب"
Text5.Text = Text5.Text & vbNewLine & "بامكانك زيارة الموقع على هذا الرابط
Text5.Text = Text5.Text & vbNewLine & "أو مراسلة صاحب البرنامج على هذه البريد الإلكتروني
Hammada2091@Hotmail.com"
End If
* تذكر أن
VbNewLine مع TextBox أو Chr(13) عموماً تنقلنا لسطر جديد ، حيث أن رقم 13 يقابل زر Enter في جدول آسكي Ascii . نعود الآن إلى تصميم زر موافق ، وسنبدأ باستدعاء الدالة ووضع القيمة التي ترجعها في متغير :
Dim Y As Integer
Y = Check(Text1.Text, Text2.Text, Text3.Text, Text4.Text, Text5.Text)
إذا وجدنا أن قيمة Y هي -1 فإننا نخرج ، وإلا فإننا سوف نضيف المستخدم وذلك باستدعاء ( الإجراء هذه المرة ) Add_User .
If Y = -1 Then Exit Sub
Add_User
والآن سوف نقوم ببرمجة الإجراء Add_User والذي سيحتوي على فتح جدول المستخدمين في البداية بالشكل التالي :
Set T4 = D1.OpenRecordset("Tb_User", dbOpenTable)
ثم نبدأ باضافة سجل جديد بالشكل التالي :
T4.AddNew
ومن ثم نبدأ باسناد القيم المختلفة للحقول بالشكل التالي :
T4!User_Name = Text1.Text
T4!PassWord = Text2.Text
T4!Name = Text3.Text
T4!Telephone = Text4.Text
T4!More = Text5.Text
ومن ثم نقوم بحفظ السجل .
T4.Update
ثم نقوم بنفس العمليات التي تحدث عند وجود قاعدة بيانات ، فنضع القيم المختلفة للقاعدة في المصفوفة ، ونغلق قاعدة البيانات .
Info(0) = T4!User_Name
Info(1) = T4!PassWord
Info(2) = T4!Name
Info(3) = T4!Telephone
Info(4) = T4!More
T4.Close