PracticU

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

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

פרויקט מעשי ב-#C - תוכנת צייר - חלק 19
בשיעור הזה בוחרים את עובי הקו בלחיצה על אחד הפאנלים. הפאנל הנבחר מסומן בצבע כחול עם תוכן לבן, והשאר נשארים בלי סימון.
השלבים העיקריים
1. אירוע MouseDown על כל פאנל: בלחיצה על פאנל הוא נשמר כפאנל הנבחר במשתנה כללי מסוג Panel, שנקרא כאן currentWidth.
2. צבעים לפי מצב: הפאנל הנבחר מקבל BackColor = Blue, והשאר מקבלים רקע ריק (Color.Empty), כדי שהצבע של הקונטרול יבוא ממערכת ההפעלה ולא יישבר אם המשתמש משנה את הצבעים של Windows.
3. צבע המלבן: ההמרה בין Color ל-Brush נעשית בעזרת Brushes.White או Brushes.Black לפי המצב. FillRectangle מקבל Brush ולא Color.
4. רענון כל הפאנלים: פונקציה אחת קוראת ל-Invalidate לכל ארבעת הפאנלים, כך שהסימון מתעדכן בכולם בבת אחת.
5. בדיקה: מתחילים בלחיצה על פאנל אחד, ומחליפים לאחר מכן לפאנל אחר ורואים שהסימון עובר.
טעויות נפוצות
- Color.Empty ו-Color.Blue הם מאפיינים של הרקע, אבל ל-FillRectangle אין מאפיין רקע. הרקע הוא תכונה נפרדת של הפאנל.
- הפונקציה Paint של פאנל מקבלת sender מסוג object, ולכן יש לעשות (Panel)sender לפני השימוש.
- אם לא מציירים מחדש את הפאנל הקודם, נשאר בו הסימון הכחול.
השלב הבא הוא להפעיל את העובי שנבחר על הציור, כך שכל קו חדש ייצבע בעובי שנבחר.
בסיום השיעור התלמיד יודע לסמן פאנל נבחר, לרענן את התצוגה של כמה פקדים ולהבין את ההבדל בין Color ל-Brush.
השיעור הבא בקורס: פרויקט מעשי ב-#C - תוכנת צייר - חלק 20

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

  1. 00:00

    הרעיון: הדגשת פאנל בעת בחירה

  2. 00:45

    אירועי MouseDown של הפאנל

  3. 02:06

    שמירת רוחב הקו הנבחר בשדה פרטי

  4. 04:32

    טיפול בציור הפאנל לפי רוחב הקו

  5. 05:35

    צבעי רקע ורקע קדמי לפי הבחירה

  6. 07:44

    מילוי מלבן עם Brush במקום Color

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

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

  1. 00:05

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

  2. 00:33

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

  3. 00:55

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

  4. 01:10

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

  5. 02:16

    פאנל וויט ולהגיד לו הפאנל הזה פאנל וויטס אחד והגובה לא משתנה צריך לזכור את הגובה מה היה אמרנו אחד וה-G זה גם בעיה אין לנו כרגע את ה-G אבל יותר פשוט זה אולי לקרוא ל-invalidate של הפאנל ולהכין לו מראש פרמטרים כל מה מה שאנחנו בסך הכל רוצים להגיד זה שה-Selected Width פאנל זה הפאנל הזה.

  6. 03:10

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

  7. 04:02

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

  8. 04:22

    עכשיו נלך לצייר את פאנל ווידס. אז אם אני בא לצייר את פאנל ווידס, הוא בא לצייר את עצמו, אז הוא אומר פה Handle Panel Width, בסדר.

  9. 04:35

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

  10. 04:50

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

  11. 05:30

    לפיינט פרמטר ובגלל זה אני חייב להשתמש במשתנה גלובלי אז פה אנחנו נבחר את קרן טוויט יפה אם p שווה לקרן טוויט זאת אומרת הפאנל הזה הוא הפאנל הנבחר אז אוקיי צריך להגדיר פה שני color'ים צריך להגדיר color זה יהיה ה-Background ו-Color זה יהיה ה-Foreground וה-Background

  12. 06:09

    אם אנחנו ה-Selected אז זה יהיה color ה-Background יהיה Empty יהיה בלי נכון שלא בחרנו אז זה סתם הפרפר אבל אי אפשר להגיד לו הפרפר כי אם המשתמש יחליט להגדיר מחדש ב-Windows שלו שהצבע הפרפר שבעצם זה צבע הקונטרול הוא ירקרק אז אנחנו נצטרך להיות ירקרקים אחרת הכל צבעים ישתבשו אז צריכים להגיד לו empty בלי צבע

  13. 06:45

    הצבע של הקונטרול למעשה והפור גלאונד הצבע של הפור גלאונד הופך להיות y ואם אנחנו ואם אנחנו לא ניקח את הדבר הזה ונשכפל אותו ונוסיף פה l אם אם אנחנו לא, אז ה-Background, סליחה, אז ה-Background פה הוא Blue.

  14. 07:25

    כאן ה-Background הוא Empty, וה-Foreground הוא Black. יפה. וכאן כשמגיע הזמן לצייר, אז אנחנו נגדיר שה-Fill Color הוא לא Brushes Black, אלא הוא ה-Foreground.

  15. 07:50

    ומה ה-Background? אז האמת היא ש-Background זה לא צבע, ה-Background זה תכונה. B נקודה ב-Color שווה ל-Blue ואילו כאן הוא שווה ל-Empty.

  16. 08:17

    בואו נראה איך זה נראה, זה לא נראה כל כך. מה הבעיה? פיל Rectangle לא יכולה לקבל Color, היא צריכה לקבל Brush.

  17. 08:35

    ואנחנו הגדרנו Color בשביל פיל זה ה-Foreground, בוא נגדיר בראש ל-foreground או בראש בי והבראש שווה לבראשז ווייט והבראש כאן שווה לבראשז

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

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

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

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

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

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

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