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

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



تصميم شاشة
New User .


في هذه الشاشة سوف نلغي خاصيتي التكبير والتصغير من الفورم عن طريق ضبط خاصية BorderStyle للفورم بحيث تصبح = 1 .
أيضاً سيعد ضغط زر X بمثابة اغلاق البرنامج ، لذلك لا بد من كتابة ذلك في حدث Unload للفورم بالشكل التالي :



كود :
[align=right]Private Sub Form_Unload(Cancel As Integer)
End
End Sub[/align]
والآن صمم الشاشة كما يحلو لك ، مع وجود خمسة مربعات ادخال للاسم - كلمة المرور - اسم المحل - التلفون - العنوان ، وزرين لالغاء الامر وللاستمرار .
لا تنس أن تعدل خاصية Caption للفورم بحيث تصبح ( تسجيل مستخدم جديد ) أو ما شابه ، لن يكون سيئاً أن تكتب التاريخ أيضاً .
لكتابة التاريخ في خاصية Caption للفورم اكتب الأمر التالي في حدث Form_Load :

Me.Caption


= " تسجيل مستخدم جديد " & DateTime.Date

كذلك اضبط خاصية RightToLeft بحيث تساوي True ، وذلك كما أسلفنا عند الحديث عن تصميم البرمجيات العربية .


ملاحظات سريعة :
* لا تنس أنه لكي تنشأ مربع نص خاص بكتابة كلمة السر اضبط خاصية


PasswordChar إلى الحرف الذي تريد له أن يظهر بدل كلمة السر - غالباً * - .
* لا تنس أيضاً أنه لكي تنشأ حقل لكتابة ملاحظات ( حقل


More بالنسبة إلينا ) فلا بد من ضبط خاصية MultiLine بحيث تصبح True وذلك لنستطيع الكتابة على أكثر من سطر .
* أيضاً يمكنك التحكم في ظهور أشرطة التمرير من عدمها من خلال خاصية


ScrollBars


نعود الآن لحدث التحميل لهذا الفورم ، فاضافة لتغيير خاصية Caption للفورم وقت التنفيذ ، فإبمكاننا أيضاً وضع اسم مستخدم الجهاز ( افتراضياً ) في خانة ( اسم المستخدم ) .
نقوم بذلك بالشكل التالي :


أولاً . استدعي دالة


GetComputerNameA من مكتبة kernel32 في الموديول بالشكل التالي :



كود :
[align=right]Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long[/align]
أو تستطيع تعريفها في الفورم بالشكل التالي :



كود :
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long



لكننا عرفناها في الموديول لأننا قد نحتاج إليها لاحقاً في أماكن أخرى .
وهذا الدالة أحد دوال API في الويندوز والتي تعطينا اسم المستخدم المسجل في جهاز الكومبيوتر .

ثانياً : الآن ضع الأمر التالي في حدث


Form_Load :



كود :
[align=right]Dim A As String * 256
Dim X
X = GetComputerName(A, 256)
Text1.Text = Left(A, InStr(A, Chr(0)) - 1)[/align]
نعود مرة أخرى ، وكما ذكرنا أن ضغط زر ( الغاء الأمر ) يعني الخروج من البرنامج ، لذلك سنكتب End في الحدث الخاص بها .
لكن ماذا عن ضغط زر موافق ؟ سنقوم بمهمتين :

* المهمة الأولى التأكد من المدخلات .
* المهمة الثانية هي اضافة المدخلات في حالة كانت صحيحة .


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

لن أتوسع في شرح أنواع الارسال - وفي حالة وجود وقت سوف أشرح الامر في درس منفصل ولكن لاحقاً - لكننا سنكتب صيغة هذه الدالة :

* لاحظ أنها دالة Function ( لانها تعيد قيمة ) وليست اجراء Sub أو Prcedure .



كود :
[align=right]Private Function Check(A, B, C, D, E)

End Function[/align]
حيث أن كل حرف يمثل أحد قيم مربعات النص .
*** طبعاً المفروض تسميها اسماء واضحة في برامجك الجدية علشان متتوهش وسط الكود ...

المهمة الأولى هي التأكد من وجود الاسم ، كلمة المرور ، كون كلمة المرور بين 3 و 12 حرف . وفي حالة وجود أي خطأ سوف أعيد القيمة - 1 .
ونعيد القيمة من الدالة بمعنى أن نجعل اسم الدالة = القيمة التي نرغب باعادتها .
سنكتب الكود للمهمة الأولى والذي سيكون بالشكل التالي :



كود :
[align=right]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[/align]

المهمة الثانية هي وضع قيم افتراضية للحقول المتبقية في حالة لم يقم المستخدم بادخالها ، وذلك بالشكل التالي :



كود :
[align=right]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 & "بامكانك زيارة الموقع على هذا الرابط www.vb4arab.com/vb"
Text5.Text = Text5.Text & vbNewLine & "أو مراسلة صاحب البرنامج على هذه البريد الإلكتروني Hammada2091@Hotmail.com"
End If[/align]
* تذكر أن


