מבוא לתכנות ב windows
DESCRIPTION
מבוא לתכנות ב WINDOWS. ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון. תכנות מונחה אירועים Event-driven programming. הרעיון - התוכנה מחכה לקבלת "אירוע" ( event ) דוגמאות לאירוע לחיצה על כפתור, תזוזה של עכבר, כתיבה בתיבה, לחיצה על enter המתכנת צריך לתכנת מה יקרה לאחר קבלת ה event - PowerPoint PPT PresentationTRANSCRIPT
מבוא לתכנות בWINDOWS
רוזנפלד" אבי ר דריכרדסון" אריאלה ר ד
תכנות מונחה אירועיםEvent-driven programming
(eventלקבלת "אירוע" )הרעיון - התוכנה מחכה •דוגמאות לאירוע•
enterלחיצה על כפתור, תזוזה של עכבר, כתיבה בתיבה, לחיצה על •eventהמתכנת צריך לתכנת מה יקרה לאחר קבלת ה•האירוע למעשה עשוי משני חלקים: •
מקום בתוכנה שבו האירוע מוזנק - נסתר מבחינתנו•מקום בתוכנה שבו האירוע נלכד –בו נכתוב את הקוד לביצוע פונקציונליות •
רצויה
בתכנות ללא אירועים )שראינו עד עכשיו( •המתכנת היה יוצר לולאה שבה היה מזין, מנהל, מסווג ומסדר בעצמו את •
האירועים.
תכנות מונחה אירועים אופייני ליישומים בעלי ממשק משתמש גרפי•(C, ו#NET., JAVA, אבל גם VB)כמו •
VBתכנות בעזרת האובייקטים של
)הטופס(FORMבניית ה •( הרצוייםcontrolsיצירת הטופס עם הבקרים )–יצירת המקום להתחלת האירוע–
מופעלEVENTהוספת הקוד כאשר ה• רגיל, אבל כולל את האובייקטים של VBקוד –
FORMה
VB ב Windowsהוראות ליצירת אפליקציה
• 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
VBבניית אובייקט ב
הטופס
בעת פתיחת הפרויקט החדש מופיע טופס •(Form)
נותנת חלון View/Properties, או על F4לחיצה על –עם המאפיינים של הטופס
ישנה Textמילוי של "משהו" במקום שבו כתוב •את שם הטופס ל "משהו"
ניתן לשחק גם עם גודל הטופס ע"י מתיחה...•ניתן לשנות את צבע הטופס ע"י שינוי המאפיין •
BackColor ל Customובחירת צבע כרצונכם ,
בניית הטופס
מילוי הטופס
(controls ניתן להוסיף לטופס בקרים )פקדים,• )מוחבא בצד(:toolBoxההוספה נעשית ע"י פתיחת ה –
לטופס או לחיצה כפולה בעזרת העכברcontrolגרירת •
controlניתן לשנות את המאפיינים של ה – על מנת name ע"י שינוי controlממומלץ לתת שם משמעותי ל•
להקל על התכנות בהמשך
controlsדוגמאות ל •Buttonכפתור –
ניתן ללחוץ עליו כדי לבצע פעולה•
labelתווית –מיועד להצגה של טקסט•צבע התווית הו כמו צבע הטופס•
Customizingהתאמת התווית - Label
בחירת התווית מתבצעת ע"י לחיצה על התווית •Textשינוי הכיתוב שמופיע עליה ע"י שינוי המאפיין • Backcolorעל מנת לשנות את צבע הרקע של התווית שנו את •על מנת לשנות את צבע הכיתוב של התווית שנו את •
Forecolor הזזת התווית ושינוי הגודל ע"י תפיסה עם העכבר ומשיכה•
בתפריט לשם כךformatניתן גם להיעזר ב •TextAlignמיקום טקסט במרכז ע"י המאפיין •Fontניתן גם לשחק עם הפונט ע"י המאפיין •
• As before, Ctrl-F5 or F5 runs the program
הוספת אובייקטיםוהמאפיינים TOOLBARתעבוד עם ה
controlמאפיינים נוספים של
• .SHOW• .HIDE• .TEXT• .ForeColor = Color.???
הצגת תמונה )והחבאה...( )באתר(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 = TrueEnd SubPrivate 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.TopRightEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click EndEnd Sub
באתר(2דוגמא של טופס )דוגמא
תכנון הפונקציונליות במקרה של אירוע
יש לייצר את קטע הקוד המתאים ע"י לחיצה •controlכפולה על ה
נוצר קוד מתאים למשל:•עבור לחיצת כפתור•
Private Sub Button2_Click(…) Handles Button2.Click
End Sub
לעדכון בעת פתיחת הטופס יש ללחוץ לחיצה כפולה •על הטופס, ואז יוצר הקוד
Private Sub Form1_Load(…) Handles MyBase.Load
End Sub
הקוד מאחורי הטופס
קלט / פלט באתר(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 okEnd Sub
דוגמא של טופס – קלט ופלט
!שימו לב
FORM, קלט = VBב•LABELפלט = •
הקוד מאחורי הטופס
טפסים מיוחדים שכבר מוגדרים לקלט ופלט••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 SubEnd Module
מיוחדים!messageBox, InputBox
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 SubEnd Class
תרגיל
יש ליצור משתנה הקולט סכום כסף. בפלט יש להציג את המספר המינימאלי של המטבעות
המהוות סכום זה.
10למען התרגיל, נניח שיש רק מטבעות של ש"ח, ואגרות.1ש"ח,
ש"ח:34.70לדוגמא
מטבעות 4 ש"ח, 10 מטבעות של 3בדוגמא זו: אג'.70 ש"ח, ו- 1של
?שאלות
איך יראה הטופס?•
מה יהיו החישובים?•
באתר...(4)דוגמא •
פתרון
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 SubEnd Class
events בIFשילוב של תנאי באתר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 SubEnd Class
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 IfEnd Sub
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
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") NextEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Clear()End Sub
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) NextEnd SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ListBox1.Items.Clear()End SubPrivate 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) NextEnd Sub
הוספת תפריטMenu Strip
משחק ניחוש באתר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 SubEnd Class
סיכוםבתכנות אירועים, יש צורך לשאול:
)ומה יש בטופס כדי לקלוט אותו(מה יהיה האירוע•מה יהיה התוצאה )ואיפה זה יופיע(•מה הקוד מאחורי התוצאה•
סוגי אובייקים:•LABELלפלט •TextBoxלקלט או פלט • MesageBox , ListBoxלפלט •InputBoxלקלט כפתור להפעיל אירוע•