43
בבבב בבבבבב בWINDOWS ב"ב בבב בבבבבבב ב"ב בבבבבב בבבבבבבב

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

  • Upload
    janae

  • View
    51

  • Download
    0

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ניתן גם לשחק עם הפונט ע"י המאפיין •

F5 או Ctrl-F5להרצת התוכנית )כמו תמיד( •

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לקלט כפתור להפעיל אירוע•

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

RadioBox (radioButton)

רק אופציה אחת מסומנת ברגע נתון•בכל טופס–או בכל קבוצה–

GroupBoxניתן להקיף כמה כפתורים בעזרת •Trueאופציה מסומנת ערכה –

CHANGE בין שני סוגי EVENTיש צורך להבחין ב•זה שמסמן את הכפתור–זה שמנקה את הכפתור–

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

לכפתור רדיו )הצבעה( דוגמא(vote.exe)Private Sub RadioButton1_CheckedChanged(ByVal sender As

System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged If RadioButton1.Checked = True Then MsgBox("You voted " & RadioButton1.Text) End IfEnd SubPrivate Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged If RadioButton3.Checked = True Then MsgBox("You voted " & RadioButton3.Text) End IfEnd SubPrivate Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged If RadioButton2.Checked = True Then MsgBox("You voted " & RadioButton2.Text) End IfEnd Sub

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

CheckBox

כמה אופציות יכולות להיות מסומנת ברגע נתון•Trueאופציה מסומנת ערכה –

CHANGE בין שני סוגי EVENTיש צורך להבחין ב•זה שמסמן את הכפתור–זה שמנקה את הכפתור–

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

דוגמאDim Total As Integer = 0Dim value1 As Integer = 10Dim value2 As Integer = 5Dim value3 As Integer = 20Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged If (CheckBox1.Checked = True) Then Total += value1 Else Total -= value1 End If TextBox1.Text = Val(Total)End SubPrivate Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox2.CheckedChanged If (CheckBox2.Checked = True) Then Total += value2 End If TextBox1.Text = Val(Total)End SubPrivate Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox3.CheckedChanged If (CheckBox3.Checked = True) Then Total += value3 End If TextBox1.Text = Val(Total)End Sub

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

11הכנה לתרגיל

כפתורים שכל 2בתוך הטופס הראשון תבנה • טפסים(3כפתור פותח עוד טופס )סה"כ

תבנה את שני הטפסים הנוספים. כל טופס •( מהמשתמשTEXTBOXמקבל מספר )מ

2הטופס המקורי יראה את הסכום של •המספרים

דוגמא באתר!•

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

איך בונים כמה טפסים

MODULE בGLOBALמגדירים משתנים •מיצרים את הטפסים•מכניסים את המידע•

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

?איך בונים כמה טפסים

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

טופס ראשיPublic Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.Show() End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Form3.Show() End SubEnd Class

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

טופס שניPublic Class Form2 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

...מה שרוצים לעשות בלחיצה על הכפתור(?מה רוצים)

End SubEnd Class

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

?MODULEאיך בונים את ה

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

MODULEבתוך הModule Module1

כאן נגדיר משתנים "גלובלים" חשוב להגדיר אותם

public!!!למשל:

Public x As Integer = 0

ואז אפשר להשתמש במשתנים הללו בכל הטפסים האחריםEnd Module