32
בבבב בבבבבב בWINDOWS ב"ב בבב בבבבבבב ב"ב בבבבבב בבבבבבבב

מבוא לתכנות ב WINDOWS

Embed Size (px)

DESCRIPTION

מבוא לתכנות ב WINDOWS. ד"ר אבי רוזנפלד ד"ר אריאלה ריכרדסון. תכנות מונחה אירועים Event-driven programming. הרעיון - התוכנה מחכה לקבלת "אירוע" ( event ) דוגמאות לאירוע לחיצה על כפתור, תזוזה של עכבר, כתיבה בתיבה, לחיצה על enter המתכנת צריך לתכנת מה יקרה לאחר קבלת ה event - PowerPoint PPT Presentation

Citation preview

Page 1: מבוא לתכנות ב WINDOWS

מבוא לתכנות בWINDOWS

רוזנפלד" אבי ר דריכרדסון" אריאלה ר ד

Page 2: מבוא לתכנות ב WINDOWS

תכנות מונחה אירועיםEvent-driven programming

(eventלקבלת "אירוע" )הרעיון - התוכנה מחכה •דוגמאות לאירוע•

enterלחיצה על כפתור, תזוזה של עכבר, כתיבה בתיבה, לחיצה על •eventהמתכנת צריך לתכנת מה יקרה לאחר קבלת ה•האירוע למעשה עשוי משני חלקים: •

מקום בתוכנה שבו האירוע מוזנק - נסתר מבחינתנו•מקום בתוכנה שבו האירוע נלכד –בו נכתוב את הקוד לביצוע פונקציונליות •

רצויה

