Download presentation
Presentation is loading. Please wait.
Published byBranden Glade Modified over 9 years ago
1
מבוא לתכנות ב WINDOWS ד " ר אבי רוזנפלד ד " ר אריאלה ריכרדסון
2
תכנות מונחה אירועים Event-driven programming הרעיון - התוכנה מחכה לקבלת " אירוע " (event) דוגמאות לאירוע לחיצה על כפתור, תזוזה של עכבר, כתיבה בתיבה, לחיצה על enter המתכנת צריך לתכנת מה יקרה לאחר קבלת ה event האירוע למעשה עשוי משני חלקים : מקום בתוכנה שבו האירוע מוזנק - נסתר מבחינתנו מקום בתוכנה שבו האירוע נלכד – בו נכתוב את הקוד לביצוע פונקציונליות רצויה בתכנות ללא אירועים ( שראינו עד עכשיו ) המתכנת היה יוצר לולאה שבה היה מזין, מנהל, מסווג ומסדר בעצמו את האירועים. תכנות מונחה אירועים אופייני ליישומים בעלי ממשק משתמש גרפי ( כמו VB, אבל גם NET., JAVA, ו #C)
3
תכנות בעזרת האובייקטים של VB בניית ה FORM ( הטופס ) –יצירת הטופס עם הבקרים (controls) הרצויים –יצירת המקום להתחלת האירוע הוספת הקוד כאשר ה EVENT מופעל –קוד VB רגיל, אבל כולל את האובייקטים של ה FORM
4
הוראות ליצירת אפליקציה Windows ב VB After pushing Start, choose Microsoft Visual Studio.Net Press New Project Button Left Pane – Choose Visual Basic Projects Right Pane – Choose Windows Application Fill in name of folder where solutions will be kept and press OK
5
בניית אובייקט ב VB
6
הטופס בעת פתיחת הפרויקט החדש מופיע טופס (Form) –לחיצה על F4, או על View/Properties נותנת חלון עם המאפיינים של הטופס מילוי של " משהו " במקום שבו כתוב Text ישנה את שם הטופס ל " משהו " ניתן לשחק גם עם גודל הטופס ע " י מתיחה... ניתן לשנות את צבע הטופס ע " י שינוי המאפיין BackColor ל Custom, ובחירת צבע כרצונכם
7
בניית הטופס
8
מילוי הטופס ניתן להוסיף לטופס בקרים ( פקדים, controls) –ההוספה נעשית ע " י פתיחת ה toolBox ( מוחבא בצד ): גרירת control לטופס או לחיצה כפולה בעזרת העכבר –ניתן לשנות את המאפיינים של ה control ממומלץ לתת שם משמעותי ל control ע " י שינוי name על מנת להקל על התכנות בהמשך דוגמאות ל controls –כפתור Button ניתן ללחוץ עליו כדי לבצע פעולה –תווית label מיועד להצגה של טקסט צבע התווית הו כמו צבע הטופס
9
התאמת התווית - Customizing Label בחירת התווית מתבצעת ע " י לחיצה על התווית שינוי הכיתוב שמופיע עליה ע " י שינוי המאפיין Text על מנת לשנות את צבע הרקע של התווית שנו את Backcolor על מנת לשנות את צבע הכיתוב של התווית שנו את Forecolor הזזת התווית ושינוי הגודל ע " י תפיסה עם העכבר ומשיכה ניתן גם להיעזר ב format בתפריט לשם כך מיקום טקסט במרכז ע " י המאפיין TextAlign ניתן גם לשחק עם הפונט ע " י המאפיין Font As before, Ctrl-F5 or F5 runs the program
10
הוספת אובייקטים תעבוד עם ה TOOLBAR והמאפיינים
11
מאפיינים נוספים של control.SHOW.HIDE.TEXT.ForeColor = Color.???
12
הצגת תמונה ( והחבאה...) דוגמא 1 ( באתר ) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click PictureBox1.Visible = True Label1.Text = "Picture On!" Label1.TextAlign = ContentAlignment.BottomLeft Off.Visible = True End Sub Private Sub Off_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Off.Click PictureBox1.Visible = False Label1.Visible = True Label1.Text = "Picture OFF!" ' Label1.TextAlign = ContentAlignment.TopRight End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click End End Sub
13
דוגמא של טופס ( דוגמא 2 באתר )
14
תכנון הפונקציונליות במקרה של אירוע יש לייצר את קטע הקוד המתאים ע " י לחיצה כפולה על ה control נוצר קוד מתאים למשל : עבור לחיצת כפתור Private Sub Button2_Click(…) Handles Button2.Click End Sub לעדכון בעת פתיחת הטופס יש ללחוץ לחיצה כפולה על הטופס, ואז יוצר הקוד Private Sub Form1_Load(…) Handles MyBase.Load End Sub
15
הקוד מאחורי הטופס
16
קלט / פלט מחשבון לחישוב שטח מעגל ( דוגמא 3 באתר ) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' In this program we calculate the volume of a ' cylinder by the formula PI * r ^2 * h Dim r As Single, h As Single, v As Single Const pi = 3.14151926536 r = TextBox1.Text h = TextBox2.Text v = pi * r ^ 2 * h Label4.Text = Format(v, "#.##") 'Label4.Text = v Also ok End Sub
17
דוגמא של טופס – קלט ופלט
18
שימו לב ! ב VB, קלט = FORM פלט = LABEL
19
הקוד מאחורי הטופס
20
טפסים מיוחדים שכבר מוגדרים לקלט ופלט messageBox להדפסת הודעה InputBox לקבלת קלט ניתן להשתמש בתוך main או בעת טיפול באירוע ( שקף הבא ) Module Module1 Sub Main() MsgBox("This goes out") Dim x As Integer = InputBox("please enter a number") MsgBox("You typed " & x) End Sub End Module מיוחדים ! messageBox, InputBox
21
MESSAGEBOX עם קלט Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim exita As String exita = MsgBox("Exit?", vbYesNo) If exita = vbYes Then End End If End Sub End Class
22
תרגיל יש ליצור משתנה הקולט סכום כסף. בפלט יש להציג את המספר המינימאלי של המטבעות המהוות סכום זה. למען התרגיל, נניח שיש רק מטבעות של 10 ש " ח, 1 ש " ח, ואגרות. לדוגמא 34.70 ש " ח : בדוגמא זו : 3 מטבעות של 10 ש " ח, 4 מטבעות של 1 ש " ח, ו - 70 אג '.
23
שאלות ? איך יראה הטופס ? מה יהיו החישובים ? ( דוגמא 4 באתר...)
24
פתרון Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim shekel As Double = 0 Dim whole, tens, ones As Integer shekel = TextBox1.Text whole = Math.Floor(shekel) tens = whole \ 10 ones = whole Mod 10 TextBox2.Text = tens TextBox3.Text = ones TextBox4.Text = Format((shekel - whole) * 100, "##") End Sub End Class
25
שילוב של תנאי IF ב events דוגמא 5 באתר Public Class Form1 Dim counter As Integer = 0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click counter += 1 If TextBox1.Text = "Avi" Then MsgBox("You got it -- " & counter) End Else MsgBox("Guess Again!") TextBox1.Clear() End If End Sub End Class
26
הוספת לוגיקה ב events דוגמא 6 באתר Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text = "Avi" And TextBox2.Text = "Bob" Then MsgBox("Good") End ElseIf TextBox1.Text <> "Avi" And TextBox2.Text <> "Bob" Then MsgBox("Guess Again for Both!") TextBox1.Clear() TextBox2.Clear() ElseIf TextBox2.Text <> "Bob" Then MsgBox("Guess Again for Box 2!") TextBox2.Clear() Else MsgBox("Guess Again for Box 1!") TextBox1.Clear() End If End Sub
27
דוגמא נוספת - MessageBox דוגמא 7 באתר Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim output As String = "" For i = 1 To 10 output = output + "Hi!" output += vbNewLine Next MsgBox(output) End Sub
28
ListBox דוגמא 8 באתר Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim output As String = "" For i = 1 To 10 ListBox1.Items.Add("Hi") Next End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Clear() End Sub
29
לולאות עם LISTBOX Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim output As String For i = 1 To 10 output = "" For j = 1 To 10 output += "*" Next ListBox1.Items.Add(output) Next End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Clear() End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim output As String For i = 1 To 10 output = "" For j = 1 To i output += "*" Next ListBox1.Items.Add(output) Next End Sub
30
הוספת תפריט Menu Strip
31
משחק ניחוש דוגמא 9 באתר Public Class Form1 Dim RandomClass As New Random() Dim num As Integer = RandomClass.Next(1, 100) Dim counter As Integer = 0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click counter += 1 Dim guess As Integer = Val(TextBox1.Text) 'Or: Dim guess As Integer = TextBox1.Text If guess = num Then MsgBox("You got it!") End End If TextBox2.Text = num End Sub End Class
32
סיכום בתכנות אירועים, יש צורך לשאול : מה יהיה האירוע ( ומה יש בטופס כדי לקלוט אותו ) מה יהיה התוצאה ( ואיפה זה יופיע ) מה הקוד מאחורי התוצאה סוגי אובייקים : LABEL לפלט TextBox לקלט או פלט MesageBox, ListBox לפלט InputBox לקלט כפתור להפעיל אירוע
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.