
PaintEventArgs, ומי מפעיל את האירוע. ההסבר ממשיך את הנושא מהשיעורים הקודמים על אירועי העכבר, ומראה את ההבדל בין מידע שמערכת ההפעלה מוסרת לבין מידע שהקוד שלנו מייצר.Form1_Paint נקראים Event Handler. הפונקציה מטפלת באירוע שהטופס חווה.e.Graphics, שהוא ארגז כלים לציור, ו-e.ClipRectangle, שמציין את האזור שצריך לצייר מחדש.e.Graphics מפעילים ישירות בלי לשמור אותו במשתנה.MouseEventArgs עם X, Y ו-Button. פרמטר e תמיד מגיע מהמערכת.Equals ו-ToString.e.PaintEventArgs, למה מערכת ההפעלה מפעילה את הציור, ואיך משתמשים במידע שהיא מוסרת.הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - תוכנת צייר - חלק 9» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז נשאלתי שאלה לגבי האירוע paint אבל ספציפית לגבי האי שמתקבל והוא מסוג paint event args. אולי אני רק אפתח את הקוד המקורי בואו ניקח רגע אנחנו מדברים אני מניח על זה ואני אקח את זה לכאן אני אשכפל את זה ונפתח ונפתח ובטח זה read only אני אצטרך להסיר לו את הריד אונלי
כן, הוא בריד אונלי אז בואו נגיד לו בלי ריד אונלי, את זה אני אסגור, ועכבר ימני אני לא בטוח שאני צריך להוריד לו את הריד אונלי, כי יש לי פה את זה כן, אני אעשה להם בסדר אז עכבר ימני, ופרופרטי, ונוריד לו את הריד אונלי, ואוקיי, ואוקיי, ונפתח, ודאבל, פליק על האסלן, ושימי, זה אמור להיות מאוד מהיר
יפה מאוד, נחכה לו שהוא ישים את ההמרה, הוא מעתיק ומגבה פה וקלוז, ונחכה לו, לוקח לו קצת זמן, זה טיפה נגדיל, ונלחץ על זה, ו-F7, ונגלול למטה, יפה, ועכשיו פיינט איבנט אורגס הוא עיר הקראנק.
אז נשאלתי שאלה לגבי ה-E, בהמשך לדיון שהיה לנו על E מסוג מאוס איבנט אורגס עכשיו הדיון הוא על E מסוג פיינט איבנט אורגס אז השאלה היא בואו נתקל שוב על המלל המדייק של השאלה מה זה E נקודה גרפיקס הדגש הוא על E מה זה בעצם הE של E נקודה גרפיקס מה זה הE הזה אז שוב נחזור אז מה זה הE הזה הE הזה זה הE הזה והE הזה הוא מסוג פיינט איבנט
אורגס אוקיי ומה מה זה הפרמטר הזה? ומי קורא לפונקציה הזו? או, אז כמו הרבה מאוד פונקציות עם קו תחתון באמצע, אלו הן פונקציות שנקראות Event Handler, פונקציות שמטפלות באירועים, Handler זה מטפל ו-Event זה אירוע, מטפלות באירועים. אז פורם אחד, קו תחתון
Paint, מטפלת באירוע Paint שחווה פורם אחד. אוקיי, אז מתי חווה פורום אחד את אירוע הפיינט? הוא חווה אותו כשהוא נגלה לפחות כשמגלים אותו.
משום מה מגלים אותו, חלון אחר פתאום שהיה מעלה והסתיר אותו, אפילו חלקית, מגלה אותו יותר או לחלוטין, אז פורום אחד חווה אירוע פיינט ואז מישהו קורא לפורום אחד פיינט. ומי זה המישהו הזה?
כמו שלמדנו לגבי אירועי עכבר, מי מפעיל את אירועי העכבר? שמפעיל זה מערכת ההפעלה, מערכת ההפעלה באופן כללי היא אחראית על כל ההתקנים, התקן זה עכבר ומקלדת והרדיסק ועוד כל מיני חומרות, כרטיס פתיחה, כרטיס מסך וכרטיס תקשורת וכרטיס USB שמנהל כל מיני התקני USB. אוקיי, אז מערכת ההפעלה היא אחראית על כל ההתקנים וכשהתקן מסוים רוצה או אומר משהו אז מערכת
ההפעלה מיידעת את החלון שבעצם ההתקן רצה להגיד לו את המשהו הזה. אז אם לדוגמה אני כרגע עובד בוויז'ואלד סטודיו ואני עכשיו מרחף מעל הוויז'ואלד סטודיו ולמעשה מערכת ההפעלה היא זו שמודעת לתנועה של העכבר והיא זו שמעבירה את המידע הזה לאפליקציה,
לוויז'ואל סטודיו וכנ"ל פורם 1. פורם 1 כשהוא רץ, אז כשאנחנו מסיטים את העכבר מעל פורם 1, אז מערכת ההפעלה מיידעת את פורום אחד שהעכבר זז בזה שהיא פונה לפונקציה פורום אחד מר סמוב ואומרת לו e.
ובתוך ה-e, כבר דיברנו על זה, יש את הקואורדינטה איפה העכבר, וגם יש עוד אינפורמציה על כפתור, איזה כפתור לחוץ e.button, איזה כפתור לחוץ?
a, מה הערך של button? הערך של button זה של left, left לחוץ. אז E מכיל מידע על הבטן ועל X ועל Y. יפה, אבל זה E מסוג mouse event args שכן event args, event זה אירוע, args זה קיצור לארגומנטים או פרמטרים וmouse זה עכבר אז הארגומנטים הפרמטרים המידע הנוסף של האירוע של העכבר אז מערכת המפעלה כשהיא מפעילה את מרוס מוב עבור פורום
אחד או של פורום אחד וזה אומרת לו E מסוג מרוס איבנט או שזה אומרת לו שם X Y ובאתם, יפה. כנ"ל כשחלון אחר מוסט מעל החלון שלנו ושלנו מתגלה או ששלנו מוסט מחוץ לגבול המסך ושלנו מתגלה כשהחלון שלנו מתגלה מי שיודע את זה לפני כולם זה מערכת ההפעלה או מי שמודע לזה זה מערכת ההפעלה, היא מודעת לכך שהחלון התגלה.
החלון עצמו, הוא לא כל כך יכול לדעת את זה. חלון לא, הוא יכול תיאורטית, אם הוא נורא משועמם, אז הוא יכול לברר, הוא יכול לפנות למערכת ההפעלה ולהגיד לה, תגידי, יש איזה חלון עכשיו מעליי?
ותגידי, אולי איזה חלון שהיה מעליי נעלם או זז? תגידי ותגידי. אז החלון שלנו יכול כל הזמן ללכת למערכת ההפעלה ולשאול אותה תגידי ותגידי.
אבל זה ייקח הרבה מאוד משאבי CPU וזה יהיה קוד שנצטרך לכתוב וזה לא קוד פשוט תגידי ותגידי. אז לכן תקנו חכמים מי שבנה את מערכת ההפעלה והאמת זה לא רק את מערכת ההפעלה של Windows, זה כל מערכות ההפעלה.
תקנו שמערכת ההפעלה היא זו שתפעיל פונקציות של האפליקציה, ואגב, כך תיידע את האפליקציה שמשהו התרחש. אז עבור אירוע Paint באמת האפליקציה יכולה לברר.
עבור אירוע Merse Move גם האפליקציה יכולה לברר. היא גם כן יכולה עם שעון, עם טיימר, מדי פעם לשאול את מערכת ההפעלה, תגידי איפה נמצא העכבר, ומערכת ההפעלה תגיד לה יש פונקציות שניתן לתשאל את מערכת ההפעלה ולשאול אותה.
אבל זה לא נגמר בזה כי היא עדיין תצטרך לברר אם העכבר, לא סתם, אם העכבר מעלינו ושאין מישהו אחר מעלינו. בצורה מסובכת. לעומת זאת, מה עושה קשה מאוד לתפוס. האמת, גם את זה אפשר לתפוס. זאת אומרת, צריך כל הזמן לשאול את מערכת ההפעלה, תגידי, העכבר לחוץ, כן או לא?
ואחרי כמה זמן שוב לשאול אותה, תגידי, העכבר עדיין לחוץ, כן או לא? אם קודם הוא היה לחוץ ועכשיו לא, אז מה עושה, הלוגיקה של מה עושה, צריכה להיות מופעלת.
ואם הוא לא השתנה, אז היא לא מופעלת. בקיצור, האפליקציה יכולה על ידי תשאול מערכת ההפעלה להגיע למסקנות שמערכת ההפעלה מביאה אותנו אליהן בצורה הרבה יותר פשוטה.
שיטת האירועים, מערכת ההפעלה, היא פונה אלינו והיא מפעילה אותנו והיא נותנת לנו עוד אינפורמציה. יפה.
אז חזרה ל-paint event args e. אז עוד לפני שנחזור אליו, אז mouse event args e מסוג mouse event args מכיל מידע שרלוונטי ל-mouse move. לדוגמה, באיזה קורדינטות העכבר לאחרונה נצפה ואיזה עכבר לחוץ.
יפה. לעומת זאת pain, שמערכת ההפעלה מפעילה את pain, איזה מידע היא מעבירה לנו? אז אם נלך רגע, אולי נעשה אפילו קונטרול רווח פה, אז נראה איזה מידע היא מעבירה. אז מידע אחד שלמדנו להשתמש בו זה הגרפיקס.
הגרפיקס, בואו נראה אותו, הגרפיקס מסוג גרפיקס זה ארגז כלים, שבהמשך נלמד עוד ועוד להשתמש בו, שאחד מהכלים שיש בו זה draw line, כלי שבעזרתו, זו פונקציה שבעזרתה אנחנו מציירים קו.
אז אחד מהדברים שמערכת ההפעלה מעבירה לנו זה את הגרפיקס.