Windows
This presentation is the property of its rightful owner.
Sponsored Links
1 / 32

מבוא לתכנות ב WINDOWS PowerPoint PPT Presentation


  • 38 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

מבוא לתכנות ב 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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Windows

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

ד"ר אבי רוזנפלד

ד"ר אריאלה ריכרדסון


Event driven programming

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

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

  • דוגמאות לאירוע

    • לחיצה על כפתור, תזוזה של עכבר, כתיבה בתיבה, לחיצה על enter

  • המתכנת צריך לתכנת מה יקרה לאחר קבלת הevent

  • האירוע למעשה עשוי משני חלקים:

    • מקום בתוכנה שבו האירוע מוזנק - נסתר מבחינתנו

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

  • בתכנות ללא אירועים (שראינו עד עכשיו)

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

  • תכנות מונחה אירועים אופייני ליישומים בעלי ממשק משתמש גרפי

    • (כמו VB, אבל גם NET., JAVA, ו#C)


Windows

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

  • בניית ה FORM (הטופס)

    • יצירת הטופס עם הבקרים (controls) הרצויים

    • יצירת המקום להתחלת האירוע

  • הוספת הקוד כאשר הEVENT מופעל

    • קוד VB רגיל, אבל כולל את האובייקטים של הFORM


Windows vb

הוראות ליצירת אפליקציה 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


Windows

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


Windows

הטופס

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

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

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

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

  • ניתן לשנות את צבע הטופס ע"י שינוי המאפיין BackColor ל Custom, ובחירת צבע כרצונכם


Windows

בניית הטופס


Windows

מילוי הטופס

  • ניתן להוסיף לטופס בקרים (פקדים, controls)

    • ההוספה נעשית ע"י פתיחת ה toolBox (מוחבא בצד):

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

    • ניתן לשנות את המאפיינים של ה control

      • ממומלץ לתת שם משמעותי לcontrol ע"י שינוי name על מנת להקל על התכנות בהמשך

  • דוגמאות ל controls

    • כפתור Button

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

    • תווית label

      • מיועד להצגה של טקסט

      • צבע התווית הו כמו צבע הטופס


Customizing label

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

  • בחירת התווית מתבצעת ע"י לחיצה על התווית

  • שינוי הכיתוב שמופיע עליה ע"י שינוי המאפיין Text

  • על מנת לשנות את צבע הרקע של התווית שנו את Backcolor

  • על מנת לשנות את צבע הכיתוב של התווית שנו את Forecolor

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

    • ניתן גם להיעזר ב format בתפריט לשם כך

  • מיקום טקסט במרכז ע"י המאפיין TextAlign

  • ניתן גם לשחק עם הפונט ע"י המאפיין Font

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


Toolbar

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


Control

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

  • .SHOW

  • .HIDE

  • .TEXT

  • .ForeColor = Color.???


Windows

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


Windows

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


Windows

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

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

  • נוצר קוד מתאים למשל:

    • עבור לחיצת כפתור

      Private Sub Button2_Click(…) Handles Button2.Click

      End Sub

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

      Private Sub Form1_Load(…) Handles MyBase.Load

      End Sub


Windows

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


Windows

קלט / פלט מחשבון לחישוב שטח מעגל(דוגמא 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


Windows

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


Windows

שימו לב!

  • בVB, קלט = FORM

  • פלט = LABEL


Windows

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


Messagebox inputbox

מיוחדים!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


Messagebox

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


Windows

תרגיל

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

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

לדוגמא 34.70 ש"ח:

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


Windows

שאלות?

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

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

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


Windows

פתרון

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


If events 5

שילוב של תנאי 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


Events 6

הוספת לוגיקה ב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


Messagebox 7

דוגמא נוספת - 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


Listbox 8

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


Listbox

לולאות עם 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


Menu strip

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


Windows

משחק ניחושדוגמא 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


Windows

סיכום

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

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

  • מה יהיה התוצאה (ואיפה זה יופיע)

  • מה הקוד מאחורי התוצאה

    סוגי אובייקים:

  • LABEL לפלט

  • TextBox לקלט או פלט

  • MesageBox , ListBox לפלט

  • InputBox לקלט

  • כפתור להפעיל אירוע


  • Login