PracticU

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

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

פרויקט מעשי ב-#C - תוכנת צייר - חלק 16
בשיעור הזה מוסיפים הגבלות לניווט בין השקפים, כך שאי אפשר לגלוש מחוץ לרשימה. כל הכפתורים מעודכנים בפונקציה אחת שנקראת HandleSlideControl.
השלבים העיקריים
1. פונקציה משותפת: הכפתורים נבחנים בפונקציה אחת שנקראת מכל לחיצה, ומאתחלים בעליית התוכנה. כך אין כמה לוגיקות מפוזרות.
2. כפתור הבא: הכפתור פעיל רק כשהשקף הנוכחי לא האחרון. מחשבים last כשהשקף הנוכחי שווה לגודל הרשימה פחות אחד, ומגדירים Enabled = !last.
3. כפתור הקודם: הכפתור פעיל רק כשהשקף הנוכחי לא הראשון, לכן מגדירים Enabled לפי ההופכי של first.
4. כפתור ההתחלה והסוף: הכפתורים מופעלים לפי אותה לוגיקה.
טעויות נפוצות
- הקדימות בין אופרטור ההשוואה לאופרטור ההשמה: ביטוי ההשוואה שמחשב את last נכתב בלי סוגריים, וזה תקין כי ההשוואה מתבצעת לפני ההשמה. אפשר להוסיף סוגריים כדי להיות בטוחים.
- כשקודם מסמנים את הכפתור הקודם כ-disabled ואחר כך מחשבים מחדש, ההתנהגות הנכונה נשמרת רק אם הפונקציה מתעדכנת אחרי כל שינוי.
בסיום השיעור התלמיד יודע לאפשר ולהשבית כפתורי ניווט לפי מיקום השקף הנוכחי, והתוכנה לא קורסת בגבולות הרשימה.
השיעור הבא בקורס: פרויקט מעשי ב-#C - תוכנת צייר - חלק 17

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

  1. 00:00

    חריגה בניווט בין השקפים

  2. 00:48

    הפיכת הכפתורים ל-Disabled

  3. 01:28

    קביעת מצב הכפתורים בעליית המערכת

  4. 02:12

    פונקציה משותפת לכפתורי הניווט

  5. 02:48

    קריאה לפונקציה מכל כפתור

  6. 04:21

    בדיקת כפתור Next לפי גודל המערך

  7. 05:31

    השוואה בין השקף הנוכחי לגודל הרשימה

  8. 07:06

    סדר פעולות בתנאי השוואה

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

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

  1. 00:04

    טוב, אז בשיעור הקודם ראינו שכאשר אנחנו הולכים אחורה וקדימה הכל עובד מצוין, אבל כאשר אנחנו גולשים אל מעבר לנהלך אנחנו מקבלים חריגה.

  2. 00:23

    אז שני דברים אפשר לעשות. א', אפשר לפרוץ פה את החריגה, אבל בוא נגיד שאין שום סיבה להגיע אל החריגה הזו. למה בעצם לאפשר ליוזר ללחוץ על כפתור אם הכפתור לא אמור להיות זמין?

  3. 00:38

    אז אפשר להפוך את הכתפתור ה-next, אם אני בסוף הרשימה, או את ה-prev, אם אני בתחילת הרשימה, אפשר להפוך אותם ל-disabled או ל-visible false.

  4. 00:55

    אני אוהב דווקא לעשות דברים disabled, אני לא אוהב שדברים פתאום נעלמים לי על המסך. אז אוקיי, אז בהתחלה כשהמערכת עולה, אפשר להגיד שזה אמור להיות disabled, אמור להיות disabled זה עוד תכף נחשוב עליו זה אמור להיות enable זה אמור להיות disabled כל עוד יש רק איבר אחד אבל בואו נטפל קודם כל בפרב ובנכס שהם עושים את הבעיות אז

  5. 01:35

    בהתחלה אנחנו נעשה את פרב נעשה אותו disabled אז יש לנו פה מה שנקרא enable double click עליו מחליף אותו לdisabled ואת זה דאבל קליק מחליף אותו לדיסייבלד האמת היא שזה אמור להיות read only יוזר אמור רק לראות איזה

  6. 02:08

    סלייד אנחנו נמצאים לא אמור לכתוב לתוכו אוקיי אז כשהיוזר מוציא סלייד זה אמור להיות enabled אבל מה שאני חושב זה אולי נעשה איזושהי פונקציה אחת שפשוט בוחנת איזה כפתורים אמורים להיות enabled בגדול היא בוחנת את גודל המערך לעומת המיקום הנוכחי,

  7. 02:40

    ולפי זה היא מחליטה בעצם איזה כפתור אמור להיות Enabled ואיזה Disabled. אז אולי בהתחלה דווקא נשאיר את זה Enabled וניתן לפונקציה הזו להתחיל. הפונקציה הזו פשוט תופעל עבור כל לחיצה עבור כל אחד מהכפתורים האלה, הפונקציה הזו תופעל, וגם בעליית המערכת היא תופעל, זו אותה פונקציה, שתהיה משותפת להרבה קריאות, להרבה פונקציות אחרות, אז נגדיר אותה כפונקציה נפרדת.

  8. 03:17

    וזה נקרא Handle, נקרא לזה Slide Control. תספרי בבקשה ב-Slide Control ונקרא לה כאן Handle Slide Control. מפה נקרא לה ואולי מעוד מקומות, או אם כבר באותה הזדמנות ב-Add New Slide אני שוקל אם לעשות את זה לפני או אחרי, לדעתי כדאי לפני.

  9. 04:06

    ה-invalidate, next, רב, רב החזה אפשר לנטרל, וזהו. ומה אנחנו עושים בעצם בפונקציה הזו? אז בואו נעבור כפתור כפתור.

  10. 04:27

    אז לדוגמה, הכפתור נגיד next, בוטון next slide, ה-enable שלו אמור, מה הוא אמור לרפוץ? אז השאלה היא, איפה אנחנו נמצאים יחסית לגודל המערך? אם, אז בואו נגדיר פה את Current Slide, טוב, נגדיר פה Int Slide שווה ל-Int.parse של הטקסט בוקס Slide Number.txt, אז יש לי את Current Slide.

  11. 05:18

    אם Current Slide, ול.., אם אנחנו בסוף, שווה ל.., למה? אולי נפריד את זה למשתנה נפרד נקרא לו b בינתיים ונשאל את השאלה האם ה-current slide שווה ל-array list הכללי זה drawings במקום ה-current slide זה ה-list view ה-array list הנוכחי אז נגדיר פה את סלייד או את ליינס, עכשיו

  12. 06:04

    באנו לקרוא לזה ריי-ליסט נקרא לזה ליינס כדי לשמר קונסיסטנטיות, שווה לריי-ליסט במקום הנוכחי, אז יש לנו את ליינס, אם קארנט סלייד סליחה, לדרואוינגס לגודל טוב, זה לא יכול להיות, קארנט סלייד אף פעם לא יכולה ויכול להגיע לפחות אחד אם הוא שווה לפחות אחד, אז זה אומר שאנחנו באחרון.

  13. 06:55

    אנחנו באלאסט שווה לטרו. ואם זה ככה, אז ניקח את ההופכי. אנחנו רוצים שאם אנחנו באחרון, זה לעשות את זה ככה. מה זה בעצם אומר?

  14. 07:14

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

  15. 07:31

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

  16. 07:50

    זאת אומרת, יש פה שווה ושווה שווה ומינוס. בעצם השאלה הנשאלת היא מה בעצם הולך לקרות פה? לאן תקבל את הערך הזה ואת זה נשווה לזה ומזה נחסיר, ניקח את כאן, נחסיר ממנו, נשווה את זה לסלייד או נשווה את זה לזה ואז נחסיר.

  17. 08:10

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

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

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

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

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

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

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

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