
Properties.Resources.Online מחזיר את המחרוזת.Properties.Resources.OnlineIcon מחזיר אובייקט מסוג Icon. כדי להציג אותו ב-PictureBox צריך להמיר ל-Bitmap, למשל דרך ToBitmap().הטקסט המלא של הדקות הראשונות בהרצאה «הרצאה על Resources» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא מעניין שנקרא ריסורסז. ריסורס זה בעצם איזשהו משאב שהתוכנית שלנו צריכה, התוכנית שלנו עובדת איתו. משאב יכול להיות תמונה רגילה, זה יכול להיות אייקון, זה יכול להיות קובץ סאונד, קובץ וידאו, קובץ כזה או אחר רגיל, אפילו קובץ טקסטואלי, ואפילו סתם אחור זאת.
כל דבר שהתוכנית שלנו רוצה לעבוד איתו ולהשתמש בו באופן חוזר שוב ושוב, יכול להיחשב כריסורס. ובפרויקט ווינפורם יש לנו מקום מיוחד שבו אנחנו יכולים לשמור ריסורסס.
בעיקר כאשר אנחנו רוצים לעבוד איתם בכל מיני מקומות בתוכנית, ואנחנו לא רוצים בכל מקום ללכת ולאתר את הריסורס או לקרוא לו בשם מסוים ואחר כך אם אנחנו רוצים לשנות את השם הזה אנחנו צריכים ללכת בכל המקומות ולשנות את השם.
ככה אנחנו יכולים במקום אחד לשתול את הריסורס ואז לפנות אליו מכל מיני מקומות בתוכנית. בואו נראה דוגמה לביצוע. קודם כל בואו ניקח ונכניס לתוכנית כמה ריסורסז.
יש לנו כאן את הפרופרטיב של התוכנית. מה שאנחנו הולכים לעשות זה ללחוץ טאבל קליק על הפרופרטיז ולהיכנס לאיזשהו ממשק שמראה כל מיני פרופרטיב ברמת הפרויקט שלנו.
אחד מהכרטיסיות שיש כאן זה ריסורסז. אז אני נכנס לכרטיסיית הריסורסז ומה שאני רואה זה שיש לי פה כל מיני סוגים שונים של resources. כאן אנחנו יכולים לראות את הסוגים השונים.
יש לנו מכרוזות, יש לנו אפשרות להביא תמונות, אייקונים, תמצאי אודיו, סאונד, כל מיני קבצים וכל מיני דברים אחרים שזה גם יכול להיות סוגים שונים של קבצים.
כאן אנחנו יכולים להוסיף resource בכרטיסייה הזאתי, בתחצן הזה. בואו ניקח דוגמה. בואו נניח שאנחנו רוצים להציג שני אייקונים בכל מיני מקומות בתוכנית אז אני הולך לאייקונס ואז אנחנו יכולים ללכת ולהוסיף קובץ קיים דרך אגב אנחנו יכולים גם ליצור קובץ חדש אם אני
יודע איך ליצור אייקון אז אני יכול ללכת לכאן מיי אייקון אד ולראות שוויז'ואל סטודיו מאפשרת לי גם לערוך אייקון בעצמי אם אני יודע איך עושים את זה אם אני יודע לצייר וכולי יש לנו כאן ממש סוג של אייקון ואנחנו יכולים לבחור גודל ולכתוב את האייקון בעזרת כל מיני כלי ציור שקיימים פה.
ממש לצייר עליו ולבנות אייקון בעצמנו. אני כרגע לא הולך ליצור אייקון חדש, אני הולך להתחבר לאייקון קיים. אז אני הולך לצאת מהקובץ הזה, בואו נסגור את זה, אנחנו רואים אפילו פה את האייקון, נשאיר אותו כאן כרגע ונלך ונצרף אקזיסטינג פייל ויש לי פה שני אייקונים אופליין ואונליין.
אז אני בוחר אותם, מבצע אופן ואני רואה אוטומטית שהם קיבלו את השם של הקובץ. אנחנו יכולים ללכת ולשנות את השם הזה. בואו נקרא לזה אופליין אייקון ונקרא לזה אונליין אייקון.
השמות שאנחנו נותנים לקבצים פה זה השמות שדרכם אנחנו הולכים בקוד להשיג את האייקון הזה שכרגע נכנס ל-resources של התוכנית שאנחנו בונים.
זה אומר שכאשר אנחנו לוקחים את הקובץ אקסקיושן שבסופו של דבר ייווצר לנו ונותנים אותו ללקוח אנחנו לא נצטרך ביחד עם הקובץ לספק את התמונות האלה אלא הן נמצאות בילד אין כחלק מקובץ האקסקיושן עצמו, היוזר בכלל לא רואה אותם, הוא לא יוכל
ללכת ולמחוק אותם מהמחשב שלו וככה אנחנו יכולים להיות בטוחים שהם תמיד יהיו איתנו. אנחנו נעשה את זה כאשר אנחנו כמובן משתמשים בקבצים שהם יחסית קטנים, הקובץ הזה הוא too much גדול ואולי אנחנו כן רוצים לגשת ולגעת בו בהרדיס אז אולי אנחנו לא נכניס אותו כ-resources אלא נשים אותו כקובץ חיצוני תמונה חיצונית ונוכל להשתמש
בה בתור תמונה חיצונית אבל זה לא המצב של ריסורס כרגע אנחנו שותלים אותו כחלק מקובץ ה-execution בכרטיסי הריסורסס אוקיי בואו אם אנחנו כבר בענייני אופליינג ואונליין נעבור לאזור של המחרוזות ונבנה פה שתי מכרוזות, מכרוזת אחת נקראת אונליין והוואליו שלה זה UROnline מכרוזת שנייה נקרא
לה אופליין ובוא נניח שזאת המכרוזת שאנחנו רוצים פה ניתן אפילו סמיילי שמח ויש לנו סמיילי עצוב עבור אופליין ואנחנו כרגע הגדרנו כמה ערכים בתוך ה-resources ועכשיו אנחנו רוצים במהלך התוכנית ללכת ולהשתמש איתם.
היתרון שזה נמצא בריסורסז א', במקרה לדוגמה של התמונות, זה שהתמונות לא נמצאות בהארד דיסק של המשתמש. המשתמש לא יכול לבוא יום בהיר אחד ולמחוק אותם, הוא בכלל לא רואה אותם.
ויתרון נוסף זה אם בכל מיני מקומות בתוכנית, בכל מיני טפסים שונים אנחנו רוצים להשתמש איתם, הם נמצאים במקום אחד וזה הריסורסז של האפליקציה.
אז איך אנחנו משתמשים איתם? דבר ראשון, בואו ונגרום לטופס הזה להיות בייס פורם, בכדי שנוכל לרשת אותו למספר טפסים. נגדיר אותו כבייס פורם, אנחנו יכולים לתת לו כל מיני תכונות שיהיו משותפות לכל הטפסים, לדוגמה כל הטפסים עולים במרכב המסך, דברים שעשינו בעבר עם בייס פורם.
אוקיי, כעת בואו ניצור את הטופס הראשי של התוכנית, את זה אנחנו יכולים לסגור, הטופס הראשי של התוכנית, נצרף Windows פורם, לפני שאני אצרף האמת כדאי לעשות ctrl shift b בכדי לבצע בנייה של האפליקציה אם לא נעשה בנייה אז אנחנו לא נמצא את הטופס הבסיס אז בואו נצרף כרגע add windows form ואנחנו יכולים כאן ללכת ולבחור
בwindows form ולבחור בinherited פורם. עכשיו דרך אגב שימו לב אם יש לכם גרסה של ויז'ואל סטודיו אקספרס הגרסה החינמית יכול להיות שלא יהיה לכם את האינהריטד פורם כחלק מהטמפלייטים של הטפסים אם זה המצב לא קרה שום דבר כל מה שאתם צריכים לעשות זה להוסיף טופס רגיל ואז ללכת ולהגדיר שהטופס הזה יורש את הבייס פורם במקום להגדיר אינהריטד פורם פשוט מגדירים טופס רגיל בואו נעשה את זה פעם
אחת נניח שזה המיין פורם שלנו כרגע עדיין לא ירשתי את הבייס כל מה שאני צריך לעשות זה לגשת לקוד בסיס להורשה ולהגיד במקום שהוא יורש את פורם הוא יורש את בייס פורם וכאשר לא הייתה לי אפשרות לבצע תבנית של הורשה אבל זה בדיוק אותו הדבר.
אם אנחנו נפנה כרגע לכאן אנחנו נראה שאוטומטית הוא מצטמצם והופך להיות טופס דומה לבסיס בואו נלך לפרוגרם נבקש להציג את המיין פורם כעת המיין פורם הוא זה שרץ ואנחנו רוצים לבצע איזה שהוא שימוש בריסורס הזה אז בואו ניקח קודם כל איזה שהיא תמונה
picture box נשים את התמונה פה בצד ניגש למאפיינים קודם כל בואו נקרא לה pick online offline נגדיר שהממדים שלה הם זהים בוא נניח 60 על 60 עכשיו היא בדיוק מרובה נגדיר שה size mode שלה זה stretch image נצרף עוד לחצן והלחצן הזה הוא זה שיגדיר האם היוזר הוא אופליין או אונליין נניח שהוא שולט על איזושהי התחברות
מסוימת לאינטרנט או לקו תקשורת כלשהו הלחצן הזה הופך להיות btn אונליין או אופליין ובוא נניח שעל ההתחלה לא כתוב בו שום דבר. נתפוס את הטופס, נוציא ממנו את התותרת ואנחנו רוצים לכתוב קוד בלחיצה של הלחצן.
כל מה שאנחנו רוצים לעשות זה לבדוק מה הטקסט שכתוב על הלחצן. אם הטקסט הזה הוא כתוב בדיוק כפי שהכנסנו בריסורס אנחנו רוצים להחליף אותו מאופליין לאונליין וההפך.
אז איך אנחנו מגיעים לריסורס אז? מה שאנחנו צריכים לעשות זה לגשת לתכונה שנמצאת בכל תופס ונקראת פרופרטיז. אנחנו רוצים לגשת לאוסף הריסורסס וכאן אנחנו יכולים לגשת ולראות שכל הריסורסס שאנחנו הכנסנו בכרטיסי הריסורסס פשוט נמצאים פה כ-hardcoded ממש.
אנחנו רואים שיש לנו פה את ה-online שזה היה סטרינג ויש לנו את ה-offline שזה סטרינג זה הניים שנתנו ויש את המיי אייקון שזה האייקון שציירתי ויש את האופליין אייקון שזה אייקון שהבאנו מהמחשב ואת האונליין אייקון כל הריסורסס שאתם מכניסים לתוך הכרטיסי הריסורסס פשוט נמצאים פה בייניים ואפשר להשתמש איתם
זאת אומרת אנחנו יכולים ללכת ולבדוק האם אפילו בואו נתחיל עם הלחצן btn online offline.txt שווה ל-properties.resources.
בואו נגיד אוף-ליין. אם זה המצב, אז אנחנו רוצים להפוך אותו לאון-ליין. btn-online-offline.txt הולך לקבל את properties.resources.online שימו לב שאון-ליין, הטיפוס שלו זה סטרינג, כי כאשר אנחנו הוספנו אותו ל-resources, שם אונליין ניתן למחרוזת והמחרוזת הזאת זאת הייתה המחרוזת עם הסמיילי בואו נעשה הדגמה
שאני רוצה להשתמש בזה בעוד מקום לדוגמה בטקסט של הטופס וכאן אנחנו כבר רואים למה לפעמים כדאי לנו להחניף מחרוזות לריסורס לריסורסס כי יכול להיות שאנחנו רוצים עם אותה מחרוזת בדיוק להשתמש בכל מיני מקומות נניח שזה איזושהי כותרת ראשית שאנחנו רוצים אותה בכל מיני טפסים או זכויות יוצרים
או כל מיני דברים שאנחנו רוצים בהמון מקומות ואנחנו לא רוצים בכל פעם לכתוב את זה מחדש. בואו נרשום פה את החלק של ה-else. ב-else אנחנו רוצים לבצע בדיוק את הפעולה ההפוכה, ה-offline.
מה בקשר לתמונה? אז אם אנחנו נמצאים כאן בבדיקה של הלחצן ואנחנו ב-offline, אנחנו רוצים להציג UI שכרגע כאילו אנחנו ב-online.
זה אומר שאנחנו צריכים לגשת ל-pick logo, או ליתר דיוק pick-online-offline קראנו לזה, נקודה image ולהכניס את the properties אנחנו ניגשים לאוסף ה-resources ויש לנו כאן את ה-online-icon הבעיה היא ש-icon זה טיפוס אחד שהוא אייקון ו-image זה טיפוס image שזה משהו אחר למזלנו יש
יש פקודה שנקראת to bitmap באייקון שמסוגלת להפוך אייקון לביטמאפ שביטמאפ זה סוג של אימג' אז לכן אנחנו רואים שזה הצליח. בנוסף אנחנו יכולים לשים את זה פה אבל אנחנו רוצים את ההפך את האופליין אייקון ושימו לב שיש לנו גם אפשרות מטפסים אחרים ללכת ולבצע את הפעילות הזאת אוקיי בואו נבדוק
יותר מכל מיני מרחבי שמות נריץ טופס אמור לעלות אנחנו רואים שעל ההתחלה אין שום דבר בלחצן וגם בתמונה ואני שנייה אחת אסגור את זה ניקח לדוגמה את הקונספט של האופליין ונשים אותו בקונסטרקטור נריץ כמובן שבמציאות אולי היה כדאי לעשות את שלושת הדברים האלה בפונקציה נפרדת אבל כרגע העניין ברור הנה אנחנו רואים UR אופליין כאן ופה
למעלה והתמונה של האופליין בואו נלחץ על הלחצן, אנחנו רואים UR Online. זאת אומרת, יש לנו כאן את השאיבת מידע מה-resources ושימוש במידע הזה בטופס.
בואו ניגש ונראה, אולי התמונה הזאת יכולה להיות קצת עוד מטושטשת אם אנחנו נגדיר AutoSize. בואו נריץ.
תמונה עכשיו קצת יותר קטנה ויותר אסתטית. עכשיו אני רוצה לראות האם אני יכול להשתמש עם זה בטופס אחר והאם אני יכול גם תוך כדי הקוד לכתוב מידע לתוך ה-resources או לתוך settings או משהו אחר בואו נראה קודם כל אנחנו רוצים ללכת ולהוסיף טופס נוסף אז בואו נוסיף פורם ניקח הפעם את ה-inherited כי יש לנו את היכולת הזאת כרגע ונגדיר second form
אנחנו טופס אחר טופס שני אנחנו רוצים לרשת את ה-base אוקיי הנה אנחנו טופס שני ומה שאנחנו רוצים