1 / 32

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

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

Télécharger la présentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 (באתר) PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click PictureBox1.Visible = True Label1.Text = "Picture On!" Label1.TextAlign = ContentAlignment.BottomLeft Off.Visible = True EndSub PrivateSubOff_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) HandlesOff.Click PictureBox1.Visible = False Label1.Visible = True Label1.Text = "Picture OFF!" ' Label1.TextAlign = ContentAlignment.TopRight EndSub PrivateSub Button2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click End EndSub

  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 באתר) PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click ' In this program we calculate the volume of a ' cylinder by the formula PI * r ^2 * h Dim r AsSingle, h AsSingle, v AsSingle Const pi = 3.14151926536 r = TextBox1.Text h = TextBox2.Text v = pi * r ^ 2 * h Label4.Text = Format(v, "#.##") 'Label4.Text = v Also ok EndSub

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

  18. שימו לב! • בVB, קלט = FORM • פלט = LABEL

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

  20. מיוחדים!messageBox, InputBox • טפסים מיוחדים שכבר מוגדרים לקלט ופלט • messageBox להדפסת הודעה • InputBox לקבלת קלט • ניתן להשתמש בתוך main או בעת טיפול באירוע(שקףהבא) ModuleModule1 Sub Main() MsgBox("This goes out") Dim x AsInteger = InputBox("please enter a number") MsgBox("You typed " & x) EndSub EndModule

  21. MESSAGEBOX עם קלט PublicClassForm1 PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click DimexitaAsString exita = MsgBox("Exit?", vbYesNo) Ifexita = vbYesThen End EndIf EndSub EndClass

  22. תרגיל יש ליצור משתנה הקולט סכום כסף. בפלט יש להציג את המספר המינימאלי של המטבעות המהוות סכום זה. למען התרגיל, נניח שיש רק מטבעות של 10 ש"ח, 1 ש"ח, ואגרות. לדוגמא 34.70 ש"ח: בדוגמא זו: 3 מטבעות של 10 ש"ח, 4 מטבעות של 1 ש"ח, ו- 70 אג'.

  23. שאלות? • איך יראה הטופס? • מה יהיו החישובים? • (דוגמא 4 באתר...)

  24. פתרון PublicClassForm1 PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim shekel AsDouble = 0 Dim whole, tens, ones AsInteger 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, "##") EndSub EndClass

  25. שילוב של תנאי IF בevents דוגמא 5 באתר PublicClassForm1 Dim counter AsInteger = 0 PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click counter += 1 If TextBox1.Text = "Avi"Then MsgBox("You got it -- " & counter) End Else MsgBox("Guess Again!") TextBox1.Clear() EndIf EndSub EndClass

  26. הוספת לוגיקה בevents דוגמא 6 באתר PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.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() EndIf EndSub

  27. דוגמא נוספת - MessageBoxדוגמא 7 באתר PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim output AsString = "" Fori = 1 To 10 output = output + "Hi!" output += vbNewLine Next MsgBox(output) EndSub

  28. ListBoxדוגמא 8 באתר PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim output AsString = "" Fori = 1 To 10 ListBox1.Items.Add("Hi") Next EndSub PrivateSub Button2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click ListBox1.Items.Clear() EndSub

  29. לולאות עם LISTBOX PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click Dim output AsString Fori = 1 To 10 output = "" For j = 1 To 10 output += "*" Next ListBox1.Items.Add(output) Next EndSub PrivateSub Button2_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button2.Click ListBox1.Items.Clear() EndSub PrivateSub Button3_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button3.Click Dim output AsString Fori = 1 To 10 output = "" For j = 1 Toi output += "*" Next ListBox1.Items.Add(output) Next EndSub

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

  31. משחק ניחושדוגמא 9 באתר PublicClassForm1 DimRandomClassAsNewRandom() Dim num AsInteger = RandomClass.Next(1, 100) Dim counter AsInteger = 0 PrivateSub Button1_Click(ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles Button1.Click counter += 1 Dim guess AsInteger = Val(TextBox1.Text) 'Or: Dim guess As Integer = TextBox1.Text If guess = numThen MsgBox("You got it!") End EndIf TextBox2.Text = num EndSub EndClass

  32. סיכום בתכנות אירועים, יש צורך לשאול: • מה יהיה האירוע(ומה יש בטופס כדי לקלוט אותו) • מה יהיה התוצאה (ואיפה זה יופיע) • מה הקוד מאחורי התוצאה סוגי אובייקים: • LABEL לפלט • TextBox לקלט או פלט • MesageBox , ListBox לפלט • InputBox לקלט • כפתור להפעיל אירוע

More Related