
הטקסט המלא של הדקות הראשונות בהרצאה «פרויקט מעשי ב-#C - ספר טלפונים - חלק 6» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
ההרצאה היום תעסוק בהרצאה על מחיקת פריטים מסומנים delete ובואו נפתח את הוויז'ואל נציג את הוויז'ואל סטודיו וניכנס לטורפס אז יש לנו כפתור חדש שימו לב שהיום אני רק אראה את הקוד אני לא אכתוב אותו יש לנו כפתור חדש delete אני אעשה עליו דאבל קליק אני מגיע לקוד שלו זה הקוד שלו בעצם מה שהכפתור הזה אמור לעשות הוא אמור למחוק פריטים אולי קודם נפיל את זה נראה שזה עובד
ואז נערוך דיון בנושא אוקיי אז זה הטופס שלנו ובוא נגיד שאני רוצה למחוק את ברוך אז אני מסמן את ברוך ואני אומר לו delete אז ברוך נעלם בוא נוסיף רגע נוסיף את a1 נגיד לו add ונוסיף את b2 ונגיד לו add בוא נגיד שאני רוצה למחוק גם את b וגם את משה אני אומר לו delete יפה אז הוא מחק את כל הפריטים המסומנים אם הוא לוחץ על delete ושום פריט לא מסומן,
אז הוא לא מוחק כלום. אני חייב לסמן כדי למחוק. אני יכול להוסיף, אני יכול לסמן אפילו כמה ולמחוק. להוסיף, לסמן חלק ולמחוק. לסמן עוד חלק ולמחוק.
לסמן ולמחוק. יפה. בואו נגלול למטה, נשים כאן breakpoint ושוב נעשה, בואו רגע נעשה add, אני אסמל את זה ואני אעשה delete ואז אנחנו מגיעים לברק פוינט בואו נראה איך בעצם זה עובד איך אנחנו מוחקים פריטים אז מה בעצם כתוב פה אולי נדלג רגע על הווייל אולי ניגש ישר
לשורה שעושה את הרימוב את המחיקה עצמה איך אנחנו בעצם עושים מחיקה אז נורא פשוט אנחנו ניגשים לליסט view ואנחנו מבקשים ממנו את המערך של הסלקטד אייטמס שלו לליסט view יש מערך של סלקטד אייטמס מה זה Selected Items בעברית?
Selected זה בחור ו-Items זה פריטים, זאת אומרת, פריטים וחורים. אז ל-ListView יש מערך של פריטים וחורים. זאת אומרת, ל-ListView אין פריט אחד בחור. זאת אומרת, כשאני ניגש ל-ListView, הנה יש לי פה ListView, גם זה ListView, כשיש לי ב-ListView פריטים, כשאני מסמן, אז עכשיו הפריט הזה מסומן ב-ListView.
אם אני עכשיו לוחץ על קונטרול במקלדת שלי, ובואו נתחיל רגע בלי קונטרול, אם אני עכשיו בא ולוחץ על ריסורסז, אז עכשיו ריסורסז נהיה מסומן. אם אני רוצה ששניהם יהיו מסומנים, אני יכול לעשות פעולה שכזאת, ועכשיו שניהם, שני הפריטים האלה בליסט יהיו מסומנים.
אפשר להגיד שכרגע המערך שנקרא Selected Items של הליסט דיו הזה הוא ריק. אם אני מסמל את הפריט הזה, כרגע המערך של Selected Items מכיל את הפריט הזה בלבד.
הגודל של המערך כרגע הוא 1. כרגע הגודל של המערך הוא 0, שום דבר לא מסומן. הגודל הוא 1, הגודל הוא 0, הגודל הוא 1, הגודל הוא 2.
אם יהיו פה עוד פריטים, אולי רגע נבחר משהו יותר יפה. עכשיו יש לי הרבה מאוד פריטים. כרגע, מה גודל המערך? זה אחד, אפשר גם לראות, אפשר להגיד לו view וסטטוס באר, הוא אומר אייט אייטן סלקטד, גודל המהלך הוא שמונה, גודל המהלך הוא אחד, גודל המהלך, אתם רואים, הוא הולך וגדל,
12, 13, 14, 200. אני יכול גם לסמן כמה פריטים ובנפרד ללחוץ על קונטרול במקלדת ולסמן גם את זה. ואני יכול, שוב, ללחוץ על קונטרול ולסמן את זה, ללחוץ על קונטרול ולסמן את זה.
אני יכול גם לבחור פריט אחד, הרי עד לפה, ללחוץ על שיפט וקליק ואז הוא מסמן לי את כל אלה. ללחוץ על שיפט וקליק הוא מסמן לי את כל אלה. אם אני ללחוץ שיפט וקליק פה אז הוא מסמן לי את כל אלה.
הוא מסמן לי מי הראשון שבחרתי עד לזה שאני בוחר כרגע, זה שיפט, לעומת קונטרול, קונטרול מוסיף, מה שאני רוצה הוא מוסיף. אבל יש כרגע מערך של פריטים בכורים. זה הקוד שלנו, אז בואו נחזור שוב, אז יש לנו ללייזיו שלנו, יש מערך של סלטד אייטם, הייתי רוצה לדעת מה הגודל שלו, אז בואו אולי נעשה פה קליק על הפוסט, הנה אמרנו שהגודל שלו זה אחד,
אתם זוכרים? אני כבר לא יודע אם אתם זוכרים, בהתחלה המערך הפריטים היה ריק, הוספנו את b, אולי רגע נמשיך את הריצה כדי ששוב נרענן את זיכרונכם, אז שוב נוסיף פריט אחד, רגע, יש פריט אחד, נכון?
ואני לוחץ על delete ואני מגיע לכאן ואני מרחף מעל selected items ולוחץ על, אפילו לא לוחץ על הפלוס ופשוט רואה קאונט שווה לאפס, נכון? לא בחרנו אף פריט, הוא צודק.
יפה. בואו שוב ניתן לזה לרוץ. הפעם נבחר את b ונגיד לו שוב delete ושוב נחזור לקוד ושוב נרחף מעל selected items ונרחף מעל הפלוס והפעם הוא אומר לי שהגודל הוא 1.
בואו שוב ניתן לו לרוץ אז נוסיף שני פריטים ונגיד לו delete. מה עכשיו יהיה? כמה פריטים יהיו בסלקטד אייטמס? התשובה היא 0, כי אף אחד לא בחרנו.
ושוב נחזור לריצה, אף אחד לא בחרנו. ונוסיף עוד אחד ונבחר אחד. ונגיד לו delete, ונעשה קליק ונרחב, כמה עכשיו אמור להיות?
בחרנו 1, יפה. למרות שיש 3 פריטים, יפה. לעומת אייטמס, כמה אייטמס יש? אייטמס יש שלושה נכון אבל סלקטד אייטמס יש רק אחד יפה ניתן לזה עכשיו לרוץ אז נראה שהוא מחק את ההוא שבחרנו בואו נגדיר עוד אחד נעשה שלושה והפעם אני אבחר שלושה עכשיו שלושה בחורים נגיד לו דיליט סלקטד אייטמס שלושה בחורים מתוך שלושה פריטים כל הפריטים בחורים יפה מאוד אוקיי אז זה סלקטד אייטמס
זה מערך מה זה Selected Items במקום האפס? זה הפריט הראשון ברשימה. אני לא זוכר אם זה הפריט הראשון ברשימה מלמעלה למטה, או הפריט הראשון על פי הסדר שהמשתמש בחר אותם, אני לא יודע, אפשר לבדוק את זה אולי, זה קצת יהיה מסובך. אפשר לראות מי זה ה-Selected
Item האפס, בעצם אנחנו לא יכולים לדעת, כי אצלנו כולם B, כולם B2, אז אי אפשר יותר מדי לדעת, אבל בואו נגיד שזה תרגיל בשבילכם, תבררו אתם המערך הזה לפי מה הוא ממויין.
תדפיסו את זה, תנסו להבין מה סדר הפריטים בסלקטד אייטמס. אולי גם תבררו מה סדר הפריטים בתוך אייטמס. האם סדר הפריטים שמופיע הוא סדר הפריטים שנמצא בתוך מערך אייטמס?
אוקיי, אז בואו נחזור למה שרצינו לעשות. מה שאנחנו רוצים לעשות זה למחוק את הפריטים. אז בואו שוב נחזור לריצה, יפה מאוד, ונוסיף פריט אחד ונסמן אותו ונגיד לו delete ובואו נדלג על ה-while, רק נבטא את השורה הזו.
מה בעצם השורה הזו אומרת? השורה הזו אומרת least view 1, ה-least view שלנו, מערך ה-selected items שלו במקום האפס, טוב, המערך כרגע הוא בגודל 1, אז הפריט במקום האפס זה הפריט היחידי שיש במערך בכל ילד אחד.
זאת אומרת, אם יש בכלל משהו למחוק, זה הדבר היחידי. יפה, אז עכשיו אנחנו רואים שהפריט הזה, זה בעצם פריט. אם אני ארחף מעליו, הוא לא אומר לי יותר מדי.
בואו ננסה רגע להגיד לו Add Watch. אמרתי לו Add Watch. יפה, כנראה שלא אמרתי בפעם הראשונה. הנה, Selected Items במקום האפס, הוא אומר לי ש-Tax the B. בסדר, זה הפריט היחידי שלנו מצוין, אבל זה פריט.
אנחנו בעצם מסתכלים כרגע על פריט. אם נמשוך פה מצד ימין, זה שמאלה. אנחנו מסתכלים כרגע על אובייקט, על תקריט, על ישות מסוג List View Item, נכון?
ה-List View, אם נרחף מהלב, אולי אותו נגרור רגע, נגרור את ה-List View לפה, ה-List View הוא מסוג List View. כן? ליסט ויו היא מילה קטנה, ליסט ויו אחד, הוא מסוג ליסט ויו, היא מילה גדולה ווי גדולה.
זה הסוג, זה ה-Namespace, על זה עוד נלמד בהמשך. אז הליסט ויו, או יותר נכון ליסט ויו אחד, הוא מסוג ליסט ויו, לעומת Selected Items 0, הוא מסוג ליסט ויו אייטם, הוא פרי של ליסט ויוים, של ליסט ויו, הוא פרי.
אני יכול להגיד לפרי, אני רואה שאחד מהדברים שאני יכול להגיד על זה, תתחפף, תיעלם, רימוב, עמות, תצא. איזה עוד דברים אני יכול להגיד לו? אני יכול לעשות פה קונטרול רווח.
קונטרול רווח מציג לי את רשימת האפשרויות, רשימת הפונקציות, התכונות, פונקציות שאני יכול להפעיל על הפריט הזה. אז אני יכול להגיד לו כל מיני דברים. אני לא רואה פה, אני אגיד לי אין הפונט, אני יכול להגיד לו הפונט שלך יהיה ככה וככה.
הצבע הקדמי, קדמת הצבע, זאת אומרת הצבע של הטקסט, זה הטבע של המלל שלך, הוא אומר, יפה, הנה הוא. The ghetto sets the foreground color the item's text, את המלל, זה הטבע של הטקסט.
יש פה כל מיני תכונות מעניינות, לאיזה ליסט הוא שייך, מה האינדקס שלו, מה המיקום שלו, יש גם פוזישן, בהזדמנות ננסה להבין מה ההבדל בין אינדקס לפוזישן, ויש את רימוב, רימוב זוהי פונקציה, אני יכול להגיד לו תסיר את עצמך.
יפה. הזדמנות עברו ותנסו להבין אולי עוד דברים הנה הטקסט מה הטקסט שלך זה אני חושב שאנחנו כבר מכירים נכון הטקסט שלך הטקסט לא זה טקסט אחר זה טקסט קצת שונה אבל זה הטקסט של הליסט ויו אייטם הנה זוכרים את ליסט ויו אייטם אני רואה שכבר דיברנו עליו ליסט מיסו ויסט ויו אייטם lvi מצביע לליסט ויו אייטם חדש והנה אני ניגש לתכונה טקסט שלו כאן אני ניגש לתכונה רימוב שלו
כאן ניגשתי לליסט ויו אייטם על ידי מצביע שקוראים לו LVI מסוג ליסט ויו אייטם. כאן אני ניגש שוב לליסט ויו אייטם, זה ליסט ויו אייטם.
בדיוק כמו ש-LVI הוא ליסט ויו אייטם, בדיוק באותה צורה, קולקטד אייטם זה אפס, הוא ליסט ויו אייטם. אז כמו שכאן יכול לגשת לתכונת טקסט שלו, גם כאן יכול לגשת ראינו לתכונת טקסט שלו, יפה, גם כאן יכולתי לגשת לתכונת רימום שלו, בדיוק באותה מידה, אין הבדל לפונקציה, למתודה,
לשיטה רימוב של ליסט ויו אייטם, יפה. אז אני בעצם עכשיו בא ואומר, תסיר את עצמך, עכשיו שמתם לב דילגנו על הווייל, את הווייל הזה אנחנו עדיין לא מבינים, כרגע אנחנו רק מבטאים את השורה הזו בלבד, רימוב, אומרים לליסט ויו אייטם הספציפי, במקרה הראשון, במקרה הזה אנחנו מדברים לליסט ויו אייטם הראשון והאחרון והאמצעי, בעצם זה היחידי,
אנחנו אומרים לו תעשה את עצמך, יפה אז בואו נגיד לו, אני יכול להגיד לו לרוץ או שאני יכול להגיד לו תבצע צעד אחד יפה מכיוון שאין לנו while הנה הוא חוזר ל-while אני מבחינתי אדלג לסוף הפונקציה כדי שהוא לא יעשה את זה פעם שנייה אני לא רוצה כרגע להתעסק איתו יותר מדי בואו נראה עכשיו דרך אגב מה מצב ה-selected items מה דעתכם כמה בואו נתחיל ככה, כמה אייטמס יהיו כרגע במערך
אייטמס? כמה פריטים יש כרגע, אחרי שעשינו בעצם רימוב ליחידי שהיה? כמה אתם מצפים שיהיו? כלום. בואו ניווכח, יפה, באמת יש כלום.
בזה שביצענו את השורה הזו, אז היחידי שהיה נעלם. מה לגבי מערך הסלקטד אייטמס? כמה אתם מצפים שיהיו כאן? כמה סלקטד אייטמס יש?
כמה פריטים בחורים יש, בוודאי, גם פה אמור להיות כלום, בוודאי ובוודאי, יפה מאוד, מצוין. אז בואו נגיד לו עוד סטאפ אחד, והוא יוצא לפונקציה, מצוין, ואם חזרנו ובאמת הוא נעלם, יפה מאוד.
אם נגיד לו עכשיו, בואו נוסיף, כן, הוא כרגע עדיין במצב של, נכון, הפעולה