تتناول الوثيقة موضوع دورة البرمجة بلغة الفيجوال بيسك، حيث تتناول محتويات الدورة وأدوات البرنامج المختلفة، بالإضافة إلى تعليمات لإنشاء نماذج متعددة مع شروحات حول خصائص الأدوات المستخدمة، وأمثلة على البرمجة والتصميم.
Back color BorderStyle Caption Control Box Forecolor Hight-Left-Width –Top scale mode Icon Maximize Button-Minimize Button Name Mouse pointer Font Picture Right to left Startup position Visible Window state التعرف على خصائص النموذج
13.
أهم خصائص Textbox Enable Alignment Multiline Scrollbar Maxlength Text Passwordchar Borderstyle Appearnce Tooltiptext Textbox
14.
أهم خصائص label Alignment Backstyle Autosize Label
15.
أهم خصائص Command Button Style Tabindex Tabstop لون الخط غير موجود !! Command Button
16.
شاشة البرمجة ( Code ) اسم الأداة الحدث ( Event ) الخاصية أو الطريقة
تدريب 1صممي نموذج يقرا اسمك ( يعرض كرموز ) و عند الضغط على الأمر read name يعرض الاسم بخط مختلف ( اللون و الحجم ) . و ينتهي التطبيق بالضغط على الأمر Exit مع مراعاة ظهور النموذج في منتصف الشاشة و عدم السماح للمستخدم بالتغيير من حجم النموذج وقت التنفيذ .
19.
الحل : Enteryour Name caption 0-Left Justify Alignment Lblname Name Label (Enter…) أزرق Forecolor 18 Font caption 2-center Alignment Lblmyname Name Label لعرض الاسم 28 Font Welcome caption 0-Transparent backstyle 2-center Alignment Lblfirst Name Label(Welcome) 2-center screen Start up position My First Project caption 1-fixed single Borderstyle اختيار اللون Backcolor frmtext Name Form Value القيمة Property الخصائص Object الأدوات
20.
1-Graphical style ExitCaption اختيار اللون Backcolor cmdexit Name command 1-Graphical style Read name Caption اختيار اللون Backcolor cmdname Name command Name ToolTipText * PasswordChar txtname Name Text
21.
الحل Private Subcmdexit_Click () End End Sub Private Sub cmdname_Click () lblmyname.Caption = txtname.Text End Sub
22.
تغيير الألوان 1- Vbred 2- Rgb(red,green,blue) -3 qbcolor(number)
23.
تدريب -2: صممي نموذج يحتوي على ثلاث اوامر لتغيير لون خلفية النموذج بحيث يمكن تنفيذ الأمر بالضغط عليه بالفأرة كما يمكن تنفيذه باستخدام لوحة المفاتيح . مع مراعاة التالي : - عند المرور على الأمر بسهم الفأرة يصبح خط عنوان الأمر غامق و أثناء الضغط على الأمر يتغير لون خلفيته إلى اللون الوردي . - ثم اضيفي أمر جديد يغير لون خلفية النموذج كل مرة بشكل عشوائي
24.
الحل Private Subcmdblue_Click () frmcolor.BackColor = vbBlue End Sub Private Sub cmdblue_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single ) cmdblue.BackColor = RGB(255, 217, 245 ) End Sub Private Sub cmdblue_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single ) cmdblue.FontBold = True cmdgreen.FontBold = False cmdred.FontBold = False End Sub Private Sub Command1_Click () frmcolor.BackColor = QBColor(Rnd * 15) End Sub
25.
تدريب -3 :صممي نموذج يعرض كلمة Hello وعند الضغط على الأمر Move Up تتحرك الكلمة الى الزاوية العليا جهة اليمين و يتغير لونها عشوائيا . و عند الضغط على Move down تتحرك الكلمة إلى الزاوية السفلى جهة اليسار و يتغير لونها عشوائيا . و ينتهي التطبيق بالضغط على Exit
26.
الحل Private Subcmddown_Click () Label1.Top = Label1.Top + 100 Label1.Left = Label1.Left - 50 Label1.ForeColor = QBColor(Rnd * 15) End Sub Private Sub Cmdup_Click () Label1.Top = Label1.Top - 100 Label1.Left = Label1.Left + 50 Label1.ForeColor = QBColor(Rnd * 15) End Sub
27.
المتغيرات (أنواعها) شروطاختيار اسم المتغير : 1- أن يبدأ بحرف هجائي . 2- لا يتعدى 256 حرف . 3- لا يحتوي على نقاط أو مسافات أو العمليات الحسابية . 4- لا تستعمل الكلمات المحجوزة . أنواعها : 1- Dim 2- Public 3- Static 4- Private
28.
تعريف المتغيرات Datatype Boolean ( True-False ) String ($) (@) Currency single (!) Double (#) Byte long (&) Varient (%) Integer Date ، bject ، char Dim Var-name as Data type
اسناد قيم للمتغيراتVarname= Expression مثال : Num=5+2 F_name=“mona” Num=txt.text Result=num1+num2 Res1=A or B
33.
تدريب -4:ضعي اشارة صح او خطأ امام الجمل التعريفية التالية مع تحديد سبب الخطأ : Dim mydate as Integer Dim salary! Dim male/female as boolean dim salary % = 2 Dim salary as currency salary=5000$ Dim x As String * 15 هل يمكن استخدام نفس المتغير في أي من موضع في Procedure لأكثر من نوع من البيانات؟
34.
إظهار رسائل Msgbox Button clicked= msgbox(massage,number of Button , title) X = msgbox(“welcom to”& na,vbokcancle,”so mutch”
35.
36.
تدريب 5:صممي نموذج تعمل عمل الآلة الحاسبة. مع مراعاة إظهار رسالة للمستخدم في حال كان العدد الثاني لعملية القسمة يساوي الصفر و إعطاءه فرصة لإدخال عدد آخر.
37.
الحل Private Subcmdadd_Click () result = no1 + no2 txtresult = result End Sub Private Sub cmdclear_Click () txtno1.Text = "" txtno2.Text = "" txtresult.Text = "" End Sub Private Sub cmddif_Click () result = no1 - no2 txtresult = result End Sub Private Sub cmdmulti_Click () result = no1 * no2 txtresult = result End Sub Private Sub cmdpower_Click () result = no1 ^ no2 txtresult = result End Sub Private Sub comdivid_Click() If no2 <> 0 Then result = no1 / no2 txtresult = result Else MsgBox "you can't divid by zero ,enter another number", vbExclamation + vbOKOnly, "Error" End If End Sub Private Sub txtno1_Change () no1 = Val(txtno1) End Sub Private Sub txtno2_Change () no2 = Val(txtno2) End Sub
38.
قراءة البيانات من inputbox Variable=inputbox ( ) C=inputbox(“enter a letter”,”enter screen”) وسيطات
39.
تغيير تنسيق البياناتباستخدام Format Text or label = var(format(exp,”type of format”) Lb1.caption=format(salary,”currency”) Format: Currency Percent Fixed General number
40.
تدريب -6:صممي برنامج يحسب الدخل السنوي للموظف : بحيث يقرأ الاسم و الراتب و نسبة الزيادة من مربع الادخال inputbox
41.
الواجب صممي نموذجيقوم بإدخال اسمك وعند النقر على الأمر Change font يكبر الخط ويتغير لون النص في كل نقره على الأمر .
42.
حل الواجب PrivateSub Command1_Click() Text1.ForeColor = QBColor(Rnd * 15) Text1.FontSize = Text1.FontSize * 2 End Sub
43.
الثوابت Constقيم لا تتغير مهما اختلف موقعها داخل البرنامج . Const const-name [as type] = value Const doller as single = 4.13 من الثوابت المعروفة في الفيجوال بيسك Vbgreen Vbcrlf vbtab
44.
الطباعة على Form أو على الطابعة Debug.print “n” Print Tab(10),”hi” Print “welcom” & n & “to all” Print format(salary,”currency”) Debug.print n ( يطبع على الطابعة ) Printer.print spc(n) tab(n)
45.
تدريب -7:صممي برنامج يحسب مساحة و محيط الدائرة . و يطبعها على نفس form
46.
الحل Private SubCommand1_Click() Dim r As Single Const pi As Single = 3.14 Const x As Integer = 2 Dim area As Single, circum As Single r = InputBox(" ادخل نصف القطر ") area = pi * r ^ x circum = x * pi * r Print " مساحة الدائرة " & area & " محيط الدئرة " & circum End Sub Private Sub Command2_Click() Cls End Sub
47.
جمل التحكم واتخاذالقرار If If condtion then Statments End if If condtion then Statments Else statments End if If condtion then Statments Else if condtion then Statments End if
48.
تدريب 8صممي برنامج يقرأ درجة طالب و يطبع تقديره ( A,B,C,D,F ) علما بأنه سيطبع التقدير باللون الاحمر اذا كان الطالب راسب
49.
الحل Private Subcmnstart_Click() Dim mark As Single Dim grade As String mark = txtmark.Text txtgrade.ForeColor = vbBlack If mark <= 100 Then If mark >= 90 Then grade = "A" Else If mark >= 80 Then grade = "B" Else If mark >= 70 Then grade = "C" Else If mark >= 60 Then grade = "D" Else txtgrade.ForeColor = vbRed grade = "F" End If End If End If End If Else MsgBox "The mark you entered is incorrect" End If txtgrade.Text = grade End Sub
50.
معاملات الربط –or-not-and If grade>=90 and grade<=100 then If Text1.Text = "" Or IsNumeric(Text1.Text) Then If Text1.Text = "" Or Not IsDate(Text1.Text) Then
51.
جملة selectcase Select case test value Case val1: statement Case val2:statment Case val3:statement ( اذا لم يكن من احد الاحتمالات Case else ( statment End select حالات case Case “A”,”a”: : Case 10: Case 3 to 10: Case is >50:
52.
تدريب 9:تتبعي البرنامج التالي و اكتبي قيمة X اذا كانت c=E , c=H , c=N Dim c as string Dim x as integer Private sub X=10 C=inputbox("enter a latter") Select case c Case "A" : x=x+5 Case "B" X=x-1 Case "C" to "F" X=x+2 Case "G","H","I" X=x+10 Case "K","L","M" to "R" X=x+1 Case else X=0 End select Print x End sub
53.
أهم خصائص Check box Value (0 ، 1 ، 2) أهم خصائص Option Box Value ( True,False ) تابع أدوات التحكم check box مربع التدقيق option box زر الاختيار Check box Option box
تابع أدوات التحكم Picture box,Image أهم خصائص Image ( ظل الصورة ) Stretch Picture أهم خصائص Picture box ( مربع الصورة ) يشغل حجم أكبر من ظل الصورة ويمكن أن يكون حاوية لأدوات أخري . Autosize Picture Picture Box Image
56.
تدريب 10صممي نموذج بحيث يقرا الاسم من مربع الادخال بمجرد التنفيذ و لا يسمح بالتعديل عليه بعد ادخاله اذا اختار المستخدم show picture تظهر الصورة كما يمكنه تفعيل خيار حدود الصورة اما اذا اختار Hide picture تختفي الصورة يمكن تغيير تنسيق الاسم و تطبيق الاوامر bold-italic-underline
57.
الحل Private Subchkbold_Click() If chkbold Then Text1.FontBold = True Else Text1.FontBold = False End If End Sub Private Sub chkborder_Click() If chkborder.Value Then Image1.BorderStyle = 1 Else Image1.BorderStyle = 0 End If End Sub Private Sub chkitalic_Click() If chkitalic.Value Then Text1.FontItalic = True Else Text1.FontItalic = False End If End Sub Private Sub chkuline_Click() If chkuline.Value Then Text1.FontUnderline = True Else: Text1.FontUnderline = False End If End Sub
58.
Private Sub Form_Load()Text1.Text = InputBox("Enter Name") Text1.Locked = True End Sub Private Sub Option1_Click() Image1.Visible = True chkborder.Enabled = True End Sub Private Sub Option2_Click() Image1.Visible = False chkborder.Enabled = False End Sub
59.
أدوات التحكم list box-combo box List box Combo box اهم الخصائص : List : تحدد فيه عناصر القائمة . List index : تعطي رقم ترتيب العنصر في القائمة . Text : تعطي عنوان للقائمة Combo box وتستخدم أثناء التنفيذ في القائمة List
60.
تدريب 11 صمميبرنامج لتعبئة قائمة من المشتريات من مربع نص مع إمكانية تغيير أحجام الخطوط . يمكن الإضافة للقائمة و حذف عنصر من القائمة حذف محتويات القائمة
61.
الحل Private SubCombo1_Click () Text1.FontSize = Combo1.Text End Sub Private Sub Command1_Click () List1.AddItem (Text1.Text) Text1 = "" End Sub Private Sub Command2_Click () List1.RemoveItem (List1.ListIndex) End Sub Private Sub Command3_Click () List1.Clear End Sub Private Sub Command4_Click () End End Sub
62.
Option Explicit هوأمر يمنع التعامل مع أي متغير ما لم يتم تعريفه مسبقاً ويعطي رسالة خطأ في حالة تم استخدام متغير لم يعرف . الفائدة : في حالة الخطأ الإملائي للمتغير المعرف فإن البرنامج لن يعطي أي خطأ ولن يعمل بالشكل المطلوب .
63.
التكرار / الدوران looping 1- جملة التكرار المحدود For….Next Step num For <variable> start to end statement Next For i=2 to 10 step 2 Print “line:”,i Next Exit for : لإنهاء التكرار قبل الانتهاء
الحل Private SubCommand1_Click() Dim num As Integer Dim fact As Integer Dim i As Integer num = Text1.Text fact = 1 For i = num To 1 Step -1 fact = fact * i Next Text2.Text = fact End Sub
66.
For loop تدريب 13 صممي النموذج التالي بحيث يدخل عدد من الدرجات من خلال Inputbox ويعرضها في مربع نص ويحسب المجموع والمعدل .
67.
الحل Private SubCommand1_Click () Dim n As Integer, i As Integer, mark As Integer, sum As Integer n = InputBox("Enter number of marks ") For i = 1 To n mark = InputBox("enter mark ") Text2.Text = Text2.Text & "mark" & i & mark & vbCrLf sum = sum + mark Next Text4 = sum Text3 = sum / n End Sub Private Sub Command2_Click () End end Sub
68.
التكرار المشروط Dowhile <condition>…..loop Do until<condition>…….loop Do……….loop while <condition> Do ……….loop until <condition> Exit do : لانهاء التكرار قبل الانتهاء ( تحقق الشرط )
69.
تدريب تتبعي التكرارينهل لهما نفس النتيجة؟ Dim I as integer i=5 Do while i<5 Print I i=i+1 loop Dim I as integer i=5 Do Print I i=i+1 Loop while i<=5
70.
While loop تدريب 14 صممي برنامج يقرأ أسماء مجموعة من الطلاب ، تنتهي القراءة بإدخال كلمة " done " او بعدم ادخال اسم الطالب .
71.
الحل Private SubCommand1_Click () Dim na As String Do While na <> "done " na = InputBox("Enter student name”) If na = "" Then Exit Do End If Text1.Text = Text1 & na & vbCrLf Loop End Sub
72.
حل آخر PrivateSub Command1_Click () Dim x As String x = InputBox (" enter ") Do While x <> " done " And x <> "" Text1 . Text = Text1 & x & vbCrLf x = InputBox (" enter ") Loop End Sub
73.
المصفوفات ArrayDim array-name(size) as datatype Dim age(8) as integer Age(7) Age(0)
74.
المصفوفات الديناميكية Dynamic Array Redim Array-name(n ) هي مصفوفات لم يحدد لها حجم لذلك يتم إعادة تحجيم المصفوفة من خلال الأمر :
75.
تدريب 15صممي برنامج يقرأ رواتب 5 موظفين و يحسب الزيادة لهم على النحو التالي : اذا كان الراتب > 15000 يحصل على زيادة 20% اذا كان 10000 =< الراتب =< 15000 يحصل على زيادة 15% اذا كان 5000=< الراتب <10000 يحصل على زيادة 10% اذا كان الراتب < 5000 يحصل على زيادة 0% بحيث يقرأ فقط بالضغط على امر الاضافة و يطبع بالضغط على امر الطباعة
76.
الحل Option Base1 Dim sal(5) As Double, bounce(5) As Double Dim I As Integer Private Sub cmdadd_Click() For I = 1 To Ubound(sal) sal(i) = InputBox("Enter salary") If sal(i) > 15000 Then bounce(i) = sal(i) * 0.2 ElseIf sal(i) >= 10000 And sal(i) <= 15000 Then bounce(i) = sal(i) * 0.15 ElseIf sal(i) >= 5000 And sal(i) < 10000 Then bounce(i) = sal(i) * 0.1 Else bounce(i) = 0 End If Next End Sub Private Sub cmdprint_Click() For I = 1 To Ubound(sal) Text1 = Text1 & "salary: " & sal(i) & vbTab & "Bounce : " & bounce(i) & vbCrLf Next End Sub
77.
module ملف وحداتبرمجية لا يرتبط مع نموذج معين أو أداة تحكم معينه وتستخدم لتعريف المتغيرات والثوابت والبرامج الفرعية.
78.
تدريب-16 صممي نموذجين،الأول يقرأ اسم و درجات طالب في مجموعة من المواد و الثاني يحسب المجموع و المعدل للدرجات .
79.
الحل النموذج الاول: Private Sub Command1_Click () Dim mark() As Single Dim I As Integer n = InputBox(" " ادخل عدد المواد ") ) ReDim mark(n – 1) Text2 = " رقم المادة " & vbTab & " الدرجة " & vbCrLf For I = 0 To Ubound(mark ) mark(i) = InputBox(" ادخل الدرجة ") Text2 = Text2 & I + 1 & vbTab & mark(i) & vbCrLf sum = sum + mark(i ) Next End Sub Private Sub Command2_Click () Form5.Show Hide End Sub النموذج الثاني : Private Sub Command1_Click() End End Sub Private Sub Form_Load() Dim avg As Single Text1 = sum avg = sum / n Text2 = avg End Sub Module: Public n As Integer Public sum As Single
80.
الواجب صممي برنامجلتحويل العملات من ريال إلى دولار أو العكس تحويل درجات الحرارة من مئوي إلى فهرنهايت أو العكس .. كما يحتوي على امر الخروج من التطبيق و عند الضغط عليه يسأل المستخدم اذا كان متأكد انه يريد الخروج من البرنامج .
81.
Dim x AsSingle, y As Single Const temp As Single = 1.8 Const xchg As Single = 3.75 Private Sub cmdC_Click () x = InputBox(" ادخل درجة الحرارة المئوية ", " تحويل درجات الحرارة ") y = (x * temp) + 32 Print درجة الحرارة المئوية " " & x & " م " & " درجة الحرارة الفهرنهايتية " & y & " ف " End Sub Private Sub cmdclear_Click () Cls End Sub Private Sub cmdDollar_Click () x = InputBox(" ادخل المبلغ بالريال "," تحويل العملات ") y = x / xchg Print " المبلغ بالريال " & x & " ر . س " & " المبلغ بالدولار " & y & " $ " End Sub Private Sub cmdF_Click () y = InputBox(" ادخل درجة الحرارة الفهرنهايتية ", " تحويل درجات الحرارة ") x = (y - 32) / temp Print " درجة الحرارة الفهرنهايتية " & y & " ف " & " درجة الحرارة المئوية " & x & م " " End Sub Private Sub cmdRiyal_Click () y = InputBox(" ادخل المبلغ بالدولار "," تحويل العملات ") x = y * xchg Print " المبلغ بالدولار " & y & " $ " & " المبلغ بالريال " & x & " ر . س " End Sub
تدريب 18 قوميبتنفيذ التدريب على الجهاز X=Asc("A") x=chr(65) x=ISNumeric("Hi") اذا كانت : s="How are you" X=len(s) x=left(s,3) x=Mid(s,5,3) X=instr(s,"are") x=replace(s,"you","they")
85.
الدوال الجاهزة PrivateSub Command1_Click () Dim strmsg As String strmsg = WeekdayName ( Weekday ( Date ) , False, vbUseSystemDayOfWeek ) strmsg = strmsg & " is the today " strmsg = strmsg & " I love it " Text1 . Text = strmsg End Sub
86.
الدوال الجاهزة تدريب-19: صممي برنامج يقرأ رقم الموظف ( بحيث لا يزيد عن 10 خانات ) – اسم الموظف ( لا يقبل الفراغ ) - تاريخ التعيين ( من بعد (1/1/2004) ثم يحسب عدد سنوات الخبرة . و يحول الاسم إلى أحرف كبيرة .
87.
Private Sub Command1_Click() If Len(Text1) >10 Then MsgBox "ID mustcontained of 10 digits " ElseIf Len(Text2) = 0 Then MsgBox "you must enter a name " ElseIf Text3 < #1/1/2004# Then MsgBox "the date must be after 2004 " Else Text2 = Ucase(Text2) Text4 = DateDiff(“yyyy", Text3, Now) End If End Sub
88.
DateDiff دالة تطرحتاريخين لتعطي فرق السنوات والأشهر والأيام والساعات والدقائق ...
89.
الاجراءات والدوال Sub& function -private sub sun-name (par1 as integer,par2 as integer) … .. End sub Call subname(par,..) -Private function function-name (par1 as integer,par2 as integer) as integer … .. End function Variable=function-name(par,..)
90.
91.
نتائج البرنامج Localx1 6 using apply Local x1 26 on entering sub1 Local x1 27 on Exit sub1 Local static x1 0 on entering sub Local static x1 61 on Exit sub2 Module x1 0 on entering sub3 Module x1 5 on Exit sub3 Local x1 26 on entering sub1 Local x1 27 on Exit sub1 Local static x1 61 on entering sub2 Local static x1 62 on Exit sub2 Module x1 5 on entering sub3 Module x1 10 on Exit sub3 Local x1 6 At Exit of Apply
92.
الإجراءات والدوال تدريب 17: خاص بـ procedure- function- goto صممي برنامج يدخل الاسم بحيث لايكون كلمة " end " فإذا كان " end " ينتقل البرنامج ليخرج رسالة " see you later " وإذا لم يكن ينادي procedure ( hello ) والتي وظيفتها إخراج رسالة welcome name enterd in our procedure ثم ينادي Function لتجمع العددين المدخلة
93.
الحل Public Subhello(ByVal st As String) MsgBox "Welcom " & st & " in our procedure" End Sub Public Function add(x As Integer, y As Integer) As Integer add = x + y End Function Private Sub Command1_Click() If Text1 = "end" Then GoTo closing Else Call hello(Text1) Text4 = add(Text2, Text3) End closing: MsgBox "see you later" End Sub
94.
التعامل مع مربعاتالحوار والوسائط المتعددة من قائمة project components< يتم اختيار الأدوات التالية :
95.
Cmdialog1.Action=number 1- فتح الملف . 2- حفظ الملف . 3- حفظ اللون . 4- حفظ الخط . 5- خيارات الطباعة التعامل مع مربعات الحوار
96.
تدريب-20 يشغلملفات الصوت التي يتم اختيارها . يحتوي على أداة العنوان يتم تغيير نوع الخط وحجمه ولونه من خلال استدعاء مربع حوار الخط .
97.
الحل Private SubForm_Load() MMControl1.Notify = False MMControl1.Wait = True MMControl1.Shareable = False MMControl1.DeviceType = "waveaudio" End Sub Private Sub Command2_Click() End End sub
Private Sub Command1_Click() WebBrowser1.Navigate (Text1.Text) End Sub Private Sub Form_Load () WebBrowser1.GoHome End Sub Private Sub WebBrowser1_DownloadComplete () Text1.Text = WebBrowser1.LocationURL End Sub
المراجع دورة اقيمتمن قبل مركز التربية والتعليم بالروابي . كتاب فيجوال بيسك 6 د . يحي صبري الحلبي د . محمد بلال الزعبي كتاب الفيجوال بيسك من معهد العالميه