בתכנות ללא אירועים )שראינו עד עכשיו( •המתכנת היה יוצר לולאה שבה היה מזין, מנהל, מסווג ומסדר בעצמו את •

האירועים.

תכנות מונחה אירועים אופייני ליישומים בעלי ממשק משתמש גרפי•(C, ו#NET., JAVA, אבל גם VB)כמו •

Page 3: מבוא לתכנות ב WINDOWS

VBתכנות בעזרת האובייקטים של

)הטופס(FORMבניית ה •( הרצוייםcontrolsיצירת הטופס עם הבקרים )–יצירת המקום להתחלת האירוע–

מופעלEVENTהוספת הקוד כאשר ה• רגיל, אבל כולל את האובייקטים של VBקוד –

FORMה

Page 4: מבוא לתכנות ב WINDOWS

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

Page 5: מבוא לתכנות ב WINDOWS

VBבניית אובייקט ב

Page 6: מבוא לתכנות ב WINDOWS

הטופס

בעת פתיחת הפרויקט החדש מופיע טופס •(Form)

נותנת חלון View/Properties, או על F4לחיצה על –עם המאפיינים של הטופס

ישנה Textמילוי של "משהו" במקום שבו כתוב •את שם הטופס ל "משהו"

ניתן לשחק גם עם גודל הטופס ע"י מתיחה...•ניתן לשנות את צבע הטופס ע"י שינוי המאפיין •

BackColor ל Customובחירת צבע כרצונכם ,

Page 7: מבוא לתכנות ב WINDOWS

בניית הטופס

Page 8: מבוא לתכנות ב WINDOWS

מילוי הטופס

(controls ניתן להוסיף לטופס בקרים )פקדים,• )מוחבא בצד(:toolBoxההוספה נעשית ע"י פתיחת ה –

לטופס או לחיצה כפולה בעזרת העכברcontrolגרירת •

controlניתן לשנות את המאפיינים של ה – על מנת name ע"י שינוי controlממומלץ לתת שם משמעותי ל•

להקל על התכנות בהמשך

controlsדוגמאות ל •Buttonכפתור –

ניתן ללחוץ עליו כדי לבצע פעולה•

labelתווית –מיועד להצגה של טקסט•צבע התווית הו כמו צבע הטופס•

Page 9: מבוא לתכנות ב WINDOWS

Customizingהתאמת התווית - Label

בחירת התווית מתבצעת ע"י לחיצה על התווית •Textשינוי הכיתוב שמופיע עליה ע"י שינוי המאפיין • Backcolorעל מנת לשנות את צבע הרקע של התווית שנו את •על מנת לשנות את צבע הכיתוב של התווית שנו את •

Forecolor הזזת התווית ושינוי הגודל ע"י תפיסה עם העכבר ומשיכה•

בתפריט לשם כךformatניתן גם להיעזר ב •TextAlignמיקום טקסט במרכז ע"י המאפיין •Fontניתן גם לשחק עם הפונט ע"י המאפיין •

• As before, Ctrl-F5 or F5 runs the program

Page 10: מבוא לתכנות ב WINDOWS

הוספת אובייקטיםוהמאפיינים TOOLBARתעבוד עם ה

Page 11: מבוא לתכנות ב WINDOWS

controlמאפיינים נוספים של

• .SHOW• .HIDE• .TEXT• .ForeColor = Color.???

Page 12: מבוא לתכנות ב WINDOWS

הצגת תמונה )והחבאה...( )באתר(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

Page 13: מבוא לתכנות ב WINDOWS

באתר(2דוגמא של טופס )דוגמא

Page 14: מבוא לתכנות ב WINDOWS

תכנון הפונקציונליות במקרה של אירוע

יש לייצר את קטע הקוד המתאים ע"י לחיצה •controlכפולה על ה

נוצר קוד מתאים למשל:•עבור לחיצת כפתור•

Private Sub Button2_Click(…) Handles Button2.Click

End Sub

לעדכון בעת פתיחת הטופס יש ללחוץ לחיצה כפולה •על הטופס, ואז יוצר הקוד

Private Sub Form1_Load(…) Handles MyBase.Load

End Sub

Page 15: מבוא לתכנות ב WINDOWS

הקוד מאחורי הטופס

Page 16: מבוא לתכנות ב WINDOWS

קלט / פלט באתר(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

Page 17: מבוא לתכנות ב WINDOWS

דוגמא של טופס – קלט ופלט

Page 18: מבוא לתכנות ב WINDOWS

!שימו לב

FORM, קלט = VBב•LABELפלט = •

Page 19: מבוא לתכנות ב WINDOWS

הקוד מאחורי הטופס

Page 20: מבוא לתכנות ב WINDOWS

טפסים מיוחדים שכבר מוגדרים לקלט ופלט••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

Page 21: מבוא לתכנות ב WINDOWS

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

Page 22: מבוא לתכנות ב WINDOWS

תרגיל

יש ליצור משתנה הקולט סכום כסף. בפלט יש להציג את המספר המינימאלי של המטבעות

המהוות סכום זה.

10למען התרגיל, נניח שיש רק מטבעות של ש"ח, ואגרות.1ש"ח,

ש"ח:34.70לדוגמא

מטבעות 4 ש"ח, 10 מטבעות של 3בדוגמא זו: אג'.70 ש"ח, ו- 1של

Page 23: מבוא לתכנות ב WINDOWS

?שאלות

איך יראה הטופס?•

מה יהיו החישובים?•

באתר...(4)דוגמא •

Page 24: מבוא לתכנות ב WINDOWS

פתרון

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

Page 25: מבוא לתכנות ב WINDOWS

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

Page 26: מבוא לתכנות ב WINDOWS

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

Page 27: מבוא לתכנות ב WINDOWS

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

Page 28: מבוא לתכנות ב WINDOWS

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

Page 29: מבוא לתכנות ב WINDOWS

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

Page 30: מבוא לתכנות ב WINDOWS

הוספת תפריטMenu Strip

Page 31: מבוא לתכנות ב WINDOWS

משחק ניחוש באתר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

Page 32: מבוא לתכנות ב WINDOWS

סיכוםבתכנות אירועים, יש צורך לשאול:

)ומה יש בטופס כדי לקלוט אותו(מה יהיה האירוע•מה יהיה התוצאה )ואיפה זה יופיע(•מה הקוד מאחורי התוצאה•

סוגי אובייקים:•LABELלפלט •TextBoxלקלט או פלט • MesageBox , ListBoxלפלט •InputBoxלקלט כפתור להפעיל אירוע•