PracticU

פרויקט מעשי ב-#C - תוכנת צייר - חלק 6

בלי כתוביותעם כתוביות
PracticU › פרויקט מעשי ב-#C - תוכנת צייר › פרויקט מעשי ב-#C - תוכנת צייר - חלק 6
מילון מושגים:
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.
טופס - אזור בממשק שבו המשתמש מזין נתונים בשדות ושולח אותם, למשל טופס הרשמה או התחברות.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.
Visual Studio - סביבת פיתוח משולבת (IDE) של מיקרוסופט לכתיבה, ניפוי והרצה של קוד, בעיקר בשפות .NET.

פרויקט מעשי ב-#C - תוכנת צייר - חלק 6
בשיעור הזה לומדים מה הפרמטר e בפונקציות האירועים של הציור, מאיפה הוא מגיע, ומדוע מערכת ההפעלה היא שקוראת לפונקציות האלה ולא הסביבה הפיתוח.
השלבים העיקריים
1. הפרמטר e: באירועי MouseDown, MouseMove ו-MouseUp מקבלים פרמטר מסוג MouseEventArgs. הפרמטר sender מציין מי שלח את האירוע.
2. מה יש בתוך e: השדות שמוצגים הם X ו-Y של העכבר, Button שמזהה איזה כפתור לחוץ, Clicks שסופר את מספר הלחיצות, ו-Location. Go to Definition על שם הטיפוס מראה את ההסבר המלא.
3. מיקום העכבר: X ו-Y מתחילים בפינה השמאלית העליונה של האזור הלקוח של הטופס, ולא בפינה של המסך. לכן הערכים משתנים כשהטופס זז.
4. הדפסה לחלון Output: Console.WriteLine בתוכנת WinForms מדפיס לחלון Output (Ctrl+Alt+O). השורה הראשונה שמודפסת היא השם המלא של הטיפוס.
5. תווית שמציגה קואורדינטות: אותו ערך מוצג בתווית בעזרת string.Format, והתווית מתעדכנת בכל תנועה של העכבר.
6. מי קורא לפונקציה: מערכת ההפעלה היא שקוראת לפונקציה Main, ובתוך לולאה היא שולחת לטופס את האירועים הרלוונטיים. Visual Studio רק מבקש ממערכת ההפעלה להריץ את התוכנה.
שימו לב
- Call Stack (Ctrl+Alt+C) מראה מי קרא למי. זה עוזר להבין איך הקוד שלנו מופעל ממערכת ההפעלה.
- חלון ה-Output מוגבל לטקסט בלבד, ולכן מתאים לבדיקה ולא להצגה למשתמש.
בסיום השיעור התלמיד יודע לקרוא את הערכים שנמצאים באירוע, לבדוק אותם בחלון Output ולהבין את הקשר בין מערכת ההפעלה לקוד שלו.
השיעור הבא בקורס: פרויקט מעשי ב-#C - תוכנת צייר - חלק 7

פרקי ההרצאה: פרויקט מעשי ב-#C - תוכנת צייר - חלק 6

  1. 00:00

    מטרה: הסבר על הפרמטר e בציור

  2. 00:44

    טיפוס הפרמטר MouseEventArgs

  3. 02:22

    פתיחת הגדרת MouseEventArgs בקוד המקור

  4. 04:21

    שדות המחלקה Button, Clicks ו-Location

  5. 05:15

    שימוש ב-e.X ו-e.Y בעכבר

  6. 06:30

    אירוע MouseMove נשלח שוב ושוב

  7. 07:09

    הדפסה ל-Output לבדיקת הערכים

  8. 08:17

    פתיחת חלון Output בקיצור מקלדת

תמלול ההרצאה: פרויקט מעשי ב-#C - תוכנת צייר - חלק 6

הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:06

    התבקשתי להסביר משהו מההרצאה, אני אכנס לפרופרטיז שלו, למה הוא כזה איטי? נורא איטי, אני לא יודע למה אני אגרור את זה לכאן. נלך לאירועים של הפרופרטיז, ויש לנו פה אירוע mouse down ואירוע mouse move וmouse up. בואו נלך ל-mouse down.

  2. 00:32

    אוקיי, אז ב-mouse down, ואני רואה שגם ב-mouse up וגם ב-mouse move, אנחנו תמיד מקבלים את e מסוג mouseEventOrgs.

  3. 00:44

    e הוא פרמטר, זה שם הפרמטר, וmouseEventOrgs זה הטיפוס, כמו שכאן, sender זה הפרמטר, והוא מטיפוס Object. פונקציה פורום אחד לא מקבלת פרמטרים, ובואו נראה מה יש פה, אה, זה כל הפונקציות, הבנתי.

  4. 01:05

    בקיצור, אז התבקשתי להסביר מה זה ה-e הזה. מה זה ה-e הזה? אז התבקשתי להסביר, אוקיי, זה ממשיך. אז התבקשתי להסביר מה זה בעצם Mouse, הוויז'ל סטודיו תקוע?

  5. 01:46

    תקוע. לא מגיב. בר ימני הוא לא מגיב, הוויז'ל סטודיו כן מגיב. אקדמיה לא מגיבה. טוב, בינתיים עם הקליטה, אבל היא לא מגיבה לכלום.

  6. 02:22

    בסדר. אז התבקשתי להסביר מה זה Mouse Event Args E. קודם כל E הוא מסוג Mouse Event Args. מה זה אבל בעצם Mouse Event Args?

  7. 02:33

    קודם כל אפשר לרחף מעליו ולראות שהוא אומר משהו הוא אומר Class System Windows Forms Mouse Event Orange Provides Data for System Windows Forms Control Mouse Up System Windows Forms Control Mouse Down הנה האקדמיה חזרה אלינו והיא שוב תקועה, נורא מוזר

  8. 02:56

    טוב, אז דבר ראשון כדי להבין מה זה Mouse Event, אה רצינו להמשיך לקרוא בקיצור, בוא נעשה על זה על Mouse Event Orange, זה חבר ימני וgo to definition ואנחנו מגיעים לקובץ mouse event לא מראה לי פה את שם אלא נעשה על זה קליק ונלך פה לפרופרטיז לא מראה לי את הפרופרטיז של הקובץ עכברי מניע לקובץ open containing folder בקיצור יש פה איזה קובץ system windows

  9. 03:34

    forms mouse event arg.cs אוקיי זה הקובץ הזה ובקובץ הזה יש פה את mouse event args שיורש מ-event args וכאן יש את ההסבר שזה עתה קראנו. אז מה הוא אומר? הוא אומר שהמיוס איבנט אורגס provides data for the mouse up.

  10. 03:59

    המיוס איבנט אורגס נותן שירותי דאטה עבור אירוע mouse up, עבור אירוע mouse down ועבור אירוע mouse move, האירועים.

  11. 04:15

    כמו אצלנו, אצלנו יש שלושה אירועים mouse down, ובשלושתם אנחנו באמת מקבלים Mouse Event Orgs ופה הוא מראה לנו בצורה מאוד נחמדה של Mouse Event Orgs קודם כל הוא יורש מ-Event Orgs שאנחנו עדיין לא יודעים בשלב זה כנראה מה זה ירושה עוד נלמד את זה בהמשך ואנחנו רואים פה את הדבר הזה זה קונסטרקטור עוד נלמד על

  12. 04:44

    זה בהמשך ויש פה יש פה שדה Mouse Buttons סליחה, שדה בטן מסוג מאוס בטן, ושדה קליקס מסוג אינט, ושדה לוקיישן, ושדה איקס. בקיצור, יש פה מחלקה, מחלקת Mouse Event Arcs, אנחנו עוד נלמד בהמשך מה זה קלאס ומה זה מחלקה, אבל אנחנו כבר עכשיו יכולים להתחיל לעשות שימוש בדברים האלה.

  13. 05:19

    לדוגמה, כשאחד מהאירועים האלו מופעל, אז אנחנו מקבלים את E מסוג Mouse Event Arcs, מה אנחנו יכולים לעשות באי שימוש? איזה שימוש לדוגמה?

  14. 05:33

    לדוגמה, אנחנו יכולים לפנות ל-e ולעשות e.x. מה זה e.x? זה ה-x איפה שהאירוע mouse move יתרחש. mouse move יתרחש איפשהו על המסך, ואיפשהו הזה יש לו קואורדינטות x ו-y, x זה רוחב המסך, ו-y זה גובה המסך, זה 0,0.

  15. 06:00

    מה שאי אומר לנו, אחד מהדברים שאי אומר לנו זה את ה-X. איפה ברוחב המסך יתרחש ה-MouseMove ועוד דבר שאומר לנו זה את ה-Y. איפה בגובה המסך יתרחש ה-MouseMove.

  16. 06:23

    כל פעם שהעכבר זז, אז MouseMove מופעלת. כל פעם שאני מזיז את העכבר, MouseMove מופעלת ובכל פעם ש-MouseMove מופעלת, אז היא מקבלת את E מסוג Mouse Event R ובתוך ה-E הזה יש את ה-X ואת ה-Y שאומרים ביחד לאן העכבר זז.

  17. 06:50

    עכשיו, Mouse Move מופעלת הרבה מאוד פעמים בשנייה כשאני מזיז את העכבר, אז Mouse Move הופעלה כאן וכאן וכאן וכאן וכאן וכאן וכאן. היא הופעלה כמה פעמים ובכל פעם שהיא הופעלה גם אומרים לה איפה העכבר.

  18. 07:06

    העכבר ב-X ב-Y. כל פעם שאני זז אחבר ב-X ב-Y. אני יכול להדפיס במרל סמוב, אולי נדפיס וזה יהיה אפילו יותר ברור, אני אעשה console.rightline למרות שאנחנו לא באפליקציה קונסולואית אני מקווה שאנחנו נצליח לראות אולי אפילו את E נראה ואם לא את E אז לפחות את E.X ואת E.Y ורק ניתן לו איזשהו פורמט שבתוכו להציג אותם זה

  19. 07:46

    יהיה הפרמטר הראשון וזה יהיה הפרמטר השני. ופה נכתוב x y משהו שכזאת או נכתוב לוקיישן לוקיישן ככה וניתן לזה לרוץ אני זז ומצייר כל הכבוד לו על כך אבל אני אלך פה לחלון יש פה שני חלונות אני רוצה לפתוח עוד חלון בואו רגע ננעץ אותם.

  20. 08:22

    כדי לפתוח עוד חלון, מעבר ל-Air ו-Immediate, אני רוצה את ה-Output, אז קונטרול Alt-O פותח לי את חלון ה-Output.

  21. 08:33

    אני יכול להגיע גם לחלון ה-Output בעזרת View ו-Output. קונטרול W-O הם אומרים, אני אומר קונטרול Alt-O, אלה שתי דרכים לפתוח, הם דווקא מפרסמים את זאת, בסדר?

  22. 08:47

    ומה שאנחנו רואים ב-Output זה בעצם את מה שאנחנו עושים לו Console Rightline. ואני כותב console right line ואין console וזה לא console application אז הוא מדפיס את זה לoutput ואז אני יכול לקרוא כאן הכל.

  23. 09:04

    עכשיו שימו לב שהוא מדפיס לי בכל פעם שתי שורות אני יכול לענות את זה למעלה דרך אגב השורות הראשונות כי אני הגעתי פה עד למעלה בשורות הראשונות הוא מראה לי את הטעינה של התוכנית הוא טוען את התוכנית זה גם כן נושא מאוד מעניין והוא עושה כל מיני דברים.

  24. 09:25

    ואז הוא מצפיס לי את MouseEventOrg ואת Location, MouseEventOrg ואת Location. שימו לב, השורה הראשונה מודפסת מכיוון שביקשת ממנו להדפיס את E. כשאני אומר לו להדפיס את E או להדפיס כל טיפוס, אז הרבה פעמים הוא מצפיס לי פשוט את הטיפוס של הטיפוס.

לקורס המלא: פרויקט מעשי ב‑#C אונליין

ההרצאה הקודמת: פרויקט מעשי ב-#C - תוכנת צייר - חלק 5

ההרצאה הבאה: פרויקט מעשי ב-#C - תוכנת צייר - חלק 7

הרצאות קשורות מקורסים אחרים

  • תרגיל 24 - תוכנת צ'אט - חלק 1
  • פרויקט מעשי ב-#C - ספר טלפונים - חלק 1
  • תרגיל מעשי Delegate Event
  • שדרוג צייר שלנו על canvas

קורסים נוספים במסלול

  • קורס WinForms - תוכנות רגילות בווינדוס
  • פרויקט מעשי ב-#C - בונים מחשבון פשוט
  • פרויקט מעשי ב-#C - ספר טלפונים
  • קורס ADO.NET - חיבור אתר למסד נתונים
  • קורס תכנות מתקדם - #Advanced .NET C
  • קורס WCF - תקשורת למתקדמים בדוט-נט