VbNewLine مع TextBox أو Chr(13) عموماً تنقلنا لسطر جديد ، حيث أن رقم 13 يقابل زر Enter في جدول آسكي Ascii .

نعود الآن إلى تصميم زر موافق ، وسنبدأ باستدعاء الدالة ووضع القيمة التي ترجعها في متغير :



كود :
[align=right]Dim Y As Integer
Y = Check(Text1.Text, Text2.Text, Text3.Text, Text4.Text, Text5.Text)[/align]
إذا وجدنا أن قيمة Y هي -1 فإننا نخرج ، وإلا فإننا سوف نضيف المستخدم وذلك باستدعاء ( الإجراء هذه المرة ) Add_User .



كود :
[align=right]If Y = -1 Then Exit Sub
Add_User[/align]

والآن سوف نقوم ببرمجة الإجراء Add_User والذي سيحتوي على فتح جدول المستخدمين في البداية بالشكل التالي :



كود :
[align=right]Set T4 = D1.OpenRecordset("Tb_User", dbOpenTable)[/align]
ثم نبدأ باضافة سجل جديد بالشكل التالي :



كود :
[align=right]T4.AddNew[/align]
ومن ثم نبدأ باسناد القيم المختلفة للحقول بالشكل التالي :



كود :
[align=right]T4!User_Name = Text1.Text
T4!PassWord = Text2.Text
T4!Name = Text3.Text
T4!Telephone = Text4.Text
T4!More = Text5.Text[/align]

ومن ثم نقوم بحفظ السجل .



كود :
[align=right]T4.Update[/align]
ثم نقوم بنفس العمليات التي تحدث عند وجود قاعدة بيانات ، فنضع القيم المختلفة للقاعدة في المصفوفة ، ونغلق قاعدة البيانات .



كود :
[align=right]Info(0) = T4!User_Name
Info(1) = T4!PassWord
Info(2) = T4!Name
Info(3) = T4!Telephone
Info(4) = T4!More

T4.Close[/align]
يتبع ...
}}}
تم الشكر بواسطة:
#2
لا تنس بعد ذلك أن تذكره بكلمة المرور التي أدخلها كيلا ينساها ، اظهر له رسالة بها :



كود :
MsgBox "لا تنس أن كلمة المرور هي : " & Info(1), vbInformation + arabic, "تذكير بكلمة المرور"



أخيراً نقوم بانشاء دالة في Module اسمها Start وتحتوي على الأوامر الرئيسية التي تحدث عند بداية تشغيل البرنامج ، وهو ما سوف نقوم بعمله لاحقاً .



كود :
[align=right]Public Sub Start()

End Sub[/align]
ونستدعيها في دالة Add_New بعد الشاشة الحالية .



كود :
[align=right]Me.Hide
Call Start[/align]
ولن ننسى بالطبع جعل بعض الحقول لا تقبل إلا أرقاماً فقط ، مثل رقم الهاتف بالشكل التالي :




كود :
[align=right]Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 59 Then
Beep
KeyAscii = 0
End If
End Sub[/align]
ويمكنك تطوير الأمر السابق كما أشرنا إلى ذلك في دروس سابقة .

بهذا نكون قد انتهينا من تصميم شاشة NewUser - مستخدم جديد .


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الرابع والثلاثون والأخير - نبذة عن العملية العكسية + تجهيز البرنامج على Cd RaggiTech 0 11,107 15-10-12, 09:10 AM
آخر رد: RaggiTech
  الدرس الثالث والثلاثون - كيفية عمل اعداد Setup للبرنامج RaggiTech 0 3,978 15-10-12, 09:08 AM
آخر رد: RaggiTech
  الدرس الثاني والثلاثون - التحويل إلى exe RaggiTech 0 4,063 15-10-12, 09:07 AM
آخر رد: RaggiTech
  الدرس الحادي والثلاثون - تعددية المستخدمين - البحث وطباعة الفواتير - التعليمات ... RaggiTech 2 4,951 15-10-12, 09:05 AM
آخر رد: RaggiTech
  الدرس الثلاثون - التعامل مع شريط الأدوات ToolBar RaggiTech 0 3,822 15-10-12, 08:59 AM
آخر رد: RaggiTech
  الدرس التاسع والعشرون - التعامل مع أشرطة الحالة Statues Bar RaggiTech 0 3,602 15-10-12, 08:57 AM
آخر رد: RaggiTech
  الدرس الثامن والعشرون -الطباعة في البرنامج . RaggiTech 4 5,292 15-10-12, 08:56 AM
آخر رد: RaggiTech
  الدرس السابع والعشرون - مقدمة إلى التعامل مع التقارير من خلال DataReport RaggiTech 2 6,105 15-10-12, 08:45 AM
آخر رد: RaggiTech
  الدرس السادس والعشرون - التقارير اليومية ، والتقارير بين تاريخين RaggiTech 1 4,347 15-10-12, 08:39 AM
آخر رد: RaggiTech
  الدرس الخامس والعشرون - الإحصائيات والرسوم البيانية RaggiTech 0 3,766 15-10-12, 08:37 AM
آخر رد: RaggiTech

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


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