6 VISUAL BASIC : סדנת לימוד

עריכה מקצועית, לשונית ועיצוב – אניקה סואץ | 1024 עמודים : איורים ; 24 ס"מ + 1 תקליטור. – ISBN 965-361-186-0

OCR (הסבר)
שי ב / 8 > "*?, . 2 . סדנת לימוד מהדורה שנייה ייעוץ ועריכה מקצועית: ארז ירון איל גוטליב שש 6% יש להתעלם מכל מה שנאמר לגבי תקליטור מצורף בספר זה קבצי התוכניות (קוד מקור) נמצאים באתר הוד-עמי |!|.60. ורחב3ּ-ססח.צעצעצ בתיקיה "קבצי תרגול לספרים שלא באתר" 6 53516 [בּט5ו/ סדנת לימוד יש להתעלם מכל מה שנאמר לגבי תקליטור מצורף בספר זה קבצי התוכניות (קוד מקור) נמצאים באתר הוד-עמי ||. ס6. וחחה3ּ-6ססה.שעשעצ בתיקיה ''קבצי תרגול לספרים שלא באתר''י עורך ראשי: זהר עמיהוד עריכה מקצועית, בדיקת תוכניות ותפיסת מסכיס: איל גוטליב - מנהל מרכז תמיכה מיקרוסופט ארז ירון - מרכז תמיכה מיקרוסופט 50 וו | עריכה מקצועית, לשונית ועיצוב: שרה עמיהוד תרגוס: אס.אר.סי. בע'ימ עיצוב עטיפה: סטודיו מצגר תודה לכל הקוראים ששלחו את הערותיהם שמות מסחריים שמות המוצריס והשירותיס המוזכריס בספר הינס שמות מסחרייס רשומיס של החברות שלהם. הוצאת =( והוצאת הוד-עמי עשו כמיטב יכולתן למסור מידע אודות השמות המסחריים המוזכריס בספר זה ולציין את שמות החברות, המוצרים והשירותים. שמות מסחרייס רשומיס (17806₪08165 60ז1601516) המוזכריס בספר צוינו בהתאמה. 6 ]150 ,211166) ,פעשססחו// הינם מוצרים רשומים של חברת )1670501 הודעה ספר זה מיועד לתת מידע אודות מוצרים שונים. נעשו מאמציס רבים לגרום לכך שהספר יהיה שלם ואמין ככל שניתן, אך אין משתמעת מכך אחריות כלשהי. המידע ניתן ''כמות שהוא'' ("5 פ3"). הוצאת 005 והוצאת הוד- עמי אינן אחראיות כלפי יחיד או ארגון עבור כל אובדן או נזק אשר ייגרס, אם ייגרם, מהמידע שבספר זה, או מהתקליטור המצורף. לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד. ספר זה מיועד לגברים ונשים כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים/ות. טלפון: 09-9564716 פקס: 09-9571582 דואר אלקטרוני: |60.1.והח00-3ח62ס+חו ם ם ₪ ₪ אתר באינטרנט: |60.1. וחחבּ-ססח.שעצעו//: + 6 53516 [בט5ו/ סדנת לימוד בריאן שילר, ג'ף ספוטס כו וכ 6 23510 |1503/ 8ַחו5 - הסו+ו0ם |3ו60קפ 5 + 8 זס!ופ ההוזם עץֶם השח וחוג .] :זסזו= עס 60ח8ו|סטוק הסטו60 6ַהְבּטַחַח3! חהפוופָחם 6חז ההסזז הסוז5|8חה178 260ההסחזגוה .0 8 וו4 6 ,אסודהח=סקח 60 פטס .9 60 ותִחָהע600 .110 וו\ה-ססר עפ ספתפוופטס חסוו60 86ַ8טחְחבּ! שוסזפ6רו 9 כל הזכויות שמורות 1999 הוצאת הוד-עמי לספרי מחשבים בע''מ ת.ד. 6108 הרצליה 46160 טלפון: 09-9564716 פקס: 09-9571582 דואר אלקטרוני: |ו.1.60הח00-8ח62סחו אין להעתיק או לשדר בכל אמצעי שהוא ספר זה או קטעים ממנו בשום צורה ובשום אמצעי אלקטרוני או מכני, לרבות צילום והקלטה, אמצעי אחסון והפצת מידע, ללא אישור בכתב מאת ההוצאה, אלא לשם ציטוט קטעים קצרים בציון שם המקור. הודפס בישראל 1999 מהדורה שנייה 1/2000 קדס דפוס: טלאור טכנולוגיות דפוס: דפוס איל 0 פזחטות ווה .0+ | וווג-ססה 8ו|2ז6 ,6108 .0.8.ק 0 ,1999 , 53=1! מסת'יב 965-361-186-0 8%פ! תוכן עניינים מקוצר חלק 1: היכרות ראשונית עם 806516 |1506/ פרק 1: להתחיל ב- 83516 |בּטפו\ ב פרק 2: יצירת התוכנית הראשונה ל פרק 3: אבני היסוד של 83516 |בּטפוצ ו פרק 4: שימוש בפקדי ברירת המחדל של 6ו₪35 |בּטפו\ יייייי...... חלק 2: תכנות ב- 6ו805 |0ש5/\ פרק 5: תגובה באמצעות שגרות אירוע 0 פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים 0 פרק 7: שימוש בתיבות דו-שיח לקבלת מידע ל פרק 8: שימוש במשתנים לאחסון מידע 0 פרק 9: יסודות התכנות של 83516 |בּטפו\ 7 פרק 10: שליטה במהלך התוכנית 0 פרק 1.: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים.... חלק 3: רכיבי תוכנית ב- 80516 |500)/ פרק 12: הפקדים המשותפים של )!ס5ס6:;ו הו פרק 13: עבודה עם מערכי פקדים 0 פרק 14: יצירת פקדי 6%עוש46 ב פרק 15: הרחבת פקדי א6עוש46 0 פרק 16: מחלקות: שימוש חוזר ברכיבים 0 חלק 4: ממשקי 80516 |500ו/ פרק 17: יישומים בעלי ממשק מרובה מסמכים ב פרק 18: תכנון ממשק נכון 0 פרק 19: שימוש במרכיבי התכנון הוויזואלי 0 תוכן עניינים מקוצר 5 חלק 5: נושאים מתקדמים בתכנות פרק 20: גישה ל-1ק של פ5עשסוחו/צ 0 פרק 21: עבודה עם קבצים 07 פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 1 פרק 23: ארגז הכלים של המומחה ה חלק 6: 80516 |0ש15/ ומסדי נתונים פרק 24: יסודות מסד הנתונים 004.0 פרק 25: פקד הנתונים ופקדי איגוד נתונים יאו 007 פרק 26: שימוש באובייקטי גישה לנתונים (0אפ) 7 פרק 27: גישה לאובייקטי נתונים מרוחקים (ספא) ו פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אס6עטוז46 (ססה)... 735 פרק 29: הפקת דוחות 7 חלק 7: 80516 |1500/ והאינטרנט פרק 30: שימוש ב-10%ו856/\ ד פרק 31: מסמכי 466% 2 פרק 32: 83516 ו[בּט5ו/ ושימושים נוספים באינטרנט 040 חלק 8: נספחים נספהח 1: הכרת סביבת הפיתוח ו 002 נספח 2: אריזת היישום הונ 0/0 נספח 3: תקציר פקודות 501 0 נספה 4: דפי שרת פעילים (55ג) 0 בספה-5: התקליטור המצורף ייוו 5 97 אינדקס עברי ב 7 0 אינדקס לועזי ווווו5: 1002 6 סדנת לימוד 6.0 8\ תוכן העניינים תכנות בסיסי ב- 88516 |ה8טפו\ 1 עבודה עס רכיבי 8856 |808ו\ 2 יצירת ממשקי יישוס 2 תכנות מתקדס ב- 88516 |הטפו\ כ טכניקות לתכנות בסיסי נתוניס 2 תכנות מבוסס אינטרנט 3 התייחסויות נוספות 5 0 24-20 תוכניות וקוד מקור בהס נעשה שימוש בספר 0 התקליטור המצורף .כ מוסכמות ואלמנטים מיוחדיס בהס נעשה שימוש בספר וה ל מוסכמות - ו אלמנטיס מיוחדיס מש 0 ב וס זל 0 0 בב לשמב 26 חלק 1: היכרות ראשונית עם 806516 |1506/\ פרק 1: להתחיל ב- 83516 !1.111151656066......./15083.. 39 מהי תוכנית מחשב! 0 תוכניות מחשב ושפות תכנות || || 6 |8פו\ היא שפה חכמה 2 החשיבות הטמונה בעיצוב מוקדס של תוכניתך ל שילוב העיצוב המוקדס בתהליך הפיתות 4 מעט על עיצוב התוכנית - 0 מכאן לב פרק 2: יצירת התוכנית הראשונה .........45..11666666666 יצירת ממשק המשתמש לתוכנית שלך 0 כיצד להתחיל ...1 7 שמירת עבודתך 1 קבלת מידע מהמשתמש .52 הוספת פקד תיבת הטקסט 0 יצירת תוויות עבור פקדי התוכנית 7 הוספת לחצני פקודה ב שינוי מאפייני הטופס 0 שמירת עבודתך - שוב 1 קידוד פעולות התוכנית שלך 6 תגובה לאירועיס || תוכן העניינים | 7 הגדרת שגרות אירוע - ב כתיבת קוד בתוכנית | הרצת התוכנית 0 מכאן 0 טפסים 7 חלקי הטופס 7 מה עושיס טפסים!: .73 השימוש בפקדיס + מהם פקדים! 7 פונקציות הפקדיס 7 חקר המאפיינים ל יסודות המאפיינים 7 מאפיינים נפוצים 7 שימוש במאפייניס לשליטה בגודל אובייקט 77 שימוש במאפיינים לשליטה במיקום אובייקט 1 שינוי המאפייניס במהלך פעולת התוכנית 7 שימוש במאפיינים לשליטה על האינטראקציה עס המשתמש 0 אופן ההפניה לטפסיסם ופקדים בקוד 2 מבט ראשון בשיטות ואירועיס ו[ עבודה עם שיטות 0 תגובה לפעולות באמצעות אירועיס - ו כיצד מאפיינים ושיטות מתקשריס האחד לשני ב מבט חוזר על מאפייני הטופס 881 הצגת טופס || מכאן 0 פרק 4: שימוש בפקדי ברירת המחדל של 36 והטפו\ 0 מבוא לפקדים פנימיים .96 עבודה עס טקסט 7 הצגת טקסט בעזרת הפקד |306 | 9 הזנת טקסט בתיבת טקסט 1 פקדיס לבחירת אפשרויות 10 לחצן הפקודה .1020 תיבות סימון 1 לחצני אפשרויות ...10420 תיבת הרשימה 1 התיבה המשולבת .112220 פקדיס למטרות מיוחדות 1 8 סדנת לימוד 6.0 8\ פסי גלילה 116 פקד שעון עצר 1 מסגרות 0 1 עבודה עס מספר פקדיס בשלב העיצוב 1 בחירת פקדים מרוביס 12 השימוש בחלון המאפייניס 7 סרגל הכלים זסזו0= הזוס 1 תפריט זהחוס- 0 8 5 מש א ב 12 מספר פקדיס במסגרת 129 עבודה עס אוסף הפקדים 129 שינוי כל הפקדיס 1 שינוי פקדיס נבחריס 150.1 מכאן 0 0 1 חלק 2: תכנות ב- 86516 |5800//\ פרק 5: תגובה באמצעות שגרות אירוע.............. 133 אירועים - מבוא 0 טיפול באירועיס בתוכניות 0 קביעה מתי התרחש אירוע 1 סוגי אירועים כ כתיבת שגרות מונחות-אירועיס 1 קריאה לשגרת קוד מתוך התוכנית 0 הבנת סדר האירועים || ו ריבוי אירועיס בפעולה יחידה ָ[/|/|/ 0 מציאת סדר התרחשות האירועים || || מכאן 0 1 פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים הההאההההההההההההההההההההההההההההההההההההה אוו :א 17 יצירת שורת תפריטיס .148 תפריטים נפוצים 147.04 הגדרת המרכיביס העיקרייס 10 תפריטיס בעלי מספר רמות 15 איחוד פריטיס בתפריט (הוספת מפרידים) 1 שינוי התפריט 1560 מקשי גישה ומקשי קיצור להפעלה מהירה של פונקציות 1 כתיבת קוד עבור פריטי התפריט 160 הגדרות נוספות ,161 יצירת תפריטים מקוצריס 1 תוכן העניינים | 9 יצירת התפריט 16 הפעלת תפריט מקוצר 166 שימוש בסרגלי כלים ב- 8856 |1508\ 100 עקרונות סרגל הכליס 1 קביעת התמונות בסרגלי הכליס 167 יצירת סרגל כלים רגיל 1 יצירת הלחצניס עבור סרגל הכליס 1 יצירת סרגל כליס לדוגמה 1 כתיבת קוד ללחצניס 17 יצירת סרגל כליס המכיל קוד .176 מכאן 1 פרק 7: שימוש בתיבות דו-שיח לקבלת מידע ...... 181 יידוע המשתמש לגבי מצב התוכנית ופעולותיה 1 הכרת תיבת ההודעה - א80 655806!] 2 הצגת הודעה ..2 18 ערכים המוחזרים על ידי פונקציית א₪15080 1 הצגת פעולת הפונקציה א₪15080 1 השגת מידע מהמשתמש 1 הגדרת הפונקציה אספפטסחז 1 ערכיםס המוחזרים על ידי פונקציית אספסטסח1 1 שימוש בתיבות דו-שיח נפוצות 1 שימושיס כלליים בפקד 8|08וסחסוחוח 60 19 בחינת ביצועי הפקד פַסוהוסחסוחוח 60 1 תיבות דו-שיח המטפלות בקבציס 1 תיבות הדו-שיח ח006 ו- 45 58/6 19 תיבת הדו-שיח זחס= (גופן) 1 תיבת הדו-שיח זסו|ס6 (צבע) 0 0 ל 2 תיבת הדו-שיח זחוזק (הדפסה) 2 תיבת הדו-שיח כ|48 (עזרה) 2 יצירת תיבות דו-שיח משלך 20 יצירת תיבת דו-שיח מותאמת אישית 2 שימוש בתבניות טופס עבור תיבות דו-שיח אחרות 2 מכאן ל 10 סדנת לימוד 6.0 8\ פרק 8: שימוש במשתנים לאחסון מידע ............ 207 היכרות עס משתניס .. מתן שמות למשתניס 8 סוגי משתניס ב הצהרה על משתנים... הצהרה מפורשת.... הצהרה מרומזת.... מחרוזות בעלות גודל קבוע - 0 מערכי משתניס 0 היכן כדאי לעשות שימ וש במשתניס י'וווווויוויווו'וויוווווויוויווווווווווווווווויייי. משתניס הזמינים מכל מקוס יייויוויווווויויוווווווווויוויווויווווויוייווויוווייי.. שמירת משתנה כמקומי םש מש ושים -506 0-8 55/5/55 ש-ש-ם 5 5/3 ם לסוב ב טיב ו פוש בוב 5 ב כ וכיפ כוכת שימוש במשתניס סטטייס ייוריויויי'וווויוויו'וו'ווווויוווווויווווווויוווויוווווויי5.. שימוש בפקודה שו6ו1קא5 חסטקס ב מה שונה בקבועים .... כיצד להשתמש בקב קבועיסם המסופקיס ועיס ||[ | על ידי 8856 |1508\ 0 יצירת קבועיס משלך - 0 פרק 9: יסודות התכנות של 83516 [1503/........... 223 כתיבת משפטיס .1 השימוש במשפטי הצבה יייווייויייויויייויווווויוווווייוויוויוווווווויווווווווויויייי. שימוש בפעולות מתמטיות - 0 חיבור וחיסור - כפל וחילוק 8 שימוש במעריך - קדימות אופרטורים עבודה עס מחרוזות... שרשור מחרוזות.... קביעת אורך המחרו שינוי גודל האותיות חיפוש מחרוזת 0% זת ב 5-ב 5 ל בש ב כ 0 5 בוב ב כ פיב במחרוות ל חילוצ חלקי מחרוזת --///- ו סילוק רווחיס 6 החלפת תווים במחרוואת 7 עבודה עס תוויס מסוימיס || מחרוזות ומספריםס. עיצוב תוצאות - ו פונקציות עיצוב אחרות 'יוויוויווווויוווווווווווויוויוויווווווווווויוווווווווייייי. השימוש בפונקציה )וס ייייווווו'ווי'וווווווויווויוויוווווווווווווווווווווויי יי תוכן העניינים 11 פרק 10: שליטה במהלך התוכנית.........116666666 27 קבלת החלטות בתוכנית 20:00 שימוש בפקודה 1 258 שימוש בהתניית 8156 2 שימוש בהתניות מרובות םכל וט אש שימוש בפקודה 6856 506|60 2 עבודה עם לולאות 2 לולאות זס 05-40 לולאות סס 7 לולאות מספור .270 ניפוי שגיאות קוד 0 כניסה אל הקוד 2 עבודה בחלון 6018%6חחח1 276 מעקב אחר ערכי משתנים 7 איתור שגיאות 270 שימוש בפקודה חס זסזז= - 0 הוספת תוויות שורות קוד 2 שליטה בשטף התוכנית לאחר שגיאה 27 קביעת סוג השגיאה 2 מכאן א מ פיפ א ו 2 פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים הההההההההההההההההההההההההההאההה,ה),א),:* 21 השימוש בשגרות ובפונקציות 2 עבודה עס שגרות 2 עבודה עם פונקציות 2 קביעת טווח ההכרה של שגרות ופונקציות 2 שימוש חוזר בפונקציות ובשגרות 29 עבודה עס טפסיס מרוביס 2 הוספת טפסים חדשים לתוכנית 2 הוספת מודולי קוד לפרויקט - 0 גישה לטפסים ולמודוליס של פרויקט 9 ניהול רכיביס בפרויקט ...296 טיפול בהפניות תוכנית 2 השליטה בפקדיס 297 הוספת טפסים, מודוליס ומחלקות לפרויקט 2 הסרת קטעים 00 שליטה בהתחלת התוכנית 2 12 סדנת לימוד 6.0 8\ קביעת טופס פתיחה 0 שס שיגרה חו8ּ!\ סט5 50 מ 0 ב םש 20 חלק 3: רכיבי תוכנית ב- 805/6 |1500/ פרק 12: הפקדים המשותפים של +)ספסיסוו!....... 305 מבוא לפקדיס משותפיס 2 פקד 5% ו17806: פקד משותף בסיסי ה[ הגדרת פקד 5% 108061 בעת עיצוב היישוס 2 הגדרת פקד 806115%ו1₪ באמצעות קוד 0 ארגון הנתוניס יגיא ...211.10 שימוש בפקד שו6ו/15 1 1 פקד 6ו/66זודך 2 פקד קובד 0 קבלת קלט מהמשתמש 7[ פקד 18066000 2 פקד חאוסססנ\ 2 עבודה עס תאריכיס .2204 גלישה למספריס 2 דיווח על מצב והתקדמות התוכנית 7 | הוספת שורת מצב לתוכנית :346 שורת התקדמות 7[ שילוב קטעי וידאו באמצעות פקד חסטהוחוחג .252 מכאן 2 פרק 13: עבודה עם מערכי פקדים.........1166166665 359 מבוא למערכי פקדים .300.41 אלמנטיס במערכי פקדיס 0 הבנת היתרונות הטמוניס במערכי פקדיס 2 יצירת מערך פקדיס 1 הוספת מערך פקדים לטופס 2 כתיבת קוד עבור מערך פקדים ...304 הסרת אלמנטיס ממערך פקדיס 7 עבודה עס מערכי פקדים 2 שימוש במערכי פקדים בתוכניות 2 מערכיס מקביליס ב 2 יצירת מערך פריטי תפריטים :358-450 טעינה והסרה בעת ריצה ל יצירת האלמנט הראשון במערך פקדים 0 תוכן העניינים | 13 הוספת פקדים בזמן פעולת התוכנית 7 הסרת פקדים בזמן פעולת התוכנית ב פרק 14: יצירת פקדי עו .......1111111166666..6. 377 מבוא ל-460/6% קב כ םש אש ם כ יט ב 37 הצעדיס בבניית פקדי א460/6 2 אסטרטגיות פיתוח 0 יבירת פקד 6%שו460 .379.25 התחלת פרויקט פקד הדוגמה 4001655 0 הוספת קוד לשינוי גודל הפקד 06 -......381 הוספת מאפיין חדש לפקד 0 בדיקת פקד א6%עו460 ב בדיקה בעזרת קבוצת פרויקט 2 בדיקת הפקד בעזרת זסזס|קאם 6%חזסשח1 0 הידור הפקד 7 יצירת קובץ 06% ב בדיקת הקוד המהודר ,389.4 הפצת הפקד למחשב אחר 3 שיפור פקד 460/6% 1 יצירת הפקד הבסיסי ...3920 שיפור הפקד הבסיסי - 1 בדיקת תיבת הטקסט המגבילה ד[ בחירת סמל עבור ארגז הכלים 2 אשף ממשק פקדי א6%שו60 7 הוספת האשף לסביבת 88516 |1508\ .29800 בחירה ויצירה של מאפייניס 0 מיפוי המאפייניס 0 סיוס כתיבת הקוד 1 אשף דפי המאפיינים 40 יצירת הדפיס כואי 2:5 -ו-.... 405 הוספת מאפיינים לדפים 7 שימוש בדפי המאפיינים ביישומיס ...407.2 יצירה ושרטוט פקד 6%שו460 1 התחלת הפרויקט ...408 יצירת ממשק המשתמש :בלול ג-2:0>-.-....408 יבצירת מאפייני הלחצן 1 יצירת אירועי לחצן ...412.0 יצירת דפי מאפיינים עבור הלחצן 0 בדיקת הלחצן הצבעוני בתוכנית 414 מכאן 0 שש 0 50 0 2 5 64 41 14 סדנת לימוד 6.0 8\ פרק 15: הרחבת פקדי 6%ע:60\.....-..6666666666 417 אובייקט זח6ופזה לשמירה על אחידות 7 יבירת דוגמה לאובייקט זח6וטוחג ה מעקב אחר צבעי האובייקט זחסוטוחג ה[ מאפייני האובייקט +ח6וט4 7 האובייקט זסְ0ח6זא= - ו בניית פקד המחשבון ה יצירת הפקד 0 יצירת הממשק 0 הגדרת המאפיין חס80זסקס 0 תכנות שיטות ואירועיס 0 בדיקת הפקד 0 יצירת דפי מאפייניס 0 יצירת אובייקטיס של דפי מאפייניס ל מיקוס פקדים על דפי המאפייניס ב שגרת האירוע 006080960 506|660 0 שגרת האירוע 6806 0 שגרת האירוע פסְפַחהַח6ץ!ססא ל קישור דף המאפיינים אל הפקד | שימוש בדף המאפייניס ו בחירת מספר פקדיס || טיפול בשגיאות בפקדיס - ו פרק 16: מחלקות: שימוש חוזר ברכיבים............ 435 הבנת מחלקות 7 תכנות מונחה-אובייקטיס 1 מחלקות ב- 8856 |1808\ 0 בניית מודוליס מחלקתיים 10 יצירת מודול מחלקתי חדש 0 הוספת מאפייניס למחלקה 0 הוספת שיטות למחלקה 7 הצהרה ושימוש באובייקטיס 3 הוספת אירועיס משלך 7[ יצירת 11 6%שו460 0 יצירת פרויקט א6שו260 0 עבודה עס מספר פרויקטים 1 קביעת המאפיין הופעה ב מספור (וחטחם) ו יצירת מחלקות המכילות אוספים -- 0 שיטות ומאפייניס סטנדרטייס באוספים ב תוכן העניינים 15 יצירת אוסף חדש לפעולות קבוצתיות 0 שימוש באשף המחלקות ה חלק 4: ממשקי 80516 |1500/ פרק 17: יישומים בעלי ממשק מרובה מסמכים .... 461 מבוא ליישומי זס!ו! 0 תכונות טפסי אב 1 תכונות טפסי הצאצא 6 יצירת תוכנית פשוטה בעלת ממשק 1סוו 7 יצירת טופס אב 64 יצירת טופס צאצא 0-7 הפעלת התוכנית "7 ריבוי מופעיס של טופס 9 הגדרת הטופס הבסיסי 0 יצירת טפסיסם תוך שימוש במשתני אובייקטיס ה מילות המפתת 6 ו-חזס6ע6 1 אתחול מופע של טופס צאצא 7 שימוש בתפריטיס 72 טיפול בטפסי צאצא .17 שימוש בסידור אוטומטי 74 טיפול ברשימת חלונות י[/[/// 0 תוכנית דוגמה - יישום 1פו לניהול קשריס 7 יצירת טופס 1סוז ב יצירת טופס צאצא ללקוח 480 יצירת טופס חיפוש 480 לב התוכנית 8 הרצת התוכנית 8 שיפור היישוס 0 8 יצירת מסגרת בסיסית ליישום סו 8 יצירת תבנית טופס אב זסו₪ 7 טופס הצאצא 1 מכאן שש שש סט הש ופ בוש סש וש של אפ 0 ה 16 סדנת לימוד 6.0 8\ פרק 18: תכנון ממשק נכו|.........111111.55166566666. 493 תכנון טפסים יעיליס ה שמירה על טפסים מסודרים ויפיס 7 שיס לב לטפסי קליטת נתוניס 46 השתמש בפקד הנכון כדי לבצע את המשימה 1 פקדיס של ספקים חיצונייס 1 ריבוי טפסיס 98 הבדלי צורת ממשק במחשבי המשתמשיס 0 עמידה בדרישות הלקות 0 תיבת הרשימה (א8₪0 15%)) 0 תפריטים יעילים .507.51 טיפול במספר מופעים פעילים של היישוס 0 מהירות פעולה מדומה 1 מכאן 1 פרק 19: שימוש במרכיבי התכנון הוויזואלי......... 513 שימוש בגרפיקה 0 פקדי גרפיקה 0 שיטות גרפיקה 0 ב עבודה עס טקסט וגופנים .[[[||| 0 התנהגות תיבת טקסט 0 עבודה עם גופניס וצבעים 0 מכאן 0 חלק 5: נושאים מתקדמים בתכנות פרק 20: גישה ל-1ק של פששסחו)\..........2566 543 הבנת 1קה של פצוססחו/\ 7 1 של פשוסחו\\ ב- 8856 |הטפו\ --- 0 זסאוסו/ [קה ו יצירת פונקציית עטיפה .519.1 יצירת מחלקת עטיפה 7 קריאות 801 שימושיות וט טל םס מ ב מב לשכ מ שש ם למ ב/2 ל 5 קריאות [ק\ 'ימהנות" 0 איתור ושליטה על חלונות אחריס 0 המתנה לסיוס פעולת תוכנית 58 קריאות חוזרות ומחלקות משנה 0 מכאן 565 תוכן העניינים | 17 פרק 21: עבודה עם קבצ'ם ........111111111665566665. 567 פונקציות טיפול בקבציס ב- 8856 |808ו\ 9 פונקציה זוס לאיתור קבצים והצגת רשימות קבציס 568 פונקציות המבצעות פעולות על קבציס 1 שימוש בפונקציה ||506 להפעלת תוכניות נוספות 7 איתור קבציס תוך התייחסות ליישוס שלך ב עבודה עס קבצי טקסט 5/6 קבצי טקסט סדרתייס עס מק 77 קריאה מקובצ טקסט סדרתי 5 כתיבה בקובצ טקסט סדרתי 0 קבציס לגישה אקראית - הגדרת מבני קבציס ל יצירת סוג רשומה ל פתיחת קוב לגישה אקראית 5 הוספת רשומות בעזרת משפט זטק 7 אחזור רשומות בעזרת משפט 066 5 שימוש במשפט 566% לגישה אקראית 5 קבצי זא1 0 הבנת קבצי זא1 ל שימוש בקבצי 1א1 ב- 8856 |הטפו\ 0 מכאן 0 פרק 22: שימוש ב-015 לשליטה על יישומים אחרים..-יי..::::::אאיויי ...1421 [ 50 עבודה עס אובייקטי חזסש\ .0 ספריית האובייקטים של פזס/\ 7 יצירת יישומיס ואובייקטי מסמכים 5 שמירה, פתיחה והדפסה של מסמכים 0 עבודה עס טקסט 597 תכונות שימושיות נוספות 7 6 9 עבודה עס |66א5 .5990 יצירת אובייקטי |66א= מ הצבת ערכיס של תאים וטווחיס ...000 שימוש בפקד המכולה 015 0 יצירת אובייקט מוטבע בזמן העיצוב 0 יצירת אובייקט מוטבע בזמן ריצה 0 יצירת אובייקט מקושר 7 מכאן י....-006 18 סדנת לימוד 6.0 8\ פרק 23: ארגז הכלים של המומחה..--.-..56666666.. 605 שיחה מזוהה 0 5 5 28 0 5 דרישות לשימוש בקובצ לדוגמה 0 טכניקות 88566 |1508/\ בהן נשתמש ל הגדרת פקד התקשורת (|ס חס 5ה0וז63וחטו והס) 0 בדיקת השיחות 0 בניית שומר מסך באמצעות 88516 |הטפו\ 0 הגדרת הטופס הראשי (חזסחחובּו) 7 הוספת אנימציה שו התקשרות עס פווסטחו/\ש\ ל תוכנית ייצוא טבלאות משרת 501 למסד נתוניס של 460655 בניית התוכנית לדוגמה - |[ הבנת התוכנית לדוגמה 0 חלק 6: 6ו805 !1560 ומסדי נתונים פרק 24: יסודות מסד הנתונים..........1111116666666. 5 63 עיצוב מסד נתוניס ל יעדי עיצוב 7 פעולות חשובות בעיצוב מסד נתוניס 7 ארגון המידע || שימוש באינדקסיס 7 שימוש בשאילתות ו יישוס התכנון 0 ז 3 הזכ [הטפו\ ל יצירת קוב\ מסד הנתוניס | הוספת טבלה חדשה 0 שינוי שדות ו הוספת אינדקס לטבלה 1 חזרה לחלון העיצוב של 8856 |1808\ 0 הצגה ושינוי מבני טבלאות 1 שינוי או מחיקת טבלאות 0 העתקת טבלה 1 יצירת מסד נתוניס בעזרת כליס אחריס 7 שימוש ב-66655 0 תוכנות לעיצוב מסדי נתוניס מתוצרת יצרניס אחריס 4 תוכן העניינים 19 פרק 25: פקד הנתונים ופקדי איגוד נתונים......... 657 פקד הנתוניס 0 מהו פקד הנתוניס 5 הוספת פקד נתוניס לטופס .660 שני המאפייניס ההכרחייס 0 היכרות עס פקד איגוד נתוניס ל מה עושיס הפקדים האלה 7 הוספת פקדיס לטפסיס 6 שימוש בפקד איגוד נתוניס להצגת מידע 6 יבירת יישוס פשוט 7 הגדרת הטופס ל 007 ניווט במסד הנתוניס 0 שימוש בקוד בשילוב עס פקד הנתוניס 0 הוספה וגריעת רשומות 0 יצירת טפסיס באופן אוטומטי ב הגדרת 6זה2ו/\ וחזס- הס ...0/2 גישה למקור הנתוניס ל בחירת סוג האיגוד .70 בחירת שדות בעזרת חזה2ו/\ וחזס- הס 6/6 בחירת פקדיס 0 מכאן .ל 080 פרק 26: שימוש באובייקטי גישה לנתונים (2.0) :..:11111111165565565666600600000.. 681 מבוא ל-040 82 הגדרת פרויקט הכולל אובייקטי 0ס 68 פתיחת מסד נתוניס קיים 5 בחירת סוג מערך הרשומות בו תשתמש 86-21 שימוש ב-89|6ד 0 שימוש ב-56%החץכ ב שימוש ב-80500%ח5 0 0 שימוש במערך רשומות מסוג ץוחס-0זהצוזס-] 6 הצבת מידע על המסך ...093 גישה לנתוניס המאוחסניס בשדות מסד הנתוניס 0 הצגת נתוניס ביישוס הדוגמה ו שינוי מיקוס מצביע הרשומות 0 שימוש בשיטת פעסוו 9 שימוש במאפיין %ז8וח0%ס8 ...698 שימוש בשיטה 0חו= 9 הגדרת האינדקס הנוכתי בטבלה 700 שימוש בשיטה 566% 1 20 סדנת לימוד 6.0 8\ המאפייניס ח00ו05ק%ח6766ק ו-חסטו05סק6זט|ס5טה .704.11 שימוש במסננים, אינדקסים ומיוניס 7 הגדרת המאפיין זסטוו= 7 הגדרת המאפיין +וס50 0 יבירת אינדקס חדש .707 תוכניות המשנות רשומות מרובות 0 שימוש בלולאות 7 שימוש במשפטי 501 ה[ הבנת פקודות תכנות נוספות ו ל הוספת רשומות 1 עריכת רשומות 1 עדכון רשומות 7 גריעת רשומות 1 מבוא לעיבוד טרנזקציות 1 מכאן | פרק 27: גישה לאובייקטי נתונים מרוחקים (00) 7472 תפיסות לגבי גישה למסדי נתוניס 1 עבודה עס 0086 ילוב ייל ...719124 הבנת מנהלי התקן 0086 1 הגדרת מקורות הנתוניס של 0086 720 אובייקטי נתוניס מרוחקיס - 1 השוואה בין ספ ו-0ס 5 לפ שש 7 גישה למסד נתוניס תוך שימוש ב-₪00 7 שימוש בפקד ₪600%608%8 7 השוואה בין ₪06 לפקד הנתוניס 3 הגדרת פקד ₪06 7 מכאן 7 פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (1656666.....)000 73 מבוא ל-400 6 שיטות התקשרות לנתוניס ל התקנה 7 הגדרת מקור נתוניס 7 שימוש בפקד 0808 400 ...729.4 הגדרת פקד 08% ססה 0 חיבור פקד 0808 00ג למקור נתוניס ...701 הצגת נתוניס 7 תוכן העניינים | 21 שינוי מקור הרשומות באמצעות קוד 0 שימוש בפקד חהִ6ַ8ז8כ 7 הזנת נתוניס לרשת 0 הגדרת פקד םס ל פיצול הרשת .7504 התאמת עיצוב הפקד 7 התאמת הרשת על ידי קוד 758.1 שימוש באובייקטי 818 6%ע460 1/7 שימוש ב-400 ליצירת חיבוריס ל 75 עבודה עס מערכי רשומות 58 אובייקט 60300 7 מערכי רשומות מנותקיס || יצירת מערך רשומות מנותק 7 חיבור מחדש של מערך רשומות 768 שימושיס במערכי רשומות מנותקיס 69 מכאן 0 פרק 29: הפקת דוחות :ב 77 יצירת דוח לדוגמה || הגדרת מקור הנתוניס 7 הוספת +₪600 הזכ לפרויקט + הגדרת דוח נתוניס 40 שש 002 77 הצגת הדות 7 העשרת הדוחות 7 שדות דוחות מוגדריס מראש 7 הוספת אלמנטים גרפיים .780 הדפסה וייצוא ל שדות מבוססי פונקציות ל 7 5 |8ל5ץ) 0 יצירת דוח חדש 7[ התאמה אישית של הדות ...789 שימוש בפקד ₪6001%5 |67/5%3 - 1 מכאן ל 22 סדנת לימוד 6.0 8\ חלק 7: 6ו865 |1506/\ והאינטרנט פרק 30: שימוש ב-1111111666666666......./56110% 11 797 מבוא לשפת 0%ו8567/\ ונ שיפוריס ב-60/\ בעזרת 0%ו8567/\ ל 5% בשרת 60/\ 0 %ו56/ בדפדפן ...801 כלים לעבודה עם 8567106 0 סחופַח= 8חה0קח56 8\ 0 יישוס מארח 0 עורך טקסט ו כלי 60)\ מתקדמיס ...806 שפת 85670%/\ 806 עבודה עס משתני אח8וז3/\ בלבד 806 גישה למערכת הקבציס 3-ו וא-י-..-.508 5% ב- זסזס|קאם 6%חזסשח1 10 אירועיס ושגרות 10 טפסיס 0 פקדי א6עו0/ ...815 0% 8פחחק 56 פטססחו\ ל 917 הפעלת 5606 1 שיטות ואובייקטיס שימושייס 910 מכאן .817 פרק 31: מסמכ' 6%ע60( .....75111116551566606660 821 הבנת מסמכי 606% 22 מהו מסמך א6ע6 ל יתרונות השימוש במסמכי ₪60/6% 0 יבירת מסמך ₪60/6% 5 ו 5 0 סש שיש שק מ ב 5 82 פרויקט מסמך א6עו46 6 יבירת ממשק המסמך 2 הוספת קוד למסמך ל ניסוי המסמך 0 הידור המסמך 5 0 שש 5 22 חקירת אובייקט זח6וט06כז56\ ב כ ו 2 2 הבנת האירועיס החשוביס של אובייקט 6חסוחט6ססז56\ "7" "1 יצירה ואחסון מאפייניס של אובייקט זחסוחט6ססז56\ 2 שיטות אובייקט זחסוט6סכז50\ 20 אובייקט אחווזסקץ במסמכיס 7 20 ו\ הסוסהזטו! +הסוהטססכ א6עח6 20 תוכן העניינים | 23 הרצת 0ז8לו/\ חסש8זסו +הסותט6סכ אס6ע60ה 7 הצגת התוצאות 0 יצירת מסמך מורכב 8 פיתוח מסמכים נוספים ו שימוש והצגת טפסים מהמסמך ו מכאן 0 פרק 32: 83516 ובּ150/ ושימושים נוספים באינטרנט ההההחההההההההההההההההההההההההההההה,ה),א,),* 5 הוספת יכולות דפדפן ליישומיס ל לו להקל סציוו-...546-2 יצירת דפדפן בטופס 0 הפעלת הדפדפן מהיישוס ל תכנות דואר אלקטרוני 1 כניסה למערכת דואר אלקטרוני 85 משלוח הודעה 7 גישה לתוכן הודעה 0 פקד 805167 ד 06%ז%6ח1 800 אחזור !ד 0 העברת קבציס 5 מכאן ל ליגל ו-14איגקי ל ...860 חלק 8: נספחים נספח 1: הכרת סביבת הפיתוה..........1111256. 863 הבנת הרכיביס העיקרייס בסביבת הפיתות 6 התחלה 560 אזור העבודה של |1808/ 885|6 0 שורת התפריטים 86 גישה לפונקציות מתוך שורת התפריטיס 0 ארגון פקדי 8356 |הטפו\ כ ל בד הציור של התוכניות אי ...871 שליטה על טפסים ופקדים 0 חלון הפרויקט 7 היכן מתבצעת העבודה 0 התאמת הסביבה בי אבי 877 24 סדנת לימוד 6.0 8\ נספח 2: אריזת הי'שום..........1111111111111654420 879 הידור התוכנית - 0 אופטימיזציה של הקוד 81 הגדרת שם, כותרת וסמל הפרויקט ...882 הכנות ליצירת תוכנית התקנה 5 אריות פרויקט ₪5 50800870 לבייל -ו-44ב....882 יצירת האריזה של יישוס 5א= 568008106 ל סקירה מפורטת של תהליך ההתקנה 90 אריזת רכיבי 6%שו460 0 הורדה מהאינטרנט 9 אפשרויות 560% לי ...895.4 קבציס המיועדים לשימוש באינטרנט 0 מכאן 9 נספח 3: תקציר פקודות .666.5.........501ש1111.11111 899 הגדרת המושג 501 0 כיצד פועלת .501 ...900.0 מרכיבי משפט 501 0 משפט 56|66% ל הגדרת השדות הרצוייס ...903.2 הגדרת מקורות הנתוניס ו הקטעים | |א, ד1%0ד15 ו-צוס₪ ד6א1ד5זס || הגדרת קשרים בין טבלאות -- ל הגדרת קריטריונים לסינון ...914 הגדרת תנאי המיון -- ל פונקציות סיכוס - || | קבוצת רשומות .921 יצירת טבלה 0 שימוש בפרמטריס 2 משפטי פעולה 9 משפט סשדם ושס 2 משפט זַ55₪א1 .926 משפט = דהססט 2 משפטי שפת הגדרת נתוניס 2 הגדרת טבלאות באמצעות משפטי |סס 0 הגדרת אינדקסיס באמצעות משפטי \וסס 0 שימוש ב-501 30 ביצוע שאילתת פעולה ל יצירת אובייקט ]6סץזפט 0 יצירת ס6ַ6פחץכ ו-0%5ח805ח5 ל משפטי 501 בשילוב עס פקד 808 ל תוכן העניינים | 25 יצירת משפטי 501 1 3 ההכ [הטפו\ וי שימוש ב-66655 - ו אופטימיזציית ביצועיס ב-501 שימוש באינדקסיס 0 הידור שאילתות 0 הקפדה על מבנה פשוט ל העברת משפטי 501 למנגנוני מסדי נתוניס אחריס 0 ספריות מדומות 8 יצירת קבצי 4505 1 יבירת קובצ 857 פשוט ו תגי 56% צד השרת 7 דפי פ6)\ פשוטיס אך דינמייס - ה קבציס כלוליס 0 גישה למסדי נתוניס באמצעות דפי שרת פעילים 7 הפעלת שאילתה על מסד נתונים 0 עדכון נתוניס במסד נתוניס אובייקטי 450 0 ניהול אבטחה בעזרת אובייקט חס|5655 ל שליטה בפלט באמצעות אוב ייקט 6500056 - ו אחזור נתוניס באמצעות אובייקט ₪60065% ל אובייקט ]56/6 0 אובייקט חסספסו|קק ו-ה5. א6ע60 ב-55 0 פרויקט יישוס 115 7 יצירת יישוס 115 ל הפעלת יישוס 115 0 מופעי 606|355)\ ד[ הח60166/\ של תבניות ודו וח6016/\ מותאס אישית... 26 סדנת לימוד 6.0 8\ 0 רק 8 = מימד חדש בתצוגה, יס המלח ממעוף הציפוב תיקיה ראשית 50/9376 (רשימה חלקית) + האנק ו 12 907 אינדקס ובש ואו:ו.. 1009 תוכן העניינים | 27 עבודות הייעוצ וההגהה הטכנית של ספר זה בוצעו על ידי שניים מהבולטים באנשי התמיכה בסביבת 1670504 בתקופה זו. השניים מבטאים את המגמות המתגבשות בתעשיית התוכנה המתחדשת ללא הרף. איל גוטליב, הינו מנהל מרכו התמיכה הטלפוני של חברת 1670506 ישראל, והוא אחראי באופן יוס-יומי על מספר רב של אנשי תמיכה מומחיס במוצרי 6-050%ו1]. איל הינו בעל ניסיון רב בסביבת המשתמש והבנת צרכיו, בפיתוח בסביבת המשרד הממוחשב וכן בפתרון סוגיות הקשורות בהתאמת שגרות מערכת ההפעלה, עם דגש על הסביבה העברית. איל שהגיע אל תחוס המחשוב דרך שלל תפקידיס שאינס קשורים כלל לענף, ממצה את היכולות הגלומות במוצרי הפיתוח המוא (סגח) דוגמת 8856 |1508/, מוצריס המאפשרים לכל אדם, הפתוח לקליטת החשיבה התכנותית, לפתח יישומיס מורכבים, תוך שימוש בטכנולוגיות שבקצה הקשת הטכנולוגית, הקפדה על יציבות, קלות פיתוח והתמקדות במרכיביס החשובים. ארז *רון מייצג את המספר הגובר של מוחות צעיריס ומבריקיס בענף המחשבים. צעיריס אלה, למרות גילם, מציגיס יכולות מרשימות בתחוס הטכנולוגיה המתקדמת. == ארז, שהינו מהראשוניסם שבמוסמכי 6 88%6 |ּ50ו\ וו בישראל, מחזיק גם מספר תארי הסמכה נוספים של ו08ח165510סזק 0% במערכות הפעלה, ומשמש כאיש תמיכה בכיר במרכז התמיכה של 6ספסזסווא, וכמפתח פנים-ארגוני. 9 ₪0 5 !6/6 "0+ ז'יוססקט5 ח6וחושיוק |06ו15 ++16050\/ 00 [008ו0)655זק 000 | 000 זי | 8 סדנת לימוד 6.0 8\ פתח דבר שפת הפיתות 88516 |1508, בשונה משפות פיתוח אחרות, מתמקדת במשתמש המפעיל את היישום, בעוד שנקודת המוצא של שפות פיתוח האחרות היא הלוגיקה של התהליך, או יעילות ניהול משאבי המחשב (למשל 6). המשתמש חייב להיות נקודת המוצא, אחרת הוא נשכח בתהליך. נקודת המוצא של 6 |אטפו\ היא: קודס כל נביט מנקודת ראותו, נבין מה הוא רוצה לראות וכיצד היה רוצה להפעיל את התוכנית, אותה אנו מפתחים, ורק אז נוסיף מאחורי הקלעים את הקוד המבצע ואת. סביבת הפיתוח של 8856 |8טפו\ באה לענות גס על צרכיס נוספים של מפתחי תוכנה : פשטות כתיבת קוד - שפת התכנות מבוססת על 8856 הישנה והפשוטה. קלות הפעלה - סרגלי כלים ותפריטים כמו בכל מוצרי 0066 (חזסש\, |60א5 ו-%חוסקזס/שסק). מערכי מידע העומדים לרשות ולעורת המפתח - רק הקש 1" או לח לחיצה ימנית בעכבר. אשפים (05ז28ו/)), תבניות (3065!קוח6ד) ועזריס (5ח001) - קטעי תוכניות מוכנים מראש, לזירוו תהליכי פיתוח. שימוש ברכיבים (שח6חסקוחס6) מוכנים - במיטב הטכנולוגיה העכשווית: קח פקד, שים אותו בתוכנית שלך, וכאילו כתבת את כל קטעי הקוד שמאחוריו. יצירת רכיביסם לשימוש מרובה - צור פקדיס בעצמך, לשימוש תוכניותיך או כתוכנית קטנה לשימוש מפתחיס אחריס. גישה קלה לבסיסי נתוניס - בדיוק במידת המאמצ שברצונך להשקיע. תוכל לפתח תוכנית המציגה מידע השמור בבסיס נתוניס (למשל 4600055), ומאפשרת לך להוסיף מידע, למחוק מידע ולשנות אותו, ללא כתיבת שורת קוד אחת! פיתוח מואץ ליצירת אב-טיפוסים - מינימוס שורות קוד, מקסימום עזריס סביבתייס (אשפים, תבניות, השלמה אוטומטית), מידע מספריות רכיבים 001660 ז5שסז8) ומאגרי עזרה גדוליס, ברוריס ועמוסיס בדוגמאות קוד מוכנות... פתיחות מלאה למערכת ההפעלה - שימוש בשגרות מערכת ההפעלה (15|כ), לפעילויות מורכבות המצויות מחוצ לתחוס הנתמך על ידי השפה הבסיסית. תמיכה מובנית בטכנולוגיות החדשות ביותר - |0סס, תוך שימוש ביכולות השלמה אוטומטית וה-זספאוסזם 66[ט0. פתח דבר | 29 את יתרונות סביבת הפיתוח המתקדמת, מבית 0050%ו6, תוכל למצוא בספר 6 83516 [ה150/ - סדנת לימוד. הספר כולל הנחיות ברורות, המלוות בתמונות מסכיס והרבה קטעי תוכניות, אשר ילוו אותך החל מבניית יישוס פשוט ועד לפיתוח יישומיס מורכביס ומבוססי אינטרנט, תוך שימוש בטכנולוגיות המתקדמות ביותר. כל קורא והידע המוקדס שלו, והספר, בדיוק כמו 88516 |508ו/, ייספק את ההדרכה הרצויה. אך 88566 |1808/ הינה יותר מסתס שפת תכנות וסביבת פיתוח. היא גס הבסיס ל-84/ (שפת הפיתוח המצויה מאחורי מוצרי 066 ומוצריס רביס אחרים). 84\ מאפשרת לך לכתוב קוד ב-6זס/\, למשל, המקבל נתון ממשתמש, ועל פי נתון זה - מפעילה את |66א= ליצירת גרף מנתוניס השמוריס ב-66655, וכל ואת בשורות קוד ספורות (לא יותר מ-10 פקודות), תוך ניצול החיכולות הבנויות בתוך כל אחת ממערכות אלו, כל אחת בתחוס מומחיותה. ובל נשכח את האינטרנט. שס אנו פוגשיס חבר נוסף במשפחת 8856 |508ו/\ ושמו 5% /\. ואס כבר היכרתם את 8560%\ - אתס יכוליס לפתח גס טפסיסם ב-אססטטס ואפילו תנועות מורכבות ב-7.0 ז6צז56 .501 ! מה עוד! + פיתוח דפי |אדחס - יש תבנית מוכנה. + כתיבת פחסטפסו!סק\ 115 - גם לכך יש תבנית. ** %5ח6חסקןוח60 175 ,567/65 015 ,ה חסקו 60 6006 ₪6058016. + ל-8856 |1508\ פתרונות קלים, מהיריס ואחידיס לרוחב כל המערכת. ביצועים ניתן לשפר על ידי שיפוריס בחומרה (מעבד חזק יותר, הוספת ויכרון וכדומה). את נקודת ראותו של המשתמש ניתן לבטא בקלות, בבהירות ובמהירות בעזרת 88516 |1508/, והצעד הראשון מתחיל בעמוד הבא... בהצלחה והנאה, 60 החס 5 זס1 +וסקק5 זסווחסזוק ]116705066 15786 20 סדנת לימוד 6.0 8\ מבוא תכנות בסיסי ב-₪3516 |בּטפו ספר וה כולל אומנס חומר רב בנושאי תכנות מתקדמים ב- 8856 |8ט5ו/, אך בטרס תוכל להתמודד עס נושאים אלה עליך לרכוש תחילה יסודות תכנות מוצקים. חלק 1 - היכרות ראשונית עם 83516 1503/, יעניק לך היכרות ראשונית עם יכולות השפה ועס העבודה בסביבת הפיתוח. פרק 1 - להתחיל ב- 83516 [1503/, מסביר כיצד משמשת 88566 |08פו/\ כלי ליצירת תוכניות מחשב מבוססות פווססחו/ו, ומסייע בתכנון תוכניתך הראשונה. פרק 2 - יצירת התוכנית הראשונה, מלמד אותך, שלב אחר שלב, את מלאכת הבנייה של יישוס המתפקד באופן מלא ב- 88516 |1508/\. פרק 3 - אבני היסוד של 88516 |ב3ּשפו/, עורך עבורך סיור היכרות עס טפסיס ופקדים, הרכיביס הבסיסיים בכל תוכנית אותה תיצור ב- 88516 |1508/\. פרק 4 - שימוש בפקדי ברירת המחדל של 83516 |הטפוצ, יילמד כיצד לעבוד עס קבוצת הפקדיס השימושייס ביותר בעת עיצוב התוכנית ובנייתה. חלק 11 - תכנות ב- 83516 15031/, מכסה את כל היסודות להס אתה זקוק כדי שתוכל להתחיל בהרפתקת התכנות. פרק 5 - תגובה באמצעות שגרות אירוע (706600765ק +חסעם), מתאר בפניך כיצד ניתן להקנות תכונות אינטרקטיביות לתוכנית 8856 |1808/. תלמד כיצד להקנות לתוכניתך יכולת תגובה לצעדיס אפשרייס שוניס של משתמשיה. בפרק 6 - שליטה נוספת למשתמש: תפריטים וסרגלי כלים, ובפרק 7 - שימוש בתיבות דו- שיח לקבלת מידע תלמד כיצד להרחיב את תוכניתך על ידי שימוש בתפריטים, סרגלי כליס ותיבות דו-שיח. באמצעות אלה ניתן ליצור ממשק המוכר למשתמש כתוצאה מעבודה קודמת עס אפליקציות מבוססות פווסטחו/\. שימוש נכון בתפריטים, סרגלי כליס ותיבות דו-שיח מאפשר לך ליצור תוכניות מותאמות לאינטואיציה של המשתמש. במהלך פרקים אלה תבחן גם את מודל האירועים ((006 +חסעם) שהוא כאבן פינה בתכנות בסביבה מבוססת פשספחוצ\. פרק 8 - שימוש במשתנים לאחסון מידע, ופרק 9 - יסודות התכנות של 6 !1509 מובילים אותך לתוך עולס פקודות, מבניס ומשתנים. 8856 |1508/ מבוססת על יסודות מוצקים של שפת 6ו885. 88516 |טפו/\ מועשרת במיגוון תכונות ופונקציות, ומאפשרת לכתוב תוכניות למשימות מכל סוג אפשרי. תלמד ליצור ולהשתמש במשתנים, ולבצע פעולות בשילוב עס מתמטיקה ומחרוזות. פרק 10 - שליטה במהלך התוכנית, מלמדך לשלוט בתוכניתך באמצעות שימוש בהחלטות (05ח0ו665כ) ולולאות, ובאמצעות טיפול נכון בשגיאות. פרק 11 - ניהול הפרויקט: תת-שגרות, פונקציות, וריבוי טפסים, מעמיק את היכרותך עס יסודות התכנות, ומאפשר לך להרחיב את קוד המקור של תוכניתך. מבוא | 31 עבודה עם רכיבי ₪3516 |בּטפו חלק 111 - רכיבי תוכנית ב- 83516 15031/, מרחיב ומעמיק את הידע הבסיסי שרכשת בפרקים קודמים ומציג בפניך רכיבים ממיגוון סוגים, אשר יאפשרו לך לשפר את איכות תוכניותיך. חשוב על רכיביס אלה כאבני בניין בעלות תכונות מתקדמות יותר מאלה הפשוטות, אשר היכרת בפרקים קודמים. %, *% 4 פרק 12 - הפקדים המשותפים של 00%ס5סז6ו1א, מציג פקדיס נוספיס בהס תוכל להשתמש בעת בניית תוכניותיך ב- 8856 |15808/. בפרק 13 - עבודה עם מערכי פקדים, תלמד טכניקות מתקדמות יותר של שימוש בקבוצות משתנים, אשר יסייעו לך לייעל את תוכניותיך. פרק 14 - יצירת פקדי א6עוז46 ופרק 15 - הרחבת פקדי א6עוז6א - יביגו בפניך את פקדי א6%ש860 בצורה מעמיקה. ניתן לעשות שימוש ברכיבים אלה במסגרת תוכניות 8856 |1508/, יישומי אינטרנט, או אפליקציות אחרות בעלות תמיכה ב-60/6%. | בפרקים אלה תלמד כיצד ליצור פקדי 6%ע60 וכיצד להרחיב את תכונותיהס לאחר יצירתם. פרק 16 - מחלקות: שימוש חוזר ברכיבים, מלמד אותך כיצד ליצור מחלקות ולנצל את יתרונות רכיביסם רבי עוצמה אלה, בעיקר בעת עבודה עס מספר רב של תוכניות, המיועדות לביצוע משימות דומות. יצירת ממשקי יישום בחלק /1 - ממשקי 83516 ו3ּ150/, יוצגו בפניך מספר עקרונות אשר יסייעו לך בתכנון ממשקי היישוס שלך. הממשקים הס יחלונות הראווהיי של התוכנית, אשר דרכס מנוהלת האינטרקציה עס המשתמש. + +: %, % . 22 פרק 17 - יישומים בעלי ממשק מרובה מסמכים - ילמדך כיצד לבנות תוכנית העושה שימוש בממשק מרובה מסמכים (%671866-01ח1 %חסוהטסס 6!קשוטוא). תוכנית 1סו מאפשרת למשתמשיה לעבוד בו-ומנית עס מספר חלונות, המופיעיס בשטת חלון ראשי אחד. תוכל להבחין בהבדלים שבין יישומי 1 ליישומיס בעלי ממשקיס המבוססים על מסמכים בודדים (501 - 105671866 +ח6הט6סכ 6ו8ח51). בפרק 18 - תכנון ממשק נכון ובפרק 19 - שימוש במרכיבי התכנון הוויזואלי, תלמד מדוע חשוב לתכנן את תוכניותיך בטרס תיגש לכתיבת הקוד. במסגרת פרקיס אלה יוצגו בפניך צעדים שגויים העלולים לפגוע באיכות הממשק, ותלמד כיצד לחימנע מטעויות פיתוח נפוצות. סדנת לימוד 6.0 8\ תכנות מתקדם ב- 83516 וַבּש15\ חלק / - נושאים מתקדמים בתכנות, כולל כמה וכמה נושאיס החורגים מן החומר שלמדת עד כה, ומתמקד בטכניקות פיתוח ייחודיות. + +: פרק 20 - גישה ל- ₪1 של פעשסחו/ש, מראה לך כיצד ניתן להשתמש בשגרות התכנות המוגדרות מראש, אשר משולבות, בהמוניהן, בממשקי היישומים של 5וססחחו/ו\. תלמד כיצד לנצל לצרכיך את ספריות הקוד העצומות, המשולבות בכל יישוס מבוסס פאוסבחו//. פרק 21 - עבודה עם קבצים, ילמדך כיצד להשתמש בקבצים מסוגים שוניס למטרות אחסון ואחזור מידע. פרק 22 - שימוש ב-015 לשליטה על יישומים אחרים, מתאר כיצד ניתן להשתמש ב-015 על מנת ליצור אינטראקציה בין היישוס שלך ליישומים אחרים, תוך ניצול מקסימאלי של יתרונות 015. פרק 23 - ארגז הכלים של המומחה, מציג בפניך מספר אפליקציות עצמאיות של 6 |8טפו\, המיועדות למיגוון משימות מיוחדות ומעניינות. טכניקות לתכנות בסיסי נתונים חלק נרחב מן התוכניות הקיימות בעולס העסקי בו אנו חיים, הן תוכניות המשלבות עבודה מול בסיסי נתונים. מידת מורכבותן של תוכניות אלו משתנה: יש תוכניות פשוטות, המיועדות לטיפול ברשימות דואר, ולעומתן תוכניות מורכבות המיועדות לטיפול במערכת הזמנות וחיוביס בארגוניס גדוליס. חלק 1/ - 83516 |ב1503/\ ומסדי נתונים, מציג בפניך את תהליך בנייתן של תוכניות בסיסי נתוניס הנותנות מענה למיגוון צרכיס. %, % . פרק 24 - יסודות מסד הנתונים, מתאר כיצד ליצור, לעדכן ולשנות בסיסי נתוניס. פרק 25 - פקד הנתונים ופקדי איגוד נתונים ממשיך איתך צעד נוסף קדימה ומלמדך כיצד ניתן ליצור יישומיס במהירות, על ידי שימוש משולב בפקד הנתוניס והפקדים אשר ניתן לקשר אליו. פרק 26 - שימוש באובייקטי גישה לנתונים (0פ), ופרק 27 - גישה לאובייקטי נתונים מרוחקים (ססא), ילמדו אותך כיצד לרתוס את משאבי הפיתוח רבי העוצמה של 88516 |508ו/, ליצירת אפליקציות בבסיסי נתוניס. פרק 28 - גישה לאובייקטי נתונים באמצעות פקדי 6%ע46 (400) מתאר עבורך את המודל העדכני של 1167050 לעבודה מול בסיסי נתונים. ובסוף, פרק 29 - יצירת דוחות מציג בפניך זוג כלי דיווח צד שלישי: +60 פּטְהס זפ ו- 5זוסק₪6 |67/508, המשמשיםס אותך להצגת מידע שמקורו בבסיסי הנתונים המנוהלים על ידי יישומיך. מבוא | 33 תכנות מבוסס אינטרנט בחלק %11 - 835|6 |בּט5!ו/ והאינטרנט, הנך נהשף לעולס מתפתח של שימוש בווריאציות 8856 |08פו\ לשס בניית אפליקציות מבוססות אינטרנט. % % 0 בפרק 30 - שימוש ב-+85610/ תלמד להכיר את קרוב המשפחה של |8שפו\ 6 פרק 31 - מסמכי 6%ש86₪ מרחיב ומגבש את הידע שצברת בפרקיס קודמים לכדי יכולת פיתוח של רכיבי א6טו6₪, המאפשריס שיתוף בשיטה מתקדמת. פרק 32 - 83516 [1503/ ושימושים נוספים באינטרנט, מלמד כיצד לשלב תכונות אינטרנט ביישוס, כדוגמת יכולות דפדוף בדפי הרשת וניהול דואר אלקטרוני. התייחסויות נוספות בחלק 111\ - נספחים תוכל להסתייע כמדריך מקצועי בעת תכנון ופיתוח יישומיס ב- 8856 |1508/, כמו כן תמצא שס הוראות על אופן השימוש בתקליטור. נספח 1 - הכרת סביבת הפיתוח, לוקח אותך לסיור בממשק המשתמש של |אטפו\ 6. תוכל להיעזר בו כמדריך במהלך היכרותך הראשונית לסביבת הפיתות. נספח 2 - אריזת היישום, מתאר בפניך כיצד להכין את תוכניות 8856 |8טפו\ להפצה. נספח 3 - תקציר פקודות ‏ 5001, מניח בפניך את יסודות שפת .501 (5070600160 6 /וזסט0)), המשמשת לביצוע משימות כגון אחזור מידע בבסיסי נתוניס. תוכל להפיק תועלת מן המידע בנספח במהלך קריאת הפרקים העוסקים בגישה לבסיסי נתוניסם באמצעות תוכניות 88516 |8טפ1\ . נספח 4 - דפי שרת פעילים, מלמד כיצד 106ז856/ מעובד על שרתי אינטרנט, כדי ליצור גמישות במידע המוצג ברשת. נספח 5 - התקליטור המצורף, פרטיס בהמשך. תוכניות וקוד מקור בהם נעשה שימוש בספר כל קטעי הקוד המופיעים בספר זה, ניתניס בתקליטור המצורף. תוכל להשתמש בקטעיס אלה בשלמותם כדי לחסוך מן, ולמנוע טעויות הקלדה במהלך העבודה עס הדוגמאות שבספר. כמו כן, תוכל למצוא את כל התוכניות המופיעות בספר. 4 סדנת לימוד 6.0 8\ התקציטור המצורף .- בתקליטור המצוכף תמצא את תיקיית קבצי הקוד הרלוונטיים לספר גה > תיקיה בשם- 1 הנמצאת תחת התיקיה 800%5.: בנוסף, תמצא- בר קטלוג ואדה של הוד-עמי- ותוכנות תופשיות. להרחבה על תכולת התקליטור ואופן השימוש ברך פנה לנספת-5. מוסכמות ואלמנטים מיוחדים בהם נעשה שימוש בספר זה ספר זה עושה שימוש במספר מוסכמות ואלמנטים מיוחדים, במטרה להדגיש נושאיס מסוימים, ולהקל על הקריאה והשימוש בספר. בטרס תתחיל בקריאה, מומלצ כי תתבונן במוסכמות ואלמנטיס אלה ותאפשר להסם להרחיב את ניסיונך כקורא: מוסכמות הרשימה שלהלן מפרטת את המוסכמות בהן עושה הספר שימוש: * | מילים ומשפטים המדגישים את כוונת המחבר, כמו גם מונחיס חדשים, מופיעים באותיות מודגשות. + קטעי הקוד מופיעיס ברקע אפור. > מקשי הפעלה מסומנים על ידי קו מדגיש, למשל, הביטוי הבא: 5חסוטקס ,5!ססד מלמד כי ניתן להיכנס לתפריט פ|ססד על ידי צירוף המקשיסם ז++/4 ואחר להפעיל את הפקודה פחסשסס על ידי הצירוף 6+0!. + חלקים שונים בקטעי הקוד המובאים בספר, מופיעים מדי פעם בגופן נטוי. אלה הס חלקיס אשר עליך להוסיף לתוכניות קיימות. שיטה זו מאפשרת לך לראות מה עליך להוסיף או לשנות על פי ההקשר. + בשל מגבלות הרוחב של עמודי הספר, נאלצנו במקריס מסוימים, לשבור שורות קוד ארוכות במיוחד למספר חלקים. במקריס אלה, מופיע, בסוף השורה השבורה, סימן ההמשך ( ) של 8856 |1508/. בעת העתקת הקוד למחשב, תוכל להשמיט את סימני ההמשך ולכתוב את הקוד במלואו בשורה בודדת או לחילופין - להעתיקו כפי שהוא מופיע בספר. תוכנת 88516 |8טפו\ תדע לפרש את הקוד בכל אחת מן הצורות שתבחר. מבוא | 35 אלמנטים מיוחדים סוגיס שוניס של מידע מוצגיס בספר באמצעות אלמנטים מיוחדים. להלן הסבריס ודוגמאות אשר יעזרו לך להכיר את האלמנטיס השוניס ומשמעותס. כל פרק מתחיל עם י'מפת דרכים'" או רשימת נושאי משנה. כמו כן, בסוף כל פרק, תמצא סעיף ימכאן והלאה..." בו תמצא סיכוס קצר של הנושאים שנדונו במהלך הפרק וכן הפניות לפרקים אחרים, אשר עוסקיס בנושאיס קשורים, או מרחיבים את הדיון בנושאיס שכבר למדת. ראה הפניות להערות הסימוכין המשולבות בגוף הפרק, והפניות למקומות נוספים המכילים מידע לגבי הנושאים הנלמדים. טיפ: המלצה קצרה ושימושית המתייחסת לפעולות ותהליכים מהירים הנוטים לחמוק מן העין במהלך התכנות. הערה: מידע נוסף אשר עשוי לעזור לך להימנע מבעיות מיותרות, או עצה טובה הקשורה לנושא הנלמד. ם אזהרה: אזהרה בפני בעיות העלולות להיגרם על ידי תהליך מסוים, תוצאות בלתי צפויות וטעויות נפוצות שיש להימנע מהן. . בתקליטור: " הפניות לקבצי הקוד שבתקליטור המצורף. הערות שוליים: הסברים ארוכים יותר אשר אינם חלק מן הזרימה השוטפת של הפרק. קרא את הערות השוליים לצורך העמקת היכרותך עם הנושאים הנלמדים. 66 סדנת לימוד 6.0 8\ חלק 1 היכרות ראשונית עם 6ו₪35 ובּטפו ]וז 6 : 0 5 שו >ן/\ של = פרק 1: להתחיל ב- 83516 ובּ150 פרק 2: יצירת התוכנית הראשונה שלך פרק 3: אבני היסוד של 83516 |בּשפו\ פרק 4: שימוש בפקדי ברירת המחדל של 83516 |ב1503\ 7 1 להתחיל ב- 83516 |בּשט5ו פרק 1: להתחיל ב- 8856 |גטפו\ ‏ 39 כאשר אנשיס פוגשיס אדס המומחה ב- 8856 |8טפו\ הס בדרך כלל מעלים בפניו את השאלות הבאות: + מהל 8856 |1508/\? > האס 8856 |1508/ חיא תוכנית? + מה ניתן לעשות עם 88516 |1508/? > מדוע כדאי לי ללמוד 88516 |1508\ז חבילת 8856 |ה508/\ של חברת 167050 מוגדרת כמערכת פיתוח. באופןו פשטני, מערכת פיתוח זו מיועדת לכתיבת יישומי מחשב מבוססי פווספחו/\. בחבילה נכלליס 6 | ומספר כליםס נוספים המיועדיס לסייע בכתיבת תוכניות. 88516 |1508/\, כשלעצמה, אינה אפליקציה, אלא כלי שבאמצעותו ניתן לפתח אפליקציות. חבילת 8856 |508ו מאפשרת לפתח יישומיס המותאמיסם באופן אישי לדרישות המשתמש ופותרת אותך (או את החברה שלך) מהתלות במוצרי מדף סטנדרטיים. תוכנית מחשב טובה היא זו המגלה גמישות ומתאימה את עצמה לדרישות המשתמש, זאת בניגוד לתוכנית המאלצת את המשתמש להתאים את עצמו למגבלותיה. פרק זה מציג בפניך את משמעות המושג תוכנית מחשב ודן בשפות תכנות ובתרומתן ליצירת תוכניות המותאמות לצרכיך. הפרק מסיים בציון מספר נקודות חשובות אשר עליך להביא בחשבון בעת תכנון וגיבוש תוכנית מחשב. חלק זה כולל גס קישור קצר לפרק 2, יצירת התוכנית הראשונה. מהי תוכנית מחשב? תוכניות המחשב אשר אתה מפתח ב- 8856 |1508/\ מכונות גס יישומים, תוכנות או אפליקציות. תוכניות אלו יכולות לבצע כמעט כל משימה אשר אתה מעלה בדמיונך. יישומי מחשב מתחלקיס בדרך כלל, לשתי קטגוריות עיקריות: מוצרי מדף (ססִסַהּא6בּק), ויישומים מותאמים אישית (500ט6). המונח מוצרי מדף מתייחס לכל אותם יישומיס אשר ניתן לרכוש בחנויות התוכנה, באמצעות משלוח בדואר, ישירות מן היצרן וכיוצא בזה. מוצרי מדף מתוכננים מראש לטיפול במשימות מסוימות. לדוגמה, ניתן לרכוש את התוכנה 6זס)\ 160508 לעריכה ועיבוד תמלילים, את התוכנה אה" חו/\ של %66ה8חץ5 לשליחה וקבלת פקסיס באמצעות המחשב, או את תוכנת ה055860ז1\ של 6166 להגנה על המחשב מפני וירוסיס. לקטגוריה זו משתייכיס גס משחקי המחשב, כדוגמת 5%ץ₪ של 6חטטז006ז8 או זסז3!חו5 0%ו!= של אספססווא. היישומיס שהוזכרו לעיל הינס חלק מזערי מעשרות אלפי מוצרי המדף המיועדים למחשבי 06 מבוססי פושסטחו/ץ. יישומים מותאמים אישית מיועדיסם בדרך כלל לביצוע משימה מיוחדת כלשהי במסגרת ארגון מסוים. לדוגמה, חברה מסוימת הזקוקה לתוכנית מחשב אשר תנהל מערכת הזמנות ותנהל מעקב אחר מוצרים, מרגע כניסתם למלאי ועד שיווקס ללקות. אס לא קיים בשוק מוצר מדף העונה לצרכי החברה, ניתן לפתח יישוס מותאם אישית, 20| סדנת לימוד 6.0 8\ לביצוע המשימה הדרושה. אחד היתרונות ביישוס מותאס אישית במקרה זה, היא שניתן להתאימו באופן שוטף לצרכי החברה המשתנים. זאת להבדיל ממוצרי מדף, אשר בדרך כלל לא ניתן להתאימס או לשנותם על פי צרכיו האישיים של המשתמש. הערה: יש תוכניות מחשב, המהוות שילוב של מוצר מדף ויישום מותאם אישית. יצרני תוכנה שונים פיתחו מוצרי מדף המכילים תכונות אשר המשתמש יכול להתאים לצרכיו. תופעה זו נפוצה בעיקר אצל יצרני תוכנה של שוק אנכי, אשר מוצריהם מיועדים לתחום תעשייתי מסוים. לדוגמה, כשלעצמי, השקעתי מספר שנים בפיתוח תוכנה המיועדת למנהלי תערוכות ומסייעת בארגון שווקי חוצות, ירידי עתיקות, אירועים מסחריים וכיוצא בזה. כל לקוחותיי משתמשים במערכות זהות ביסודן, אשר עברו התאמות ושינויים כדי לענות לצרכיהם האישיים, בהתאם לסיטואציות הארגוניות השונות. סוג נוסף של תוכנות "בנות תערובת" הינם מוצרי מדף בעלי ממשק משתמש גמיש. ממשקים אלה, הניתנים להתאמה אישית על ידי המשתמש, הופכים למעשה, כל מוצר מדף ליישום מותאם אישית! לכל תוכניות המחשב, באשר הן, קייס מכנה משותף בסיסי והוא עובדת היותן כתובות בשפת תכנות אחת או יותר, כדוגמת 88516 |1508/\. תוכניות מחשב ושפות תכנות תוכנית מחשב היא בסופו של דבר סדרת הוראות הגורמות למחשב לבצע משימה מסוימת. שפת מחשב, כדוגמת 8856 |1508/, משמשת לתרגוס הוראות משפת בני האדס לפקודות אותן יכול המחשב להבין ולבצע. אס נביט לרגע ברמה הבסיסית ביותר של המחשב, נמצא כי המעבד, האחראי יותר מכל על ביצועי המחשב, מבין אך ורק הוראות ספרתיות, או ליתר דיוק - פקודות פשוטות ביותר העוסקות בעיקר בהעברות מספרים בין כתובות ויכרון. פקודות פשוטות אלה, אותן מבין המעבד, נקראות שפת מכונה (סחַהַּפַח ! 6חוח86א), כלומר הפקודות הבסיסיות ביותר באמצעותן ניתן לתפעל את מחשב 6ק. מקובל להתייחס לשפת מכונה כשפת רמה נמוכה (8000806 ] |16%6 צוס)), זאת משוס שהיא ממוקמת עמוק למטה, ברמת ההבנה של המעבד. כפי שאתה בודאי מנחש, כתיבת תוכניות בשפת מכונה היא משימה מרתיעה למדי. למזלנו, לא נדרשת בקיאות בשפת המעבד לצורך בניית תוכנית מחשב. כיוס, עומדות לרשותנו מיגוון שפות תכנות, המאפשרות לנו לעבוד ברמות גבוהות יותר ולכתוב תוכניות המורכבות מהוראות מחשב בשפה הדומה מעט לאנגלית. בעת הפעלת התוכנית, ההוראות השונות מתורגמות לסדרת פקודות בשפת מכונה, אותן יכול המעבד להבין ולבצע. בין שפות התכנות שהתפתחו במרוצת השנים, ניתן לציין את ח8שזס] ו-|ספס6, המשמשות בעיקר מפתחים העובדים על מערכות מחשב מרכזיות ולעומתן - 8856, (8568ק, 6 ו- ++6 המשמשות בדרך כלל, לכתיבת תוכניות ברמת המחשב האישי. פרק 1: להתחיל ב- 8856 |הטפ ‏ 41 6 |808ו/\ קיימת בשוק מספר שנים ואפשר לראותה כתולדה של 84516 (67'5חחו₪60 6 חסססט50ח1 6ו|סטוחץ5 6פסמזטק-||א) אשר התפתחה, כפי שמעיד שמה, כשפה המיועדת לתוכניתנים מתחיליס. מפתחיס רביס רכשו את ניסיונס המקצועי הראשון בשפת 84516, בטרס המשיכו לשפות בעלות עצמה רבה יותר. 6 |08פו/, אשר פותחה על ידי 670508 לאחר פיתות פאוסטחו/ו, היא למעשה גירסה ויזגואלית של 84516. מאז שהוצאה לשוק, התפתחה 8856 |508ו/\ במהירות והפכה לכלי פיתוח רב עצמה, והשאירה הרחק מאחור את המוניטין של קודמתה, כשפה המיועדת למתחילים בלבד. אחת התכונות הנחמדות של 88566 |1808\ היא העובדה שניתן לפתח באמצעותה יישומים יציבים במהירות רבה. כפי שתיווכח במהלך לימודיך, 8856 1808 חזקה מאוד בקיצור תהליכי פיתוח, אשר בדרך כלל גוזליס מן המפתת זמן ואנרגיה רביס. תכונה חשובה זו חוסכת ממנו משימות פיתוח אפרוריות ושגרתיות ומפנה את זמנו לשיפור איכותה ורמת ביצועיה של התוכנית. 88516 |1508/ נחשבת לכלי מהיר לפיתות יישומיס, או בשפה מקצועית - ₪0 (|וססד זחסוחקס|6עסכ הסספסו|מקה 0וס3ת). 6 ובּטפוצ היא שפה חכמה הסיבה העיקרית לפופולריות ולעוצמה של 8856 |8טפו/, והה לזו העומדת ביסוד הצלחתה של פשסטחו/צ. חברת ‏ 50סזסוו לקחה טכנולוגיה מורכבת (פיתוח יישומי מחשב) ופישטה אותה באופן משמעותי באמצעות ממשק עבודה גרפי. נניח כי עליך לכתוב תוכנית עבור החברה בה אתה עובד. סביבת פיתות ויזואלית מאפשרת לך לעצב את ממשק המשתמש במהירות רבה תוך ארגון החלונות והאלמנטים השונים על גבי המסך, באופן הדומה לסידור גיליון עיתון. בכלי פיתוח מבוססי טקסט, לעומת זאת, אתה שולט בממשק המשתמש באמצעות תוכנית של פקודות כתובות. ההגיון מלמד כי קל יותר לרכוש יכולת תכנות בשפות הוויזואליות, וכי העבודה בסביבה גרפית חוסכת זמן רב. במקרה זה, נכונה הסיסמה הישנה ייתמונה אחת שווה אלף מילים'י. עס ואת, אל תטעה לחשוב ש- ₪856 |508ו/\ היא רק עוד סוג של ממשק יפה. עקרון יסוד נוסף של 8856 |1508\ היא היכולת להשתמש ברכיבים, או עצמים (0516656) המובנים בה מבפנים. סוג של עצמיס עליהם תלמד בקרוב מאוד, הס הפקדים (0000|5) של 88516 |1508/\. הפקדים המזכירים מאוד רכיבים בלוח המחוונים ברכב, הם אלמנטיס המשמשיס בעת יצירת ממשק המשתמש. ניתן להשתמש בהס להצגת מידע (כפי שעושה מד המהירות), או לביצוע פעולה מסוימת (כפי שעושה המתנע). רביס מהתהליכים המתרחשים ברכב, כגון שילוב בין הצתה-מתנע ומנוע, נסתריס מהעין. הנהג מבחינתו שולט בפעולות הרכב באמצעות לוח המחוונים. באופן דומה, פקדי 8856 |1508/ מאפשריס להוסיף תכונות שונות, מבלי שתצטרך להיות מעורב באופן פעולתן 'ימאחורי הקלעיסיי. לדוגמה, אס ברצונך שתוכניתך תדע לקלוט מידע, כל שעליך לעשות הוא לשב פקד מתאים. זה למעשה היתרון הגדול של שפות תכנות ויזואליות, תוכל להתרכז במשימות התכנות ולא כיצד לגרוס לשפת התכנות לבצע אותן. 212 סדנת לימוד 6.0 8\ החשיבות הטמונה בעיצוב מוקדם של תוכניתך פרופסור שלימד אותי אנגלית בקולגי תיאר בפנינו פעס את סוגי הסופרים השונים: ייסופר מסורתי בדרך כלל כותב את הסיפור שלו במבנה של התחלה - אמצע - סוף. מודרניסט עשוי לשמר את אותו מבנה ופוסט מודרניסט יכלול רק שניים מבין השלושהיי. למרבה הצער, מחברי תוכניות מחשב אינס נהניס מאותה פריבילגיה. הואיל ועבודת התכנות היא מובנית מטבעה, קיימת חשיבות רבה לתכנון מוקדס של התוכנית בטרם ניגשים לכתיבתה בפועל. אמנס, מתכנתים רבים נוטים להתתיל מייד בכתיבת הקוד אך מומלץ בחוס כי תסגל לעצמך הרגל של תכנון מוקדסם, אפילו בתוכניות קטנות ופשוטות. לכל הפחות, שב מול דף נייר ריק, רשוס לעצמך הערות לגבי המשימות שאתה מייעד לתוכנית וצייר סקיצה של ממשק המשתמש. הערה: יש לציין כי האסטרטגיה אשר אנו מציגים בפרק זה, מהווה מערכת כללית של הנחיות ואינה מתיימרת, בשום אופן, להיות הגישה הנכונה היחידה לתכנות. הטכניקה בה תבחר להשתמש בסופו של דבר, עשויה להיות שונה לגמרי. שילוב העיצוב המוקדם בתהליך הפיתוח בעת בניית תוכנית מחשב, חשוב לנקוט בגישה מובנית. צעדיס מסוימים צריכיס להתבצע בסדר קבוע ומוטב שתתרגל, כבר מן ההתחלה, לעבוד בסדר הנכון. אמנס, מפתה מאוד להריצ 28516 |808ו/\ ולגשת מייד למלאכה, אך האמן לנו - השקעת מאמצ קטן בעיצוב מוקדס, תחסוך לך זמן וכאבי ראש רביס בהמשך עבודתך. להלן הצעדים שעליך לבצע במהלך בניית תוכנית מחשב: 1. תכנון משימות התוכנית (כיצד עליה לעבוד). 2 עיצוב ממשק המשתמש (כיצד עליה להיראות). 3 כתיבת הקוד של התוכנית (הוצאה לפועל של צעדים 1 ו-2). 4. בחינת ביצועי התוכנית וניפוי שגיאות (כולל בדיקת ביתא המבוצעת, במידת האפשר, על ידי משתמשים מחוצ לצוות הפיתוח). 5 תיעוד והפצה של התוכנית (שימוש). צעדיס אלה כוללנייס ביותר ואינס משקפיס את התהליך בשלמותו. בעת הצגת תוכנית הדוגמה בפרק הבא, נתאר מספר צעדים נוספים, המיוחדיס לתכנות ב- 88516 |1508/\. שני הצעדיס הראשונים המוצגיס לעיל, משקפים את תהליך הבנייה בפועל של התוכנית. תוכנית הדוגמה המוצגת בפרק 2 מהווה בסיס טוב להדגמת הצעדיס השוניס הכרוכיס בתכנון, בנייה והפעלה של תוכנית 8856 |08פו/\. שני הצעדיס האחרוניס פרק 1: להתחיל ב- 8856 |הטפו\ ‏ 43 (בחינת ביצועיס וניפוי שגיאות, הפצה) מסוקריס רק בשלביס מאוחריס יותר בספר, זאת למרות שאתה לומד כיצד להפעיל את התוכנית כבר במסגרת פרק 2. הערה: בעת פיתוח פרויקט רחב היקף, מומלץ, משיקולי נוחיות, לפרקו למספר חלקים ולטפל בכל חלק בנפרד. ניתן להסתייע בתכונות רבות של 88566 |1808/\ לצורך חלוקת העבודה על פרויקט גדול בין חברי צוות הפיתוח. מעט על עיצוב התוכנית בעת חניכת פרויקט חדש, מפתה מאוד להתחיל מייד בשרבוט הקוד. אחרי הכל, החלקים היצירתיים ביותר בתהליך הפיתוח הס שרטוט הממשק וכתיבת הקוד עבור התוכנית. עס ואת, תוכנית טובה מתחילה בעיצוב מוקדס. כשמדובר בפרויקטים קטנים, אין צורך בתרשים ורימה מפורט, אם כי מצד שני, גם בפרויקטים מסוג וה כדאי שתהיה תוכנית מוקדמת. בתוס תהליך התכנון מומלצ כי יימצאו בידך הפריטיס הבאיס: + רשימה תמציתית של משימות התוכנית. + לוח זמניס להשלמת כל משימה ומשימה. + הבהרה של מידת התלות ההדדית בין חלקי התוכנית השוניס. > רשימת הקריטריונים על פיהס תיבדק התוכנית. לתוכנית בעלת מורכבות דומה לוו המובאת בפרק 2, תהליך העיצוב המוקדם יכול להסתכס ברשימת משימות קצרה שבהן צריכה התוכנית לטפל. אך, כשמדובר בתוכניות מורכבות יותר, תכנון טוב עשוי לכלול - חומר כתוב, גרפים, תרשימי ורימה, מסמך אבני דרך ותוכנית בקרת איכות ותיאוס ציפיות. רמת התיעוד הנדרשת לפרויקט מסויס נתונה לשיקול דעתך ושל לקוחותיך (המשתמשים שעבורס מיועדת התוכנית). אך, הקפד תמיד להעלות את תכנוניך על הכתב, בצורה בהירה ומדויקת. מכאן... פרק זה פרש בפניך את עקרונות התכנות ב- 8856 |1508/. הפרקיס הבאים ילוו אותך בבניית היישומיס הראשוניס שלך: > פרק 2 - יצירת התוכנית הראשונה, מלווה אותך צעד אחר צעד ומסייע לך בבניית תוכנית 28516 |1508, הראשונה שלך. פרק 3 - אבני היסוד של 6 | 5ו/, מבאר כל אחד מן המרכיביס הבסיסיים היובריס תוכנית 58516 |8טפו/. > פרק 9 - יסודות התכנות של 88516 !1503/, ממשיך שלב אחד קדימה ומעמיק את יכולותיך בבניית יישומי 88516 |1508/. 4 סדנת לימוד 6.0 8\ 2 יצירת התוכנית הראשונה פרק 2: יצירת התוכנית הראשונה | 45 ברוב ספרי התכנות נהוג לתת לקורא להתחיל בבניית יישוס ראשוני, ובסיסי ביותר, בסגנון הדומה ל- *י0!וסש\ ,סו|6יי הקלאסי. בדוגמה פשוטה זו, המשתמש מתבקש להתחיל פעולה כלשהי כגון לחיצה על לחצן או הקשה על מקש, וקבלת הודעה כגון 'יוזס\ ,סווסוזיי, כתגובה. בגירסה מעט מורכבת יותר היישוס מבקש מהמשתמש להזין את שמו ומגיב בהודעה מותאמת אישית כגון ''חחסכ ,סו|6'י. למרות שדוגמאות אלו מספיקות כדי להמחיש שהינך יכול, הלכה למעשה, להשתמש בשפת התכנות כדי ליצור תוכנית, התוצאה המתקבלת אינה שימושית במיוחד. גישתנו בספר וה היא להתחיל בתוכנית דוגמה שלא רק תמחיש את העקרונות של יצירת תוכנית ב- 8856 |1508/, אלא גס תהיה שימושית בעולס האמיתי. בפרק זה נבנה יישוס לחישוב הלוואות שמחשב את התשלומיס התקופתיים הנחוציס לכיסוי ההלוואה, בהתחשב בנתונים כגון תנאי ההלוואה ואחוז הריבית. המשתמשיס שלך יוכלו להזין ולשנות ערכים אלה וערכיס אחרים, לבצע את החישוביס הדרושיס ולקבל את תוצאותיהם. בנוסף לכך, המשתמשים יוכלו לקבל לוח זמניס של התשלומיס למשך כל זמן קיוס ההלוואה. כפי שהינך רואה, הפיסקה הקודמת מתארת מה היישוס יעשה, ואיזו אינפורמציה דרושה לביצוע הפעולה. כמו כן ניתן מידע לגבי הדרך שבה יש לתכנן את הממשק. זה לא היה נורא כל כך, הלא כן! הערה: היישום שניצור פותח מתוך תוכנה שיתופית בשם ז26וצוסוחוה צוז. בעזרת תכנון קפדני, אפשר להשתמש ב- 88566 ו8טפו/\ ליצירת יישומי תוכנה ברמה מסחרית. יצירת ממשק המשתמש לתוכנית שלך ממשק המשתמש (677800זח1 ז56ט) של תוכנה מתייחס לחלק, או חלקים, בתוכנית שהמשתמש רואה, ואיתס הוא מתקשר. כאשר תפתח את ממשק המשתמש של התוכנית, תוכל ללמוד כיצד להשתמש בכלים הרביס המסופקים על ידי התקן 15 (0חסותחסזושח= %הסותקס|6/6כ 6078%60זה1) של ₪856 |הטפו\. כפי שמוסבר בפרק 1, להתחיל ב- 83516 [1503/, התקן 105 של 8856 |1508/ יוצר עבודה קלה בתכנון ממשק המשתמש, אשר הווה פעס משימה קשה ומסובכת במקרה הטוב. לפני שתתחיל, הבט כיצד ייראה התוצר הסופי. תרשיס 2.1 מראה את המסך הראשי במחשב ההלוואות, בעודו בשימוש. 26 סדנת לימוד 6.0 8\ כיצד להתחיל הבה נתחיל ביצירת פרויקט (66[סזק) חדש. 666[סופ הוא בעצס סט קבצים שמכילים מידע אודות הרכיבים שיוצרים את היישום (התוכנית). כדי ליצור תוכנית 6 |פטפו/\, עליך לשנות את הרכיביס השוניס באופן שיתאים ליישוס שלך. כדי להתחיל בבניית תוכנית מחשב ההלוואות, התחל בהרצת 8856 |1508/\. מייד תראה את תיבת הדו-שיח ₪0166% /שפא, כפי שמתואר בתרשים 2.2. במידה ו-88566 |8טפו\ כבר רצה, או אם תיבת הדו-שיח 6[סזק אוסא אינה מופיעה, בחר 116=, ואז 0[66% ששא מתוך שורת התפריט (ראה תרשים 2.3). |<ום)- זס)הּ!טסו3ּ:) חבּס ]| .₪ תרשים 2.1: תוכנית | וקסוק מחשב ההלוואות מציעה למשתמש מיגוון 5 | [4] 4366 ]65ז6)ח| |הגוחחה. אפשרויות | 35 /'] הזז ד | :תעב עווחוס] | וא | ]סע 6)ב|גוס/ה 5 בתקליטור: התוכנית נמצאת בתקליטור ונקראת 68|6ח08 | |<|? ₪ ןז סו םומ - ב = .ו | חספ | 8 [ 6 9 % א ₪ ל 5 23 חסוסבּהווסקה 8/' או 1 אפצוסם | שאם אסששה = 34 בזבקו/\ חס % % % % 5% % % % 9 <א א6%שו 0 הו חסובּ6ו!קקה 115 06פ[סזק 2853 | בזהק/ש פע , ₪ זהפוחטססם זסהַבחבו] תרשים 2: גרסת תיבת ככ 5% 5% הדו-שיח 6[סזק סא המופיעה כש- 8856 |ה508ו\ עולה 6זגווט) 6 ו 313100 105 אוסת5 חס -] פרק 2: יצירת התוכנית הראשונה | 47 |א. ו | ₪ - 6% 1 אפשוז6. א 206% = 33] 0 | ₪5 יי 9 אא 2 חסוסבשו|סקה 115 ל66[סזק 2868 | בזהקו/\ ל = חססבם!פקה 8 זפהַבחבו] קוא % ל % ב % 5 % פְ וי שו 6% יי חסוסבשו!קק ה = 6א= לתפונססם ‏ |ום זהפתחנוססס 5 % =| תרשים 2.3: גירסה זו של תיבת הדו-ש'ח 66[סזק שופ מופיעה כאשר מתחילים פרויקט חדש כאשר 8856 |הטפו\ כבר רצה תיבת הדו-שיח 60[סזק וסא מאפשרת לנו להגיד את סוג הפרויקט אשר ברצוננו ליצור. עבור תוכנית מחשב ההלוואות, בחר באפשרות 5א5 55370376 ולחצ א0. מייד תועבר לסביבת הפיתוח של 88516 |1508/, כפי שמתואר בתרשים 2.4. הערה: עקב תכונות ההתאמה האישית המתקדמות של 8856 |טפוצ, המסך שתקבל עלול להיראות שונה במקצת מאשר המסך שבתרשים 2.4. -] ו =---שורת קפ ואיסטחוע+ 5ח836-1 !סד המזסָמום | ופט חנ הטספ )זט סו סע ₪08 ₪6 הכותרת | לש 8 ו , |= ₪80 ₪ 0 |₪ )₪ - ב -₪| ! | [חזס-]) [חחזט-] - 9041ן0ז .ם (0[0061ז0) 661[סזק ם 0 ו ו (1 הס [חחזסת 5 טופס 1-0 6 00 2-6 חב זסקסה] וס ₪ פד תרשים 2.4: סביבת הפיתוח של 8856 וש5ו/\ היא בד הציור ליצירת היישום שלך. דבר ראשון, שיס לב לשורת הכותרת של 88516 |1508/ - במיוחד למילה ח0ופ6כ. דבר זה אומר שהינך נמצא כרגע במצב עיצוב (1006! ח65\0כ) או 6ו₪ו%חש651ם. אהו השס שניתן לומן בו אתס מעצב את התוכנית. מאוחר יותר, כאשר תריצ את התוכנית, 8856 |808ו\ תעבור למצב ריצה (1006 חטף). 8[ סדנת לימוד 6.0 8\ כפי שהינך רואה, תוכנית 5%5 50800810 חדשה מורכבת מטופס (וחזסת) או חלון אחד. חלון זה יהיה, ברוב המקרים, ממשק המשתמש הראשי של התוכנית שלכם. יישומי 6 |פט5\ מורכבים מאחד או יותר מרכיבים, כגון טפסים (פוחזס=), מודולי קוד ומחלקות, וכן פקדים (600₪0!5) ומרכיבים אחרים. הבט ב- יוזס!טא5 0[66%ז5 (כפי שמתואר בתרשים 2.5). הוא מורכב מרשימה של תוכן הפרויקט הנוכחי. מכיון שרק כעת התחלת פרויקט חדש, הוא מכיל טופס אחד בלבד, אשר נקרא 1חחזס=. טופס זה ממוקסם בתיקיית הטפסים (פוחזסז) של הפרויקט (הנקרא 1 כברירת מחדל). פרויקט יכול להכיל בסופו של דבר מרכיביס רביס, ומטרת סוסא 66[סזק הוא שמירה על הסדר והארגון של הפרויקט שלך. סז - )ספ|סזק (6661[סז) 6661[סזש פחזזס=] 7% -|=] (1 חס 1 וס - ו תרשים 2.5: זפזס|קאם 60[סזק מכיל רשימה של כל מרכיבי הפרויקט שמירת עבודתך בומן כלשהו זה חייב לקרות - המערכת שלך קרסה, הפסקת חשמל, הכלב ניתק את כבל החשמל של המחשב - וכל העבודה נמחקה! כדי לצמצס את הנזק כאשר משהו מסוג וה יקרה (והוא יקרה), עליך להרגיל את עצמך לשמור את עבודתך בדיסק הקשיח מייד כאשר אתה מתחיל פרויקט חדש. לאחר מכן עליך לשמור את עבודתך בכל עת שהיא מתפתחת. עליך לכל הפחות לשמור את עבודתך לפני הרצתה. באופן זה תוכל למנוע את איבוד עבודתך אם התוכנית שכתבת תגרוס למערכת לקרוס (כן, דבר זה יכול לקרות אפילו למפתחיס הטוביסם ביותר). שמירת פרויקטים ב-83516 [150/. תהליך שמירת הפרויקט הינו מורכב מעט יותר מכפי שאתה עלול לצפות. למרות זאת, עס מעט תרגול לא תהיה לך כל בעיה. כדי לשמור פרויקט, עליך לשמור כל אחד מהמרכיביםס של הפרויקט בקובצ נפרד (יש לשמור כל טופס, מודול וכיוצא בזה). לאחר שמירת כל המרכיביםס יש לשמור את הפרויקט עצמו בקוב\ פרויקט. קובצ הפרויקט הוא למעשה הרשימה והמיקוס של כל המרכיבים המהוויס פרויקט זה. טיפ: רצוי ליצור תיקיה נפרדת בדיסק לכל פרויקט שהינך עובד עליו. דבר זה מקל על שמירת הסדר בפרויקט, על ידי שמירת כל הקבצים השייכים לפרויקט באותו מקום. באותו אופן תוכל לשמור לאותה תיקיה כל סוג של קובץ שאינו של 8856 |אטפוצ, אך קשור בפרויקט, קבצי תיעוד, גליונות אלקטרוניים, קבצי גרפיקה וכדומה. פרק 2: יצירת התוכנית הראשונה | 49 כדי לשמור פרויקט, בחר ₪1!6, 0[6זש 6צ58, מתוך התפריט של 88566 |הטפוש, או לחילופין לחצ על לחצן שמירת הפרויקט בסרגל הכלים. בפעס הראשונה שתשמור את הפרויקט (או לחילופין בכל הוספת מרכיב חדש אליו), תעבר דרך אחת או יותר מתיבות הדו-שיח של פקודת 45 586 (ראה תרשיס 2.6), שתופיע עבור כל אחד ממרכיבי הפרויקט, וכן תיבת 45 66[סזק 58/6 עבור קובצ הפרויקט. יהיה עליך להגדיר שס ומיקוס לשמירה עבור כל אחד מהקבצים שמרכיבים את הפרויקט. פקודות שמירה נוספות ישמרו את הקוב פעם נוספת בשמו הקודס. באופן זה ניתן לבצע שמירות מהירות ותכופות על פרויקטים שמוריס על ידי לחיצה על לחצן שמירת הפרויקט. במידה והתווספו מרכיבים נוספיס לפרויקט מאז השמירה האחרונה, תופיע תיבת דו-שיח לשמירה עבור כל מרכיב חדש. הערה: 6 |15084 מכילה אופציה המאפשרת לבדוק האם הפרויקט שמור כהלכה. עליך לבחור פוססד ולאחר מכן פחסוטקס מתוך התפריט הראשי. מתוך תפריט חסשקס יש לבחור בכרטיסיה +חסוהחסזוטח=. במסגרת %5ז513 והבּזףסזק 3 הסהעצ, אפשר להורות ל- 6 |8טפוש לשמור אוטומטית כל שינוי בפרויקט ברגע שמריצים אותו, או לחילופין לתת לך להחליט האם לשמור את השינויים לפני הרצה. |<]? | 5 8וו=] 536 = |₪ [- 8 -] :חן 6 5 | | [+ (חחזו.*) וו הזוס :6 85 586 | סוס תרשים 2.6: תיבת הדו-שיח 45 586 מאפשרת את הגדרת השם והמיקום של הקבצים המרכיבים את הפרויקט שלך טיפ: גד אפשר לשמור מרכיבים בודדים בפרויקט באופן אינדיבידואלי על ידי בחירתם ב- זסזס!קא5 66%[סז₪ ובחירת ₪16 ולאחר מכן (פוחהּח %הסחסקוהס6) 6צ58 מן התפריט הראשי. לחילופין אפשר שמור מרכיב בודד על ידי לחיצה על הלחצן הימני של העכבר על שם המרכיב הרצוי ב- זסזסוקא= 66[סזק, ולאחר מכן בחירת האפשרות פַצה53 (806ח %חה6חסקוח60) מן התפריט המופיע. אפשר לשנות את שם הקובץ על ידי שימוש באפשרות 45 58/6 בכל אחד משתי שיטות אלו. 20 סדנת לימוד 6.0 8\ שמיות הפוויקט מחשב ההלוואות. כעת נשמור פרויקט לדוגמה בשם "מחשב ההלוואות'י. בחר 116=, לאחר מכן 66%[סיוק 53/6, או לחילופין לחצ על לחצן שמירת הפרויקט בסרגל הכלים. בתחילה יהיה עליך לשמור את הטופס היחיד שממנו מורכב הפרויקט (1חזסת). בשלב זה תופיע תיבת הדו-שיח 85 6צ58 אשר בה יוגדר שס ומיקוס הקוב\. %, * תיבת הטקסט פוּחבּא 116= משמשת למתן שס לקובצ אשר בו יישמר מרכיב של הפרויקט. בדוגמה, השס המופיע הוא שס ברירת המחדל של הקוב\ - וחזו.1 חזסם. שנה שס וה לשםסם המתאר בדייקנות רבה יותר את תוכן הקוב\ כגון חו68|018ח108. אין צורך להוסיף את הסיומת וח. לשס הקובצ. הסיומת תתווסף אוטומטית עס שמירת הקוב\. * תיבת הרשימה הנפתחת 18 6שצ58, אשר מופיעה בחלקה העליון של תיבת הדו-שיח, מאפשרת את הגדרת המקוס אשר בו יישמר המרכיב. אם לא נשמר דבר מאז תחילת ההפעלה של 8856 |1508/, תוצג בפנינו תיקיית ברירת המחדל (בדרך כלל התיקיה שבה נמצאת 8856 |508ו/). על ידי שימוש ברשימה הנפתחת מתיבה זו, ניתן לנווט אל התיקיה אשר בה ברצונך לשמור את הקוב>. במידת הצורך ניתן ליצור תיקיה חדשה לפרויקט על ידי לחיצה על לחצן 01061 שסא. ם אזהרה: לעולם אל תשמור את הקבצים של מרכיבי היישום בתיקיה של קבצי התוכנה של 6 |508ו/. רצוי בדרך כלל ליצור ליישום תיקיה משלו. למטרת דוגמה זו, נווט לתיקיית השורש של הדיסק הקשיח. השתמש בלחצן ז0!00= ₪6 076816 על מנת ליצור תיקיה חדשה. שנה את שם התיקיה החדשה מ- ז0!06= שו6 ל- 108068|6. לח לחיצה כפולה על תיקיית 1080086 כדי להפוך אותה לפעילה, ולחצ על 536 כדי להשלים את הפעולה. לאחר שמירת הטופס, תופיע תיבת הדו-שיח 45 66%6[סו₪ 6ע58. בתיבה זו יש להגדיר את שסם ומיקוס קובצ הפרויקט. מיקום ברירת המחדל של הקוב\ אמור להיות המיקוס שבו נשמר קוב הטופס. שנה את שם הקוב\ מ- 0םפ/.1641סזק ל- ז0ז68|60|8 ח08! (הסיומת ק8/. או 6%[סזק 88516 |8טפו\ תתווסף אוטומטית). לחצ על 586 לסיום. עכשיו, לאחר שבנינו את תבנית הבסיס של הפרויקט, הענקנו לו שס ושמרנו אותו, אנו מוכניס להתחיל בפיתוח האמיתי. כמובן שכדי שהתוכנית תוכל לעבד מידע, עליך לתכנן כיצד לקבל מידע וה מהמשתמש. הערה: בהתחשב באופציות שנבחרו כאשר 50/0100 |608\ הותקנה (אם 8856 |1508 שברשותך הותקנה כחלק ממערכת זו), עשויה להופיע תיבת דו-שיח השואלת אם ברצונך להוסיף את הפרויקט ל-66586ז50 - מערכת זו דואגת שקבצי המקור של הפרויקט יהיו מאובטחים ומגובים, ודואגת לארגון גרסאות קבצי מקור. ענה לא על השאלה. פרק 2: יצירת התוכנית הראשונה | 51 קבלת מידע מהמשתמש מרבית תוכנות המחשב הן אינטראקטיביות. תוכנות אלו צריכות לקבל מידע מהמשתמש וכן לספק לו מידע אחר. תוכנית 8856 |%1508 מתקשרת עס המשתמש באמצעות פקדים (600%0!5) אשר ממוקמיס בתוך טופס (או טפסי) התוכנית. פקד הוא מרכיב אשר אנו מציביס על הטופס ואשר מתקשר עס המשתמש או עס התוכנית. רביס מהפקדים ב- 88516 |1508/\ מקבלים מידע מהמשתמש. ממשק המשתמש עבור תוכנית מחשב ההלוואות יהיה אחראי על קבלת קלט, הצגת פלט, והרצת חישובי ההלוואות. אנו נשתמש בשלושה מן הפקדיס הנפוצים ביותר ב- 28516 |1508/. ב פקד תיבת הטקסט (א000א16) המשמש לקבלת מידע טקסטואלי מהמשתמש, וכן להצגת מידע מסויס חזרה למשתמש. 43 פקד התווית (|1886) המשמש להצגת כיתוב המציג מידע למשתמש. תוויות דומות לתיבות טקסט, אך אינס ניתנות לשינוי ועריכה על ידי המשתמש. | פקד לחצן פקודה (חסטזט8 0חהחוהחס6) עליו יכול המשתמש ללחו כדי להפעיל פעולות של התוכנית. חיש כל הפקדיס הללו הינס חלק מסט הפקדיס הבסיסי הנמצא בארגז הכלים של 88516 |1508/\ (ראה 2.7). | ₪ כ שַ 5 ₪ 9 0 3 < < ה 5ן תרשים 2.7: ארגז הכלים של 88516 |1508/\ מכיל את הפקדים הנחוצים לנו לבניית יישומים ₪ / ₪ 0%5₪ 3 | ₪ ₪ ₪ 5 0 ₪ הוספת פקד תיבת הטקסט פקד תיבת הטקסט (אספ 16%) הינו תיבה המציגה ומקבלת טקסט. במידה מסוימת, תיבה זו דומה לתיבת טקסט שנמצאת בטפסי סקרים. התיבה יכולה לקבל קלט (מעט או עיפרון) וכן להציג מידע. פקד תיבת הטקסט הינו דוגמה להתקדמות הרבה שחלה בשפות התכנות. שפות תכנות מוקדמות יותר הצריכו מאמצ רב כדי להחליף מידע עס המשתמש. 8856 |1508\ עובדת בשיתוף עס פאוספחו/\ כדי לטפל בפרטיס שולייס ופשוטיס כגון מיקוס הטקסט על המסך, כיצד המידע יתקבל מהמשתמש וכדומה. 6 |8פו/\ צריכה להתרכז בטקסט המופיע בתוך התיבה. הפקד עצמו מטפל בשאר. 2 סדנת לימוד 6.0 8\ ₪ הוספת פקד לטופס. כדי ש- 8856 |1508\ תוכל להשתמש בפקד, יש להוסיף אותו לטופס. עבור תוכנית מחשב ההלוואות נתחיל בהצבת תיבת טקסט בטופס הראשי: 1 לת על כלי פקד תיבת הטקסט בארגז הכלים. אם אינך בטוח איזה מהכלים הוא כלי תיבת הטקסט, השאר את מצביע העכבר מספר שניות על כל כלי, כדי לקבל תיאור כלי (מודוססד) על כלי גה. 2 הזז את מצביע העכבר לתוך הטופס. שיס לב שהמצביע משנה צורתו לצלב. צורת הצלב מצביעה על כך שאתה עומד לצייר פקד. 33 הזו את המצביע לפינה אחת של האזור אותו ברצונך להגדיר לפקד. 4 לח והחזק לחוץ את לחצן העכבר. 5 גרור את העכבר לפינה הנגדית של הפקד. בעודך גורר את העכבר, שיס לב שתיבת הגדרת גודל מופיעה מהפינה הראשונה של מיקוס הפקד, אל המיקוס הנוכחי של מצביע העכבר. תיבה זו מצביעה היכן ימוקס הפקד (ראה תרשים 2.8). תק \ תרשים 2.8: תיבת תיאור כלי (קודוססד) מופיעה ומראה את מימדי הפקד ב-פואוד (יחידת מידה מיוחדת שתתואר בהמשך הספר) 6 כאשר אתה מרוצה מגודל וצורת הפקד, שחרר את לחצן העכבר. הפקד יצויר על הטופס (ראה תרשים 2.9). טיפ: אפשר להוסיף פקד לטופס על ידי לחיצה כפולה על סמל הפקד בתיבת הכלים. פעולה זו ממקמת את הפקד בגודל ברירת מחדל במרכז הטופס. לאחר מכן אפשר להזיז ולשנות את גודלו לגודל הרצוי בעזרת נקודות האחיזה, כפי שמתואר בקטע הבא, הזזה ושינוי גודל הפקד. פרק 2: יצירת התוכנית הראשונה | 53 תרשים 2.9: תיבת הטקסט המוכנה מופיעה על הטופס. לאחר הופעתה תיבה זו מסומנת כנבחרת (שימו לב לנקודות האחיזה לשינוי הגודל המופיעות מסביב לפקד) הדרך המשמשת להצבת תיבת הטקסט זהה לזו המשמשת להצבת רוב הפקדים בטופס. קביעת מאפייני הפקד. לאחר שהוספנו פקד לטופס, בדרך כלל נרצה לשנות אחד או יותר ממאפייניו. מאפייניס הינס הגדרות ששולטות במראה ובהתנהגות האובייקט. לתיבת הטקסט שהוספנו, נרצה לקבוע את המאפייניס שוחבּא (שס) ו-6%%ד (טקסט). השס (פוח8א) במאפייניס הוא חשוב מאוד. הוא משמש בקוד התוכנית על מנת לזהות את הפקד. מכיון שלתוכנית עלולים להיות פקדים רבים מאותו סוג, אנו יכוליס להשתמש במאפיין השס בכדי לוהות פקד מסוים שעבורו נכתב קטע קוד כלשהו. לכל פקד חייב להיות שם, אשר מיוצג על ידי ערך המאפיין פחגּא שלו. בנוסף לכך, לכל פקד בטופס מסויס חייב להיות שם ייחודי, אלא אס הוא חלק ממערך פקדים (מערכי פקדיס מוסברים לפרטים בפרק 13 עבודה עם מערכי פקדים. לעת עתה עלינו לוודא שכל הפקדים יקבלו שם ייחודי. 6 |808\ מציבה שם ברירת מחדל לכל פקד הממוקם בטופס. מכיון שתיבה זו היא התיבה הראשונה שהצבנו בטופס, שמה יהיה 16%01. תיבות נוספות תיקראנה 02א6%ך, 3 וכדומה. רצוי מאוד לשנות את שסם ברירת המחדל לשם בעל יותר משמעות. הנח לדוגמה, שיש לך שלוש תיבות טקסט בטופס, שמשמשות לקבלת פרטיס מהמשתמש: שס משפחה, שס פרטי וכתובת. אס תשנה את שמות ברירת המחדל של 61א6ד, 6002 1, 3 לשם בעל משמעות, כמו שוחה |00, 6ההפח-0אט, 6800655)ט, יהיה קל הרבה יותר לוכור עבור מה משמשת כל תיבה בזמן מאוחר יותר. טיפ: שים לב ששמות הפקדים שהוצעו כאן מתחילים בקידומת 6ט. זהו נוהג נפוץ להתחיל שם פקד בקידומת בעלת שלוש אותיות המתארת את סוג הפקד. כך, בעת איתור באגים, ברור מייד ש-6וַח 6 מתייחס לפקד תיבת טקסט שמכיל מידע על שם משפחה. קידומות נפוצות אחרות הם ופ! לתוויות ו- 6 לפקד לחצן פקודה. 4 סדנת לימוד 6.0 8\ כדי לשנות את השס של תיבת הטקסט הראשונה שהצבנו על הטופס, עליך לוודא שהפקד הוא נבחר. הפקד הנבחר הוא הפקד אשר את המאפיינים שלו ניתן לשנות בחלון המאפיינים. כפי שנראה בהמשך ניתן לבחור מספר פקדים יחדיו. ניתן לדעת אס פקד הוא הפקד הנבחר על ידי כך שמופיעים מסביבו סדרת נקודות אחיזה לשינוי גודלו. שס הפקד הנבחר מופיע בתיבת האובייקט של חלון המאפיינים. תיבה זו הינה רשימה נפתחת המופיעה מתחת לכותרת חלון המאפיינים. אם הפקד הרצוי אינו נבחר, עליך פשוט ללחוצ עליו בכדי לבחור אותו. עכשיו כאשר בחרת את הפקד, הבט בחלון המאפיינים. העמודה השמאלית בחלון המאפיינים הנה רשימת מאפייניסם התקפים לגבי האובייקט הנבחר בזמן התכנון. הערך הנוכתי של כל מאפיין מופיע בצד הימני של חלון המאפיינים. חפש את המאפיין 86 בעמודה השמאלית, בתחילת הרשימה (מכיון שמאפיין השס הוא חשוב כל כך, הוא מופיע ראשון ברשימה. המאפיינים האחרים מסודרים בסדר אלפביתי. יש אפשרות לראות את סדר המאפיינים לפי קטגוריה על ידי בחירת הכרטיסיה %4. לת על המאפיין סח והפוך אותו למאפיין הנוכחי (שיס לב ששס המאפיין מודגש). שיס לב לשס ברירת המחדל - 8%011ד המופיע בצד הימני של המאפיין. בשלב זה, כל מה שעליך לעשות הוא להקליד שס חדש עבור המאפיין סח או לערוך אותו. שנה את שס מאפיין חח בפקד תיבת הטקסט על ידי הקלדת שם בעלת משמעות - הבה נשתמש בשס |קוסחוזק))ט. לאחר ההקלדה הקש זפטחם. תרשיס 0 מראה את חלון המאפיינים לאחר שינוי זה. המאפיין %6% בפקד תיבת הטקסט מייצג את הטקסט המוצג בתוך התיבה כאשר היא תופיע על המסך. כאשר המשתמש מקליד טקסט בתוך התיבה, 8856 |58ו\ משנה את ערך המאפיין 6% כך שיתאים לערך שבתיבה. כברירת מחדל, תיבת טקסט חדשה מכילה את שמה. בתיבת הטקסט החדשה שיצרת מופיע השם 6%01ד במאפיין %6% שלו (וכור ש-6%)1ד היה שס ברירת המחדל של הפקד כאשר יצרת אותו). במקרה שלנו אין אנו רוציס דבר בתוך התיבה כאשר היא תופיע על המסך. לשם כך עליך לבחור את מאפיין זא בחלון המאפיינים. בחר את הערך הנוכחי (16%1) ומחק אותו. ₪ 80%)אפדך קוחו ק] | | סטב חק - קוחוזקאם ץור 1605 - ם פב-1 7206 6חָחו5 או - 1 0 סז (שחסו]) |הטחב!! - 0 שטזד ]85 5805 561] | = 000000 א חסוז03ו|3 565% > 5זשש חס 43ו|ב/י זפתלסחצש 5/56%5חזנססת .005 051 חסוחאו [סחס6 56 חס תרשים 2.10: השתמש בחלון המאפיינים כדי לשנות את ערכי הפקדים פרק 2: יצירת התוכנית הראשונה | 55 הוספת שאר תיבות הטקסט. כעת, כאשר הוספת תיבת טקסט אחת לטופס, לא צריכה להיות בעיה להוסיף את השאר. הוסף שלוש תיבות טקסט נוספות לטופס. קרא להן האס וז 007 ו-%חה6וח/ץהק))ט. בנוסף לכך מחק את תוכן המאפיין 6%ז שלהן. לכשתסיים, הטופס שלך אמור להיראות דומה לטופס בתרשים 2.11. אס הטופס שלך לא נראה בדיוק כמו הטופס בתרשים 2.11, אל תדאג. אחד הדבריס הנחמדיס בסביבת תכנון ויזואלית, הוא היכולת לשנות את מראה האובייקטיס בקלות רבה. תרשים 2.11: יש ארבע תיבות טקסט בממשק המשתמש של מחשב ההלוואות טיפ: כדי לצייר מספר פקדים בעת ובעונה אחת, הקש ₪ בזמן שאתה בוחר כלי פקד מתוך תיבת הכלים. כלי זה ימשיך להיות הכלי הנבחר גם לאחר שסיימת לצייר את הפקד. תוכל להמשיך לצייר פקדים זהים מבלי שתצטרך לבחור את הכלי מחדש ברגע שסיימת לצייר, בחר את כלי הסמן של ארגז הכלים כדי לחזור למצב הרגיל. הזזה ושינוי גודל הפקדים. אם אינך מרוצה מהמיקוס שבו ממוקם הפקד, השתמש בעכבר כדי לגרור אותו למיקוס החדש. שים לב שאם אתה עוצר במהלך הגרירה למספר שניות, המיקוס היחסי של הפקד יופיע כתיאור כלי (טודוססז). אס ברצונך לשנות את גודל הפקד, עליך לבחור אותו - דבר שיגרוס לנקודות האחיזה להופיע מסביב לו. לאחר הופעת הנקודות אפשר לגרור אותן בעזרת העכבר בכדי לשנות את גודל הפקד. הנקודות בקצה העליון והתחתון של הפקד שולטות בגובה שלו. הנקודות בקצה ימני והשמאלי שולטות ברוחב שלו. הנקודות שבקצוות משנות גס את הגובה וגם את הרוחב בעת ובעונה אחת. שים לב כיצד תיבת שינוי הגודל מופיעה בעוד אתה משנה את גודל הפקד, זאת כדי להמחיש את גודלו הסופי. עכשיו כאשר יצרת את תיבות הטקסט המשמשות לקלט מהמשתמש, עליך לסמנן בתוויות כדי שהמשתמש יידע מה להקליד בכל תיבה. כדי לפנות מקוס לתוויות, הזז את תיבות הטקסט לצד ימין. תוכל לגרור כל תיבה בנפרד, אך הדרך המהירה יותר היא לגרור את כולן בבת אחת. כדי לבחור את כל קבוצת התיבות, כל שעליך לעשות 566 סדנת לימוד 6.0 8\ הוא לבחור תיבה אחת, להקיש > ולהשאיר אותו לחוץ, ולבחור את כל שאר התיבות. שים לב שכל התיבות שבחרת באופן זה מקבלות נקודות אחיזה משלהן. לאחר שבחרת את כולן, גרור אחת מהן. בעוד אתה גורר, כל הקבוצה נגררת בו-זמנית. גרור את התיבות לצד ימין של הטופס. לכשתסיים, הטופס שלך אמור להיראות דומה לתרשיס 12. תרשים 2.12: בחירת מספר פקדים בו-זמנית מאפשרת את הזזתם ביחד כקבוצה טיפ: במקום לבחור קבוצה על ידי לחיצה על |6 תוך כדי בחירת הפקדים, אפשר לסמן את כל הקבוצה על ידי ציור מלבן מסביבם. לחץ והחזק את הלחצן השמאלי של העכבר לחוץ באזור ריק בטופס. שים לב שנמתח מלבן בעוד אתה מזיז את העכבר. צייר תיבה מסביב לכל הפקדים שברצונך לבחור. יצירת תוויות עבור פקדי התוכנית מובן מאליו שהמשתמש חייב לדעת איזה ערכים עליו להקליד בכל אחת מתיבות הטקסט. הדרך הקלה ביותר לבצע זאת היא להוסיף פקדי תווית ליד כל אחת מתיבות הטקסט. התווית תשמש ככותרת עבור תיבת הטקסט, ותכיל תיאור קצר של סוג המידע שיש להקליד לתוכה. למרות שעבור המשתמש יש הבדל גדול בין תיבות טקסט ותוויות, הן למעשה דומות מאוד מבחינת המפתח. שני סוגי הפקדים יכולים להכיל אותו סוג טקסט, רק שתווית אינה ניתנת לעריכה על ידי המשתמש. למרות זאת, על ידי שינוי מאפייניס שוניס של פקד התווית, מראה הטקסט שבתוכה יכול להשתנות בדרכים רבות. תרשים 2.13 ממחיש סוגי מראות שוניס של פקד התווית. פרק 2: יצירת התוכנית הראשונה | 57 |<11)- | הדגחת פקד תבנית.₪ : 1 = 06156זסם] : : סטוה 6 תרשים 2.13: תוויות יכולות לקבל גדלים שונים וצורות הצגה רבות ושונות 3 אם נמשיך את ההשוואה עס טופס סקרים, אזי פקדי תוויות הס המקבילה למיליס המודפסות על הטופס כדי לתאר את תיבות הטקסט הריקות. ההבדל המרכזי בין תווית ותיבת טקסט הוא שתווית מכילה טקסט שהמשתמש אינו יכול לשנות. הטקסט הנכלל בפקד תווית נשמר במאפיין ח00ק63 (בניגוד לתיבת טקסט, שס נשמר מידע זה במאפיין 16%). כדי להוסיף תווית לטופס, בצע את הפעולות הבאות 1 בחר את כלי פקד התווית מתוך ארגז הכלים. 2 צייר את פקד התווית משמאל לתיבת הטקסט הראשונה. 3 שנה את המאפיין חגא של התווית ל- |קוסחוזקוט! בחלון המאפייניס. 4 שנה את המאפיין ח68000 ל- :|הקוסחוזס. 5 שנה את המאפיין זחסוחחףו|ה ל- ץ0פט2 אַחִ8ָומ-1, על ידי שימוש בח\ המופיע ליד הגדרות המאפיין (ראה תרשיסם 2.14). פעולה וו מיישרת את הכיתוב לימין, ליד תיבת הטקסט התואמת. 1-6 סחסא - 0 :|הקוסחוזק. (6חסו) הנחב - 0 סד תרשים 2.14: לחיצה על החץ הנפתח במאפיין זַחסוהחפו|ה ]ח6הוחטווה, 0 מאפשר בחירה מתוך רשימת אפשרויות קיימות 3 זט , הססטטםחסק 0 זס 60680 8 סדנת לימוד 6.0 8\ בשלב זה הינך אמור לראות את כיצד פקד התווית עוזר למשתמש להבין מה להקליד בתיבת הטקסט הראשונה. צור עוד שלושה פקדי תווית, אחד עבור כל תיבת טקסט שנותרה. השתמש בערכים המומלציס בטבלה ‏ 2.1 עבור מאפייני 6חהא ו-ח00ק68 (אל תשכח לשנות גם את המאפיין +חסוחחףו|1). לכשתסיים, הטופס שלך אמור להיראות דומה לתרשיס 2.15. טבלה 2.1: מאפייני 6ח8\ ו-ח63000 עבור פקדי התווית של תוכנית מחשב ההלוואות | מאפתפחטא | 000 מאפקמסטאלם 7000 תרשים 2.15: תוויות התוכנית מציגות למשתמש מה להקליד בתיבות הטקסט הוספת לחצני פקודה עד כה, יישוס הדוגמה שלך מכיל תיבות טקסט לקבלת קלט מהמשתמש, וסדרת תוויות המתארות תיבות אלו. עליך ליצור דרך שבה המשתמש יוכל להתחיל פעולות - לשס כך נועד פקד לחצן פקודה (חסשטם סח וס6). המשתמש יכול ללחוץ על לחצן זה כדי לגרוס למשהו לקרות. תוכל להוסיף לחצן פקודה לטופס באותו אופן שבו הוספת כל פקד אחר - על ידי שימוש בעכבר כדי לצייר אותו. לחצני פקודה, בדומה לתוויות, הינס בעלי מאפיין ח00ק68 המאפשר לקבוע איוה טקסט יופיע בתוך הלחצן, כך שהמשתמש יידע למה הוא משמש. כדי להשלים את ממשק המשתמש של תוכנית מחשב ההלוואות, הוסף שני לחצני פקודה בתחתית הטופס. שנה את מאפייני 6וח8א ו-ח68000 על פי טבלה 2.2. תרשים 6 מראה כיצד הממשק השלם אמור להיראות. פרק 2: יצירת התוכנית הראשונה | 59 טבלה 2.2: מאפייני פחפּא ו-ח00ק69 עבור לחצני הפקודה של תוכנית מחשב ההלוואות 6-ו ץק 68!60|866 תרשים 2.16: לאחר הוספת לחצני הפקודה, סיימנו את ממשק המשתמש של התוכנית שינוי מאפייני הטופס הינך יכול לשנות את מאפייני הטופס באותו האופן שבו אתה מגדיר את המראה והתנהגות הפקד. בדיוק כמו בפקדים, לטפסיםס יש מאפיין 6וחגא. שס ברירת המחדל עבור הטופס הראשון בפרויקט הינו 1חזס". טפסיס נוספים יקבלו שמות עוקבים כגון 2חזס=, 3זס, 4חזס= וכדומה. כמו בפקדים, כדאי מאוד לתת לטופס שם כעל משמעות. השתמש בחלון המאפיינים כדי לשנות את המאפיין 6וחּא עבור הטופס היחיד של פרויקט מחשב ההלוואות, ל-חוגּ!חז]. כדי לשנות את רוחב הטופס, בצע את הפעולות הבאות : 1 לת על אזור ריק בטופס כדי לבטל בחירת פקד שאולי נבחר. הפעולה מהווה למעשה בחירה של הטופס. שיס לב ששם הטופס מופיע בחלון המאפייניסם בתיבת האובייקטים. 2 עכשיו כשהטופס נבחר, המאפיינים המוצגיס בחלון המאפיינים, מהוויס למעשה את מאפייני הטופס. גלול את חלון המאפיינים עד אשר תמצאו את המאפיין ה0%ו\\, לקראת סוף הרשימה, ושיס לב לערך המופיע בו. 3 שנה את רוחב הטופס על ידי לחיצה עס העכבר על נקודת האחיזה הימנית וגרירתה (אס שינית את ההגדרות כך ש- 8856 |8טפו\ תרוצ במצב 521 - הסבר בהמשך הספר - עליך רק לגרור את קצה החלון כדי לשנות את גודלו). 0( סדנת לימוד 6.0 8\ 4 כדי לשנות את המאפיין חססו/\ חזרה לערכו המקורי, בחר את הערך החדש שמופיע בחלון המאפייניס ושנה אותו לערך הקודם. ברגע שתקיש זסזחם, הטופס ישנה את גודלו בחזרה לגודל המקורי. שמירת עבודתך - שוב... לאחר שסיימת לבנות את ממשק המשתמש לתוכנית מחשב ההלוואות, יהיה זה זמן מצוין לשמור שוב את עבודתך. מכיון שכבר שמרת את הפרויקט, שמירה חוזרת היא פעולה פשוטה ביותר - ומומלצת ביותר. למעשה עדיף לשמור את העבודה במספר שלביס במשך תהליך הפיתוח. לעולס אין לדעת מתי תתעוררנה בעיות. שמירה מהירה לוקחת מספר שניות בלבד, ועשויה לחסוך עבודה רבה. כדי לשמור שוב את הפרויקט, יש לבחור 6!ו= ואז 10166 586 מהתפריט הראשי. או לחילופין יש ללחו על לחצן שמירת הפרויקט מתוך סרגל הכלים. מכיון שכבר אמרת ל- 8856 |1808/\ היכן לשמור את הקבצים המהווים את הפרויקט, הס יישמרו אוטומטית באותו מקוס, ובאותו שסם קובא. במידה והתווספו רכיבים חדשים (טפסים, מודולים וכדומה) מאז השמירה האחרונה, יהיה עליך להגדיר את שס הקובצ החדש וכן את המיקוס בו יש לשמור אותו. קידוד פעולות התוכנית שלך כפי שהוזכר קודס לכן, ממשק המשתמש של תוכנית מחשב ההלוואות כבר מוכן. למרות זאת, התוכנית עדיין אינה עושה דבר בשלב זה. כדי להפוך את התוכנית לפונקציונלית, יהיה עליך להוסיף לה קוד. המונח קוד, כפי שהוא מופיע בספר, מתייחס לשורה אחת או יותר של פקודות תכנות, הכתובות בשפת תכנות כלשהי (28510 |1508\ במקרה שלנו). תגובה לאירועים 6 |8שפו/\ היא תוכנה מונחית אובייקטים (%60ח6ו00[60-07), ומונעת אירועים (חשטוזס-+ח6עם). משמעותו של דבר זה היא שממשק המשתמש של התוכנית מורכב מאובייקטים (פקדים, טפסים וכיוצא בזה). יש ייללמדיי את התוכנית איזו פעולה לבצע כאשר אירועיס קוריס לאובייקטים אלה. אירוע הוא בדרך כלל פעולה אשר המשתמש יום. יש ללמוד לצפות אילו אירועיס עשויים (ואמורים) להשפיע על האובייקטים בתוכנית, ולכתוב את הקוד המתאיס לטיפול באירועיס אלה. לדוגמה, במקרה של לחצן הפקודה %אם, הקוד צריך להגיב לאירוע לחיצה - 616%, על הלחצן, ביציאה מן התוכנית. קטע קוד זה צריך להיות מופעל בכל פעם שאירוע 01666 של הלחצן זואם מופעל. כדי לגרוס לתוכנית להגיב לאירועיס עליך להציב קוד עס שגרות אירועים (ח6ש₪ 65 .:. שגרת אירוע היא קטע קוד שמבוצע ברגע שאירוע מסויסם מתרחש לאובייקט מסויס. פרק 2: יצירת התוכנית הראשונה | 61 כדי להגיב למקרה שבו המשתמש ילח על לחצן זואם, עליך להוסיף קטע קוד לשגרת האירוע 01166 של הלחצן. הבה נמחיש זאת על ידי כתיבת קוד עבור שגרת האירוע 61666 של לחצן זוא= של תוכנית מחשב ההלוואות. לחץ לחיצה כפולה על הלחצן 5% שהצבת על הטופס של יישוס הדוגמה. פעולה זו תפתח חלון חדש הנקרא חלון הקוד (ראה תרשים 2.17). אפשר לפתוח חלון קוד נפרד עבור כל טופס (או כל מודול אחר) שמופיע בפרויקט. בחלון אה ממקמיס את הקוד שמתייחס לטופס ולאובייקטיס שבו. שיס לב שחלון הקוד מכיל תבנית, או מעטפת, של תת-שיגרה, ואשר מתחילה במילים 505 6פצוזש ומסתיימת במילים מט5 6חם. תת-שיגרה (6זט0סססזק פט5) או בפשטות שיגרה, הוא רצף קוד בעל שס ואשר מבוצע כיחידה אחת. |<1ם)- | [ זא 2 | - ו | - חח ] ()א6110 ס1אמבעס מגום פסהטבטק | | כעגום הבמס שם תת-השיגרה תרשים 2.17: חלון הקוד הוא תוכנת עריכה רבת תכונות שמתקשרת לאובייקטים שבתוכנית החלק המופיע אחרי המילים 500 שפצוזש מציין את שס תת-השיגרה. תת-שיגרה זו נקראת 616% 8א0₪וח6, שס אשר נקבע מראש ובא לציין את שגרת האירוע >6וו0 עבור הפקד הנקרא +/א05ח6. 6ו885 |אטפו\ תבצע כל קטע קוד הממוקס בתוך תת-שיגרה זו, כל פעם שאירוע 61166 מתרחש על לחצן פעולה זה. הערה: רוב הפקדים יכולים להגיב למספר אירועים שונים. לכל סוג פקד יש אירוע ברירת מחדל. אירוע זה הינו האירוע הנפוץ ביותר לסוג זה של פקד. לדוגמה, אירוע 616% הוא האירוע הנפוץ ביותר לפקד לחצן פעולה. אירוע ברירת המחדל הוא האירוע שנפתח בחלון הקוד כאשר לוחצים לחיצה כפולה על פקד חדש. 2 סדנת לימוד 6.0 8\ כדי לגרום לתוכנית להפסיק ברגע שהמשתמש לוחץ על הלחצן %ם, כל שעליך להוסיף היא שורת קוד בודדת לשיגרה בין ()א6ו61 %ו6₪0₪% 5 6זפטוזק לבין פט5 0חם. הסמן אמור להיות ממוקם בין פקודות אלו. הקש 8גד כדי ליצור כניסה לשורת הקוד (כדאי להתחיל את הקוד מעט קדימה כדי לשפר את קריאותו) והקלד את המילה 0חם. הקש זפזחם כדי להוסיף שורת רווח (אין צורך לעשות זאת אך הדבר משפר את קריאות הקוד). לאחר שתסיים, הקוד השלם אמור להיראות כך: ()66ו01 א0₪ח6 ס5 סזבּעוזוק 0 50 0ח= ברכותינו! כתבת כרגע את הקוד הראשון שלך ב- 8856 |808ו/. הגדרת שגרות אירוע הבט בשתי תיבות הרשימה הנפתחת שנמצאות בקצהו העליון של חלון הקוד, כפי שמוצג בתרשיס 2.18. תיבת האובייקט (התיבה השמאלית) נותנת את רשימת כל האובייקטים שמוקמו בטופס הנוכחי, וכן את הטופס עצמו. תיבת השיגרה (מצד ימין) נותנת את רשימת כל האירועים שתקפים לגבי סוג האובייקט שנמצא כרגע בחלון האובייקט. בעזרת שתי תיבות הרשימה הנפתחת האלו ניתן לנווט לכל מקוסם בחלון הקוד. חשוב על קוד עבור טופס מסויס כעל קוב טקסט ארוך. חלון הקוד הוא כלי ניווט שעוזר לנו להציג במהירות כל שילוב בין אובייקט לאירוע. <1ם) - | [ ו 2 תיבת השגרות 5 ו] |+ אפח] = תיבת ()01108 סבאפבעס מעוה שסהטבעתע האובייקטים המע מגום המע תרשים 2.18: שגרת האירוע 0166 של הלחצן ₪1 תגרום לתוכנית להפסיק חלון הקוד יופיע אוטומטית ברגע שתלח לחיצה כפולה על פקד כלשהו בעת התכנון. החלון ייפתח באירוע ברירת המחדל עבור הפקד שנבחר, אלא אם כן יש אירוע אחר המופיע כבר בקוד הפקד. במקרה זה האירוע המופיע בקוד יוצג למקרה שנצטרך לערוך את הקוד. תוכל כמובן, להשתמש בתיבות האובייקט והשיגרה בכל עת כדי למצוא במהירות כל אובייקט או אירוע מבוקש. ק 2: 'צי ותוכנית הראשונה פרק 2: יצירת התוכנית הראשונה | 63 טיפ: בנוסף ללחיצה כפולה על הפקד, אפשר לפתוח את חלון הקוד בהקשת 77, לחיצה על לחצן 60066 ששו/, או על ידי בחירת שסו/ ואז 6066. כעת כאשר הקוד ללחצן %א₪ מוכן, כל מה שנשאר הוא לקדד את לחצן 68|60|806 %חסוחעְהק. לחצן זה נועד לחשב את התשלוס החודשי לכיסוי ההלוואה, בהתחשב בנתוניס שהוכנסו על ידי המשתמש. קוד גה ייכתב כשגרת אירוע 616% עבור לחצן הפקודה 67068!60|8%6. ניתן להציג את שגרת האירוע 016% של הלחצן 6₪068|60|8%6 על ידי הבאת עיצוב הטופס לקדמת המסך ולחיצה כפולה על 6068|60/8%6. לעומת זאת, מכיון שחלון הקוד פתוח ממילא, יהיה זה יעיל יותר לבחור את 6068|6018%6 מתוך תיבת הגלילה הנפתחת של האובייקט. דבר וה מציג את השיגרה 6% 068|6|806ח6 בחלון הקוד. כתיבת קוד בתוכנית השיגרה אשר מחשבת את חישובי ההלוואות תהיה מסובכת יותר משגרת היציאה מהתוכנית. מובן שהקוד שמבצע את החישובים יהיה מורכב יותר מאשר הצהרת 0ח5 פשוטה. בנוסף, שיגרה וו תצריך עבודה נוספת, מכיון שנשתמש בה במשתניס. משתנה (ס!פפוזה/\) הינו מאגר מידע זמני. במקריס רביםס התוכנית שתבנו תצטרך לוכור מידע כמו תוצאות חישובים, שס המשתמש, סיכומי הזמנות ועוד, במהלך ריצתה. חשוב על משתניס כלוח שהתוכנית יכולה להשתמש בו כדי לזכור מידע. התוכנית, במסגרת קוויס מנחיס מסוימים, יכולה לרשוס מידע בלוח לשנותו ואף למחוק אותו לחלוטין. ראה: היכרות עם משתנים בפרק 8. הצהרה על משתנים. החלק הראשון של שגרת החישוב ישמש להגדרת המשתניס שאותם נצטרך. דבר זה אומר שנאמר ל- 8856 |1508\ את שמות המשתניםס שישמשו את הפונקציה, וכן נגדיר איזה סוג מידע יכיל כל משתנה. למרות ש- 8856 |1508/ לא מחייבת הגדרת משתנים (כברירת מחדל), רצוי לעשות את בכל מקרה. טיפ: הגדר תמיד את המשתנים שלך! ודא שהאופציה 30!6וו%8 6זושף₪6 הסוז3ז₪66|!3 בתפריט 10015, 5חססקס בכרטיסיה זס%ו4ש, מסומנת כפעילה. דבר זה גורם ל- 8856 |150/ לדווח על שגיאות אם אתה מנסה להריץ תוכנית שמשתמשת במשתנה שלא הוגדר (לדוגמה אם טעית באיות שם המשתנה). השיגרה 68!60/8%6 משתמשת בארבעה משתנים. משתנה אחד עבור כל ערך של כלל ההלוואה, אחוז הריבית, תנאי ההלוואה, והחישוב החודשי. ודא שהסמן נמצא בשורה הריקה שבין ()6|66 67068|60/8%6 505 6ספטוזק לבין טט5 6חם. הקש ספד כדי ליצור כניסה לשורת הקוד, והקלד את שורת הקוד הבאה: ץשח6זזטש 45 |הקוסחוזק6 וחוס 64 סדנת לימוד 6.0 8\ שיס לב שכאשר מקישים על ז0ח= לאחר כתיבת הקוד, הסמן לא חוזר לקצה השמאלי של חלון הקוד אלא נשאר בכניסה שהגדרת בעזרת 13. אפשר להגדיל את הכניסה על ידי לחיצה על ט8ד, ולהקטין אותה על ידי 886650866. כפי שתראה מהקוד, הפורמט הכללי להגדרת משתנה היא המילה חופ, אחריה שס המשתנה, המילה 45 וסוג המשתנה. כמו באובייקטים, יש ליצור סטנדרט לשמות. לכל אורך הספר, תראה סטנדרט נפוץ מאוד לסימון משתניס אשר משתמש באות הראשונה של שם המשתנה כקידומת המגדירה את סוגו. שארית השם הוא תיאור מטרת המשתנה. לדוגמה, המשתנה |710008ק6, הוא מסוג שסח6זוטס ומכיל את סך כל ההלוואה. חלק מסוגי המשתניס והקידומות שלהם מוצגיס בטבלה 2.3. טבלה 2.3: קידומות המשמשות למתן שם למשתנים על פי הסטנדרט הנפוץ קידומת סוג המשתנה מספר שלם (ז%606ח1 מספר שלם ארוך (ז0606ח1 פַחס 1 נקודה צפה עם דיוק יחיד (+חוסק חח 8סו= חסו5ו60זס-6ו0חו5 4 ₪ | נקודה צפה עם דיוק כפול (זחוסם חַחטהּס!= חסו665זס-6|טטסס) 6 מטבע (ש6ח6זזוט6) | 8 בלאנ(אמת/שקר) (60600 הוסף את שורת הקוד הזואת להצהרה הבאה: 6חו5 45 %4806ח וחוס מספר משתנים יכוליס להיות מוגדרים על ידי אותה שורת קוד. אס תעשה כך, יש לרשוס בנפרד את כל סוגי המשתנים : ץח 5 636% ,156007 5 הזוס דח וחוס אזהרה: טעות נפוצה למתחילים היא להגדיר מספר משתנים בהצהרה כמו 15 ?2 ,ץ ,א חזוס זחז. עליך לזכור שיש להגדיר לכל משתנה את הסוג שלו באופן מפורש. במקרה הנזכר רק 2 יוגדר כמשתנה מסוג ז600שח1 ו-א ו-ץ יוגדרו כמשתנים מסוג זחוזה\. סוג זה של משתנה הוא סוג מיוחד אשר יוסבר בהמשך הספר. הכתיבה הנכונה לקטע מסוג חייבת להיות כתיבת ז1606ח1 45 אחרי כל אחד משמות המשתנים. פרק 2: יצירת התוכנית הראשונה | 65 קוד השיגרה. קוד השיגרה עצמו הוא החלק שלמעשה מבצע את העבודה. בתוכנית מחשב ההלוואות שלנו, חלק וה של השיגרה יהיה אחראי על אחזור ערכי הקלט משלוש תיבות הטקסט הראשונות, חישוב התשלוס החודשי, והצגתו בתיבת הטקסט הרביעית. הקלד שתי שורות אלו לחלון הקוד (לאחר הגדרת המשתנים): |קוסחוזק6 6!טהזה/ 6+ חו |הקוסחוזס 6+ 6זסז5' (0א6 ד |8קוסחן 0 )|8/\ = |הקוסחוזק6 השורה הראשונה היא הערה שנועדה להסביר מה מתרחש בקטע זה. הערה מסומנת בגרש (') בהתחלת השורה, בדרך כלל. ברגע ש- 8856 |808 נתקלת בגרש, היא מתעלמת משאר השורה. 8856 |1508/ עוברת לשורה הבאה להמשך הפעולות. השורה השנייה בקוד מאחזרת את המידע שהמשתמש הכניס בתיבת הטקסט |8קוסחוזק)אט, ומאחסנת את הערך שלו במשתנה |8קוסחוזק6. פעולה וו מבוצעת בעזרת הצהרת השמה, בדומה לאלגברה, כאשר המשתנה מופיע בצד שמאל של סימן שווה והערך מופיע בצד ימין. הפונקציה ()|\ משמשת להמרת כל מה שמופיע בסוגרייסם של הפונקציה לערך מספרי עבור החישוביס. הערך הממשי של תיבת הטקסט מאוחזר על ידי גישה למאפיין זא6ד (מתייחסים למאפייניס של אובייקט בתוך הקוד על ידי שימוש בפורמט שזסקסזק.660[טס. חשוב על 6א6ד.|אקוסחוזקט כעל הערך הנוכחי של המאפיין של |ףקוסחוזק)ט (זכור שהמאפיין 6%ד של תיבת הטקסט מכיל את הערך הנוכחי שלו על המסך). טיפ: בעודך מקליד את שאר הקוד, שים לב להערות הנוספות המופיעות בגוף הקוד. להזכירך, הערה היא שורת קוד שאינה מבוצעת. היא נועדה להסביר את משמעות הקוד עצמו. ההערות הינן סוג של תיעוד העוזר למפתח להבין בקלות את משמעותו של קטע הקוד שהוא צריך לערוך. זהו רעיון טוב מאוד, ברוב המקרים, להוסיף הערות רבות לקוד. אתה עלול לחשוב שתזכור מדוע פתרת בעיה בדרך כלשהי, אך כשתביט בקוד שכתבת לפני שנה (או מישהו אחר), ההערות תהפוכנה את הקוד למובן הרבה יותר. הקלד בחלון הקוד את שארית הקוד כפי שמוצג ברשימה 2.1. ההערות אמורות לעזור לך להבין כיצד קוד זה עובד. תרשים 2.19 מראה את תת-השיגרה השלמה כפי שהיא מופיעה בחלון הקוד. 6 סדנת לימוד 6.0 8\ תוכנית 2.1: חישוב התשלום החודשי 6% |008ו066 1655 0ף 86% 65%6זססחו +זס/חס6' 5 06600685 12.75 .6.ן ' 0 / (א6 ך.0010+0806)) |3\ = סזפטחה ץורזהסרח 60 806 60765%חו |הטחחה אסעהסס' (ז68ץ 3 חו ח)הסרח) 12 עט פחוסוצוס צם ' 2 / 11007906 = שפח 5 חס + זססוהח 60 5זפסץ 01 זססותווח 6עחסס6' (ז68ץ 3 5הזחסרח) 12 עס פחוץוסטוטוח ץט ' 2 * (0א6 ד. וז [0) |8/\ = וחזס דח .)חסרהץהכ ץ|רזהסרח 6 ץ₪150!3 30 366|טס|ה6' .6 6סס! חח 01501860 6 65ארח הסחסחו זההזס-] סח ' ((החזס [ח- */ (07800ח11 + 1) - 1) / שוהשח11) * |הקוסחוזק6 = +הסחחיהק6 (" שאו" ,661 )הר זס=] = 66 .)תסו ץיהכ)אט הרצת התוכנית בטוח שהינך משתוקק כבר לראות את התוכנית שלך בפעולה! למרות ואת, לפני הרצתה, ודא כי שמרת את עבודתך. כדי להריץ את התוכנית, עליך להפעיל את פקודת ההרצה של 8856 |%1508 באחת משיטות אלו: + לת על לחצן +51 בסרגל הכלים. + בחר חטא, +5%31 מתוך התפריט. > הקש 55. [<זר . | (2066] הוהאחז! - 6041ןסזכו ו [= ו |[ 1 ] () 01168 1886גוס004081 מגופ סספטנבטק עַטמשעעגוס 25 81ע1סמנעפס מגע 16 ג שסהתפמ1+ עצע עסמסעעגוס 25 סמ06ע8ק0 ,5062סמ1 25 תעפדת בע 1 תס 16מ18עפט 6ג5 מ1 81ע1סמ1עע פס שעססם (סאשך.81ע1טמ5901אפ)1בע = 81ע1סמ1עפס 5מ816טנגו6 8501881 155 סס 5 5-5 0 / (8א6ך.שספת צט ₪ 2 / שספעססת .סט אסס עפמוגו ( (מעפדמ- * (856ת6מ1+ + ("68א1" ,5מ06ע0298) ספנעס? = 1686 ממ6מעהפסאס מגוט 8מם לו 1 | 5ן=| תרשים 2.19: הכנסת הקוד לחישוב התשלום החודשי משלימה את שגרת האירוע 616% עבור 67068!60!306 בביצוע פקודת ההפעלה 0ז508), 8856 |1508\ מבצעת קומפילציה על התוכנית שלך כדי לחפש שגיאות. אס לא נמצאו כאלו, התוכנית מתחילה להתבצע, ותקבל את הטופס פרק 2: יצירת התוכנית הראשונה | 67 הראשי. שיסם לב שההודעה בשורת הכותרת של 8856 |ה50ו\ השתנתה ממצב עיצוב למצב הרצה (₪006 חטא), דבר המראה שהתוכנית אכן רצה. מכיון שהאפליקציה שבנית היא מונחית עצמיס ומונעת על ידי אירועים, היא מחכה שאתה (המשתמש) תיצור אירוע כגון הקלדה בתיבת טקסט או לחיצה על לחצן. בדוק את התוכנית בעזרת הקלדת ערכיס לסך כל ההלוואה (וףקוסחוזק), תנאי (חחזסז), ואחוז הריבית (₪816 16165%ח1). השתמש בערכים אלה לבדיקה הראשונה: 11000 |הקוסחוזק 1-5 6 765%ס+ח1 20 והז ד לאחר הכנסת הערכים, לח על לחצן +הסוחעה8ק 68|60!806. התשלוס החודשי המופיע אמור להיות 1099.72 (ראה תרשים 2.20) הערה: מכיון שהתוכנית שבנינו היא דוגמה לטכניקות תכנות בסיסיות, ממשק המשתמש שלה הוא פשוט ביותר. מאמץ מועט מאוד נעשה כדי להפוך את התוכנית לחסינה בפני שגיאות. יש להכניס מספרים ללא פסיקים או סימן דולר כדי שהחישובים יעבדו כראוי. לאחר שנפתח את יכולת התכנות לאורך הספר, תלמד כיצד להתגבר על מגבלות מסוג זה. 1 = [חזס] .₪ 10 | |הקוסחוזק 5] [8] סוה ]5פזפזח| |הגוחם ₪] 15 9) חזזם ד 2 19 ] | !הפותעבק עוהוחוס ו תרשים 2.20: תוכנית מחשב ההלוואות פועלת כעת לחלוטין ויכולה לחשב תשלומי הלוואות. בדוק את התוכנית עס צירופים שוניס של מספרים. אחר, סייס את התוכנית בעזרת לחיצה על לחצן הסיוס (0חם) בסרגל הכליםס של 88566 |1508/. פעולה זו תחזיר אותך לסביבת הפיתותח. 08| סדנת לימוד 6.0 8\ בתקליטור: תוכנית מחשב ההלוואות המלאה נמצאת בתקליטור, בתיקיה .0065\59221/608002\| 6 מכאן... תוכנית מחשב ההלוואות איפשרה לנו לצלול לתוך כתיבת תוכנית 8856 |טפו\ מאפס. בפרק זה למדת לבצע את הפעולות הבאות: + להפעיל את 88516 |1508/\. * להתתיל פרויקט חדש. + להוסיף פקדים לטופס. > לשנות את המאפיינים של האובייקטים בפרויקט. > כתיבת קוד בכדי להפיח בתוכנית חיים. האמן או לא, אך פעולות אלו מהוות את גרעין התכנות ב- 8356 [808ו/. אומנס ראית דוגמאות פשוטות של כל אחד מן הצעדיס האלה, אך רוב התכנות מהווה חזרה על צעדיס אלה פעמיס רבות עד לקבלת התוצאה הרצויה. כשנתחיל לעבוד על יישומיס מסובכיס יותר, תראה דרכיס רבות לתרגול ולתיזוק יסודות אלה של תכנות ב- 88566 |1508/. פנה לפרקיס אלה כדי לקבל מידע רלוונטי נוסף: + כדי לראות כיצד להשתמש במרכיבי היסוד של 8856 |1508/, כדי ליצור יישומיס משלך ראה פרק 3 אבני היסוד של 83516 |בּטפו/. + כדי ללמוד אודות הפקדים השונים הזמינים לנו לשס בניית תכניות, ראה פרק 4 שימוש בפקדי ברירת המחדל של 83516 [1503/. > כדי ללמוד עוד על כתיבת קוד ב- 8856 |1508/\, כדי לתקשר עם משתמשי התוכנית שלך, ראה פרק 5 תגובה באמצעות שגרות אירוע. פרק 2: יצירת התוכנית הראשונה | 69 3 אבני היסוד של ₪3516 |בּשטפו פרק 3: אבני היסוד של 88956 טפוש 71 כבר למדנו שאובייקטים, למשל טפסים ופקדים, הס מרכיביס של 8856 |%1508\ אשר אתס מתקשר המשתמש. באופן כללי האובייקטיס שהמשתמש רואה ומשתמש בהס נקראיס המרכיבים הוויזואליים (פטחפחסקו 60 והּ50ו/) של התוכנית, לעומת מרכיבי הקוד (₪ח6חסקוח60 0006) של התוכנית שמתייחסיס לקוד התוכנית שהמפתח יצר. בפרק זה נבחן כמה מהיסודות הנחוצים לבניית המרכיבים הוויזואלייס של התוכנית. נלמד כיצד להגדיר את צורת ההופעה והתנהגות אובייקט על ידי שינוי המאפיינים (65וזו6קסזק), השיטות (005ח6%!!) והאירועים (טחסצם) שלו. הידיעה כיצד לנהל את מרכיבי האובייקטיס הללו, תציב אותך על המסלול הנכון בדרך ליצירת ממשקי משתמש מקצועייםס בעצמך. הערה: המונח אובייקט (6%(פ0) בפרק זה מתייחס לאובייקטים ויזואליים כגון טפסים ופקדים. בפרקים הבאים נדון בפירוט רב יותר באובייקטים אלה, וכן באובייקטים אחרים ובדרך שבה הם מתייחסים לקוד של 88516 |1508/. טפסים רוב הדוגמאות, בהן נתקלת עד כה, עשו שימוש באובייקט הטופס. הטופס, ובאנגלית - וחזסז, מהווה מעין ''מחסן'' עבור כל שאר הפקדים, כגון - פקד |1896 (תווית), פקד א80)א6ד (תיבת טקסט) ופקד 1066 (דמות), היוצרים את ממשק המשתמש שלך. מרבית התוכניות שתבנה תכלולנה מספר טפסים. הערה: באפשרותך אף ליצור תוכנית 8856 |הּ150\ אשר אינה מכילה טפסים כלל! דוגמה טובה לכך היא תוכנית שורת-פקודה המעבדת קבצים ואינה זקוקה לממשק משתמש. חלקי הטופס כאשר הינך מתחיל לעבוד על פרויקט חדש מסוג 5אם 0870ח558, 88516 |508ו\ טוענת עבורך פרויקט ברירת מחדל המכיל, במצב רגיל, טופס סטנדרטי יחיד המכונה 1חזס= (ראה תרשיסם 3.1). מאחר וזה המוצא של תהליך יצירת ממשק המשתמש לתוכניתך, מומלצ כי תשקיע מעט זמן בלימוד חלקיו השוניס של הטופס. כפי שאתה יכול לראות בתרשיס 3.1, טופס 8856 |15088\ מכיל את כל האלמנטיס שאתה עשוי לצפות להם בתוכנית פוסוחו/\. הוא מכיל שורת כותרת, תפריט בקרה, ואוסף לחצני הגדל/שחזר, מזער ולחצן סגירה. שים לב כי בומן בניית התוכנית מרבית מרכיבי הטופס זמינים, ואת למרות שעל פי הגדרת המאפייניס של חלקם (לדוגמה לחצן הסגירה), הס אינס זמיניס בזמן פעולת התוכנית. 12 סדנת לימוד 6.0 8\ לחצן סגור [חוזס-]) [חוזס] - 1וספןסז] .₪ ם לחצן הגדל לחצן מזער שורת הכותרת רשת הנקודות תרשים 3.1: טופס ריק הוא נקודת המוצא לבניית ממשק המשתמש תכונה נוספת המאפיינת את זמן התכנון היא רשת הנקודות המאפשרת הצבת פקדיס באופן מדויק בומן תכנוו ממשק המשתמש. אתה יכול לשלוט בהתנהגות רשת התכנון דרך תיבת הדו-שיח פחסופקס, אליה ניתן להיכנס על ידי בחירת פ|ססד ואז פחסוזקס, מתוך התפריט הראשי. תיבה זו מאפשרת לשנות את גודל הרשת או אף לבטל אותה כליל. כמו כן, ניתן לבחור ביישור אוטומטי של הפקדים על פי קווי הרשת. כאשר אפשרות זו מופעלת (כברירת מחדל), הפינה השמאלית-עליונה של כל פקד מיושרת ביחס לנקודת הרשת הקרובה ביותר. אופציית ברירת מחדל זו מאפשרת סידור קל ונוח של הפקדיס על גבי הטופס. אנו אף מעדיפים לצופף את קווי הרשת על גבי הטופס, דבר המאפשר יישור מדויק יותר של הפקדיס. מה עושים טפסים? כפי שהוכרתי קודם לכן, טפסים מייצגים את ממשק המשתמש בתוכנית שלך. טפסים הס למעשה חלק התוכנית עמו מתקשר המשתמש. כל הפקדים שעימס עובדים המשתמשים, כמו פקד א80!א6ד (תיבת טקסט), פקד חסאטם 6ח8 60 (לחצן פקודה) וכיוצא בוּה, ממוקמים על גבי אחד או יותר מהטפסים. בנוסף לתפקידס כמחסן לפקדים, מהווים הטפסים מעין יישוטרי תנועה'' המפקחיס על האובייקטיס השוניס המרכיבים את הממשק. בהמשך תוכל לראות דוגמאות רבות לשימוש בקוד המגיב לאירועיס המתייחסיס לאובייקטים השונים. כל אחד מקטעי הקוד בתוכנית, המתייחס לאובייקטיס הממוקמיס על גבי טופס מסוים, מאוחסן (ונערך) כחלק מהטופס עצמו. במילים אחרות, הטופס מכיל לא רק את האובייקטיס שהמשתמש יכול לראות, אלא גס את קטעי הקוד שהמשתמש אינו יכול לראות. פרק 3: אבני היסוד של 88956 |פטפוצ - 73 השימוש בפקדים למרות שטפסיס הס חלק חשוב בתוכנית שלך, אין להם ערך רב ללא הפקדיס המצורפים אליהס. פקדי 88566 |1508/\ מאפשריס לך לבצע מיגווו רחב של משימות, כגון עריכת טקסט, הצגת תמונות ותקשורת עס בסיסי נתונים. השימוש הליברלי בפקדים היה ונשאר הצד החזק של 8856 |808וש. מהם פקדים? הפקדים (5|סשחס6) של 8856 |508ו/ הס אובייקטיס המיועדיס לביצוע משימה כלשחי. לפקדים יש מאפיינים, אירועיסם ושיטות המשויכיס אליהס, בדומה לטופס עצמו. לדוגמה, באמצעות מאפייני פקד א80;אפד (תיבת טקסט), נקבע את גודל תיבת הטקסט, את סוג הגופן בו יופיע הטקסט בתיבה, את צבע הטקסט, הרקע שלו ועוד. 6 |808ו/\ הינה שפה גמישה המאפשרת למפתח לשלב בתוכנית גם פקדים שאינס בהכרח מבית היוצר של חברת 050%י6סו1\. לאור גמישותה של 8856 |1508/ והמיגוון העצוס של פקדי יצד שלישייי בשוק, קייס סיכוי רב שתוכל לאתר פקד עבור כל משימה בה תתפוץ, החל מאיחזור מידע והפקת דוחות מותאמיס אישית, וכלה בפקדיס המתמחים בעיבוד גרפי עבור משחקים, וכל דבר אחר שעולה על הדעת. השימוש בפקדיס לביצוע משימות קיים מאז תחילת ימי 8856 |508ו/, אך היכולת ליצור ולשלב משלך שולבה לראשונה בגירסה 5. כעת 8856 |508ו\ מאפשרת לבנות פקדי 6%ע60 עבור תוכניותיך או עבור כל תוכנית אחרת התומכת בתקן ₪60/6%. פונקציות הפקדים אפשר לחשוב על פקד כעל תוכנית ועירה המבצעת משימות ייחודיות. הפקד א80;א6ז, לדוגמה, מציג טקסט בגודל ובגופן על פי הערכיס שהכנסנו למאפייניו. בנוסף, מכיל, אותו פקד, קוד פנימי המאפשר לו לקלוט ולעבד לחיצות מקשיס באופן שבו הוא יודע, לדוגמה, שלחיצה על מקש 886650806 משמעותה כי עליו למחוק את האות -₪ האחרונה שהוקשה. אס התנסית בכתיבת תוכניות בשפות תכנות אחרות, א | ובעיקר בשפות הפועלות בסביבת הפיתוח של 05כ, אתה בוודאי יודע ₪ \ שלעיתיס קרובות יש לכתוב קטע קוד גדול למדי רק כדי לקלוט ולעבד = ךן לחיצות מקשיס של המשתמש, ובכך לאפשר לו להזין נתוניס לתוכנית. ב- = 885|6 |1508/, לעומת זאת, כל שעליך לעשות הוא למקס את הפקד על גבי - הטופס וכל היתר כבר ייעשה עבורך. במיליסם אחרות, פקד הוא אובייקט 3 58 מוגדר מראש המבצע עבורך פעולות מיוחדות. ₪ 7% גירסה 6 של 8856 |1508\ מצוידת במערכת פקדיס סטנדרטיים, אותה ניתן 2 למצוא גס בשאר המהדורות, אשר מאפשרת לך לטפל בסוגיסם רביס של (/ משימות תכנות. פקדים אלה מופיעים בארגז הכלים (אס8!|ססז) המוצג ₪ בתרשים 3.2. מטרת כל פקד בארגז הכלים ואופן השימוש בו מתואריס ₪ בפרק 4 שימוש בפקדי ברירת המחדל של 83516 [ב150/. תרשים 3.2: ארגז הכלים של 28516 |508ו/\ מכיל אוסף פקדים סטנדרטי 74 סדנת לימוד 6.0 8\ הערה: הפקדים הסטנדרטים המופיעים בארגז הכלים, כפי שמוצג בתרשים 3.2, אינם הפקדים היחידים המצורפים ל- 8856 |1508/. כדי להוסיף פקדים נוספים כגון פקד שש66זד או פקד 1₪886115%%, יש להשתמש בתיבת הדו-שיח של הרכיבים המופיעה ב- 6%5חסק וח 60 תחת 66%[סיזוק מהתפריט הראשי. ראה: פקד ש6ו/6סיוד (מבנה עץ) בפרק 12 הפקדים המשותפים של 0501%ז6וו. חקר המאפיינים בפרק 2 יצירת התוכנית הראשונה, למדת כיצד לשנות את מאפייני הפקדים כדי לשנות את צורת הופעתס בעת הפעלת התוכנית. חשוב על המאפיינים כעל תואר שס (40[66106) המתאר תכונה ספציפית של אותו אובייקט. ניתן להתאיס בקלות את צורת הופעת האובייקט לזו בה אנו מעונייניס, על ידי שינוי ערך מאפיין אחד או יותר. יסודות המאפיינים כאשר הינך מסתכל על טופס כלשהו, אתה רואה למעשה חלון מלבני, כמו וה המופיע בתרשיס 3.3. צורת הופעתו של חלון הטופס נקבע על ידי אוסף מאפיינים. לדוגמה, מיקוס הטופס על גבי המסך נקבע באמצעות המאפייניס 164 ו-קסד, גודל הטופס באמצעות המאפיינים חזסו/\ ו-00%ו₪6 שלו, והכותרת באמצעות המאפיין חס₪ק68 (כותרת). ניתן אף לקבוע מהס לחצני הבקרה שיופיעו (אס בכלל) בשורת הכותרת של הטופס, זאת על ידי שינוי ההגדרות של מספר מאפיינים במקביל. תרשים 3.3: מראה הטופס נקבע על ידי מאפייניו בעת שמירת הטופס כחלק מפרויקט, 8856 |1508/ יוצרת קובצ טקסט בעל סיומת אח=. קובצ זה מכיל בתוכו אינפורמציה על הטופס, הכוללת את מאפייני הטופס, האובייקטיס הכלוליס בו ומאפייניהס, וכן את כל קטעי קוד שנוצר עבור טופס זה. תרשיס 3.4 מציג חלק מקוב> |\8=. שנוצר עבור הטופס המופיע בתרשים 3.3. פרק 3: אבני היסוד של 8856 |פטפו\ - 75 8 א510חט 1חיוס] היוס].08 ה8671 "[חוס]" | = ה%10ק3 1 = 8 1% = 8 0119 = 5 011 - 205 "[חוס]" | = 16| -4-]!3--% = 8 5 = 3191 % פשסשחה1ש' ‏ 3 | = ה7051%10ק5%3750 6010 ה%60ט08ַהבּהה08.60 ה671ם "חיוס] ה0106" - = ח%10ק3 5 = וו 108 = 5% 8 - בד 2008 = שפד 155 = 1 4חם קסז[ם1 [08.|388 ה8671 %ח0] טָ5יוסקס-וקה8601 "+5801 5305 5|]" | = סבו 7 תרשים 3.4: קובץ אא;. של טופס מכיל מידע על המאפיינים שמגדירים אותו ואת האובייקטים הכלולים בו מ אזהרה: עבור טפסים מסוימים, 8856 |150/ יוצרת בנוסף גם קובץ בעל סיומת א8=. בקובץ נשמרים אלמנטים גרפיים ובינאריים שלא ניתן לאחסן בקובץ טקסט רגיל. אם ברצונך להעתיק טופס מתיקיה אחת לאחרת, חשוב מאוד להעתיק גם את קובץ א8=. הקשור אליו. מאפיינים נפוצים לא לכל האובייקטים ב- 8856 |1508/ יש אוסף מאפייניס אהה. עם זאת, יש מספר מאפייניס שכיחים המופיעיס באובייקטיס רביס. ברשימה שלהלן מופיעים חלק מן המאפייניס השכיחיס והחשובים ביותר: + 6חפא + א06ח1 66| * ססד > ₪600 > סטו + 80|60ח= + 6סו9ו\ 76 סדנת לימוד 6.0 8\ שימוש במאפיינים לשליטה בגודל אובייקט גודל אובייקט ב- 8856 |8טפו\ נקבע על ידי מאפייני זחו6 ו-חססו)\ שלו. כפי שכבר ראית, ניתן לשנות את גודל האובייקט על ידי סימון וגרירת נקודות האחיזה שלו בזמן עיצוב, או על ידי שינוי ערכי המאפייניס 361806 ו-חזסו/\ בזמן התכנון או בוּמן פעולת התוכנית. שינוי גודל האובייקט בזמן עיצוב, גורס גם לשינוי ערכי 690% ו-חזסו/\ בחלון המאפיינים, כפי שגילית ה מכבר בפרק 2. ניתן להשתמש בקוד כדי לגרוס לשינוי בגודל האובייקט במהלך פעולת התוכנית. במקריס מסוימים, לדוגמה כשמדובר בטופס, יכול המשתמש עצמו לשנות את גודל האובייקט, ואת על ידי גרירת אחת הפינות שלו. בסעיף שינוי מאפיינים בזמן פעולת התוכנית תוכל לראות דוגמה לעקרון וּה. תרשיס 3.5 ממחיש כיצד באים לידי ביטוי מאפייני הגודל 38100 ו-חז0ו/\ של הטופס. גודל אנכי, נקבע על ידי המאפיין ו גודל אופקי, נקבע על ידי המאפיין הז0ו/\ תרשים 3.5: גודלו של טופס נקבע בהתאם למאפיינים 690% ו-חזו/\ שימוש במאפיינים לשליטה במיקום אובייקט בנוסף לשליטה בגודל האובייקט, אתה יכול לשלוט גס במיקומו, ואת בעזרת המאפיינים סד ו-16% (ראה תרשיס 3.6). המאפיין 168 מייצג את המרחק שבין צידו השמאלי של האובייקט לצידו השמאלי של האובייקט המכיל אותו. המאפיין קסד מייצג את המרחק שבין קצהו העליון של האובייקט לקצהו העליון של האובייקט המכיל אותו. כשמדובר בטופס עצמו, ה''אובייקט המכיליי הוא המסך כולו. אם תצייר פקד על גבי הטופס, הטופס הוא האובייקט המכיל של הפקד. ראוי לציין כי יש מספר פקדים, כמו לדוגמה אספשזנססוק (תמונה) ו-86ז= (מסגרת), המסוגליס להכיל פקדים אחרים. פרק 3: אבני היסוד של 88956 |פטפוצ - 77 [חזזם] .₪ מרחק אנכי נמדד על ידי המאפיין מרחק אופקי נמדד על ידי המאפיין 166 תרשים 3.6: מיקום הפקד א80זא16 נמדד ביחס לטופס המכיל אותו הערה: המאפיינים קסד ו-16% מסוגלים להכיל גם ערכים שליליים. לדוגמה, שיבוץ הערך 0. במאפיין 188 של פקד |1886, יגרום למיקום הפקד כך שהקצה השמאלי שלו יימצא כ-2.5 ס"מ משמאל לאובייקט המכיל אותו. לפיכך לא נוכל לראותו (במלואו או בחלקו). שלא כרוב הטפסיס שמיקומם נמדד ביחס לפינת השמאלית-עליונה של המסך, מיקוס טופס שהוא חלק מממשק מרובה מסמכים (כ] - %07806ח1 זחסותטססכ 6וסטוטוז) נמדד ביחס לפינה השמאלית-עליונה של אזור הלקוח בטופס האב (ראה תרשים 3.7). טופס אב ויו | טופס בן תרשים 3.7: טופס הצאצא בממשק 1כ) ממוקם ביחס לטופס האב שלו 8 סדנת לימוד 6.0 8\ שינוי המאפיינים במהלך פעולת התוכנית כפי שכבר צוין, ניתן לשנות את מאפייני האובייקטים בזמן ריצת התוכנית, אם על ידי פעולות המשתמש או על ידי פקודות המשולבות בקוד. בשלב זה נוכל לבחון את העניין באמצעות תרגיל פשוט: נבנה פרויקט פשוט אשר יציג בפני המשתמש טופס רגיל. המשתמש יוכל לשנות את גודלו ומיקומו של הטופס על ידי גרירת אחד מקצותיו באמצעות העכבר. כמו כן נמקס על גבי הטופס שני לחצני פקודה ונכתוב פקודות קוד אשר תגרומנה להרחבת הטופס בעת לחיצה על הלחצן הראשון, ושינוי מיקומו כלפי מטה בעת לחיצה על הלחצן השני. בנוסף לכך, נמקס על גבי הטופס גסם ארבעה פקדי ו1806 אשר יציגו את ערכי המאפיינים הששו/\ (רוחב), 690% (גובה), קסד (מרחק למעלה) ו-16% (מרחק שמאלה). יצירת תוכנית המשנה את גודל ומיקום הטופס התייחסות למאפייני האובייקטים, במסגרת קוד התוכנית, נעשית בשיטה המכונה זיהוי על פי נקודות (חסטפזסא זסכ). לדוגמה, המאפיין ח00ק68 של פקד |1806 כלשהו הממוקס בטופס מסויסם ונקרא 800:655!|ט!, | ייכתב בקוד בצורה הבאה: ח0ק655.608ו00הוסו. אס אינך זוכר כיצד למקם אובייקטים על גבי הטופס או כיצד לשנות את מאפייניהם, כדאי שתערוך חורה קצרה על פרק 2. בתרשים 3.8 מופיע טופס הדוגמה כפי שהוא אמור להיראות בסוף התהליך. ייתכן ותרצה להיעזר בתרשים זה במהלך בניית הפרויקט שלך. ראה: יצירת ממשק המשתמש לתוכנית בפרק 2 יצירת התוכנית הראשונה. |< |ם) =. [חוזס ] .% תרשים 3.8: פרויקט דוגמה זה מדגים את השימוש בקוד לשינוי מאפייני טופס שונים ; בתקליטור: הפרויקט מצורף בתקליטור ונקרא כסזפוחזסם. פרק 3: אבני היסוד של 88956 |פטפוצ - 79 כדי לבנות גירסה משלך לפרויקט זה, בצע את הפעולות הבאות : 1 2 .10 0 צור פרויקט חדש מסוג 55 08170ח500. הוסף ארבעה פקדי |1886 לטופס. סדר אותםס בטור בצדו השמאלי של הטופס. פקדיס אלה ישמשו להצגת מידע במסגרת התוכנית. בפקדי |1896 המשמשים אך ורק להצגת טקסט, אין צורך, בדרך כלל, לשנות את ערך המאפיין 6וחפּאז, שכן ממילא לא תהיה התייחסות אליו במסגרת הקוד. שנה את מאפיין חסו0ק68 של ארבעת הפקדים ל: קסד ,166 ,חססוצ\ ,%ח4ו₪38 (בהתאם). הוסף ארבעה פקדי |1806 נוספים, מימין לטור הקודם. שנה את מאפיין סח שלהס ל-ססדום! ,6 ₪ופ! ,הססושצופ! ,%חפופחוט! (בהתאס). השאר את מאפיין חסוק68 שלהם ריק (עליך למחוק את הערך המשוב\ כברירת מחדל ב-חס0800). הוסף פקד חסט8 0ח8 60 (לתחצן פקודה) בחלק התחתון של הטופס. שנה את המאפיין 6וחהּא ל-ח06ו//60 ואת מאפיין הסוזק68 ל- וחזס= הססו\ש. סמן את הטופס ושנה את המאפיין חזטו\\ ל-4000 =>קוששד (ראה סעיף מידות ב-₪3516 |הטפוצ להגדרת המושג פטוצוד). עבור לחלון הקוד על ידי לחיצה כפולה על לחצן הפקודה. כעת הסמן אמור להיות ממוקס בשגרת המשנה 6166 ח06ו//ח6. הקש טאב והקלד: 100 + 008ו/.1זס = הזסו%\.1וחזס=. שורת קוד זו גורמת לערך של המאפיין חזסו\\ של 1וחזס= לגדול ב-100 פקושוד בכל פעס שלחצן הפקודה נלת\. פתח את תיבת האובייקט של חלון הקוד ובחר וחזס"]. פתח את תיבת האירועיס של חלון הקוד ובחר ₪6526. פעולה זו יוצרת את המעטפת של שגרת האירוע 6 וחוחזס=. האירוע 865/26 מתרחש בכל פעם שרוחב או אורך הטופס משניס את גודלס, אם על ידי המשתמש ואם על ידי קוד התוכנית. הוסף את שורות הקוד הבאות לשגרת האירוע ₪65226 וחזסת : וס ו/\. 1 רחזס=] = הססכ3ס. הססו\ופו 1 הס = הססכ63.הסוסרוופו + וס = חה6.0300 ]וטו סקס .1 וח זס=] = הסק63.ססדופו אס אתה מעוניין, תוכל לשמור את הטופס והפרויקט, אולס אין הדבר הכרתי. סדנת לימוד 6.0 8\ טיפ: 6 |508/\ מצוידת בכלי שימושי לעזרה בכתיבת מאפיינים הנקרא 1155 סטג 5 וחסוי. כאשר הינך מקליד שם אובייקט מסוים ואחריו נקודה, 8856 |8טפו\ מנסה לעזור לך בהשלמת הקוד החסר על ידי הצגת רשימת מאפיינים המתאימים לסוג האובייקט אותו הקלדת (בנוסף לאלמנטים נוספים, כגון שיטות ואירועים, המתאימים גם הם לאובייקט זה). שים לב כי הקלדת התווים הראשונים מתוך שמו של המאפיין המבוקש גורמת להדגשתו ברשימת המאפיינים. לחיצה בשלב זה על רווח, נקודה, הקשת זסשח= או זסזח +61 תגרום להוספת המאפיין הרצוי לשורת הקוד. מידות ב - 23516 |הט8ו\ מרחקים ב- 88516 |808ו/\ נמדדים לפי ברירת המחדל בטוויפים (פקושד). זו יחידת מידה עצמאית השווה ל- 1/20 מנקודת מדפסת. לכן יש 1440 טוויפים באינץ'. הגודל הפיסי האמיתי שלה משתנה בהתאם לרזולוציית המסך. ניתן להחליף את יחידות המידה המשמשות למיקום ומדידת אובייקטים ביחס לאובייקט המכיל אותם על ידי שינוי הערך במאפיין 568|6\006 של האובייקט המכיל. אך לא ניתן לשנות את יחידות המידה של המסך. לכן המאפיינים !161 ,קסד ,חזו/\ ,01ו₪8 של טופס תמיד יימדדו בטוויפים. בדיקת התוכנית שזה עתה יצרת הפעל את התוכנית שזה עתה יצרת. שנה את גודל הטופס על ידי גרירת קצותיו. שיס לב כיצד פקדי !1826 מציגיס את השינויים החליס באורכו ורוחבו של הטופס. פעולה זו מראה כיצד מאפייני אובייקט יכוליסם להשתנות בעקבות פעולות המשתמש בזמן פעולת התוכנית. עתה, לחצ על לחצן הפקודה שעל הטופס כדי לגרוס להרחבת הטופס. שים לב לשינוי המיידי בתווית הרוחב ולהופעת ערכו החדש של המאפיין חזסו/ו. דוגמה זו ממחישה שינוי מאפייניס באמצעות פקודות תכנות (למרות שהמשתמש גרס לשינוי הרוחב, השינוי אירע למעשה בעקבות ביצוע שורת קוד). לבסוף, נסה להזיז את הטופס (על ידי גרירת שורת הכותרת שלו). על ידי כך אתה (כמשתמש) משנה את ערכי המשתניס ססד ו-16%6. דוגמה זו בעייתית מעט מכיון שהתוויות הרלבנטיות אינן מתעדכנות בערכיס החדשים של המאפיינים ססד ו-16%. הדבר קורה מכיון שהקוד אשר מטפל בעדכון פקדי !1886 נמצא בשגרת האירוע 26ו₪65. מכיון שלא שינינו את גודל הטופס אלא רק הזזנו אותו, העדכון לא התבצע. למרבה הצער אין אירוע, בדומה ל-₪656, המתרחש בעת הזות הטופס. בעיה זו ניתנת כמובן לפתרון, אך הפתרון נמצא מעבר להיקף החומר המכוסה על ידי פרק זה. בינתייס אפשר לעדכן את הערך ייידנית'י על ידי שינוי גודל הטופס מייד לאחר הזותו, פעולה המאפשרת לך לראות את הערכיס החדשים של ססד ו-16%. פרק 3: אבני היסוד של 88956 |פטפו - 81 שימוש במאפיינים לשליטה על האינטראקציה עם המשתמש גם אם בנית אפליקציה המכילה טפסים ופקדים רבים, סביר להניח כי לא תרצה לאפשר למשתמש גישה בו-זמנית לכולס. אם, לדוגמה, ברצונך לבנות יישוס המאפשר למשתמש להקליד דוח הוצאות, תרצה שיישוס זה יכיל לחצן המאפשר למשתמש לשלוח את הדוח המוכן להדפסה, אך לא תרצה לאפשר למשתמש לגשת ללחצן וה בטרסם יהיו כל הדוחות מוכנים ומאוזנים. שני המאפיינים, 06ו5ו/ (גלוי) ו-60וסהח= (מופעל), יעורו לך לשלוט על האינטרקציה עס המשתמש. באמצעות המאפיין וש אנו קובעיס האס אובייקט מסויס יופיע על גבי המסך או לא. באמצעות המאפיין 0ַ6|פַ8ח= אנו קובעיס האם תתאפשר למשתמש הגישה לאובייקט מסוים או לא. שני המאפיינים יכולים להכיל אחד משני ערכים: 6טזד או 6 כאשר המאפיין 6טופו/\ נמצא במצב 8156], האובייקט לא יופיע על המסך והמשתמש אף לא יידע על קיומו. כאשר המאפיין 80!60ח= נמצא ב-8!56=, האובייקט יופיע על המסך (במידה המאפיין 6|טופו/\ נמצא ב-6טזז), אך במצב מנוטרל, כך שלא ניתן יהיה להשתמש בו. אובייקט מנוטרל מופיע על המסך בגוון אפור או במעומעם, כדי שהמשתמש יידע שהוא שסם אך אינו ניתן לשימוש. דוגמה טובה לאובייקטים ומיניס ובלתי זמיניס חליפות, ניתן למצוא בממשק האשפים (28705/)) במספר תוכנות פווססחו/\. האשפיס מפרידים משימה מסוימת למספר שלבים הגיוניים. המעבר בין שלבי האשף מתבצע בעזרת שלושה לחצני ניווט (בדרך כלל 286%, ₪66 ו-חפוחות). זמינות לחצני הניווט משתנה בהתאס לשלב אליו הגיע המשתמש, כפי שמתואר בתרשים 3.9. זה 2ו/\ החותפו!סט] פע םפצצ פח1 חס 185 זטוס' חפוופטק בזבקוו ו 7 טזה2ו/א\ ופוסו פפ/א\ ]וס8סזסו4! סז פחזססוס/אר זסחוס חב ,65ו] ]זסקקוופ ,65חַ3ק פש/צל זגוסע מפוופגוק גוסע פכ|סן 6 03 זפשזס5 0 /\ 6 7 .זס/ז50 ס6/א\ 8 חס ₪65 וה6וחסס ספ 86 חב6 | זס ,[384/]) אזסאווסה 63זב |בסס| זגוסע חס ספובססו .(57]] זסטואיסזק 6סועז56 זפחזפוח| זגוסע עם ספחובּ)הובוז +זסקקוו 5‏ חב פ6// זגו וגוססב הסו!הוזס/חו 6605 בזבקואו סח ,הסוזהחזס]תו פוה 3/6 + הסט גוסע ]| זסעז50 ספ / זגוסע סחה ,5פוו 5 זם זסזהזופומוחחם3 ח516ע5 זגוסע 1סב)חסס .461 >סווס ,הבכ סש זגוסע במוחפוופגוק חוסם סד | סופ | 06 תרשים 3.9: כיון שהמשתמש באשף זה נמצא בשלב 1, מאפיין 6₪מח= של הלחצן 886% נמצא במצב 8!56=, ולכן הלחצן מופיע באפור 2 סדנת לימוד 6.0 8\ טיפ: שיטה אחת בה אתה יכול להיעזר, אם ברצונך לבנות ממשק אשף ב- 88566 |1508/, היא לצייר את הפקדים עבור כל שלב בתוך מסגרת. הפקד חפ (מסגרת) של 8856 |הטפו משמש כ"מחסן" לפקדים אחרים. לפיכך, כל שינוי במאפיין פ)פופו\ שלו משפיע גם על מצב הופעתם של הפקדים המאוחסנים בו. אופן ההפניה לטפסים ופקדים בקוד מרכיב מרכזי נוסף בכל אובייקט 8856 |508ו\ הוא המאפיין 6וח8\. מאפיין סוחהַּא מגדיר ערך מזהה ייחודי שעל פיו תוכל לפנות לאובייקט זה בקוד. לכל טופס, או פקד חייב להיות שם ייחודי. הערה: לכל טופס בפרויקט חייב להיות שם ייחודי. לעומת זאת שמות פקדים חייבים להיות ייחודיים רק עבור הטופס שבו הם נמצאים. לדוגמה, יכול להיות לך פקד בשם 1 בכל אחד מהטפסים שבפרויקט שלך, אך לא יכולים להיות לך שני טפסים שייקראו 1חזסת. ברגע שאובייקט נוצר, 8856 |508ו/ נותנת לו שס ברירת מחדל. לדוגמה, 1חזס" הוא השס שניתן לטופס הראשון שתיצור בפרויקט שלך. למרות זאת, הדבר הראשון שעליך לעשות לאחר יצירת אובייקט חדש הוא שינוי שמו לשס בעל משמעות. אנו, לדוגמה, משתמשים לעיתיס קרובות בשם חו8ּ1וח עבור טופס הממשק הראשי בפרויקט. כפי שמוזכר בפרק 2, שמירה על סטנדרט אחיד במתן שמות לטפסיסם ואובייקטיס אחריס הוא הרגל טוב למפתח (סטנדרט זה נקרא גס קוד הונגרי). נהוגג להשתמש בקיצור בן שלוש אותיות קטנות של שס הפקד כדי שניתן יהיה לזהות את סוג האובייקט בקלות. יתרת השס מתארת את מטרת האובייקט. בשס חופּ\!\חז), שהוזכר קודס לכן, מרמזת הקידומת 11 כי האובייקט הוא טופס, בעוד הסיומת חוג!\ מעידה על כך שמדובר בטופס הראשי בתוכנית. בטבלה 3.1 תוכל למצוא המלצות עבור שמות אובייקטים רבים ב- 8856 |1508 (טפסיס ופקדים). זכור כי השמות שאתה מעניק לאובייקטים משמשים גם במסגרת הקוד, כך שרצוי, למען הנוחות, להעניק שמות בעלי אורך סביר. כדי לשנות את המאפיין 6וחגּ של אובייקט כלשהו, היכנס לחלון המאפייניס (באחת משלוש הדרכיס הבאות: לחצ על לחצן 65ו6קסזק, בחר עוסוצ, שספחו)\ 65זסקסזס או הקש 54 מתוך החלון הראשי), ובחר את המאפיין שחגּא\. הקש ערך חדש למאפיין. תרשים 3.10 מראה את מאפיין סחהּא בחלון המאפיינים. הערה: ב- 88516 |1508/, חלון המאפיינים מוצג על המסך כברירת מחדל, כך שאין צורך לפתוח אותו במיוחד, אלא אם כן סגרת אותו. פרק 3: אבני היסוד של 88956 |פטפו\ - 83 טבלה 3.1: אובייקטים ב- 8856 |1508/ והקידומות שלהם סוג האובייקט סוג האובייקט קידומת א80א6066 (תיבת סימון) ז||5070 |)חספוזסר! (פס גלילה 0 0 0000 (תיבה משולבת טס לצ קודה | שת |₪0ח60 8% (פקד מידע) 80% 115% (תיבת רשימה) אס סטוחס6 סחטססט פאה (תיבה טח6ו₪ (תפריט) טחוח משולבת מקושרת מידע וח 60 015 (מאחסן 015) 9 0 0 ש יב ס ב הק + ב ד 60 חס 8ז08 (רשת מקושרת 580% | 6ח800 0868 (תיבת רשימה מקושרת מידע חסט8 חסטקס (לחצן אפשרות) ס כד 5 80% 115% ץז6600זום (תיבת רשימה [ 80% 6זנטסוק (תיבת תמונה) לספריה 1150008 6טוזם (תיבת רשימה לכונן עס כֶח5 115008 6ו= (תיבת רשימה לקובץ) +| | אסם)אד (תיבת טקסט) 6 ש ₪ ם ן 4 סדנת לימוד 6.0 8\ וי יי | | רק 1וזזס= סב-1 6 0 ךר 6 -2 1וחזס= שד שד חק צ600 - 13 - 0 1 סוד א = ח זב ק5חבּזד - 1 (6רח3\) 0ל 6006 חן 560 פהחבּח שחל פחזונספת 80[ חב ]הו תרשים 3.10: המאפיין סוְחבּ\] ממוקם בקצה העליון של הרשימה האלפביתית וכמו כן מופיע כמאפיין הראשון בכרטיסיה 68%60011260 תחת הקטגוריה 56ו61. מבט ראשון בשיטות ואירועים פרק וה התרכז, עד כה, במאפיינים וכיצד הם משמשים לשליטה בצורת הופעתם של האובייקטיס. בנוסף למאפיינים, אובייקט יכול להכיל גם שיטות (0005ח60!), המגדירות את המשימות שהאובייקט יכול לבצע. המשימות יכולות להיות פשוטות, כגון הזות אובייקט למיקוס שונה, או מסובכות יותר כגון עדכון מידע בבסיס נתונים. עבודה עם שיטות שיטה היא למעשה פונקציית תוכנית הבנויה בתוך האובייקט ומבצעת עבורו פעולה מסוימת. באמצעות השיטה המוטבעת בו, יודע האובייקט כיצד לבצע את המשימה. אין בצורך בהוספת הוראה נוספת כלשהי. בטפסים לדוגמה, מוטבעת שיטה, הנקראת והסז-סהוזק, ‏ אשר גורמת להדפסת הטופס כפי שהוא נראה על המסך. המשפט החזס-טחהוזק. 1 וחזס= יגרוס ל- 88516 |1508/\ להדפיס עותק של 1וחזס". למעשה, כל הפרטים הקטנים של השיטה וחזס=חוזק כבר מוטבעיס בתוך אובייקט הטופס, לפיכך, המפתח עצמו אינו צריך לדאוג להס. כפי שכבר ודאי ניחשת, הפניה לשיטות, כמו למאפיינים, נעשית בשיטת הזיחוי על פי נקודות. 8856 |508ו\ משתמשת בתכונת 5ז6טוח6!א 115% סטטה, שצוינה קודס לכן, כדי להציג את רשימת כל השיטות, המאפיינים והאירועיס בכל פעס שתקליד שם אובייקט ואחריו נקודה. פרק 3: אבני היסוד של 88956 |פטפו\ - 85 אומנם, אובייקטיס שוניס יכוליס להכיל שיטות שונות, אך רביסם מהס גס חולקיס במשותף את השיטות שלהלן: + 86זם. שיטה המטפלת בפעולות בהן המשתמש גורר ומשחרר אובייקטים בתוך שטח האובייקט המכיל אותם. + 6ש0. שיטה המשנה מיקוס אובייקט. + 56%50005. שיטה המעבירה את המיקוד אל הפקד הנבחר. + ז20700. שיטה הקובעת האס אובייקט יופיע לפני או מאחורי אובייקטיס אחריס בשטח האובייקט המכיל אותסם. הערה: המערכת מתמקדת בפקד האחרון שהיה בשימוש ומתייחסת אליו כפקד הנוכחי. ניתן להתמקד בפקד אחד בלבד בכל רגע נתון. ניתן לזהות פקד הנמצא במיקוד על ידי סימן העריכה (בפקדי א680א6ד) או המלבן המקווקו מסביב לפקד (בפקדי - א86680ח6, הסט הסטק0 ו- הסט 0ח8וח וח 60) תגובה לפעולות באמצעות אירועים בנוסף לביצוע משימות, האובייקטיס בתוכניתך יכוליס להגיב לפעולות, בין אס נוצרו על ידי המשתמש או נוצרו חיצונית. התגובה לפעולות נעשית על ידי שימוש באירועיס. כאשר המשתמש לוח, לדוגמה, על לחצן פקודה, הלחיצה יוצרת אירוע מסוג >סוו6. חלק מההגדרות של כל אובייקט הוא אוסף האירועים אשר ניתן לייחס לו ופעולת המשתמש שגורמת להתרחשותם. דוגמה לפעולת משתמש, הגורמת להתרחשות אירוע, היא לחיצה על לחצן פקודה, בחירת פרט כלשהו מתיבת רשימה או שינוי התוכן בתיבת טקסט. אירועיס מתרחשיס גם כאשר המשתמש יוצא מטופס או עובר לטופס אחר. כאשר אובייקט יוצר אירוע כלשהו, הוא מבצע שגרת אירוע (6זו660סזק זחשעם) עבור האירוע שהתרחש. בכדי שהתוכנית תוכל להגיב לאירועים, עליך להציב קטע קוד בשגרת האירוע הרלוונטית. לדוגמה, בתוכנית ההלוואות, שבנינו בפרק 2, הצבנו קוד בשגרת האירוע ₪6|6% של לחצן הפקודה. פרק 5 תגובה באמצעות שגרות אירוע, עוסק בפרטיס הקטניס של תכנות אירועיס. בפרק וה תלמד כיצד לכתוב קוד לטיפול באירועים וכיצד אירועים רביס מתייחסיס אחד לשני. 6 סדנת לימוד 6.0 8\ כיצד מאפיינים ושיטות מתקשרים האחד לשני כעת, אתה כבר יודע שלאובייקטים יש מאפייניס שקובעים את צורת הופעתם, שיטות המאפשרות להסם לבצע משימות ואירועיס המגיבים לפעולות המשתמש. אתה עלול לחשוב שכל הדבריס הללו קורים ללא קשר האחד לשני, אך וה לא תמיד נכון. לפעמיס המאפיינים והשיטות של אובייקט מתקשרים אחד לשני. משמעות הדבר היא שכאשר אתה מפעיל שיטה של אובייקט או משנה את תכונותיו בעזרת קוד, אתה עושה זאת כתגובה לאירוע כלשהו. הערה: שינויים מסוימים במאפיינים עלולים לגרום להפעלת אירועים. לדוגמה, שינוי מאפייני 610% ו-חזסו/\ בטופס מפעיל את האירוע ₪65/26. ביטוי לעצמאותס של שיטות ומאפיינים המיוחסים לאובייקטיס ניתן לראות בעת שימוש בשיטה 6שטסוא תוך שינוי ערכי הערכיס ססד ו- 16%. אתה יכול לגרוס לאובייקט לשנות מיקוס או על ידי שימוש בשיטה 6טסא או על ידי שינוי ערכי קסד ו-16 לערכיס חדשים. שני קטעי הקוד הבאיס גורמיס למעשה לביצוע פעולה דומה של הזות המיקוס של א%80א6ד ב-100 טוויפיס שמאלה ו-200 טוויפים מלמעלה: 5 5 0חו560 ץכ אספ 6% סטסו - 1 דאם5561 מסססי 0 = 6% |.6חחבּ\\)אס 0 = כ ד.6חחבּ\)])א> 0 6עסרח 66 חהופגו אס 6% 6ר% סטסו!] - 2 ד₪₪ 556 =סססי 0 ,100 6עס\].6חחבּ)])א> כדי לראות דוגמה להבדל בין שימוש במאפיינים לבין שימוש בשיטות, הוסף קוד להזות לחצן הפקודה בפרויקט הקודס. פתח את הפרויקט ובצע את הפעולות הבאות : 1. פתח את חלון הקוד באירוע 616% ח0\/106ח6. 2 הוסף את שורות הקוד הבאות לסוף שגרת האירוע: 0 = 6 |. ח106/\וסרח6 6/6 - 6100%ו56816. 1 וס = קסד ה106/\וסרת6 3 הפעל את התוכנית ושנה את גודל הטופס. הקוד ממקס מחדש את לחצן הפקודה באזור תחתית הטופס בעודך משנה את גודלו. הלחצן יהיה תמיד במרחק 100 טוויפיס משמאל לטופס. 4 עצור את התוכנית והחלף את שני המשפטיס שהוספת בשורת הקוד הבאה: 6/6 - 00%ו76ו56316. 1 רתס ,100 6עסוו. ה106/\וסרת6 5 הרא את התוכנית שוב. שים לב שהקוד שונה אך התוצאה זהה. לא משנה אס תשתמש ב-ססד ו-16% או ב-6שסוא, הפקד עצמו יטפל בשינוי המיקוס עבורך. פרק 3: אבני היסוד של 8856 |פטפו\ - 87 אס תקליד את קטעי הקוד הללו, תבחין בוודאי שלשיטה 6שס₪א יש עוד שני ארגומנטיס. ארגומנטיס אופציונליס אלה יכוליס לשנות את גודל האובייקט. השימוש בשיטה ואת משיג את אותה תוצאה כמו שינוי המאפיינים ססד ו-16% לערכים חדשים. באופן דומה, לשיטות שסח5 ו-4106 של טופס יש תוצאה זהה לשימוש במאפיין 6םו18/. כאשר נפעיל את השיטה 06ו, האפקט יהיה זהה לשינוי ערך המאפיין 1510!6/\ ל-8|56= (דבר שיגרוס, כמובן, להעלמת הטופס מהמסך). באופן דומה, השיטה ששסח5 משיגה את אותה תוצאה כמו שינוי ערך המאפיין 151066 ל-6טזד. מבט חוזר על מאפייני הטופס בדומה למרבית האובייקטים של 8856 |8טפו, גס לטפסים יש סדרת מאפיינים השולטיס בצורת הופעתס והתנהגותס. בסעיף הקודס, חקירת המאפיינים, למדת אודות חלק מהמאפיינים התקפים לגבי הטופס. בסעיף וּה, תערוך היכרות עס מספר מאפייני טופס מרכזיים, ובנוסף תלמד כיצד מאפייניס אלה ניתנים לשליטה בזמן תכנון והפעלת התוכנית. טבלה 3.2 מפרטת כמה מהמאפיינים המרכזיים של טפסים, ומספקת הסבר קצר על כל אחד מהס. בנוסף לכך, הטבלה מגדירה האס הערך של המאפיין ניתן לשינוי בומן ריצת התוכנית. טבלה 3.2: מאפייני טופס מרכזיים שם המאפיין תיאור ניתן לשינוי בהרצה 6 | קובע את סוג המסגרת של הטופס א070|80ח60 | קובע האם תיבת הבקרה (המכילה את תפריטי ההזזה והסגירה) תיראה בזמן הפעלת התוכנית קובע את סוג הגופן שבו יוצג טקסט בטופס כ חססן | קובע מה יהיה הסמל שיוצג בשורת הכותרת של כ הטופס כאשר הטופס ממוזער הסוא | קובע האם הטופס הוא צאצא של אפליקציית 1סוו חסססטפחווא | קובע האם הלחצן מזער (6קוחחוחוו\) יופיע בטופס ל בזמן פעולתו חסטופסקק[(\זו5:3 | קובע את מיקומו הראשוני של הטופס כאשר הוא ל מוצג לראשונה 6סססחוצ\ | קובע האם הטופס ייראה מוגדל, ממוזער או רגיל כ 08 סדנת לימוד 6.0 8\ חסאטפאבּו\ | קובע האם הלחצן הגדל (6לחחואפ\!) יופיע בטופס לא בזמן פעולתו כעת תוכל להביט ביתר פירוט על חלק מהמאפיינים הללו. המאפיין 6/ש8070615, מכיל שש הגדרות אפשריות השולטות בצורת הופעתה של מסגרת הטופס (ראה טבלה 3.3). באמצעות הגדרות אלו ניתן לשלוט באפשרויות ההגדלה או ההקטנה של הטופס על ידי גרירת גבולותיו, ואף לשלוט בגובה שורת הכותרת (ראה תרשים 3.11). טבלה 3.3: הגדרות המאפיין 807061506 הגדרה תוצאה לא מוצגת מסגרת לטופס. כמו כן לא מוצגים שורת הכותרת ולחצני הבקרה 6חו5 60או= - 1 | מוצגת מסגרת בעלת שורה אחת. שורת הכותרת ולחצני הבקרה מופיעים. המשתמש אינו יכול לשנות את גודל הטופס 6 - 2 | המסגרת נראית כניתנת לשינוי, שורת הכותרת ולחצני הבקרה מופיעים. המשתמש יכול לשנות את גודל הטופס על ידי גרירת אחד מגבולותיו 09 סס6או- - 3 | לטופס יש מסגרת קבועה. שורת הכותרת ולחצני הבקרה נראים. לחצני הגדל ומזער אינם מופיעים. אי אפשר לשנות את גודלו 0 - 4 | לטופס יש מסגרת של שורה אחת ומציג רק את שורת הכותרת צוסחו/ץ!ססד | ולחצן הסגירה. שורת הכותרת מופיעה בגופן מוקטן 6 - 5 | כמו שססחוש\|ססד 60או=, מלבד מסגרת שאפשר לשינוי צוססחו/\!ססד הערה: העמדת המאפיין 80106756 על ערך אשר אינו מאפשר שינוי בגודל הטופס, איננה משפיעה במהלך העיצוב. הטופס ייראה בלתי ניתן לשינוי רק בזמן פעולת התוכנית. הגדרת ברירת המחדל במאפיין 80706156 נותנת מסגרת המאפשרת למשתמשים לשנות את גודלו בזמן פעולת התוכנית. תוכל למצוא סוג טופס זה באפליקציות 5וס0חו/\ טיפוסיות רבות. לעומת זאת, תוכל לשנות את המאפיין כך שהטופס ייראה כמו כל סוג חלון שאפשר לראות בתוכנית, כגון ארגזי כלים, תיבות דו-שיח, ואפשר אפילו להוריד את המסגרת לגמרי. חלק מההגדרות שבטבלה 3.3 גורמות לתיבת הבקרה וללחצנים סגור, הגדל ומזער להופיע בשורת הכותרת של הטופס. הגדרה זו היא ברירת מחדל. עס זאת, בכל סגנון שתבחר, תוכל עדיין לקבוע באופן יחידני האם לחצנים אלו יופיעו או לא. המאפייניס 60000|!808, הססטפאהוא, הסאטפחווא מכיליס כל אחד ערך פטזד או 3156" בעזרתס ניתן לקבוע האס האלמנט יופיע על המסך. ערך ברירת המחדל בכל אחד מהמאפייניס מכוון ל-6טוז. אס תשנה את הערך ל-8|56", האלמנט לא יופיע בטופס שלך. תכונות אלה ניתנות לשינוי רק בזמן עיצוב. פרק 3: אבני היסוד של 88956 |פטפו\ - 89 | החש : תרשים 3.11: על ידי שינוי המאפיין 801061506 תוכל לתת לטופס סגנונות הופעה רבים המאפיין זחס] מאפשר לך לקבוע את הגופן הבסיסי של הטופס ואת תכונותיו. המאפיין ישפיע על כל טקסט המופיע ישירות על גבי הטופס. ₪0 הערה: המאפיין חס של טופס הוא למעשה אובייקט בפני עצמו עם מאפיינים משלו. לדוגמה, כדי לשנות את גודל הגופן יש לכתוב 10 = 526.)חס=.1חזזס=] בחלון הקוד (או בחלון המיידי, לצורך העניין). פעולה זו תשנה את גודלו של הגופן ל-10 נקודות. בנוסף לכך, שינוי המאפיין חס" קובע את הגופן שישמש בכל הפקדים שיתווספו לטופס. 0 סדנת לימוד 6.0 8\ מאפיין נוסף, הראוי לציון מיוחד, הוא חסטופססקטטופו5. כפי שאתה בוודאי מנחש, מאפיין וה שולט במיקוס הטופס על המסך בעת הופעתו לראשונה. למאפיין הסו5סק 53 ארבעה מצבים אפשריים, המופיעים בטבלה 3.4. טבלה 3.4: הגדרות המאפיין חסוזו5ספקטז5:87 הגדרה תוצאה |הטחבּו\ - 0 | המיקום הראשוני נקבע בהתאם לערכי המאפיינים ססד ו-6 | זהץ0זח66 - 1 | הטופס מופיע במרכז שולחן העבודה, אלא אם כן הוא צאצא של טופס זסוא. במקרה כזה הטופס ממוקם במרכז טופס האב ח%50766ח6 - 2 | הטופס מופיע במרכז שולחן העבודה 5וססחו\\ - 3 | הטופס ממוקם על ידי פשספחו/\ בהתבסס על המיקום ומספר )63 | החלונות האחרים הפתוחים באותו זמן בעזרת המאפיין חסטופסקקטז509 ניתן לגרוס לטופס להופיע במרכו המסך בעת הופעתו הראשונה, עס זאת, אין זו תכונה ייעקשנית'י, כלומר לא ניתן לשמור את הטופס במרכז במידה והמשתמש החליט לשנות את מיקומו או גודלו. הצגת טופס אס אתה כותב תוכנית עס טופס אחד בלבד, אין צורך לדאוג להצגת הטופס או להסתרתו. תהליך גה מבוצע אוטומטית עבורך ברגע שהתוכנית מתחילה או מפסיקה. טופס יחיד וה נקרא אובייקט ההפעלה 001600 ₪00ז9ו5) או טופס ההפעלה. כאשר אתה מפעיל את התוכנית, 8856 |הטפוצ\ טוענת את טופס ההפעלה לזיכרון ומציגה אותו. כל עוד טופס וה טעון בזיכרון, התוכנית תמשיך לפעול ולהגיב לאירועיס. התוכנית תפסיק רק כאשר תלת על לחצן הסגירה (או תפעיל את הפקודה חם). הערה: את טופס ההפעלה אפשר לבחור מתיבת הדו-שיח של מאפייני הפרויקט. בנוסף לכך אפשר לגרום לתוכנית להתחיל מתת-השיגרה חוג8! בקוד במקום להתחיל בטופס. לעומת זאת, אס בתוכנית יש מספר טפסים, כמו במרבית התוכניות, עליך להבין כיצד לנהל אותס. מצבו של טופס נקבע ב- 8856 |1508/ על ידי המשפטים 1080 ו-6פסוחש וכן על ידי השיטות צוסח5 ו-4106]. המשפט 1080 טוען את הטופס לזיכרון אך לא מציג אותו. שורת הקוד הבאה מראה כיצד להשתמש במשפט: חסטהסו!ק בוח 080 1 פרק 3: אבני היסוד של 8856 |פטפו/ - 91 על ידי שימוש במשפט זה, אתה טועןו את הקובצ לזיכרון במפורש. לעומת זאת, אס תפנה לכל אחד מהאובייקטיס שבו - פקדים, שיטות או מאפיינים שלו, הטופס יוטען באופן אוטומטי לזיכרון. בגלל שטעינת הטופס היא אוטומטית, השימוש במשפט 1080 אינו ממש נחוצ. למרות ואת, חשוב להיות מודעיס לזמן טעינת הטופס מכיון שכאשר הטופס מוטען הוא מפעיל את הקוד שמופיע תחת האירוע 1080 וחזס". בכדי להציג כל טופס אחר מלבד טופס ההפעלה, עליך להשתמש בשיטה צוסח5. השיטה אוסח5 עובדת ללא קשר אס הטופס הוטען לזיכרון קודס לכן או לא. במידה והטופס לא הוטען, אסח5 מטעינה את הטופס לזיכרון ומייד מציגה אותו. יש להשתמש בשיטה צוסח5 באופן הבא: צוסח5. חסוט הסוכ קוחו השיטה שוסח5 מכילה גם ארגומנט אשר קובע האס הטופס יוצג במצב מודאלי (|03סו!) או לא מודאלל (1006!655/). אס הטופס מוצג במצב מודאלי, השליטה בתוכנית לא חוזרת לשיגרה שהפעילה את השיטה אוסח5 עד שהטופס המודאלי נסגר. חשוב על מצב זה כעל השהיית קוד התוכנית כל עוד הטופס המודאלי מוצג. דוגמה לטופס מודאלי הוא מסך הכיבוי של 95 פושספחו//. אין אפשרות להעביר את המוקד לאף מסך אחר כל עוד מסך הכיבוי מוצג. אס הטופס מוצג במצב לא מודאלי, המשתמשים בתוכנית יוכלו לעבור כרצונס בין הטופס הנוכחי לבין טפסיס אחריס בתוכנית. המשפט שהוצג קודס לכן הציג טופס במצב לא מודאלי. כדי לפתוח אותו במצב מודאלי, צריך פשוט לשנות את ארגומנט השיטה שוסח5 ל-|ססו\טע, כפי שמתואר לעיל: ]טע שוסח5. חסטהסו!כ קבוח הערה: מצב מודאלי משמש לרוב כאשר תרצה שהמשתמש יסיים את הפעולות על הטופס לפני שיעבור לכל חלק אחר בתוכנית. אם מופיעה, לדוגמה, הודעת שגיאה קריטית, אתה בוודאי לא תרצה שהמשתמש יתעלם ממנה ויעבור לטופס אחר. לאחר שהטופס מוצג, יש שתי שיטות תכנות להיפטר ממנו. השיטה ₪106 מסירה את הטופס מהמסך אך לא מהזיכרון. השתמש ב-₪106 כשאתה רוצה להעלים את הטופס באופן זמני אך עדיין צריך את האינפורמציה שבתוכו: 6 חס הסוו קבוח .36 50 0 א6. הסוס הסו!סק הרת = 6רחה 565 בדוגמה זו, שורת הקוד השנייה יכולה לגשת למידע שבפקד ב-חס8סו!סקהחחז!, למרות שטופס וה לא נראה על המסך. השיטה ₪106 משאירה את הטופס בציכרון. 22 סדנת לימוד 6.0 8\ אם סיימת עס טופס ועס המידע הכלול בו, אפשר להסיר אותו גם מהמסך וגס מהזיכרון על ידי שימוש במשפט ססוח(\. המשפט 80ס!ח₪ משתמש באותו תחביר כמו המשפט 1080, כמוצג לעיל: סו 9סו|סק הוח הסוח \ טיפ: = - אם אתה משתמש בפקודה סַבּסוח מתוך הטופס אותו אתה מתכוון להסיר, אפשר להשתמש במילת המפתח 18 כדי להגדיר את הטופס. שימוש בגישה זו ימנע טעויות אם תשנה את שם הטופס מאוחר יותר. במקרה כזה המשפט ייראה כך: 6 הסוח \ שיפור הביצועים בתוכנית על ידי שימוש ב-30ס.1 מכיון שהשיטה שוסח5 טוענת טופס אוטומטית לזיכרון, אינך צריך בדרך כלל להשתמש במשפט 1080 בתוכנית כלל. למרות זאת, טפסים מסוימים, המכילים מספר פקדים רב, עלולים להיטען באיטיות רבה. דרך אחת להתגבר על תופעה זו היא לטעון את הטופס לזיכרון על ידי שימוש במשפט 10806 ברגע שהתוכנית מופעלת. כל הפעלה של שיטת 8 או שוסח5 לטופס תגיב באופן מהיר יותר ברגע שהטופס כבר נמצא בזיכרון. אם תבחר להשתמש בטריק זה, היזהר משני דברים: ראשית, אל תשכח לבצע סהסוחש על הטופס לאחר שתסיים להשתמש בו או בסוף התוכנית. שנית, הייה מודע לאפשרות של מגבלות זיכרון. אם תטעין מספר רב מדי של טפסים לזיכרון בבת אחת, אתה עלול להרגיש בירידה תלולה בביצועי התוכנית. טעינת טפסים לזיכרון אמנם מגדילה את כמות הזמן העובר עד לטעינת התוכנית לזיכרון, אך מצד שני חוסכת זמן בכל פעם שברצונך להציג טפסים. אם אתה מציג טופס מסוים פעם אחת בלבד בתוכנית, אין שום חיסכון בהטענה מוקדמת שלו. לעומת זאת, אם טופס מופיע מספר פעמים, הטענתו המוקדמת תחסוך זמן, בדרך כלל. בנוסף, עליך להיות מודע לכך שהמשתמשים בדרך כלל סבלניים יותר לזמן הטעינה הראשוני של התוכנית (במיוחד אם הם עסוקים בהתבוננות במסך הפתיחה), מאשר כשהם מנסים לבצע פעולה. פרק 3: אבני היסוד של 8856 |פטפו - 93 מכאן... פרק זה הציג בפניך את עולמס של הטפסיס והפקדיס. התחלת לראות כיצד להשתמש בטפסים ופקדים כאבני הבניין של ממשק המשתמש. למדת כיצד לנהל את צורת הופעתס של טפסיסם ופקדים וכיצד לשנות את מאפייניהס הן בומן התכנון והן בומן ההרצה. המושגים הבסיסיים שנדונו כאן ילוו אותך גס בפרקיס הבאים, אשר יכללו הסברים על רביס מהפקדים בהס תוכל להסתייע בעת בניית אפליקציות ב- 88586 |508ו/. > למד עוד על פקדים סטנדרטיים על ידי קריאת פרק 4 שימוש בפקדי ברירת המחדל של 83516 |3שפו/. << פרק 5 תגובה באמצעות שגרות אירוע, יעמיק את היכרותך עס שגרות אירוע. + תוכל לגלות עוד אודות 8856 |הט5ו\ בפרק 8 שימוש במשתנים לאחסון מידע, ופרק 11 ניהול הפרויקט: תת- שגרות, פונקציות וריבוי טפסים. 94 סדנת לימוד 6.0 8\ שימוש בפקדי ברירת המחדל של 83516 |בּש8ו\ בפרק זה? מבוא לפקדים פנימיים עבודה עם טקסט פקדים לבחירת אפשרויות פקדים למטרות מיוחדות עבודה עם פקדים מרובים בשלב העיצוב עבודה עם אוסף הפקדים פרק 4: שימוש בפקדי ברירת המחדל של 8856 |08פו\ - 95 בשלב וה אמור הקורא לדעת מהו פקד וכיצד משתמשים בפקדים בתוכניות 6 |8טפו\. דרך טובה ללמוד יותר על 8856 |1508/ היא לחקור כל אחד מהפקדיס הזמינים. פקדים נדונים כמעט בכל פרק בספר זה. שלושת הפרקים הבאיס מתמקדיס בנושא השימוש בפקדיס מסוימים. מבוא לפקדים פנימיים 6 |8טפו מגיעה עם פקדים המאפשרים ביצוע סוגיס רביס של משימות תכנות. כמה מפקדים אלה מופיעים אוטומטית בארגו הכליס כאשר 6 5088 נפתחת. פקדיםס תקנייסם אלה נקראים פקדים פנימיים (0710510ח1). פקדיס אלה, המוצגיס בתרשיס 4.1, כולליס כמה פקדיס מאוד כלליים, שסביר כי ישמשו כל מפתח 8856 |1508/. אלה מרוכזיסם בטבלה 1. = | | ₪ א || 2 | || 6 ש 58 3 4 - אא ₪ ₪ ₪5 םש ₪ ₪ תרשים 4.1: ארגז הכלים מציג כלים המייצגים את הפקדים המובנים בשפת 6 |08פו/\ הערה: הפקדים המופיעים בתרשים 4.1 ומתוארים בטבלה 4.1 אינם היחידים הנכללים ב- 8856 |8טו/). להוספת פקדים אחרים, כגון פקד 0ס|וסחסווהס6 050%6 סו או 60 050%ז6וו לארגז הכלים, יש להשתמש בתיבת הדו-ש'ח %5חהסחהסקוחס6 על ידי בחירת 0[66%זק, 5זח6חסקוח60, או ללחוץ לחיצה ימנית באזור ריק של ארגז הכלים, ולבחור מהתפריט 5+חפחסטוח 60. רביס מהפקדים הרשומים בטבלה 4.1 יידונו בקטעים הבאים. פקדים אחרים מתואריס בפרקיס העוסקים בנושא תואס למטרותיהסם. הפקדים המתואריסם בפרקיס אחריס הם: + פקדי אס8סזט6וק, 0806ח1, 806ח5, 6ח11, נדוניס בפרק 19 שימוש במרכיבי התכנון הוויזואלי. + הפקד 0808 מטופל בפרק 25 פקד הנתונים ופקדי איגוד נתונים. > הפקד 015 נדון בפרק 22 שימוש ב-015 לשליטה על יישומים אחרים. 66 סדנת לימוד 6.0 8\ טבלה 4.1: פקדים הנכללים בארגז הכלים של 8856 |1508\ תמנה | | שמתפקד | | | שמש 0000 ב 68608 מציג גרפיקה. משמש גם | מציג גרפיקה. משמש גם להכלת פקדים אחרים = פקדים אחרים (-- ו ₪ | 9 מאפשר התחלת פעולה בלחיצה על | מאפשר התחלת פעולה בלחיצה עללהצן = | משור- ב ₪ | הסאפסאס מאפשר בחירת אפשרות אחת מקבוצת מאפשר בחירת אפשרות אחת מקבוצת פריטים = = 6 זפוחוד | מאפשר לתוכנית לבצע פעולות על בסיס מתוזמן ₪ אסם 15%] פטוזם | מאפשר בחירת כונן דיסקים ₪ 5% וס | מאפשר בחירת ספריה או תיקיה = מאפשר בחירת |מאפשרבחירת ספרה או תיקיה 7 או תיקיה ד אסם 1156 6 | מאפשר בחירת קובץ דומה ל-א680זו6וק. משתמש בפחות משאבי מחשב, תומך בפחות מאפיינים, אירועים ושיטות |₪0ח60 ₪868 | מספק ממשק בין התוכנית למקור נתונים | 8 חסוחוחס6 | שימוש בתיבות דו שיח תקניות של פאוספחווש, לשליפת מידע כגון שמות קובץ, גופנים וצבעים פרק 4: שימוש בפקדי ברירת המחדל של 8856 |הטפו\ - 97 עבודה עם טקסט בפרק 2 יצירת התוכנית הראשונה, הוצגה בניית תוכנית פשוטה, העושה שימוש בפקדיס 800%:א16, |1886. מומלצ לקורא, אם לא עבר על פרק זה, לעשות ואת לפני שימשיך. הדוגמאות לימדו שפקדי תיבת הטקסט והתווית מיועדיס לעבודה עס טקסט. המונח טקסט 0א16) אינו מתייחס כאן רק לפסקאות או משפטים כמו אלה המטופלים במעבד תמלילים. בטיפול בטקסט בתוכנית, דרושה לעיתיםס גס הצגה או שליפה של מילה בודדת, מספר, או אפילו תאריך. הקורא יכול להבחין גם בהבדל העיקרי שבין תיבת טקסט לתווית: תיבת הטקסט יכולה גס להציג וגס לקלוט קלט טקסט (בזמן ריצה), בעוד שפקד התווית מיועד רק להצגתו. תרשים 4.2 מראה דוגמאות שונות לשימוש בפקדי אסם)א6ד ופקדי |1806. וו - אזורחיוג |- 3 מדנה ‏ |+* ושראלן שם פרש - איל שם משפחה ‏ גוטליך ]| תפקיד | קלדן 77 ]] העוות לא יכול לקום בבוקר תרשים 4.2: פקדי |1886 מזהים את מטרות חלקי הטופס, בעוד תיבות טקסט מאפשרות הזנת נתונים או מציגות מידע הצגת טקסט בעזרת הפקד |ַפטב3ּ] מטרת פקד |1806 היא להציג טקסט. לעיתיס קרובות מאוד הוא משמש להצגת פריטים בטופס למשתמשים. הדרך הפשוטה ביותר להשתמש בפקד התווית היא להציב אותו לאחר שדה קלט, ולקבוע את המאפיין חס680₪0 שלו. ביחס לתרשיס 4.2, יש לשיס לב שפקדי |18868 משמשים להודעה למשתמש איזה סוג של מידע יש להכניס לתיבות הטקסט. למרות שהפקד |1886 אינו מאפשר הזנה ישירה של טקסט, הוא כולל אירועיס ומאפייניס המאפשריס למפתח לתפעל את הטקסט ישירות מהקוד. כדי לנסות זאת, בנה פרויקט 5א%= תקני חדש והצב בטופס פקד |1806. הצב את הקוד הבא באירוע >סווס: ()60ו61 30611 | סט5 סזבּעווק חוד 8 " :5! סוח סד" = 611סב | 50 0ח= 08 סדנת לימוד 6.0 8\ הרצ את התוכנית. בכל פעס שתלתצ על התווית בעזרת העכבר, תציג התווית את השעה. בנוסף, שיס לב שבקוד לעיל לא הוזכר בפירוש המאפיין חסטס8ס, מכיון שזה מאפיין המחדל של הפקד |1806. כזכור, משתמשים בסימון הנקודה לציון המאפיין של אובייקט, כמו בשורת הקוד הבאה: וד .8 " 15 סח שד" = הסק1.03וסטהּ | אולם, פקד |1806 אינו מוגבל להצגת כמויות קטנות של טקסט בלבד. למעשה ניתן להשתמש בפקד |1886 להצגת מספר שורות או אפילו פסקאות מידע. אס רוציס להציג כמות מידע גדולה בפקד זה, יש להקדיש תשומת לב מיוחדת למאפיין 526ססט. המאפיין 4505126 אם ידוע איזה טקסט עומד להיות מוצג, ניתן לקבוע את גודל התווית שתתאיס לקליטת הטקסט. אולס, אס יוצגו בתווית טקסטים שוניס (למשל ביישומי בסיס נתוניס), כדאי לאפשר להתאיס את התווית לתכולתה בזמן נתון. המאפיין 05126 קובע אס גודל הפקד יותאם אוטומטית לטקסט המוצג. כאשר 805256 הוא במצב 6, (מצב המחדל), גודל התווית נשאר קבוע, בלי קשר לכיתוב המוצג. אס הכיתוב ארוך מדי לתווית, חלק ממנו לא ייראה, מכיון שאין הוא גולש לשורה הבאה. טיפ: בקביעת המאפיין חס₪ק69, ניתן לאלץ שורה חדשה על ידי הכללת שילוב של פעולת החזרת הגררה והזנת שורה. הטכניקה, כמו המינוח, היא שריד מתקופת מכונות הכתיבה הידניות. כשהמשתמש היה מגיע לקצה השורה, היה עליו לקדם את הדף ידנית שורה אחת (הזנת שורה), ולהחזיר את הגררה לתחילת השורה (החזרת גררה). 6 |8פו/\ מאפשרת להכניס שילוב החזרת גררה/הזנת שורה על ידי הכללת תווי 45611 מספר 13 ו-10, במקום שבו אמורה להיפתח שורה חדשה. 8856 |8טפו\ מספקת קבוע מוגדר מראש 1!זסטץ, לעזרה במקרים אלה: "שחו | 6ח5660" 8 1 טע 8 "סח | זו" = הסק68. 1וסטהּ | השליטה בהופעת הטקסט מאפיין ח680₪00 מכיל טקסט אמור להצגה, מאפייניסם אחריס מפקחיס על הופעת הטקסט. 26ו40%05 תואר בפיסקה הקודמת. מאפייניס נוספיס מתואריס להלן: + 6חסוחחףו|ה - מבקר את יישור הטקסט (שמאלי, ימני או ממורכז). ** 66ח8זה6מקה - גורס לטקסט להיראות שטות או תלת-מימדי. + 80700150/|6 - קובע אם לפקד |1806 יש גבול. > >חסת - הופך את הטקסט למודגש, בעל קו תחתי או נטוי, או משנה את הגופן. + | זס|600ז0= ו-זס|60א886 - קובעים את צבע הטקסט וצבע הרקע. + 6וחסוח6ח!/256\ - קובע אס התו 8 במאפיין 63000 מטופל כמציין קוד גישה. פרק 4: שימוש בפקדי ברירת המחדל של 8856 |פטפו\ - 99 הערה: בקביעת 06150/66זס0 כ- 6פַחו5 ₪60 נראה פקד התווית כתיבת טקסט בלתי ניתנת לעריכה. להדגשת טקסט בתווית ובפקדים אחרים, ניתן לקבוע מאפייניס אלה כך שיאפשרו כל מספר של אפקטים חזותיים. התוצאה של קביעת אחדים ממאפיינים אלה מוצגת בתרשיס 4.3. (אוםן-. | ו .זט סח 85 88| פד אפשרויות -- מאפייני יישור | ו | -(3-0) זסטזסם פוטחופ טפא=] = אפשרויות שונות למראה וסגנונות (81!)) זההזסם 8|חום ספאו"| +-- גבול מרכוז שורות מרובות בוסוזוטוחתז 5החווחסס אסםואם ד החד 58 פחו|! = .0118 86חו! וי תרשים 4.3: המאפיינים )הסוחחף!ה, 66ח8זה68סקה וכן 5/!6ז06זסם יכולים לשנות את צורת פקד |1806 הערה: המאפיין +חפוחתףו| משפיע על הופעת הטקסט גם כאשר התווית מציגה אותו ביותר משורה אחת. הפקד מיישר כל שורה לפי קביעת :חסוחחפו|8. (ראה תרשים 4.3). הזנת טקסט בתיבת טקסט מכיון שחלק גדול מפעולת התוכנית כולל שליפה, עיבוד והצגה של טקסט, ניתן להניח שסוס העבודה העיקרי של תוכנית רבות הוא הפקד א680ד. תּיבת הטקסט מאפשרת הצגת טקסט. אך בנוסף היא מאפשרת למשתמשי התוכנית גישה נוחה להכנסת טקסט ולעריכתו, ולתוכנית היא מאפשרת לשלוף את המידע שהוזן. הטיפול ביותר משורת טקסט אחת ברוב המקריס משמשת תיבת הטקסט לטיפול בקטע מידע אחד, למשל שם או כתובת. אך תיבת הטקסט יכולה לטפל גם באלפי תווי טקסט. תכולת פקד א80)אפד מאוחסנת במאפיין א6ד שלו - המאפיין העיקרי שאיתו 'ימשוחחת'י התוכנה. ניתן גס להגביל את מספר התווים שמשתמש יכול להזיןו על ידי המאפיין ה0ח6 |אפו!. ברירת המחדל לתיבת טקסט היא קליטת שורת טקסט אחת. כמות מידע זו מספיקה ברוב המקרים, אך לעיתים נדרשת התיבה לטפל בכמות טקסט גדולה יותר. שני מאפיינים שימושיים במקרה של טיפול בכמויות טקסט גדולות בתיבת טקסט הם: שחו |טוט ו-זהפ!|סזס50. 0 סדנת לימוד 6.0 8\ המאפיין 6חו וטוט קובע אס המידע בתיבת הטקסט מוצג בשורה בודדת, או גולש ונגלל לשורות אחדות. אס מאפיין 6חו וטוטוא נקבע ל-6טזד, המידע מוצג בכמה שורות וגלישת מיליסם מטופלת באופן אוטומטי. המשתמש יכול להקיש אפזאם כדי לאלצ שורה חדשה. המאפיין ז0||!83ז56 קובע אס פסי גלילה יוצגו בתיבת הטקסט, ואס כן - מאיזה טיפוס יהיו (6חסא, |פזחסקזסרו, |68זס/\ או ו80%). פסי הגלילה שימושיים במקריס בהס מאוחסן במאפיין 66%ך יותר טקסט מהתואס את תיבת הטקסט. המאפיין ז0|!89ז56 משפיע על תיבת הטקסט רק אס המאפיין שחו !וטוא נקבע כ-פטזד. תרשים 4.4 מראה את השפעת מאפייני שחו ושוטו\ וכן זפם!וסזס5. (אוםו תיבת טקסט פיסקה ראשונה ארוכה יותר מרוחב בעלת שורה 0 . ייסקה שניה מקה שלישית אחת שורות רבות פיסקה ראשונה פיקה עה 77 7 ₪ *-- פס גלילה אופקי פיסקה שלישית = רבות פיסקה ראשונה ארוכה יותר מרוחב הפקד - כ"ח קרדעוניה פס גלילה אנכי תיבת טקסט ₪ פיסקה שלישית מרובת שורות פימקה עניה שני פסי גלילה פיסקה שלישית תרשים 4.4: ניתן להשתמש בתיבת טקסט להזנת שורות בודדות או פסקאות שלמות טיפ: כאשר משתמש עובר לתיבת טקסט בהקשה על מקש הטאב או בלחיצת העכבר בתוכה, פעולה המוכרת כקבלת מיקוד (פ5ש06=), מקובל שהטקסט נבחר (או מואר). למרות שפעולה זו אינה מתבצעת אוטומטית, אפשר לעשות זאת בקלות יחסית. הוסף את שורות הקוד הבאות בשגרת האירוע של תיבת הטקסט, תוך החלפת 61א6ד בשם תיבת הטקסט שלך: 0 = 56|5084. 1)אך (0א6 ד. 61 7)ח1.6 = ה0%ח6 |561. 1)אד אימות קלט בקליטת טקסט חופשי ממשתמשים, יש לעיתים קרובות צורך באימות כלשהו של הנתוניס לפני שממשיכים. למשל, במקרה תיבת טקסט המקבלת מידע שהוא מספר טלפון, ניתן להשתמש בקוד לבדיקת אורך מספר הטלפון או אפילו לוודא שהמשתמש הזיו בכלל מידע. מאפיין חדש בגרסת 6 8856 |1508/ הוא אירוע תיבת הטקסט 0866ו|8/\. שגרת אירוע זו יכולה לכלול קוד המאמת את המידע בפקד הקשור אליו. הוא מופעל על ידי פקד אחר, שהמאפיין ח680565\8|1080₪0 שלו נקבע כ-6טזד. למשל, שורת הקוד הבאה מציגה תיבת הודעה אס תיבת הטקסט איננה מכילה נתונים נומריים : "הווח 8 ז6+ח6 6856!ק" אס 50 הסח ד 0א6 ד)6ה6רהט15 %6סא )1 פרק 4: שימוש בפקדי ברירת המחדל של ₪856 ו|הטפוש | 101 | | לניסוי האירוע בנה פרויקט 5א5 תקני חדש. מקס בטופס לחצן פקודה ותיבת טקסט, והוו את שורת הקוד לעיל באירוע 0806ו|8\ של תיבת הטקסט. בהקשת טאב לצורך יציאה מתיבת הטקסט, תוצג ההודעה, אלא אס כן הוזן לתיבה מספר. קביעת המאפיין ח0800ו|68565\3 כ-8|56= תפסיק את אירוע האימות. פקדים לבחירת אפשרויות בקטע הקודם למדת איך לקלוט מידע ממשתמשים דרך תיבת הטקסט. גישה זו מתאימה למקריס רביס של איסוף מידע. אולס מה קורה אס דרושה רק פיסת מידע קטנה, כגון ייהיש בבעלותך מכונית!יי או ימה מצבך המשפחתי!יי במקרים כאלה עומדות לרשות המשתמש רק שתיים או לכל היותר מספר קבוע של תשובות אפשריות. אס למשל התוכנית בנויה לקלוט רק את המילים כן ולא, תיווצר בעיה אס משתמש מקליד 'יאולייי, או טועה בהקלדה. ניתן למנוע את הבעיה ולהפוך את התוכנית נוחה יותר לשימוש, אס משתמשיס בפקדיס להצגה וקליטה של אפשרות בחירה. בקטעיס הבאיס ייבחנו פקדיס אחדיס המאפשריס ברירה בין אפשרויות. ניתן להציע ברירה כואת בשימוש בתיבות סימון, לחצני אפשרויות, רשימות ותיבות משולבות : + תיבת סימון (80% 6066%) - מפעילה או מפסיקה אפשרות אחת או יותר. + לחצן אפשרויות (חסם6ט8 חסזקס) - בוחר אפשרות אחת מתוך רשימה. + תיבת רשימה (א80 115%) - מציגה רשימת פריטים המוגדרים על ידי המשתמש. > תיבה משולבת (א80 סטוח60) - תיבת טקסט עס רשימה נפתחת. לחצן הפקודה הפקד ח8060 30 וח 60 הוא בעל חשיבות כמעט בכל יישוס. הוא מאפשר בדרך כלל אתחול פעולות בלחיצה על לחצן. ניתן להתקין פקד ח₪0ט08ח3ח 60 על ידי הצבת הלחצן על הטופס וקביעת המאפיין ח00ק68 שלו בתור הטקסט שאותו מבקשים להציג על פני הלחצן. להפעלת הלחצן יש להציב רק קוד בשגרת האירוע >6ו01 שלו. כמו בכל שגרת אירוע, יכול קוד ה לכלול כל מספר של משפטי תכנות תקפים של 8856 |1808/. למרות שמשתמשיסם מעדיפים לעיתיס קרובות ללחוץ על לחצני פקודה באמצעות העכבר, ישנס המעדיפים גישה לפקודה מן המקלדת. זהו לעיתים קרובות המצב בתוכניות עתירות הזנת נתוניס. כדי לספק משתמשיס אלה, ניתן לגרוס לתוכנית להפעיל אירוע של לחצן פקודה בלחיצה על מקשים מסוימיס במקלדת. עושים ואת על ידי הקצאת מקש גישה ללחצן הפקודה. כשהוגדר מקש גישה, ניתן להפעיל בהקשה עליו, תוך החזקת מקש 416, את האירוע 66% של הפקד הסוח ס6. הקצאת מקש גישה מתבצעת בקביעת מאפיין ח68000 של הפקד חסאטם0חה ו 60. יש להציב את התו 8 לפני אות המקש הנבחר. למשל, כדי לאפשר למשתמש להדפיס בהקשת 6+)/, קובעים את מאפיין ח63000 כ-זחוזק8. התו 6 אינו מופיע על הלחצן, אך אות מקש הגישה מודגשת בקו תחתון. על לחצן הפקודה יופיע הכיתוב זחוזס. 2 סדנת לימוד 6.0 8\ הערה: אם דרוש מסיבה כלשהי להציג בכיתוב לחצן הפקודה את התו 8, פשוט הצב אותו פעמיים במאפיין ח0זק68. למשל: זוא₪ 88 58/6 יוצר את הכיתוב זוא= 8 586. ניתן ליעד לחצן פקודה אחד על כל טופס כלחצן מחדל (חסשטם 690|6כ). לחיצה על ץח כשפקד כלשהו נמצא במיקוד (למעט לחצן פקודה אחר או תיבת טקסט שבה האפיון 6|סטוטא הוא 6טזד), תגרוס להפעלת לחצן המחדל. פעולה וו מפעילה את האירוע 616% של לחצן המחדל, בדיוק כאילו לחצ המשתמש על לחצן המחדל. לקביעת לחצן כלחצן מחדל יש לקבוע את המאפיין %|6080כ שלו כ-6טזד. רק לחצן אחד בטופס יכול להיות לחצן מחדל. ניתן גם לייעד לחצן אחד כלחצן ביטול (חסששטם |66ח68), הדומה ללחצן המחדל, אך פועל עס מקש 556. להסבת לחצן פקודה ללחצן ביטול, קבע את המאפיין |6ח68 שלו כ-6טזד. כמו לגבי לחצן המחדל, רק לחצן אחד בטופס יכול להיות לחצן ביטול. עס קביעת ערך המאפיין 6/801כ או |69ח68 של לחצן אחד כ-6טזד, מוסב מאפיין וה בלחצניס האחריס ל-856=. תיבות סימון פקד תיבת הסימון (א0ם 0066%) של 88516 |508ו\ משמש לקבלת תשובת יכן'י או יילא מהמשתמש. פקד זה פועל כמפסק חשמלי. או שהוא מופעל, או שהוא מושבת. אין מצבי בינייס. כשתיבת סימון מופעלת, מוצג הסימן * בתיבה. הסימן מצייו שהתשובה לשאלה הקשורה לתיבת הסימון היא ייכןיי. כשהתיבה ריקה ואין בה סימון, התשובה היא יילא'י. לתיבת הסימון מצב אפשרי נוסף, מצב אפור, המוצג כסימן * על רקע אפור. מצב גה מצביע בדרך כלל על ביצוע בחירה חלקית (נבחרו רק כמה מתוך תת-אפשרויות הבחירה, לא כולן). המשתמש יכול לבטל את הבחירה החלקית, ואז נמחק הסימון האפור. אם הוא בוחר בתיבה מחדש, כל אפשרויותיה נבחרות. תרשיס 5 מציג את שלושת המצביס האפשרייס של תיבת הסימון. הערה: סימן * או תבנית התיבה הריקה אופייניים לצורה התקנית של תיבת הסימון. אם קובעים את ערך המאפיין 56 כ- |₪39וחק9ז6 - 1, משמשות תמונות לסמן תיבת סימון מלאה או ריקה. תיבות סימון גרפיות מודגמות גם הן בתרשים 4.5. תרשיס 4.5 מדגים, בנוסף לתיבות הסימון התקניות, גס תיבות סימון גרפיות. שני מאפיינים, 6זוש6ק ו-6זנססוק חהאוסס, קובעיס את התמונות המוצגות בתיבות הגרפיות. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 ו|צטפוצ | 103 ו ו אמ וחספז טחואסותפ-הס] ‏ ]| =----- מסומנת (חס) ומוחפקעצו -] *-- לא מסומנת (08) | ה קו!זסטוחטוח פוט 7 אפורה 6 קגוסז ב תסיט קוחכ תרשים 4.5: תיבת הסימון יכולה לציין "כן" או "לא" כתגובה לשאלה תמונה (0%) לחצני אפשרויות לחצני אפשרויות (חסטטם חסטקס), הנקראיס גס לחצני רדיו (חסשטם ס0ו580), דומיס ללחצנים במכשיד רדיו של מכונית: הס קיימיס בקבוצות, וניתן יילבחוריי רק אחד מהם בכל זמן נתון. הס שימושיים להצגת רשימה אפשרויות קבועה, מהן ניתן לבחור בו-ומנית רק אפשרות אחת. לבדיקת הנושא חצב אוו כמה לחצני אפשרויות על טופס. בתחילה יש לכל לחצן ערך 8|56]. אס משניס ערך של אחד מהלחצניס ל-6טזד, ולאחר מכן משניס ערך של לחצן אחר ל-6טזד, הלחצן הקודס שהיה 6טזד עו אבסו "6 יהפוך אוטומטית ל-8156=, כמודגס בתרשים 4.6. הזו 7+ תרשים 4.6: לחצני אפשרויות יכולים לשמש להצגת רשימה קבועה של אפשרויות בחירה בקוד ניתן להשתמש בלחצני אפשרויות באחת משתי דרכים : + > השתמש באירוע 0166 אס בכוונתך לבצע פעולה כשהמשתמש בוחר באפשרות. שיטה זו שימושית כשמשתמשים בלחצני פיקוד הנמצאיס במערך פקדים, כמודגס בדוגמה הבאת: (060061ח1 5 א06ח616%)1 חַ6//85קס פטס סספעווק 106% 60856 50!6066 0 856 "|הוחזס\] :56!6660 טס" אס 50 1 356 "טכ עש168] :56160000 טוסץ" א80 50 2 6856 "735 300 2015 :56!60060 טס" אס ₪50 סח 50 0חם 4 סדנת לימוד 6.0 8\ %, % . אל תכתוב שוס קוד באירוע לחצני האפשרות. במקוס ואת עשה שימוש בשורת 1 לבדיקת מצבם, כמודגס להלן: ( )6110 05%1\\/450רח6 5010 בטוק הסח ד סט ד = שעפסוזקס ]1 5 ץש הסוסס 6 35 !ה ותזסצזס + 0ח= 50 0ח= השיטה השנייה שימושית אס אינך מעונייו שמשהו יקרה מייד לאחר שהמשתמש בחר באפשרות. האס ניתן לבחור יותר מלחצן אפשרויות אחד בטופס: התשובה חיובית, אך מחייבת חלוקת לחצני האפשרויות ‏ |5%!= לקבוצות, תוך שימוש בפקד המשמש כמכולה ו (60הו%9ה0ס6). | השימוש במכולות, כמו למשל פקד ב המסגרת (סח8זה), שיידוו בהמשך הפרק, מאפשר ריכוו לחצני האפשרויות בקבוצות, כמודגם בתרשים 4.7. תרשים 4.7: ליצירת מספר קבוצות של לחצני אפשרויות, יש להציבן במכולה, כגון מסגרת או תיבת תמונה 8 300 סק 7+ 1/0 () עז כ |הוחזס] 17 סיה 5 עהזסחה= 66 תיבת הרשימה תיבת רשימה (א0סם 115%) משמשת להצגת רשימת אפשרויות. תרשיס 4.8 מציג רשימה פשוטה, המשמשת לבחירת מדינה, לצורך הדפסה בתווית כתובת. הרשימה מציגה את כל המרכיבים של תיבת הסימון. חלקי המפתח של תיבת סימון הם : %, % 4 רשימת פריטים. רשימת הפריטיס מתוכה אמור המשתמש לבחור. פריטיס אלה נוספיס לרשימה בסביבת התכנון, או על ידי התוכנית תוך כדי הרצתה. פריט נבחר. הפריט שנבחר על ידי המשתמש. בהתאס לסוג הרשימה המוצג, מסומן הפריט הנבחר בהארה או על ידי סימן * בתיבת הסימון ליד הפריט. פס גלילה. חלק זה מציין שברשימה כלולים פריטיס נוספיס שמחוסר מקוס אינס מוצגיס, ומספקת למשתמש אמצעי נוח להצגת פריטים נוספים אלה. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 וצטפוצ | 105 ו ו תרשים 4.8: תיבת רשימה פשוטה מכילה סדרת אפשרויות שמהן יכול המשתמש לבחור את הרצויה לו מבחינת המשתמש, השימוש בתיבת רשימה דומה לבחירת ערוציס בטלוויזיה בכבליס. חברת הכבליס מחליטה אילו ערוציס לכלול ברשימת הערוציס לבחירה. הלקותח יכול לבחור כל ערוץ הנכלל ברשימה, אך איננו יכול להוסיף אליה, אס אין הוא מרוצה מהאפשרויות שהועמדו לרשותו. בתיבת הרשימה נקבעת על ידי המפתח רשימת האפשרויות לבחירה. המשתמשים יכולים לבחור רק מתוך אותס פריטים שהמפתח העמיד לרשותס. כשמציירים לראשונה תיבת רשימה על טופס, מוצגיס רק גבולות התיבה והטקסט 1 (שם התיבה). אין בתיבה פס גלילה וכמובן ששוס רשימה אינה מופיעה שס. פס גלילה אנכי נוסף אוטומטית לתיבת הרשימה, כשמוזנות אליה יותר אפשרויות משניתן להציג בה-בעת. יש לשיס לב שהתיבה אינה כוללת פס גלילה אופקי, גם אס הפריטיס ברשימה ארוכים מרוחב התיבה. חשוב לוודא כי רוחבה מתאיס להצגת כל הרישומים. שימוש בסיסי בתיבת הרשימה הדרך הפשוטה לשלוט באפשרויות הזמינות בתיבת הרשימה, היא להשתמש בשיטה הח6ז00\ להוסיף לה פריטים. נדרש רק לציין את הטקסט שמבקשים לכלול בתיבה. כדי לנסות זאת, פתח פרויקט 5%5 תקני חדש. צייר בטופס תיבת רשימה, והוסף את שורות הקוד הבאות לאירוע 1080 של הטופס: ()080. 1 חזזס-] 50 סזבּעוזוק זז 5 ו הזוס 0 סד 1 = | זס= | 8 " החססו 15 פוח ד" הח00106ג. 561 | | 61 50 0ח= הערה: למרות שדוגמה זו משתמשת בקוד להוספת פריטים, ניתן בשלב התכנון גם ליצור תיבה על ידי הדפסת הטקסט האמור להופיע בתיבת הרשימה, במאפיין 5% שלה. כל שורה במאפיין מתייחסת לאפשרות בחירה המוצגת למשתמש. לאחר הוספת פריט לרשימה יש להקיש ז8זח6₪1+5 למעבר לשורה הבאה ברשימה. הרצ את הפרויקט, ואו תראה שורות טקסט מופיעות בתיבת הרשימה. למחיקת כל הפריטים מתיבת רשימה, השתמש בשיטת ז69ו0, כמו בדוגמה הבאה: 6 סדנת לימוד 6.0 8\ זו 561 | הפריטיס בתיבת הרשימה מאוחסנים במערך הניתן לגישה דרך המאפיין 1186 מערך הרשימה מתחיל באינדקס אפס, ולכן ניתן להשתמש בשורה הבאה לצורך הכנסת הפריט הראשון ברשימה: (150 151.1 | +חוזק ניתן לבחון שורה וו על ידי הכנסת תוכנית הדוגמה למצב עצירה (הקש 87686+!6), והונת שורת זחוז? בחלון המופיע מייד לאחר מכן. עוד שני מאפייניס קריטייס לשימוש בתיבת הרשימה הס: 115950000 המייצג את מספר הפריטיס ברשימה, ו-א06ח11501, מייצג את הפריט הנבחר. ם אזהרה: כשמשתמשים ב-0חַט15%00! בלולאה כדי לבדוק תוכן מספר לא ידוע של פריטים, חשוב לזכור שהמערך 115% מתחיל באפס, ולכן הקוד צריך להיראות כדלהלן: 1 - +חטס50 10501.1 סד 0= | זס= (50)1 151.1 | 6655סזק' | +68 הערה: אם שום פריט לא נבחר, ערך א06ח11501 הוא 1 -. להדגמת מאפיין א11501806 בפעולה, עצור את תוכנית הדוגמה והוסף את הקוד הבא לאירוע 0|16% של תיבת הרשימה: (15010068 1. 1501 15%)1 .15% 1 אס 150 הרצ שוב את התוכנית, וכשאתה לוחי על פריט, הוא מוצג בתיבת ההודעה. דרך אחרת לשליפת ערכו של פריט נבחר על ידי המשתמש מתיבת רשימה, היא בדיקת המאפיין )א6ד של התיבה. מאפיין וה מכיל את הפריט מכל שורה ממוקדת בתיבת הרשימה. במקרה של תיבת רשימה פשוטה מחזיר המאפיין )א6ד את השורה שעליה לחץ המשתמש. במקרה ששוס שורה לא נבחרה, מחזיר המאפיין מחרוזת ריקה ( "). להסרת פריט מתיבת הרשימה השתמש בשיטת ‏ 616₪עטסוח6ח, בציון אינדקס המערך של הפריט המוסר. להדגמה הוסף את שורת הקוד הבאה לאירוע חושסס/6א בתיבת הרשימה : (ז%606ח1 45 51% ,106067 5 0006ץ6א )הצוסכ ץ66 11561 פטס סספעווק הסח ד 1- <> 1501006% 501.1 | 0חג 6|606כץ6אפע = 660006 זז א |. 1541 | 106 /סרח6. 561 | + 0ח= פרק 4: שימוש בפקדי ברירת המחדל של ₪856 ו|הטפוצ | 107 ו | ספ 0חם הר את התוכנית עס השינוייס החדשים ותוכל לסלק פריט מהרשימה על ידי בחירתו והקשה על המקש 6!606. שימוש במערך הרשימה שיטת 001667 והשימוש בה להוספת פריט לרשימה כבר נדונו בפרק זה. ניתן גם להשתמש בפרמטר הרשות א06ח1 בצירוף עס שיטת 400106₪. הפרמטר מציין את המקוס במערך הרשימה, שבו אמור הפריט הנוסף להופיע. מציינים את ערך האינדקס של הפריט במערך, שלפניו מבקשיס שהערך החדש יופיע. למשל, אס ברשימה חמישה פריטים, ורוציס שהפריט החדש יופיע לפני הפריט השלישי, משתמשים בקוד הבא : 2 ,"007/66" רח00106. 11501 מיון פריטים בקטע הקודס הודגמה הוספה ומחיקה של פריטים מרשימה. בנוסף הודגמה הוספת פריט במיקוס מוגדר על ידי קביעת האינדקס. אך מה עם מיון הפריטים לפי אלף-ביתז למזלנו ווהי משימה פשוטה. למיון הרשימה יש לקבוע את המאפיין 50160 כ-6טזד. לאחר מכן יופיעו הפריטיס ברשימה בסדר האלף-בית, בלי תלות בסדר הזרמתס. האינדקסיס של הפריטים מותאמים עס הזנתם, כדי להבטיח הופעתס בסדר המבוקש. הערה: זכור, בסידור לפי האלף בית מופיע המספר 2 אחרי 11. כושר מיון מובנה וה הוא מאפיין נאה של תיבת הרשימה, באפשרו מיון נתוניס מהיר. אולסם, דרוש לציין את המאפיין 5060 בעת התכנות. אס דרוש לאפשר למשתמשיםס להפעיל או להפסיק את המיון בעת הרצת התוכנית, ניתן להשתמש בשני פקדים של תיבת הרשימה, ולהשתמש במאפיין 6)טופו/\, כך שרק אחד מהם יוצג בו-זמנית. הערה: המאפיין 501160 לא ניתן לשינוי בזמן ריצת התוכנית, ניתן רק לראותו. כלומר הוא במצב ץ/ח₪6800 בזמן ריצה. קביעת ההופעה של תיבת רשימה בנוסף לתיבת הרשימה הייפשוטהיי (תרשים 4.8), קיימיס סגנונות הצגה נוספים. ניתן לגרוס לתיבה להיראות כסדרת תיבות סימון, או להכליל בה כמה טורי פריטיס. בחירת סוג הרשימה מתאפשרת על ידי קביעת המאפיין 6ש5. שני המצבים של המאפיין הס 55800870 - 0, א0פ60666 - 1, כמודגם בתרשים 4.9. המאפיין ניתן לשינוי 8 סדנת לימוד 6.0 8\ גס תוך כדי ריצת התוכנית, על ידי קביעת ערכו כאחד משני הקבועיס הפנימיים 500530 ופצ או 0% א66ה6א5600ו ופצ בהתאמה. 1 חתפו 15 פוחך 2 חתפו 15 פוחחך 2 חתפו 15 פוחד = 3 הפו ו פוחד 3 תפז ו פוחוד ך = 4 סו פו פד 4 סוה ₪ שד | 5 חתפו 15 פוחחך 0 5 הסנו ו פוחך 5 חא ₪ וחד 7 השא 5 פווזך 5 החשזו 15 פודך 8 תסו פו פוחך 7 התסו 5ו פוחך 3 חתפו 15 פוחך 8 חש ו פוחד ךר 0 חתפו 5ו פוחך 3 החש פו פוחדך [= ופחד רה תרשים 4.9: תיבות רשימה בסגנון תיבות סימון מספקות למשתמש דרך אינטואיטיבית לבחירת יותר מפריט אחד דרך נוספת לשינוי מראה הרשימה היא בשימוש במאפיין פחחחטוס6. ערך המחדל של המאפיין הוא 0. ערך ה מציג את תיבת הרשימה התקנית שנדונה לפני כן. קביעת הערך ל-1 גורמת להצגת הרשימה בצורת עמודה אחת בכל ומן נתון, אך עס גלילת טוריסם אופקית, לא אנכית. קביעת הערך למספר גדול מ-1 גורמת להצגת הרשימה בו-1מנית של מספר עמודות השווה לערך האינדקס (לדוגמה, הערך 2 יגרוס להצגת שתי עמודות). כשהרשימה מוצגת במספר עמודות, הגלילה היא אופקית. ניתן להשתמש במאפיין פחוחטוס6 גס בעיצוב הרשימה התקני וגס בעיצוב בצורת תיבת הסימון. תרשים 4.10 מציג רשימה חד ורב-טורית. הרשימות פועלות באותה דרך, בלי תלות במספר העמודות. (אובן- 5 החפ ו פוו 1 = 45 החפנו פו פוחך 6 חפנו ו פו 1 | 47 התש פו פוח 1 = 38 התש 8 פוה ד 2 סו פו וחד 7 וחסוו ₪5 וחד 48 וחסוו 5 וד 39 וחסוו 5 וחד 3 וחסוו ₪ פוחך 8 וחסזו ו וח 1 43 וחסוו פו פוח 40 ותפוו ו פוה ד 4 זז ₪ פמחד 7 3 וחתפו ופוח | 50 תפז ו פווך = 41 החפ ו פוח ד 7 0 חש ₪ 18 51 הפו ₪ 1 42 וחשה | אמ ד כ חפ 5 פד ] 1 חפ 5 ות 1 = 52 הזש 5 שוח 1 = 43 חתפא ו פוח ד 5 חזפזו ו פוחד | | 2 הפו 5ו פוח 1 53 תפשו פו ור 1 = 44 החש 15 פוה ד 7 החשזו ו פוחד ךר 3 ותפטו פו וח = 54 תפז ו פוו 1 = 45 החפ ו פוה ד 8 תסו פו פוחך 9 תסו ו פוך ₪ \->=] [= 10תסה ₪ שמזן תרשים 4.10: ניתן גם ליצור רשימות עם יותר מעמודה אחת פרק 4: שימוש בפקדי ברירת המחדל של 88566 |שפ/ - 109 עבודה עם בחירות מרובות לעיתים יש לאפשר למשתמשיסם לבחור יותר מפריט אחד מתוך רשימה. תיבת הרשימה תומכת באפשרות כזאת עס המאפיין ₪56!66%וטו. | למאפיין וה שלושה מצביםס אפשרייס : 6חסא - 0, 6קחו5 - 1, וכן 6000066 - 2. %, * מצב המחדל 6חסא - 0, פירושו שבחירה מרובה אינה מותרת, ותיבת הרשימה יכולה לקבל רק ערך אחד בו-ומנית. שני המצביס האחרים מאפשרים בחירה מרובה. ההבדל ביניהס הוא בדרך שהס מאפשריס למשתמש לבצע את הבחירה. במצב 5106 - 1 יכול המשתמש ללחוצ על פריט בעזרת העכבר כדי לבחור בו, או ללחוץ על פריט נבחר כדי לבטל את הבחירה. בשימוש במקלדת הוא :כול להשתמש במקשים כדי להזיז את הסמן להזות המיקוד (הגבול המקווקו) לפריט מסויס, ואז להקיש על מקש הרווח לביצוע הבחירה או לביטולה. > המצב השני של 8חו₪560וט1, מצב 0060060 - 2, מורכב יותר. במצב זה יכול המשתמש להשתמש בטכניקות התקניות של פוספחוש\ לבחירה מהירה של פריטים מרובים. ניתן לבחור טווח פריטיס בלחיצה על הפריט הראשון בטווח ואז תוך החזקת מקש א501 ללחו על הפריט האחרון בטווח. כל הפריטים בין הראשון לאחרון נבחרים. כדי להוסיף או להוריד פריט בודד מהרשימה, על המשתמש ללחו על הפריט, תוך החזקת מקש |6. קבלת הבחירה מתיבת רשימה מרובת אפשרויות שונה במקצת מאשר בבחירת פריט אחד. מכיון שמאפיין א06ח11501 פועל רק על בחירת פריט בודד, לא ניתן להשתמש בו. במקוס ואת, יש לבחון כל פריט ברשימה, לבדיקה אס נבחר. האינדיקציה אס פריט נבחר ניתנת במאפיין תיבת הרשימה 56!6060. כמו המאפיין 8% שהוזכר קודס, 566060 הוא מערך, שיש בו אלמנט לכל פריט ברשימה. ערך המאפיין 56|66060 לכל פריט הוא או 6טזד (הפריט נבחר), או 89/56 (הפריט לא נבחר). בנוסף יש צורך לדעת כמה פריטים ברשימה, כך שיהיה אפשר לכוון את הלולאה לבדיקת כל אפשרויות הבחירה. המידע הזה נכלל במאפיין 4ט115660. הקוד הבא מדפיס בטופס שם של כל פריט נבחר מהרשימה : +הטס-5%! |.פסוטז= = וחססווחווח 1 - הטורח 60 0 = 1 זס= (150)1 5.1זוטז=] +חוזק. 1 התזס-] השח (56!66060)1.וטי= ]1 1 אסא 0 סדנת לימוד 6.0 8\ שמירת הנתונים האחרים ברשימה ננייח שמבקשיס להציג למשתמשים רשימה של שמות הפריטיס שבה יש משמעות, כגון רשימת שמות, אך נדרש שהרשימה תזכור מספר הקשור לכל שם. המאפיין 8הסוח6ז1 של תיבת הרשימה הוא בבסיסו מערך של מספרים שלמיס ארוכים, מספר אחד לכל פריט שנכלל בתיבת הרשימה. 1600868 זוכר את המספר הקשור לפריט המסוים, בלא קשר למיקומו בתיבה. וה קורה גס אס המאפיין 50760 של התיבה הוא 6טזד, שפירושו כי הפריטים אינס רשומיס בהכרח בתיבה לפי סדר הוגרמתם אליה. למשל, האלמנט של מערך 16080 הקשור בפריט הראשון בתיבת הרשימה 0561, ניתן לגישה כ-(08%8)0 1660 11501. הגישה לאלמנט המערך של הפריט התורן הנבחר היא דרך (א06ח1501 561.1 !)2868 ח166. 11551 (יש לזכור כי המאפיין א1150006 מדווח איזה פריט הוא הנבחר התורן). כשלתיבת הרשימה נוספים פריטים, נוצר במערך 8ּזסוח1)6 אלמנט הקשור אליו. הזנת הערך המתאיס למקוס המתאיס במערך 168% היא כמובן תפקידו של מזין הפריטיס. אס כך איך תדע התוכנית באיזה מיקוס בתיבת הרשימה הושס הפריט!? 6 |56\ הופכת ואת למשימה פשוטה. מאפיין א06ח1ש₪6 מאחסן את מספר האינדקס של הפריט האחרון שנקלט ברשימה. הקוד הבא מוסיף לקוח חדש לתיבת רשימה ממוינת ואז מוסיף את מספר חשבון הלקוח לאלמנט המתאיס של המערך הקשור בו 308כוחס)1 : "סחו( ,85 הסח ד" ח075.001166ר50500! 1 = (א106/ש6\]. זר 5001500 )2 10 5 זר 0ש156.05 עכשיו יכולה התוכנית לאפשר למשתמש לבחור מתוך תיבת רשימה המכילה אלמנטיס שיש להסם מובן (שמות), אך העיבוד ברקע יכול להתבצע עס המספר הקשור אליו, מה שמקל על פעולת המחשב. גישה זו מודגמת בשגרת האירוע 616% של תיבת הרשימה: ()66ו01. 500056000015! 50 סזהּעוזוק (5010068! |. 50015005 )2 10 5 זר 0ש5605! = ז55וח דט! וחוס (150050 ד0!)חו 0/6060 !\)סס ] |ו68 50 0חם הערה: 060 | הינה פונקציה שמשתמשת במספר החשבון של הלקוח. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 |הטפוצ - 111 | ו התיבה המשולבת פקד נוסף המאפשר הצגת רשימות למשתמשיס הוא תיבה משולבת (א80 סטוחסס). השימוש בתיבה המשולבת אפשרי בשלוש צורות: % + תיבה משולבת נפתחת (אסם ססו 60 האוסס ססזס). מציגה למשתמש תיבת טקסט משולבת ברשימה נפתחת (ראה תרשים 4.11). המשתמש יכול לבחור פריט מהרשימה הנפתחת, או להקליד חדש פריט בתחוס תיבת הטקסט. > תיבה משולבת פשוטה (א80 סטוח60 6מחו5). מציגה תיבת טקסט ורשימה שאינה נפתחת (ראה תרשיסם 4.12). כמו בתיבה המשולבת הנפתחת, יכול המשתמש לבחור פריט מהרשימה, או להוסיף פריט חדש בתיבת הטקסט. + רשימה נפתחת 1150 חאוסם ססזס). מציגה תיבת רשימה נפתחת. המשתמש יכול לבחור פריט מהרשימה הנפתחת, אך אינו יכול להוסיף פריט שאיננו ברשימה. ה ה -- 0 ספ חזס-) מעשסטקטזם- הקלד פריט חדש לחץ כאן כדי לפתוח את הרשימה 1 וחפזו פו פוה ך 2 הז ו וחד ב ו 5 חחסטו פו פוה 5 חפוו פו פוה ך 7 תסו 18 פוחך 8 ח6שו 15 סוחד תרשים 4.11: בתיבה המשולבת הנפתחת ניתן לבחור פריט מהרשימה הנפתחת, או להוסיף פריט חליפי על ידי הקלדה בתיבת הטקסט מ תמממרהן - א םספוחס-) 6|קוחו5 : הקלד פריט > | 1 תפז ו פוחך 2 חפזו 8 פוחד בחר מהרשימה תרשים 4.12: התיבה המשולבת הפשוטה פועלת כמו התיבה המשולבת הנפתחת, פרט לכך שהרשימה מוצגת באופן קבוע 2 סדנת לימוד 6.0 8\ |אוםן 18% ] האוסטקסזם | לחץ פה כדי לפתוח את הרשימה 1 חחפוו ו פוחך 2 החסוו ו פוזך 3 תסו ו פוחד 4 חתפו פו פוח ד | > 5 וחפוו ו פוחך ₪ החפ 15 פוחך 7 החסטו ו פוחך 8 תסו ו פוחך בחר מהרשימה תרשים 4.13: ברשימה הנפתחת אין אפשרות להקליד פריט חליפי הערה: סוג חדש של תיבה משולבת, 000 1088660, נוסף בגירסה 6. פקד זה נדון בפרק 2 הפקדים המשותפים של 6:050%:₪/. לתיבה המשולבת יש הרבה מן המשותף עם תיבת הרשימה. שתיהן משתמשות בשיטות 400166 ח61:6עסוח6ה, ז6!68, לשינוי תוכן הרשימה. בשתיהן ניתן להציג רשימה ממוינת או בלתי ממוינת. שתיהן תומכות במערך 16600806 ובמאפיין א6סח1או6)א. ישנס אולס דבריס מסוימיס שתיבה אחת מסוגלת לבצע והשנייה לא. התיבה המשולבת איננה תומכת בבחירת פריטיס מרובים. יתרונה העיקרי של התיבה המשולבת הוא במתן אפשרות למשתמש להזין אפשרויות בחירה שלא נכללו מראש ברשימה. השיטה דומה לשימוש בפתק בחירות, שניתן לבחור בו במועמד מתוך רשימה, ואפשר גס להוסיף בו שס של מועמד נוסף, שלא נכלל בה. הערה: הרשימה הנפתחת איננה מאפשרת הוספת פריטים לרשימה על ידי המשתמש. יתרונה על תיבת רשימה פשוטה הוא בכך שהיא תופסת פחות מקום. הקטעיס הבאיס מסביריס כיצד להשתמש בצורות השונות של התיבה המשולבת. הרשימה הנפתחת נדונה ראשונה, כי היא הפשוטה מכל סגנונות התיבה המשולבת. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 ו|הטפוצ\ - 113 | ו יצירת רשימה נפתחת רשימה נפתחת 1150 חאוסם ססזס) פועלת כמו תיבת רשימה. ההבדל העיקרי הוא, שרשימה נפתחת תופסת פחות מקום בטופס. כשמשתמש רוצה לבחור פריט מהרשימה, הוא לוחץ על הח למטה הממוקם בימין התיבה, כדי לפתוח את הרשימה. לאחר הפתיחה ניתן לבחור פריט בלחיצה עליו. לאחר הבחירה נסגרת הרשימה כמו תריס נגלל של חלון, והפריט הנבחר מופיע בתיבה. המפתח יוצר רשימה נפתחת על ידי ציור תיבה משולבת על הטופס וקביעת המאפיין 6 לערך 115% חאוססקסזס - 2. ניתן אז להוסיף פריטיס לרשימה תוך שימוש במאפיין %, כפי שהדבר נעשה בתיבת רשימה. יש לזכור כי משתמשים אינס יכוליס לבחור פריטים שאינס כלוליס ברשימה כשעובדים עם סגנון זה. קביעת הבחירה ההתחלתית בתלות ביישוס הנבחר, ייתכן שהמפתח ירצה לקבוע את הפריט ההתחלתי בתיבה המשולבת. ניקח לדוגמה תוכנית המבקשת לדעת את אזרחות המשתמש. התוכנית כוללת רשימת אפשרויות לבחירה, אך מעונייניס להציג כבתחירה ראשונה את האפשרות ייאזרח ארצות הבריתיי, כי זו צפויה להיות בחירתס של רוב המשתמשיס. קביעת הערך ההתחלתי נעשית בשימוש במאפיין א06ח11501. לדוגמה, אס יאזרת ארצות הברית'"" הוא הפריט הרביעי ברשימה, ניתן להשתמש בקוד הבא לגרוס לו להיבחר מראש (זכור כי א06ח115061 מתחיל את הספירה מאפס): 3 = א5006 001.1 חס משפט זה גורם לפריט הרביעי ברשימה להיות מוצג כשהתיבה המשולבת מופיעה לראשונה (זכור: האינדקסיס של הרשימה מתתילים ב-0). ניתן לקבוע את הבחירה הראשונית בכל שלושת סוגי התיבות המשולבות. ניתן גס לקבוע את הבתירה הראשונית של התיבה המשולבת על ידי קביעת המאפיין 6%ז לערך הרצוי. אס הבחירה ההתחלתית אינה נקבעת דרך קביעת האינדקס, מוצג הטקסט הנכלל במאפיין 6% . אזהרה: הערך ההתחלתי של המאפיין 6% הוא שם התיבה המשולבת. אם אינך רוצה ששם זה יופיע בהתחלה בתיבה המשולבת, עליך לקבוע את אחד המאפיינים א51006! בקוד או למחוק את תכולת המאפיין 16% של הפקד. 4 סדנת לימוד 6.0 8\ עבודה עם אפשרויות בחירה שאינן ברשימה הרשימה הנפתחת שימושית להצגת אפשרויות אחדות בשטח מצומצסם. אולס, כוחה האמיתי של התיבה המשולבת הוא במתן אפשרות למשתמשיס לבחור באפשרויות שאינן נכללות ברשימה. אפשרות זו קיימת גס בשני הסוגיס השוניס של התיבות המשולבות - הפשוטה והנפתחת. שני הסגנונות מספקיס רשימת פריטים ממנה ניתן לבחור, ושתיהן מאפשרות הזנת ערכים אחרים. ההבדל בין שני הסגנונות הוא בדרך הגישה לפריטים הנכלליס כבר ברשימה. ניתן ליצור תיבה משולבת פשוטה (א80 סטוח 600 6ומהחו5) על ידי הצבת הפקד על הטופס וקביעת המאפיין 6ש5 לערך ספוח60 6!סחו5 - 1. בתיבות משולבות פשוטות יכול המשתמש לגשת לפריטי הרשימה בעזרת העכבר או מקשי החיציס. אס המשתמש איננו מוצא את מבוקשו ברשימה, הוא יכול להזין אפשרויות נוספות. תיבה משולבת נפתחת (א80 6000 חשוסס ססזס) פועלת כשילוב של רשימה נפתחת ותיבה משולבת פשוטה. בחירת פריט מהרשימה נעשית כמו ברשימה הנפתחת, אך ניתן להוסיף ערכיס שאינס ברשימה. יוצריסם תיבה משולבת נפתחת על ידי קביעת ערך המאפיין 566 לערך סטוח60 חשוססססזם - 0. התיבה המשולבת הנפתחת היא ברירת המחדל של המאפיין 5!6. באשר לתיבה המשולבת הפשוטה ולתיבה המשולבת הנפתחת, ניתן להשתמש בהן במאפיין 115% להוספת פריטיםס לרשימת האפשרויות לבחירה. ניתן גם, כשהתוכנית רצה, לשנות את הרשימה בכל הסגנונות של התיבה המשולבת. כמו לגבי פקד תיבת הרשימה, השינוי נעשה בשימוש בשיטות הח00106ה, הח616עסוח6א, זהסו|6. פקדים למטרות מיוחדות הקבוצה האחרונה של הפקדים הפנימיים נקראת פקדים למטרות מיוחדות, מכיון שאין הס מתאימיס להשתלבות בשוס קבוצת פקדים אחרת. בהמשך תגלה בוודאי שיש להס שימוש רב. להלן סוגי הפקדים שיידונו בקטע זה: + פקדי פס גלילה (ז5670|!88). <* | פקדי שעון עצר (זסחוד). > פקדי מסגרת (סוחפּזת). פרק 4: שימוש בפקדי ברירת המחדל של ₪856 ו|הטפוצ - 115 | ו פסי גלילה מי שהשתמש במערכת ההפעלה פצוססחו/\ כבר מכיר את פסי הגלילה. פסי הגלילה מספקיס אמצעי גרפי לבקרת המיקוס בתוך מסמך, או לכיווןו עוצמת הקול של כרטיס הקול במחשב. פסי גלילה פועליס כמו וסתי עוצמת הקול במערכות סטריאו בעולס האמיתי, הניתניס לכיוון לכל נקודה בין ערכי מקסימום ומינימוס מסוימים. מנקודת מבטו של המפתח פקדי 05 הגלילה של 8856 |1508 מחזיריס ערך מספרי. המתכנן אחראי להשתמש כראוי בערכיס אלה ביישוס. 6 |ו/\ מספקת שני סוגים של פס גלילה להזנת ערכיס נומריים: פס גלילה אופקי ((זחס2וזסוז) ופסי גלילה אנכי (|8768/). שני פקדים אלה מוצגיס בתרשים 4.14. ההתייחסות לפס הגלילה האופקי והאנכי היא ז0|!89ז56 ו-ז9פ!|0ז56/\ בהתאמה. תרשים 4.14: הפקדים ז0|!88ז56/ |-ז0|!83ז₪56 יכולים לשמש להזנת נתונים והצגתם בדרך גרפית ההבדל היחידי בין שני הפקדים הוא בכיוון הפס על הטופס. הקטע הבא דן בפקד ז||70ז56, אך הוא מתאים גם לפקד זפ0|!8ז56/. קביעת פס הגלילה כדי להשתמש בפס גלילה, משתמשים במאפיינים לקביעת הטווח ואחזרת הערך. שלושת המאפייניס החשובים, הזמיניס לשימוש בעת התכנות ובעת ההרצה, הם: + שטן8/ - שולף או קובע את הערך המספרי הנוכחי. > חוא - שולט על ערך המינימוס של המאפיין סטופ/. + א8 - שולט על ערך המקסימוס של המאפיין סטן8/. כדי להשתמש במאפייניס אלה, יש ראשית לקבוע את המאפיינים חוןא ו-א8 לערכיס המייצגיס את הטווח המבוקש, ואז לגשת למאפיין סטו\, למציאת ערכו. טווח אופייני הוא מ-0 עד 100, כשהמשתמשים מכניסים מספרים כאחוצים. 6 סדנת לימוד 6.0 8\ הערה: פס הגלילה יכול לקבל מספרים שלמים בתחום שבין 32,768- ל-32,767. אולם, הערכים התקפים של המאפיין 6טו3\ תלויים בערכי המאפיינים חוו\ ו-אאויז. יש לזכור זאת בעת קביעת ערכי פס גלילה מתוך קוד, מכיון שערך מחוץ לטווח גורם לשגיאה האירוע 608096 של פס גלילה מופעל כשהמאפיין 6ט|8/\ משתנה. כדי לנסות פס גלילה פתח בפרויקט 55 תקני. מקס פס גלילה ותיבת טקסט על הטופס. אחר כך הזן את הקוד הבא באירוע 1080 חזסת ובאירוע 96ח8ח6 זפפ!||סז56ה. ()1.080 הזוס 50 סזבּעווק 8% = חו. 1567011 ח6ו0ו//\16.568|6] = אה\\. 15670111 5 0חם (060ח8ח6 45670!!1] סטש 6ספעווק סט|8/\. 0|1ז150] = 1.].6%)אד 5 0חם הרצ את התוכנית וקבע לפס הגלילה ערכים שוניס על ידי גרירה, לחיצה ושימוש במקשי החיצים, פוחסו וכן 6חם. מיקוס תיבת הגלילה בטופס אמור להשתנות, בהתאסם לערכיס הנוכחייס של פס הגלילה. בקרת גודל שינוי הערך מי שהשתמש בפסי גלילה במעבד תמלילים או בתוכנית אחרת, יודע שלחיצה על אחד החיציס המופיעים בשני צידי הפס, יוצרת הזוה קטנה בכיוון החצ הלחוץ, ולחיצה בין הת ותיבת הגררה גורמת להזוה גדולה יותר. פקדי פס הגלילה עובדים באותו אופן, וניתן לקבוע בכמה מספריס ישתנה המיקוס בכל סוג לחיצה. המספריס שהוזנו בפס הגלילה נכללים במאפיין 6ט|8\. מאפיין זה משתנה בכל לחיצה על פס הגלילה וגרירת תיבת הגררה, כמצוין בתרשיס 4.15. 5 .- לחץ על החץ ליצירת תזוזה קטנה ו ו ו ו לחץ בין החץ לתיבת הגררה ליצירת תזוזה גדולה יותר גרור את תיבת הגררה כדי לקבוע + וחד ערך מדויק תרשים 4.15: לחיצה על חלקים שונים של פס הגלילה משנה את ערכו במידה שונה פרק 4: שימוש בפקדי ברירת המחדל של ₪856 ו|הטפוצ | 117 | ו המידה שבה גדל או קטן 6טו3\ כאשר לוחציס על הח, נשלטת על ידי המאפיין 6ח08|ח5, אלא אס כן חרג מהגבולות שנקבעו על ידי המאפיין חוו או אפּ8ו. 506 מאפשר שליטה עדינה ביותר על המספריס המוזנים. ערך המחדל שלו הוא 1, המתאיס בדרך כלל לשימוש לרוב המטרות. בלחיצה בין החץ לתיבת הגררה, יכול המאפיין 6טו3\ להשתנות בכמות שונה מן השינוי בזמן הלתחיצה על החצ. כמות השינוי במצב זה נקבעת על ידי המאפיין 6חפח6פָז !. ערך המחדל של 06ח8706078! הוא 1. הערך שבו משתמשיס למעשה תלוי ביישוס. למשל, הערך 10 הוא מספר טוב לעבודה באחוזיס. טיפ: כלל טוב הוא לקבוע את המאפ''ין 1870600806 בגבולות חמישה עד עשרה אחוזים מהטווח הכולל (לדוגמה, ערך 50 לטווח של 0 עד 1000). | ום|= 2 !סז 5חוז] .םי תרשים 4.16: שיתוף בין תוויות או תיבות טקסט לבין פסי גלילה, מציג למשתמשים את הטווח ואת הערך הנוכחי החלק הבעייתי הוא לדעת היכן במדויק למקס את שורות הקוד. כדי להראות את הערכיסם בכל רגע, דרוש למעשה למקס את המשפטים בשלושה אירועים: * 080]| חזס] - משתמשים באירוע וה להצגת הערך ההתחלתי של פס הגלילה, לאחר קביעת הטווח. **‏ סִחַח8ח6 - אירוע זה מופעל עס הלחיצה על לחצן העכבר בטווח שבין החיצים ותיבת הגררה. האירוע 608096 מופעל גם בכל פעס שלוחצים על אחד החיצים או על פס הגלילה. + ||5₪0 - אירוע וה פועל במשך גרירת תיבת הגררה של פס הגלילה. אירוע וה מאפשר להציג את הערך או לפעול כל עוד המאפיין 6ט!3\ עובר שינוי, אך לפני הפעלת האירוע ספַחַ608. כדי לנסות את דוגמת אלף-בית שמופיעה בתרשים 4.16, צור פרויקט 5א5 תקני. מקס פס גלילה ותווית על הטופס. אחר כך הזן את הקוד המופיע בתוכנית 4.1. 8 סדנת לימוד 6.0 8\ תוכנית 4.1: ק8/. 510 | 56801 - השימוש בפס גלילה ()080 1 הזוס סנ5 סזפּעוזוק 5 הוח 60 65וזו6קסזק חווי] הסח ,אה 66% ' ("56)"2 = א8\. 0|!1ז150] ("ה")56 = חוו. 156701!1] סטןפע |החוחו 06 שְהוספוס' (6ט!3/\. 0||1ז150])זח6 = הסק68. 1!סטב | 50 0חם (060ח8ח6 45670!!1) סטש 6ספעווק (6טו3/\. 0(|1ז150])זח6 .8 " זס+ ה56876" = חהסק68. 1!סטב | ח56876 00 6חל הזס1וסכ ץ||36008 60 ששח 6006 56חד ' 50 0חם ()!ו0ז56 0|!1ז150 סג5 סזבּעוזוק (6טו3/\. 15070|1)זח6 .6 " 56|666 0+ 616856" = הסוק1.603וסטבּ | 50 0חם הרצ את התוכנית. שיס לב לשינוי הטקסט בתווית בזמן שאתה מתפעל את פס הגלילה. בהכנסת קוד לאירועיס המתאימים, ניתן, כמו בדוגמה שבתוכנית 4.1, להציג בכל רגע את ערכו המדויק של פס הגלילה, אך לנקוט בפעולה רק כאשר יידרש. פקד שעון עצר ממראה הסמל ניתן לנחש, שפקד שעון העצר פועל כשעון עצר או כשעון מעורר. קיימיס שלושה הבדלים עיקריים בין קוצב ּמן בעולס האמיתי לזה של 8856 |1808\: + במקוס להשמיע קול או ביפ, מבצע הפקד זפוחוד קוד (המופיע באירוע זפוחוד שלו) כשהושלס מרווח הזמן. + הפקד זסחוד מבצע ספירה לאחור שוב ושוב, כל הזמן שהמאפיין הח הוא במצב סטזד. + הפקד זסוחוד מתוכנן לעבודה עס פרקי ומן קצרים מאוד. קביעת הזמן הארוכה ביותר האפשרית בו היא מעט יותר מדקה. כוונון שעון העצר כדי לקבוע פקד שעון עצר, דרוש ראשית למקס אותו על הטופס, כמודגס בתרשיס 7. פקד שעון העצר מופיע תמיד כסמל בשלב התכנון, אך איננו מוצג כלל בזמן ריצת התוכנית. כדי שהפקד יפעל, יש ראשית צורך למקם קוד באירוע ופוחוד, ואו לקבוע את המאפיינים הבאים, בזמן התכנות או הריצה: > קביעת המאפיין |\זססח1. + קביעת המאפיין 8|60ח= כ-6טזד. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 וצטפוצ - 119 | ו תרשים 4.17: פקד שעון העצר מופיע כסמל, ללא תלות באיזה גודל שורטט המאפיין 89!60ח5 פועל כמפסק המפעיל או מפסיק את שעון העצר. אם פקד שעון העצר מופעל, הקוד המצוין באירוע זפוחוד מופעל בתוס מרווח הזמן המצוין במאפיין |%6708ח1. ניתן לקבוע למאפיין |6\3סח1 כל ערך שבין אפס ל-65,535. קביעת |8צזסזחז כאפס מנטרלת את פקד שעון העצר. לגבי כל ערך אחר בטווח, המאפיין זסוחוד מציין את הזמן באלפיות שנייה בין ההפעלות של האירוע זפוחוד. במיליסם אחרות: אס רוציס שתעבורנה עשר שניות, יש לקבוע את הערך ל-10,000. הערה: אם המאפיין חַ6פַהח5 נקבע 6טזד בעת התכנות, שעון העצר מתחיל בספירה לאחור מייד עם טעינת הטופס המכיל אותו. מכיון שהערך המקסימלי של |8זסזח1 שווה בערך דקה, כיצד ניתן לקבוע פרקי ומן ארוכיס יותרז ניתן לקבוע באירוע זסוחוד קוד המשתמש בומן המערכת כדי לקבוע אם פרק הזמן כבר חלף, כמודגם בתוכנית 4.2. הקוד בתוכנית גורס להדפסת הזמן בחלון אחת לחמש דקות. תוכנית 4.2: קפ/.א=חםואזד - השימוש בפקד שעון העצר למרווחי זמן ארוכים זוסו|קאם הסטקס 6 5 סו 0060 וחוס ()080. 1 חזזס-] 50 סזפּעוזוק זסוחוז 6+ קט 66% ' 0 = |/ז0לח1. 1זסחחוך סד = 66!טְהח=. 1 ]סרוד 5 ווח 5 / 6/6 חהוחז6רח0ס5 00 60 %חהעט 6/\ ' (שס\א ,5 ,"ח")00 הכ = סו א 50 0ח= 0 סדנת לימוד 6.0 8\ ()זרח ד 1 זסוחו ד סנ5 סזבּעוזוק סו ך)א001\6 .8 ":זחסעם )אסו]" = הסוססףּס. 1וססב! צוסא\ .8 ":6וחו ד +חסזט6" = חס2.630וסטבּ! חס ד שוחו וא6\וס =< אוסא 1 6 = 60|טהחם. 1וסוחוך 6חו 014607 20806 הס 6זסח +חפצ\ טוסץ +החצו סכ ' אוס\ .8 " 3% +ח6/6 סוד" זחוזק. פטוטסס (אוס\! ,5 ,"ח")8600 = סו 60 סד = 60|סהח=. 1זסוחודך + 0ח= 50 6ח= הקוד בתוכנית 4.2 איננו משתמש בפקד זפוחוד לביצוע אירוע. הוא משתמש בו כדי לבדוק את התאריך והשעה במערכת, לראות אס עליו לבצע אירוע. המפתח לתוכנית זו הוא הפונקציה חְַ0ְח6ז8ס, המשמשת לחישוב השעה הצפויה בעוד חמש דקות. הערה: חלופה לפקד זפוחוד, המבוססת על קוד בלבד, היא הפונקציה זפוחוד, המחזירה את מספר השניות שעברו מחצות הלילה. ניתן לחסר את ערך הפונקציה המוחזר הנוכחי מהערך המאוחסן, כדי למצוא את מספר השניות שעברו, כמו בדוגמה הבאה: 6 45 05031ח5 וחוס וד = 505096 (ח3600 6וח50 וחזסדוס0) ' ".5600005 ".8 (05631ח5 - וסוחו ד)610% ,8 " 85/\ שחו 80560!ם" לחוזק. פטפטס יצירת אנימציה פשוטה להדגמת קלות השימוש בפקד זסוחוד, להלן הוראות ליצירת אנימציה פשוטה: 1 פתת פרויקט 5אם תקני חדש ב- 8856 |1508/. 2 מקם פקד זסחוד ופקד תמונה על הטופס. 3 מחלון ₪65ז6קסזק של פקד התמונה, בשורת המאפיין 6וטש6ופ, בחר בלתצן הבנייה המזוהה לפי שלוש הנקודות (515סוו!5) שעליו. 4 כשמופיעה תיבת הדו-שית שזשסוק 1080, בחר קובצ תמונה מהתיקיה ח65\160!חק 8ז)\88516 |08פו/\. לדוגמה בחר את הקוב 40503.160= מהתיקיה 56וו. פקד התמונה אמור להכיל עכשיו תמונה כלשהי. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 |הטפו/ - 121 | ו 5 הזן את הקוד הבא באירוע זסוחוד, באירוע 1080 וחזסז ובקטע ההצהרות : 5 06ח חא חחוס 1 5 06ה8ח6ץ וס ()080 1 חזזס- סנ5 סזפּעוזוק 0 = 86ח8ח6א 0 = 86ח8ח6ץ סט5 0ח= ()זסוחו ד 1 זסוחו ד סנ5 סזפּעוזוק 6 חא + 6% 18061.1 = 6% 106.1 6 + קס 18061.7 = קס ד.8061ח1 11 * 68006א = 86ח8ח60א הסח ד 00ו\16.568|6] < 6% 13061.1 זז 1 * 6חַחה8ח6א = סִחַחַה8ח6א הפחד 0 > 68 13061.1 זז 11 * 608006 = 86ח8ח0ץ הסח ד ז00ו₪6.568|676 < קס ד.3061חז זז 1- * 06ח8ח6/ץ = 6חַחה8ח0ץ הסחחד 0 > ק0סד.3061חז1 זז 50 0ח= 6. | פתח את חלון 665קסזק של פקד זסחווד. 7 קבע למאפיין |6\8זח1 את הערך 200 ולמאפיין 66מ8חם את הערך פטזד. כשתריץ את תוכנית, אמורה התמונה לנוע על פני הטופס, ולשנות כיוון בכל פעס שהיא יינתקלת'י בגבולותיו. מסגרות הפקד 6ח8זז הוא מיוחד, מכיון שהוא פקד מסוג הנקרא מכולה (6חו%9חס6). מכולות הן פקדיס שבהם ניתן למקס פקדיס אחרים, בדומה למסגרת תמונה אמיתית הסוגרת על (מכילה) תמונת האמן. כשמסתירים (בשימוש במאפיין 0!6ופו/), או משניס מיקוס פקד מכולה בטופס, הפקדים שהוא מכיל מושפעים גם הם. תכונה ו שימושית ביצירת יידפיםיי רבים של פקדים על טופס יחיד. הערה: פקדי מכולה יוצרים קשר חזותי שונה בין הטופס והפקדים הנכללים בו. אירועי הקוד וטווח המשתנים בטופס אינם מושפעים. כמו לגבי כל הפקדיס האחרים, הצעד הראשון בקביעת פקד מסגרת, הוא לצייר אותו בגודל המבוקש. אחר יש לקבוע למאפיין 6ח8א\ שם ייחודי. בשלב זה ניתן לקבוע מאפייניסם אחדיס השולטים על הופעת המסגרת. השפעתס מודגמת בתרשים 4.18: * | 68000 - כשמוזן ערך למאפיין וה, הטקסט המוזן מופיע בפינת המסגרת הימנית העליונה. כיתוב זה יכול לשמש לזיהוי תוכן המסגרת, או לספק מידע תיאורי. אס מעונייניס במסגרת רציפה ללא כיתוב, יש למחוק את הכיתוב במאפיין חסו680%. 2 סדנת לימוד 6.0 8\ * 06ח68]8סק1 - מאפיין וה קובע אם הגבול מוצג כקו יחיד בצבע אחיד, מה שנותן לפקד הופעה שטוחה, או שמשתמשים בקווים ליצירת אפקט תלת-מימדי למסגרת. 807067506 - מאפיין וה קובע אס יוצג גבול מסביב למסגרת. אס המאפיין 6 נקבע כ-6חסא\ (משתמשים בערך 0), שום גבול אינו מוצג. גס הכיתוב אינו מוצג, כי גס הוא מהווה חלק מהגבול. ה ה 2 %-------- עם ערך במאפיין חס69 ללא ערך במאפיין חסו%ק68 ומראה תלת-מימדי גבול שטוח --- ללא גבול תרשים 4.18: השליטה בהופעת המסגרת מושגת בעזרת המאפיינים 6חְהַזה6ססה, 6 וסט, ו-הסקה6 טיפ: 0 אם אין רוצים שהמסגרת תיגע בטקסט הכיתוב, מוסיפים רווח לפניו ואחריו. טיפ: לפ אם רוצים שהמסגרת תופיע ללא קו גבול, משאירים, בשלב התכנות, את הגבול על הטופס, ובשלב טעינת הטופס קובעים למאפיין 800856 את הערך 0. הצגת הגבול בשלב התכנות, מקלה על שמירת גבולות המסגרת. עבודה עם פקדים במסגרת לאחר ציור הפקד 86ז=, אפשר להתחיל למקס בו פקדים אחרים. ניתן למקס במסגרת (או בכל פקד מכולה אחר) כל פקד שמעוניינים בו. ניתן גס להציב מכולה בתוך מכולה. להצבת פקדיס במסגרת, פשוט מציירים אותס ישירות בתוכה, בדומה לציור פקדיס בטופס. (אס מוסיפים בלחיצה כפולה כלי מתיבת הכלים, חשוב שהמסגרת תיבחר לפני הוספת הפקד). לאחר מכן מצייריס פקדים בתוך המסגרת ממש פרק 4: שימוש בפקדי ברירת המחדל של 88566 |ש\ - 123 כפי שהדבר נעשה בטופס. חשוב לוודא שבתחילת הציור ממוקס הסמן בתוך המסגרת, אחרת לא ייכלל בה הפקד. תרשים 4.19 מראה פקדי טופס כוח אדס אחדיס מצויריס במסגרת. | וםן=. | [8זת6, 5 1 : חב א וזו : 36 1391 ו :שו . . . :0 . תרשים 4.19: לפני שמתחילים לשרטט פקד, יש לוודא שהסמן ממוקם בתוך המסגרת להלן שתי נקודות המתייחסות לפקדים ומסגרות : + ראשית, אם על טופס מופיעים כבר פקדים, הס אינם נכללים במסגרת גם אס המסגרת מצוירת עליהס. + שנית, כשמזיוים פקד במסגרת, לא ניתן להעביר פקד בגרירה ושחרור אל תוך מסגרת או החוצה ממנה. ניתן לגרור פקד ולשיס אותו על המסגרת כך שייראה שהפקד כלול במסגרת, אך זה איננו המצב. הדרך היחידה להעביר פקד מחלקי טופס אחרים אל תוך מסגרת היא בגזירה ובהדבקה. גזור את הפקד מהטופס, בחר במסגרת, ואו הדבק את הפקד במסגרת. (ניתן גס להעתיק פקד מחלק אחר של הטופס, ואז להדביקו במסגרת). תחילה מוצב הפקד בפינת המסגרת השמאלית העליונה, אך לאחר מכן ניתן לגרור אותו ולשחררו במקוס אחר בתוך המסגרת. ניתן להשתמש בטכניקה זו גס להזות פקדיס מחוץ למסגרת. ברור שניתן להזיזּ כמה פקדים באותו זמן. טיפ: אם רוצים לוודא שהפקד כלול במסגרת, יש להזיז את המסגרת. אם הפקד זז עם המסגרת, הוא כלול בתוכה. אם אינו זז, ניתן לגזור ולהדביק אותו בתוך המסגרת. 4 סדנת לימוד 6.0 8\ עבודה עם מספר פקדים בשלב העיצוב עד עכשיו ראינו כיצד ניתן להוסיף פקדיס לטפסים ואיך לקבוע את מאפייני פקד אחד ברגע נתון. אולס, לעיתיס יש צורך לעבוד עס מספר פקדיס בו-זמנית. למשל, נניח שקיימת קבוצה של פקדי |1806, והחלטת לשנות את הגופן שלהם, אך אינך רוצה לבחור ולשנות כל פקד תווית לחוד. למרבה המצל ניתן לפעול על כל הפקדיס כקבוצה. בחירת פקדים מרובים הצעד הראשון בעבודה עס מספר פקדיס הוא בחירת כל הפקדיס שרוציס להזיזס או לשנותס. ניתן לבחור קבוצת פקדיםס בלתחיצת עכבר על הטופס ובגרירתו. מסגרת מקווקוות מופיעה על הטופס, כמודגס בתרשים 4.20. השתמש במסגרת זו כדי לכלול בה את כל הפקדיס שאתה בוחר בהם. - ז ז ז ז [ [ ו [ [ תרשים 4.20: בשימוש בעכבר ניתן בקלות *: לבחור יותר מפקד אחד כשמשוחרר לחצן העכבר, נבחרו כל הפקדיס הנמצאים בתוך התיבה. פקד נבחר מאופיין בתוספת נקודות אחיזה לשינוי גודל בכל פינה ובמרכז כל צלע שלו, כפי שניתן לראות בתרשים 4.21. - תרשים 4.21: נקודות אחיזה לשינוי גודל מציינות בחירת פקד אחד או יותר פרק 4: שימוש בפקדי ברירת המחדל של 88566 |508\ - 125 הערה: ניתן לבחור מספר פקדים גם על ידי החזקת מקש !601 תוך כדי לחיצה על כל אחד מהם. אם דרוש לבחור קבוצת פקדים הנכללים בתוך מסגרת או תיבת תמונה, חייבים לפעול בשיטת |6₪ ולחיצה, כי טכניקת התיבה המקווקוות אינה פועלת במקרים אלה. ניתן להוסיף או להוריד פקדיס מקבוצה בלחיצה על הפקד תוך החזקת המקש או50 או [ס. ניתן להפעיל שיטה זו גס אס הבחירה הראשונית נעשתה בגרירה על ידי עכבר, כך שניתן לעדן את הבחירה ולהגיע בדיוק לאותס פקדיס איתם מתכווניס לעבוד. לאחר בחירת קבוצת הפקדים, ניתן להניע את הקבוצה כיחידה אחת, בלחיצה על אחד הפקדים מהקבוצה, וגרירת הקבוצה כולה. הפקדים שומרים תוך כדי ההזזה על מיקומם היחסי בתוך הקבוצה. ניתן גם לבצע פעולות עריכה, כמו מחיקה, גזירה, העתקה והדבקה, על הקבוצה כגוף אחד. השימוש בחלון המאפיינים בנוסף לאפשרות להזיז, לגזור, להעתיק, להדביק ולמחוק קבוצת פקדים, ניתן גס לעבוד עס מאפייניהם כקבוצה. למשל, אס רוציס לשנות את הגופן של קבוצת פקדי |1]806, בוחריסם פשוט את קבוצת הפקדים, וניגשיס למאפיין זחס= בחלון 65וז6ססזס. כשמשניס את המאפיין, מושפעיםס כל הפקדים שנבחרו. טכניקה זו שימושית כשרוציס לשנות מספר פקדים בבת אחת. למרות שברור ששיטה זו עובדת עס קבוצת פקדיס מאותו סוג (למשל קבוצת תוויות או קבוצת תיבות טקסט), נשאלת השאלה מה קורה כשהקבוצה כוללת פקדיס מסוגיס שונים. במקרה זה מציגה 8856 |%108 את המאפיינים המשותפים לכל הפקדיס בקבוצה. בדרך כלל נכלליס שס המאפיינים קסד, 160%, %ח0ו₪6, הססו/ע, זחס=, זסוס66זס=, 86, 80!66חם. רק המאפייניס המשותפים לכל הפקדים ניתניסם לעריכה. אולס, יכולת זו שימושית אם רוצים ליישר קבוצת פקדים לשמאל הטופס או בראשו. לשם כך יש פשוט לבחור את הקבוצה, ולקבוע את המאפיין 16 (או קסד) שלה. תרשיס 4.22 מראה קבוצה נבחרת של פקדים שונים ואת החלון 0067065זק המכיל את המאפייניס המשותפים. [ 08 | טחמ 1-30 שוחה זםסקקה | או 500 שטיוד ח0ו5%51050ספנו=| וחמו - 0 "ד "חן ה בהי זחס"ן ור 0 סטאפטחססוסן 0 6 - 0 = ז6וחוסקס9פנוסוין פחסא - 0 = 6מסויקסזסם וסן 6 | 55)סדותטהן פד מסטפסב זן שטוזד שוסופוון 0 סזופשחד5זח!אן 14 חזטואון תרשים 4.22: ניתן לשנות כקבוצה מאפיינים המשותפים לפקדים שונים בד או 06005 086 סנה 5 5]5675חזנזסה, .5)חפ/ס 18:60חפ0591-0 ס6 חסק5סז חמ 6 סדנת לימוד 6.0 8\ סרגל הכלים ז0זו0= וחיוס-] עריכת מאפיינים משותפים אינה הדרך היחידה לעבודה עס קבוצת פקדים. ניתן גס לעבוד עס סרגל הכליס 5400 וחיזס" (ראה תרשים 4.23). ניגשים אליו על ידי בחירת צוסו/\, 5ז8פ|סס ד, זסטו0= וחזס=. טבלה 4.2 מציגה ומסבירה את לחצני סרגל הכלים : ₪3 זסזוט = וחזס- = - = | ג" 4" תרשים 4.23: זסזו0ם חזזס= הופך יישור פקדים וקביעת גודלם לפעולה פשוטה טבלה 4.2: לחצני סרגל הכלים זבּפו|ססד +חסזה סל פַחוזפ | מעביר את הפקד הנבחר לתצוגה לפני הפקדים האחרים בטופס 6% 0+ 560 | מעביר את הפקד הנבחר אל מאחורי הפקדים האחרים בטופס קרוב לוודאי שיוסתר על ידם 6 5876 366 | משנה ומתאים גודל קבוצת פקדים ו0חס6 106% | מונע הזזת פקדים או שינוי גודלם על ידי העכבר (ניתן עדיין 65 | לשנות את הפקדים דרך חלון 65ז6ססזק בשימוש בסרגל הכליס זטו0ם וחזס= ניתן לטפל במיקוס ובגודל קבוצת פקדים. לחצן חטָוו מאפשר יישור קבוצת פקדים לפי ימין, שמאל, בראש הטופס או בתחתיתו. למרות שיישור לשמאל או למעלה מתבצע ישירות על ידי קביעת המאפיין 16% והמאפיין קסד, אין אפשרות לבצע ישירות יישור לימין או לתחתית. הלחצן חפו|א מאפשר גס מרכוז אנכי או אופקי של הפקדים. לא ניתן לבצע שינוי וה ישירות דרך המאפייניס. לבחירת סוג היישור המבוקש, לוחצים על לחצן הת לימין הלחצן חפו|ג. פעולה זו גורמת להצגת תפריט, ממנו ניתן לבחור את היישור המבוקש. ניתן גם ליישר את הפקדיס הנבחריס לפי הרשת. יישור לפי שיטה זו גורס לפינה השמאלית העליונה של כל פקד לזוז ולהיצמד לנקודת הרשת הקרובה אליו. משימה אחרת שדרשה עבודה רבה בגרסאות מוקדמות של 8856 |1508\ היא מרכוז פקדיס על טופס. גסם משימה זו הופכת לפשוטה בשימוש בסרגל הכלים זסטו0ם חחזסם. ליד הלחצן ח8ו|8 מופיע לחצן ז%6ח66. לחצן ה מאפשר למרכז את הפקדים אופקית או אנכית בטופס. הקבוצה ממורכות כולה כאילו היתה פקד אחד בטופס, ומיקומו היחסי של כל פקד בקבוצה נשאר ללא שינוי. כמו ביישור, גס במרכוז בוחריס את האופציה הרצויה מתוך תפריט המשנה המופיע עס הלחיצה על התא שליד הלחצן ז%6ח66. פרק 4: שימוש בפקדי ברירת המחדל של 88566 |ש\ - 127 הלחצן 5126 5806 10866 מאפשר להשוות גובה ו/או רוחב של כל הפקדיס בקבוצה. למרות שניתן לבצע זאת על ידי קביעת המאפיינים המתאימים, זסטוס0ם חזזס" מפשט את הפעולה. תרשים 4.24 מראה קבוצת פקדים המוגדלים באופן שווה וממורכזיס אופקית. תרשים 4.24: סרגל הכלים זסזו0ם וחזס] מקל על מרכוז פקדים ושינוי גודלם טיפ: אם לחצת על הלחצן הלא נכון בסרגל כלים זסזו0ם וחזס", ניתן לבטל את השינוי בלחיצה על הלחצן סח בסרגל הכלים הסטנדרטי, או בהקשת 2+!שס. תפריט זבּוחיוס=] תפריט *הוחזס" של 8856 |1508/\ שימושי גס הוא בעבודה עס פקדים. תפריט זה מכיל, בנוסף לכל האפשרויות הכלולות בסרגל הכלים זסטו0ם וחזס=, שלוש אפשרויות נוספות לעבודה עס פקדיס מרוביס: 8חו5086 |חס2וזסה, 50860 668 ,/‏ 70 0 526. (ראה תרשים 4.25). , חטוום ל 526 5306 6₪5בן] 6 60 6קו5 :1 * בַחו5080 |הפחסקוזוסרן + הַחו5030 |63זס/י + החזס= חו זה , זזס 8 תרשים 4.25: תפריט זהוחזס מציע כלים לכוונון עדין של פקדים 0 האופציה חַחו5080 |9זחס2זסו מאפשרת השוואת המרווחים בין הפקדים. השוואת מרווחיס מעניקה מראה נקי לקבוצות פקדים כגון לחצני פקודה. אס הפקדים נראיס קרובים מידי, ניתן לרווח אותם. המרווח גדל בנקודת רשת אחת. ניתן גם להקטין את המרווח או לסלקו לגמרי. ניתן לבצע את אותה פעולה גם בכיוון אנכי, על ידי בחירת 50860 |68ז\. תרשיס 4.26 מציג מראה 'לפנייי וייאחרייי של קבוצת לחצני פקודה. המראה ''אחרייי מציג אפקט של קביעת מרווחים שווים בין הלחצנים. 8 סדנת לימוד 6.0 8\ לפני 2 אחרי תרשים 4.26: מרווחים אופקיים שווים מעניקים הופעה מסודרת לקבוצת לחצנים הפריט האחרון בתפריט זאחזס"] הוא 078 60 5126. בחירת אפשרות זו קובעת את המאפייניס 600% ו-610 של כל פקד נבחר, כך שיותאמו בדיוק למרווחי הרשת. מספר פקדים במסגרת כעת נלמד איך לבחור מספר פקדים מטופס, איך לפעול עם מאפייניהס המשותפים, או כיצד לטפל במשימות של יישור פקדיס וקביעת גודלס. באותה גישה ניתן לטפל גס בפקדיס בתוך מסגרת. ההבדל היחיד הוא בדרך שבה נבחרים הפקדים. כדי לבחור פקדים דרוש ראשית ללחוץ על הטופס כדי לבטל כל בחירה קודמת. לאחר מכן גורריס את העכבר מסביב לפקדים שבמסגרת, תוך החזקת מקש |שס. פעולה זו גורמת לבחירת קבוצת הפקדים. ניתן עדייו לבחור או לבטל בחירת פקדיס אחרים על ידי לחיצה על הפקד תוך החזקת מקש |שס. הערה: כשבוחרים קבוצת פקדים, כולם חייבים להיות או בתוך מכולה או מחוץ לה. כמו כן, בחירת פקדים איננה יכולה לגשר בין מכולות. לאחר בחירת מספר פקדים, ניתן לעבוד עס מאפייניהס המשותפים, או להשתמש בפקודות תפריט )8חוזסז לשס קביעת מיקוס הפקדים וגודלם. ם אזהרה: הפריט ז00ח66 בפקודה וחזס"] של התפריט זאחזס] ממרכזת את הפקדים בטופס ולא במסגרת. התוצאה המתקבלת עלולה להיות שונה מן המבוקש. עבודה עם אוסף הפקדים עד עכשיו נדון הטיפול באוסף פקדיס בסביבת תכנות. אך מה המצב בזמן הרצת התוכנית! כפי שכבר נאמר, ניתן לשנות לכל פקד את שס הפקד, שמות מאפייניס וערכם. אך האס חייביס לקבוע ערך כל פקד בקבוצה בנפרד! לא! כל טופס כולל אוסף (חס60|!6600) הנקרא אוסף פקדים (פ!|סשחס6). אוסף זה מזהה כל פקד על הטופס. בשימוש באוסף זה ובצורה מיוחדת של לולאת זס=, ניתן לשנות מאפיין מסויס של כל פקד בטופס. פרק 4: שימוש בפקדי ברירת המחדל של ₪856 |הטפו\ | 129 | ו שינוי כל הפקדים כדוגמה לשינוי פקדיס נניח שרוציס לאפשר למשתמש לבחור את הגופן שבו ישתמשו כל הפקדיםס בטופס. הניסיון לקבוע כל טופס דרך קוד עלול להיות מסובך. אולס, בשימוש בלולאת 5860 זס" ניתן לשנות גופן של כל פקד בטופס בעזרת שלוש שורות קוד בלבד: 1.5 וס 1 [סישחס6 ה686 זס- "03 צ\6\] 65חוד" = %חס=ח.!0חס6 |סח0ס6 )16% ש אזהרה: קוד זה יפעל רק אם כל הפקדים בטופס תומכים במאפיין וחס". לכמה פקדים, למשל הפקד זפוחוד, לא קיים מאפיין כזה. שינוי פקדים נבחרים מה קורה כשרוצים לקבוע מאפיינים שאינס נתמכים על ידי כל פקדי הטופס? נניח למשל שרוציס לשנות צבע טקסט של הפקדים. ללחצן הפקודה אין מאפיין זס|660זס=, למרות שבסוגי פקדיס אחריס הוא קיים. במקרים כאלה משתמשיס משפט קוד אחר: משפט )60מץד. משפט זה מאפשר לקבוע מה סוגו של כל אובייקט. באופן כזה ניתן לבנות שיגרה המשנה את המאפיין זס|600זס] של כל הפקדים שאינס לחצני פקודה : 5 .וס הז [ס0חס6 ₪86 זס= הסח ד החור 60 15 [סישחס6 ]60קץד סא 1 = = זס|660זסת.!ס0חס6 + 0חם 000 %א6)] מכאן... פרק זה הציג בפני הקורא את עולס הטפסים והפקדים. נלמד בו כיצד לשלוט בהופעת הטפסים והפקדים דרך המאפיינים שלהם, וכיצד להשתמש בשיטות לביצוע משימות. כמו כן הודגמו דרכי העבודה עס מספר פקדיס בסביבת תכנות ובתוכניות. מידע נוסף בנושאיס שנדונו בפרק ניתן למצוא במקומות הבאיס: <* ללימוד על פקדים נוספים, ראה פרק 6 שליטה נוספת למשתמש: תפריטים וסרגלי כלים, וכן פרק 12 הפקדים המשותפים של 6)ספסיסווז. > ללימוד על השימוש בפקדים במערך, ראה פרק 13 עבודה עם מערכי פקדים. > כדי לגלות איך לסדר פקדים באופן נעים לעין, וכן ללימוד על כמה פקדים הקשוריס לגרפיקה, ראה פרק 19 שימוש במרכיבי התכנון הוויזואלי. 0 סדנת לימוד 6.0 8\ חלק 2 תכנות ב- 83516 |בּט5ו1 ]וז 6 פרק 5: תגובה באמצעות שגרות אירוע פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים 4 % פרק 7: שימוש בתיבות דו-שיח לקבלת מידע .% + פרק 8: שימוש במשתנים לאחסון מידע 0 פרק 9: יסודות התכנות ב- 83516 ובּ150 % % .; > פרק 10: שליטה במהלך התוכנית % +< פרק 1: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי מסמכים 11 5 תגובה באמצעות שגרות אירוע פרק 5: תגובה באמצעות שגרות אירוע | 133 עם הופעת מערכות הפעלה גרפיות מונחות-אובייקטים כגון פווססחוו\ ודומיה, השתנתה לחלוטין הדרך שבה המשתמשים תיקשרו עם תוכניות. עברו הימיס אשר בהס רצו תוכניות טקסטואליות מתחילתן ועד סופן כמעט ללא התערבות המשתמש. בעזרת פאוספחו/ו, יש לנו המפתחיס שליטה רחבה בפונקציות שאותן התוכנית אמורה למלא וכן הסדר שבו הפונקציות תתבצענה. אולס, למרות העובדה שתפיסה זו הפכה את התוכניות לקלות יותר למשתמש, צורת הכתיבה והפיתוח שלהן הפכה לקשה יותר. למפתח אין כיוס שליטה מלאה על מהלך התוכנית. מפתחיס בסביבה הפועלת על אירועים חייבים להכין את התוכנית למספר רב של פעולות אשר המשתמש אמור לבצע ובמקריס רביס יש צורך להגן על המשתמש מעצמו. יישומיס המבוססים על פשספחו\\ הינס, מאובייקט היותס פעילים בסביבת פאוסבחווצ, מבוססי אירועים. פירושו של דבר הוא שמהלך ריצת התוכנית מבוסס על האירועיס (פסחסעם) שקוריס בזמן ביצועה. כמו שנראה, רוב האירועים הנזכריס הינס תוצאה ישירה של פעולות המבוצעות על ידי המשתמש. אולסם, חלק מן האירועיס יבוצעו על ידי אובייקטיס אחרים כגון התוכנית עצמה. הערה: למרות שתוכניות מבוססות-אירועים היו קיימות עוד לפני הופעת פווסטחו/\ בשוק (תוכניות מקינטוש ואפילו כמה תוכניות 05כ), הופעת פשססחו)\ גרמה לסוג זה של תוכניות להיות שכיחות כיום. אירועים - מבוא צורת החשיבה של תוכניות מבוססות-אירועיס עלולה להיות חדשה לך, אולס הרעיון של תגובה לפי אירוע מסויס אמור להיות מוכר. רוב העולס יכול להיות מוגדר כפועל לפי אירועים. ניקח את הטלוויזיה כדוגמה. אנו יכוליסם לשנות את הערוצ מתי שנרצה, ובשימוש בשלטים הקיימיס כיוס ניתן גס לעבור לערוצ מסויס במקוס לעבור דרך סידרה של ערוצים כדי להגיע לערוצ המבוקש. בנוסף, ניתן לשנות את עוצמת השמע של הטלוויויה מתי שנרצה לעוצמה הרצויה לנו. נוכל גס להשתיק את השמע לגמרי על ידי לחיצה על לחצן ההשתקה. צורה זו של שליטה על איך ומתי דבריס יתרחשו מהווה דוגמה טובה לצורת תכנות מונחה-אירועים. אנו (משתמשי הטלוויזיה) יוצריס אירוע (על ידי לחיצה על לחצן) אשר גורס לטלוויוּיה לבצע פעולה המתאימה לאירוע שהתרחש. אנו שולטים גס בתזמון האירועיס. תוכניות המבוססות על פוססחוצ\ עובדות בצורה דומה. ב-6זס/\, למשל, ניתן לשנות את סוג הכתב או הסגנון של פיסקה מסוימת. ניתן גם לסמן מקטע מסוים ולגרור אותו למקוס אחר. כל אחת מפעולות אלו אפשרית תודות ליכולת התוכנה (טזסו\) להגיב בהתאם לאירועים המתרחשים כתוצאה מפעולות המשתמש. בומן כתיבת תוכניות המבוססות על פטוסשחו/\, נרצה לבנות אותן בהתאס למשימות אותן אמורות התוכניות לבצע. לכן, אנו צריכיסם לספק למשתמשים לחצנים או תפריטים אשר יאפשרו להס לבצע את המשימות הדרושות. תרשים 5.1 מציג דוגמה לממשק המיועד לתוכנית המבוססת על אירועים. 4 סדנת לימוד 6.0 8\ <ום)=. ה0ז563 1660160 .₪ אפשר לסגור את פחסופם 6 הטופס בלחיצה אחת סזח! הסו1ם וחזס!ח! 115 זפוחם ,פזסספז 8 זסז 50 סיד סז 50 אסווס טחם 35]פו1 858ה+1ס פזסוח זס חס אפשר לנווט את ב --| וחב א מבנה התפריט לבחור בפעולה 0 ]| 55% מסוימת | וו סקוו | וב | 590 תרשים 5.1: ממשק משתמש גרפי עובד יפה עם תכנות מונחה-אירועים בתקליטור: * הדוגמה נמצאת בתקליטור ונקראת ה6ז508 866070. יתרון נוסף של תוכניות המבוססות על אירועיס הוא שניתן להשתמש באירועיסם כדי לספק תגובה מיידית למשתמש. לדוגמה, ניתן לתכנת אירוע אשר יגרום לתוכנית לבדוק מידע אשר הוזן על ידי המשתמש ברגע שבו המשתמש סיים להצין אותו. במידה ויש בעיה עם המידע אשר הוזן על ידי המשתמש, הוא יקבל על כך התראה מיידית ותינתן לו האפשרות לתקן אותו. צורה זו של תגובה מטופלת באמצעות צורת תכנות כגון או המופיעה בתוכנית 5.1 אשר מוודאת שהמשתמש הזין את המידע המבוקש. אפשר להזין מידע לתיבת טקסט אפשר ללחוץ על לחצן פקודה כדי לבצע פעולה תוכנית 5.1: קם/.חס/עם - תוכנית הבודקת את שם המשפחה. ()056-0005.] סרח8\ז35 |זאט סנו5 סספעווק הסח "" = (6א6 ד.סרחהּ\ז35 זאטס )רוד + ".6החהּח 35%! זטסץ ז%ח6 6פטרח טסצ" = 5650 "סחוחזוה/\" , הסוטהרח3 !סא טפט ,550 אס00פ!ו 53.5 זא + 0חם טט5 0חם פרק 5: תגובה באמצעות שגרות אירוע | 135 טיפול באירועים בתוכניות בתוכנית טיפוסית יכוליס לקרות הרבה אירועיס המתרחשים כתוצאה מפעולות המשתמש. אירועיס הקשוריס לתוכנית יכוליס להתרחש כתוצאה מפעולות כגון לחיצת המשתמש על לחצן העכבר, הקשה על מקש במקלדת, הוות העכבר, שינוי הערך המופיע במאפיין הפקד, או מעבר לחלון אחר בתוכנית. התוכנית עצמה יכולה לגרוס לאירועיס להתרחש. אירועיס הקשורים למערכת ההפעלה יכולים גסם הס להתרחש כתוצאה מפונקציות של המערכת כגון השעון, או אפילו על ידי גורמיס חיצוניים כמו קבלת דואר אלקטרוני. מאות, אס לא אלפי, אירועיס יכוליס להתרחש בכל תוכנית נתונה. מבנה התוכנית צריך להיות כזה שיוכל לבודד את האירועיס הקשוריס לפעולת התוכנית. 8856 |1508/\ מקלה על המלאכה הזאת. קביעה מתי התרחש אירוע כאשר פווס0חו/\ מזאהה פעולה אשר התבצעה על ידי המשתמש והמכוונת לתוכנית שלנו, מערכת ההפעלה שולחת לתוכנית שלנו הודעה. מנגנון הריצה של 8856 |1508\ המוטמע בתוכנית, מעבד את ההודעה ואם יש צורך, גורס לאירוע המתאיס להתרחש. אס כתבנו שיגרה המטפלת בסוג האירוע האמור, מנגנון 8856 |1508/\. יפעיל את השיגרה האמורה. כל אובייקט בתוכנית המבוססת על 8856 |1508/\ יכול להפעיל קבוצה מסוימת של אירועיס לפי סוג האובייקט (חלון טקסט, טופס, לחצן, וכדומה). אולס, המפתת לטיפול נכון באירועים הינו לדעת בצורה מדויקת איוה שילוב של אובייקטיס ואירועיס נחוץ לתוכנית שלנו, וכן לכתוב את התוכנית לטיפול בשילוביס אלה. ניתן לעשות ואת על ידי יצירת שגרת אירוע (6זט60ססזק %השעם) בחלון הקוד (6006 אוס0חו/\). לדוגמה, אס נרצה לכתוב תוכנית אשר תתבצע כאשר לחצן בשס %וא665 נלחץ, נכתוב את שגרת האירוע א6116% ללחצן 1%א65וח6. ניתן לערוך את השיגרה על ידי פתיחת חלון קוד בטופס המכיל את 1%א665. |< ום]- [068:)] [חוזם] - 1ו66ןם:כן א | - 1% | - ו ()א6116 16אמבעס מגום שסהט1בעק המנעסם 25 585 מבכע "?שעסם5 וסץ שעג" = 3856 קוד עבור שגרת אירוע משמך כסצמט = (סתאתבשצמט ,5356) אספטסבח +1 הבמס 5 במם תרשים 5.2: 8856 |508ו\ תגיב לאירוע, רק אם נכתב עבורו קוד 6 סדנת לימוד 6.0 8\ בחלק יצירת התוכנית הראשונה מפרק 2, השתמשנו בתבניות מסוג חווססקסזס בראש חלון הקוד כדי לבחור בשגרת האירוע המבוקשת. האובייקט נבחר בחלק השמאלי העליון של החלון (אסם 0916%). שגרת האירוע הרצויה נבחרת בתיבה הימנית עליונה (א80 6ז0ו0660זק). כאשר השילוב בין האובייקט לאירוע מתרחש בזמן ריצת התוכנית ובהנחה שנכתב קטע תוכנית המיועד לטיפול באירוע זה, מנגנון 88586 |8טפו\ יריצ את קטע התוכנית המתאים. אס לא נכתב קטע תוכנית, 8856 1808 תתעלם מהאירוע. תרשים 5.2 מראה דוגמה לשגרת אירוע אשר נכתבה במיוחד לאובייקט מסויס ולאירוע מוגדר. סוגי אירועים ישנס שני סוגיס בסיסיים של אירועיס אשר יכוליס להתרחש בתוכנית המבוססת על 86 |1808: | אירועיס המתרחשים כתוצאה מפעולות המשתמש, ואירועיס המתרחשיס כתוצאה מפונקציה של המערכת. לרוב, נרצה לכתוב קטע קוד המטפל באירועיס אשר המשתמש גורס להם. בצורה זו תהיה למשתמש שליטה על מהלך ריצת התוכנית. ואת אומרת שהמשתמש יכול לבצע פעולה מסוימת כאשר הוא ירצה (בהתחשב במבנה התוכנית), דבר המקנה למשתמש שליטה רבה. הערה: מובן שניתן להגביל את הפעולות שהמשתמש יכול לבצע על ידי הסתרת או חסימת אובייקטים כאשר לא נרצה שלמשתמש תהיה גישה אליהם. הטכניקה תוסבר בפרק 3. ראה: שימוש במאפיינים לשליטה על התקשורת עם המשתמש. אירועים המתרחשים כתוצאה מפעולת המשתמש - אירועיס מסוג זה הינס אלה הקוריס כתוצאה מפעולה שנעשתה על ידי המשתמש. כמו שבוודאי ניחשת, אירועיס אלה כולליס הקשה על מקשי המקלדת ולחיצה על לחצני העכבר, אולס ישנס סוגיס נוספים של אירועים אשר יכוליס להתרחש כתוצאה מפעולת המשתמש בצורה ישירה או עקיפה. לדוגמה, כאשר המשתמש לוחץ על תיבת טקסט כדי לערוך את המידע הנמצא בתיבה, מתרחש אירוע 616% עבור תיבת הטקסט. בנוסף לכך, ישנס עוד סוגי אירועיס המתרחשים כתוצאה מהלחיצה. אחד מהאירועים הללו הינו 606-0005 המתרחש עבור תיבת הטקסט. אירוע וה מתרחש בכל פעס שהסמן נמצא באזור התיבה בין אם נלחץ לחצן העכבר או בשימוש במקש 118. בנוסף, כאשר תיבת הטקסט נמצאת בפוקוס, אובייקט אחר חייב לאבד את הפוקוס. פעולה זו גורמת לאירוע 1050-0605 להתרחש עבור האובייקט השני. אירועים 604:0605 ו-1050-0005 מתרחשים כתוצאה מפעולות המשתמש, בדיוק כמו האירוע 66ו61. כמו שנראה בחלק הבא הבנת סדר האירועים, ישנס מצביס שבהס קורה ריבוי אירועיסם כאשר המשתמש מבצע פעולה בודדת. בנוסף, חשוב להבין את הסדר שבו קורים האירועים. פרק 5: תגובה באמצעות שגרות אירוע | 137 הרשימה הבאה מכילה חלק מהפעולות הראשיות שעל ידן המשתמש יכול לגרוס לאירועים להתקייס בתוכנית : <* | הפעלת התוכנית. > הקשה על מקש. * לחיצה על לחצן העכבר. * הזות העכבר. > סגירת התוכנית. איוועים המתרחשים כתוצאה מפעולת המערכת - למרות העובדה שמסמכים ואובייקטיס מסוגליס לטפל בסוגיס רביס של אירועים, לרבים מהאובייקטיס ישנס אירועים אפשרייס משותפים, כפי שניתן לראות בטבלה 5.1. טבלה 5.1: אירועים אופייניים לאובייקטים רבים | 699 אבמתקטמאנמקה ה 05 | אובייקט נמצא בפוקוס. בוודאי שמת לב שכמה מהאירועים נראיס כאילו הס מתייחסים לאותה פעולה של המשתמש. לדוגמה, האירועים א6|6, חשוסס6פטסוז ו-60פטסו קוריס כאשר המשתמש לוחץ על לחצן העכבר. למראית עין כמה מההבדלים באירועיס הינס מובניס מאליהס, לדוגמה אירוע חשסס6פטסו מתרחש כאשר לותחצים על לחצן העכבר, אכן ישנס הבדליס בין האירועיס. במקרה של לחיצה על לחצן העכבר, אירוע 616% במסגרת 8 סדנת לימוד 6.0 8\ הפקדים א15%00%] ,80% 60666 ,הסט 0חהה 60 או הסט הסקס מתרחש אם נלתצ לחצן כלשהו בעכבר. האירוע אינו מתרחש במקרה שנלח לחצן אחר. האירועיס 56(0טסו ו-חשסס6פטסוא לא רק מתייחסים לכל לחצן עכבר שהוא, אלא שהאירוע מסוגל גם לדווח איזה לחצן נלחצ, כך שהתוכנית תוכל להגיב בהתאס. האירועיס 655זקץ6א ,חצוססץ6א ו-0ק0ץ6א פועלים בצורה דומה. האירוע 66/0655 מדווח איה מקש הוקש בלבד ללא דיווח אס הוקש מקש אחר כגון אוח5 או 61 בזמן ההקשה על המקש המדוות. אס יש צורך במידע האמור, יש להשתמש באירועיס האחריס. כתיבת שגרות מונחות-אירועים ובכן, כיצד נוכל לכתוב את התוכנית בסביבה מונחית אירועים! וכיצד ניתן לנפות את האירועיס שאיננו מעונייניס להתייחס אליהס! התשובה לשתי השאלות והה. כאשר כותבים את התוכנית, אנו כותבים שגרות המופעלות רק בתנאי שהתרתש אירוע מסוים באובייקט המתאים לשיגרה. כאשר אין שיגרה המיועדת לשילוב של אירוע ואובייקט מסוימיס, 8856 |509\ תתעלס מהאירוע. השאלה הבאה היא כיצד לכתוב שיגרה המיועדת לאירוע מסוים: כדי שנוכל לכתוב את התוכנית, יש צורך להגיע לחלון הקוד (עוססחוושו 6006). דבר זה נעשה על ידי לחיצה כפולה על אובייקט בטופס התוכנית (או על הטופס עצמו), על ידי בחירה באפשרות ש6ו% 6006 בחלון הפרויקט, בלחיצה על תפריט שסוצ ובחירה באפשרות 6006, או על ידי הקשה על 7:. כל אחת מהאפשרויות הנזכרות מציגה את חלון הקוד המתאיסם לטופס הנוכחי (ראה תרשים 5.3). |< ום]-. [068:)] [חוזם] - 1ו66ןם:<ן א ו מממ כותרת תת-השיגרה, כוללת ()א6116 ב₪ע3063ע0 כגום שסהט1במק את שם השיגרה מגום המת פקודת סוף השיגרה תרשים 5.3: לחיצה כפולה על טופס או פקד במצב עיצוב מציגה את חלון הקוד, מוכן לשגרת האירוע המתאימה פרק 5: תגובה באמצעות שגרות אירוע | 139 לכתיבת תוכנית דוגמה, בצע את המהלכיס הבאים: 1. הפעל את 83516 |בּטפו/ ובחר פרויקט סטנדרטי מסוג 5אם. 2 לחצ לחיצה כפולה על הטופס כדי לפתוח את חלון הקוד. אס לטופס אין עדיין תוכניות, החלון ייפתח בשיגרה המקושרת לאירוע 1080. 3 בחר באירוע 6ע₪561!10ש10 מתוך תיבת השגרות. הערה: שים לב שכאשר אנו בוחרים באירוע, ‏ 8856 |%1508 בונה את שלד השיגרה המיוחסת לו בצורה אוטומטית. החלקים אשר מופיעים בשיגרה הם שם השיגרה ופקודת טפ ₪0 אשר מצהירה על סוף השיגרה. שס השיגרה המתייחסת לאירוע מסויס מכיל שס אובייקט ושס אירוע. בדוגמה, האובייקט הוא חזס] והאירוע 6שסוזספטסו. שיס לב ששגרת האירוע 6שסו\ספסו₪ז מכילה בנוסף כמה משתנים. לדוגמה, המשתנים א ו-ץ מייצגיס את מיקוס העכבר. כעת תוכל לכתוב פקודות המסוגלות להגיב ככל שנרצה על אירוע שהתרחש. הוסף את השורות הבאות לשגרת האירוע: "(" 8 צ 8 "," 8 א 8 ") סז 5ססהחוסזסס60 שפוסו]" = חססקה6.68וו שגרת האירוע אמורה להיראות כזו: ,510016 5 א ,06067ח1 5 51% ,1006067 5 הסטם )6עסו6פסוי] וחזס= סטש סספטווק (96ַחו5 ₪5 ץצ "(" 8 צ 8 "," 8 % 8 ") זב 5סופחוזסס6 6פטסו]" = חסק6.68וו 5 0ח= הפקודות אשר הוקלדו לשיגרה מציגות את ערכי המשתנים א ו-צ בשורת הכותרת של הטופס על ידי קביעת המאפיין ח00ק63 של הטופס. לח על לחצן ההרצה של 6 |אטפו\ או הקש 5=, והעבר את סמן העכבר מעל לחלון. כותרת החלון אמורה להשתנות כתוצאה מתזוזת העכבר. טיפ: אם נלחץ לחיצה כפולה על אובייקט, חלון הקוד שייפתח יציג את האירוע השכיח ביותר לאותו אובייקט. לדוגמה, אם נלחץ לחיצה כפולה על לחצן פקודה במצב עיצוב, חלון הקוד יציג את שגרת 01666 של הלחצן. 0 סדנת לימוד 6.0 8\ קריאה לשגרת קוד מתוך התוכנית בתהליך למידת שפת התכנות, נצטרך לכתוב ולקרוא לשגרות רבות. שגרות מבוססות אירועיס יוצאות דופן בכך שהן מופעלות על ידי מנגנון 8856 |1503/ בעצמו. בדוגמת 6ס56וס בחלק הקודם, המנגנון הפעיל את הפקודה שכתבת בתגובה לאירוע שהתרחש, אולס כדאי לציין שתוכל להפעיל שגרות מבוססות אירועיס בעצמך, בדיוק כמו כל שיגרה אחרת. תרצה לעשות את כאשר תכתוב תוכנית בתוך שגרת אירוע אשר אמורה להיות מופעלת במקומות נוספים. הבה נדגים. אס חלון הפרויקט הקודס עדיין פתוח, חזור למצב עיצוב והצב לחצן פקודה בטופס. לח לחיצה כפולה על הלחצן ושנה את שגרת האירוע כך שתציג את התאריך והשעה הנוכתיים : ()א6ו6 1 חהררח0ס6 ס)5 סזבּעוזוק צוס\ .8 " 15 סחחוט וח5/506 שחד" א80 150 50 0חם השורה שהוספת קלה להבנה. היא מציגה חלון הודעה כאשר לוחציס על הלחצן 1 60. בנוסף, ניתן להפעיל את השיגרה א0|6 8001 וחס6 מחלקים אחרים של התוכנית, ואפילו מתוך שגרת אירוע אחרת. לחצ לחיצה כפולה על הטופס, ובחר את אירוע 016% מתוך תיבת השגרות. שנה את שגרת 6166 וח זס"] כך שתקרא לשגרת 0166 01ח8חו 60: ()א6ו01. וחזזס=] 50 6זבּעווק 601 50 0ח= הרץ את התוכנית ושיס לב לכך שברגע שתלת) על הטופס, מופיע אותו חלון ההודעה אשר מופיע כאשר תלחצ על לחצן הפקודה. הערה: אם שגרת האירוע שאנו קוראים לה דורשת ערכי משתנים, כמו בדוגמה בשגרת 6סו56טסו, יש לספק אותם כאשר קוראים לשיגרה. בכל מקרה כשלפונקציה מוסיפים סוגריים היא אמורה להחזיר ערך. פרק 5: תגובה באמצעות שגרות אירוע | 141 הבנת סדר האירועים כעת אתה יודע מהס אירועים וכיצד מנגנון 8856 |1508/\ מטפל בהם. ראית כיצד לכתוב פקודות המופעלות כאשר אירוע מתרחש, אבל עליך לצלול קצת יותר פנימה לתוך העולס המופעל על ידי אירועים. כפי שכבר למדת, פעולת משתמש יחידה או אירוע הקשור במערכת, מסוגלים להפעיל סדרת אירועים. דבר זה יכול להועיל מפני שתוכל להשתמש באירועים שוניס אלה כדי לטפל במצבים שונים, כמו במקרי חשססספטסא ו-616%. אולס בנוסף, יש לכך גם צד שלילי. אס תכתוב קוד יחיד למספר אירועיס אפשריים, קוד זה עלול לפעול בצורה שלא תרצה שיפעל. במקרה הגרוע, רצף אירועיס - כל אירוע והשיגרה שלו - עלוליס לגרוס למערכת להיכנס ללולאת תוכנה אינסופית. הצעדיס הבאיס מהוויס נקיטת צעדיםס המיועדיס למנוע בעיות אלה: + ויהוי האפשרות שמספר אירועים יתרחשו. >* ויהוי איוה אירועיס יתרחשו כאשר המשתמש מבצע פעולה מסוימת. + הבנת סדר התרחשות האירועים. + בדיקת הקשר בין אירועים שוניס העלולים לפעול בו ומנית. בחלקים הבאיס נבדוק נושאים שיש לשים אליהס לב בזמן כתיבת שגרות אירוע ב- 88516 |508!/. ריבוי אירועים בפעולה יחידה אחת הבעיות בטיפול בריבוי אירועיס היא שהמשתמש יכול לתקשר עס התוכנית בהרבה צורות. לדוגמה, האם הוא הגיע לתיבת הטקסט בעזרת העכבר או בעזרת מקש 8 לפני התנועה לתיבה, האס היה פוקוס על תיבת טקסט אחרת או על לחצן פקודה! ומה קורה כאשר עובריס מטופס אחד למשנהו! כפי שתראה, ריבוי האפשרויות עלול לגרוס לבלבול. לעומת ואת, החדשות הטובות הן שלא תכתוב קוד לרוב צירופי האירועיס/ אובייקטים. לכן, למרות העובדה שהאירועיס הנוכריס עלוליס לקרות, התוכנית שתכתוב תתעלס מהם ולפיכך הס לא יצרו שוס בעיה. למרות העובדה שאי כתיבת הקוד המיותר הופכת את מלאכת הטיפול בריבוי אירועיס לפשוטה יותר, צריך עדיין לבצע עבודה מסוימת. כדי לטפל במצב זה, הבה ונסתכל על כמה סדרות אירועיס אשר קורות כאשר המשתמש מבצע פעולה. קח בחשבון, לדוגמה, את תיבת הדו-שיח המיועדת לכניסת המשתמש ל-פווספחו)\. אס נתאר לנו שתיבה זו נכתבה ב- 8856 |508/, אזי שבזמן הקלדת שס המשתמש והסיסמה קוריס כמה אירועיס. קודס כל, הבה נבחן הקשת מקש בודדת. לכל תו שנקליד בשס המשתמש מתרחשים שלושה אירועים : חוו\6/00א ,655זקץ6א ו-ק0ץ6א (בסדר זה). כאשר אנו מזיזים את 2 סדנת לימוד 6.0 8\ הסמן משדה שס המשתמש אל שדה הסיסמה, אנו מעביריס את הפוקוס מאובייקט אחד למשנהו, כך שמתרחשים שני אירועים: 1056-0005 עבור האובייקט הנוכחי, ו-0605-00% עבור האובייקט החדש. לבסוף, כאשר לוחציס על לחצן 0%, לחיצת העכבר הפשוטה יוצרת שלושה אירועים: כק56טס1, חצו600פטסו ו-*6ו01. אס נלחצ לחיצה כפולה על אובייקט אחר, כגון הטופס, יווצרו שני אירועיס נוספיס לאחר האירוע 66ו01: 66ו|6!פ ו-קספטסוא נוסף. סך הכל יש כבר חמישה אירועיס הקשוריס למה שנראה כפעולה יחידה של המשתמש. בנוסף, אס לחיצת העכבר גורמת לפוקוס לעבור מאובייקט אחד לשני, מתרחשים גסם אירועיס 5 |(|(-06005-60%, סך הכל שבעה אירועים. העובדה שניתן לבצע פעולות שונות כדי להגיע לאותה מטרה מהווה בעיה נוספת. לדוגמה, בואו נבחן את הלחצן 0% בתיבת זיהוי המשתמש של פווססחו/). האס ידעת שניתן להפעיל אותו על ידי לחיצה על העכבר וגם על ידי מעבר אליו עס מקש טפדך והקשה על מקש הרוותח! השימוש בעכבר לביצוע המשימה מפעיל את שגרות ח\600פטס\!, כ(ו6פטסוא ו-6ו61, בעוד ששימוש במקלדת מפעיל את שגרות חשססץעסא, 5 כוץ6א ולבסוף את שגרת א6ו01. תהליך מבלבל, הלא כן? ואולס, ניתן לדעת איוה אירועיס יקרו בומן ריצת התוכנית ובאיוה סדר הס יקרו. מציאת סדר התרחשות האירועים המפתח להבנת מהות האירועיס הינו הידיעה מתי הס קורים. אס מידע זה מעורפל עדיין, נסה את הדוגמה הבאה. בדוגמה זו, תיצור תוכנית הבודקת אירועיס הקשוריס בטופס ומפעילה את שגרות האירועים המתרחשיס כדי לדעת מה סדר התרחשותם. ניתן גס לצפות בסוג הקוד שתרצה לשלב בכל אחת משגרות האירועים הבאות: יצירת תוכנית דוגמה המטפלת באיוועים הקשורוים לטופס. יש חמישה אירועיס מיוחדיס לכל טופס, ותוכל לשלב קוד תוכנית בשגרות האירועיס של כל אחד מהם: + 1080. מתרחש כאשר הטופס מועלה לציכרון. + 8%6ש8601. מתרחש כאשר הטופס מוצג לראשונה, או כאשר המשתמש חוזר אליו מטופס אחר. + 2686%1/806. מתרחש כאשר המשתמש עובר לטופס אחר או כאשר הטופס נסתר. + 0806!/. מתרחש כאשר הטופס מוסר מהציכרון. + 101₪8]26. מתרחש כאשר נוצר עותק של הטופס. + 67₪1]8806ד. מתרחש כאשר עותק של הטופס נמחק. תוכנית הדוגמה פשוטה מאוד. יש בה שני טפסיס בלבד ללא אובייקטים. כדי ליצור אותה, בצע את הפעולות הבאות: 1 פתח את 83516 וּשפו/ וצור פרויקט רגיל מסוג םאם. 2 לח לחיצה כפולה על 1וחזזס" כדי להציג את חלון הקוד שלו. פרק 5: תגובה באמצעות שגרות אירוע | 143 3 ודא ששגרת 1086 נבחרה בתיבת האירועיס בחלק הימני-עליון של חלון הקוד. 4 הקלד את הפקודה "00607766 +חסשעם 1030 וח'זס-] 6חד" 80% 50וא לתוך שגרת האירוע. השיגרה אמורה להיראות כך: ()080 1 הזוס ס5 סזפּעוזוק "0600 +חשע= 1.080 וחזס=] שד" אס 50 ספ 0חם 5 חזור על שלבים 3 ו-4 כדי להציב פקודות א815480 דומות בשגרות 26ו!₪3וח1 ו-030!ח! 61זהּחווחזזסד. 6. הוסף טופס שני בשס 2וחזס= לפרויקט על ידי בחירת האפשרות 864 מתוך תפריט 6₪ן[סיוץ. כעת, כשהפרויקט מוכן, הקש 55 כדי להריץ אותו. שיס לב ששגרת 6קַו0וח1 מופיעה בהתחלה, ואחריה שגרת 1080. לחץ על לחצן הסגירה של הטופס, וצפה בהפעלת שגרות 46 ו-6זהחווחז ד לפני שהתוכנית מפסיקה לפעול. בדיקת אירועי התוכנית. כעת הרצ את התוכנית מחדש ולח אישור להודעות 26ו|8שוח1 ו-1]080, לאחר שהטופס עולה הקש 6₪1+87686 כדי להשהות את המשך הריצה. הקש 66 כדי להביא את החלון המיידי (601816וחוח1). הצב את הסמן בחלון זה והקלד את השורות הבאות (הקש 8 דא= לאחר כל שורה) תוך שימת לב להודעות המופיעות : 2חוס= 080 1 1חזס= הסוח( 1וזס= 10806 אנו מעליס את 2חזזסז כדי למנוע מהתוכנית להסתייס כאשר מסיריסם את 1חזס". שים לב לכך שאירוע 26ו|108ח1 לא התרחש כאשר 1חזס" עלה בפעס השנייה. כעת הקלד את השורות הבאות: 1חזסת 0פסוח(\ פחורטס\ = 1 וזס= 56% קביעת ערך הטופס ל-פחוחזס\ הינה הרגל טוב. בצורה זו ניתן להבטיח שכל המשאביס אשר הוקצו לטופס שוחררו בצורה נאותה. כעת הקלד את השורה הבאה: 1חזס= 1080 אירוע 8|26וח1 התרחש בשנית מפני שהעותק הקודס של 1חזס" אשר יצרת לפני כן נמחק כאשר קבעת אותו כ-פַחותזסאא. שימוש באירועי טופס. ניתן להשתמש בקוד תוכנית באירועים אלה כדי להגדיר את מאפייני הטופס או אחד מהאובייקטים שלו, הגדרת בסיסי נתונים או מסדי מידע הדרושים לטופס, או הפעלת קוד אחר שתרצה בו. האירועיס 1080 ו-080וח(! מתרחשים כל אחד רק פעס אחת במשך זמן החיים של טופס - כאשר הטופס נטען לזיכרון וכאשר 4 סדנת לימוד 6.0 8\ הוא מוסר ממנו, בסדר זה. מצד שני, האירועים 86צ460 ו-6ְ8ש6860 יכוליס להתרחש פעמיםס רבות. לכן, יש צורך בקביעה והירה של קטעי הקוד בשגרות המתאימות. קטע הקוד הבא מציג כמה דברים פשוטים אך שימושיים שאפשר לעשות עס קוד בשגרת 1080. שימוש נפוץ הוא לאתחל ערכי מאפיינים של אובייקטיס בטופס (או את מאפייני הטופס עצמו). תוכנית 5.2 מדגימה כיצד להגדיר את השדה חס0ק68 של הטופס בעת טעינת הטופס, כדי להציג את שס המשתמש הנוכחי (שאנו מניחים שהוזן לפני כן במקוס אחר בתוכנית ונשמר במשתנה מחרוזת בשס ₪6ח5056788). בנוסף, תראה כיצד להגדיר את שדה 6%ד של תיבת טקסט כך שתכיל את התאריך הנוכחי. תוכנית 5.2: ד080.1% 1656 - שימוש בשגרת 1080 לצורך הגדרת מאפיינים. ()1.080 הזוס 50 סזבּעוזוק 510506 ₪ " זס1 5 6פחסכאם" = ח00ק6.68ו! 6 = 66 ].6ז08ט 50 0חם שימושים נפוציס אחריס בשיגרה 1080 כוללים יצירת חיבורים למידע השמור במאגרי מידע, אתחול משתניסם ומיקום הטופס בצורה יחסית לטפסים אחריס בתוכנה אשר ייפתחו לאחר מכן. שגרת אירוע שימושית נוספת הקשורה לטפסים הינה השיגרה ₪6526. היא מופעלת בומן שגודל הטופס משתנה, בין אם על ידי המשתמש או על ידי התוכנית. האירוע מתרחש גם לאחר אירוע 1080 ולפני אירוע 460866. לרוב משתמשים בשגרת ₪656 כדי לשנות את גודל האובייקטיס בטופס. בצורה זו נוצר למשתמש יותר מקוס לעבוד בו כאשר שטח הטופס גדל ומונע ממידע חיוני לחיעלם מהעין כאשר שטחו קטן. תוכנית 5.3 מראה כיצד גודל רשת הרקע בטופס (0ו61) משתנה, כאשר גודל הטופס משתנה. בנוסף, התוכנית בודקת את המאפייןו ₪86פוססחו/\ של הטופס ואינה מבצעת את הפעולה כאשר הטופס במצב ממוזער. תוכנית 5.3: ₪0526.7%1 - שינוי גודל ומיקום אובייקטים כאשר גודל הטופס משתנה. חח ד 65126 שס!|, 0חג/ |260ורהוחו!]פע <> 5%866/וססחו/\\. 6 + 0 -- 00ו/\16.568!6] = 100/. 050105 0 0 - 00 000650/5.7 - 16.5681676100%] = 161006 505 טס + 0חם הצעד הראשון בקביעת פעולת השיגרה הינו מיפוי סדר התרחשות האירועים בתוכנית. נוכל לכתוב תוכנית פשוטה כדי לתרגל מצביס שבהס מתרחשים אירועים. בתחילה ניצור פרויקט חדש סטנדרטי מסוג 5א5 ונמקס עליו א690א6ד ולחצן. אחר נכניס פקודות מתאימות לשגרות האובייקט והטופס כדי לדעת מתי מתרחש אירוע. הדרך הפשוטה לעשות ואת היא להשתמש בפקודת שחוזק. 0600 אשר גורמת להופעת טקסט בחלון 6018%6ח1. הוסף את פקודת זחוזק. 06000 לשגרות האירוע בתיבת הטקסט. פרק 5: תגובה באמצעות שגרות אירוע | 145 ()06ו|6 661 ד סט5 6אפעווק "זחשעם >6ו61 661 ד" +חוזק. פטוסטס סט5 0חם ()600-0005 601 ך ס5 6אפץווק "חש 0605 0% 61 ד" זחוזק. פטופטס סט5 0חם (10500061 45 |ו50ץ66 )655 46 601 ד סט5 סספעווק "+ח6/= 655 66 1+א6 ד" לחוזק. פטוספטס סט5 0חם בפעמים שתשתמש בשיטת קבלת מידע כזו, יש חשיבות עצומה להבנת סדר התרחשות האירועיס. ברגע שתבין כי פעולה בודדת של משתמש יכולה להוביל להתרחשות מספר אירועים, תוכל להשתמש בידע זה כדי לתכנן את הקוד שתרצה לכתוב לכל שיגרה. לדוגמה, ניתן להשתמש בשיגרה הראשונה המתבצעת בתיבת טקסט, כאשר המשתמש מקליד אות בומן שהתיבה נמצאת בפוקוס, חושססעסא, כדי לדעת אס המשתמש הקיש על מקש |6₪. בדרך זו ניתן לדעת בתוכנית אס התבצעה פעולה מיוחדת כגון פתיחת רשומה חדשה או שמירת מידע הקשור לאתחול התוכנית. בכל אחד מהמקרים, תיאלצ לבדוק את התוכנית בצורה יסודית תוך התחשבות במיגוון רב של מהלכיס אפשרייס באובייקטיס, כדי לוודא שלא יתרחשו מהלכיס לא צפויים אשר יכולים לגרוס לתוצאות לא רצויות. מכאן... פרק וה התמקד הצורה שבה 8856 |1508 מטפלת באירועים. אולס אירועיס הינס שימושיים רק במקריס שבהם משתמשים בטפסים ואובייקטים מפני שאלה אובייקטיס המסוגליס לקלוט התרחשות אירועיס. בנוסף, התרחשות אירועיס עלולה לגרוס לפעולה בתוכנית רק במידה ונכתבה שיגרה המיועדת לטפל באירוע. ניתן לקבל מידע נוסף על הנושאיס הקשורים בפרקיס הבאים: * ראה פרק 3 אבני היסוד של 835|6 |בּט5ו/ לקבלת הנחיות לגבי טפסים, אובייקטיס, מאפיינים, שיטות ואירועים. + למידע נוסף הקשור בשימוש באובייקטים, ראה פרק 4, שימוש בפקדי ברירת המחדל של 83516 |בּפו/. * פרק 6 שליטה נוספת למשתמש: תפויטים וסוגלי כלים מכסה את חלק התפריטים וסרגלי הכלים בתכנות ב- 88516 |1508/. > למידע אודות פקדי הדו-שיח ראה פרק 7 שימוש בתיבות דו- שיח לקבלת מידע. > ראה פרק 11 ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים כדי ללמוד יותר את נושא כתיבת השגרות הפרטיות. =* כדי ללמוד על סוגי האירועיס הרבים הקיימיס באובייקטים המיוחדיס, ראה פרק 12 הפקדים המשותפים של 16ס5סיסווא. 6 סדנת לימוד 6.0 8\ שליטה נוספת למשתמש: תפריטים וסרגלי כלים מה בפרק? יצירת שורת תפריטים יצירת תפריטים מקוצרים (5שח6!/ קט-קסםש) שימוש בסרגלי כלים ב- 83516 ובּ150\ שימוש בפקד סרגל הכלים המשופר ז83|סס6 פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים 17 תוכניות רבות הינן דו-כיווניות, משמע שהן מבצעות פעולות כתגובה לפעולות המשתמש. בפרק 5 תגובה באמצעות שגרות אירוע, למדת כיצד לגרוס לאובייקטיס להגיב לפעולות המשתמש. בפרק זה, נבדוק כיצד לתת למשתמש שליטה רחבה יותר על הנעשה. תלמד כיצד להוסיף מבני תפריטיס לתוכניות, תוך מתן יכולת למשתמש לבצע בחירה מתוך מספר אפשרויות בתוכנית. אחר תלמד כיצד להוסיף סרגלי כלים כדי לאפשר למשתמשים קיצורי דרך לפונקציות שכיחות בתוכנית. יצירת שורת תפריטים אחד הצדדיס החשוביס בעיצוב תוכנית, הוא לאפשר למשתמש גישה קלה ונוחה לפונקציות התוכנית. המשתמשים רגיליס להגיע לרוב הפונקציות בעזרת לחיצה או שתייס על העכבר. בנוסף הס מעונייניס שכל הפונקציות תהיינה ממוקמות בצורה נוחה במקוס אחד. כדי להקל על ביצוע המשימה, 8856 |8טפו\ מאפשרת לנו ליצור מערכת תפריטים בצורה מהירה ופשוטה בעזרת עורך התפריטים. ניתן להשתמש בעורך כדי ליצור שורת תפריטים לכל אחד מטפסי התוכנית וכן לתפריטיס גמישיס אשר מופיעים בהתאס למיקוס הסמן (ראה סעיף יצירת תפריטים מקוצרים בהמשך הפרק). שורת התפריטיס של הטופס הראשי בתוכנית לניהול תערוכה מוצגת בתרשיס 1. תרשים 6.1: מערכת תפריטים מעוצבת בצורה טובה מאפשרת למשתמשים למצוא ולהפעיל את הפונקציות בצורה נוחה הצעד הראשון ביצירת תפריט הוא קביעת הפקודות הנכללות בו וסדר הופעתס. תרשיס 6.2 מציג את מערכת התפריטיס הפנימית של 8856 [1508/. כפי שניתן לראות, הפקודות מסודרות בקבוצות פונקציונליות (קובצ, עריכה, תצוגה וכיוצא בוה). > |8]=. 2 [(וזס) [הוזס - 011ן0ז<ז] - [465%0] 8850 050081 4010506 - 0041ןסז ,ל | |5]=. ופטחו 843-105 1006 חחפזטפום עזפטס הו פטפפם ממחזטת 05 אפע 30 ₪6 1 ה סז ופ 0 סז סקס שק ה ו 5 מ 58% 0160 85... 5+ וז 6 0 5 500 סחפם ו - 50 זחוזק ם] תרשים 6.2: מערכת התפריטים הפנימית של 8856 |508ו\ ו המוצגת כאן כאשר תפריט ₪16 פתוח, מספקת למשתמשים דרך 8 פע ב הםו )10 ססקט 5..\6.. נוחה לבחירת פונקציות התוכנית 0 פלע 506ח1\אשזספה101 זססקט6\.. .> 5 ₪ ]- 0 החלקיס הבאיס מספקים מידע על בנייה ותכנות תפריטים. 8 סדנת לימוד 6.0 8\ תפריטים נפוצים כאשר אנו יוצריס תפריט בתוכנית, אנו צריכים לאחד מרכיבים דומים. למעשה, במידה והדבר אפשרי, נוכל להשתמש בקבוצות המוכרות למשתמש. בדרך זו, יש למשתמש מושג היכן למצוא אפשרויות מסוימות בתפריט, אפילו במידה והוא לא השתמש בתוכנית לפני כן. הרשימה הבאה מתארת מספר תפריטיסם אופיינייס שניתן למצוא אותס בשורות תפריטיס רבות: + +: קובץ 1!6=. תפריט זה מכיל את הפונקציות הקשורות בטיפול בקבציס הנמצאיס בשימוש על ידי התוכנית. חלק מהאפשרויות הנפוצות הן חדש (ששסא), פתיחה (ח6ק0), סגור (0|056), שמור (586), שמירה בשם (45 6א53) והדפסה טחוזק). אס התוכנית עובדת עס קבציס שוניס בצורה רציפה, נוכל להוסיף לתפריט גס רשימה של הקבציס האחרוניס שהתוכנית השתמשה בהס. בסוף תפריט זה נהוג להציב גם את פקודת היציאה 0ואם) מהתוכנית. עריכה %ו56. תפריט העריכה מכיל את הפונקציות הקשורות לעריכת טקסט ושימוש בלות (0זהסססוו6) הפנימי של פאוסבחוש\. חלק מהאפשרויות הנפוצות הן בטל (ספחנו), גזור טט6), העתק (ץ600), הדבק (ס850ק), נקה (6!68), חיפוש (0חו=) והחלפה (₪601306). תצוגה שפו/. ניתן לכלול את התפריט אס יש אפשרות להציג את הטופס בתוכנית במספר צורות. לדוגמה, מעבד תמלילים יכול לכלול אפשרות לתצוגה רגילה בעריכת הטקסט ותצוגה לפי דפיס למיקוס מרכיבי הטופס, וכן מיגוון אפשרויות הגדלה (/200). שימוש נוסף בתפריט תצוגה הוא לאפשר למשתמשים להציג או להחביא טפסים מיוחדיס בתוכנית (כגוו האפשרות א80|ססד בתפריט צוסו/). כליס 10015. בתפריט ניתן למצוא את מכלול פונקציות העזר והפונקציות הכלליות. לדוגמה, ניתן לשלב בתפריט זה בודק שגיאות כתיב, בודק תחביר, או עורך משוואות בתוכנית עיבוד תמליליס. חלון שסחו/\. תפריט וה נכלל בדרך כלל במקריס בהס התוכנית משתמשת בממשק ריבוי טפסים (פןא). תוכניות מסוג 1סוא, כגון מעבד התמלילים בזסוצ, תומכות בעריכה של מספר טפסים באותו מופע של 6זס/\ (כלומר תחת תוכנית 0 אחת). תפריט חלון מאפשר למשתמש לארגן את תצוגת הטפסיס הפתוחים, או להחליף ביניהס בצורה נוחה. עורה !₪46. תפריט העזרה מכיל גישה למערכת העורה של התוכנית. לרוב, תפריט וח מכיל אפשרויות לאינדקס עזרה (תוכן ענייניס), אפשרות חיפוש (כדי לאפשר למשתמש למצוא נושא מסויס בצורה מהירה) ומידע אודות התוכנית (מידע כללי, וכויות יוצרים ושמות כותבי התוכנית). ניתן להשתמש בששת התפריטיס האופייניים הללו כבסיס ליצירת מערכת התפריטים הפרטית שלנו. השתמש באחד או יותר מתוכם במידת הצורך והוסף קבוצות תפריטיס נוספות לפי הדרישה, אולס תכנן היטב את התפריטיס הנוספיס לפני ההוספה. ודא שהמשתמשים יוכלו להגיע בקלות לכל הפונקציות דרך מערכת התפריטיס. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 149 הגדרת המרכיבים העיקריים לאחר שהחלטנו איזה פונקציות לכלול בתפריטיס וכיצד לחלק את הפונקציות הללו לקבוצות, אפשר להתחיל לבנות את התפריט. כדי ליצור תפריט, יש לפתוח תחילה את הטופס שבו רוציס ליצור אותו ואז להפעיל את עורך התפריטים באחת משלוש הדרכים הבאות: לחיצה על לחצן 01זו₪6 טחסוא (עורך התפריטים) בסרגל הכליס, בחירת תפריט 15ססד ואפשרות ז0+ו60 טח16א, או הקשה על 0+5ס. פעולות אלו תגרומנה להופעת עורך התפריטים, כמתואר בתרשים 6.3. 1 אא )ה | 6 מ ] סו | [08 טון=טוחוח ן ו - (שחס]) :םס | :חן [+ 6חסא] - ס] 60086050 0ַ ן 10א6לחס-פ|פו ו וווסטחועצ. -] 6ופופו > ש ה - | בב | 1 |[+ |+ |+ > תרשים 6.3: עורך התפריטים מאפשר דרך קלה ליצור תפריטים לתוכניות פקדי תפריט כל שורת טקסט (אפשרות בתפריט) נקראת פקד תפריט (|סשחס6 טחסוא), בדיוק כשס שלחצן פקודה שאנו מציביס בטופס נקרא פקד לחצן (ו₪0ח60 חסססטם סחהווחס6). אנו נשתמש בעורך התפריטים לצורך יצירת פקדיס בתפריט והגדרת המאפיינים הבאיס לכל פקד: + ח0 6800 (כותרת). והו הטקסט אשר יציג את הפקד בתפריט. ניתן להגדיר מקש קיצור לבחירת הפקד מתוך התפריט, על ידי הוספת הסימן ישי לפני האות שנבחרה להפעלת קיצור הדרך. לדוגמה, אס המאפיין ח00ק68 של פקד מסויםס בתפריט מכיל את המחרוזת ז8זס.8=, לאות 0 יתווסף קו תחתון והמשתמש יוכל לבחור את הפקודה בהקשה על מקש 0 במקלדת, כאשר התפריט פעיל. יש להגדיר מאפיין ח00ק68 עבור כל הפקדיס בתפריט. + סוַתַא. משתמשיס במאפיין זה כדי לוהות את האפשרות בתפריט בקוד התוכנית. יש להגדיר מאפיין חגא עבור כל האפשרויות בתוכנית. בדומה לפקדיס 0 סדנת לימוד 6.0 8\ האחרים, לכל פקד בתפריט חייב להיות שס אשר בעזרתו תוכל התוכנה לזהות אותו. בשונה מפקדים אחרים, 8856 |1508/\ אינה מצמידה לפקדי התוכנית שם באופו אוטומטי ולכן אתה חייב לציין שס עבור כל פקד לפני סגירת עורך התפריטים (ניתן לראות במאפיין חח שס פנימי של הפקד בתוך התוכנית ואילו המאפיין ח63000 הוא שס חיצוני עבור המשתמש). א6ח1. אס הפקד המוגדר הוא חלק ממערך פקדים, מאפיין א06ח1 משמש לצורך זיהוי הפריט בתוך המערך. +6+ז0ח5. בעזרת מאפיין וה ניתן להגדיר צירופים של מקשי קיצור שיאפשרו למשתמש לבחור פקד מסוים בתפריט בעזרת צירוף מקשים, וכך לעקוף את מערכת התפריטים. לדוגמה, תוכניות רבות משתמשות בצירוף +61 כקיצור ומבטלות את הצורך לבחור את האפשרות +חוזש מתוך תפריט 6!ו במערכת התפריטים. 10זא6 ה 16!060. מאפיין וה מגדיר שדה מזאהה המאפשר עבודה מול קובצ עזרה מותאס אישית ומאפשר מתן עזרה רגישת הקשר (ק|6 5605106 60006%0) לתוכניתך. ה0וו600%13+6005א. אס ביישוס שלנו יש אובייקט המקושר למקוס אחר או מוטמע בתוכנית, מאפיין וה קובע אם וכיצד יופיע פקד וה בזמן שהאובייקט פעיל. 6 אם ערך מאפיין מוגדר 6טזד, יופיע סימון (81%ח 66%ח6) משמאל לפקד בתפריט. בדרך זו ניתן לסמן, לדוגמה, כי המשתמש בחר להפעיל אפשרות מסוימת. אס ערך המאפיין הוא 8156=, לא יופיע סימון. 6. ניתן להגדיר מאפיין וה כ-8|56= במידה ואנו מעונייניס לנטרל את פקד התפריט בזמן מסוים. לדוגמה, אם לא מסומן כל טקסט שהוא, אפשר לחסוס את האפשרות ץ600 בתפריט זו0= על ידי קביעת ערך המאפיין כ-856". 6 ופצ קובע האם ניתן יהיה לראות את הפקד בתפריט. אפשר לכלול בתוכנית פקדי תפריט ולגרוס לכך שלא ייראו על המסך במצבים מסוימים. לדוגמה, לא נרצה שהאפשרות שספחו/\ תופיע בתפריט כאשר אין חלונות פתוחים. | סח ו/. מאפיין ה מאפשר הוספת רשימה דינאמית של כל חלונות המשנה הפעילים, לתפריט רמה עליונה ביישוס זסוז. יצירת מערכת פשוטה של תפריטים נדגיסם את תהליך עיצוב התפריטיסם על ידי יצירה של מערכת תפריטים פשוטה. ניצור מבנה תפריט הכולל מספר פריטים סטנדרטיים. ראשית, צור תפריט ₪6 לדוגמה: 1 72 הפעל את 8856 |1508/ והתחל פרויקט רגיל מסוג 5אם. ודא שהטופס שתרצה ליצור בו את התפריט מסומן. הטופס 1חזס= אמור להופיע על המסך כשהוא מסומן. אס לא, בחר אותו. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 151 3 הפעל את עורך התפריטים על ידי לחיצה על 5601 טח86 ,5!ססד או על ידי לחיצה על הלחצן ז0+(₪6 טח6וא בסרגל הכלים. הסמן אמור להופיע במאפיין ח0וזק68. מאפיין זה מכיל את הטקסט המזהה את הפקד בתפריט הנוכתי. 4. הקלד 8=1!6. וזכור כי הסימן יי8י' מציין כי התו הבא (במקרה זה =), ישמש כמקש הגישה לפקד. בזמן ההקשה, שיס לב לכך שהטקסט המוקלד מופיע בתיבה שבתחתית עורך התפריטים בצורה אוטומטית. באזור זה ניתן לראות את התפריט בצורה היררכית. כמו כן, שים לב כי השורה העליונה בתיבה מוארת. 5 עבור למאפיין שוחהּא בעזרת טאב והקלד 6!!ו=טחוח. שני המאפיינים שהגדרת - ה00ק68 ו-6חה\ הס כל שתצטרך להגדיר לעת עתה. ברירות המחדל של המאפייניס האחרים מספיקות לשם דוגמה זו. 6. לח על לחצן %א6א או הקש על ו6זח5 כדי לקבל את המאפייניס שהגדרת לפריט זה. תיבות המאפיינים תנוקנה ותהיינה מוכנות לפריט הבא. שיס לב שהחלק המואר בתיבה בחלק התחתון של העורך עוברת לשורה הבאה (שורה ריקה). 7 חזור על צעדים 4 עד 6 כדי ליצור פריט שני. השתמש ב- ש₪6א8 במאפיין חסו%ק63 ו -ש6א6!ו]טחוח כשס. 8 לח א0 כדי לסגור את עורך התפריטים. לאחר ביצוע הצעדים הנזכרים, אמורה להיות שורת התפריטים בטופס כמו וה שבתרשים 6.4. |<1ם] -. [חזס] .₪ שסא. 6 תרשים 6.4: שורת תפריטים זו, הנראית כאן במצב עיצוב, נוצרה בעזרת עורך התפריטים כמובן, שהתפריט אמור להיראות בצורה שונה, כאשר שפא הינו תפריט משנה של 6. ולא תפריט בפני עצמו. כדי לפתור את הבעיה, תצטרך להתוודע להבדלי הרמות האפשריות בתפריט. הבדליס אלה תכיר בסעיף הבא, תפריטים בעלי מספר רמות. כמו כן, במידה וניסית ללחו על אחד מהפריטיס בסביבת העיצוב, הופיע לפניך חלון הקוד של שיגרה. למעשה, הפעולה שביצעת, דומה ללחיצה כפולה על אובייקט בטופס בומן עיצוב: פתחת את שגרת 616% של הפריט. כאן תוכל לכתוב קוד אשר יתבצע במידה והפריט נבחר בזמן ריצת התוכנית. תוכל ללמוד אודות כתיבת קוד לפריטי תפריטיס מאוחר יותר בפרק זה בחלק כתיבת קוד לפריטי תפריטים. לעת עתה, סגור את חלון הקוד. 2 סדנת לימוד 6.0 8\ תפריטים בעלי מספר רמות התפריטיס האופייניים ביישומיס המבוססים על פוססחו/), מכיליסם מספר רמות של פקודות. הפריטים ברמה הגבוהה ביותר הינס אלה המופיעיס בשורת התפריטיס של התוכנית. בדרך כלל, לחיצה על פריט שכזה פותחת את תפריט המשנה המשויך לפריט הראשי. כל פריט בתפריט המשנה יכול לייצג פונקציה בתוכנית או לגרוס להופעת תפריט משנה נוסף. ב- 88566 |8טפוע, ניתן ליצור עד שש רמות של תפריטים. טיפ: למרות שניתן ליצור עד שש רמות של תפריטים ב- 8856 |808ו/, כדאי בדרך כלל להגביל את התפריטים לשתים עד שלוש רמות. יותר מדי רמות עלולות להקשות על המשתמש לנווט את דרכו בתפריט. בצע את המהלכים הבאים כדי להמשיך בהכנת תפריט ₪116 אשר יצרת קודס לכן ובנוסף צור גס תפריטי 56 ו-5חסוטטס. 1. סמן את 1חזס] ופתח את עורך התפריטים. 2 בתיבה בתחתית עורך התפריטים, בחר את פריט ש6א. 33 והה את ארבעת מקשי החיציס בחלק האמצעי-שמאלי של העורך והקש על התצ הפונה ימינה פעס אחת. פעולה זו מורידה את הפריט רמה אחת למטה. שים לב שתוכן הפריט מוזז פנימה כסימן לכך שהפריט עצמו נמצא ברמה נמוכה יותר. לחיצה על החץ הפונה שמאלה מזיזה את הפריט רמה אחת למעלה. 4. לח על לחצן %א6א כדי להכין את עורך התפריטים לפריט חדש. שים לב לכך שבנוסף לניקוי תיבות המאפיינים, הפריט החדש והריק מוזז באופן אוטומטי לרמה בה מצוי הפריט הקודס. 5. הוסף פריטיס חדשים באותה הרמה, ובהם הערכים הבאים: 36 הסול63 חק 60וו= טחוח הח %חוזקסוו טחוח הווקא 6 וו טחות 6 סדוו טחות סד 56080 6 פריט סד 5606 יהפוך בעצמו להיות תפריט משנה. לאחר יצירתו, הזו את הפריט הריק הבא רמה אחת למטה על ידי לחיצה על הח הפונה ימינה והוספת פריטים חדשים (המוזזים פעמיים) לתפריט: 36 הסו 63 |3]ס 07ח656וו טחרח +60 |וב8₪]3 א 6560 טחוח 6% אה-8 פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 153 הערה: כאשר אנו יוצרים תפריטים בעלי מספר רמות כמו באפשרות סד 5600 בתפריט הדוגמה, פ5אוסחו)\ משלבת במקום המתאים בתפריט, סימן דמוי חץ המאפשר למשתמש לדעת שלאפשרות זו מסונף תפריט משנה. .10 .1 .12 .3 לח על החץ הפונה שמאלה פעס אחת כדי להעביר את הפריט הבא בתפריט לרמה גבוהה יותר. הגדר את מאפיין ח00ק63 שלו כ-8א8ם ואת שמו כ-1%א65! טחוח. לחץ על +א6א או הקש 6חם כדי ליצור פריט חדש. לחץ על הח הפונה שמאלה כדי להגדיר את הפריט כתפריט ברמה העליונה (ללא הזוה). הגדר את מאפיין ח0ו630% כ-זו86 ואת שמו כ-א6שטחוח. הזו את הפריט הבא בתפריט כך שהוא יופיע כתת פריט בתפריט 560%. הוסף את הפריטיס הבאיס: סוהבּא הסוז63 ות 8 ץקס 0 טחוח ץע 6 טחוח 6 הוסף תפריט ראשי נוסף בעצמך. הגדר את מאפיין חסוזק63 כ-0005ו7%קן80 ואת שדה השס כ-פחסושקסטחוח. הוסף את הפריטיס הבאיס תחת תפריט פחסוסקס: סוהבּא הסוז 63 %%חסוקסטחוח ץ|ח 6 8 6 סוק הרת 6 עורך התפריטיס אמור להיראות כעת כמו בתרשים 6.5. הקש א0 כדי לסגור את עורך התפריטיס. טיפ: מומלץ לתת לפקדי התפריטים (כלומר הפריטים השונים בתפריט) שמות היררכיים. באופן זה, שמו של כל פקד בתפריט מתחיל בקידומת טחחז ולאחריו מילה המתארת את החלק בתפריט שבו הפריט נמצא. לדוגמה, שם הפריט אשר דרכו מעבירים מידע לפקס הינו א0"8 656007!וחטחח. שמו של הפקד מרמז כי הוא נמצא בתפריט המשנה סד 0ח56 המסונף לתפריט שוו=. 4 סדנת לימוד 6.0 8\ | 6 פס ₪ ] יי | |68ח8 6 6 זטסקן! וטחוח ן בו - (שחסו]) :שםזסת ן :חן [+ 6חסא] - ס 60036050 0ַ | 10א6לחס-פ|פון ו -] 6ופופוי > ש - | תע | ₪6 |+]|+|+|> זחשוקו6 |ו₪13 +חשוקו66 3%-₪ תרשים 6.5: עורך התפריטים מאפשר ליצור מערכת תפריטים היררכית בצורה מהירה הערה: לפעמים קורה ששמו של פריט כלשהו בתפריט מסתיים בשלוש נקודות (...) כמו באפשרויות חסקס ו-חוזק בדוגמה לעיל. סימון זה מרמז שקיים מידע נוסף, כגון שם קובץ ומיקום, הדרוש כדי להשלים את הפקודה המבוקשת. לאחר בחירת הפריט, התוכנית תדרוש את המידע הנוסף באמצעות תיבת דו-שיח שתופיע על המסך. כעת, לאחר שחזרת לסביבת העיצוב של 8856 |הטפו/, תוכל לבחור את תפריט ₪16 בטופס 1וזזס] כדי לראות כיצד הוא נראה. ניתן לאחד את פקודות הטיפול בקבציס שצ6א, ח6ק0 ו-58/6, כקבוצה אחת ואת הפקודות %חוזש ו-סד 0ח56, כקבוצה אחרת. תוכל לבצע ואת, על ידי החלפת מקומות בין האפשרות +חוזש והאפשרות 6צ58, כך שכל הפקודות הקשורות בטיפול בקבציס תהיינה ביחד. תוכל להבליט את האיחוד וההפרדה באמצעות הוספת מפרידים לתפריט. איחוד פריטים בתפריט (הוספת מפרידים) בנוסף לשימוש ברמות שונות לצורך ארגון הפריטיס בתפריט, יש לפעמים צורך בהפרדת פריטים הנמצאיס באותה הרמה. הוספת מפרידים בתפריט שוברת את רצף הפריטיס ויוצרת הפרדה ברורה בין קבוצות פריטיס בעלי מכנה משותף, ללא צורך ביצירת רמות תפריט נוספות. הקש סימן מינוס (-) במאפיין ח00ק68 של הפריט כדי להפוך אותו למפריד ברוחב המלא של התפריט שבו הוא מופיע. וזכור שאנו צריכיס לתת לכל מפריד כזה ערך זיהוי מיוחד במאפיין 6וחאא, בדיוק כמו בכל הפריטיס האחרים. אנחנו משתמשים בדרך כלל במספרים עולים לזיהוי מפרידים בתפריטים - 1חסחקץר טחוח, 2ה6הקץהטחוח וכך הלאה. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 155 ם אזהרה: אין אפשרות להשתמש במפריד ברמת התפריטים העליונה (שורת התפריטים). ניתן לשלב אותם בתפריטי משנה בלבד. אם תנסה להציב מפריד בשורת התפריטים, תופיע על המסך הודעת שגיאה בעת שתנסה לשמור את פעולתך. שינוי התפריט לעיתיס קרובות תרצה לבצע שינוייס במבנה התפריט שיצרת. תוכל בנקל לבצע משימה ואת באמצעות עורך התפריטים. טבלה 6.1 מפרטת חלק מפעולות העריכה השכיחות ואת אופן ביצוען. טבלה 6.1: שינוי התפריט פונקציית העריכה דרך הביצוע הזזת פריט בחר את הפריט ולחץ על אחד מלחצני החיצים כדי להזיז אותו למעלה או למטה. הרמה שבה נמצא הפריט אינה משתנה כאשר מזיזים אותו בתפריט. הוספת פריט בתוך בחר את הפריט האמור להופיע מתחת לפריט החדש הרשימה והקש על 561ח1. פריט ריק אמור להופיע מעליו. בשלב זה תוכל למלא את שדות ח63000 ו-6וח8\ שלו. הפריט החדש יימצא ברמה שבה נמצא הפריט שמתחתיו. הסרת פריט בחר את הפריט והקש על מקש המחיקה (ש06!66). הפריט יימחק מיידית ללא אזהרה. בעורך התפריטים אין אפשרות לבטל פעולה. כאשר מוחקים פריט אין דרך להחזיר אותו. אולם אם כתבת קוד תוכנית המשויך לפריט בתפריט, הקוד יישאר וניתן עדיין לראות אותו בחלון הקוד. הערה: קוד שנכתב עבור כל פקד לא יימחק עם מחיקת הפקד אלא יישאר בצורתו המלאה ויימחק רק על ידי מחיקת הקוד בחלון הקוד. כעת תוכל להשתמש בטכניקות העריכה הללו כדי לאחד פריטים ולהוסיף מפרידיס אשר נזכרו בחלק הקודם. לשס כך, בצע את המהלכיסם הבאים: 1 פתח את עורך התפריטיס לאחר בחירת טופס 1חזס=. 2 לת על הפריט +חזזפ פעס אחת כדי לבחור אותו. 3 לת\ פעמייס על התץ הפונה למטה כדי להזיז את הפריט מעל לפריט סד 5600 (לחץ על הח הפונה למעלה אס יש צורך להזיז פריט מסויס למעלה). 4. כאשר הפריט זחוזק מואר, הקש על מקש 10561 כדי ליצור פריט ריק מעל ו)חווס. 5 בחר את מאפיין ח0וז63 והקלד סימן מינוס (-) בודד. 6 סדנת לימוד 6.0 8\ 6. עבור למאפיין 6וחבּא בעזרת 78 והקלד 1חה6חטץווטחוח. 7 בחר את פריט זואם והקש על 10561 כדי ליצור פריט ריק מעל זואם. 8 הקלד סימן מינוס (-) במאפיין חס0וזק63 של הפריט החדש ו-2חה6חסץ1]טהוה במאפיין השם. 9 לח א0 לסגירת עורך התפריטים. | ----- סאטה) | 0% -] ויוי - | [06ח3 6 2חשתקעווחות ן ו (סחסו]) :שםץסת ן :חן [+ 6חסא] - ס] 60036050 0 ן 10א6לחס-כ|פון ו -] 6ופופוי שן ש ה - - ]חשוקו6 ₪131 %חשוםו60 א3-₪ תרשים 6.6: השימוש ברמות שונות של תפריט מסייע בארגון האפשרויות הקיימות. מקשי גישה ומקשי קיצור להפעלה מהירה של פונקציות ניתן להגיע לפריטיס רביס הנמצאיס בתפריטים של תוכניות פשספחוו\ על ידי שימוש בצירופי מקשים. תוכל באופן ה לאפשר למשתמש להגיע לפריטים בתוכניותיך בצורה קלה ומהירה. קיימות שתי שיטות חלופיות בהן תוכל להשתמש להגשמת המטרה: מקשי גישה ומקשי קיצור. מקשי גישה מקש מעין זה מאפשר למשתמש לנווט במערכת התפריטים על ידי שימוש במקלדת במקוס בעכבר. במידה ומוגדר עבור הפריט מקש גישה, הוא יסומן באמצעות קו תחתון (לדוגמה, האות = ב-₪6). נוכל להגדיר מקש גישה על ידי הצבת סימן 8 לפני האות הרצויה במאפיין ח0ושק68. בתפריט ₪6 לדוגמה, מאפיין ח63000 הוא 8!6. נוכל ליצור מקש גישה לכל פריט בתפריט. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 157 טיפ: המשתמש מצפה שהאות הראשונה בשם הפריט תהווה מקש גישה. לפיכך, מומלץ להשתדל ולהגדיר את מקשי הגישה באופן זה. מצד שני, לא כדאי להשתמש במקש גישה זהה עבור שתי אפשרויות שונות באותו תפריט. לדוגמה, מקש הגישה בתפריט 86חזס" ב- 8856 |508ו\ הינו האות השנייה במילה. זאת כדי למנוע התנגשות עם תפריט ₪6 המופיע גם הוא כאפשרות בשורת התפריטים. תיאורטית, קיימת אפשרות להגדיר מקשי גישה זהים למספר פריטים באותו תפריט. במצב זה, 6 |אט5\ מעבירה את הסמן בין האפשרויות, כלומר עליך לדלג דרך בין הפריטים עבורם מוגדר מקש גישה זהה, עד שתגיע לתפריט המבוקש. כאמור, שיטה זו אינה מומלצת ומפספסת את ייעודה המקורי - להוות קיצור דרך ולחסוך בזמן. בנוסף, משתמשים רבים אינם מודעים ליכולת לדלג בין תפריטים על ידי לחיצה על אותו צירוף המקשים. כאשר אנו מגדיריס מקשי גישה בתפריט, המשתמש יוכל לבחור פריט ברמה הגבוהה (בשורת התפריטים) על ידי החזקת מקש 4/6 והקשה על מקש הגישה השייך לפריט. פעולה זו גורמת לתפריט המשנה השייך לפריט להיפתח ולהראות את הפריטים השייכיס לקבוצה זו. לדוגמה, במקרה שרוצים להגיע לאפשרות ש6א הנמצאת בתפריט ₪16, המשתמש יקיש =+)| ולאחר מכן א. כדי ליצור מערכת יעילה של מקשי גישה, יש צורך בהגדרת מקש נפרד לכל אחד מהתפריטיס הראשיים. לאחר מכן נגדיר מקשיס שונים לכל אחד מהפריטיס בתפריטי המשנה. תיאורטית, ניתן להגיע רק ל-36 צירופים שוניס באותו התפריט (אחד לכל אות באלפבית הלועזי ולכל אחת מעשר הספרות), אולס סביר להניח שייגמר המקוס על המסך לפני שתיגמרנה האפשרויות. מקשי קיצור בנוסף למקשי הגישה, נוכל להגדיר מקשי קיצור לפונקציות היותר שימושיות בתוכנית. מקשי קיצור מספקים גישה ישירה לפונקציות בעזרת מקש בודד (כגון מקש 6% או צירופי מקשים (001+5), ומאפשריס לעקוף לגמרי את מערכת התפריטים. ניתן להשתמש במקשי הקיצור כדי לבצע פעולות בצורה מהירה יותר. כדי להגדיר מקשי קיצור לפונקציה בתפריט, היכנסו לעורך התפריטים, בחרו את הפריט המבוקש ובחרו את המקש הרצוי מרשימת 07660%ח5. המקש יוצמד לפריט ותיאור מקש הקיצור יופיע בתפריט ליד הפריט. להדגמת השימוש, שייך את הצירוף 6₪1+5 לפריט זחוזק בדוגמה שעשינו בדרך הבאה: 1 ודא שבחרת את 1וחזס" ופתח את עורך התפריטים. 2 לח על הפריט פחוזפ כדי לבחור אותו. 33 לת על החץ הפונה מטה (הנמצא ליד רשימת הקיצורים) ובחר ₪+₪1ש6 מתוך הרשימה. 8 סדנת לימוד 6.0 8\ 4 הגדר את הקיצורים הבאיס בעצמך: הפריט קיצור דרך ₪6 ,6 א+6 חססס ,6וו= 0+ 6 ,סו 5+ וי א+6 ץש 010 6+ 6 ו +60 5 לח א0 כדי לסגור את עורך התפריטים. כעת, לאחר שחזרת למצב עיצוב, לחץ על תפריט 1!6= כדי לראות כיצד צירופי המקשים מוצגים. תרשים 6.7 מדגיס את התוצאות. |אוםן- 56 א+ום בו 0+וום | תפקם 5+זום 6 ק+ום זחוזם. 1 סז 5 ואם תרשים 6.7: לחלק מהפריטים שבתפריט ₪6 הוקצו מקשי קיצור ניתן להקצות לכל פריט כל מקש קיצור שהוא, בתנאי שאינו מצוי בשימוש על ידי פריט אחר. עס ואת, מומלצ להשתמש בקיצורים ייסטנדרטיים'י ושכיחיס בהס עושות שימוש תוכניות רבות. בטבלה 6.2 מוצגים חלק ממקשי הקיצור הנפוצים. עמודת התיאור מסבירה, כדוגמה, מה מקשיםס אלה מבצעיסם כאשר משתמשיסם בסביבת 6 | עצמה. טיפ: בדומה למקשי הגישה, יש צורך להגדיר מקש קיצור אשר מתאים לאות הראשונה של שם הפריט. לדוגמה, 6001+5 עבור זחוזק. למשתמש יהיה קל יותר לזכור את הקיצורים בדרך זו. מומלץ להשתמש בקיצורים המתוארים בטבלה 6.2 כדי למנוע בלבול. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 159 טבלה 6.2: שימושים נפוצים בקיצורי דרך לקבלת גישה מהירה לפונקציות בתוכנית ו 000 =+|)6 | פותח את תיבת החיפוש ומאפשר חיפוש מידע כלשהו כגון טקסט). 0 חס ,סו 0+|6 | פותח תיבת דו-שיח המאפשרת לפתוח קובץ קיים. 5 | שומר את הטופס הנוכחי. זחוזק ,שו ק+|6 | פותח את תיבת דו-שיח המאפשרת לבחור פריטים המיועדים להדפסה. כתיבת קוד עבור פריטי התפריט לאחר יצירת מבנה התפריט, יש צורך בכתיבת קוד כדי לגרום לאפשרויות בתפריט לבצע פעולה ממשית. נעשה זאת, כמו בטופס או בפקדיס אחרים, על ידי כתיבת קוד בשיגרה המקושרת לאירוע. לכל אחד מן הפריטיס בתפריט יש שיגרה אחת בלבד: שגרת >6סו!0. שיגרה זו מופעלת כאשר המשתמש לוחי על הפריט, או כאשר המשתמש מסמן את הפריט ומקיש זססחם. לחיצה על הפריט דומה ללחיצה על לחצן פקודה. הערה: שגרת 6166 המקושרת לפריט מופעלת הן כאשר המשתמש מקיש על מקש גישה והן כאשר הוא מקיש על מקש קיצור כדי להפעיל את הפריט. כדי להוסיף קוד לשגרת א6ו01 של הפריט, לח קודס כל על הפריט בטופס. פעולה זו גורמת לפתיחת חלון הקוד ומכינה את שגרת האירוע לפריט הנבחר באותה הצורה שבה היתה נפתחת שגרת 066 של אובייקט אחר אם היינו בוחרים אותו. לאחר מכן, הקלד את הקוד הגורס לפעולת הפריט. 0 סדנת לימוד 6.0 8\ כעת תוכל לשפר את דוגמת התפריט על ידי תכנות פונקציית ₪6, %%₪ בתפריט, כמתואר בשלבים הבאים: 1. בסביבת העיצוב, בחר בתפריט ₪6 של טופס 1וחזס] כדי לפתוח אותו ולאחר מכן בחר %ואם. חלון הקוד ייפתח ויציג את שגרת >6ו01 של פריט זואששווטחוח. 2 הקלד את הקוד הבא לשיגרה: 8חו 50 5 קוחם 57 ,100007 5 סוחס דח וחוס "?ואש 0ף +חפ/ו טסץ 6זט5 טסץ 6זה" = קוחס 51 ("הח8 סז 6|רח58 טח6]" ,סאפ טע ,רחס 51)א0ס8 15 = קוח דחה חח ד 65 פע = קוחם דח +[ 0חם + 0חם 3 סגור את חלון הקוד. שמור את תוכנית הבדיקה והרצ אותה. כאשר תבחר באפשרות זואם בתפריט ש6וו₪ במערכת התפריטים, תוצג תיבת הודעה אשר תשאל אס אתה בטוח שאתה רוצה לסגור את התוכנית. אס תבחר 65+, התוכנית תיסגר. בתקליטור: הקוד שלעיל נמצא בתקליטור בתיקיה וחפזףָסזק 6/וח58 טחסוו. הגדרות נוספות בנוסף למאפייניס הדרושיס ח68000 ו-6וחאא, לכל פריט מספר מאפיינים שניתן להגדיר כדי לשלוט על התנהגות התפריט או כדי לוודא סטטוס של אפשרות מסוימת בתוכנית. המאפייניס השכיחיס ביותר בשימוש הינס 580!6ו/\, 60|טְהחם ו-6060660. המאפיינים 6!טו15/ ו-60!כבּח= מאפייני 6|ו15/\ ו-8060ח₪ של הפריט פועלים בדיוק כמו בכל אובייקט אחר. כאשר מאפיין 151066 מוגדר 6טזד, הפריט מופיע בתפריט. אם המאפיין מוגדר 8!56=, הפריט (וכל תפריט משנה המקושר אליו) מוסתר. בוודאי ראית כבר שימוש במאפיינים אלה במעבד תמלילים בזמן שניתן היה לראות את תפריטי ₪6 ו-קו₪6 בלבד עד שפתחת מסמך חדש. לאחר פתיחת המסמך, התגלו התפריטיס האחרים. שינוי ערך המאפיין 196 מאפשר לשלוט בכמות הפריטים אשר יהיו זמיניס למשתמש בכל זמן נתון בתוכנית. בצורה זו של שליטה ניתן למנוע מהמשתמש גישה לפונקציות בתפריט אשר עלולות לגרום לתקלות במידה ותנאים מסוימים לא מתקיימיס (לא נרצה לאפשר גישה לפונקציות עריכה כאשר אין טופס פתוח). מאפיין 089/60 משמש בצורה דומה למאפיין 6פופוש. השינוי העיקרי הוא שכאשר ערכו 8156=, הפריט יהיה אפור, גלוי, אך לא זמין. לדוגמה, אין לאפשר 605 ו-ץ600 אם לא נבחר קטע, אולס אין מניעה להראות שהפונקציות קיימות (ראה תרשים 6.8). פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 161 | [חזזס-]) [חוזס] - 1וספןסז .₪ ם ם > וםן-. פחסווסם. 6 ום 8% ו ו 8 ו 66ב ם תרשים 6.8: פריטי תפריט חסומים עדיין גלויים לעינו של המשתמש, אולם מוצגים באפור על מנת לציין כי הם מנוטרלים זמנית אם כי ניתן להגדיר את המאפיינים 19196 ו-60ו88ח= במצב עיצוב באמצעות עורך התפריטים, נהוג לרוב לשנות את ערכיהסם בומן ריצה בתגובה לשינויים במצב התוכנית. כמו באובייקטיס אחרים, ניתן להגדיר בקוד ערך עבור מאפיין המשויך לפקד תפריט, על ידי ציון המאפיין חא של הפריט, הגדרת שס המאפיין המיועד לשינוי, והערך החדש. בהמשך לדוגמה המתוארת, ניתן לשפר את מערכת התפריטים הפשוטה שלך. כאשר התוכנית מתחילה לפעול, אין טופס פתוח ולכן לא כדאי לאפשר גישה לאפשרויות 0 56006 ,6צ53 ו-+חזזש כמו גסם את תפריט 56 אשר תרצה להציגו רק במצב בו יש טופס פתוח. בצע את הפעולות הבאות כדי לוודא שמערכת התפריטיס תוצג בצורה הנכונה עס הפעלת התוכנית : 1. ודא שטופס 1וזס=פ מסומן. היכנס לעורך התפריטים. 2 לח על הפריט 6צ58 וסמן אותו. 33 הסר את הסימון הנמצא על מאפיין 4. פעולה זו משנה את ערך מאפיין תח ל-8156=. 4. הגדר ערך 8156* גס לפריטיס 60 56046 ו-%חזוק. 5 בחר את תפריט זו6ם. 6.| הסר את הסימון הנמצא על מאפיין 6. פעולה זו מגדירה את ערך המאפיין כ-8!56ת. 7 סגור את עורך התפריטיס. טיפ: שים לב שתפריט 50 נעלם גם מסביבת העיצוב. עדיין תוכל להגיע לשגרת 616% של התפריט על ידי כניסה לחלון הקוד של הטופס ובחירה בתפריט המתאים מתוך תיבת האובייקטים. תוכל גם להשאיר את מאפיין 6|פופו\ במצב 6טזד ולהגדיר אותו כ-8|56] בשגרת 10806 של הטופס. 2 סדנת לימוד 6.0 8\ בצע את הפעולות הבאות כדי לאפשר את החלקים המתאימיס של תפריט 16ו=, וכדי להראות את תפריט זו0ם בזגמן שקייס טופס פתות: 1 .6 בסביבת העיצוב, לחי על תפריט ₪6 ולחץ על הפריט ח6ק0. שגרת ח6026!!₪ הוח תוצג. בתוכנית אמיתית נציב כאן את הקוד המטפל בפתיחת טופס. תוכל להציב שורת הערה המסבירה את מהות הקטע. הקלד את השורות הבאות לתוך שגרת 6% חסקססוו טחות : 6 6065 06 3 סחוחסקס זס1 0006 6 = 60|טְהחם. סעה5ס!וטחוח 6 = 60!סַהחם.0ס ד0ח656!ו=טחוח 6 ך = 60!טְהחם.+חוק סו טחרח סד = 0!6ן15/\.ו6טחוח סגור את עורך התפריטיס. שמור את התוכנית והפעל אותה. שים לב שתפריט ₪016 אינו נראה. כמו כן, שיס לב שכאשר הנך לוחצ על תפריט 6!ו₪, חלק מהפריטיס בתפריט מופיעים באפור. בחר ח6קס0 ,₪16 הפעולה תגרוס לשגרת 616% של פריט ח6ק0 להתבצע. בחר שוב בתפריט 6!ו= ושים לב שכל הפריטים בתפריט ה מאופשרים. כמו כן, שים לב שניתן כעת לראות את תפריט זו0ם. לחץ על לחצן הסיוס בסרגל הכלים כדי לסגור את התוכנית. מאפיין 6166460 מאפיין ה קובע אם יוצג סימון (81%! 66%ח6) משמאל לפריט בתפריט, כמו שניתן לראות בתרשים 6.9. משתמשים בו כדי להציג מצב של אפשרות מסוימת בתוכנית. לדוגמה, אס משתמש בחר להשתמש באפשרות מסוימת, יופיע לידה סימון (+). ניתן לבחור שוב את האפשרות בתפריט כדי להסיר את הסימון ושוב כדי להחצירו. | ום|=. פמסוום | 07 שת שוח ואפ * זט תרשים 6.9: מאפיין 6766660 קובע אם יוצב סימון לשמאל הפריט הקלד את הקוד הבא לתוך שגרת 06% של הפריט 6% זפחסקסטחח בתפריט הדוגמה: 0 5 הטטק טחוח 0%\] = 66%660ה0.0א6 [5הסטק סטחוח פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 163 מאחר וערך מאפיין 6086%60 יכול להיות 6טזד או 8|56= בלבד, הקוד שכתבת עושה שימוש יפה בלוגיקת חשיבה בוליאנית בעזרת הפעולה 6סא. הפעולה מייצגת את ההפך של ערך בולאני כלשהו. לדוגמה: הפונקציה 6.0066660א6 זפחסקסטחוח %סא מחזירה את היפוכו של הערך הנוכחי של מאפיין 6066660 בפריט פחסטקסטחוח. התהליך ידוע כהיפוך (פַחו|89ָסד) ערך בולאני. בכל נקודה בתוכנית, מצב מאפיין 6066660 קובע אס המשתמש רוצה שהטופס יהיה מורכב מטקסט בלבד או לא. כמובן שניתן להגדיר את מאפיין 6066660 כבר בסביבת העיצוב אס נרצה שהפריט המדובר יהיה מסומן כאשר התוכנית מתחילה לפעול. . אזהרה: אין אפשרות להגדיר את מאפיין 6060660 של פריט הנמצא ברמה העליונה ביותר (על שורת התפריטים) כ-6טזד. אם תעשה זאת תופיע הודעת שגיאה. מאפיינים אחרים בוודאי שמת לב לשתי אפשרויות נוספות בעורך התפריטים. אפשרויות המגדירות את ערך מאפייני הס0ו05ק6ז60008\ ו-56 !אוססחו/\ של הפריט. חסו05ק806 6900 קובע אס והיכן יוצג הפריט בתוכנית, בעת הצגת תפריט המקושר לאובייקט המוטמע (0600060וח) בטופס (דוגמה, אס קיים מנגנון 6זסש\ פעיל המשמש לעריכת טופס). כאשר הערך של מאפיין ח00ו5סק6800806א הוא 0, התפריט לא יוצג בזּמן שהאובייקט פעיל. כאשר הערך שונה מאפס, הפריט יוצג לשמאל, באמצע או לימין התפריט המקושר לאובייקט (על ידי קביעת הערכיס 1,2,3 בהתאם). מאפיין 156 ושסטחוו\ קובע האס לתפריט הנוכחי תצורף רשימה דינאמית של טפסי משנה פעילים ביישומי 1סוז. כאשר ערך מאפיין ה הוא 6טזד, הפריטים יתווספו אוטומטית לתפריט בעת פתיחת טפסי בן (פוחזסת 6ו1ח6) ויוסרו כאשר הטפסים הללו ייסגרו. תוכל ללמוד יותר על נושא זה בפרק 17 יישומים בעלי ממשק מרובה מסמבים. יצירת תפריטים מקוצרים עד כאן למדת על שורת התפריטים המופיעה בראש החלון. 8856 |1808\ תומכת גס בתפריטים מקוצרים הנקראיס גס תפריטים מוקפצים (פטחסו כט-קסס). הכוונה היא לתפריטיס קטניס המוצגיס במקוס כלשהו בטופס, כתגובה לאירוע בתוכנית. בדרך כלל משתמשיס בתפריטיס מקוצריס כדי לטפל בפעולות או אפשרויות השייכות לאזור מסויס בטופס (ראה תרשים 6.10) - לדוגמה, תפריט מקוצר המופיע בשדה טקסט מאפשר לשנות את הגופן או את מאפייני הגופן בשדה. תוכל למצוא תפריטיס כאלה ברבות מתוכניות 5אוסחו/\ מהדור החדש, כולל 88516 |808ו/ עצמה. בעת הפעלת תפריט מקוצר, בדרך כלל על ידי לחיצה ימנית על אובייקט כלשהו, הוא מופיע על המסך ליד מצביע העכבר. במצב וה, המשתמש בוחר באפשרות מתוך התפריט. לאחר שנבחרה אפשרות, התפריט נעלס מהמסך. 4 סדנת לימוד 6.0 8\ | ום|=. כלים עיצוב הוספה תצוגה עריכה עזרה [תונים ו ] > 6 גזור = ₪ יי העתק 2 | |88 הדבק : 5 ?/ יי ₪ : / 6 עיצוב תאים... |+: | [ 4 : ל ₪ בחירה מרשימהו... תרשים 6.10: התפריט המקוצר, אשר מקושר לרשת, מהווה דרך נוחה להפעלת פונקציות בתוכניות המיוחדות לרשת יצירת התפריט תוכל ליצור תפריט מקוצר בדומה לאופן בו יצרת את התפריט הראשי בתוכנית - בעזרת עורך התפריטים. אולס, עליך לבצע צעד נוסף. התפריט המקוצר אמור להיות חבוי כך שלא יוצג על גבי שורת התפריטים. כדי להחביא את התפריט, עליך לקבוע את ערך המאפיין 6|פופו\ של התפריט, ברמה הגבוהה ביותר, כ-8|56=. הערה: ככלל, תרצה להחביא את פריט התפריט אשר משמש כתפריט מקוצר. אולם, באפשרותך להשתמש בכל אחד מפריטי הרמה העליונה גם כתפריט מקוצר. כלומר, תפריט מסוים יכול להיות גם תפריט מקוצר וגם חלק מהתפריט הראשי של הטופס. כדי להדגיס את התפיסה של תפריט מקוצר, הוסף תפריט פשוט לתפריט הדוגמה: 1 בעזרת עורך התפריטים, הוסף פריט חדש ברמה העליונה בסוף רשימת הפריטיס. קבע את ערך מאפיין חסו%ק63 כ-+הוחזס: ואת שמו כ-+הּוחזזס- טחוח. 2 הגדר את מאפיין 151916/ של פריט ז+הוחזזס= טחוח כ-3!56=. 33 צור את הפריטיס הבאיס תחת תפריט +החזס- : 36 הסוז 63 החסה טחוח 00 88|6 וז סה טחוח 6 6ז הסה טוח זז סח 8 4 סגור את עורך התפריטיס. שיס לב שהתפריט ז8חזס= אינו מופיע בשורת התפריטים. אולס הוא קייס וניתן לערוך אותו בעורך התפריטים. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 165 גס הטכניקה להוספת קוד לשגרת 0166 של פריטיס בתפריט מקוצר שונה מעט. אין אפשרות לבחור בפריט כדי לקרוא לחלון הקוד מפני שהתפריט אינו נראה לעין. אך תוכל לפתוח את חלון הקוד על ידי לחיצה על הלחצן 6006 צופו/ בחלון הפרויקט או לחיצה כפולה על הטופס. אחר תוכל לבחור את הפריט המבוקש בתיבת האובייקטיס הנמצאת משמאל למעלה. בדרך זו, תוכל לכתוב קוד עבור הפריטיס החבוייס. הפעלת תפריט מקוצר כדי להציג תפריט מקוצר על המסך, יש צורך להשתמש בשיטת גוחסוזקקסס. תוכל לעשות ואת על ידי קביעת שסם הטופס שבו התפריט יוצג, שיטת טחסוקטקסק, ושס התפריט המבוקש. למרות שניתן להשתמש בשיטה זו בכל מקוס בתוכנית, משתמשיס בתפריטיס מקוצריסם בעיקר כתגובה ללחיצות על הלחצן החימני של העכבר. כדי להדגים את השימוש בשיטה זו, צור תפריט מקוצר לדוגמה אשר מופעל כאשר המשתמש לוחי לחיצה ימנית על הטופס. אומנס בתוכנית מלאה המטפלת בטקסט, סביר כי המשתמש ילחצ לחיצה ימנית על טקסט נבחר, אך הצעדיס הבאים מדגימיס את הרעיון בכללותו: 1 פתח את חלון הקוד של הטופס על ידי לחיצה כפולה על הטופס. 2 פתח את תיבת האובייקטיס בחלון הקוד ובחר את הפריט 68016 וח'זוס= טחוח. 3 בשגרת א61!6 של פריט 80!6זהּוח'וס"טחוח, הקלד את שורת הקוד הבאה, אשר תגרוס לתיבת הודעה להופיע ולדווח שהשיגרה אמנס הופעלה: "0% 5016 0!|060ס )פטן טסצ" אס 50 4. פתח את תיבת האובייקטים בחלון הקוד ובחר וחיוס=. 5 פתח את תיבת השגרות בחלון הקוד ובחר את שגרת ק6פטסו. 6. הקלד את הקוד הבא לתוך שגרת ק560טס₪ של הטופס: הסח ד הסטם?זהטוחפע = הסחטפ זז רחס חר גוחסוסטססק. 1 הזוס + 0חם 7 שמור את התוכנית והפעל אותה. לחץ לחיצה ימנית על הטופס כדי לפתוח את תפריט +הוח'זס] ובחר באפשרות 80!4. בקטע הקוד שהקלדת זה עתה, השתמשת בשגרת כ [וספטסו\ לביצוע פעולה כאשר נלתצ לחצן בעכבר. השיגרה העבירה משתנה בשס חסאט8 המודיע איזה מלחצני העכבר נלחצ. מפני שרצינו שהתפריט יופיע רק במידה ונלחץ הלחצן הימני של העכבר, בדקנו את ערך משתנה חסטטפ. אס נמצא כי הוא שווה ערך לקבוע חסטטטטחטומפט (קבוע פנימי עבור ערך הלחצן חימני של העכבר), הוצג התפריט המקוצר. 6 סדנת לימוד 6.0 8\ הערה: תוכל ליצור מספר תפריטים מקוצרים ולהציג כל אחד מהם כתגובה ללחיצה על לחצנים שונים בעכבר, או באזורים שונים על גבי המסך. ערכי א ו-* המועברים לשגרת 56\(0טסו! מדווחים על מיקום מצביע העכבר בזמן התרחשות האירוע. שימוש בסרגלי כלים ב- ₪3516 |בּש5ו1 בוודאי שמת לב לכך שבתוכניות רבות המבוססות על פשוסחו/\ ישנס סרגל כליס אחד או שנייס בנוסף למערכת התפריטים. סרגלי כליס אלה מספקיס למשתמש דרך גישה מהירה לרוב הפונקציות השכיחות בתוכנית. מספר תוכניות אף משתמשות בסרגלי כלים לצורך ביצוע פעולות מיוחדות, כגון סרגל ציור הקיים ב- סזסש\ 6070506%ו1א. כאשר סרגלי הכלים הפכו נפוצים, המשתמשיס התרגלו לצפות להם בכל תוכנית. תוכל ליצור סרגל כליס בצורה מהירה ב- 8856 |1508/. למעשה, 6 8856 |הטפו\ מאפשרת שני סוגיס של סרגלי כלים: הסוג הרגיל והסוג המשופר, ז600!83. עקרונות סרגל הכלים למרות ששני סוגיס אלה של סרגלי כליס (הנראיס בתרשיס 6.11) מופיעים למשתמש בצורה שונה, שניהס משמשיס לאותה מטרה: לספק מערכת של לחצניס מאוירים, המאפשרים גישה לפונקציות שכיחות בתוכנית. פקד ז00!83ד מאפשר ליצור שישה סוגים שוניס של לחצניס: > לחצנים מסוג 5חס6טפח5נוש הפועלים כמו לחצני פקודה. > לחצני סימון (5ח0ט0א86ח6) הפועליס במצבי הפעל-הפסק, כמו תיבת סימון. * קבוצות לחצנים (פקטסזף חססשט8) הפועלות כמו לחצני אפשרויות (חסטקס 5חסטטס). > לחצני הפרדה (5ח60טפ ז0ז560678) היוצריס רווחיס בסרגל הכלים. > לחצני מרווח (פ5חסאטס ז0!06 866|ק) היוצרים שטח ריק אשר בו תוכל להציב פקדיס אחרים, כגון (אסט סטו600), על גבי סרגל הכלים. + לחצני תפריטים נפתחיס (5ח600טפ חצוס6-קסזס) מהס נפתחיס תפריטים המציגיס אפשרויות שונות בפני המשתמש. שו התתממממממממממממממורהקזין | אפסה | מן | תרשים 6.11: תפריט מסוג ז3פ!0ס6 הוצג לראשונה בתוכנת זסזס|קאם 66חזפ%ח1 פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 167 כדי ליצור סרגל כלים, יש צורך להשתמש בפקדים שוניס: אחד או יותר מפקדי זהםוססד ופקד 5% 18861. פקד 5% 18861 מכיל אוסף ציוריס הניתניס לשימוש על ידי פקדיס אחריס. במקרה זה, פקד זפפ!ססד מציג ציוריס מתוך פקד :108061159 על גבי הלתצנים. פקד 108861155 הינו חלק מתוך קבוצת חהסוח 60 פוסבחו\\ 6705066 0 60000!58. מידע נוסף על הקבוצה ניתן לקבל בפרק 12, הפקדים המשותפים של + ראה: פקד זפו61פַ3ו1₪: פקד משותף בסיסי, פרק 12. כדי ליצור פקד מסוג ז88|ססד על הטופס, יש צורך בהוספתו קודס לכן לארגז הכליס. לחץ לחיצה ימנית באזור ריק של ארגז הכליס ובחר %5ח6חהסקוחפ6 מתוך התפריט שיופיע. כאשר תיבת הדו-שיח של הרכיביס מופיעה, בחר את הקבוצה הראשונה של הפקדיס השכיחיס - 6.0 600015 חסווווח60 5עצססחו/ש 116705086 - כמוצג בתרשיס 2. קבוצת פקדים זו מכילה את פקדי סרגל הכלים הרגילים ואת פקד 8961.5%ח1. 000 נמצא בקבוצה השלישית (6.0 3 - ₪0|5ח60 חסו וח00 פאוססחו/\ 50סזסווא). בחר בקבוצה זו כדי להוסיף את פקד ז600|83 לארגז הכלים. - | 0905 פ630וספת1 | טס | בו 0 |סזשחס=) סזח51/י5 5]ס5סיסווי] 0 ופשח = הַסובום ספב ד :]ספסיסווי] יאוז | = (502) 5.0 5|סזלחס> חסותוחס-) פטשסבחו/א 50]'5סיסוי] 0 05 חס > חסוחהחס> פציסםחו/ 50%טזסוזיז וי 156 -- 6|טטסחח ע'זסַ355 /+151] ס)ח151יז 8 סח /'ז600ס3 = 1151001 ס)ח51וי] | 06 0 /" 6|סח ע'זסח35 = החש 01 ס)חז15י] + ץח 1605 560000 -][ 6.0 015-3 חס חסוחוחס= 5ווסםחו/\ 50% טסוה | | 33206% דיס יז 55 \5 פאז :6 = :חס106800 תרשים 6.12: | פקד 600!887 הוא קבוצה חדשה - חסו 60 פאוס0חו/\ 16705006 0 35 - 0015ח60. בחלקיס הבאיס תגלה כיצד לכלול את שני סוגי סרגלי הכליס בתוכניות שלך. 8 סדנת לימוד 6.0 8\ קביעת התמונות בסרגלי הכלים השלב הראשון ביצירת סרגל כליס כלשהו, כולל הוספת התמונות, אשר תוצגנה על לחצני הסרגל, לפקד 5% ו1806. בצע את הפעולות הבאות: 1 שרטט פקד מסוג 1806118 על הטופס ותן לו שס ייחודי. גודל הפקד 18061156 נקבע על ידי 8856 |1508/, זאת משוס שהוא אינו מופיע בעת פעולת התוכנית. לכן הוא נראה כתווית קטנה בזמן העיצוב, ללא קשר לצורה שבה הוא שורטט. 2 להוספת תמונות מסוג מפחטום לפקד, פתח את תיבת המאפיינים שלו על ידי לחיצה על הלחצן בנייה (...) המופיע בחלון המאפייניס בשורת המאפיין וחס5%ש6, או על ידי לחיצה ימנית על פקד 83961.15%ו1₪ ובחירת %165ז6כסיזופ. מתיבת דו-שיח זו, הנראית בתרשים 6.13, תוכל להוסיף תמונות מתוך קבצים גרפיים (מסוג 05 ו-5קְ8חטום) הנמצאים במחשב. - | 6 והשזוו -] 8 1 6%ח] ו 4 3] :)וס שהַהחז! סו" יסוס .. זגוזסו] +ז50ח! תרשים 6.13: בזמן העיצוב, תוכל להוסיף ציורים לפקד 18061155 על ידי שימוש בכרטיסיית הציורים הנמצאת בתיבת הדו-שיח של המאפיינים 33 כדי להוסיף תמונה לפקד, לח על הלחצן 516016 +1561. פעולה זו תציג בפניך את תיבת הדו-שיח 160076 56166% (בחירת תמונה), אשר ממנה תוכל לבחור תמונת סופ (מפת סיביות) או חסס1 (סמל), על פי רצונך. לאחר בחירת התמונה הרצויה, היא תתווסף לפקד ותוצג באזור התמונות. 4. לאחר הוספת כל התמונות הרצויות, לחצ על לחצן 0% וסגור את תיבת הדו-שיח. הערה: ב- 8856 |1508\ קיימים ציורים רבים המוטמעים בתוכנה. במידה ובחרת להתקין את הציורים הללו, הם יאוחסנו בתיקיה הקרו'ה 6800165 (מיקום התיקיה תלוי באפשרויות ההתקנה שבחרת וכן האם התקנת את 88566 |ה150 לבדה או כחלק מחבילת 5000 |808ו/). לאחר ביצוע הפעולות הנזכרות לעיל, פקד 108061150 שיצרת מוכן לספק ציוריםס לסרגל הכליס שלך. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 169 יצירת סרגל כלים רגיל כדי ליצור פקד ז83!|ססד רגיל, יש צורך להציב אותו קודס לכן על גבי טופס. בצע את הפעולות הבאות כדי לעשות זאת: 1 שרטט את פקד ז98|ססד בטופס. 8856 |508/\ מציבה את הפקד בראש הטופס. אורך הפקד מתאים לאורך הטופס. 2 יישר את סרגל הכלים. ניתן ליישר את הסרגל לכל צד או ליצור סרגל צף: % > כדי להציב את הסרגל בראש הטופס, השאר את ערך מאפיין חפָווג שווה ל- מס דחשו|4פט-1. <* כדי להציב את הסרגל בתחתית הטופס, קבע את ערך מאפיין הווא כ- והס80%% חטו!פע-2. <* | כדי ליישר את הסרגל לימין או שמאל הטופס, קבע את ערך מאפיין חפזוא כ- 616 1ח4ו|הפט-3 או ₪100 תףו!4פט-4 בהתאמה. במקריס אלה מומלצ לקבוע את ערך ח*6ו/ש בצורה ידנית כדי למנוע מהסרגל למלא את שטח הטופס לגמרי. - | שזנססותק | פחסססטם | = 00000 א06.₪] וס [= 7070000 פמסאקסוס0-660|6] =ששס0)אקסוםפ|ם [= ₪6 וח[ = 00000 <ח6)]: ₪06 !880 [= 00 שחא] סה !וס | :וקופ א :0 הס 620 6סהססבז/ ש] | 6קוחס)פםואוסו. שן 7 54028] ו הסטוום שפח <] 5 דוס >] 7 34525] :טסוו [= ---- 0.00006] :וס [= 630-] ו = 000000 חסוסהםוםא6דופו-ם] ובאט ד = 0000000 6פסו-] :6 | ופ | | | 38 תרשים 6.14: תוכל להקצות פקד 6115%פו1₪ לסרגל הכלים שלך בכרטיסיה |8ז8ח06 שבגיליון המאפיינים של הסרגל <+ | כדי ליצור סרגל צף, הגדר את ערך מאפיין 41:90 כ- 6חסאחף:ומפע-0. תוכל לקבוע את מיקומו וגודלו על ידי קביעת ערך מאפייני ה6%ו/ל ,קסד 16160 ו-16100%]. 0 סדנת לימוד 6.0 8\ 3 הצג את מאפייני הפקד על ידי לחיצה ימנית עליו ובחירה באפשרות 65זסקסזם. תרשים 6.14 מציג את הכרטיסיה הראשונה בחלון מאפייני פקד ז83|ססד. 4. | קבע את מאפיין 1₪36115% של הפקד כשם פקד 1346115%ח1 שיצרת קודס כדי לספק סמלים לסרגל הכלים. לחיצה על החץ הנמצא מימין למאפיין 15% 61פַהּוח1 פותחת רשימה של כל פקדי 1₪18861.15% הקיימיס בטופס הנוכתי. מספר מאפייניס בכרטיסיה |8ז6ח66 שבגיליון המאפייניס שולטיס במראה הסרגל ובצורת התנהגותו. מאפייניס אלה מתואריס בטבלה 6.3. טבלה 6.3: מאפייני פקד ז83וססד השולטים במראהו ובצורת התנהגותו שם המאפיין תיאור 06 | קובע האם תיראה מסגרת מסביב לסרגל הכלים או שלא תיראה מסגרת כלל. וס הסשטם | מגדיר את גובה הלחצנים בסרגל (ביחידות מואוד). חזו/\\הסט | קובע את רוחב הלחצנים בסרגל (ביחידות קושד). 6ח0לפ5ט6)ץשסו!\/ | קובע האם תהיה למשתמש אפשרות לשנות את סרגל הכלים על ידי הוספה, הסרה או הזזת לחצנים. 5 סח | קובע האם יוצגו תיאורי כלים בשעה שסמן העכבר מוצב מעל אחד הלחצנים. 6סהּססהּז/\\ | קובע האם סרגל הכלים יכול לגלוש לשורה הבאה במידה ויש יותר מדי לחצנים עבור שורת לחצנים אחת. סו | מגדיר פקד ‏ 1386118 שונה אשר ייספק סמלים עבור לחצנים מסוג חשוססקסזכ ו-66%656/6ח0 כאשר הם מופעלים. ציור חלופי יוצג גם כאשר מצביע העכבר נמצא מעל כל לחצן אם ערך מאפיין 56/6 הינו +8!=זפ+-1. כדי להשתמש במאפיין, ודא שאינדקס הציור המבוקש בפקד 180611585 המוקצה, שווה לאינדקס ברשימת הציורים הראשית. וק | מגדיר פקד 8% 61פָח1 שונה אשר ייספק ציורים ללחצני סרגל הכלים שמאפיין 80!60ח= שלהם מוגדר כ-8156=. כדי להשתמש במאפיין זה, ודא שלציור המבוקש בפקד 1838861156 יש אותו אינדקס שיש לציור ברשימה הראשית. קובע אם יתווסף אפקט תלת-מימדי לסרגל הכלים או אם הוא יופיע בצורה שטוחה. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 171 יצירת הלחצנים עבור סרגל הכלים השלב הבא ביצירת סרגל הכליס יהיה ליצור את הלחצניס אשר יוצבו בסרגל. למשימה זו, עבור לכרטיסיית הלחצנים בגיליון המאפיינים (ראה תרשים 6.15). |א. [ 5% ע!זסקסזק | 6 | 5חסלל 8 | |878ח6 | הסזוום 6/יס0ח6 9 4 ור .ו 5% :900פם 00 ו [= | 6955וקחטופו-ם] 6 0000007 6% ₪ [ז6!סתססב|₪] :חוטועצ =[‏ - 88סםו-0] 6 חן | [2 ו המיה פ | 7 = - | סו וסט ד שה הש = | ד 6 - > פופ חס )הסטום -ן | גת זז פה 1 4 בחסן | חס עסו כ ו | פא מ שאפך ו קן בוטהו קן תרשים 6.15: תוכל להקצות ציורים, מזהים, ואפילו תפריטים ללחצני סרגל הכלים באזור הלחצנים יצירת לחצן רגיל לסרגל הכלים כדי להוסיף לחצן לסרגל, לח על לחצן ה80%%0 +10561. במידה וכבר קיימיס לחצניס אחריס בסרגל, ייווצר לחצן חדש אחרי הלחצן הנוכחי. עבור כל לחצן שתוסיף יש להגדיר מספר מאפיינים : ע6א, 516 ו-806ח1. מאפיין צְ6א קובע שם אשר מזהה את הלחצן מצד התוכנה. תוכל לראות כיצד משתמשיס במאפיין ה בסעיף כתיבת קוד עבור לחצנים אליו תגיע עד מהרה. מאפיין ץ6א חייב להיות ייחודי לכל אחד מהלחצנים. כמו כן, יש להקצות שס אשר הינו בעל משמעות עבורך. בצורה זו, תוכל להיוכר במשמעות הלחצן בצורה נוחה יותר כאשר תכתוב את הקוד. מאפיין 10896 מגדיר את האינדקס עבור התמונה שתופיע על גבי הלחצן. האינדקס מתייחס לאינדקס של התמונה בפקד 10886115%. תוכל להגדיר ערך אפס למאפיין אס אינך מעוניין שתופיע תמונה על גבי הלחצן. תיבה וו תהיה אפורה עד אשר יוגדר זז עבור סרגל הכליסם. מאפיין 6!ץ+5 קובע את סוג הלחצן שברצונך ליצור. טבלה 6.4 מסכמת את הערכיס האפשרייס למאפיין 5|6. כל אחד מסגנונות אלה מוצג בתרשיס 6.16. 2 סדנת לימוד 6.0 8\ טבלה 6.4: ערכי מאפיין 56 הקובעים את צורת ההתנהגות של לחצני סרגל הכלים. ]ו 63 זט - 0 | הלחצן הינו לחצן רגיל. לחצן ז0[60זק 58/6 ב- 88516 |1508/\ א - 1 | הלחצן מציין שאפשרות מסוימת נמצאת לחצן 80!0 ב-0זסו\ במצב פעיל או לא פעיל לפי מצבו. קטסזסחסאטםזט - 2 | הלחצן הוא חלק מקבוצה. רק אחד מתוך | לחצני יישור ב-סזסו\ הקבוצה יכול להיות לחוץ בזמן נתון. זסז מז - 3 | הלחצן משמש כרווח בין לחצנים אחרים. רוחבו שמונה נקודות מסך (פופַאו). זז - 4 | משמש לשמירת מקום בסרגל הכלים תיבת הגופנים לפקדים אחרים כגון תיבה משולבת. ב-0ז0/\ חאוססקסזס זט - 5 | בשימוש עם טחסו!חסאטם כדי ליצור תיבת | לחצן חס 400 רשימה נפתחת בסרגל הכלים ב- 88586 1808 |< |ם)=. 8 [ 5 5 [ וס תרשים 6.16: בתרשים זה מוצגות .9 | | 5 \ = ו דוגמאות שונות לסגנונות לחצנים בסרגל הכלים. שים לב לכך שלחצני ההפרדה והמרווחים אינם לחצנים ממשיים. בנוסף לשלושת המאפייניס העיקרייס אשר דנו בהסם, תוכל לקבוע מספר מאפיינים נוספיס לכל לחצן בסרגל הכליס (ראה טבלה 6.5). טבלה 6.5: מאפיינים המקנים שליטה נוספת בלחצנים (אין חובה לקבוע את ערכם). הטקסט הנמצא במאפיין זה יוצג מתחת לתמונת הלחצן. טקסט המתאר את הלחצן בהפעלת תיבת הדו-שיח 60500026. 6% דקודוססד | טקסט זה יופיע כאשר מצביע העכבר נמצא על הלחצן. טקסט זה יופיע רק בתנאי שערך מאפיין 5קודוססד של סרגל הכלים הינו פטזד. 6 | המאפיין קובע/מחזיר מצב עדכני של הלחצן. ערך 0 מציין שהלחצן אינו לחוץ. ערך 1 מציין שהלחצן לחוץ. בדרך כלל משתמשים בלחצן כדי לקבוע מצב לחצן מסוג 66%50/66ח6 או לחצן בתוך קבוצה. בתוס הגדרת הלחצנים על גבי סרגל הכלים, תוכל לצאת מתיבת הדו-שיח עצוסטסיוק 5 על ידי לחיצה על לחצן 6ס. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 173 טיפ: במידה והציורים הנמצאים על גבי הלחצנים אינם נותנים תיאור מספק לגבי מהות הלחצן, מומלץ להשתמש בתיאורי כלים (5כט!ססד). תיאור כלי היא תיבת טקסט קטנה המכילה תיאור קצר של הלחצן. התיבה מופיעה על המסך כאשר המשתמש משהה לרגע את מצביע העכבר מעל ללחצן. בהתאם למאפייני התוכנית שלך, תוכל להשתמש בטכניקת קודוססד במקום בתיאור על גבי הלחצן עצמו, כדי לחסוך מקום במסך. ללא טקסט כלשהו המשתמש לא יוכל לדעת אילו שימושים ניתן לעשות בלחצן וייאלץ ללחוץ עליו כדי לברר מה תפקידו. ניתן להוסיף תיאורי כלים אשר ייתנו לתוכנית מראה מקצועי. הוספת לחצן מסוג תיבת רשימה נפתחת לסרגל הכלים פריט חדש ב- 6 8856 |808ו\ הוא לחצן בסגנון חאוססקסזסזטט. לחצן וה משלב לחצן רגיל עס תפריט רשימה נפתחת אשר יוצר אפקט הדומה לתיבה משולבת. הדוגמה הבאה מראה כיצד ליצור לחצן כזה ולתכנת את האירועיס הקשורים בו. יצירת סרגל כלים לדוגמה כדי להדגיס את השימוש בסרגלי כלים, חלק זה ידריך אותך ביצירת תוכנית דוגמה המכילה לחצן רגיל ולחצן מסוג חשוספ קסזפ יחד עס לחצן רווח המספק מרווח ביניהם. בצע את הפעולות הבאות : 1 צור פרויקט רגיל מסוג 5אם. הוסף פקד ז83|ססד ופקד 1₪346115% לטופס כמתואר בסעיפיס הקודמיס. 2 קבע את מאפיין סוחבּא של סרגל הכליס כ-סוחפפזטפ. השאר את מאפיין סוחבּא של פקד 15% 113961 כשס ברירת המחדל, 661115%1ַבּ1. 3 בדפי המאפיינים של 306115%1ו1₪ בכרטיסיה 188065, הוסף שני סמלים מתאימיס לפקד 1803461155 (לחץ על לחהצן 6זע:6וק 15675 ועיין בקבצי התמונות). סמלים אלה יהיו, בסופו של דבר, התמונות אשר יוצגו על גבי שני הלחצניס בסרגל הכלים. 4 לחץ לחיצה ימנית על פקד סרגל הכלים ובחר באפשרות 865ז6קסזפ. בדפי המאפיינים של סרגל הכלים, קבע את מאפיין 11461155 של סרגל הכלים כ-306115%1ח1 (שס פקד 15% 108061 שלך). 5 בכרטיסיית הלחצנים, לח על לחצן +ז1₪56. מאפיין 56/6 אמור להיות במצב ברירת המחדל שלו, |הוחזזסא'ופף - 0. קבע את ערך מאפיין צ6א כ-6!ו=עשסא. 6. קבע את ערך 11396 של הלחצן כך שיהיה האינדקס של הסמל המתאיס בפקד הֶז (אשר אמור להיות 1 במידה וביצעת נכון את הצעדיס הקודמים). 7 לת שוב על +18561 כדי להוסיף לחתצן. קבע את 55/16 כ- 562073%07זטז - 3. לחצן ההפרדה ייראה כרווח ריק בין הלחצניס הראשון והשלישי. 4 סדנת לימוד 6.0 8\ 8 לח שוב על לחצן +561ח1 כדי להוסיף לחצן שלישי. קבע את מאפיין 5/6 שלו כ- השססקסזסזט? - 5. קבע את ערך צְ6א שלו כ-+וסק6ז ואת ערך 1396 כאינדקס של הסמל השני בפקד 188461158 (2). קבע את מאפיין חסוזק63 כ-5610₪%א. 9 כדי להוסיף פריטיס נוספים לתפריט המקושר ללחצן זה, לחצ על לחצן +ו1056 חח 800 (הלחצן הנמצא במסגרת בחלק התחתון של החלון). הקלד 585% במאפיין +%א6ד של הפריט. 0. חזור על סעיף 9 כדי להוסיף את חלקי: 65%/\, חז500 ו-%31ח60. 1. לת על לחצן 0 כדי לסגור את דפי המאפיינים. לחצן חאוססקסזס אמור להופיע על גבי סרגל הכליס. כתיבת קוד ללחצנים ראית כיצד להגדיר את סרגל הכלים, אולס עד שתוסיף קוד לשגרות אירועי סרגל הכלים, התוכנית לא תבצע שוס פעולה. ללחצניס בסרגל הכלים אין אירועיס משלהס. במקוס זאת, יש לכתוב קוד פרטי עבור אירועי 800061166 ו-א₪0116ח6 הסט של סרגל הכליס עצמו. אירועיס אלה מעביריס את אינדקס ח0%50ט8 או טחסו\חסםיטם כמשתנה לשגרת האירוע. בקוד שלך תשתמש בערך מאפיין 6 של אובייקט הלחצן כדי לקבוע איזה לחצן נלתא. על ידי השלמת הפעולות בסעיפים הקודמים, יצרת סרגל כלים עס לחצנים יפים שאפשר ללחוצ עליהם, אבל הס אינס עושיס מאומה. יש צורך להוסיף קוד כדי להפוך אותס לשימושיים. כתיבת שגרת אירוע עבור לחצן בסרגל הכליס נעשית בצורה קצת שונה מאשר כתיבת שיגרה ללחצן רגיל. במקוס להשתמש בשגרת אירוע נפרדת עבור כל לחצן ותפריט, הקוד שלך חייב לבדוק את ערכי מאפייני האובייקטיס כדי לקבוע איזה לחצן או תפריט נבחרו. הקלד את הקוד המוצג בתוכנית 6.1 לתוך חלון הקוד של הטופס. תוכנית דוגמה 6.1: ק8/. סואםסאטד - שימוש בקוד לצורך הפעלת סרגל כלים +וסו|קאם חסטקס 508 35 הסוס60חה6זוט56 חחוס (חסאטפ.טו 6060 5 הסטם |3/ץ)אסווחהסאם סוהסכזס סטפ סספעווק (ץ6א. הסט )6856() 6856 50|606 "= |זח/\ם\]" 6856 6 0065 6 שוח 8 676806 %0 6006 ".. .6 צ\6ח 3 0768000" אס 50 "סקא" 6856 חסו60ז 66% 6+ השואו סקס 8 070806 סה |ו68 סח 50 0ח= פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 175 (ח6ו חס טם. סו 00601 5 טחשו הסט |3שץ2 )א6ווט חס הסט סותסכזס+ 5 ססהטוזק חסו6 56!66060 ץ|צוסח 606 חחו5 +וסכןסז 3 076866 (0א6 ד חס הס )0856(\ = הסוס6 566 566 = הססכה6.)חסזהּק. הסוא הסטוום +60 66הו ||68 50 0ח= ()+60 36 5 59 5 6 57 וחוכ החד "" = (הסו60ח6ו50)וחוזד זז "5" = הסו60 566% + 0חם הסוח 56 8 " סז סקז 076800" = קוח6 5 "... הסוס " 8 קרח6 51 = קוח6 ]5 6 51 50% 150 ...6 00 פסחו! 6768000 - +הסק6 |6008' 50 0ח= לאחר שהקלדת את הקוד, הפעל את התוכנית ובדוק את התנהגות לחצני סרגל הכלים. השגרות הנקראות הן למעשה שגרת 0166 עבור פריטי התפריט. בעזרת השגרות אשר נקראו, תוכל לכתוב קוד אשר יבצע פעולה פעס אחת ואחר לקרוא לו מהתפריט או מסרגל הכלים. דרך זו מקלה על ניהול הקוד מפני שיש צורך לבצע שינוייס או תיקוניס בחלק אחד בלבד. בנוסף, שיס לב לפקודת 6856 56!605 אשר מופיעה כאן לראשונה ומהווה תחליף נוח למערכת פקודות . תוכל ללמוד על כך יותר בפרקיס הבאיס. ראה: שימוש בפקודה 6358 56166% בפרק 10, שליטה במהלך התוכנית. יצירת סרגל כלים המכיל קוד למרות העובדה שהינך יכול ליצור סרגל כליס בסביבת העיצוב בלבד, תוכל בנוסף לכך ליצור ולשנות סרגל כליס בזמן פעולת התוכנית בעזרת קוד. כדי להשתמש בסרגל הכלים ובפקדיס נפוציס אחריס בצורה טובה, יש צורך להבין את המונח אוסף (ח601!6600). 6 סדנת לימוד 6.0 8\ הבנת המושג אוסף אוסף הוא קבוצת אובייקטים. במקרה של פקד 108961155 תמצא אוסף הנקרא 5 האובייקטיס האגוריס באוסף מיוחד וגה הס הציוריס בפקד 5% 61טח1. על ידי טיפול באוסף 115018065 בתוכנה תוכל להוסיף, להסיר ולשנות ציוריס. חשוב על אוסף כדבר הדומה, אולס לא זהה בדיוק, למערך. תוכל לגשת אליו בדרך שניגשיס למערך, כמו בדוגמת הקוד הבאה אשר הופכת תמונת טופס לציור הראשון האגור בפקד 15% |386ּח1. זו סוק ( 1 )150178065 1. 1561 1806 = שזנססוק. 1 סז 56% שיס לב לכך שהקוד מתייחס לאובייקט מסויס בעזרת האינדקס שלו - במקרה זה, 1. זכור כי אוסף מכיל אובייקטים, בניגוד למערך נתוניס המכיל ערכים. לאובייקטיס אלה יש סט מאפיינים משלהם. לאובייקט באוסף של לחצנים יש מאפיין מיוחד: מאפיין צְ6א. מאפיין ץ6א של אובייקט מסוג לחצן הוא מחרוזת טקסט אשר ניתן להשתמש בה באותה הצורה שבה משתמשים באינדקס : 6ז וק "866 6!ור5 )5073065 151.1 108061 = 6זנססוק. 1 וחזס1 56% בעקרון, מאפיין /6א באובייקט מסוג לחצן נקבע כאשר האובייקט מתווסף לאוסף הלתחצניס באמצעות שיטת ההוספה בפרמטר ע6א של האוסף. יצירת סרגל הכלים כדי ליצור פקד מסוג ז9פ!|ססד בקוד, יש צורך להגדיר פקד 15% 18061 לפני כן (בסביבת העיצוב או בעזרת קוד) ולמלא אותו בציוריס. לאחר מכן תוכל להקצות את פקד לסרגל הכליס בעזרת פקודה שכצו: 1 1 = 5% 061הח1. חוה!זס+ 561 אחר כך, תוכל לעצב את אוסף הלחצניס של סרגל הכלים כדי ליצור לחצניס המיועדיס לסרגל. בדוגמה הבאה, מתווספים לחצן רווח ולחצן רגיל לפקד סרגל הכלים, חוג\זפז: 0 ,07ז560078ז0+ ,"5601" ,1 00ג.פחסחטם. חוהּוזזוס+ 1 0ו680ז0+ ,"6!ו= הססס" ,"הסקס" 2 00 פהסחטם. חופּואזס+ בדוגמה זו, נוספו שני אובייקטים מסוג לחצניס באוסף הלחצנים על ידי שימוש בפקודת 406. שני הפרמטריס הראשוניס מהוויס את האינדקס והמפתת (שְ6א) של הלחצן. שני אלה חייבים להיות ייחודיים. הפרמטר השלישי הוא כותרת הלחצן (ח680₪0). הרביעי (8%00ז6ק56זטץ ו-%וטפ)6סזש) הוא קבוע המייצג את סוג הלחצן. לבסוף, מספר אינדקס מתוך רשימת הציוריס קובע את הציור המשויך ללחצן. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 177 פקודת ₪00 יכולה לתפקד גם כפונקציה. בצורה זו, היא תיצור אובייקט לחצן חדש ותחזיר את המצביע שלו. תוכל לכתוב את הקוד הקודס גס בצורה כזו: הסט 45 חזם וס (0 ,8%07ז5606זס? ,,"5601" ,) 00ה.פ5חסאטם. חופּוזטז = חזס 56% 0וטפ6כזפ? ,,"הסקס" ,) 5.00חסאטם. חוהּויזט+ = חס 56% "6 3 הסקס 0 >6ו|6" = %א6 דכו דוסס ד.חז₪ "ש|ן] השס" = חה63000.ח₪0 1 = 306ח1. חז₪ שיס לב לכך שמאפיין 6%זקוזוססד חייב להתווסף לאובייקט הלחצן מפני שהוא לא נמצא בפרמטרים של פקודת 200. בנוסף, בדוגמה הקודמת, לא הוגדרו מאפייני אינדקס על ידינו ולכן הס הוגדרו בצורה אוטומטית. בעקרון, שיטה זו היא הדרך המועדפת לתכנות מפני שככל שאובייקטים מתווספים ומוסרים מאוסף מסוים, אינדקס האובייקטים האחרים עלול להשתנות. פרמטר עְסא, לעומת זאת, ישויך תמיד לאותו האובייקט. תוכל להשתמש במאפיין שא של הלחצן בתוכנית שלך כדי לקבוע איזה לחצן נלתצ. לדוגמה, הנה קוד המיועד לשגרת 8000166 של סרגל הכלים : (חסאטם. סו |ו61ר 60 5 הסט |8\ץם )אסוושחסאטם 1זהּפוסס ד סט5 6זבּעוזק ץ6א. הסט 6856 -56|60 "חססס" 6856 6זסח 6006 16 הסכס +וספחזי "58/6" 6856 6ז 6006 6| 58/6 +וספחזי "ואס" 6856 החהזססזק 66 0ח6 %0 6006 +וספחזי + וח 50 0ח= הדוגמה, אשר הובאה כאן, עובדת בצורה טובה עבור לחצניס מסוג %|6)80סזפ+. אולס, אס קיימים לחצנים מסוג 69700666 יש לשנות את הקוד כך שיבדוק גם את ערך מאפיין 6ט|8\ כדי לדעת מה מצב הלחצן: "00|0)866" 6856 ח6ח+ 65560זסח(\זס+ = 6טוגּ/\. חסטטם ]1 8 וספ חזטד - "ם[(" 15 חסאטפ' 56 חס 6ו0פ חזטוד - "השוסם" 15 חסאטפ' + 0ח= 8 סדנת לימוד 6.0 8\ במידה ותקבע את ערך מאפיין 60596או₪ של לחצן כ-6טזד, הלחצן יהיה אפור תמידית, ללא קשר לערך מאפיין ס6טופ/. מתן אפשרות למשתמש לעצב את סרגל הכלים אחד הדברים היפים בפקד מסוג ז0!88סד היא היכולת לאפשר למשתמש לעצב את הסרגל על פי בחירתו. כאשר מאפיין 6<ווחסזפו6אוסו|8 נקבע כ-6טזד, יש למשתמש גישה לתיבת הדו-שיח 6₪5%0₪0126 על ידי לחיצה כפולה על הסרגל. תיבה זו, הנראית בתרשים 6.17, מאפשרת למשתמש להוסיף לחצניס לסרגל, להסיר לחצניסם או להזיו אותם למקוס אחר. ו :וגוט סבה תרשים 6.17: מאפיין 26ווחסזספנו6אוסו| מאפשר למשתמש לעצב את סרגל הכלים לפי טעמו, ללא צורך בהוספת קוד נוסף שימוש בפקד מסוג 600/83 פקד 'ז600183, שהוצג קודס לכן בתרשיס 6.11, הינו פקד מיוחד המכיל פקדים אחריס אך נראה כמו סרגל כלים. פקד וה אינו מכיל אובייקטיסם שהס לחצנים מובנים כמו סרגל הכליםס הרגיל, אולס משוס שהוא משמש כמכולה לאובייקטים, ניתן לשמור בו גם אובייקטיס מסוג לחצניס ואף אובייקטיס מסוג סרגלי כליס. פקד ז600!88 מכיל אוסף של קבוצות אובייקטים אשר כל אחד מהסם הוא מכולה קטנה יותר שהמשתמש יכול לשנות בזמן פעולת התוכנית. כדי להדגים כיצד פקד 600/88 מסוגל להכיל פקדים אחרים, הבה נרחיב את הדוגמה מסעיף קודם. בצע את הפעולות הבאות: 1 אם לא עשית זאת לפני כן, הוסף פקד מסוג ז600!83 לארגז הכלים על ידי בחירת 0/0 3 - 600%"05 הסוחוח60 5שס6חו/\ 1100504 מתיבת הדו-שית 5 וה 0 6. 2 שנה את ערך מאפיין ח9וו4 בסרגל הכליס שיצרת לפני כן ל- 6חסאחשו!\פט - 0. גרור אותו לשטח פתוח בטופס וכוון את רוחבו כך שיהיה רחב מספיק כדי להציג את הלחצניס שהוספת לפני כן. 3 לח לחיצה כפולה על סמל 600183 בארגז הכלים כדי להוסיף פקד זַ600!83 לטופס. 4. לח על פקד 600183 כדי לבחור אותו. לחצ על סמל ח80550 הח וח 60 וצייר לחצן פקודה מעל לפקד 600!831. פרק 6: שליטה נוספת למשתמש: תפריטים וסרגלי כלים | 179 .10 .1 צור שגרת 016% פשוטה עבור הלחצן, והוסף שורת קוד כגון: "1 60 6>60ו!6 טסצ" אס 0פ!ו לחצ לחיצה ימנית על סרגל הכליס ובחר באפשרות טס כדי להסיר אותו מהטופס ולהציב אותו בלוח של פושסטחוצ\. לח לחיצה ימנית על פקד 600/83 ובחר באפשרות 6ִ35פ. סרגל הכלים הנמצא בלוח יועבר לתוך מכולת ז600!83. לחצ לחיצה ימנית על שטח ריק בפקד 600183 (אל תלתצ על פקד זבּפ!ססד או על הלחצן). בחר במאפיינים כדי להציג את תיבת הדו-שיח 23965 עזוסקסיוש של הפקד. הכרטיסיה 83065 של 3965 עזזוסקסזופ מכילה מאפייניס עבור כל אחד מחלקי הפקד. חלק 1 אמור להיבחר בתיבת האינדקס בחלק העליון. פתח את רשימת 4 ובחר סוחספזפץ. פעולה זו מורה לפקד ז600!83 להציג את סוחספזט+ במיני-מכולה 1 0ח88. שנה את האינדקס ל-2 כדי לבחור את החלק השני. קבע את מאפיין 6!וח6 שלו כ-01ח3ח וח 60 (הלחצן שהוספת לפני כן). לח על לחצן 0 כדי לסגור את 23465 ץזזסקסזפ. בומן שפקד זַ600!83 עדיין נבחר, עבור לחלון המאפייניס ושנה את מאפיין חףו| שלו ל- קסדחשו|ופט - 1. כאשר סיימת את הצעדים הללו, הפעל את התוכנית וצפה בהתנהגות האובייקטיס הנמצאים בפקד :600|838. תוכל לחקור אותס על ידי הצבת סוגים שונים של אובייקטיס בפקד זה בתוכניות שלך. מכאן... פרק וה הציג בפניך את היתרונות של יצירת תפריטים וסרגלי כלים בתוכניתיך. תקוותנו היא כי ראית כמה פשוט ליצור את הפריטים הללו. בנוסף, נחשפת למספר נושאיס אחרים בפרק זה. כדי לקבל מידע נוסף עליהם, פנה לפרקיס הבאיס: %, *% . למד כיצד להשתמש במסמכים לשם בניית יישומים בפרק 3 אבני היסוד של 6 | 5ו/. למד דרך נוספת ליצירת קשר בין התוכנית למשתמש בפרק 7 שימוש בתיבות דו- שיח לקבלת מידע. למד עוד על שימוש במשתנים לשס אחסון מידע שוטף בתוכניותיך, בפרק 8 שימוש במשתנים לאחסון מידע. 0 סדנת לימוד 6.0 8\ 7 שימוש בתיבות דו-שיח לקבלת מידע פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 181 תיבת דו- שיח (א80 8ַסו8וכ), היא חלון המשמש להצגת/השגת מידע. השם ייתיבת דו-שיחיי מרמז על כך שמדובר למעשה באמצעי שיחה, או יידיאלוגיי, עס המשתמש. בדרך כלל מוצגת תיבת הדו-שיח בתוכנית באופן מודאלי (שוו003) שבו על המשתמש לסגור אותה (או '*להשתתף בדו-שיתיי) בטרס יוכל להמשיך הלאה, לחלקיס אחרים בתוכנית. בפרק וה תערוך היכרות עס שתייס מתיבות הדו-שיח המובנות ב- 6 |8ש5\: תיבת ההודעה (א80 655806!/) ו- תיבת הקלט (אסם %טסח1). אחר כך תלמד להשתמש בפקד המותאם אישית - 08|וסהסוה60, המאפשר לך לשלב בתוכניתך ארבעה סוגיס נוספיס של תיבות דו-שיח תקניות (ייסטנדרטיות'י). ובסוף, תערוך היכרות ראשונית עס מספר קוויס מנחים, אשר יסייעו לך ביצירת תיבות דו-שיח מבוססות-טופס משלך. יידוע המשתמש לגבי מצב התוכנית ופעולותיה חלק חשוב בכל פרויקט תכנות הוא מסירת מידע למשתמש באשר למידת התקדמותה ומצבה של התוכנית. טפסים ופקדים הס אומנס החלק העיקרי בממשק שלך, אך אינס בהכרח האמצעי הטוב ביותר להצגת מידע המחייב את תשומת ליבו המיידית של המשתמש, כגון - הודעות אזהרה וטעות. תיבת הודעה (א80 6558096!/) היא האמצעי הטוב ביותר להצגת מידע מסוג זה. הכרת תיבת ההודעה - 80% 1655306/] תיבת ההודעה היא טופס פשוט המכיל הודעה ולפחות לחצן פקודה אחד. הלחצן מיועד לאישור ההודעה וסגירתה. הואיל ותיבות הודעה הן חלק אינטגרלי משפת |8טפו\ 6, אינך צריך לדאוג לאופן יצירתן או עיצובן. כדי לראות תיבת הודעה פשוטה, הקלד את שורת הפקודות הבאה בחלון 1600886 של 8856 |508ו\ (לצורך פתיחת החלון בחר שסו/, עשסבחו/\ 6018%6חחחחן) : "!8510 |הטפו/ סעס! 1" אס 150 באמצעות שימוש בפרמטרים אופציונליים, ניתן להוסיף לתיבת ההודעה סמלים ולחצנים שוניס המאפשריס דו-שיח עס המשתמש. שורת הקוד הבאה יוצרת את תיבת הדו-שיח המופיעה בתרשים 7.1: "60| וחזוחס6" , הסוטהרחהוסאש טע + 650 ץפץ ,"? 6000 61606" אס ספ הערה: אתה יכול לנסות את הדוגמה בעצמך. הקלד את שורת הקוד בחלון 866ו60חחח] והקש זסזחם. פעולה זו תגרום להפעלת הפקודות בדומה להפעלתן בזמן ריצה. 12 סדנת לימוד 6.0 8\ תרשים 7.1: תיבת ההודעה מתקשרת עם המשתמש אתה יכול לנצל את תיבת ההודעה לשתי מטרות שונות, בהתאם לצרכיך: התיבה יכולה להוות כלי פשוט להצגת מידע, או לחילופין, פונקציה המאפשרת למשתמש להחליט לגבי סוגיה כלשהי בתוכנית. בכל מקרה, יהא עליך להשתמש, באופן כלשהו, בפונקציה א15980!. הערה: פרק זה אינו מבצע אבחנה טרמינולוגית בין פונקציות (5חס6חט-) להצהרות (05ח66ז5%0), עם זאת, קיים הבדל בין השימוש ב-א15480%! כפונקציה או כהצהרה. על פי ההגדרה, פונקציה משיבה אל התוכנית ערך כלשהו, בעוד שהצהרה לא. גם התחביר המשמש בכתיבת הפרמטרים של פונקציות והצהרות שונה במקצת. פרמטרים של פונקציה יבואו תמיד בתוך סוגריים. לדוגמה - אם אתה מעוניין לצפות בערכים שנקלטו בפונקציית א5080י! הקלד את שורת הקוד הבאה: ("6ז6! הזו ח00" ,הסטהוחהּ !סאפ + ס65 טע ,"? 6600 666!ס") א0ם 150 זחויוק תיבת ההודעה הינה שימושית ביותר, אך יש לה גס מספר מגבלות : > לא ניתן להכניס לתוכה קלט בצורת טקסט. התיבה מוגבלת להצגת מידע וטיפול במספר מסויס של אפשרויות, המתורגמות ללחצני פקודה. + ניתן לשב בתיבה אחד מתוך ארבעה סמליס מוגדריס מראש, ואחת מתוך שש מערכות מוגדרות מראש של לחצני פקודה. אין אפשרות לשלב בתיבה סמליס או לחצני פקודה משלך. * תיבת ההודעה עוצרת את המהלך השוטף של התוכנית וממתינה להתייחסות המשתמש. לפיכך, אין היא יכולה לשמש כלי למעקב שוטף אחר התקדמות התוכנית, שכן כל עוד היא מופיעה על המסך, לא ניתן לבצע את חלקי התוכנית האחרים. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 183 הצגת הודעה הדרך הקלה ביותר ליצור תיבת הודעה עבור התוכנית שלך, היא על ידי שימוש בפונקציית א15980] כהצהרה, ולא כפונקציה (כלומר מבלי להחזיר ערכיסם לתוכנית). באופן ה אתה פשוט קובע את נוסח ההודעה אשר אתה מעוניין להציג למשתמש, וקורא לפונקציה א15480 כדי לבצע את מבוקשך. תיבת ההודעה מכילה, במקרה זה, הודעה כלשהי ולחצן 0% בודד, המאפשר למשתמש לאשר את תוכן ההודעה: "!60 15 0חו6655סזכ 66070" אס 50 בעת קביעת נוסח ההודעה, אתה יכול להשתמש בקבוע מחרוזת (0ח508ח60 פַחו5) או במשתנה מחרוזת (80!6וז8/\ פַחו50). קבוע מחרוזת הוא קטע טקסט מוגדר הנתון בין שני סימני גרשיים, כפי שמציגה דוגמת הקוד האחרונה. משתנה מחרוזת מוצג בדוגמה להלן: 590 5 6 דץ5 "סוזס/\\" .8 + הסט 8 ",סוו6ר]" = אאם דעויו5 ד אס 15 שיסם לב לשימוש בקבוע המוגדר מראש - +ה0פץ, המייצג את הצירוף הזז 1600/68771896 6חו!, במטרה לגרוס למלליס 'יסו|6יי ו-ייח!זסצציי להופיע בשורות נפרדות. שילוב זה הוא שווה ערך לשילוב: (13)זח6 8 (10)זחס. תיבת ההודעה, המתקבלת במצב ברירת מחדל, מכילה לחצן 06 בודד ומשתמשת בשס הפרויקט שלך ככותרת (כדי להגדיר שס פרויקט משלך בחר באפשרויות 666[סזפ, 5 תוכל יילאבזריי מעט את התיבה באמצעות שני פרמטריסם אופציונליים : ארגומנט פחסשטפ וארגומנט 06. ארגומנט פחסשטט הוא מספר שלם, באמצעותו ניתן לבטא את הסמל שנבחר עבור תיבת ההודעה, את מערכת לחצני הפקודה ואת הלחצן המשמש כברירת מחדל. ארגומנט ₪06 הוא מחרוזת טקסט המכילה את שורת הכותרת של תיבת ההודעה. להלן פורמט ההגדרה המלא של תיבת ההודעה: ([60)ח00 ,6/00/6 ,] [₪6 ,] [|5חסש0 ,] קוחסזק) אס80 5 אס אתה מעוניין, תוכל לשלב בתיבת ההודעה אחד מבין ארבעה סמלים אפשרייםס. בטבלה 7.1 תמצא סיכוס קצר של ארבעת הסמליס אשר ניתן לשלב בתיבה, לצד מטרת השימוש בהם. 4 סדנת לימוד 6.0 8\ טבלה 7.1: סמלים המעידים על סוג ההודעה המוצגת בתיבת ההודעה שם הסמל שימוש מקובל הודעה חשובה ביותר | מעיד על התרחשותה של שגיאה חמורה. בדרך כלל התוכנית תיסגר לאחר הופעת הודעה מסוג זה. אזהרה מעיד על התרחשותה של שגיאת תוכנית העלולה להוביל לתוצאות בלתי רצויות אם לא תתוקן על ידי המשתמש. שאילתה מורה על כך שהתוכנית זקוקה למידע נוסף מן המשתמש בטרם תוכל להמשיך בעיבוד הנתונים. הודעת מצב יידוע המשתמש לגבי מצב התוכנית. לעיתים קרובות נעשה שימוש בהודעה מסוג זה לציון סוף תהליכים שונים בתוכנית. הגדר ערך עבור ארגומנט פחסטם בפונקציה א5080!, כדי ש- 8856 |8טפו/\ תדע כי אתה מעוניין לשלב סמל בתיבת ההודעה שלך. ניתן לבחור עבור ארגומנט פ5חסטטפ אחד מבין ארבעת הערכיס המובאיס בטבלה שלהלן ולבטאו בפונקציה כמספר או כקבוע. 4 ו אזהרה הודעת מצב | ₪ | הסוסהותזסזח1טע טיפ: 4 הסה ח6|3א= ט/ באופן עקרוני, רצוי יותר להשתמש בקבועים (ולא בערכים מספריים) להגדרת ערכי הארגומנטים. שימוש נכון בקבועים יקל על קריאת תוכניתך ויחסוך ממך כאבי ראש מיותרים במקרה ש- 67050%! תחליט לשלב בגרסאות עתידיות, ערכים מספריים חדשים. כמו כן שימוש בקבועים הופך את הקוד לקריא יותר עבור מפתחים אחרים אם וכאשר יצטרכו לתחזק את הקוד. הערה: הקבועים המופיעים בטבלה אחראים גם על הצליל המופק על ידי פשססחו/\ בעת הופעת ההודעה על המסך. תוכל להגדיר צלילים עבור סוגים שונים של הודעות באמצעות לוח הבקרה של פטוספחו/\. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 185 להדגמת אופן השימוש בסמלים וכותרות בתיבת ההודעה שלך, הקלד את שורת הקוד הבאה, הגורמת ליצירת תיבת ההודעה המוצגת בתרשים 7.2: "סרח ח160" , חספ זוסזח1טע ,". חססו חג 5הו%9ח60 אסס 655806 פוח ד" אס 50 6 ור" .מססו ח3 5חוב)חס0 אפ 855306 פוח ד (1\ תרשים 7.2: השתמש בכותרות וסמלים כדי להבליט את מאפייני ההודעה ערכים המוחזרים על ידי פונקציית א80ש5ו/ כפי שכבר למדת, נוח להשתמש בפונקציה א115480 כדי להתריע בפני בעיות שונות או להודיע למשתמש שעליו לבצע מהלך מסוים. אולס, כאשר נדרשת התחלטה מצד המשתמש בעניין כלשהו, עליך להשתמש בערכים המותחזרים על ידי הפונקציה 158808 קיימיס שני הבדלים עיקריים בעת השימוש בפונקציה באופן זה: עליך להתייחס לערך המוחזר, לרוב על ידי הגדרתו כמשתנה, ולתחס את הארגומנטיס של הפונקציה בתוך סוגרייסם. הערך המותחזר מייצג את הלחצן אשר נבחר על ידי המשתמש. שורת הקוד הבאה מדגימה כיצד להגדיר את הערך המוחזר כמשתנה, כדי שניתן יהיה לעשות בו שימוש בהמשך: | ,|66ה03ץ סט ,"הווח סק65ז %סח 5 וססחוזק שח ד") אס 150 = 6|טפסחח ("!זסזח= זס)חוזק" בהמשך התוכנית תוכל לבדוק את הערך שנקלט במשתנה 650|6ח באמצעות משפט )1 למשל, ולהגיב בהתאס לתוצאה שתתקבל. הערה: 6 |8טפו\ מתריעה על כל שימוש ב-א5480! כפונקציה במידה ולא הוקצה משתנה לקליטת הערך החוזר (כלל זה תקף עבור כל פונקציה). 6 סדנת לימוד 6.0 8\ בחירת מערכת לחצני הפקודה בתיבת ההודעה ניתן לשלב אחת משש מערכות הלחצנים הבאות : 1 א0. הצגת לחצן בודד בשס 06. הלחצן משמש פשוט כדי להבטיח שהמשתמש יתייחס להודעה בטרס תמשיך התוכנית בפעולתה. + א0, ]68006. הצגת צמד לחצניס המאפשרים למשתמש לבחור בין אישור ההודעה לביטול המהלך. + %וסכה, ץ₪607, 076ח10. הצגת מערכת של שלושה לתחצניס המשמשת בדרך כלל בהודעת טעות. באפשרות המשתמש לבחור בין ביטול המהלך, התחלתו מחדש או המשך ביצועו תוך התעלמות מן הטעות שנתגלתה בו. 65+, 0א, ]68066. מערכת של שלושה לחצניס המשמשת בדרך כלל בהודעת שאלה. המשתמש יכול להשיב לשאלה בייכןיי או יילאיי, או לחילופין, לבטל את המהלך כולו. + 65ץ, סא. הצגת צמד לחצנים עבור שאלות ייכן-לא'י פשוטות. + ץז800, [68066. הצגת צמד לחצניס המאפשריס למשתמש להתחיל במהלך מחדש או לבטלו. מקובל להשתמש במערכת לחצנים זו כאשר המדפסת אינה מגיבה. במקרה זה, המשתמש יוכל להמשיך במהלך לאחר תיקון התקלה, או לחילופין, לבטל את ההדפסה. כדי לשלב בתיבת ההודעה את מערכת הלחצניס המתאימה, הגדר ערך עבור ארגומנט 5סאטט בפונקציה א15080\. בטבלה 7.2 תוכל למצוא את הערכיס המשויכים לכל אחת ממערכות הלחצניס האפשריות. טבלה 7.2: בחר עבור הארגומנט פחסשטט את אחד הערכים בטבלה כדי לשלב בתיבת ההודעה את מערכת הלחצנים המתאימה 6, |66ח68 00| |68066א0/ |0 ₪שקשאש | 4 | מאסשאטור 8%%---%- הש ראשש הואיל וארגומנט פחסשטפ אחראי הן לסמל והן ללתצני הפקודה של תיבת ההודעה, אתה בוודאי שואל את עצמך האם וכיצד ניתן להגדיר את שני הערכיס במקביל. הגדרתס של קבוע הסמל וקבוע לחצני הפקודה, במקביל, יוצרת ערך מיוחד. פונקציית פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 187 5808 יודעת לפרק את הערך המיוחד ולחלקו לערכים עצמאיים, המייצגים כל רכיב של תיבת ההודעה בנפרד. שורות הקוד הבאות מראות כיצד ניתן לשלב קבוע סמל וקבוע לחצני פקודה בהודעת אזהרה, המאפשרת למשתמש לבחור אחת מבין שלוש פעולות אפשריות. תוצאת הקוד מופיעה בתרשיס 7.3: 6 סט + הסטהוה=!סאםפע = |סקסח ("חסםסו|כקה ץע" ,וה קסח ," .656 זסח 065 6ון=") אס0 ₪50 = |ה\סמחח הערה: אם אתה מעוניין לשלב בתיבת ההודעה גם לחצן 0ו6, הוסף להגדרת הפונקציה את הקבוע חסשזטםק!6א0םטפופע, אשר מקבל ערך של 16384 עבור כל מערכת לחצנים אליה הוא מצורף. 4 .51 ]סח 4065 שו | 6זסחום! | עזופם 1 תרשים 7.3: ארגומנט פחסשטט אחראי הן לסמל והן ללחצני הפקודה המוצגים על ידי הפונקציה א15480! הגדרת לחצן ברירת מחדל כאשר תיבת ההודעה מכילה יותר מלחצן אחד, באפשרותך להגדיר אחד מן הלחצניס כברירת המחדל. לחצן ברירת המחדל (חסטטם +/6/90כ) הוא זה המצוי במיקוד בעת הצגת התיבה. בדרך כלל, ייבחר לצורך העניין הלחצן אשר קיימת סבירות גבוהה כי בו יבחר המשתמש, לפיכך, כל שעליו לעשות הוא להקיש על מקש זפטחם. לדוגמה, אס יצרת תיבת הודעה אשר באמצעותה מתבקש המשתמש לאשר מחיקת רשומה, מוטב יהיה אם תגדיר, כברירת מחדל, לחצן המונע את מחיקת הרשומה. באופן זה אתה מבטיח כי מחיקת הרשומה תיעשה מתוך בחירה מודעת של המשתמש. כדי להגדיר את לחצן ברירת המחדל, הוסף קבוע נוסף להגדרת הפונקציה א5980!. תוכל לבחור אחד מבין ארבעה ערכי ברירת מחדל אפשריים, המוצגיס בטבלה הבאה: 0 8 סדנת לימוד 6.0 8\ בסיכומו של דבר, ניתן לשלב בתיבת ההודעה שבעה סוגי לחצנים שונים, בכפוף, כמובן, לצירופי הלחצניס האפשריים. כל אחד מן הלחצניס מחזיר ערך מספרי שונה, באמצעותו מזהה התוכנית את הלחצן שנבחר ומגיבה בהתאם (ראה טבלה 7.3): טבלה 7.3: ערכים מוחזרים המהווים אינדיקציה לבחירת המשתמש. | אצ | | | שך | | >בע - | ו 4 ויוי - כאמור, במהלך כתיבת הקוד, רצוי לעשות שימוש בקבועיס ולא בערכיס המספרייס של הלחצניס. כאשר ייוודע לך באיזה לחצן בחר המשתמש, תוכל להשתמש במידע במסגרת התוכנית שלך. יצירת תיבת הודעה מודאלית (א80 1655306/ |בּסו/ז) עתה, נותר לנו לכסות עוד עניין אחד לשס מיצוי הפוטנציאל הטמון בארגומנט פחסשטס של הפונקציה 15080%ז. באמצעות ארגומנט פחסשטפ, הינך יכול להגדיר עבור תיבת ההודעה מודאליות יישום (|1003] חסטפסו|מקה) או מודאליות מערכת (|1003 ח6ז5ץ5). בעת הופעת חלון מודאלי על גבי המסך, לא ניתן להמשיך בתוכנית, אלא לאחר סגירתו. לפיכך, אס תגדיר עבור תיבת ההודעה מודאליות של מערכת, יהיה על המשתמש ללחוצ על התיבה בטרס יוכל לבצע איזושהי פעולה עס המחשב כולו. ברור על כן, שיש להשתמש במודאליות של מערכת בזהירות רבה. במצב ברירת מחדל מוגדרת עבור תיבת ההודעה מודאליות של תוכנית בלבד, כך שאין היא מגבילה את המשך עבודה עם תוכניות אחרות הפועלות אותה שעה על גבי המערכת. הוספת הקבוע |ּססואחסטפסו|ופקהטצ, שהינו בעל ערך 0, לארגומנט פחסאטפ תגרוס לפונקציה א15480 ליצור תיבת הודעה בעלת מודאליות של תוכנית (זהו כאמור גס מצב ברירת המחדל ומתקייס גס ללא הוספת קבוע כלשהו לארגומנט). הוספת הקבוע |1008]וה5%6ץ5פצ, שהינו בעל ערך 4096, תגרוס ליצירת תיבת הודעה בעלת מודאליות של מערכת. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 189 הצגת פעולת הפונקציה א15080/ כדי להדגים את החומר הנלמד עד כה בפרק זה, נבנה תוכנית פשוטה המגדירה תיבת הודעה המבקשת מן המשתמש לאשר כי ברצונו לצאת מן התוכנית בה הוא נמצא. בצע את הצעדיס הבאים: 1. הפעל את 83516 וה150/ אס צריך, והתחל פרויקט חדש מסוג 505 513003706. 2 הוסף לחצן פקודה בודד ל -1וחזס=. היכנס לרשימת המאפייניס של הלחצן, הקלד 6% במאפיין 6וחהּא (שם) ו- %אא5 במאפיין חסו+63 (כותרת). 3 כתוב את משפטי הקוד הבאיס לשגרת האירוע ()א6ו!0. 605% : 59 5 56050 וחוס חן 35 פהסטופח וחוס לחז 15 + פסה וחוס "?וא 0ף +חהצ\ טסץ 56 טסץ שזה" = 550 חסו5סט)פע + ס\65ץסע = פחסאופח ("חזהוססזכ ץז" ,5הסאטפח ,5150) א00 150 = 6|טפסחח חש ד 65 טע = )ופטח זו 0חם + 0חם 4. הרצ את התוכנית ולח על לחצן אפ. כעת אתה נשאל האס אתה בטוח שברצונך לצאת מן התוכנית. לח על לחצן סא ושיס לב כי התוכנית אינה נסגרת. השגת מידע מהמשתמש פעמיס רבות במהלך התוכנית קורה שאתה נזקק לפיסות מידע בודדות מן המשתמש, למשל שם, שס קוב או מספר כלשהו למטרות שונות. תיבת ההודעה אומנס נותנת למשתמש לבחור בין אפשרויות שונות, אך אינה מאפשרת לו להקליד טקסט כלשהו בתגובה להודעה. לפיכך, עליך להשתמש באמצעיס אחרים כדי להשיג מידע מסוג זה. 6 |508\ מציעה תיבת דו-שיח המיועדת בדיוק למטרה זאת, זוהי תיבת קלט (אסם זטסח1). תיבת הקלט מורכבת מהודעה, הרומזת למשתמש מהם הנתוניס הדרושים, מתיבת טקסט, לתוכה יכול המשתמש להקליד את הנתוניס ומשני לחצני פקודה - 0% ו-/66ח68, באמצעותס ניתן לאשר או לבטל את המהלך כולו. תרשיס 7.4 מציג דוגמה של תיבת הקלט. 0 סדנת לימוד 6.0 8\ 4 :אוס|סם 6חחבח זגוסץ 6קע) 6356 | 38 ₪0----------- תרשים 7.4: תיבת הקלט מאפשרת למשתמש להכניס פיסת מידע בודדת בתגובה להודעה המוצגת בתיבה הגדרת הפונקציה אספשטקחו1 מבחינה טכנית, הגדרת תיבת הקלט דומה מאוד להגדרת תיבת הודעה עס ערך מוחזר. ניתן להצמיד את הערך המוחזר מתיבת הקלט למשתנה כלשהו כדי לעשות בו שימוש מאוחר יותר בתוכנית, לקבוע את לשון ההודעה שתוצג בתיבה, ולהגדיר כאופציה, את כותרת התיבה ואת לחצן ברירת המחדל. להלן דוגמת קוד המשמש להגדרת הפונקציה אסססטוסח : 0חו5 5 510507836 ,500 35 5150 חחוס ": 060 6וחפּח זטסץ 06 6856!ס" = 550 ("5סרחץ סח" ,"חח 50 זס6חם" ,5150) אסט)טכח1 = 6ח507\8 5 בדוגמה לעיל, המידע המוחזר על ידי פונקציית אספזטקח1 מאוחסן במשתנה 806 \5\0507. הארגומנט הראשון הוא ארגומנט ההודעה טחסוחטטזהּ +קחסזק), המטפל בהודעה שמטרתה להבהיר למשתמש מהו המידע שעליו לספק לתוכנית. בדומה לתיבת ההודעה, גם כאן יכולה ההודעה להכיל עד 1024 תוויס בטרס תיקטע. גלישת שורות מבוצעת באופן אוטומטי, כדי להתאיס את ההודעה לגודל התיבה. בנוסף, אתה יכול להכניס גם כאן את הצירוף חז6₪ז 600\637806? 6חו| ()וזספט), כדי לגרוס להודעה להתפרש על פני מספר שורות או כדי להפריד שורות לצורך הדגשה. הדוגמה ממשיכה בפרמטרים האופציונליים הכוללים את ארגומנט הכותרת (פשוד חסוחטְחָז), המטפל בטקסט המופיע בשורת הכותרת של התיבה וארגומנט ברירת המחדל טחסוטףז +/6/90כ) אשר במידה ונעשה בו שימוש, יגרוס להצגת ערך התחלתי מוגדר בתיבת הטקסט. המשתמש יכול לקבל את הערך, לשנותו או למחוק אותו ולהכניס במקומו ערך חדש לחלוטין. הגדרה מינימאלית של תיבת הקלט מכילה ארגומנט הודעה בלבד, כפי שמוצג להלן: ("? זע של 5'צוסר") אסס6טקח1 = |3/\חז 56 בנוסף לפרמטריםס שבאמצעותם ניתן להגדיר שורת כותרת וערך ברירת מחדל לתיבת הטקסט, קיימים פרמטריס אופציונלייס נוספיס המאפשריסם להגדיר את מיקומה הרצוי של התיבה על המסך, ואת קוב העזרה בו ייעשה שימוש במידת הצורך. הגדרה מלאה של פונקציית אספזטקח1 תוכל למצוא במערכת העצרה של 8856 |ט8פו/\. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 191 הערה: תיבת הקלט עושה שימוש בשני לחצנים קבועים - 06 !|68ח68. בשונה מפונקציית א0םףפוז, לא ניתן להחליף לחצנים אלה במערכת לחצנים שונה. ערכים המוחזרים על ידי פונקציית א80+טקחז בעת הופעת תיבת הקלט על המסך, יכול המשתמש להקליד עד 255 תוויס במקוס המיועד לכך, הדומה במאפייניו לתיבת טקסט רגילה. במידה ומספר התוויס עולה על 5, הטקסט נגלל שמאלה, הפוך מכיווו הכתיבה. בתוס ההקלדה, יכול המשתמש לבחור בלחצן 06 או בלחצן |68066. בחירה בלחצן 06 (אישור הפעולה) גורמת לתיבת הקלט להחזיר לתוכנית את מה שנקלט בתיבת הטקסט, הן אס מדובר בערך ברירת המחדל שהוגדר על ידי פונקציית אספוטקח1, והן אס מדובר במידע חדש לגמרי, שהוכנס על ידי המשתמש. בחירה בלחצן |68066 גורמת לתיבת הקלט להחציר לתוכנית מחרוזת ריקה, מבלי להתחשב במידע שנמצא בתיבת הטקסט. כדי שניתן יהיה לעשות שימוש במידע שהוכנס לתיבת הקלט, יש לוודא כי הוא עומד בדרישות התוכנית. תחילה עליך לבדוק האם המשתמש אכן הכניס מידע ובחר בלחצן %. עשה זאת באמצעות הפונקציה ח6], אשר תפקידה לבדוק את אורך המחרוזת המוחזרת. אס אורך המחרוזת הוא אפס, הרי הדבר מעיד כי המשתמש בחר בלחצן ו66ח68, או השאיר את תיבת הטקסט ריקה. אס אורך המחרוזת גדול מאפס, הרי זה סימן שהמשתמש הקליד ערך כלשהו בתיבת הטקסט. כדי לבחון את אופן פעולת הפונקציה ח1!6, הקלד כל אחת משורות הקוד הבאות ב- שוססחו/\ 1601816 ושיס לב לתוצאות השונות שתתקבלנה: ("סוו6") חס | +חוזם (" ") חס | )חוום בנוסף לכך, עליך לוודא כי הערך המוחזר הוא מן הסוג הדרוש. אם אתה מצפה לערך מספרי, כדי להשוותו מאוחר יותר לערך מספרי אחר על ידי משפט 1, עליך להציג הודעת טעות במידה והמשתמש הכניס אותיות. השתמש בפונקציה |3\ כדי לוודא שהערך המוחזר הוא ערך מספרי. הפונקציה |3\ משמשת לבדיקת הערך המספרי של מחרוזת. אס המחרוזת מתחילה במספר, הפונקציה |3\ מחזירה את אותו מספר. בכל מקרה אחר, מחזירה הפונקציה את הערך 0. כדי להבין טוב יותר את הפוטנציאל הטמון בפונקציה |3\, הקלד את שורות הקוד הבאות ב- אוססחו\\ 6ז0!8סוחוח1, וראה מה התוצאות שתתקבלנה: ("סו|46") |8/\ +חוזוס ("ז6עס! זוטסץ 68/6! 60 פ5עְ8צו 50") |3/ 6חוזם ("101 86 1 סחה 100") |3/\ זחווס 12 סדנת לימוד 6.0 8\ הקוד שלהלן מדגים תהליכי עיבוד נוספיס של הערך המוחזר על ידי תיבת הקלט, תוך שימוש בפונקציות |8\ ו-ח6]: 58 5 |3/\נוקח50 וחוס ("306 זטסץ זסשח=") אסט)טסח1 = |6\/8טקח50 החד 0 = (|0\/3טכח501) ח6 ]| + "56|60000 85ע\ 6חָ3 ס)ז" אס 50 6 החד 0 = (|3\טקח50) וב\ זז ".306 0ו|8שח! 3 6060 טס" אס 50 6 "[חחס! פוחל סהועועזט5 זז חס 3 הז הס" אס 50 + 0חם זז סחם שימוש בתיבות דו-שיח נפוצות בסעיפיס הקודמיס למדת מהי תיבת דו-שיח, וערכת היכרות עס צמד תיבות דו-שיח שכיחות. בסעיפיס הבאיס תערוך היכרות עס פקד פס!בּוחסוחוח ס6 של 50%6סהסו1!, באמצעותו תוכל לשלב בתוכניתך תיבות דו-שיח נוספות, שתסייענה למשתמש בהגדרת שמות קבצים, בחירת גופניס וצבעיס ושליטה במדפסת. נוסף על עובדת היותן קלות להגדרה ולשימוש, טמון יתרונן האמיתי של תיבות הדו-שיח בכך שהן מוכרות למשתמש מ-פאוס4חו)\ עצמה. שימושים כלליים בפקד 4ס!3 חסוחוח ס6 פקד 8סווסחסוחוח0ס6 בודד מקנה לך נגישות לתיבות הדו-שיח הנפוצות הבאות: + ח6ק0. מאפשרת למשתמש להצביע על שס ומיקוס הקוב\ לשם פתיחתו. + 25 6ש58. מאפשרת למשתמש להגדיר שס קובצ ומיקוס לשמירת מידע. + %חסת. משמשת להגדרת הגופן הבסיסי ותכונות הגופן. + זס!60. משמשת להגדרת צבע במסגרת התוכנית. המשתמש יכול לבחור צבע מתוך טבלת הצבעיס הבסיסית, או ליצור צבע מותאס אישית. + %חזזש. משמשת לבתחירת מדפסת ולהגדרת חלק מתכונותיה. + ס]86. מעבירה את המשתמש אל מערכת העזרה של פאוססחו/\. על אף שפקד 00!אוסחסוחוחס6 מהווה חלק אינטגרלי מ- 8856 |1508/\, אין הוא מופיע בין הפקדיס שבארגז הכליס במצב ברירת מחדל. כדי שתוכל לעשות שימוש בפקד זה, יהיה עליך תחילה להוסיף אותו לפרויקט שלך (ולארגז הכלים) מתוך תיבת הדו-שיח 5 וח ס6. תוכל לגשת לתיבה זו באמצעות בחירה ב-%5ה6הסקוה60 660%[סות. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 193 כעת, היכנס לכרטיסיית 015ז6006, בחר באפשרות פַס!בּו הסוהוחה0ס6 0501%ז6וו/ 0 ]60070 ולחץ על לחצן א0. לאחר הוספת פקד פָס!3ּושחסוחוחס6 לארגז הכלים, תוכל להוסיפו לטופס על ידי סימון וציור, בדומה לשאר הפקדים של 8856 |808ו/. פעולה זו תגרוס להופעת סמל הפקד על גבי הטופס, זאת מאחר והפקד עצמו אינו נראה לעין בעת הפעלת התוכנית. הסעיפיס הבאיס עוסקיס בתיבות הדו-שיח השונות אשר ניתן ליצור באמצעות הפקד ו הסוח וחס6. עבור כל אחת מן התיבות עליך להגדיר חלק מן המאפיינים של הפקד. תוכל לעשות ואת באמצעות חלון 5067865 (מאפייניס) או על ידי שימוש בתיבת הדו-שיח 23465 /זוסטסיופ. תיבת הדו-שיח 28465 שזפקסזק של הפקד מהווה כלי נוח להגדרת התכונות המיוחדות לכל תיבה ותיבה (ראה תרשים 7.5). ניתן לגשת לתיבת דו-שיח זו על ידי כניסה לחלון ₪65זפקסזק של הפקד, ולחיצה כפולה על המאפיין ץזז6קסזק וח5%0ש6, או על ידי לחיצה ימנית על הפקד עצמו ובחירה באפשרות 65 מתוך התפריט שיופיע על המסך. - | שו | = חווט | = חס | ומש | 85 585 ] חפקסי 070-₪] יב ה :6 זטסובום 33| בו )| :סחחב סו 0] ₪לססואאן 77 7700000777 ] - שאו ₪1 :אשבת !סו = --] תסו תרשים 7.5: תיבת הדו-שיח 5 ש/וזסקסזק מאפשרת לך להגדיר את מאפייני תיבות הדו-שיח שלך בקלות רבה | 8[ 0 | ₪ זז חמ -] בחינת ביצועי הפקד פס!בּוסחסווווחס6 בסעיף וה נבחן סגנונות שוניס של תיבות הדו-שיח הנפוצות. בצע את ההכנות הבאות: 1 הפעל את 83516 ו[1503/ אס צריך, והתחל פרויקט חדש מסוג 5א5 553003706. 2 היכנס לשורת התפריטים ובחר 0[66%יז0, %5ח6חסק וה סס. 3 לחצ על תיבת הסימון שליד הפקד 6.0 !סזחס6 פַסובּו חסוחוחה0ס6 +)ספסוסוו, וודא שהופיע הסימן הדרוש בתיבה. 4 לחצ א0 כדי לסגור את תיבת הדו-שלח 5זח6חסקוח ס6. 5 כעת בחר את פקד שַס!13 חסוחוח 60 מארגז הכליס והוסף אותו לטופס 1וחיוס=. 6. הקלד 661165% במאפיין סוחבּא של הפקד. 7 הוסף לחצן פקודה ל-1וחזס". הקלד 6₪6765% במאפיין שוחבּא של הלחצן ו- 09ס!₪13 הסוחוחס6 65%ד במאפיין הסו%כק63 (כותרת). 4 סדנת לימוד 6.0 8\ ההגדרות שיצרת, תשמשנה כמעטפת לבחינת אפשרויות העבודה השונות עס פקד וו 60. כשתתבקש, הכנס את הקוד הדרוש לשגרת האירוע של 65% ד60. תיבות דו-שיח המטפלות בקבצים אחד המטרות העיקריות לשימוש בפקד ַס|אוסחסוחוחס6 היא קליטת שמות קבצים מן המשתמש. ניתן ליצור באמצעות הפקד תיבת דו-שיח לטיפול בקבציס בעלת שני מופעיס אפשרייס: ח06 (פתח קוב\) ו- 45 586 (שמור כ..). מצב ח006 מאפשר למשתמש להגדיר שס קובצ ומיקומו לשס פתיחתו. מצב 45 58/6 מאפשר למשתמש להגדיר שס ומיקוס לשמירת קוב>. תיבות הדו-שיח ח6כ0 ו- 45 536 תיבות הדו-שיח, באמצעותן מבוצעות פעולות ח006 ו- 45 6ש58, והות בצורתן. תרשים 6 מראה את תיבת הדו-שיח ח6ק0. להלן הרכיבים העיקריים : + רשימת כוננים\תיקיות. תיבה משולבת בה מופיע שם התיקיה הנוכחית. אם התיקיה הנוכחית היא תיקיית השורש (), יופיע בתיבה המשולבת שסם הכונן הנוכחי. השתמש בתיבה המשולבת (א80 סטוחס6) ובלחצני הניווט (חסְחּפָוטבּא 5סט8) למעבר בין רמות תיקיה שונות, כמקובל בסייר פוסחו\\. + רשימת בחירת קובץ\תיקיה. תיבת רשימה בה מופיעים הפריטיס הנמצאים רמה אחת מתחת לפריטיס שברשימת הכונניס\תיקיות. כדי לבחור פריט מן הרשימה, לחץ עליו לחיצה כפולה, או סמן אותו והקש זססחם. בחירת תיקיה גורמת לעדכון התצוגה ולהופעת הקבצים ו/או תיקיות המשנה הנכלליס בתיקיה הנבחרת. בחירת קובצ גורמת לסגירת תיבת הדו-שיח ופתיחת הקוב\. + תיבת שם קובץ. תיבת טקסט המאפשרת למשתמש להגדיר באופן ידני שס תיקיה או קובצ. הקלדת שס קוב גורמת לסגירתה של תיבת הדו-שיח. הקלדת נתיב המוביל לתיקיה כלשהי (לדוגמה שזס/ש\9ז6:\8) גורמת להצגת תיקיות המשנה וואו הקבציס של אותה תיקיה ברשימת בחירת קובצ\תיקיה. כמו כן, לחיצה בודדת על קוב כלשהו ברשימת קובצ/תיקיה, גורמת להופעתו בתיבת שס קובצ. % תיבת סוג קוב. תיבת רשימה המאפשרת למשתמש להגדיר את סוג הקבציס שיופיעו ברשימת קובצ/תיקיה. סוג הקוב נקבע על ידי הסיומת המצורפת לשס הקובץ. סוגי הקבציס האפשריים נקבעיס באמצעות המאפיין זסטוו= (מסנן) של הפקד פסוהוסחסוחו 60. + לחצני סרגל כלים ולחצני פקודה. הלחצניס המופיעיםס בפינה הימנית-עליונה של התיבה מאפשריס למשתמש לעלות רמת תיקיה אחת, ליצור תיקיה חדשה או לשנות את מאפייני התצוגה ברשימת קובצ/תיקיה, ממצב רשימה למצב פרטי קוב ולהפך. בעזרת הלחצנים ח6ס0 ו-|68ח68, המופיעים בפינה הימנית-תחתונה, יכול המשתמש להורות לתוכנית לפתוח את הקוב המסומן, או לבטל את המהלך כולו. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 195 | 000 שששששששמממדוות] 0 |₪ ₪ [+ וסט עו ב :חן 8/6 5 פזספוסזק 50 ובגופו/\ "| דיווחים וחששברניות [" מכתבי המלצה כ" | 1 | :שבח פוו | ו | - | :6 85 53/6 עוהס-530] 85 השק שן / תרשים 7.6: תיבות הקבצים ח6ק0 |- 5 586 חולקות רכיבים משותפים רבים פתיחה ושמירת קבצים כדי לפתוח קוב קיים השתמש בשיטה ח6ק0ששסח5 של פקד פסופוסוחסו 60 (שיטה זו גורמת להצגת תיבת הדו-שיח שבתרשים 7.6). עליך להגדיר את שס הפקד וו 60 ואת שס השיטה. לשס הדגמה, הקלד את שורות הקוד הבאות לשגרת האירוע 616 65% דסוחס : חסקסעוסח65%.5 דו!60 ".60ח6כס 06 0 " ,8 6הההחסוו-.65% 6017 .8 " 56166060 טס" אסס 150 לאחר ביצוע קוד זה, יכולה התוכנית שלך להשתמש בשם הקוב שנבחר דרך מאפיין וו של פקד 08ו8ו הסוח 60. פתיחה או שמירה של קוב באמצעות פקד פסווסחסו 60 כרוכות למעשה בביצוע פעולות דומות. השיטה המשמשת להפעלת תיבת הדו-שיח 45 58/6 נקראת 58/6אוסח5. קיימיס מספר הבדלים עדיניס בין תיבות הדו-שיח ח006 ו-58/6, למשל בכותרת המופיעות בראש התיבה ועל גבי לחצני הפקודות. כדי לבחון את פעולת השיטה 66ע58או0ח5 של הפקד 8סו8וסחסוחוחס6, החלף את הקוד בשגרת האירוע 6166 6% 6001 בשורות הקוד הבאות. בתקליטור: > ראה תוכנית 7./85ז6ז80ח6 בתקליטור. 65.56 דו60 " .58/60 06 60" ,8 סח3\]ם!ו-.056 60/7 .8 " 56166060 טס" אס0ס 150 הערה: תיבות הדו-שיח ח6ק0 ו- 45 586 אינן באמת פותחות או שומרות קבצים. הן רק מקבלות מן המשתמש מידע באשר לשמם ומיקומם של הקבצים המיועדים לפתיחה או שמירה. תוכניתך היא זו הצריכה לדאוג להשלמת הפעולה. 6 סדנת לימוד 6.0 8\ הגדרת סוגי קבצים באמצעות ז6פ!= (מסנן) בעת השימוש בפקד פָס|הוסחסוחוחס6, ייתכן שתרצה להציג רק קבציס מסוג מסויס בתיבות הדו-שיח. לדוגמה, אס תוכניתך עוסקת בקבצים של תוכנת |₪666 606סזסו!₪, תרצה שבתיבות הדו-שיח יוצגו קבציס בעלי סיומת 15א. ולא קבצים בעלי סיומת זג8. תוכל להגביל (או יילסנן"י) את הקבציס בתיבת הדו-שיח באמצעות רכיב אופציונלי של 6 |8טפו/\ המכונה זספוו= (מסנן). הגדרת המסנן מתבצעת בזמן עיצוב, באמצעות חלון 8165ז6קסזפ (מאפיינים) או באמצעות תיבת הדו-שיח 23465 עזו6קסזפ, ובומן ריצה באמצעות פקודה מיוחדת המשולבת בקוד. הפילטר הינו מחרוזת טקסט הכוללת את סוג הקוב והסיומת שלו. הדבר מחייב פורמט מיוחד כמוצג להלן: "006.* | (806.*) 5)חסוחווססכ 6זס/\" = זססוו=.65% דו601 הסימן האנכי () שמופיע בקוד מכונה ''סימן מקטרת'' (|סטוחץ5 6פוט) ועליו להופיע בהגדרת המסנן. לפני סימן 6קום מופיע תיאור קצר של סוג הקובצ, במקרה זה - 6זס)\ (006.*) +חסוחטססכ. לאחר סימן 6קוק מופיע המסנן הלכה למעשה. המסנן מורכב בדרך כלל מכוכבית (*) ואחריה נקודה (.) וכן סיומת הקבציס שברצונך להציג, לדוגמה: %%* ,0060.* או *.* . כשאתה מגדיר את המסנן באמצעות פקודה בקוד, עליך לתחס אותו בין סימני מרכאות, בדומה לכל מחרוזת אחרת. אין צורך בסימני מרכאות בעת הגדרת המסנן בומן עיצוב, דרך תיבת הדו-שיח 23965 ץזסכסזס. ניתן להגדיר זוגות רביס של ייתיאור | מסנןיי (6טו₪ | ח0ז06560) במאפיין מסנן בודד. יש להפריד כל וג על ידי סימן 6קום, כפי שניתן לראות בדוגמה הבאה: "*.* |65ון= || |06.* | 65|ו= 6%" = זסטון=.65% דו!60 כדי לבחון את פעולת המסנן, החלף את הקוד בשיגרה 666 601656 של פרויקט הדוגמה בשורות הקוד הבאות : "*. * |65ון= || |0.* | (0א6.*) 65!ו= %א6 ד" = זספוו=.65% דו\60 חק /וסח65%.5 דו601 בדוגמה לעיל, המסנן גורס להופעת קבצי טקסט בלבד בתיבת הדו-שיח של פקד ו חסוח וח 60. ניתן להחליף את המסנן המקורי ולבחור מסנן חדש (במקרה זה - ||4 5) מתוך תיבת הרשימה הנפתחת 6קץד (סוג). התאמה אישית של תיבות הדו-שיח על ידי שימוש בדגלונים מאפיין חשוב נוסף של תיבות הדו-שיח הס הדגלונים (895!=). הדגלוניס מוגדריס על ידי שימוש בקבוע או מערכת של קבועים, בדומה לפרמטר 8085005 לדוגמה: ץוהסאספט או סא65%צפצ של הפונקציה א₪5080. רשימה מלאה של קבועיס האפשרייס תוכל למצוא במערכת העזרה של 8856 |808ו/. לדוגמה, אם אינך מעוניין פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 197 שתיבת הסימון ץוח0 ₪680 85 ח6ק0 תופיע בתוכניתך, תוכל לגרוס להסתרתה על ידי דגלון מיוחד, באופן הבא : ץוח 680 6סוא- 600 = 65%.=|805 דוו60 . "5/שססחו/\\:6" = זוסאח655.1 דו60 06 /וסח650.5 דו601 שיס לב גס לשימוש במאפיין זוסאח1 המאתחל את תיבת הדו-שיח בספריה מסוימת. י אזהרה: דגלונים, מסננים ומאפיינים אחרים המשפיעים על פקד טס|וסחסוחוח60, יש להגדיר לפני הצגתו בתוכנית. תיבת הדו-שיח %חס: (גופן) ניתן להגדיר את פקד 0סו8וסחסוחוחס6 כך שיציג את תיבת הדו-שיח זחס=. הפעולה הינה נוחה וקלה, בדומה לתיבות הקבצים. למעשה, פקד טסוגסחסוחוחס6 אחד, המוצב על גבי הטופס, יכול לשמש לטיפול בקבצים, גופנים, צבעיס ופונקציות מדפסת, זאת, על ידי הגדרת המאפיינים כל פעם מחדש וקריאה לשיטה המתאימה. השלב הראשון ביצירת תיבת הדו-שיח )חס=, הוא מתן ערך למאפיין פ8!=. מאפיין זה, אחראי בין היתר להורות לפקד פַסו8סחסוחוחס6 האס להציג בתיבת הדו-שית - גופני מסך, גופני מדפסת או את שניהס. הקבועיס האפשריים מופיעים בטבלה הבאה : מ אזהרה: אי מתן ערך למאפיין פָ= יגרור הודעת טעות המתריעה על כך שלא הוגדרו גופנים עבור תיבת זחס=. ניתן להגדיר ערך עבור מאפיין ₪38 מסביבת הפיתות, דרך חלון 65וז6קסזס או תיבת 5 שש שזסקסזק, או מתוך הקוד באמצעות פקודת משימה מתאימה. לאחר הגדרת מאפיין פַ9|=, תוכל להשתמש בשיטה +חס= 50 של פקד פסואוסחסוחו 60, כדי לקרוא לתיבת הדו-שיח +חס= מתוך התוכנית. עם סגירתה של תיבת זחס=, יופיעו הגדרות הגופניס שבחר המשתמש, בחלון המאפייניס של הפקד פסו8|סחסוחו ס6. 8 סדנת לימוד 6.0 8\ הצעדיס הבאים מאפשרים לך להתאים את תוכנית הדוגמה שיצרת בשלב מוקדם יותר של פרק זה, לצורך מעקב אחר התהליך תוך כדי התרחשותו: 1 אס התוכנית עדיין פועלת כתוצאה מבדיקות קודמות, עצור אותה. 2 הוסף פקד 18881 ל-1חזס=. הכנס את הערך 1911656 למאפיין סוזוגּא של הפקד ואת הערך +65+ 3 15 פוחד למאפיין חסוזק 63. 3 הכנס את הערך שטיוד למאפיין 0605126 של הפקד. 4. החלף את הקוד בשגרת האירוע 616% של 65% ד0וח6 בשורות הקוד הבאות : 65 - 5 6010-0000 = 658.=|305 דו60 חס 650.50 דו601 שרחה \6חס-].65% 6017 = 6רחהּ\.%חס=.65% דופו 05.6 ]601 = 5126.%חס-.65% דוטו 00 ץ+הס-.65% ד60 = 0|סם.%חס-.65% דוטו 5 הפעל את היישום. בעת לחיצה על לחצן 65% ד6וח6 אמורה להופיע על המסך תיבת הדו-שיח +חס=. שנה את גופן ברירת המחדל לגופן שונה בתכלית, לתצ על לחצן אס ושים לב כי הגופן של 6% דוטפ! השתנה לגופן החדש שבחרת. שני דבריס בקוד לעיל דורשיס התייחסות מיוחדת: ראשית - הדגלון הנוסף, 65, אשר מאפשר למשתמש להגדיר תכונות נוספות של הגופן, כגון - הדגשה, צבע, וקו תחתון. שנית - שיס לב להבדלי תחביר קטניס בין מאפיין זחס] של פקד |806 !1 וביְן מאפיין זחס] של פקד פסופסחסח ו 60. מאפיין חס של פקד |1806 (כמו גם של אובייקטיס אחריס כגון פקד א1680) הוא אובייקט כשלעצמו (אובייקט גופן), ותיבת הדו-שיח - 8|08וסחסוחוחס6 מאחסנת כל תכונה של הגופן (שס, גודל, הדגשה, וכיוצא בוה) תחת מאפיין נפרד. בתיבת הטקסט מוצגיס בנפרד גס המאפייניס הישנים לצורך השוואה, אך מומלצ כי תתעלס מהם. לדוגמה, אס ברצונך להגדיר גופן עבור שתי תיבות טקסט, תוכל להגדיר תיבה אחת ישירות מתוך מאפייני הפקד 8ס!|וסחסוחוחס6 ותיבה שנייה פשוט על ידי השוואתה לתיבה הראשונה: %ס- .86 = %ח0-.0655ו0000 56% בתרשים 7.7 מופיעה תיבת הדו-שיח %חס=", כפי שהיא מוצגת למשתמש. התיבה המסוימת שבתרשים מכילה גופני מסך וגופני מדפסת גס יחד. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 199 :6 וס שחס] זהוגוססת > 00060580 41 ו83ם וס ז4 80 יד וחסזבחה. יד מה ד 8306930 |בזה. תד סבו |מחה. ד [= 1% ד בוה תד 5 56 ו -] 6חוזס טר ] :סופ מ | תרשים 7.7: הינך יכול להתאים את תיבת הדו-שיח %חס] כך שתציג גופני מסך, גופני מדפסת או את שניהם גם יחד טבלה 7.4 מציגה את מאפייני הפקד האפשריים אל מול תכונות הגופן הנשלטות באמצעותם. טבלה 7.4: מאפיינים של פקד פסוהוסחסווחס6, המכילים תכונות גופן חס | האם נבחרה הדגשה 6ושחס | האם נבחר מצב הטיה 6חז|ז0ח\ חס | האם נבחר קו תחתון המידע שבטבלה יכול לשמש להגדרת הגופן עבור כל אובייקט בתוכניתך, או אפילו עבור אובייקט זסטחוזק. וזכור להשתמש במערכת העזרה לצורך קבלת רשימה מפורשת של קבועי הדגלוניס האפשרייס. הערה: כדי לראות את רשימת הקבועים בעזרה, חפש מאמר בשם 8ס|וסחסוחוחס6 005 |סהס6. 0 סדנת לימוד 6.0 8\ תיבת הדו-שיח "זס!ס60 (צבע) תיבת הדו-שיח זסוס6 של הפקד פסו8וסחסוחוחס6, מאפשרת למשתמש לבחור צבעי רקע קדמי או אחורי עבור טפסיס ופקדיס (ראה תרשים 7.8). המשתמש יכול לבחור אחד מן הצבעים השגרתיים, או לחילופין - ליצור צבעיס מותאמים אישית. ופ שן מן מו |[ שו ה |אש ₪ ₪ ₪ 7 ]₪ ₪ ₪ ₪77 ש 7 = א :5 סופ ₪ מו חן | ] *ז | ₪ ₪ ₪ ₪ ₪ ₪ ₪ ₪ | << 5ז0!סכ) 00ז5גו0) שחו | עס תרשים 7.8: תיבת הדו-שיח זסוס6 מאפשרת למשתמש לבחור צבע באופן גרפי ומשלבת בתוכנית את הצבע הנבחר כערך הקסה-דצימלי תהליך שיבוצן של הגדרות הצבע בפקד 4ַסו8וסחסוחוח0ס6, דומה בבסיסו לשיבוצן של הגדרות הגופנים: הגדר את מאפיין ₪39 כך שיכיל את הקבוע 8ח60/6000601, והפעל את השיטה זס|60אוסח5 של הפקד. כאשר המשתמש בוחר צבע מתיבת הדו-שיח, ערך הקסה-דצימלי, המייצג את הצבע הנבחר, מאוחסן במאפיין זסוס6 של הפקד. כדי לבחון את פעולתה של תיבת הדו-שיח זסוס6, החלף את הקוד בשגרת האירוע 616% 601656 (בפרויקט הדוגמה) בשורות הקוד הבאות : 606 = 650.=|805 דו!60 זס|ס0\/6ח65%.5 ד601 זס|656.00 ך|60 = זס|60א886. 1 חס כמו בתיבות הדו-שיח האחרות, תוכל לשנות את מאפייני תיבת זסו|ס6 על ידי שימוש במאפיין ₪805. לדוגמה, אם ברצונך לאפשר שימוש בצבעי ברירת מחדל בלבד, השתמש בדגלון ח6ס1!0ט-1ח6ע6זק60|66 אשר גורס לנטרול האפשרות חסזפט6 68606 5 (הגדר צבעים מותאמיס אישית), והופך אותה לבלתי נגישה עבור המשתמש. לצורך קבלת רשימה מפורטת של הדגלונים האפשרייס עבור תיבת. זס|60 והשפעותיהם, פנה אל הנושא (פַסווכ זסוס60) ץשזסקסזם 05| \פסו8ו זסוס6 במערכת העזרה של 88516 |1508/. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 201 תיבת הדו-שיח זחווש (הדפסה) תיבת דו-שיח נוספת אשר ניתן להציג באמצעות הפקד פסואוסחסוחוחס6 היא התיבה זחוזק (הדפסה). תיבה וו מופיעה בדרך כלל, בסמוך לביצוע עבודת הדפסה ומאפשרת למשתמש לבחור את המדפסת אשר תבצע את העבודה ואת מאפייני ההדפסה (ראה תרשיס 7.9). תיבת הדו-שיח כוללת בין היתר, אפשרות להגדיר אילו עמודיס יודפסו, בכמה עותקים, וכן אפשרות להדפסת קוב. זסוחו -ן א|3 ב : | בי ווק - 5 56ב | קר 63 ;זסוחוזק ווה 5 3560061 | קר סו הו 5 )390016 ] סו | 5 :וס 0 זספוחגו4] ו 1 :שפד וו ן בי 36 ומוזק 6 ₪ הוושו 7+ 06[ | תרשים 7.9: תיבת הדו-שיח +חוזק היא אמצעי עקבי ונוח למשתמשי התוכנית, להגדרת מאפייני ההדפסה כדי להפעיל את תיבת הדו-שית >חוזק, קרא לשיטה זססחוזקווסח5 של הפקד 58 תסווה ס6. אין צורך להגדיר דגלוניס לפני כן. כאשר תיבת הדו-שיח זחוזש מופיעה על המסך, המשתמש יכול לבחור מדפסת רצויה מתוך רשימת המדפסות (חחגּא), הנמצאת בחלק העליון. ברשימה מוצגות כל המדפסות המותקנות במערכת של המשתמש. מתחת לרשימת המדפסות נמצא שדה המצב (6ח11 518005), המציין את מצבה הנוכתחי של המדפסת (פנויה או תפוסה). אם המשתמש מעוניין לשנות מאפייני מדפסת מסוימת (לדוגמה - גודל הנייר והשוליים), עליו לבחור אותה מתוך רשימת המדפסות וללחוץ על לחצן 65שז6קסזפ (מאפיינים), הצמוד לה. פעולה זו גורמת להופעת גיליון המאפייניס של המדפסת שנבחרה, ראה תרשים 7.10. המאפשר למשתמש לשלוט בכל מאפייני המדפסת, בדומה לאפשרויות השליטה מלוח הבקרה של פצוספחוש\. המידע שנקלט מן המשתמש מוכנס לתוך מאפייניה של תיבת הדו-שיח %חחס. המאפייניס 896קחחסז₪ ו-6חַהקסד מצביעים על העמודיס בהס בחר המשתמש להתתחיל את ההדפסה ולסיימה. מאפיין 65!ק60 מצביע על מספר העותקיםס בהס תתקבל ההדפסה. נתוניס אלה הם מיקדמייס בלבד, תיבת הדו-שיח אינה מבצעת את עבודת ההדפסה באופן אוטומטי. 2 סדנת לימוד 6.0 8\ || / וז 8900 063616 ו | || 0 | ב | 5 פחסוזק0) זסקבי :526 זסקב :6 זסקבק [= זססב3 חובוק עווהו זחוז: -] 2% ₪8 ₪ זט 7+ ₪ 11.0-01870/890 565 ה בשי וי תרשים 7.10: תיבת הדו-שיח 65חזפקסזק, המופיעה על המסך בעת לחיצה על לחצן 5 מאפשרת לך לקבוע את גודל הנייר, רוחב השוליים, ותכונות מדפסת נוספות לבחינת פעולתה של תיבת הדו-שית %חזק, התחלף את הקוד בשגרת האירוע 6% 65% 607 בשורות הקוד הבאות: ןס קש 53וכ כק]|60 = 65%.=|805 דו\60 3 = 655%.600165 דו601 סד = 6906 וסשחוק. 65% דו!60 חק וס ח65%.5 דו60 6/1066 זססחחזק .8 " :15 זס)חזכ 061906 שחד" אס 50 הקוד שבדוגמה עושה שימוש במאפיינים ודגלונים לנטרול האפשרות ₪6 סד שחוזק והגדרת שלושה עותקיס כמצב ברירת מחדל. בנוסף, המאפיין ז|6)80סזססחוזש מצביע על כך שתיבת הדו-שיח תשתמש בהגדרות הפקד לצורך התאמת מאפייני מדפסת ברירת המחדל של המערכת. שימושיס נוספיס שניתן לעשות באמצעות תיבת הדו-שיח שחוזס, תוכל למצוא במערכת העזרה של 8856 |8טפוש. תיבת הדו-שיח !46 (עזרה) אופן שימוש גה בפקד 08ו8וסחסוחוח0ס6 גורס להפעלת מנוע העזרה של פווספחוו\ על ידי קובצ 5א32.5ק |םהא1\\ (אס מותקניס במחשב גרסאות 4 זסזסוקאם 6%חז6זח1 ומעלה, או 8 פוססחו/, שס קובצ מנוע העזרה הוא 6א4.6ה). כדי להשתמש בתיבת סו6ה, עליך לבצע מספר פעולות: הגדר במאפיין 6|ו₪קו6 של הפקד, שס ומיקוס עבור קוב עזרה מתאים בעל סיומת 415. בנוסף, הגדר במאפיין 6חהוו36!060 את סוג העזרה שתוצע למשתמש על ידי מנוע החיפוש. בתוס הגדרת המאפייניס, השתמש בשיטה כ|6ששסח5 להפעלת מערכת העזרה. עתה, יכול המשתמש לנווט במערכת העזרה תוך שימוש בקוב> העזרה של תוכניתך. פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 203 יצירת תיבות דו-שיח משלך פקד 8ַס|וסחסווז60 מאפשר לשלב בתוכנית מיגוון סוגים של תיבות דו-שיתח. אך קיימות משימות מיוחדות אשר אינן ניתנות לביצוע באמצעות התיבות הרגילות. לדוגמה, אם ברצונך להתאיס כותרות משלך ללחצנים בתיבה, אינך יכול להשתמש בתיבת הודעה רגילה. כמו כן, תיבת הודעה רגילה מכילה לכל היותר שלושה לחצניס (להוציא את לחצן 8|0), עובדה היכולה להוות מגבלה במצביסם מסוימים. חשוב על תיבת הדו-שיח זטסח1. לא ניתן לשלב בה סמלים והיא אינה יכולה לטפל ביותר מפריט קלט אחד. לפיכך, במצביס בהס פקד 8ַסווסחסוחוח0ס6 אינו מתאיס, תוכל להפוך את הטופס הסטנדרטי של 88516 |1508/ לתיבת דו-שיח מותאמת אישית. יצירת תיבת דו-שיח מותאמת אישית כל שעליך לעשות הוא למלא אחר ההנחיות הבאות : 1 היכנס למאפיין 6!/ץ+₪0706175 של הטופס, ובחר באפשרות פַָסוהּוש 606או₪ - 3 (תיבת דו-שיח קבועה). תיבות דו-שיח מתאפיינות בכך שלא ניתן לשנות את גודלן. פעולה זו גורמת גס להסרתסם של הלחצניס הגדל/שחזר והקטן. 2 הסר את הסמל של הטופס על ידי מחיקת הגדרות המאפיין ח160. 3 במאפיין ה00ו805ק5%370 של הטופס בחר באפשרות זוסהש0ז6זה66 - 1, כך שתיבת הדו-שיח תופיע תמיד במרכז היישוס המארת. 4 הוסף פקדים על פי הצורך כדי לקבל את המידע הדרוש מן המשתמש. השתמש בפקדי /1896 ככותרות לתיבות הדו-שיח. 5 השתמש בפקדי שוזהּז= (מסגרת) לתיחוס פקדים אחרים בעת הצורך (כדוגמה, ראה את פקד המסגרת 3768 06ח₪8 זחוזק בתיבת הדו-שית לחוזק). 6. הוסף לחצן א0, לצורך אישור בחירת המשתמש. 7 הוסף לחצן 680661 המאפשר למשתמש לבטל את המהלך. 8 בעת הצגת תיבת הדו-שית, דאג שתופיע באופן מודאלי (אוסח5. 9ס|8וכ וח |003]מצ). הרגש חופשי להסתייע בתיבות הדו-שיח הנפוצות של פשוסחו!/\, או בתיבות מותאמות אישית המופיעות ביישומיס אחרים כדי לשאוב רעיונות, באמצעותס תוכל לעצב תיבות דו-שיח משלך. 4 סדנת לימוד 6.0 8\ שימוש בתבניות טופס עבור תיבות דו-שיח אחרות חברת 1160506 שילבה ב- 8856 |1508\ מספר תבניות טופס (65ז8!וח6 ד וחזסת) המייצגות תיבות דו-שיח מותאמות אישית שיכולות להיות שימושיות עבורך. תוכל להוסיף בקלות לפרויקט שלך את אחת מתבניות הטופס של 88516 |08פו/ על ידי בחירת הסוג המתאים בעת הוספת טופס חדש. להלן פירוט תיבות הדו-שיח האפשריות : + תיבת 84000%. מאפשרת הצגת מידע למשתמש בנוגע לתוכניתך. (תיבה זו מצויה בכל אחת מתוכנות 6-050%וא בתפריט עזרה, אודות). > תיבת ח1 108. מאפשרת למשתמש להכניס סימן מזהה וסיסמה. <* תיבת ₪085ק0. דומה לתיבות הדו-שיח 78065 שהסקסזק ו-פהסטקס של 6 | פוש + תיבת שזד. מאפשרת לשלב פונקציה של ייהעצה היומיתיי בתוכניתך. כדי לשלב בתוכניתך אחת מן התיבות שברשימה, בחר 66%[סזם, וחזוס-] 464 או לחצ על לחצן וחזס] 06. פעולה זו תגרוס להופעתה של תיבת הדו-שיח וחיוס" 06, המוצגת בתרשים 7.11. כעת, בחר אחת מן התבניות המוצעות והתאם אותה לצרכי התוכנית שלך. [<|? חזס-] 0 | בחוזפוא = | וס ₪ ח ₪ 9 ח בסובום זספואוסזם סש/\ = הַסובום זוספם | זט 083 םי קוש . 0,‏ יי יח , 0 ₪300 פחסוסקס ח1 הס 1 0086 שבכ פת* זט קוד ח50'86 ח135ק5 = הָסובום חו בָס1 38 ג ו 6זגוז! 6 הו ססובום 5וח! אוסת5 +'חסם. -] תרשים 7.11: מספר תיבות דו-שיח מוצעות לך בצורה של תבניות טופס פרק 7: שימוש בתיבות דו-שיח לקבלת מידע | 205 מכאן... בפרק וה למדת כיצד השימוש בתיבות דו-שיח יכול לסייע למשתמש בבחירת קבצים, מדפסות, וגופניס עבור התוכנית. כמו כן למדת כיצד מסייעות תיבת ההודעה (א5480ו!) ותיבת הקלט (אספזטסח1) למסירת מידע למשתמש, ולקבלת החלטות ופיסות מידע בודדות. ** בפרק 3 - אבני היסוד של 83516 15031ז/, תוכל למצוא מידע נוסף בנושא עיצוב הטפסים ושילובם בתוכניותיך. > פרק 5 - תגובה באמצעות שגרות אירוע, יעניק לך היכרות עם כתיבת הקוד המאפשר לטפסים להגיב לפעולות המשתמש. * בפרק 9 - יסודות התכנות ב- 83516 וַבּש5ו+, תמצא דיון מעמיק יותר בנושא כתיבת הקוד ב- 88586 |1508/\. 6 סדנת לימוד 6.0 8\ 8 שימוש במשתנים לאחסון מידע פרק 8: שימוש במשתנים לאחסון מידע | 207 כדי שתוכניות 8856 |1508/\ תהיינה שימושיות באמת, עליהן לדעת כיצד לשמור מידע באופן ומני. 8856 |1508/, כמו כל שפת תכנות אחרת, צריכה לזכור מידע במהלך פעולת התוכנית. יכולת זו מתאפשרת על ידי שימוש במשתניס ובקבועים. פרק זה יבחן את סוגי המשתניס והקבועיס הזמיניס למפתחי 88516 |8ט8ו/, ויראה כיבצד השימוש בהס מאפשר את שמירת המידע הנחוא. היכרות עם משתנים באופן פשטני, משתנים נועדו כדי לשמור מידע בויכרון המחשב במהלך פעולת התוכנית. משתנה מוגדר באמצעות שלושה מרכיבים: %, שם המשתנה (אשר מגדיר את מיקומו בויכרון). + סוג המידע הנשמר. %, + המידע עצמו. נניח שהוטלה עליך המשימה הבאה: ייספור את כל המכוניות שבמגרש החניהיי. בומן ספירת המכוניות, אתה שומר מידע בתוך משתנה. מיקוס המשתנה הזה בזיכרון מקביל לפנקס או לראש שלך. סוג המידע שנשמר הוא מספר, והמידע הנשמר הוא מספר המכוניות הנוכחי. כפי שהשס משתנה ‏ 8880|0/) מרמו, המידע שנשמר במשתנה יכול להשתנות (להתחלף) מפעם לפעם. בדוגמה שלנו, כמות המכוניות שאתה סופר גדלה מעת לעת. יש שתי פעולות בסיסיות שניתן לבצע עס כל משתנה: שמירת מידע (כתיבה על הפנקס) והשבת מידע (קריאת הכתוב על הפנקס). מתן שמות למשתנים כל משתנה חייב להיות מזוהה בשם, כדי שניתן יהיה לתת לו ערכים. ייתכן שכבר נתקלת בדוגמאות קודמות בהוראות מעין זו: חן 5 א וחוס דוגמה זו ממחישה את הוראת חחופ קיצור של חסופחסוחופ, המשמשת לצורך הצהרה על משתנים (עיין בסעיף הצהרה על משתנים, המופיע בשלב מאוחר יותר בפרק). בעת הגדרת משתנה, אנו למעשה אומרים ל- 8856 |1508/\: 'ישרייני מקוס בוּיכרון לצורך אחסון מידע משתנה; קראי לו איי. שתי המיליס האחרונות בפקודת וחום אומרות ל- 6 !ופ מה סוג המידע שבכוונתך לשמור, במקרה וה - מספרים שלמים. מידע וה מסייע לתוכנה לדעת מה כמות הזיכרון שיש לשריין עבור המשתנה שהוגדר. קיימת גמישות רבה מאוד בנוגע להקצאת שמות משתניס. שס המשתנה יכול להיות קצר ופשוט, או להיות תיאור מפורט של סוג המידע אותו הוא מכיל. בדוגמה לעיל א הוא אומנס שס משתנה חוקי לגמרי, אך אין הוא מסביר לקורא את משמעות המידע השמור בו. 8 סדנת לימוד 6.0 8\ למרות הגמישות הרבה, קיימים עדיין מספר חוקיס להס עליך לציית בעת מתן שמות למשתנים: + שם המשתנה חייב להתחיל באות. לא במספר או בתו אחר. > שארית השם יכולה לכלול אותיות, מספרים ו/או סימני קו תחתון. מרווחיס, נקודות וסימני פיסוק אחריס אינס מותריס. > השם חייב להיות ייחודי בטוות ההכרה (56006) שבו נמצא המשתנה (טווח ההכרה מתייחס להקשר של המשתנה, כפי שנראה בהמשך). + אורך השס לא יעלה על 255 אותיות. > השם לא יהיה אחת מהמילים השמורות של 8856 |1508/\. מומלצ לתת למשתניס שמות אשר יתארו את תפקידם, ואת כדי להפוך את הקוד נוח יותר לקריאה. מאידך, יש להקפיד על מתן שמות קצריס ככל האפשר, כדי להקל על כתיבת הקוד. מפתחים רביס מצרפיס לשם המשתנה קידומת (או6זק) המצביעה על סוג המידע השמור; קידומות אלו הן, בדרך כלל, וריאציות שונות של שיטת מתן השמות ההונגרית (חסטחסעטח60 פַחווחה ההההפחטה), ומבוססות על אות או שתי אותיות קטנות בתחילת שס המשתנה, ואחריהן אות גדולה. לדוגמה התחילית 5 בשם ו56, מצביעה על כך שמדובר במשתנה המכיל ערך מחרוזת (9חוש5). טבלה 8.1 מציגה מספר קידומות נפוצות בהן מומלצ להשתמש בעת מתן שמות למשתנים. שיטה זו (המתוארת ב- 8856 6006!/וסח 6‏ 670506 במאמר 4, ₪ 0+ 5חה0ושחה6עה60 פחזוהב3ּ 5067/1665 8ה1₪0ט5ח60 0%ס5סיסווא) באה לידי ביטוי ברבות מן הדוגמאות המובאות בספר זה. טבלה 8.1: קידומות לשמות המשתנים 000000000 98| + | שחואצתל | 4 | סששצפא וניבי יי 5 +חוסק חחההסות) 6ַחו5 1-6 ח68|ססם 6 דט שמות משתנים המכילים מספרים שלמים (60675ח1) מתחילים בקידומת ח ולא בקידומת | (אשר נראית הגיונית יותר), ואת משוס שהקידומת 1 שמורה לייצוג אינדקסים. פרק 8: שימוש במשתנים לאחסון מידע | 209 סוגי משתנים עד כה למדת מהו תפקיד המשתנה וכיצד לתת לו שס. אך מה סוג המידע שניתן לשמור במשתנה! התשובה הפשוטה היא כמעט כל דבר. משתנה יכול להכיל מספר; מחרוזת טקסט; או הפניה לאובייקט כמו טופס, פקד, או בסיס נתוניס. פרק וה מתרכז בשימוש במשתניס לצורך אחסון מספרים, מחרוזות וערכיס לוגיים. אופן השימוש במשתנים לייצוג אובייקטים ומסדי נתוניסם מכוסה מאוחר יותר בפרק 16 מחלקות: שימוש חוזר ברכיבים, ופרק 26 שימוש באובייקטי גישה לנתונים (סהפ). לכל סוג משתנה יש דרישות זיכרון משלו, והוא מתוכנן לעבוד ביעילות עס סוגיס שונים של מידע. לפיכך, אין ה אפשרי לאחסן מחרוזת כמו "סו|₪48" בתוך משתנה המוגדר כ-ז%608ח1 (מספר שלם). טבלה 8.2 מציגה חלק מסוגי המשתנים הסטנדרטיים הקיימים ב- 8856 |15808/. בנוסף, מראה הטבלה את טווח הערכיס אשר משתנה יכול להכיל, ואת כמות הציכרון הנדרשת. כאשר הדבר אפשרי, מומלצ להשתמש במשתנים בעלי דרישות ויכרון נמוכות (שבשפה מקצועית נקראים משתנים ייזוליס'י), כדי לחסוך במשאבי מערכת. טבלה 8.2: משתנים מסוגלים לשמור סוגים רבים של מידע | סג המדעהנשמר | צרכתזכהן | שותעומם 05 > ץס6ח6זזוס | מספרים עד 15 ספרות | ₪ 8 4 -/+ משמאל לנקודה ועד 4 ספרות מימין לנקודה 8חו5 | מידע טקסטואלי 6 אחד לכל עד 65,400 תווים למחרוזת תו בגודל קבוע, ועד 2 מיליארד תווים למחרוזת דינמית מידע על תאריך ושעה 0 עד 12/31/9999 0% | התהוות מחלקות; 6 4 אין אובייקטי 015 +חהוזה/\ | כל אחד מסוגי המידע 6ץפ 16 + אין שלעיל 6 לכל תו 0 סדנת לימוד 6.0 8\ בנוסף לסוגי המשתניס שבטבלה, ניתן ליצור גס סוגים המוגדרים על ידי המשתמש (65ק/ד 661060 ז56ט). שורות הקוד הבאות מדגימות שימוש במשתנים מסוג זה: הגדרת סוג משתנה חדש ' +חוסק 6כץד סזבּעוזוק 5 א זז 5 שד 6חם הגדרת משתנה מהסוג החדש ' ()א6ו6 1 חר 60 ס50 סזהּעוזוק +חוסק 5 6הוסקץוז וחוס 3 = א.סחוסקץו] 5 = ץ.זחוססעו! 50 0חם כפי שניתן לראות בדוגמה, הגדרת סוג משתנה חדש מתבצעת באמצעות הפקודה 6סץד. שיס לב כי הגדרת סוג המשתניס חייבת להתבצע באזור ההצהרות הכלליות. במקרה זה הגדרנו מתוך הטופס סוג פרטי הנקרא זחוסק. כדי ליצור משתנה מסוג חדש, עליך להשתמש בפקודה חופם בדומה להצהרה על משתנים מסוגים אחרים. ניתן לגשת לחלקיס במשתנה באמצעות סימן הנקודה (.). כפי שכבר ציינו, קיימיס מספר סוגי משתניס המיועדיס לטיפול במסדי נתוניס בלבד (כגון סוגי המשתניס ספהּפּזַ8, 6 ו-866070566). מידע הקשור לסוגי משתניס אלה מועבר ל- 8856 |508ו\ בעת הוספת הפניה לספריית סוגים (עְזבּזט | 6סץד). ספריית סוגיס היא קוב 511 (ספריית קישור דינמית), או קובצ היוצר בתוכניתך וזמינות למשתניס המטפליס בבסיסי נתונים. דוגמה טובה לשימוש בספריית סוגי משתניס תמצא בפרק 22, שימוש ב-015 לשליטה על יישומים אחרים. ראה: סעיף ספריית האובייקטים של טזוס/ש, בפרק 22. הצהרה על משתנים קודס לכן בסעיף מתן שמות למשתנים, ראית דוגמה לפקודה וחוס, באמצעותה הגדרת את שס וסוג המשתנה שלך. אולס 8856 |1508/\ אינה מחייבת להצהיר במפורש על משתנה טרס השימוש בו. אס המשתנה לא הוגדר בצורה מסודרת, 8856 |1508/ תיצור אותו בעצמה כמשתנה מסוג ברירת המחדל, בדרך כלל +חפוז8\. משתנה המוגדר כך מסוגל להכיל מידע מכל סוג, אך יש לו שני חסרונות: הוא עלול לבובז שטח זיכרון יקר, וייתכן כי לא יתאיס לעבודה עס פונקציות המצפות למשתנה מסוג ספציפי. הצהרת המשתניס מראש לפני שימוש בהס הינה מנהג תכנותי טוב. לכן, כדאי שתבחן את שתי הדרכים להצהרה על משתנים - הצהרות מפורשות טסווקאם) והצהרות מרומזות 0ו6ו1קֶחז1). שיס לב גס למקרה המיוחד של מחרוזות בעלות גודל קבוע. פרק 8: שימוש במשתנים לאחסון מידע | 211 הצהרה מפורשת הצהרה מפורשת (ח800ז66!3כ 6וסווסאם) - מונח זה משמעותו שימוש בפקודות קוד לשס הגדרת שמות וסוגי המשתניס בתוכנית. הפקודות אינן משמשות להצבת ערכיםס במשתנים, אלא רק מגדירות ל- 8856 |%1508\ מה שמות המשתניס שישולבו בתוכנית, ומה סוג הנתונים שיכילו. באפשרותך להשתמש בכל אחד מהמשפטים הבאים כדי להגדיר מפורשת סוג משתנה: [|062/// 5 ] 8062רטש , ]|106/כ/ 5/] המקש וחוס [[062ז8/ 5 ] 62הההחחזהּע , ][6כ/ובּע 5/] סותהחזה/ סזבּעוזוק [[62ק/זה/ 5/] 62הההחזהּע , ][[6כ/סזה/ 5 ] 6הההחזהּע 5%80₪6 [[5/062ז8/ 5/] 62רתהחזופט , ][6/סוה/ 5./] סרההחזהע סוופנוק וחוכ, סזאטוזק ו-סו|פטש הן מילות מפתח ב- 8856 |%15088 אשר מגדירות באיזה אופן תשתמש התוכנית במשתנה המוגדר (בסעיפים הבאים תוכל ללמוד יותר היכן וכיצד לעשות שימוש במילות מפתח אלו). המילים 9708706 ו-62ו9087ש מייצגות את שמות המשתניס אשר אתה מעוניין להגדיר. ניתן להגדיר מספר משתניס בפקודה אחת, כל עוד שמותיהס מופרדים באמצעות פסיקים. כל שס משתנה חייב הגדרה נפרדת לסוג המשתנה, אס לא יוגדר סוג המשתנה עבור כל שס משתנה בנפרד, המשתנה ייחשב כ-%ח8718\. בדוגמה לעיל, מופיעים אומנס שני משתניס בלבד, אך ניתן לציין מספר רב יותר של שמות. למעשה, בשורה אחת של חלון הקוד ניתן להקליד מעל אלף תוויס, אס כי מעשית, מומלא להימנע מכתיבת שורות החורגות מרוחב החלון המוצג על המסך. הקפדה על כתיבת שורות באורך סביר, מקלה על קריאות הקוד שלך וחוסכת פעולות מיותרות כמו גלילת החלון ימינה ושמאלה בזמן קריאתו. שורות הקוד הבאות מדגימות כיצד להשתמש בפקודות לשס הצהרה על משתנים : ז 1 45 |3/\רתטוצ\ח 6ספעווק 3 /\ 35 |3/\סטקח1ש ,06061ח1 35 |3/\שטמח סזהעוזוק 0 35 10|60/67806 56806 50 35 6החה\5זו-5 הזוס הצהרה מרומזת לרוב רצוי להגדיר את המשתנים בעזרת פקודת וחום או אחת מהפקודות האחרות המשמשות לצורך הצהרה מפורשת. אולם, במקריס רביס ניתן גם להגדיר את סוג המשתנה באמצעות הצהרה מרומזת (ח00ו80ז66!9 66ו!פוח1). בהצהרה מסוג זה, יש לסיים את שם המשתנה בתו מיוחד, בעת הצבת ערך בפעם הראשונה. בטבלה הבאה מוצגיס התוויס אותם יש להוסיף לכל אחד מסוגי המשתנים הקיימים. 2 סדנת לימוד 6.0 8\ טבלה 8.3: תווים מיוחדים לסוגי המשתנים סוג המשתנה ו חס | 0! |96 | 6סטסס ב הט ו ב אין יו אין כאשר 8856 |1808/\ נתקלת בפעס הראשונה בתוכנית במשתנה שהוגדר באופן מרומז, היא מקצה לו אוטומטית מקוס בזיכרון. הצהרה מרומזת על המשתניס שמהדוגמה הקודמת נעשית בצורה הבאת: מוגדר בזיכרון כ-ז606שחז ' 0 = %!3/\וחטאזח מוגדר בזיכרון כ-ז606טחז ' 1 = %ו3/\ףָטח מוגדר בזיכרון כ-זְחִאּוזף/ ' 5 = |6\3וקָח1/ מוגדר בזיכרון כ-86חו6 ' 1 = 10|6/067806 מוגדר בזיכרון כ-פַחו5₪ ' | "חסזטה |" = 6%רח50%8ו5 שיס לב כי המשתנה |3/סטקחזט אינו מכיל את תו סוג המשתנה, ולכן 8856 |808ו\ תתייחס אליו כמשתנה מסוג %ח8ז8/. מחרוזות בעלות גודל קבוע רוב המחרוזות בהן נעשה שימוש בתוכניות 8856 |508ו% הן מחרוזות בעלות גודל משתנה (95ח571 חְזַחַח6 | 80|6וזה/). מחרוזות אלו יכולות להכיל כל כמות של טקסט, עד לשני מיליארד תוויס בערך. בוּמן שמידע נשמר בתוך המשתנה, גודלו מותאס כך שיוכל להכיל את המחרוזת. ההצהרות המפורשות והמרומזות עליהן למדת זה עתה, תיצורנה מחרוזות בעלות גודל משתנה, אולס ב- 8856 |1508\ קייס סוג נוסף של מחרוזות : מחרוזות בעלות גודל קבוע (85ח5071 חְזְחַח6. 1 60אות). פרק 8: שימוש במשתנים לאחסון מידע | 213 מחרוזת בעלת גודל קבוע, כפי ששמה מרמז, שומרת על גודלה, ללא תלות במידע המאוחסן בה. אס במחרוזת כזו מוצב ביטוי קצר יותר מאורכה הקבוע, אזי שארית המחרוזת תמולא במרוותחים. אס הביטוי ארוך יותר מהגודל הקבוע, אזי יקוצצו התוויס העודפיס. ניתן להצהיר על מחרוזת בעלת גודל קבוע באמצעות הצהרה מפורשת בלבד: 5 * 8חו5 5 6רתשמשש וחוס שיס לב כי הצהרה זו שונה מעט מן ההצהרה הקודמת של משתנה המחרוות. הצהרת מחרוזת בעלת גודל קבוע מכילה כוכבית (*) המציינת כי מדובר במחרוזת בעלת גודל קבוע. הפרמטר האחרון, (50/6000, מגדיר ל- 8856 |%1508 את גודלה הקבוע של המחרוזת (כלומר מספר התוויס המקסימלי שביכולה להכיל). מחרוזת בעלת אורך קבוע יכולה לשמש למשל לבניית קוב טקסט המופרד באמצעות פסיקים. נניח ש-25 תוויס מהקובצ משמשים לביטוי שמו של אדס. הקוד הבא יקצצ אוטומטית את כל התוויס במחרוזת מעבר לתו 25: 5 * 50100 5 58806 הוחו ".6|טה זע חַחו50 6 זסז פחס! ססף 15 6% פוחד" = 6וח58 הצבת ערך שאורכו קצר מ-25 תוויס ב-5\%86 תגרוס ששאר התוויס במשתנה זה ימולאו ברווחיס. הערה: אחד השימושים הנפוצים של מחרוזות בעלות אורך קבוע הוא בהשבת מידע מפונקציית 8-1 של חלונות, נושא זה נדון בפרק 20 גישה ל- ₪1 של פ/שסטחוצ\. מערכי משתנים המשתנים שנדונו עד כה היו כולס משתניס יחידים. אולם, יש מקריס רביס בהם יעיל יותר לעבוד עס מערכים (פעבזז\). מערך הוא קבוצת משתניס מאותו סוג, המוגדריס תחת שס זהה. בדרך זו קל יותר לעבד קבוצות של שדות מקורבים. לדוגמה, נניח כי אתה נעזר בקבוצת משתניס המנהליס מעקב אחר נפח המכירות בכל אחד מארבעת האזוריס של החברה שלך. אתה יכול להגדיר משתנה מטבע לכל אזור, ועוד משתנה כדי להחזיק את סכוס המכירות בכל האזורים ביחד, כמו בדרך זו: ץ6חה6זוו) 45 650058|652 ,ץ6חה6זווס 5 650058|651 הזוס ץ6חה6זוו) 5 650058|654 ,שץ6חה6זווס 5 650058|653 הזוס ץ6ח6 6 5 069158165 61 חחוס כעת, כדי לחשב את סכום המכירות בכל האזורים, תצטרך להשתמש בקוד הבא : 61 0%9158|65 = 6₪0058|651 + 646058|652 + 60058|653 7- 4 4 סדנת לימוד 6.0 8\ גישה זו אינה מסורבלת במיוחד, אך מה יקרה אם יהיו 20 אזורים, או כמה מאות! קל לראות שעבודה עס מספר גדול של משתניס מקורבים יכולה לגרוס לתסבוכת. ניתן לפשט בקלות דוגמה זו על ידי שימוש במערך. ניצור מערך בשס 6₪6058!65. מערך זה יכול להכיל מספר אלמנטים (מופעי משתניס) הזהה למספר האזוריס שלך. ניתן לכתוב מחדש את הדוגמה כך שתתאים לטיפול ב-20 אזורים : ץ6ח6זוו 5 (20 0+ 1 )656058|65 חחוס ץ6חס 6 5 068158165 61 וחוס 5 זסשהטוס6ח וחוס 1 35 קוח6 51 הוחו 0 = 610%8|58|65 0 סך 1 = זסזחטס6ח זס= (זח60ח)6₪6058|65 + 009|58|65 ]6 = 0%9!58|65 67 זס הסח 6% " = 601005 ||3 ז0? 58!65 !סד" = קוחס 51 ("ץ6ח6זווס" ,8|58!65ז0 1 6)ז8וזס=] .8 קוח ]5 = קוחם 51 "8|/515ח\/ 58!65" ,חסטהוזס+ח1ט/ , כקרח6 57 80 150 שיס לב בדוגמה לשימוש בלולאה (6)000. חלק הקוד שמתחיל בהוראה זס= ומסתייס בהוראה 6% מגדיר קבוצת פקודות בתוכנית שתחזורנה על עצמן מספר פעמים (20 במקרה זה). שימוש בלולאות מקצר את עבודת עיבוד המערכים. ככל שתתקדס בספר זה תיתקל במקריס רביס בהם השימוש במערכים יכול לפשט מאוד את קוד התוכנית שלך. היכן כדאי לעשות שימוש במשתנים בנוסף לסוג הנתוניס הנשמריס במשתנה, קובעת ההצהרה גם את טווח ההכרה (56006) במשתנה. ניתן לדמות את טווח ההכרה במשתנים לאזורי הכיסוי של טלפון סלולרי. בזמן רכישת טלפון סלולרי, ביכולתך לקבוע עבורו כיסוי ארצי או בינלאומי. מידע זה נצרב לתוך המכשיר. אס תצא מטווח הכיסוי שלך, הטלפון לא יעבוד. בצורה דומה, ניתן להצהיר על משתניס כך שיוכלו לפעול בשיגרה אחת בלבד בטופס, בכל השגרות בטופס, או בכל חלקי התוכנית. ברירת המחדל של 8856 |508ו\ מתייחסת למשתניםס שהוגדרו בצורה מרומזת, כמקומייס לשיגרה בה נוצרו. לפיכך, אס אינך משתמש בהצהרה עבור משתנה כלשהו, 6 |1508\ תתייחס אליו בהכרח כאל משתנה מקומי. על כן, כדי ליצור משתנה שהיקפו אינו מקומי, הינך חייב להשתמש באחת מפקודות ההצהרה. הערה: תחום המשתנה נקבע על ידי סוג ההצהרה, וגם על ידי מיקומה. לדוגמה, למילות המפתח החוכ ו-שופצוזק יש משמעויות שונות בחלקים השונים של הקוד בטופס. פרק 8: שימוש במשתנים לאחסון מידע | 215 משתנים הזמינים מכל מקום במרבית התוכניות (אלא אס יש לך טופס אחד בלבד ללא מודולי קוד) תוכל להבחין כי קייסם צורך במשתניס אחדים, אשר ניתן יהיה לגשת אליהם מכל מקוס בתוכנית. משתניס אלה נקראיס משתנים ציבוריים (65|טפוזבּ/\ 6ווטטס). בשפות אחרות, כולל בגרסאות מוקדמות יותר של 8856 |1508/, ייתכן שמשתנים מסוג זה כונו בשס משתנים גלובליים (פ65וטהּוז3ּ/\ |8פסו6). (למעשה גס גירסה 6 של 8856 |פטפו\ מזהה עדייו את מילת המפתח |6!088). משתניס אלה בדרך כלל :כילו מידע כגוןו שס המשתמש, או הפניה למסד נתונים אשר נמצא בשימוש לכל אורך התוכנית. הס יכולים גם לשמש בתור דגליס אשר מייצגיס תנאים מסוימים בתוכנית. כדי ליצור משתנה ציבורי, עליך לשלב את פקודת ההצהרה סוופטש באזור ההצהרות הכלליות במודול (קובצ 845) של התוכנית שלך. השורה הבאה מראה כיצד מצהירה הפקודה סוופטוס על משתנה ציבורי, השומר את שס המשתמש: 508 5 50507836 6ווסנוק מילת המפתח סוופטש הינה בעלת מעמד מיוחד בקוד הטופס או המודול המחלקתי. משתנה המוגדר כ-ווטטפ, פועל ממש כמו אחד ממאפייני הטופס או המחלקה, אשר זמיניס מכל מקוס בתוכנית. 8856 |9טפו\ מתייחסת למשתני סוופטש כשווי מעמד למאפיינים הקבועים של טפסים ופקדים, ולא כמשתנים ציבוריים רגילים. מאפיינים מסוג 6ו|טטש משמשים להעברת מידע בין טפסים וחלקים אחרים בתוך התוכנית. נניח לדוגמה, כי ההצהרה הקודמת ל-500567886 התקיימה בתוך טופס. שורות הקוד הבאות יכולות היו לשמש כדי לשנות ולאחזר את שס המשתמש מהטופס. "םוא" = 6ר567%3ו5. חוףס |רחי |03סו]טע עשסח5. חופס |רחי 36 \5\05671. חוס |רחו 8 " 85 660 סרחבח הד" אס 50 שורת הקוד הראשונה קובעת את תכולת המשתנה הציבורי (וטוענת את חופָס \וחזז אס אין הוא טעון עדיין), ממש כאילו הוא אחד ממאפייני הטופס. שורת הקוד הבאה מציגה את הטופס כמודאל (|003/) (פתיחת הטופס בצורה מודאלית מחייבת את סגירתו לפני שהתוכנית תוכל להמשיך, בדומה לחלון סגירת פאוסבחווו), כך ששורת הקוד השלישית לא מופעלת עד אשר הטופס מוסתר. אס המשתמש משנה את ערך 5586 מתוך הטופס ולאחר מכן מסתיר את הטופס, השורה השלישית של הקוד מציגה תיבת הודעה עס הערך החדש. שמירת משתנה כמקומי במקריס בהס אין צורך לגשת למשתנה מכל מקוס בתוכנית, אין טעס להשתמש במילת המפתח סו|טטש בהצהרה. במקוס זאת, ניתן להשתמש במילות המפתח חופ או 6זט, אשר אומרות ל- 88566 |8טפו\ להגדיר את המשתנה בתחוס השיגרה או הטופס הנוכחי, בהתאמה. בהצהרות מסוג וזה, מיקוס פקודת ההצהרה קובע את טווח ההכרה במשתנה. אס המשתנה מוגדר בחלק ההצהרות הכלליות בטופס או במודול, המשתנה יהיה וּמין לכל שיגרה באותו טופס או מודול. משתנה מסוג וה מכונה משתנה ברמת 6 סדנת לימוד 6.0 8\ הטופס (180!6ז8/\ |6ש6! וחזס) או משתנה ברמת המודול (806ז3/\ |6ע8! 6וטססא). אס המשתנה מוגדר בתוך שיגרה, ניתן יהיה לעשות בו שימוש בתוך שיגרה וו בלבד. משתנה מסוג זה מכונה משתנה מקומי (6|סהוזה /\ |063 )). מדוע כדאי לשמור משתנה בצורה הכי מקומית שאפשר! התשובה מתחלקת לשניים : + הרגל תכנותי טוב. קשה יותר לנפות שגיאות ולתחוק קוד המבוסס על משתנים ציבוריים. לדוגמה, הבט בשני המימושים של השיגרה הפשוטה, 68/6108 : ()68|608 50 ווח * ווח 8 " 15 זסצ\5חה סד" אס ספ 50 0ח= (06061ח1 35 ה06ו/\ח ,1065061 5 הווח )68 68|6 טט5 ווח * ווח .8 " 15 זסצ\5חה סד" אס ספ טט5 0ח= אס משימתך תהיה לנפות שגיאות בשיגרה 68!64768, תיווכח שהדוגמה הראשונה קשה ביותר לניפוי. החישוב מותנה בכך ששני משתנים ציבוריים טַח8ַופחח ו-חז0ו//ח). יהיו מכווניס נכון. בדוגמה השנייה הבעיה אינה כה קשה משוס ש-00%ו6ח ו-הס0ו/\ח מוגדריס כפרמטריס של הפונקציה, כך שהמפתת :כול לקרוא לפונקציה מחלון הפקודות המיידי מבלי להציב לפני כן ערכים במשתניס. כמובן, שכדי לגרום ל-68|6068 להיות מודולרית וניתנת לשימוש חוזר ככל אפשר, עדיף יהיה להפוך אותה לפונקציה. + שימוש במשאבים: הסיבה השנייה לשמירה על מקומיות המשתנים היא עניין של הגיון בריא. כאשר משתנה מוגדר כ-סוופטס, 88516 |1508/\ חייבת להפוך אותו זמין לכל הטפסים והמודולים בתוכנית שלך. היקפו המוגבל של משתנה מקומי מצריך כמות קטנה יותר של משאבים, ובכך מייעל את התוכנית. שימוש במשתנים סטטיים מרבית המשתנים אשר מוגדרים בתוך שיגרה, יינזרקים"י על ידי 8856 |8טפוש עם סייוס השיגרה. אך יש מקרים בהס תהא מעוניין לשמור את ערך המשתנה גס בסיוס פעולת השיגרה. לדוגמה, כאשר יש צורך לקרוא לשיגרה מספר פעמים, וערך משתנה מסוים תלוי, בכל פעס, בערך שניתן לו בפעס הקודמת בה הופעלה השיגרה. דוגמה: יש לך שיגרה המדפיסה את מספר העמוד בראש כל עמוד בדוח. אותה שיגרה צריכה לשמור את מספר העמוד שהודפס בעת הפעולה הקודמת, כדי שתוכל להגדילו בכל פעם במספר אחד. כדי ליצור משתנה אשר שומר את ערכו, יש להשתמש במילת המפתת 50806 בתוך הצהרת המשתנה. מכך מבינה 8856 |1508/ שני דבריס: המשתנה הוא מקומי לאותה שיגרה, וכן יש לשמור את ערך המשתנה כי ייתכן שיהיה בו צורך מאוחר יותר. הנה דוגמה לשילוב מילת המפתח 5906 בהגדרת המשתנה: 5 זסטרגו\\סטהקח 50806 פרק 8: שימוש במשתנים לאחסון מידע | 217 הערה: שימוש במילת המפתח 5006 בראש הפונקציה/השיגרה (כמו ב: פט5 5%8₪6 טט5צץוא), הופכת את המשתנים בשיגרה לסטטיים. השיגרה הבאה מדגימה את העיקרון: (65ד 500 5%806 לחז 5 א וחוס א 8 " = +6₪ו509000 3550076% 61076 א )0 סטו3/\" +חחחק. פטסטס 4 = א א " = 5090660 +ה6רח355/0 3001 א +0 סטו3/\" +חוזק. פטסטס 50 0חם בדוגמה זו, 88516 |1508\ תתייחס למשתנה א בתור משתנה סטטי. בפעס הראשונה שתקרא ל--165, הפלט יהיה 0 ו-1234. בקריאה הבאה יופק הפלט 1234 עבור שני הערכים - לפני ואחרי. שימוש בפקודה זוסו1ןא= הסושק0 מוקדם יותר בסעיף הצהרות משתנים, למדת כי הצהרה על משתנים, טרס השימוש בהס, הינה הרגל תכנותי טוב. ניתן לגרוס ל- 8856 |508!/ ''להכריתיי אותך להצהיר על המשתניס על ידי שינוי אחת מאפשרויות הסביבה שלה. כדי לעשות ואת, היכנס לתיבת הדו-שיח פ5חסשקס, על ידי בחירה ב-1001!5, 5חסשקס. היכנס לכרטיסיית +חסוההסזוטחם ובחר בתיבת הסימון הסוז3ּז266!3 6!טבּוובּ/\ 6זוטף₪6 (ראה תרשים 1). פעולה זו תגרוס ל- 8856 |1508/\ לדרוש הצהרה על כל משתנה טרס השימוש בו. 4 0000 המר | 8 | חפוחסזויתם | בס | ו | זט זו | יד 55 6006 -ן 0% אבלחץ5 סטוה ]1 5 105% סטוה ]1 סח סונו ססנום | ] 5 088 סזנוה ] הסנת סטוה | שן 4 | :זוי סד 5חַחו5050 אוסטחו/ -ן הַח0ו= 78% ספיזוס-החבּ-הַבּזם. 1 סו/\ 6|נוסו] !וט 6 606 ש] 3 500 6ז0פססזם. 1[ סוסו | |08ח תרשים 8.1: האופציה ח800ז66!3כ 880!6/ 6זוט₪60 עוזרת לך להימנע מכתיבה לא נכונה של שמות משתנים בחירה באפשרות זו תגרוס למיקוס הפקודה זו6!|קא= חסקס בחלק ההצהרות הכלליות של כל המודולים והטפסיס החדשים שתוסיף לפרויקט, ראה תרשים 8.2. 8 סדנת לימוד 6.0 8\ | |םן | [ ו - (80/008ז060!3) - (/9 6ח66), % א 4 תרשים 8.2: הפקודה זו60ו|כֶא= חסטק0 מתווספת לתוכניתך כאשר בטופס או במודול מופיעה הפקודה %ו6ו1קא= חסשקס, אך אתה נמנע מלהצהיר על משתנה, בעת הפעלת התוכנית תתקבל על המסך הודעת השגיאה: 06ח 8806 0 (משתנה לא מוגדר). מנפה השגיאות יאיר את המשתנה הפגוס ותהליך ההידור ייעצר. הודעה וו מסייעת לך לאתר טעויות שמקורן בשגיאות כתיב. למשל, בעת הצהרה על משתנה באמצעות ההוראה הבאה: 509 5 סחבּועו5 וחוס אם בהוראה מאוחרת תכתוב לא נכון את שם המשתנה, 8856 |%5088 תגלה את השגיאה עבורך במקוס להמשיך ולגרוס לתוצאות בלתי צפויות. לדוגמה, אס הוראת פוסו|קאם חסטקס מופיעה במודול או בטופס, הפקודה הבאה תגרוס להודעת שגיאה; אחרת התוכנית תמשיך לפעול מבלי להציב את הערך במשתנה הרצוי: "סוזה] החוד" = 6וחו\ץו5 ללא ההוראה 501166 חסטקס, שורת הקוד הקודמת היתה יוצרת משתנה נוסף, במיליס אחרות, היו לך שני משתני מחרוזת : 6וחהאץ5!1 ו-6וחאזץ5%. הערה: אם תבחר את האופציה 668800 6|פאוז\ 6זוטוף6 לאחר שתתחיל ליצור תוכנית, האופציה לא תשפיע על טפסים או מודולים שנוצרו כבר. במקרה זה, תוכל להוסיף את ההוראה זשו|קא= חסטק0ס כשורה הראשונה של הקוד באזור ההצהרות הכלליות בכל אחד מהטפסים או המודולים הקיימים. טיפ: אם הינך משתמש במעט אותיות גדולות בהצהרות המשתנים (והשגרות), כתוב את 7 הקוד באותיות קטנות. 885/60 |8פו/\ תשנה אוטומטית את גודל האותיות בשמות המשתנים כך שהם ייראו כמו בהצהרה שלהם. דרך זו תספק לך התוויה חזותית מיידית לכך שכתבת נכון את שם המשתנה (גודל האותיות ישתנה רק לאחר הקשת זפזח= בסוף השורה). פרק 8: שימוש במשתנים לאחסון מידע | 219 מה שונה בקבועים שימוש במשתנים הינו רק דרך אחת לשמור מידע בזיכרון המחשב. דרך אחרת היא על ידי שימוש בקבועים (₪ח607508). קבועיס מטופליס בדרך מיוחדת. לאחר הגדרתס (אס לא הוגדרו מראש על ידי 8856 |1508/), איו אפשרות לשנות את ערכס במהלך התוכנית. ניסיון לעשות ואת יגרוס להופעת הודעת שגיאה בעת הפעלת התוכנית. נסה לחשוב על קבועיס כעל משתניס אשר לא ניתן לשנות את ערכיהם. כיצד להשתמש בקבועים קבועים משמשיס בדרך כלל להחלפת ערכיםס אשר קשה לזכור או לכתוב, כגון ערך הצבע של שורת הכותרת בחלון. קל יותר לזכור את הקבוע 6081 60/81הפצ מאשר את המספר 2147483646-. ניתן גס להשתמש בקבועים כדי להימנע מכתיבת מחרוזות ארוכות בהן נעשה שימוש במקומות רביס בתוכנית. למשל, ניתן להגדיר קבוע כמו 0 זזסו, אשר יכיל בתוכו את המחרוזות ''0חטס) +סח 85ּ\ו 6| 6065560 סחדיי. לעיתיס קרובות הס משמשים גס כגורמים המיועדים להמרה, כגון 12 אינציים לרגל, או 3.3 רגל למטר. דוגמת הקוד הבאה מראה כיצד משתמשים בקבועים ומשתנים: 605% ]16%075 ] 060% = 3 ("5ז6%0רח חן 0158006 38 זס)ח=" )אסם+טסח1 = 8ז60!ס5וח 60| * 560075וכח = 66%- וח (150-667 )60507 .8 " :5] 166% חן 01558066 סחד" אס 50 שימוש נפוץ נוסף לקבועיס הוא צמצוס שינוייס בקוד, כמו שינוי שס התוכנית, מספר הגירסה וכדומה. ניתן להגדיר קבועיס בהתחלת התוכנית ולהשתמש בהס בתוך התוכנית. כאשר מספר הגירסה משתנה, כל שצריך לעשות הוא לשנות את הצהרת הקבוע (במקוס לשנות את כל החלקים בתוכנית שמשתמשים במספר הגירסה, למשל). הדוגמה הבאה ממחישה טכניקה זו: "6רחה3\] הסספסו!סקג עו" = 6 דפסזק 56ח60 סוופגוק "3.1" = חסופזס/\ףסזק 55ח60 סווסוק שיס לב לשימוש במילת המפתת סו|טטק, אשר גורמת לקבועים אלה להיות זמיניס בכל התוכנית (בהנחה שההצהרה הזו נמצאת בתוך מודול). קבועים המסופקים על ידי ₪356 |בּש5ו\ 6 |אטפו\ מספקת מספר קבועים מובניס עבור פעולות שונות. קבועיס אלה ידועיס גס בתור קבועים פנימיים (0ח5098ח00 6ופחושח1). בין קבועיס אלה מצוייס קבועי הגדרות צבעים, קבועי גישה לנתונים, קבועי קודיס למקלדת, קבועי צורות ועוד. קבועיסם שימושיים במיוחד הס הקבועיס הקשוריס לפרמטרים של פקודות, כמו הקבוע ח6!80800אםפצ אשר נמצא בשימוש בפקודה א5480א, כפי שכבר למדת בפרקיס הקודמיס. 0 סדנת לימוד 6.0 8\ הקבועיס, אשר בהס ניתן להשתמש ברוב הפונקציות, מתוארים בנושאי העזרה של אותן פונקציות. אס ברצונך לדעת ערך של קבוע מסוים, תוכל להשתמש בסורק האובייקטים (זספאוסזם ‏ 60[פ0), ראה תרשים 8.3. ניתן לגשת אליו בעזרת לחיצה על הסמל שלו בסרגל הכלים, על ידי בחירת ש6ז/, ז50ששסז8 09[66% מתוך התפריטים, או פשוט על ידי הקשה על 2=. תוכל להשתמש ברשימה כדי למצוא את הקבוע הרצוי. לאחר בחירתו, יופיעו ערכו ותפקידו באזור הטקסט שבתחתית תיבת הדו-שיח. |אומן. + | י|+ | <65וזפזטו 1 וות> 2 | - ואט וו חחושל 9 6 חס ₪ הטוס 6% וסוס ₪ 2חסנוםזוט3ז ספל ₪9 וו 9% 3חסחטם)וטגזה ספ ₪ 5180001008 קנ 34 סט ₪ ד ₪ ו וד ו הו רזחומ 9 (0זח059100\ ₪ טמ | ]| ]חפנו ₪ וט | המת /ר קציו = ואס טופ | | ד תוס הט שב - (8130) 48 = ה0ו094ם!0א 00510 6 וטע המע 01 זססחוסו 5000 זס1 1ה518חס6 ]ה6חוגופזה חסזושם תרשים 8.3: סורק האובייקטים מראה את הערך והשימוש של רוב הקבועים הפנימיים ב- 28510 |1808/\ יצירת קבועים משלך 6 |8%ש5\ מציעה אומנס קבועיס רביס למיגוון מטרות, אך לעיתיס תצטרך גם להגדיר קבועיס משלך. קבועיס מוגדריס באמצעות הפקודה ‏ 600% המייחסת לקבוע שס וערך, כפי שניתן לראות בתחביר הבא : 8 = [00051000/06 5 ] 60705/00108776 5%ח60 [6ש8טוזק | 6ווסטק] אס הוראה זו נראית לך דומה להצהרה על משתנה, אינך טועה. בדומה להצהרה על משתנה, גס בהצהרה על קבוע יש לספק שס עבור הקבוע, וכאופציה - גםס את סוג המידע אשר הקבוע יכיל. מילת המפתת 600% בתחילת המשפט מיידעת את 6 |808/\ כי מדובר בשורת קוד המגדירה קבוע. מילת מפתח זו מבדילה בין פקודה זו לבין פקודות אחרות, המציבות ערכיס במשתנים. כאשר מגדיריס סוג של קבוע, יש להשתמש באותם סוגיס המשמשים להגדרת משתנים (רשימת הסוגיס נמצאת בטבלה 2). לבסוף, כדי להשלים את הגדרת הקבוע, יש להוסיף את סימן השווה (=) ולאחריו את הערך המוצב בקבוע. אס הינך מגדיר קבוע מחרוזת או קבוע תאריך, וכור לתחס את הערך בין סימני מרכאות (יי) או סולמית (א), בהתאמה. פרק 8: שימוש במשתנים לאחסון מידע | 221 חשוב לדעת גס על טווח ההכרה בקבוע: החוקיס אשר תקפים לגבי קביעת טוות ההכרה במשתנים, אשר נדונו בסעיף היכן כדאי לעשות שימוש במשתנים, תקפיס גס לגבי קבועיס. מכאן... פרק וה ערך סקירה כללית בנושא שימוש במשתנים וקבועים ב- 8856 |1508/\. + בפרק 11 ניהול הפוויקט: תת-שגרות, פונקציות, וריבוי טפסים, תלמד את יסודות כתיבת הקוד המהווה את תמצית היישום ב- 8856 |1508/. לקבלת מידע נוסף על תכנות, פנה לפרקיס הבאים: + עיין בפרק 9 יסודות התכנות של 83516 |1503, כדי להעמיק את היכרותך עם השפה. > עיין בפרק 12 הפקדים המשותפים של 60501%ו1א, כדי ללמוד עוד על האירועיס הרביס והשוניס המיוחסיס לפקדים של 8856 |1508/\. 2 סדנת לימוד 6.0 8\ 9 יסודות התכנות של 6 |ובּופוצ פרק 9: יסודות התכנות של 8856 |השפו\ - 223 למרות החשיבות שבתכנון ממשק המשתמש, כולל טפסים ופקדים, מרבית העבודה המעשית מתבצעת על ידי שימוש בקוד. במונח קוד הכוונה לקטעי תוכנה הכולליס משפטים ופונקציות. כבר ידוע לך שטפסים יכוליס לכלול קוד, וכן הודגם איך ניתן לחדור אל הקוד יימתחת לפני השטחיי של הממשק החזותי של הטופס. לשס תזכורת נסקור את כל חלקי תוכנת 8856 |1508/ שייתכן שהס מכילים קוד: <* טפסים + מודולי קוד > מודולי מחלקה > פקדי משתמש יתרונה הגדול של 88516 |508ו/\ הוא בכך שהשפה שבה נכתב הקוד היא גס בעלת עוצמה רבה וגם פשוטה יחסית לשימוש. היא צאצא ישיר לשפת התכנות הוותיקה 8516. 6 תוכננה כשפה למפתחיס מתחילים, ומכאן שמה, המורכב מראשי התיבות "6006 105006000 6ו|סטוחץ5 6פסכזטם-||ה 5"וסחחופסם" (י'יקוד הדרכה סמלי לכל השימושיס למפתח המתחיליי). פרק זה בוחן אחדים מהמושגיס הבסיסיים בתכנות ב- 8856 |808ו\: כתיבת קוד תוכנה, עבודה עס מידע עיצובי וכדומה. בפרק 10, שליטה במהלך התוכנית, נמשך הדיון בשאלת בקרת התוכנה בעזרת לולאות ומשפטים מותנים. כתיבת משפטים הפרק הקודם שימוש במשתנים לאחסון מידע, לימד מעט על משתניס וקבועיס. הוסבר איזה סוג נתוניס ניתן לאחסן בהם, וכיצד להצהיר עליהם. ווהי רק תחילת העבודה עס מידע בתוכנית. דרוש גס לדעת איך להקצות מידע למשתנים, להפעיל מידע זה ולהשתמש בתוכן המשתניס בקודים אחריס של 8856 |1508/\. לביצוע מטלות אלו משתמשיס במשפטי קוד (6ח5080606). בהפשטה, משפט הוא שורת קוד, הגורמת למחשב לבצע פעולה. להלן דוגמאות אחדות לפעולות הניתנות לביצוע בעזרת משפטים: הקצה ערך למשתנה "חשזטה |" = 5816 קרא לפונקציה מוגדרת מראש "[פַחהוחזסו! 6000" א5080ו ח60עסו השח 1000 < הסוסה 6ודה זז 4 סדנת לימוד 6.0 8\ הסעיפים הבאים דניס במשפטי הצבה בסיסיים ובפעולות ומחרוזות מתמטיות. בהמשך הפרק, בסעיף תוצאות העיצוב תלמד איך לעצב מספרים ומידע אחר המטופל בידי קוד התוכנית. השימוש במשפטי הצבה לאחר הכרזת משתנה, הפעולה הנדרשת ראשונה בדרך כלל, היא אחסון מידע באותו משתנה. זה תפקידו של משפט ההצבה 51806060 +ח6וחת550ה). מבנה משפט ההצבה הוא פשוט: אתה מציין את המשתנה שאת ערכו ברצונך לקבוע, מציב לאחריו סימן שוויון, ולאחריו ביטוי המייצג את הערך האמור להיות מוצב בו. דוגמה למשפט הצבה בסיסי ביותר היא: 5 = א משפט ההצבה אומר ל- 8856 |1508\ להציב את המספר השלס 5 בשטת הזיכרון המיוצג על ידי המשתנה א. ההצבה אינה מוגבלת כמובן למספריס שלמים. הביטוי שאחרי סימן השוויון יכול להיות ערך מילולי, ביטוי או משוואה המורכבת משילוב כלשהו של משתנים וקבועים אחרים, או אפילו פונקציה מתמטית המגדירה ערך. אין הגבלה לדרגת המורכבות של הביטוי. המגבלה היחידה היא, שהביטוי חייב להחזיר ערך מסוג המשתנה אליו הוצב. טבלה 9.1 מדגימה משפטי הצבה אחדים: טבלה 9.1: סוגים של משפטי הצבה ביטוי מתמטי 5 טאה / 0656076 דח = 1/056076 "זסחהל+וס= החוד" .8 " .5זוא" = 5500056086 "הו6א\68 15ח60856%)"6/\ = 6 בא]|103ק568 ייתכן שהבחנת בדמיון שבין ערכיס אלה לערכיס ששימשו לקביעת תכונות הטפסים והפקדים בסעיף אופן ההפנייה לטפסים ופקדים בקוד, שבפרק 3, אבני היסוד של 6 !509ו/. למעשה ערכים אלה זהים. רוב מאפייני הטפסים והפקדים זהות. ניתן לקבוע אותס בשלב התכנון, וגס לשנותס בעת ההרצה, תוך שימוש במשפטי הצבה. מאפייני בקרה משמשים בחלק הימני של המשפט להצבת ערך במשתנה, ובחלק השמאלי לשינוי ערך המאפיין. לדוגמה: נניח שקיימות שלוש תיבות טקסט בטופס: 35006 זט (שס המשפחה), 6וההחספזוט (שס פרטי), שותהח6זסהםאט (שס מלא). כשמשתמש מזין שס פרטי ושס משפחה, כדאי שהשס המלא יוזן אוטומטית. פרק 9: יסודות התכנות של 8856 |508ו%\ | 225 דרך אחת לבצע ואת היא לאחסן כל מידע מתיבת הטקסט במשתנה, כמתואר להלן: 0חו50 5 5-36 חחוס 50 5 סחחהּ\ 51 חזוס 36 \5ן- א = 5-36 6וחהּ\35ּ אס = 6חחבּא 51 ניתן עכשיו לאחסן את צירוף השס הפרטי ושס המשפחה במשתנה אחר, ולהשתמש בו לעדכון 6וח68זחםט (השס המלא) באופן הבא: 509 5 536 חחוס 6חה\85% | ,8 * * ,6 6רחב5זו- = 6רח51\3 6וחהּ\5 = סותהּ\סזוסח= ואס כמובן, מכיון שניתן להתייחס לתיבות טקסט כאל משתנים (לפי מאפיין ברירת המחדל של הפקדים), ניתן להגיע לאותה תוצאה ללא הצהרת משתנים, לדוגמה השורה הבאה: סוה \35 | .8 * * .8 690-536 = 6רחבּ\סזטח= )אס שורת קוד זו יעילה יותר, מכיון שאינה דורשת קביעת מימדי המשתנים. אולס, במקרה שקוד ניגש שוב ושוב למאפיין פקד (כמו למשל ב- ססס! זסו), אחסון מאפיין במשתנה זמני יעיל לפעמים יותר. שימוש בפעולות מתמטיות אחת מפעילויות המפתח של תוכניות מחשב רבות הוא עיבוד נתונים נומרייס. פעולות מתמטיות קובעות הוצאת חשבונות ללקוחות וערכי ריבית על חסכונות ועל חיובי כרטיסי אשראי, מחשבות ממוצעי ציוניסם ומייברות קטעי מידע רביס נוספים. 6 |אשו\ תומכת במספר אופרטוריס מתמטיים, שניתן להשתמש בהס במשפטי תוכנית. פעולות אלו וסמלי 8856 |508ו\ המייצגים אותס מרוכזים בטבלה 9.2. הפעולות מתוארות בפירוט בסעיפיס הבאיס. טבלה 9.2: פעולות מתמטיות וסמלי 83516 |הּטפו\ התואמים להם פעולה אופרטור | חמור 0000000 + חיבור חילוק שארית חילוק (פ5ט!גוטסוו) העלאה בחזקה 6 סדנת לימוד 6.0 8\ ב- 8856 |508/\ משמשות הפעולות המתמטיות ליצירת משוואות. אלו כוללות אופרטורים, משתנים וביטוייס אחדים, כמו למשל בדוגמה הבאה: 5 * 69 / (00.)חטסוח\ס + 115) הערה: הערך החוזר מ-6.)חטסוח\ט הינו מחרוזת טקסט, אך 8856 |שפו/ יודעת להפוך ערך זה למספר, כדי לא ליצור חיבור בין ערך נומרי לערך טקסטואלי. יש לשים לב כי למרות שהביטוי בדוגמה הוא בר-תוקף, שורת הקוד כשלעצמה איננה מבצעת דבר. תוצאת הפעולה צריכה להישלח ליעד כלשהו, למשל להיות מוצבת כמשתנה, או להיות מוצגת על צג המחשב. חיבור וחיסור שתי הפעולות המתמטיות הפשוטות ביותר הן חיבור ותיסור. לכל מי שהשתמש במחשבון לביצוע פעולות אלו יש מושג טוב איך הו מתבצעות כשורת קוד מחשב. תוכנית מחשב מאפשרת גמישות רבה יותר ממחשבון. פעולות אלו אינן מוגבלות לעבודה בביטוייס מספריים (למשל 1, 15, 37.63, 105.2-). התוכנה מאפשרת לחבר או לחסר שניים או יותר ביטוייס מספריים, משתנים נומריים, או כל פונקציה המחזירה ערך מספרי. כמו-כן ניתן, כמו במחשבון, לבצע כל צירוף של פעולות חיבור וחיסור. נבחן עתה איך בדיוק מתבצעות פעולות אלו. השימוש באופרטור החיבור אופרטור החיבור ב- 8856 |1508/ הוא סימן הפלוס (+). השימוש הכללי באופרטור הוא כמוצג בשורת התחביר הבאה: [3ז6סוחווח +] 2זססוחטח + 1וססותח = %|50סז סז הוא משתנה (או מאפיין פקד) המכילה את סכוס המספריסם. סימן השוויון מציין הצבת ערך למשתנה. 6/1קקשח, 2וספוחטת ו-63פוחטח הם הביטויים המספריים, המשתניס המספריים או הפונקציות שיש לסכם יחד. ניתן לחבר מספרים ככל הנדרש, אך כל וּוג מספרים חייב להיות מופרד בסימן פלוס. השימוש באופרטור החיסור אופרטור החיסור הוא הסימן מינוס (-). התחביר והה בסיסית לגה של פעולת החיבור: [3ז6ס חחח -] 2זססותוח - 1זססותטח = %|50סז בניגוד לפעולת החיבור, שבה אין משמעות לסדר הנתוניס, בחיסור המספר לימין סימן המינוס מחוסר מהמספר לשמאלו. במקרה של פעולה רב מספרית, מחוסר המספר השני מהראשון, המספר השלישי מחוסר מהתוצאה וכן הלאה, תוך מעבר משמאל לימין בטור המספריס. פרק 9: יסודות התכנות של ₪856 |508ו%\ - 227 לדוגמה במשוואה הבאה: 6506 = 15 - 6 - 3 המחשב מחסר ראשית 6 מ-15, כשהתוצאה 9. אחר הוא מחסר 3 מ-9 ומקבל 6 כתוצאה סופית עבור המשתנה %/650ז. טיפ: ניתן לשלוט בסדר הפעולות על ידי שימוש בסוגריים. למשל: שורת הקוד הבאה תציב את הערך 12 במשתנה :6801ז: ]650|) = 15 - )6 - 3( ניתן ליצור משפטי הצבה הכוללים רק אופרטוריס של חיבור או חיסור. ניתן גם להשתמש בשני האופרטורים יחד, או לשלבס עם אופרטורים מתמטיים נוספים. דוגמאות אחדות לאופרטוריס תקפים הן: /8|1 = 1.25 +7 82 = 11 1 + אע = 8|3/ 3 + 2.1 - 3.75 + 3|פע = 8|4/ 1 + 4וה/ = 8|4/ למי שאיננו מכיר תכנות מחשבים, ייתכן שהשורה האחרונה (שבה מופיע אותו שס משתנה גס לשמאל סימן השוויון וגס לימינו), נראית משונה במקצת. שורה כזאת אכן איננה מותרת בכמה שפות תכנות. ב- 88566 |1508/ על כל פנים, ניתן לכלול שורת קוד האומרת לתוכנה לקחת את הערך הנוכחי של משתנה, להוסיף לו מספר אחר ולאחסן את התוצאה המתקבלת באותו משתנה. כפל וחילוק שני אופרטוריס מתמטיים עיקריים נוספיס שיש להכיר, הם כפל וחילוק. כמו חיבור וחיסור, נעשה בהס שימוש רב בתיי יוס-יוס. השימוש באופרטור הכפל ב- 88516 |1808/ פעולת הכפל מבוצעת באופן ישיר, ממש כמו חיבור וחיסור. אתה פשוט משתמש באופרטור הכפל - הכוכבית (*) - להכפלת שני מספרים או יותר. תחביר משפט ההכפלה המופיע להלן, והה כמעט לזה של משפט החיבור והחיסור: [3ז06וחטח *] 2זססותטח * 1זססותטח = 65061 כמו במקריס הקודמים, 690!61 הוא שס המשתנה שנבחר לאחסון תוצאות ההכפלה, רואילו 1ז6קחשח, 2וספותטח ו-3ז6פוחטח הם ביטויים מספריים, משתנים נומריים או פונקציות. 8 סדנת לימוד 6.0 8\ השימוש באופרטורים של חילוק פעולת החילוק ב- 8856 ו508\ מורכבת מעט יותר מכפל. הקוד שבתוכנית 9.1 להלן מציג את השימוש בשיטת חילוק אחת, זו המוכרת בחיי היומיום ומשמשת במחשבונים. התוצאה מתקבלת כמספר והשבר העשרוני שלו (אס יש שבר). אולס, ו היא רק אחת משלוש שיטות חילוק הנתמכות על ידי 8856 |הטפוצ. הן מוכרות כחילוק עם נקודה צפה (חסופוטום זחוסק פַחחפסו=, השיטה הרגילה והמוכרת), חילוק מספר | שלם (הסופוצו | ז600שה1) | וחילוק | מודולוס | או שאוית חילוק (חסופועו ,זס 0חוהוח6ז זס ,פטוטססוא). חילוק עם נקודה צפה הוא החילוק הטיפוסי, שמלמדיס בבית הספר. מספר אחד מחולק בשני, והתוצאה היא מספר עשרוני. האופרטור שלו הוא הקו הנטוי (/): [3ז6 הח /] 2זססוהווח / 1זססותוח = 650|6ז השורה הבאה מחזירה את התוצאה 1.33333 : 3 / 4 %חוזק חילוק מספר שלס מחלק מספר אחד בשני, ומחזיר רק את החלק השלס של התוצאה. האופרטור שלו הוא הקו הנטוי ההפוך (): [3ז6ס ווח \] 2זססוחווח \ 1זססותוח = 650|6ז השורה הבאה מחזירה את התוצאה 1: 3 \ 4 )חוזק חילוק מודולוס (או שארית חילוק) מחלק מספר אחד בשני, ומחזיר כתוצאה את השארית המתקבלת לאחר קבלת מנת השלס הגדולה ביותר האפשרית. אופרטור הפעולה הוא המילה הלטינית 00 : [063 7 סרח ] 0672 סח 706771 = 5|6סז השורה הבאה מחזירה את התוצאה 2, השארית המתקבלת כשמחלקים 20 ב-3: 3 06 20 %חוזק כמו בחיבור, חיסור וכפל, אס מתבצע חילוק של יותר משני מספרים, כל זוג מספרים צריך להיות מופרד באופרטור חילוק. כמו כן, כמו במקריס האחרים, פעולה מרובת אופרטוריס מתבצעת על ידי קריאת המשוואה משמאל לימין. פרק 9: יסודות התכנות של 8856 |50ו%\ - 229 תרשיס 9.1 מדגיס את ההבדלים בין האופרטוריס השוניס של החילוק. הקוד ללחצן הפקודה בטופס המוצג הוא: = [סטסחו ]דד = סטסחו טשטסחו / 1)טסח! = 60 ד.63א6ד טטטסחו \ 1)שסח! = 60 ד.4)א6ד שטסחו סח 1)+טסחו = 6% ד. )אד תרשים 9.1: תוכנית זו מדגימה את ההבדלים בין שלושה סוגי פעולות החילוק של 6 |08פו/\ לאחר בניית הטופס הר את התוכנית. הצב 5 בתיבת הטקסט הראשונה ו-3 בשנייה, ולחץ על לחצן הפקודה. שים לב למספרים השונים המופיעים בתיבות הטקסט המציגות תוצאות. ניתן לנסות דוגמה זו גם בצירופי מספרים אחרים. השימוש בכפל ובחילוק בתוכנית כהדגמה לשימוש בכפל ובחילוק בתוכנית מחשב מובאת להלן דוגמת תוכנה לקביעת כמות הצבע הדרושה לצביעת חדר. תוכנה כזאת יכולה לכלול טופס, המאפשר לצבעי להוין את אורך החדר ורוחבו, גובה התקרה, שטח הכיסוי של פחית צבע אחת ואת מחירה. דוגמת הטופס מופיעה בתרשים 9.2, והקוד לביצוע החישוביס מופיע ב-ק8/. אש דה ו. 0 סדנת לימוד 6.0 8\ "7" ₪ תרשים 9.2: כדי לקבוע את כמות הצבע הדרושה לצביעת חדר משתמשים בפעולות כפל וחילוק תוכנית 9.1: ?8/.אשה דא הערכת עלות צביעה בשימוש באופרטורים של כפל וחילוק ()א6116 068|60|8386ח6 סטש 6ספעווק 6חו5 45 ה6סח6 |רה0ס% הזוס 6חו5 5 00 הזוס 6 5 ור 100 הוחו 6 5 00067806ח608 וחוס ץ6ח6זו 5 005%ח608 חחזום 6חו5 5 זס0ז6רחו קר 00 החוכ 56 45 68זה||8// וחוס חומ 45 פחסו|ה6וחוצ? וחוכ הסט 5 605%[סזק6 וחוס (0א6 ד.ה0%ח6 60%ס)!8/\ = הז0ח6 ווהסס? (0א ד. 00ו//\8|)000/\ = הססו/\והסס (0א6 ד.ז00ו3|)00016/\ = +הסוסהוהסס? (0א6 8|)00000/61806.7/\ = 1300007806 (0א6 [.8|)000005%/\ = 6680605% וסור 100 * 2 + חס |ההססז * 2 = סלוו קוהסס? וס סז * סקר סב = 68זה||ב\/ת 6 / 68זה||1\\3 = פחסו|השוחטצ * פחסו|ה6וחטו\ז = 605[סיק6 5חס!|8רנו\\1 = 6% דך.5חס!|06008ס = )א 068|005%.7 אס 50 0ח= פרק 9: יסודות התכנות של ₪856 |8טפו/- 231 כדי לנסות קוד זה, יש להתחיל ביצירת פרויקט 5אם ב- 8856 |150/. הוסף לטופס שבע תיבות טקסט. קבע את מאפייני 6וחפּ)! שלהן ל- ה%ז0ח6 6אס, זח0ו066ט, 6)00/67806)ס, 5חס||68 ו-0%8!6005% 0001 חמש תיבות הטקסט הראשונות מיועדות לקלוט מידע מהמשתמש. שתי האחרונות מחזירות מידע. ייתכן שתרצה להוסיף פקדי רמה תיאורית לצד כל תיבת טקסט. בשלוש תיבות הטקסט העליונות שבדוגמה מזיניס את מימדי החדר. בשתי תיבות הטקסט האמצעיות מזיניס את יכולת הצבע לכסות במייר ואת עלותו. שתי תיבות הטקסט התחתונות מציגות את מספר הגלוניס שנדרש לביצוע הצביעה ואת העלות. אחר יש להוסיף לטופס לחצן פקודה. שנה את מאפיין 86 שלו ל-068|6018%6ח6, ואת מאפיין ח68000 ל- 605% 00 68|60!8%6. הוסף את שורות הקוד המופיעות בתוכנית 9.1. שמור והרצ, כדי לראות את הפעולה. שימוש במעריך מעריכים נקראים גס חזקות. למשל, 2 בחזקת שלוש (2), שווה-ערך ל- 2%2א2, או 8. מעריכיס משמשים רבות בפעולות מחשב, שבהן ערכים רבים מיוצגים כביטוי בחזקת שתייס. הם גס מופיעיס בהרחבה בעבודות מדעיות והנדסיות, שבהן מונחיסם מתמטייס מוצגיס לעיתים קרובות כחזקות של 10 או כלוגריתמיס טבעיים. מעריכים פשוטיס יותר משמשיס בסטטיסטיקה, שבה חישובים רביס תלויים בריבועי מספריםס או בשורשיהס הריבועיים. כדי להעלות מספר בחזקה משתמשים באופרטור המעריכי (זסזבּז6ק0 |הסחפחססאם), או בח העילי (י). מעריכים גדוליס מיחידה מייצגיס העלאה בתחזקה. מעריכיס שהס שבר מייצגיס הוצאת שורש, ומעריכים שליליים מייצגיסם שברים. להלן תחביר האופרטור המעריכי: 2זסטוח * 1זססהווח = זסצ\פחהּ המשוואות בטבלה הבאה מציגות שימושיס נפוצים במעריכיס. מצוינות גס הפעולות שכל משוואה מבצעת. הוצאת שורש ריבועי ממספר 3 = 0.5 א 9 הצגת שבר ע"י מעריך שלילי 5 = 2- % 2 2 סדנת לימוד 6.0 8\ קדימות אופרטורים ביטוייס רביס מכילים שילוב של האופרטוריס שתוארו. במקריס כאלה חשוב לדעת באיזה סדר מפעילה 8856 |1508\ את טיפוסי האופרטוריס השוניס. למשל, מה ערך הביטוי 2 / 6 + 3 * 4! ניתן לחשוב שהאופרטוריס מופעליס לפי סדר הופעתס משמאל לימין. במקרה וה 3 * 4 שוויס 12, 6 + 12 שוויס 18, 2 / 18 שווים 9. למעשה, 6 |508/\ אינה מפעילה בהכרח את האופרטוריס לפי סדר הופעתם משמאל לימין. היא עובדת לפי סדר הפעלה ברור, הידוע כקדימות אופרטורים (800ז6ק0 6 6 |808ו/\ מפעילה תת-קבוצות של אופרטוריס לפי סדר הקדימויות הבא: > פעולות מעריכיות (א) * הפעלת סימן שלילי (-) + כפל וחילוק (*, 0 + חילוק מספר שלסם (\) > חישובי מודולוס (0סוח) + חיבור וחיסור (+, -) בתוך תת-קבוצה מופעלים האופרטוריס לפי סדר הופעתם משמאל לימין. לאחר הפעלת כל תת-קבוצה, מחושבת שארית הביטוי משמאל לימין. בדוגמה הקודמת (2 / 6 + 3 * 4), קטעי הכפל והחילוק (3 * 4 השוויס 12 ו- 2 / 6 השוויס 3) יחושבו תחילה, ואחר יתבצע החישוב הפשוט יותר של 3 + 12, ששוויו 15. ש אזהרה הבנת סדר קדימויות האופרטורים חיונית כדי להבטיח שתוכנית תבצע את החישובים כמצופה ממנה. למשל: נניח שיש לחשב את ממוצע התוצאות של שתי קבוצות ניסויים. ניתן לכתוב את שורת הקוד הבאה: 2 / 16502 + 16561ח = 1/050076 שורת קוד זו נראית לכאורה נכונה, אך חישובי 8856 |1508/ לא יהיו מדויקים. מכיון שלאופרטור החילוק קדימות גבוהה מאופרטור החיבור, תת-ביטוי 2 / 652זח יחושב ראשון, והערך המחושב יתווסף ל-69:1דח. ברור שזה איננו סדר הפעולות הנכון. בשימוש בסוגריים ניתן למנוע את הבעיה ולשלוט על סדר ביצוע הפעולות: 2 / (16502ח + 6561 1ח) = 056076/+ ביטוי זה יחושב כנדרש. הביטוי (16502ח + 6501 דח) יחושב ראשון, והסכום יחולק ב-2. נניח ש-6501זה שווה 97 ו-6502זהח הוא 88. הביטוי מחושב לפי 2 / (88 + 97), או 2 / 185, המחזיר ל-אזסס5פָטג1 את הערך הנכון של 92.5. השמטת הסוגריים תביא (לפי סדר קדימויות האופרטורים) את התוצאה של 2 / 88 + 97, או 44 + 97, או 141. פרק 9: יסודות התכנות של 8856 |608ו%\ - 233 הערה חשובה: אפשר לשנות את סדר קדימויות האופרטורים, על ידי שימוש בסוגריים ליצירת תת-ביטויים שיחושבו קודם. ניתן גם לבנות מערכות של סוגריים בתוך סוגריים. 6 |טפו/\ מחשבת ראשית ביטויים בתוך הסוגריים, פנימיים לפני חיצוניים, ולאחר מכן מפעילה את סדר קדימויות האופרטורים. הנושא 66066066 0613+01 שבעזרה של 8856 [508ו/\ מציג דיון טוב בנושא, לרבות השאלה על הפעלת הקדימויות באופרטוריס של השוואה ואופרטוריס לוגייס. עבודה עם מחרוזות בעבודתו משתמש המפתח במחרוזות למטרות רבות. ככל שתפעול המחרוזות נעשה בצורה יעילה יותר, התוכנית נראית מקצועית יותר. 8856 |%08 מאפשרת גמישות רבה בכל הקשור לשימוש במחרוזות. היא תומכת באופרטור מחרוזות אחד בלבד - אופרטור השרשור (ח800ח6006800), אך פונקציות מחרוזת אחדות מובנות לתוך 6 |08פו/\, וניתן להשתמש בהן: * 00856 ו-6856] - שנה את כתיב הטקסט לאותיות רישיות (60856ז6קקט) או לקטנות (6856ז6או1.0) בהתאמה. + 1507 ו-ש5086ח1 - מצא מיקוס מחרוזת אחת הממוקמת בתוך מחרוזת אחרת. + 68 וַתִפָוַ₪ - שלוף מספר תווים נתון מצידה חימני או השמאלי של המחרוזת. + 6ו₪ - שלוף או החלף מספר תוויס נתון במחרוזת. + | חוזדח ,חוזד! ו-וחוזד - סלק מרווחיס מקצה אחד או משני קצות המחרוזת. + ח6]- מחזירה אורך מחרוזת (לפי מספר תווים). הערה: כמה מהפונקציות שברשימה (למשל 06856) מחזירות ערך מטיפוס זחפּ8/. לגבי כל אחת מהן, פונקציה בשם זהה עם סימן דולר (%) בסוף השם מצביעה שהערך המוחזר הוא הסוג מחרוזת. מומלץ להשתמש בגרסת % בכל מקום שזה אפשרי (למשל %), כי היא יותר יעילה. בקטע זה נבחן כיצד ניתן לתפעל מחרוזות, כדי לספק לתוכנית הופעה מקצועית. 4 סדנת לימוד 6.0 8\ שרשור מחרוזות כמצוין לעיל, קיים ב- 8856 |%808 אופרטור מחרוזות אחד - אופרטור השרשור (ז0ז618ק0 ח0ו608%ז68ח60). האופרטור, המסומן בתו 8, מחבר שתי מחרוזות טקסט או יותר, בדומה לאופן שאופרטור החיבור מחבר שני מספריס או יותר. בצירוף שתי מחרוזות בעזרת אופרטור השרשור, המחרוזת השנייה מחוברת ישירות לקצה המחרוזת הראשונה. כתוצאה מתקבלת מחרוזת הכוללת את התוכן המלא של שתי מחרוזות המקור. אופרטור השרשור משמש כמשפט הצבה באופן הבא : [3ז0א06חו5 .8] 2זקא06חו5 .8 1 7קא6חו50 = סחוספצ\סח בתחביר זה חַחו80ו6ח מייצג את המשתנה המכיל את תוצאת פעולת השרשור. 1א6חו50, 72קא06חו50 ו-3זקא86ַחוש5 מייצגיס כולס ביטויי מחרוזת. אלה יכוליס להיות כל מחרוזת אפשרית, כולל משתני מחרוזת, מחרוזות מילוליות (מוקפות במרכאות), או פונקציות המחזירות מחרוזת. התו 8 בין צמד ביטויי מחרוזת מורה ל- 88516 |508ו\ לרכז את שני הביטויים. לפני התו 8 ואחריו חייב להופיע רוות. התחביר מציג תו 6 שני אופציונלי וכו מחרוזת שלישית. ניתן לחבר כל מספר של מחרוזות, כל זמן שכל זוג מופרד על ידי התו 6. הערה: בהסבת תוכניות מגרסאות ישנות של 8856 |8ש8ו/, יש לפעמים מחרוזות המחוברות בעזרת (+). שימוש כזה היה שכיח בגרסאות מוקדמות של 8856 |הטפוצ, כמו בשפות 84516 ישנות. למרות ש- 88516 !טפוש עדיין תומכת בשימוש בסימן פלוס לשרשור מחרוזות (במקרה שאופרטור זה מופיע בגרסאות ישנות העוברות התאמה), ההמלצה היא להשתמש בתו 8 למטרה זו. כך נמנע הבלבול בין פעולת השרשור לחיבור. תוכנית 9.2 מראה איך לשרשר מחרוזות בתוכנית פשוטה, ליצירת תווית כתובת. השדות מתיבות טקסט שונות מחוברים כדי ליצור שורות שונות לצורך התווית. תוכנית 9.2: ק1\6./8 וזהוז - השימוש בשרשור מחרוזות לשם יצירת תוויות כתובת ()6ו1 00 חק 6 סנ5 סזבּעווק 500 5 6הוה\ 51 ,6חו50 5 6החבּ-5 הזוס 508 5 5010 ,8חו50 5 500 חחוס 8חוזז5 5 5217 ,0חו50 45 006ז55 חחוס 58 5 516 וחוס 58 5 5652 ,0חו50 25 536 חחוס ] .זו- 00 = 5-36 6% 350.7 | = שוחה |5 6% .000007055 = 500 ]דוס = שו50 0% = 5509006 ד = 5217 פרק 9: יסודות התכנות של ₪856 |8טפו\- 235 " .ז]" = 51106 הסחד סטוהּ/\.זויטקס +ז " .5ז]" = 5106 הסחד שט!3/\.פזויטקס + " 55ו]" = 51106 הפחד 6טו55.\/8וטקס +1 " .5|]" = 5116 הפחד סטו5.\/8|שקס +ז שוחה 51 ₪ " ".8 סחחבּ\5-1 .8 51106 = 586 ₪ " " 8₪ 551006 8 " ," 8 5010 = 5052 586 זחוזק. זסזחווק שחחחק.וססחויוק 72 שסחוזק .זססחווק 50 0ח= הטופס לתוכנית זו מוצג בתרשים 9.3. |< ום|= !ספב | טחוווב וא .₪ ₪( 700 096 4608 כו 78 אא 7 אה] :בא 7 | :4067888 | | ששפיץ ]3 אס 200006 ]-7777 | וא תרשים 9.3: היישום תווית כתובת מציג כיצד אפשר לחבר מחרוזות לתצוגה או הדפסה קביעת אורך המחרוזת בפעולות רבות יש צורך לדעת כמה תוויס נכלליס במחרוזת. למשל: כדי לדעת אס מחרוזת תתאים לשדה בעל אורך נתון בבסיס נתונים, או, במקרה של עבודה עס מחרוזות ארוכות, יש לפעמיס צורך לוודא שאורכן המשולב של שתי מתרוזות מחוברות אינו חורג מקיבולת משתנה המחרוזת. בכל מקרה, לקביעת אורך מחרוזת כלשהי, ניתן להשתמש בפונקציה ח6!, כמודגם בשורת הקוד הבאה: (5)טסחו) ח6] = 50|6סז לפונקציה ח6! יש כמה שימושיםס. במקרים רביס משתמשים בה כדי לקבוע אם במחרוזת מסוימת מופיעים תוויס. במקרה שהמחרוזת ריקה, ייתכן שיהיה צורך לייצר הודעת שגיאה או לעקוף עיבודיס נוספיס. 6 סדנת לימוד 6.0 8\ שינוי גודל האותיות במחרוזת שתי פונקציות משמשות לשינוי גודל אותיות במחרוזת: 6856 ו-16856. הפונקציה 6 מחצירה מחרוזת שכל אותיותיה שונו לרישיות (6856ז6סק), פונקציית 6856 | עושה את ההפך: מחזירה מחרוזת שכל אותיותיה קטנות (556פּסזְ6ְשו10). פונקציות אלו נראות טריוויאליות, אך הן שימושיות למדי לביצוע כמה מטלות. ראשית ניתן להשתמש בהן להבטחת הצבה נכונה של אותיות רישיות. הקוד בתוכנית 3 מציב אות רישית בראש המללה, ואותיות קטנות בהמשך: תוכנית 9.3: 65560%%./87 שימוש ב-6856!) וב-1685 להצבה נכונה של אותיות רישיות במילים לטיניות. 50 35 סזסש)זסקסז5 ,8חו50 35 סזס\\5 חחוס "0856 0םא1וח"= 5/0 ((1 ,6זס/\6856%)1.6/0%)5(\ = חזס//זסססיזק5 ((0,2זס/\\6856%)1]10%)5 | 8 סזס/\זקסזק5 = 6זסש)זסססיזק5 הערה: פונקציות מחרוזת מחזירות ערכים, אך אינן משנות את הקלט. למשל הדוגמה: 8חו5 5 51 הזוס 8חו5 5 52 חחוס "1 הח 6856 חסוחץו" = 51 (0856%)51(\ = 52 לאחר הרצת הקוד, המשתנה 52 מופיע כולו באות רישית, בעוד 51 נשאר ללא שינוי, אלא אם כן 51 מוצב בשני צידי משפט ההצבה: 51 = )26856%)51( פונקציות 6856 שימושיות למשל לצורך השוואה בין נתוני קלט של משתמש, לטוות ערכים מוגדר מראש. אס נתוני קלט מומריס לאותיות רישיות, ניתן להשוותס למחרוזת בדיקה המורכבת מאותיות גדולות: (0א6 ד. ה0ו8ז6356)%%006(\ 6856 50|66 6856 "\/ 5" 8 50 סכ ' "155" 0856 6 5068 סכ ' "\זקפ" 6856 + 6156 0חוה6ח50 סכ ' 6 68596 "!ץחחם סו|השח1" אס 50 ס6חם פרק 9: יסודות התכנות של ₪856 |פטפו\ - 237 בקוד וּה, אס לא נעשה שימוש בפונקציה 6856, התשובה ץשחם 6ו|פעח1 היתה מוחזרת גסם אס נעשתה הבחירה ייהנכונהיי של אותיות קטנות או מעורבות (למשל המחרוות ספחוא). טיפ: בתכנות מקובל להשתמש בקינון פונקציות מחרוזת בתוך שורות קוד, במקום השימוש במשתנים נוספים לצורך אחסון נתוני כל צעד ביניים. נבחן לדוגמה את השורה 6856 :56/60 בקוד המובא להלן, העושה שימוש בכמה פונקציות מחרוזת מקוננות לעזרה באימות קלט. המשתמש יכול להשתמש כרצונו בכל צירוף אותיות קטנות וגדולות, והקוד יטפל בה: ("!6856!כן ,סא זס 65 ס6כץ ד")פאסש)טוסח1 = 6סח1ו56 50 (0((,1.ט0ח0561 6856%)50(\)חוז 6%)7 | 6856 50|66 "ץ" 0856 "פס" א00 ₪50 "\" 6856 "[6856!כ סא זס 5םץ 6" א80 !ו ס6חם פונקציה אחרת של 8856 |1508/, צח50₪60, מבצעת המרות מיוחדות של מחרוזות. רוב ההמרות שהיא מסוגלת לבצע הן עודפות וחוזרות על עצמן (למשל הפיכת כל המחרוזת לאות רישית או לאות קטנה), או חורגות ממסגרת ספר זה (למשל המרה בין סוגי אותיות יפניות), אבל כדאי להזכיר כאן סוג המרות אחד כזה. הפונקציה צח5060 מסוגלת להסב משפט למצב 656 וסטסיוק, שבו האות הראשונה בכל מילה היא אות רישית. דוגמת הקוד הבאה מדגימה את הטכניקה: (0856ז6ק סק ט/ ,6חו|501680)/ח50760 = סחו|סהסרווטו דוגמאות לשימוש בפונקציות 6856(ו, 16856 וכן צחס5₪6 מופיעות בתרשים 9.4. ומ קוא 56 0=אוו] שוח | 7% הפיחס סז אסוום שפוחה 00% 500 תרשים 9.4: תוכל להשתמש ב-0856], 6856 ו-עח560 כדי לשנות את גודל האותיות במחרוזת טקסט 8 סדנת לימוד 6.0 8\ חיפוש מחרוזת במשימות רבות הקשורות במחרוזות, דרישת התכנות הראשונה היא לקבוע אס והיכן מופיעה מילה מסוימת, ביטוי או צירוף תוויס אחר בתוך מחרוזת. היכולת למצוא מחרוזת אחת בתוך אחרת מאפשרת חיפוש מילה בתוך טקסט. בחיפוש כזה ניתן לבצע החלפה גלובלית של מחרוזת, לדוגמה החלפת המילה ייטקסטיי במילה יימחרוזת'יי בכל מקוס שהיא מופיעה במסמך נתון. סיבה אחרת, נפוצה יותר, לחיפוש בתוך מחרוות, הוא הצורך בניתוח מבנה משפט (0חו5ז28). ניקח כדוגמה את משפט הקלט הבא, הכולל שס של אדס במבנה כדלהלן: ".זכ ,5וחםו!!וש\ .₪ פחו|ז50 .זס". בתיק הכולל מאות מחרוזות כאלו, אחסון המידע בבסיס נתוניס, עס הפרדה בין שדה השס הפרטי ושס המשפחה, נראה קצת מסובך. אבל ניתן להשתמש בפונקציות חיפוש מחרוזות ובלוגיקת תכנות, כדי לנתח את מבנה המשפט ולפרקו לחלקים קטנים יותר. הפונקציה המאפשרת חיפוש תו או קבוצת תוויס בתוך מחרוזת נקראת 57ח1. יש לה שני פרמטרי חובה ושני פרמטרי רשות. שני הפרמטרים הנדרשים הס המחרוזת הנבדקת והטקסט אותו יש לחפש. אם הטקסט המבוקש מופיע במחרוזת, [5ח1 מחזירה את אינדקס התו שבו מתחיל הטקסט המבוקש. אם הטקסט איננו נמצא במחרוזת, מחזיר האינדקס את התו 0. התחביר הפשוט של פונקציית 5ח1 מוצג להלן: (568760507 ,50)500760547ח1 = 5סקוח6 לדוגמה הפונקציה: ("טסץ",". ץְ6508ד )סח וסץ 566 |ו'1")פח1 )חוזוק מחזירה את התוצאה 10, מכיון שזה מיקוס תחילת המילה שסץ. פרמטר הרשות הראשון של הפונקציה 54ח1 מציין לה את מיקוס התו הראשון שבו יש להתחיל בחיפוש. פרמטר זה חייב להיות מספר חיובי שלס. אס הפרמטר גדול מאורך המחרוזת, 105% תחזיר את הערך 0. תחביר הפונקציה הוא : (568760517 ,50760507 ,91+205ו50)5ח1 = 5סקוחס לדוגמה הפונקציה: ("18||","6 8 6ז0610 ר60רחס6 שסוזק",50)7ח1 זחויוק מחזירה את הערך 10, למרות שה-6 הראשון מופיע במקוס 5, מכיון שהחיפוש מתחיל במיקוס השביעי. פרמטר הרשות השני קובע אם החיפוש יהיה תלוי-רישיות. מתן ערך 0 לפרמטר ההשוואה (ערך המחדל שלו), מבצע חיפוש תלוי-רישיות. הצבת ערך 1 לפרמטר מבצע חיפוש שאינו תלוי-רישיות. התחביר הוא: (1 ,50876050 ,5000760507 ,05ק507)5006ח1 = 5סזח6 פרק 9: יסודות התכנות של 8856 |608ו%\ - 239 בעזרת פרמטרי הרשות אפשר לכתוב קוד המוצא בוה אחר זה את כל מחרוזות החיפוש בטקסט הנבדק. הקוד בתוכנית 9.4 מדפיס את המילים במחרוזת, המופרדות ברווחיס. הוא פועל על ידי לקיחת תוצאת הפונקציה 105% והעברתה בחזרה לפרמטר 5 תוכנית 9.4: 87/.א85 1851 - שימוש בפונקציה לחלוקת מחרוזת למילים (0חוז5 5 +0סח55)50סזס//6חווק 5 ז הו 35 זססהטסחו הזוס 1 5 5סקסהטס=חו וחוס 6 " " = 8ב5560ק 60% 8חורטסח 00 השח אחהופ 15 חספ זזי 0טפ א הפחד 0 = סטקח50)חם | זז 6 8 10 ה56870 ( 6 5 ,)5070 ,זססהטססחו)50ח1 = 5סקוסחטס=חו 56869 כ66א סה סזסצו 606 זחוזס סחהטס? 5! 50866 ב ]זי 0 <> פסק סחטס=חו 6ווח/\ (זס6חטס6חו - 5סקסחטס=חו ,הסח ,6ט0כח08)501וו +חוחק. פטססס 1 + 5סקסחטס=חו = זס%חטס6חו (ב56 חק ,קח50 ,זס%הט0סחו)50ח1 = 5סקסחטסהחו 60 58 6 01 זססחוה ותש שר זחוזק' הסח ד סטסח501)ח6 | > וסשהטססחו זז ( הסח ,6 ח0%)507ו! 6חוזק /פטססס + 0חם סט5 0חם הקלט ותוצאות הקוד הזה מופיעיסם בתרשים 9.5. בתוכנית 9.4 מבצעת הפונקציה 15 חיפוש מהתו הראשון במחרוות עד התו האחרון. ב- 8856 |1508 קיימת פונקציה דומה, עצ578₪6ח1, המבצעת את החיפוש בכיוון ההפוך. הפונקציה עובדת כמו 50ח1, אך התחביר שונה במקצת : ([[ זה קרחסש , ]5594 , ]02ח501 ,1 0ח5071)/ סח 0 סדנת לימוד 6.0 8\ <ום)=. [חזס] .₪ שחחס! הזוס 15 וחזה 5 | : 80 )ושח | סש )חוזכ סל אסוום תרשים 9.5: השתמש בפונקציה שפח1 כדי למצוא את כל הרווחים במחרוזת ההבדל העיקרי הוא שפרמטר ההתחלה נמצא אחר* המחרוזת, לא לפניה. בשימוש ב-צ86זז5ח1 ניתן לשנות קלות את הקוד שבתוכנית 9.4 ולבנות תת-שיגרה ששמה סו הח : (0חו5%7 45 +000ח056/6756)501זס/\חווק 5 חן 5 זססהטס6חו הזוס חן 45 5סקסתטס-חו וחוס 6" " = 5565הק 60% ורסח 00 השש אחהו 15 8חו50 ז ' סטפ זוא הפחד 0 = סטקח50)ח6 | זז 6 35%| 06 86 אמשס ' סח 50)ח ]| = זס)חווס6חו 6 ה 0+ ח66870 ' (ז6זחהטסחו ,5505 ,0טטסח5076/)501ח1 = 5סקסתטסהחו 0חו50 ₪6 01 זסו0חו8ח6 6 %חחק ד חסחד 0 < זסזהטס6חו ]1 (ז6חטסחו 00ח60%)50. | +חוזק. פטס + 500 5 0חם פרק 9: יסודות התכנות של ₪856 |הטפו/ - 241 חילוץ חלקי מחרוזת נבחן שוב את הקוד שבתוכנית 9.3. בנוסף ל-6856(! ו-16856 נעשה שימוש בפונקציות אחדות לחילוץ קטעי טקסט מהמחרוות המקורית. במצביס רביס יש צורך לעבוד רק עס חלק של מחרוזת. לדוגמה: יש צורך לחלצ את שמו פרטי של אדס מתוך השם המלא, או שדרוש לוודא שהמידע המטופל מתאים לשדה בבסיס הנתוניס בו הוא אמור להיות מאוחסן. ניתן לבצע זאת בקלות בעזרת הפונקציות הבאות של 8856 |1808/\: + + אַתַפָוָ₪ - מחלצ מספר תוויס נתון מהקצה הימני של מחרוזת. + 16% - מחלצ מספר תוויס נתון מהקצה השמאלי של מחרוזת. %, > 6 - מחלצ תוויס ממרכו מחרוזת. נבחן ראשית את הפונקציות 16% ו-אְחִפָו₪, הקלות יותר לשימוש. (אגב, השימוש בשוס פונקציה מהנדונות כאן איננו קשה במיוחד). כדי להשתמש בהן, יש לקבוע את מחרוזת הקלט וכן את מספר התווים שיישלפו. תחביר שתי הפונקציות הוא: (5זה )וח ,-06507ח1.6%)1 = שפ6טס (5ז8ח6וחט ,-57זכח₪100%59%)1 = פטס בשימוש בפונקציות אלו מספר התוויס המצוין חייב להיות גדול מאפס או שווה לו. אס מצוין המספר 0, המחרוזת המוחזרת היא באורך אפס. אס המספר גדול מאורך המחרוזת, מוחזרת המחרוזת בשלמותה. בכתיבת תוכניות המטפלות במחרוזות, הפונקציות 16% ו-₪190%6 מופיעות לעיתיס קרובות בצירוף עס פונקציות מחרוזת אחרות. תוכנית 9.5, המחלצת את שמו הפרטי של אדם משמו המלא, מדגימה את הנושא. הפונקציה מניחה שהשס הפרטי ושס המשפחה מופרדיס ברווח. הפונקציה מחפשת את הרווח בטקסט הפלט, מחלצת את התוויס הקודמיס לרווח ומחזירה אותס כשס פרטי. אס אין רווחיס במחרוזת, הפונקציה מניחה שזו כוללת רק את השס הפרטי. תוכנית 9.5: קפ/.א=ח דא1 - שימוש בפונקציות 5%ח1 ו-6%| לחילוץ שם פרטי של אדם 509 5 536 הזוס 58 5 6רחה\5זו-5 וחום 1 35 50866705 וחוס (א6 ד סרחה \6)פרחוז ד = 5436 (" " ,6וח5%7)5]\8ח1 = 50866005 הסח 0 < 50866005ח ]1 (1 - 50866005 ,1.608)5\8006 = 6רח50\8ו=5 515036 .8 " 5! סחחהח שרח ,סוופח" = 6ותפחופו + 0חם 2 סדנת לימוד 6.0 8\ 6 היא פונקציה נוספת המשמשת לחילוצ תת-מחרוזות ממחרוזת. היא פועלת בדרך דומה ל-16% ו-אחפָום, אך כוללת ארגומנט נוסף. הפונקציה משמשת לחילוצ תו, מילה או ביטוי מתוך מחרוזת. ל-0! שלושה ארגומנטי חובה וארגומנט רשות אחד כמוצג בשורת התחביר הבאה: ([5זה טח , ]503005 ,700507ו10)50] = חפשסח 5 מייצג את מיקוס התו שממנו מתחילה החזרת תת-מחרוזת. אם 5097005 גדול מאורך המחרוזת, מוחזרת מחרוזת ריקה. ארגומנט הרשות 8זהחס6וחטח מציין את מספר התווים המותזרים מ-50076657. אס פזהח6חטח מושמט, תחזיר הפונקציה את תווי המחרוזת החל מנקודת ההתחלה עד לסופה, כמודגס להלן: (8,"ח6!| אהסססף5")סון זחויוק מחזירה את המחרוזת "ח6!|ג" (8,2, "ח6|!!ג +הססס0)"5ו 6חוזוק מחזירה את המחרוות "|ג" סילוק רווחים בתוכנית 9.5 משמשת ש5ח1 למציאת הרווח הראשון ברשומת שמו של אדם, בהנחה שזה הרווח בין שמו הפרטי לשמותיו האחרים. רוב המחרוזות הארוכות כוללות בתוכן רווחים, הנחוציס לצורך ריווח נכון של מילים, סעיפים וכדומה. אבל ישנס מקרים, שמחרוזות כוללות רווחים בלתי רצוייס בתחילתן ובסופן. רווחיס אלה באים בדרך כלל כתוצאה מהקלדה מקרית של מרווחים בתחילת שדות טקסט או בסופן. הס מופיעים גם בשימוש במחרוזות בעלות אורך קבוע מראש, שמספר התווים בהן איננו מספיק למלאן. לדוגמה כל אחת מהפניות הבאות לפונקציה ()ח16 תחזיר מספר שונה: ("!0\זסצו ,סוו6רו")ח6 | זחויוק ("!0\זסצו ,סו|46] ")ח6 | זחויוק (" !0\וסצו סוו6רו")ח6 | זחויוק בדרך כלל רווחיס אינס גורמים נזק, למעט תפיסת תאי זיכרון בודדים. לעומת זאת, במקריס של חיבור מחרוזות, וכן בפעולות המבוססות על תוכנן, רווחים בלתי רצוייס עלולים להציק. למשל: נניח שקיימות שתי תיבות טקסט, לשס הפרטי ולשס המשפחה, כל אחת באורך שלושיס תוויס. משתמש עלול להקליד בהן בטעות שלושה תוויס, ואחריהס קבוצה שלמה של רווחים מיותריס. אס דרוש לרכז את השס הפרטי ושס המשפחה, למשל לשס הכנת מדבקת כתובת, הרווחיס הנוספים ייכללו במדבקה. ב- 88566 |1508\ קיימיס מספר כלים המאפשריסם ייקיצוציי רווחיס עוקביס מיותרים. פרק 9: יסודות התכנות של ₪856 |608ו%\ - 243 לסילוק רווחיס בסוף מחרוזת ניתן להשתמש בפונקציות 88516 |8ט5ו\ הבאות : + חוחד] - מסלק רווחיס מצידה השמאלי של המחרוזת. + | חודח - מסלק רווחיס מצידה הימני של המחרוזת. >* | חחד - מסלק רווחים גס מתחילת מחרוזת וגם מסופה. כל אחת מפונקציות אלו משתמשת בתחביר דומה. דוגמה כבר הוצגה בתוכנית 9.5. הקוד הבא מדגיס את השימוש בפונקציה חווד לסילוק הרווחיס בדוגמה של תווית הכתובת : (6רחה\ז5זו=] )רהוז ד %חוזק. וסוס (2007655/)רחוז ד %חזזק. וסוס (קו2)חחוזד ₪ " " ₪ " ,"6 (שו6)חוזד 6חוזס. !וסוס החלפת תווים במחרוזת נוסיף עכשיו מעט בלבול לסיפור. בסעיף הקודם הודגס איך הפונקציה וחוזד שולפת קטע מחרוזת מאמצע מחרוזת המקור. אותה מילת מפתח וחוזד משמשת להשבת קטע ממחרוזת. אולס במקרה זה התחביר שונה, בכך שהפונקציה פועלת על חלקו השמאלי של משפט ההצבה. המשפט המשמש להחלפת תוויס במחרוזת נקרא משפט וו!. משפט ₪וו, המחליף חלק ממחרוזת אחת במחרוזת אחרת, משתמש בתחביר הבא : 5 = ([5זהח6רחטח , ]5581205 ,66507ז01ו50)סו במקרה זה 50070657 היא המחרוות המקבלת את תווי ההחלפה. 6657זטס5 חייבת להיות משתנה מחרוזת, לא מחרוזת מילולית ולא פונקציית מחרוזת. 509005 הוא מיקוס התו שממנו תתחיל ההחלפה. מיקוס זה חייב להיות מספר שלס גדול מאפס. 5זהחסוחטח הוא ארגומנט רשות, המציין את מספר התווים ממחרוזת ההחלפה שבהס תשתמש הפונקציה. 97וס6ז מייצג את המחרוזת המכילה את התוויס המוחלפים. הוא יכול להיות משתנה מחרוזת, מחרוזת מילולית, או פונקציית מחרוזת. משפט 0 משמר את אורכה המקורי של המחרוזת. במילים אחרות, אס המרווח שבין נקודת תחילת ההחלפה לבין קצה המחרוזת קצר מאורך המחרוזת המחליפה, יועתקו רק תוויס כאורך המרווח, החל משמאל המחרוזת המחליפה. יש למשפטי 6ו כמה שימושים. בתוכנית 9.3 לעיל הוצגה דוגמה להצבת אותיות רישיות. בשימוש במשפטי טווא, ניתן לבצע את אותה ההצבה בעזרת הקוד הבא : 59 35 6וס/\זקסזק5 ,חַחו5 35 סזס\\5 חחוס "0856 0םא1וח"= זס//5 (0זס/\\60856%)5 | = 6זס/)זסססז5 ((6,1זס/\600%)5 26856%)1! = (1,סזס/זוסקסז50)סוו 4 סדנת לימוד 6.0 8\ בתוכנית אחרת היה צורך לסלק את כל סימני הורדת שורה (68) והזנת שורה (=)6) שהוכנסו למחרוות, כדי למנוע בעיות בהדפסה. משפט וא שהופעל בתוכנית החליף תוויס אלו ברווחים (פירוט קוד 9.6). תוכנית 9.6: ק6=./8\ |ק₪5 - שימוש במשפט סווא לסילוק תווים מסוימים ממחרוזת 5 חווו/ש 16005 שח | 366|כ6ח' 0 = 05ק0חו=ח סס ((9)10זח0;+00ח50)51ח1 = פסקסחוח " " = (5סק)סחו=ח ,006ח0)51ו! הפחד 0 < פסקסחוחה זז 0 = 5סקסחו=ח |טח/\ קסס | 5 וח 5חז 60 68771806 66בוכסח' 0 = 05קחו=ח סס ((9)13זח6 ,06ח50)51ח1 = פסקסחוח " " = (5סק סחו=ח ,006ח0)51ו\! הפחד 0 < פסקסחוחה ]1 0 = 5סקסחו=ח ושח קסס | הקוד בתוכנית 9.6 משנה את מחרוזת המקור. כלומר, הוא משנה למעשה תוויס במחרוזת %וסח51. כיוס נכללת ב- 8856 |1508/\ פונקציה חדשה, ₪80!866, המחזירה מחרוזת חדשה עס התוויס המוחלפים. התחביר הוא: | %הטסס ,]50 , ]13060 ,0הו5 506 , חו5חו)366וק6 = פחוטפזוס ([[[6ז8קוחס6 ,] פונקציה זו פועלת כשילוב של משפט שו ופונקציית 5ח1. אתה פשוט מעביר את המחרוזת, את התוויס שאותס בכוונתך לחפש ואת התוויס המחליפים. בשימוש בפונקציה 601866א, ניתן לשכתב את הקוד בתוכנית 9.6 כדלהלן: 5 הוושש 16605 שח | 366|כ6ח' (" " , ספע ,טסח₪60!866)51 = זטקחז5 5 וח פחז 60 68771806 66ב!כסח' (" " ) |פע ,טסח₪60!306)51 = זטקחז5 שימוש אפשרי לפונקציה ₪60|8066 יכול להיות סילוק מרכאות משדה קליטת טקסט, לפני הצבתו בבסיס נתונים. פרק 9: יסודות התכנות של ₪856 |8טפו\ | 245 עבודה עם תווים מסוימים מחרוזת בנויה מתווים בודדים. לכל תו כזה יש קוד מספרי, המוכר כקוד 85011. אפשר להשתמש בקוד 45611 בפעולות נומריות על תוויס, וניתן גס להשתמש בו להוספת תוויס שאינס ניתניס להדפסה למחרוות, כמודגס בתוכנית 9.6. הפונקציה זח6 משמשת להחזרת תו המתאים לקוד 45611 מסוים. לדוגמה, שני המשפטיס הבאיס מדפיסים את המילה 10 ]= : "ס ן שה" זחוזק (9)79זח .8 (76)%זח6 8 (9)76זחה6 8 (69)%זח6 .8 (65)%זח6 זחוזק הערה: כמו פונקציות אחרות שהוזכרו לפני כן בפרק זה, זה6 מופיעה בשתי צורות: ()זח6 מחזירה משתנה, %זח6 מחזירה מחרוזת. בדוגמה הקודמת, הקלדת ₪10 פשוטה יותר. אולס, ישנם תוויס, למשל תווי הזנת שורה או הורדת גררה, שאינס ניתניס להקלדה ישירה. תחייבים אז להשתמש בפונקציית זח6, באופן הבא: "2 סחו |" .8 (10)%זח6 .8 (13)%זח6 ₪ "1 6חו |" 6חוזק הצירוף הורדת/הזנת שורה ראוי לתשומת לב מיוחדת. לעיתיס קרובות יש צורך להשתמש בו כדי לאל שורה חדשה במחרוות, בתיבת טקסט או בתיבת הודעה. לשס כך הוכלל ב- 8856 |1508/\ קבוע פנימי +\זספט, כך שניתן לרשוס את הקוד הקודס גס בצורה הבאה: "2 שחן 1" 8 +\וספע ₪ "1 שח |" +חוחזק ניתן גס להשתמש בפונקציה זח6 להכללת מרכאות: (34)%זח6 .8 "5סססטוף השועו ססחוזכן 6ם |וואו פוחד" .8 (34)%זח6 6חוזוק "5סוף סעבּח )סח ||וש פוח ד" 6חווק ניתן גס להשתמש בפונקציה זח6 להחזרת כל אות ומספר. טבלה 9.3 מציגה כמה קודי 1 שמשתמשים בהס לעיתים קרובות: טבלה 9.3: קודי 45011 לכמה תווים נפוצים תי טבולטור כ 0 (הספרה אפס) : 6 סדנת לימוד 6.0 8\ 6 היא פונקציה נלווית ל-זח6. 456 מחזירה את קוד 45611 המתאיס לתו הקלט. הקוד הבא מדגיס את דרך השימוש ב-56. ("ה")56\ זחווק שורה וזו מחוירה את המספר 65. מחרוזות ומספרים ערך מחרוות יכול למעשה לכלול ספרות נומריות כמוצג כאן: 508 5 |3חַחו550 וחוס 1 5ב זססוחטצח וחוס 5 הזה השוע 560 06 ח68 8+ זססותטח ג 99 = זססוהטצח 5 הר הזו 560 06 630% זז 50 ג "63065 16" = |3/פַחו55 כידוע, מספרים מסוימים מטופלים לעיתים קרובות כמחרוזות תווים. מספרי מיקוד ומספרי טלפון הן שתי דוגמאות נפוצות. לכן, לעיתים יש צורך בהסבת מספר למשתנה מחרוזת או לפונקציית מחרוזת, או להדפיסו בשילוב עס מחרוזת אחרת. באופן דומה דרוש לפעמים להשתמש במספרים המופיעים במחרווות במשוואה מתמטית או בפונקציה נומרית. 6 |508/\ מספקת את הפונקציה 54, להסבת מספר למחרוזת, ואת הפונקציה |8ש, להסבת מחרוזת למספר. להלן דוגמה להסבת מספר למחרוזת : (החטחזקחו)50 = שפוחטח שפוחטח מייצג משתנה מחרוזת המכיל את פלט הפונקציה. חחטחזסחו מייצג את המספר העובר הסבה. זה יכול להיות מספר, משתנה נומרי, או פונקציה נומרית. אס וחטחזסחו הוא מספר חיובי, 5 מחזירה רווח בראש המספר, כי 5 שומרת מקוס לתו נוסף, להצבת סימן מינוס אם יידרש. להסבת מחרוזת למספר, ניתן להשתמש בפונקציה |8\, כדלהלן: (חפזסחו)|ה\ = זהעוחהטח זהשחוח מייצגת משתנה נומרי, המאחסן את פלט הפונקציה. שסחו יכול להיות מחרוזת תוויס, משתנה מחרוזת, או פונקציית מחרוזת. הפונקציה |3\ מסלקת ראשית את הרווחים מהמחרוזת, ואחר-כך מתחילה לקרוא את המספרים. אם התו הראשון במחרוות איננו ספרה (או סימן מינוס), ו3\ מחזירה את הערך 0. אחרת - |3\ קוראת את המחרוזת עד שהיא נתקלת בתו הלא ספרתי הראשון. בנקודה זו נפסקת הקריאה, והפונקציה מסבה את הספרות שקראה למספר. פרק 9: יסודות התכנות של ₪856 |הטפו\ - 247 הערה: בבניית מחרוזת להצגה עם שרשור, ניתן במרומז להסב מספר למחרוזת: 509 5 זטכזט50 חחוס ז הז 5 +חטוס שח וחוס 5 = 00%ו6/\\ח "05חטסכ " 6 600% /\ח .8 " 15 זס/שופחהּ סחד" = זטס6ט500 עיצוב תוצאות כשמידע, למשל מספר, מאוחסן במשתנה, הוא מאוחסן במבנה הנדרש לצורך תפעולו בקוד התוכנית. אך, לעיתיס קרובות יש צורך לשנות את מבנה המידע, לפני הצגתו או הדפסתו בדות. נניח למשל, שמספרים אחדיס מאוחסנים במשתנים המייצגים ערכיס דולריים. אס המספרים הס תוצאה של פעולת חילוק, ייתכן שהם כוללים שבריס עשרוניים ארוכים, ויש להניח כי אס יודפסו כמות שהם, לא יהיו מיושרים כמצופה. בקטע זה נבחן פונקציות אחדות המיועדות לסייע בעיצוב מספריס ומידע אחר. במיוחד נבחן את הפונקציה המוכרת )חזס=, ופונקציות עיצוב ספציפיות נוספות הנכללות ב- 6 88516 |1508/\. פונקציות עיצוב אחרות 6 |808ו/\ כוללת כמה פונקציות עיצוב, המיועדות לעיצוב סוגים מוגדריס של מידע. פונקציות אלו רשומות בטבלה 9.4. טבלה 9.4: פונקציות עיצוב חדשות שהוכנסו ל- 6 88516 |808ו\ ה וחזוס= 24 1% 6וחו דה ה וחזזוס=] "13:34 31/12" אק 1:34:00 31/12/98 כל הפונקציות בטבלה 9.4 מחזירות ערכי מחרוזת. יש להתייחס אליהן כאל ביטוייס (שייתכן שהס מכילים ערכי מחרוזת), וכמה פרמטרי רשות המבקריס את הפלט. לדוגמה, /6ח6זזט6+הוזס מעצבת את המספר בסגנון מטבע (כספים). ניתן לבחון את פונקציית שְ6ח6זזטס)וחזס] על ידי פתיחת החלון מיידי (שססחו/\ 601866ח1), (אין צורך בהרצת פרויקט במחשב). 8 סדנת לימוד 6.0 8\ הקלדת השורה הבאה: (1234)ץ6ח6זזט-)הרחזס= 6חווק תחזיר לאחר הקלדת זסזח= את הפלט הבא : 100 שיס לב לסימן (5), מפריד הפסיק (,) ומספר הספרות מעבר למפריד העשרוני, המתאיס להצגת ערכיס כספיים. ניתן לשלוט בעיצוב באמצעות הכרטיסיה מטבע (ששח6זוט6) ביישומון הגדרות אזוריות (05ח56001 |008ו₪60) שבלוח הבקרה (|8068ק |סשחסס6). פרמטרי רשות לכל הפונקציות בטבלה 9.4 (למעט שוחו ז28%6)אוחזס=), קיימיס פרמטרי רשות והם: |8ו60זס וסוס וטא - קובע מספר ספרות בפלט לאחר הנקודה העשרונית. * 0010%חו680 1060061 - מוסיף או מבטל את האפס המוביל בפלט שברים עשרונייס (למשל 0.567 או567.). + 5זססוט5-076080/6ה876 567 - קובע אס מספריס שליליים יוחזרו עם סימן מינוס לפניהס, או מוקפיס בסוגרייס (חשוב במיוחד בהנהלת חשבונות). + 6ושוסקטסז6 - קובע אס סימן הפרדה בין קבוצות (פסיק מפריד) יופיע במספר המוחזר (למשל 1,234 או 1234). רביס מפרמטרי הרשות, כמו למשל 40108חו680 |6[006ח1, | מוכריס כפרמטרים תלת-מצביים. לפרמטר כזה שלושה מצבים אפשריים: 6טודסט (נכון), 6פ|8=;פע (לא נכון), ו-+/05606190\פע (השתמש בברירת המחדל). למעשה, קיימיס רק שני ערכים בעלי תוקף - נכון ולא נכון. במצב של השתמש בברירת המחדל הפונקציה בוחרת נכון/לא נכון לפי מה שנקבע ביישומון 5601005 |3חסו₪60 שב- |6ח8ק |סשח60. פונקציות חדשות לעיצוב תאריך פרמטרי הרשות אינס קיימיס ב-06ו08%61)חזס=. פונקציה זו פשוט מקבלת את הביטוי המייצג תאריך או שעה, וקבוע המייצג אחד ממבני התאריך הנקובים. מבניס אלה מופיעיס בהמשך הפרק בטבלה 9.7. 8856 |5088\ מציגה רשימת הקבועיס בעת הקלדת הפונקציה בחלון הקוד. למשל, הקלד את השורה הבאה בחלון 816ו60וחחח1 : (6וחו דפחס |טע,"20:10" )סו הרהס זחויוק הפונקציה 608%6חו זאחזזס] ממירה את השעה הנתונה 20:10, הנתונה במבנה עשריס וארבע שעות (ייומן צבאייי), למבנה 12 שעות (מבנה ק/1) או לשעה 100% :8. שיס לב כי משתנה מחרוזת משמש כפרמטר ראשון. הביטוי חייב להיות במבנה ש-6חו 60867 וס מסוגלת להמיר לתאריך/שעה, אחרת תוחזר הודעת שגיאה. שתי פונקציות נוספות שנוספו ל- 6 חסופזפט 88516 |508\ מאפשרות שליפת השמות המודפסים של החודש או היוס בשבוע מכל ביטוי תאריכי. פונקציות אלו הן פרק 9: יסודות התכנות של 8856 |508ו%\ - 249 6וחהּ\חה%חסו\ ו-6הה83ץ66%23/\ בהתאמה. שתיהן מקבלות ערכיס נומרייס ומחזירות מחרוזת. פרמטרי רשות קובעים אס להשתמש בקיצורים: (12 )סחהּ\]רה6חס\\ 6חווק מחזירה את המחרוצת "ו6סוח66סס'. (06 ד,12 )סרח הּ\רסחהס!! לחויוק מחזירה את המחרוזת ש6פ'. גס לפונקציה 6ו%8₪/ץ66%08/\ יש פרמטרי רשות, המאפשרים לקבוע את היוס הראשון בשבוע: (1 ) סהחבּ\ץ28א60)/\\ 6חווק מחזירה את המחרוזת שְ08חט5' רק אס יוס זה נקבע כיוס הראשון של השבוע ב- |6ח8ק |סחה60. (ץ08חט5פש ,8!56= ,1 ) סהחבּ\ץ06%8/\\ 6חוזק מחזירה תמיד את המחרוזת ‏ ץְ08חטפ'. פונקציות אלו מקבלות רק ערכים נומריים. למציאת היוס בשבוע או החודש בתאריך מסוים, ראשית יש להשתמש בפונקציות 8856 |5088ו% אחרות כדי לקבוע את ערכו המספרי של התאריך. לדוגמה: נניח שרוציסם לדעת את היוס בשבוע שבו חל 18 בפברואר 1991. ניתן להפעיל את הפונקציה שץְ08א66/\ למציאת הערך המספרי של היוס, ולהעבירו לפונקציה סחחהּאץ66%28/\: ((2/18/91% %)ץ6628/\\)סרח בּ\ץהכ 666/\ לחויוק הערה: יש לציין את התאריך על ידי % בשני קצוות התאריך. ב- 8856 |08\ הסולמית מציינת כי מדובר בתאריך. ניתן גם לסמן במרכאות. עיגול מספרים פונקציה חדשה - סחטסח, מאפשרת עיגול ביטויים מספריים למספר מקומות נתון לאחר הסימן העשרוני. לפונקציה שני פרמטרים: הביטוי, ומספר הספרות אחרי הסימן העשרוני, אליו הוא מעוגל. נסה את הפונקציה על ידי הקלדת הביטוייס הבאיס בחלון 6018%6וחחח1 : (0)202.5חש₪0 זחווק מחזירה את הערך 202. (0)202.56ח₪0₪ שחווק מחזירה את הערך 203. 0 סדנת לימוד 6.0 8\ (0)202.56,1חט0ס\ זחוזוק מחזירה את הערך 202.6. (202.56,2) סחטס\ זחוזק מחזירה את הערך 202.56. כפי שרואים, הפונקציה סחטס₪ קלה לשימוש. יש לזכור רק שהתוצאה תדרוש עיצוב נוסף אם רוציס תמיד להציב ספרות לאחר הסימן העשרוני. במיליס אחרות, בביצוע שורת הקוד הבאה, לא תוצבנה ספרות לאחר הסימון העשרוני: (0)202,4חש₪0 זחווק הערך המוחזר יהיה 202, ללא אפסים אחרי הסימן העשרוני. השימוש בפונקציה זבּו'זס] הפונקציה +8חזזס] רב תכליתית יותר מאלו שנדונו עד כה. היא מסוגלת לטפל ולהחזיר תאריכים, מספרים ומחרוזות. במקוס להתבסס על צרור פרמטרי רשות, משתמשת חס במחרוזצת בקרה, המייצגת מבנה שנקבע על ידי המערכת או על ידי המשתמש. עיצוב מספרים השימוש הנפוץ ביותר בפונקציה 86חזס] הוא בהצבת מספרים במבנה מסוים, לשיפור הקריאות שלהם על ידי המשתמש. בשימוש בפונקציה :וס" מציין המשתמש את ערך הפלט ואת עיצובו, כמודגם בשורות הקוד הבאות: ("ץ6ח6זחו)" ,05558|65ז0))זהרזס= 6חוזק . זססחווק ("00.+ + 5%" ,0705558|65)זהרזס= 6חוזק . זססחווק לצורך עבודה עס מספרים, ניתן להשתמש במספר תבניות בעלות שם. בכל המקרים יש צורך להקיף חלק מהתבנית במרכאות. טבלה 9.5 מראה את תבניות אלו הזמינות לפונקציה ז8וחזסת. תרשים 9.6 מראה איך כל תבנית כזו מציגה מספרים שונים. ו 7 כ ₪ פן 0 0 0 זססוהטוא 3 7" 1-00 10000 סז 1107 00[ 000 או 7 00[ 000 6 1% 0% 00% ]סז וב ו 10 00 6 58 6 סא 0ח/5 ץצ שטזךד סטזך 6 6- וז ד חס חס וס חס ו וקא תרשים 9.6: באמצעות הפונקציה זחזוס] אפשר להציג מספרים במיגוון דרכים פרק 9: יסודות התכנות של ₪856 |הטפו\ 251 טבלה 9.5: תבניות נקובות בשם לפישוט הצגת מספרים תבנית נקובה בשם תיאור וטא |8ז6ח66 | מדפיסה את המספר ללא עיצוב מיוחד ץ6ח6זזו | מדפיסה את המספר עם מפריד אלפים ועם שתי ספרות לאחר הסימן העשרוני + סימן מטבע (לפי לוח הבקרה מדפיסה לפחות ספרה אחת משמאל לסימן, ושתי ספרות מימינו 30 | מדפיסה את המספר עם מפריד אלפים וכן מדפיס לפחות ספרה אחת משמאל לסימן העשרוני ושתי ספרות לימינו מכפילה את המספר פי מאה, ומדפיסה אותו עם סימן % לימינו + 2 ספרות מימין לנקודה העשרונית אס תבניות אלו אינן עונות לצרכיך, ניתן לעצב את התבנית המבוקשת. לצורך כך יש לקבוע היכן תמוקמנה ספרות המספר, האם ייעשה שימוש במפרידי אלפים ובסימן עשרוני, וכן לציין תווים מיוחדיס שיודפסו. שורת הקוד הבאה תדפיס מספר עס ארבע ספרות אחרי המפריד העשרוני, ועס מפריד אלפים: ("0.0000 א ,א" ,66ח68|01500ס ד)זהוחוס= 6חחזק.וססחויוק טבלה 9.6: קודים לקביעת מבנים נומריים א מציג ספרה או מציג 0 אם אין ספרה במקום הנתון + |פאפמה | מציג ספרה או אינו מציג דבר אם אין ספרה במקום הנתון. גורם להשמטת אפסים מובילים או עוקבים. ומק מציין את מיקום הנקודה העשרונית - מציין את מיקום מפרידי האלפים + % סימן אחוזים מציין את מיקום סימן האחוזים. כמו-כן גורם למספר להיות מוכפל פי מאה. תבנית מספר מדעי | -5 או -6 מציג סימן מינוס למעריך שלילי, אינו מציב סימן למעריך חיובי. += או +6 תמיד מציב סימן 2 סדנת לימוד 6.0 8\ עיצוב תאריכים צורת נתוניס נוספת הדורשת טיפול מיוחד לצורך עיצוב, הס תאריכיסם. הפקודה שלחוזק תגרוס להצגת התאריך בתבנית ברירת המחדל של המערכת, משהו כמו 7/5/98. להצגת התאריך בתבנית אחרת (למשל 1998 ,5 שוטנ), יש צורך להשתמש בפונקציה )החזס=. בטבלה 9.7 מוצגות תבניות אחדות לתאריך ולשעה (ראה תרשים 9.7) טבלה 9.7: תבניות נקובות בשם לתאריך ולשעה 6 |8ז6ח66 | מציגה את התאריך והזמן אם הביטוי כולל את שניהם. אחרת מציגה תאריך או שעה פַח0ס] | מדפיסה את היום בשבוע, היום בחודש, החודש, השנה 6 חוחנטו60ו\! | מדפיסה את היום בחודש, קיצור בן שלוש אותיות לשם החודש ואת השנה בנוסף לתבניות המופיעות בטבלה 9.7, קיימיס קודיס המאפשריס למשתמש ליצור תבנית תאריך ושעה. למשל, שורת הקוד הבאה תדפיס את תאריך היוס בצורה: ("עְעְעץ/00/ הרה" ,שטסא )ה רתס %הוזכן. 1 הס מו 4 ופה 1 ] 2 1 נמ ב וד | | 8.1991 פופ חס | 1962 ,12 ופוסו 0 חס 8 4 1-1 ב 6 בנ 1 הו ב א 12:00:00 א 120000 12:00:08 וד הס 100 1200 10 ו 0 8 0 8 בו וו 08 תרשים 9.7: שימוש בתבניות מיוחדות משפר את המראה של מידע תאריך הפונקציה הוחוס] משתמשת בפלט הפונקציה אוסא, ומדפיסה רק את החלק המיוצג בקודי האותיות. רשימה מלאה של קודיס אלה מופיעה במערכת ק₪61 תחת הנושא 05 65% 0501-016110601. פרק 9: יסודות התכנות של ₪856 |הטפו\ - 253 עבודה עם ערכי תאריך ראינו כיצד ניתן לעצב תאריכים. 8856 |1508/\ כוללת גס פונקציות אחדות המאפשרות עבודה עס תאריכיס כערכים, בדומה לעבודה עס מספרים במשוואות. וה אפשרי כי סוג הנתוניס 816כ, הקיים ב- 8856 |1508/, מאחסן תאריך (ושעה) במבנה הניתן לשימוש בפונקציות שונות. הפונקציה +8חזס=, כמו פונקציות רבות אחרות מקבלת פרמטר תאריך מטיפוס פַחו50 או 6ו8ם. אך יש פונקציות המקבלות רק משתנים שהס תאריכים. להסבת מספר לתאריך, ניתן להשתמש בפונקציה 60806. יש להיוהר, כי מחרוזות בלתי מתאימות תגרומנה לשגיאה: ("1963 ,23 זססוח6עס\" )60806 שחוזוק מחזירה את התוצאה 11/23/63, ("5סס")60806 )חוזק מחזירה הודעת שגיאה. לבדיקה אס ניתן להסב מחרוות לתאריך, משמשת הפונקציה 1508%6. בשתי שורות הקוד שלעיל תחזיר פונקציה זו 6טזד ו-8|56] בהתאמה. חילוץ חלקי תאריך במקריס שבהס נדרש לעבוד בתאריכים בדרך אוטומטית, יש לפעמים צורך בשליפת חלק מתאריך. נניח למשל שיש צורך לבצע תהליך מסוים בכל יום רביעי בשבוע. בקטעיס הקודמים הודגם איך ניתן לקבוע את מספר היוס בשבוע, בעזרת הפונקציה ץ66%08), ואת התאריך והשעה הנוכחית בעזרת שסא. כמו משימות רבות ב- 88546 |508ו/, גם זו ניתנת לביצוע בדרכים אחדות. ניתן למשל להשתמש בפונקציה +8וחזס] לשליפת מספר היוס בשבוע כדלהלן: 5 דח החד 4 = ("עו" ,אוסא )וס זז 6 |808ו/\ כוללת גם פונקציות לשליפת היום, החודש והשנה. אלו נקראות כמובן שְהם, הזחס\ ו-זפסץ. עבודה עם מרווחי תאריך שתי פונקציות נוספות השימושיות לעבודה עס תאריכים, הן 600ז8כ ו-+וספטְה. ניתן להשתמש ב-08%6400 להוספת כל סוג של מרווח זמן לתאריך, כשהתוצאה המוחזרת היא התאריך החדש. לדוגמה, במקרה שנדרש להכין היוס דוח, שהתאריך שלו הוא יוס אתמול, ניתן להשתמש ב-00ַ68א08 באופן הבא : 6 25 צְ00/6500708 וחוס (אוס1,1-, ")000 = 06500708 הקוד מורה בפשטות לפונקציה 0816400 להוסיף מרווח של מינוס יוס אחד לתאריך המערכת הנוכחי. קודיס המתאימיס (4, או, וכדומה), הנכללים בפונקציה )אוחזס=, יכוליס לשמש לקביעת סוג המרוות. 4 סדנת לימוד 6.0 8\ בעוד ש-₪8%0400 מאפשרת הוספת מרווח לתאריך, הפונקציה או₪8%060 מאפשרת חישוב המרווח בין שני תאריכים. מאפיין זה שימושי בתוכניות הקובעות לוח-זמנים, למשל הקוד הבא, המאפשר הרצת תהליך אחת לשעה: 6 25 הטשפה 0% וחוס 6 5 הט5 אס הזוס זז 5 הוהרת6 הוזח וחוס צוס\ = חפה 01 (אוס\! ,60 ,"ח" )80600 = הא (חטזא6 ,שצסא , "ה") וכ = הוהוחס> הווה 0 < הוהרח6ףחוו!ח 6ווח/\\ ".5 חור " 8 הוה רחס הווח .8 " חן זפ" זחווק. בטססס (הט 06 ,צוס\ , "ח") וה = הוהוח6 הווצ סחסעם סכ \\ 0 "!סחטופעצ סחסכ 06" אס 50 הלולאה 6!וח)\ בדוגמת הקוד שלעיל תרוצ כל ומן שהמרווח שבין הזמן הנוכחי למועד הפעולה הבאה גדול מאפס. שנת 2000 רבות נכתב לאחרונה על ייבעיית שנת 2000יי, ועל האנדרלמוסיה שהיא עלולה לגרוס במערכות ממוחשבות. הבעיה היא שמחשבים (ואנשיס) רביסם משתמשים בשתי ספרות לציון השנה, מה שעלול לגרוס לבלבול. האס 2/8/00 משמעותו 2/8/1900 או 12/8/2000 לבעיה זו אין פתרון פשוט. קשה להניח ש-2/8/00 מתייחס לשני באוגוסט 2000, אס הוא מייצג את תאריך הולדתו של אדס בן מאה שנה. בנוסף, לתוכניות רבות יש נתוניס וחישוביס המבוססיס על תאריכי שנה דו-ספרתייס. נתייחס לשורות הבאות מתוך טבלה של בסיס נתונים : תאריך כמות 15 1 1.64 2 100 2121 בתיק וה תאריכיס מאוחסנים כמספרים שלמים, מה שמקל על איתור טווח תאריכיס נתון. למשל: כדי לסכס את כל הכמויות משנת 1997 והלאה, בחר את כל השורות פרק 9: יסודות התכנות של ₪856 |8טפו\ 255 שבהן התאריך שווה או גדול מ-970101. אולס נניח שהתאריך הראשון בשנת 2000 מוצג כ-00010. במקרה וה התוכנית תיכשל. למולנו, בעולס המחשבים האישיים ניתן להתגבר בקלות יחסית על בעיות מסוג זה. הבעיות ב- 8856 |508/\ תהיינה לא עס תאריכים המאוחסניס בבסיסי נתונים, אלא עס נתוניס המוזרמים בידי משתמשים, שבמקרים מסוימים מעדיפים את שיטת השנה הדו-ספרתית. נתייחס לקוד הבא : 6 45 006 חחוס "00 = 06 (08%06 פחס.[פע ,6)0%חו הרס 86 " 5 סאה" לחוזק. פטססס התאריך המאוחסן במשתנה שייך לשנת 2000. מבחינת המפתח, חייבת להתקבל החלטה אס ראוי להמשיך להשתמש לציון השנה בסימון דו-ספרתי. אס כן, התוכנית חייבת לכלול לוגיקה מתאימה להסבת הסימן הדו-ספרתי לשנה הנכונה. במקריס מסוימיס סימון שנה דו-ספרתי עלול להיות בלתי קביל, ומשתמשיסם חייבים ללמוד לקבל עובדה זו. בכל מקרה, עם קצת תכנון והוספת לוגיקה מתאימה בתוכניות, יוכל כל משתמש להצהיר בגאווה, כי תוכניות 88586 |5808ו/ שלו מוכנות לשנת 2000. מכאן... פרק וה מספק מבט כללי על התכנות ב- 8856 |8טפו. נלמדו בו העקרונות של בניית משפטי קוד וכן דרך הטיפול והעיצוב של סוגי מידע שוניס. לחומר נוסף על תכנות יש לפנות לפרקים הבאים : =* | ללמוד על בקרת הזרימה של קוד התוכנית ועל קבלת החלטות - פרק 10 שליטת במהלך התוכנית. > ללמוד על בניית פונקציות - פרק 11 ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים. + ללמוד כיצד לכתוב ממשקים מקצועיים - פרק 18 תכנון ממשק נכון. 6 סדנת לימוד 6.0 8\ 10 שליטה במהלך התוכנית פרק 10: שליטה במהלך התוכנית | 257 בפרק 9 יסודות התכנות של 83516 [3ש5ו+, למדת כיצד ליצור מספר פקודות קוד. כעת, תוכל להרחיב את הידע שצברת על ידי שליטה בסדר הביצוע של חלקי הקוד שלך. שתי היכולות העיקריות של מחשבים הן ביצוע הוראות במהירות וקבלת החלטות בדייקנות. בפרק וּה, תלמד כיצד לנצל יכולות אלו בשני מישורים עיקריים: יישוס שיטות שונות לקבלת החלטות ושימוש בלולאות, המאפשרות ביצוע חוזר של חלקיס מסוימיס מתוך הקוד. כמו כן, תלמד כיצד לבנות קוד המגיב לשגיאות העלולות להתרחש בעת פעולת התוכנית. קבלת החלטות בתוכנית בפרק 9 ערכת היכרות עם מחלקה של פקודות קוד, המוכרות בשס פקודות משימה (60%5וח55816 %ח6וחת455/9), המשמשות להגדרה ושינוי ערכי משתנים. קבוצה חשובה נוספת של פקודות קוד, המיועדת לטיפול במשימות מורכבות יותר, מכונות פקודות שליטה (65ח5%806706 |סזוחס6). ללא פקודות שליטה, יבוצע הקוד מתחילתו ועד סופו, שורה אחר שורה ללא הבחנה, והתוכנית תיעצר לאחר ביצוע שורת הקוד האחרונה. סוג אחד של פקודות המקנות שליטה על אופן ביצוע הקוד הן פקודות החלטה (09ח558%6706 ח0ן26615), השולטות על יישוס חלקיס שוניס בתוכנית, בהתאס לתנאיס המתקיימים בזמן ביצוען. שני מבני ההחלטה הנפוצים בתוכניות 8856 |בּטפו\ מבוססיס על פקודות )1 ופקודות 6856 56!60%, בהן יעסקו הסעיפים הבאים. שימוש בפקודה )1 במקריס רבים, הנך מעוניין בביצוע שורה אחת או מספר שורות קוד רק אס תנאי מסויס מתקיים, כלומר מקבל את הערך 6טזד. קיימות שתי צורות לטיפול בהתניות ד באמצעות הפקודה )1: הצורה הראשונה היא שימוש בפקודת )1 בת שורה אחת והצורה השנייה היא שימוש בפקודת )1 בעלת מספר שורות. בכל אחת מהצורות נעשה שימוש בפקודה ‏ לבדיקת קיוס תנאי מסויס. אס הערך המתקבל הוא 6טזד, התוכנית תבצע את הפקודות המצורפות לפקודה ‏ . לדוגמה, שתי פקודות )1 הבאות מבצעות פעולה דומח: =[ סחו! 61816 ' 0= א חסחדך 5 < א זז =1 סחו! 6וסשוטא/ ' חסוד 5 < א )1 0=א + 0חם שימוש בשורות מפוצלות ומורחקות מן השולייסם הוא מנהג מקובל המקל על קריאת הקוד בעת שימוש במשפטי )1 מרובי שורות. 8 סדנת לימוד 6.0 8\ אס הערך המתקבל הוא 8!56= (בדוגמה לעיל, אס א אינו גדול מ-5) התוכנית מדלגת על שורת 1 (במשפטי + בעלי שורה אחת) או על השורות שבין הפקודות + ו-)1 0ח= (במשפטי )1 בעלי מספר שורות) ועוברת לביצוע השורה הבאה. פקודות 1 בנות שורה אחת פקודות 1 של שורה אחת גורמות לתוכנית לבצע משימה בודדת אס הערך המתקבל הוא פטזד. משימה זו יכולה להיות פקודה בודדת, או מספר פקודות הנכללות בשיגרה. להלן תחביר פקודת 1 בעלת שורה בודדת : 6000900 הפחד הסשוסחס6 + הארגומנט 6000/00 מייצג תנאי לוגי כלשהו היכול להשתייך לאחת הקבוצות הבאות : > השוואה של משתנה לאותיות (|1/6018), משתנה אחר או פונקציה. %, + משתנה או בסיס נתוניס המכיל ערך של 6טזד או 856". * כל פונקציה או ביטוי המחזיר ערך של 6טזד או 8156=. הארגומנט 600800 מייצג את המשימה שתבוצע אס התקבל הערך 6טזד. משימה זו יכולה לכלול כל פקודה חוקית ב- 8856 |508ו/, כולל קריאה לשיגרה. הקוד הבא מדפיס שם עובד בתנאי שמשכורתו גבוהה מערך מקסימלי קבוע מראש: 56 +הוזק. )הזכ הסח ד עְז58|3אהו6 < עה!658 +[ פקודות ]1 מרובות שורות אס ברצונך לבצע יותר מפקודה בודדת בתגובה להתניה, תוכל להשתמש בפקודת 1 מרובת שורות, המוכרת גס כבלוק 1 10 8106%). מבנה זה מלכד מספר פקודות קוד בין שורת 1 לשורת 1 0חם. אס הערך שהתקבל הוא פטזז, תבצע התוכנית את בלוק הפקודות שבין ‏ ל-+ 0חם. אס הערך שהתקבל הוא 156", התוכנית תדלג ישירות לשורה שאחרי + 6חש. הדוגמה הבאה מראה כיצד ניתן להשתמש בבלוק )1 לחישוב התשלוס עבור השתתפות בתערוכה. אס הופקדה מקדמה מראש, היא מצורפת לתשלוס הכללי והתוכנית קוראת לשיגרה המטפלת בהזמנה: הסח 0 < +וח\0ו05ק6ס6 +[ 626051 + 0ו8ק|009 617 = 0ו8ק|069 61 0 = +\ח\0ו606005 ח0ו6507/80 66 0כ\ |ו68 + 0חם פרק 10: שליטה במהלך התוכנית | 259 שימוש בהתניית 3!56= כמובן שאס אפשרית התניית 6טזד, אזי אפשרית גם התניית 8|56]. במקרים מסוימים, תרצה שתוכניתך תבצע משימה מסוימת רק כאשר מתקבל הערך 8|566]. במקריס אחרים תהא מעוניין לבצע משימות שונות בהתאס לערך המתקבל (פטזד או 8156:). הסעיף הבא מתייחס לחלק ההתניה המטפל בערך 8!56". שימוש באופרטור דסא דרך אחת ליצור פקודה או קבוצת משפטים המטפלים בערך 8|566, היא שימוש באופרטור %סא. האופרטור 6 למעשה הופך את התנאי הבא אחריו. כלומר, אס ההתניה כשלעצמה היא בעלת ערך 6טזד, הופך האופרטור את ערך הביטוי כולו ל-8|56= ולהפך. הקוד הבא משתמש באופרטור 0% להיפוך המשתנה הבוליאני 6|ספּאהּ דפ, המדווח על כמות המכירות של המציג בתערוכה תוך שימוש במדרגת מס (5)0005 אבּז). אדפ מקבל ערך פטזד אס המציג בתערוכה צריך לשלם מס על מכירות ושימוש, וערך 3|56] אס לא. הקוד עורך בדיקה על הערך המתקבל מן הביטוי 6ט8א8דם 6סו. אס הערך המתקבל הוא 6טזד, אזי המציג בתערוכה פטור ממס. חסח ד 6וסהאה ד ז+סא ]זז 0 = א8 ]658|65 0 = אה ז0)050 + 0חם שימוש בהתניות שטיוד ו-56ו3 דרך נוספת לטיפול בהתניות 8!56] היא הגדרת מערכות שונות של פקודות אשר תבוצענה בהתאס לערך המתקבל (פטזד או 856=). תוכל להסתייע לשם כך בביטוי 6, אותו ניתן לשלב כחלק מבלוק )1. לטיפול, הן בהתניית 6טזד והן בהתניית 8|56], השתמש בבלוק * ושלב בו את הביטוי 6 בצורה הבאה: הסח ד הסטוחס6 +[ סד 15 הסחווחס6 הצא 06655 0 580006065 56 6 5 הסוח 00 הסחשש 06655זכ 60 500665 + ₪0 פקודות + ו-1 0ח= בבלוק לעיל, והות לדוגמה הקודמת. גם כאן ההתניה היא ביטוי לוגי המניב ערך 6טזד או 8!56]. המרכיב המרכזצי במערכת משפטים זאת הוא הביטוי 6. ביטוי ה משולב אחרי המשימה האחרונה לביצוע אס מתקבל הערך 6טזד, ולפני המשימה הראשונה לביצוע אס מתקבל הערך 8566:. אס ערך ההתניה הוא 6טזד, התוכנית תבצע את המשימות המופיעות לפני הביטוי 556 ומשס תפנה ישירות לשורה שאחרי 1 06ח= ותדלג על השורות שבין ₪56 ו-1 06חם. אס ערך ההתניה הוא 856=, התוכנית תפנה ישירות לביצוע המשימות המופיעות אחר* הביטוי 5156. 0 סדנת לימוד 6.0 8\ הערה: אם ברצונך לבצע משימה כלשהי רק אם ערך ההתניה הוא 8!56=, תוכל לכתוב קטע קוד רק לחלק שבין הפקודות 56 ו- ]1 0חם. אינך חייב לכתוב קוד גם בחלק שבין הפקודות + ו-5!56. טיפ: כאשר מופיעים מספר משפטים בין פקודות ]1 ו-17 0ח= מומלץ לעיתים לחזור על 17 התתניה גם בפקודה )1 0ח5, כדי להקל על קריאת הקוד, כמו בדוגמה הבאה: חס ז 0[6006058|65זק6 < 063158|65 61 +[ קבוצה של משפטי קוד 6 קבוצה נוספת של משפטי קוד + 0חם שימוש בהתניות מרובות בסעיפים הקודמים ערכת היכרות עס בלוק )1 פשוט הכולל התניה בודדת, ומסוגל לבצע משימות עבור ערך 6טזוד או 8|56=. ביכולתך לכלול מספר התניות בבלוק 1 אחד. פקודת ₪561 מאפשרת להוסיף התניה נוספת, אליה מתייחסת התוכנית אס ההתניה הקודמת מקבלת ערך 8!566". הפקודה 51561 מאפשרת לשלב מספר בלתי מוגבל של התניות בבלוק +1 יחיד. להלן דוגמה לשימוש בפקודה ‏ 51561 לבדיקת המשתנה 165%), המסוגל להכיל שלושה ערכים אפשריים: מספר שלילי, אפס, או מספר חיובי. חס ד 0 > 65% זז "6עו6080\]" = הס 1.03ט65חוטו חסחד 0 = 656 17 566! סוק .וטו 56 הסוס 651.3 וטו + ₪0 "7670" "6ען[05ק" תחילה בודקת התוכנית את ההתניה של פקודת 1. אס הערך המתקבל הוא 6טזד, מבצעת התוכנית את המשימה (או המשימות) המצורפת לפקודת )1, ולאחר מכן מדלגת ישירות לשורה הבאה אחרי פקודת )1 6חם. אס הערך המתקבל מההתניה הראשונה הוא 8156=, מדלגת התוכנית לפקודה ₪156 המופיעה ראשונה ובודקת את ההתניה שלה. אס הערך המתקבל הוא פטוד, מבצעת התוכנית את המשימה המצורפת לפקודה ‏ 51561 ושוב מדלגת אל השורה הבאה אחרי פקודת 1 6ח5. התהליך מתבצע באופן דומה על כל משפטי ₪156 המשולביס בבלוק. אס עבור כל ההתניות התקבל הערך 856=, מדלגת התוכנית לפקודה 5156 ומבצעת את המשימות המופיעות בינה לבין פקודת ]1 0ח5. פקודת ₪156 היא אופציונלית ואין חובה לכלול אותה בבלוק. פרק 10: שליטה במהלך התוכנית | 261 שימוש בפקודה 6356 506!66% דרך נוספת לקבלת החלטות בתוכנית היא שימוש בפקודה 6856 56!60, המאפשרת לך לבצע שורת משימות בהתאם לערך המתקבל עבור ביטוי מסוים, בין אס הוא משתנה בודד או ביטוי מורכב. פקודת 6856 56!60% מורכבת משני חלקים : הביטוי עליו מופעלת הפקודה ושורת משפטי 6856 המבטאים ערכים אפשריים עבור הביטוי ומשימות אשר על התוכנית לבצע אס ערכיס אלה מתקבלים. כיצד עובדת הפקודה 6356 56!66% מבנה ההחלטה 6856 56606 דומה למבנה ההחלטה ‏ +5|56\חפחד\1. שורות הקוד הבאות מדגימות את צורת הבנייה של בלוק 6856 56/60 : 050/86 0856 50|666 1 8|6\ 6856 1 טס 566% 2 8|06/\ 0856 2 קטסז %ה5%0006 סחם המרכיב הראשון בבלוק היא פקודת 6856 56!6. פקודה וו מגדירה את הביטוי המוערך מול מספר תוצאות אפשריות. הביטוי המוערך, אשר מיוצג בדוגמה על ידי הארגומנט %050/8|06, יכול להיות מספר או מחרוות חוקיים, כולל 915ז1186, משתנים או פונקציות. פקודת 6856 נכתבת בראש כל קבוצה מותנית של פקודות (אשר תבוצענה רק אס יתקבל הערך המוגדר). פקודה וו מגדירה ביטוי (המיוצג על ידי הארגומנטים 1 6טן8\ בפקודה הראשונה ו- 2 6ט|8\ בפקודה השנייה) המושווה ל-6ט|165%/8. אם שני הביטוייס שווים, התוכנית תבצע את המשימות המקושרות לפקודה 6856. כלומר המשימות המופיעות בין שתי פקודות 6856 או בין הפקודה 6856 לפקודה 6חם. אס שני הביטויים אינס שווים, התוכנית ממשיכה הלאה ומשווה את 86 ד מול פקודת 6856 הבאה. הפקודה 6856 6ח5 מציינת את סוף הבלוק 6856 56|6. הערה: התוכנית מבצעת קבוצת פקודות אחת בלבד עבור כל בלוק 6856 56!660%. זאת גם במקרה שיש יותר מפקודת 6856 אחת התואמת את ערך הביטוי המוערך. 0 אזהרה: הביטויים 6ט|650/8ד ו-6טוה\ חייבים לייצג אותו סוג של נתונים. לדוגמה, אם 6 הוא מספר, גם כל הערכים המושווים אליו במשפטי 6856 צריכים להיות מספרים. 2 סדנת לימוד 6.0 8\ פקודות 6856 המשולבות בבלוק 6856 566% יכולות לטפל בנוסף לערכים נפרדים, גס ברשימות (15%]), תחומים (פספַח₪9) והשוואות (5חספוזה8ק 60) ערכים. שיסם לב, בדוגמה הבאה, לשימוש ב- 0 > 15 0856, 9 0 4 6896 ו- 50 < 15 6856 : (00ח8ט000)ו3/\ = סח ה 6856 ז50|66 חספוז קר 60 +0 56 66סח' 0 > 15 6856 סו 3 !סא טש "6080 06 +0חהח63 סט ההטף זססזס" אס !ו טטפ זוא | 01 ₪56 ס6סח' 3 ,2 ,1 6856 0 = )חטסספוס1 6 ז0 ₪056 סזסח' 9 0 4 6856 3 = %חט00ס5וכ1 9 0 10 6856 8 = %חטס0ס5פוכ1 0 < 5! 06896 1 = %חט600פוכ1 6סחם טיפול בערכים אחרים הדוגמאות שהוצגו עד כה עובדות היטב כאשר הביטוי המוערך שווה לאחד הביטוייס בפקודות 6856. אך מה לגבי ערכיס שאין אליהס התייחסות בפקודות 6856! תוכל להתאים את הקוד שלך כך שיטפל גס בערכיםס מסוג זה על ידי שימוש בפקודה 68596 6. הפקודה 556 6856 נכתבת לאחר המשימה המסיימת את פקודת 6856 האחרונה בבלוק. אחריה תיכתבנה המשימות לביצוע ואחריהן פקודת ‏ 56!66 0חם. תוכל להשתמש בפקודה 6856 56600 לחישוב ערכים שלא הוגדרו בפקודות 0856 או לחילופין, כדי להסב את תשומת לב המשתמש לכך שהקליד ערך בלתי חוקי. דמה לעצמך טופס פשוט שנועד לשיבו ציוני בחינה של תלמיד בשלוש תיבות דו-שיח. בטופס קיים גס לחצן המחשב את ממוצע הבחינות ומשתמש בבלוק 6856 56|60% לביטוי ציון התלמיד באמצעות אות לועזית, בהתאסם לממוצע בתינותיו. תוכנית הדוגמה 10.1 מציגה את הקוד שבשגרת האירוע 61666 של לחצן החישוב. תוכנית דוגמה 10.1: 655.87 551 שימוש ב- 6856 56/6601 לביטוי ציון התלמיד באמצעות אות לועזית (0א6ו61 0008|6ח6 5 סזהּעוזוק לחז 5 ותופח הזוס 6 5 חַע1 חחוס (6503 8|)0007/\ + (6502 [8))06/\ + (6561 8|)0407/\ = וחטפח 3 / החטפח = 1/0 (1 ,0ע1)ז סרחטו\\להרתזס-=] = 06זוסעמ וטו פרק 10: שליטה במהלך התוכנית | 263 (0ש+)0ח 0 60856 50!606 0 = 15 6856 "+" = 806ז0!ט! 9 סך 93 6856 "1" = 806זם!פ! 2 70 83 6856 "ם" = 806זם!פ! 2 70 73 6856 "6" = 806ז6!ט! 2 70 63 6856 זט 3 > 15 6856 זט 6חם 50 0חם זי ו בצע את הצעדיס הבאיס כדי לבדוק את ביצועי התוכנית : 1 הוסף לטופס שלוש תיבות טקסט בשם 6501 01, 0502 6007 ו-65%3 )אס. 2 הוסף לחצן פקודה בשס 068|6וח6. 3 כמו בכל טופס, עליך להוסיף פקדי |1886 לפי הצורך. במקרה זה עליך להוסיף שני פקדיםס להצגת התוצאות : 6פפזפט1/פ! ו-806זופו. הוסף את שני הפקדים לטופס והגדר את מאפיין ח680₪0 כמחרוזת ריקה. 4 הכנס את הקוד שבתוכנית הדוגמה 10.1 לשגרת 0166 של לחצן 60068|6. 5. לתצ על לחצן ההפעלה של 8856 |1!508/\. עבודה עם לולאות סוג עיקרי נוסף של משפטיס המאפשרים שליטה בשטף הקוד הן לולאות (1!0005). אתה משתמש בלולאות לשס ביצוע חוזר של משימות בתוכניתך. שלושת סוגי הלולאות העיקריים ב- 8856 |508 הס לולאות מנייה (05ק100 זסזחהט00), לולאות תנאי (5ק100 |8ה00ו0ח60) ולולאות מספור (10005 הססאזמטחם). לולאות מנייה, או לולאות...זס=, מבצעות משימה מספר מוגדר של פעמים. לולאות תנאי, או לולאות ..., מבצעות משימה כל עוד תנאי מסויס מתקיים או עד אשר תנאי מסויס מתקיים. לולאות מספור, משמשות לביצוע פעולה מסוימת על כל פריט בקבוצת אובייקטיס. הסעיפים הבאים יציגו בפניך את סוגי הלולאות השוניס. 4 סדנת לימוד 6.0 8\ לולאות וס לולאת מנייה מוכרת גם בכינוי לולאת זס=], או לולאת 6%0א...זס=. בתחילת כל לולאת זס= יש להגדיר משתנה בתור מונה, ולקבוע את ערכי הפתיחה והסיום של המונה. ניתן, כאופציה, גם להגדיר ערך דילוג (כ50) הקובע את גודל הצעדים על פיהם יגדל (או יקטן) ערך המונה, בכל פעס שהתוכנית תבצע את הלולאה. כאשר התוכנית מבצעת את הלולאה בפעס הראשונה, המונה מותאס לערך הפתיחה. מכאן והלאה, בכל פעס שהלולאה מבוצעת מחדש, ערך המונה משתנה בדילוגיס קבועיס, בהתאם לערך הדילוג (ק6ז5), עד אשר ערך המונה חולף על פני ערך הסיום. או מפסיקה התוכנית את ביצוע הלולאה ומדלגת אל משפט התוכנית הבא (הנמצא אחרי פקודת 60 של הלולאה). ם אזהרה: במצב רגיל, אם ערך הפתיחה של הלולאה גדול מערך הסיום, התוכנית לא תבצע את הלולאה כלל. עם זאת, ניתן לגרום למונה לצעוד אחורה (כלומר מערך פתיחה גדול לערך סיום קטן יותר) על ידי הגדרת ערך דילוג (500) שלילי. במקרה זה הלולאה תתבצע עד אשר ערך המונה יהיה קטן מערך הסיום. טיפ: כדי להקל על קריאת התוכנית, מומלץ להוסיף את שם המשתנה, המשמש כמונה, גם לפקודה 6א6א. דבר זה נחוץ בעיקר בעת עבודה עם לולאות משנה המשולבות בתוך לולאות ראשיות. מ אזהרה: באפשרותך להשתמש בכל אחד מסוגי המשתנים המספריים כמונה בלולאה. עם זאת, עליך להביא בחשבון את המגבלות של סוגי המשתנים השונים. לדוגמה, אם ברצונך לבצע לולאה כלשהי 40,000 פעמים, שימוש במשתנה מסוג ז0606ח1, כמונה, יגרום לתוכניתך להציג הודעת שגיאה, זאת משום שהערך המקסימלי שמשתנה מסוג זה יכול להכיל הוא 32,767. מגבלות המשתנים לסוגיהם השונים מתוארים בקובץ העזרה ץזסוהוהט5 סכץד הּזב. הקוד הבא מראה כיצד ניתן להשתמש בלולאת %א6א...זס] כדי להדפיס את המספרים 1 עד 10 ואת שורשיהס הריבועיים. 0 0 1 = 1 זס= 1*2) 8" 5 5060 " 8 1 = קוחס 5 קוח6 57 זחוזק.וססחוזוק 1 אסא פרק 10: שליטה במהלך התוכנית | 265 הדוגמה הבאה מראה כיצד ניתן להסתייע בלולאת זס" לאיפוס מערך משתנים. שימוש מסוג ה בלולאות )אפח...זס] לביצוע פעולות על מערכי משתניס הוא נפוצ למדי ויכול לחסוך שורות קוד רבות : 2 00 1 = 1 זס= 0 = (58|65)1ח)חסוי 0 = (565)1ח06אם ח)חסוי 0 = (1וסזקהסחסוי 1 אס הערה: כפי שראית בדוגמה האחרונה ועוד תראה בדוגמאות אחרות בספר, מקובל למדי לשלב בין לולאות זס] ומערכי משתנים. לולאת זס] מהווה צורה נוחה לבחון או לשנות פריטים במערכי נתונים שכן מונה הלולאה יכול לשמש כאינדקס המערך. ג אזהרה: לעולם אל תאפס את ערך הפתיחה של המונה בתוך הלולאה עצמה. דבר זה יגרום ללולאה להתבצע אינסוף פעמים. במרבית המקריס תרצה שלולאת זס] שלך תתבצע עבור כל הערכיס האפשריים בין ערך הפתיחה לערך הסיום. עס זאת, ייתכנו מצביס בהם תרצה לנטוש את ביצוע הלולאה קודס לכן. לצורך כך עליך להוסיף ללולאה פקודת זס" ₪8 אשר תופיע בנקודה בה אתה מעוניין לעצור. פקודת זס" 5% בדרך כלל מקושרת לפקודה 1 באמצעותה בודקת התוכנית האס יש לעצור את הלולאה. קטע הקוד הבא הוא חלק ממשחק טריוויה בו נבדקת כמות הנקודות של השחקן לאחר כל שאלה. אס הניקוד יורד אל מתחת לאפס, לא תוצגנה יותר שאלות עבור השחקן. 5 רוטה סך 1 = 1 זס= ח5606500\ ||68 חס ד 3510 /זס ץבוק זז 6ט|8/\()ח + 6זס560ח = 6זס560ח 56 6ן8)ח - 6ז560ח = 56076ח + 50 זס] אם הפחד 0 => 6ז0ספח ]1 1 אס 6 סדנת לימוד 6.0 8\ לולאות ספ המרכיב העיקרי בלולאת תנאי הוא, כמובן, התנאי עצמו. תנאי יכול להיות כל ביטוי המסוגל להשיב ערך 6טזד או 8!56]. תנאי יכול להיות פונקציה, כגון *50; ערך של מאפיין, כגון מאפיין ₪6ו3\ של לחצן פקודה; או ביטוי, כגון 15 > |השוחטח. לולאות תנאי נחלקות לשני סוגיס עיקרייסם: לולאות 6!וח/\ ספ, המבוצעת כל עוד ערך התנאי הוא פטזד (כלומר, בשעה שהתנאי מתקיים) ולולאת !חש ספ, המבוצעת עד אשר ערך התנאי הוא פטזד (כלומר הלולאה מתבצעת כל עוד ערך התנאי הוא 56ו8). הערה: הביטוי 507 מבטא 66וח-+0-0ח5. הפונקציה 507 משיבה ערך שד אם הגעת לסוף קובץ או סוף ₪6607056% (אוסף רשומות). לולאות ס6ווח/\ ספ מילת המפתח 6ווח/\ גורמת לתוכנית לבצע את הלולאה כל עוד ערך התנאי הוא פטזד. כאשר ערך התנאי משתנה ל-8!56= התוכנית מפסיקה את ביצוע הלולאה ומדלגת למשפט התוכנית המופיע אחרי פקודת ססס1. ניתן לכתוב לולאת 6!וח\\ סם בשתי צורות שונות. ההבדל מתבטא במיקוס התנאי. ניתן למקס את התנאי בתחילת או בסוף הלולאה. הדוגמה הבאה מציגה את הצורה הראשונה, בה מופיע התנאי בתחילת הלולאה. הקוד גורס לתוכנית לבצע את הלולאה כל עוד יש רשומות זמינות ב-₪6607056%. :0 חוששס!|10 6 355765 6006 פוחד ' 8 חו 08080856 השס ח8 5 פס ' 8 חצ 6607056% השקס חה 15 8ז ' א%00פ!ו| 8 15| 560868| ' ו806! 15 +חטססוס| ' 5.50 60% 6!וח/\\ סס (5.116!05)0 רח0106 10 150088 +חט0ס1560 |.15%08%8 = %חטס6ופו סחפםסס ]אסחססו.5ז ססס | הערה: לעת עתה נניח ש-₪5 הינו אוסף רשומות כלומר אוסף שמות תלמידים + מספר טלפון, לדוגמה: איל גוטליב, 03-5077011 רוני ארבל, | 02-5311721 וכל רשומה מכילה מספר שדות. בדוגמה שלנו יש 2 שדות (6!05=): שם + מספר טלפון. פרק 10: שליטה במהלך התוכנית | 267 שילוב הביטו:י 6|וח\\ בפקודה 00 המופיעה בתחילת הלולאה, מורה לתוכנית לבדוק את התנאי לפני שהיא ניגשת לביצוע הפקודות שבגוף הלולאה. אס הבדיקה מעלה כי ערך התנאי הוא 6טזז, התוכנית מבצעת את שורת המשימות המופיעות בין הפקודות 0ם ו-000], ולאחר מכן חוזרת לפקודה 0כ ובודקת את התנאי מחדש. ברגע שערך התנאי משתנה ל-8/56=, התוכנית מדלגת לשורה הכתובה לאחר פקודת קסס!. המשפטיס ספ ו-1000 הס מרכיבים בלתי נפרדים ממבנה הלולאה. למעשה, כאשר אתה בונה את הלולאה בצורה זו, ייתכן מצב בו המשימות בגוף הלולאה לא תבוצענה כלל. כאשר ערך התנאי הוא 8156" מלכתחילה, התוכנית תדלג ישירות לקטע הקוד הבא, מבלי לבצע את הלולאה. אס אתה מעוניין שהתוכנית תבצע את לולאת 6ווח\\ 0ם פעס אחת לפחות, עליך להשתמש בצורת הכתיבה השנייה, בה מופיע התנאי בסוף הלולאה במקוס בתחילתה. באופן ה התוכנית מבצעת את המשימות שבגוף הלולאה לפחות פעסם אחת לפני בדיקת התנאי עצמו. בסוף הבדיקה מחליטה התוכנית האס לבצע את הלולאה פעם נוספת או לדלג לקטע הקוד הבא : ספ (6|05)0!=]. 5 הה400106/. 5%08%8! 500% 5%28%8.1! = +%חטס6ופו סחםסס ]חס סו.5ז "5.50 0% שווח/\ קסס | היה זהיר בעת שימוש בלולאה בצורה זאת, וקח בחשבון כי הפקודות המופיעות בין המשפטיס 0 ו-1000 יבוצעו לפחות פעס אחת ללא בדיקת התנאי המוגדר בלולאה. לדוגמה, אס הערך של פונקציית 50 הוא פטזד עוד בטרס ביצוע הלולאה בפעס הראשונה, התוכנית תפיק הודעת שגיאה בעת ניסיון לגשת לרשומה הנוכחית במסגרת הלולאה. י אזהרה: אל תוסיף את הביטוי 6|וחצ\ בפקודות 0 ו-ק0ס! בו-זמנית. פעולה זו תגרום לשגיאה בעת ניסיון להפעיל את התוכנית. הערה: אם אתה עובד על קוד שפותח על ידי מישהו אחר, ייתכן שתיתקל בלולאה המתחילה בפקודה 6ווח/\ ומסתיימת בפקודה סח6/\ (הביטוי 0ח6/\ מבטא "6חם 6ח/צ", כלומר את סוף לולאת 6ווח/)). צורה זו, המהווה שריד מגרסאות 88516 !1508 ישנות יותר, עובדת באופן זהה ללולאת 6ווח/\, כשהתנאי נמצא בתחילת הלולאה, כחלק מפקודת ספ. 6 |508/\ עדיין תומכת בלולאות מסוג זה, אך מומלץ להשתמש בצורה המודרנית והגמישה יותר של פווח/\...סם. 8 סדנת לימוד 6.0 8\ לולאות ושחש ספ לולאות |שחט ספ והות ביסודן ללולאות 6|וח)\ 0ם, אלא שהתוכנית מבצעת את המשימות בגוף הלולאה כל עוד ערך התנאי הוא 8|56]. כאשר ערך התנאי משתנה ל-6טוזד הלולאה נעצרת. כמו קודמתה, גם את לולאת |טחש ספ ניתן לכתוב בשתי צורות שונות: בראשונה התנאי הוא חלק מפקודת סכ, ובשנייה התנאי הוא חלק מפקודת קסס]. כאשר התנאי הוא חלק מפקודת סס, הוא נבדק בטרם ניגשת התוכנית לביצוע המשימות. כאשר התנאי מופיע בסוף הלולאה, כחלק מפקודת 000/, התוכנית מבצעת את המשימות בגוף הלולאה לפחות פעס אחת לפני בדיקת התנאי עצמו. נהוג להשתמש בלולאות |₪ח ₪0 בעת קריאה ועיבוד קבצי נתוניס. הלולאה מתחילה ברשומת הקוב הראשונה ומעבדת כל רשומה עד לסוף הקובצ. שורות הקוד הבאות עושות שימוש בלולאת !חש ספ כדי לטעון את שמות כל המחבריס שבמסד הנתוניס 8פו. 10 8181 (מסד נתוניס לדוגמה המצורף ל- 8856 |808ו/) לתוך תיבת רשימה: 6 5 05% 007 וחוכ 5ב 656 [5 וחוכ ("טסרח. סו|טופ") 28080856 ה6קס = 656 007 56% ( "סז" ) 6607056% 651.00 007 = 65% 5ז 56% 65.50 זז וטחש\ ספ ("זסר ו" )65 51 הח00166. 501 | .5 5 קסס | לפני ביצוע הלולאה בפעסם הראשונה, בודקת התוכנית את ערך 5165.500ז. אם התוצאה היא 6טזד (כלומר סוף ה-₪660705%), הלולאה לא תבוצע כלל. והו היתרון הנובע משילוב התנאי בתחילת הלולאה ולא בסופה. טיפ: שימוש בדירוג שורות הקוד מקל על זיהוי מבנים שונים בתוכנית, כדוגמת 2-4 לולאות או בלוקים של פקודות 56!|ם\חפחד\)1 או 58|66 06חם\6856 56!665. עשה זאת על ידי הקשת טאב בתחילת השורה. הקשת זפשח= בסוף השורה, תעביר את הסמן אל מתחת לנקודה בה התחילה השורה הקודמת (כך שאין צורך להקיש טאב בכל פעם מחדש). נסה לכתוב את שורות ההתחלה וסיום הבלוק באותה עמודה, כפי שנעשה בדוגמאות רבות בספר זה. בדומה ללולאת 6ווח/\ סכ, גס לולאת |טחש ספ יכולה להיכתב בצורה המאפשרת לה להתבצע לפחות פעם אחת. עיין בדוגמה הבאה: זז 5 1 וחזוס 1=0 ספ ("!קסס! %6 א 0+ 0 וסשחם")אסטלטסחז = 1 0 = 1 טח קסס | פרק 10: שליטה במהלך התוכנית | 269 למרות שהערך המוגדר מלכתחילה עבור המשתנה 1 הוא 0, הלולאה מבוצעת לפני בדיקת התנאי. הפעלת הקוד לעיל תגרוס להופעה חוזרת של תיבת ההודעה עד אשר המשתמש יקליד 0. לולאות מספור סוג נוסף של לולאות, בהן ניתן להשתמש ב- 8856 |508ו/, הן לולאות 586 זסם. לולאות אלו מכונות לולאות מספור (00ס] חס8זסוחטחם) מכיון שהן ממספרות כל חבר במערכת אובייקטים. כפי שתלמד מאוחר יותר בפרק 16 מתלקות: שימוש חוזר ברכיבים, ניתן לאחסן קבוצת אובייקטים במבנה לוגי המכונה אוסף (ח00!!6000). ראה: יצירת מחלקות המכילות אוספים, בפרק 16. דוגמה אחת היא האוסף פזטחוזק. והו אוסף מובנה המייצג, כאובייקט, כל אחת מן המדפסות המקושרות למערכת. הדוגמה הבאה מציגה כיצד ניתן להשתמש בלולאת ח86= זס= להדפסת מאפיין 06166836 של כל המדפסות : זססחוזק 45 זססההק[טס וחוס 5זססחוז ח1 זס6חוק[טס ₪86 זס= 36 \00וע6. זססהוזק [טס זחוזק. פטוססס חק טס אסא משתנה האובייקט זססחוזק[00 מתנהג בדומה למונה בלולאת 66א...זס=, בכך שהוא מכיל בכל פעם את הפריט המעובד הנוכתי. כמו כן, ניתן להשתמש בלולאת 5860 זס] בעבודה עס מערכים. ראה בדוגמה הבאה: %ח8וזה/\ 5 זססוחטצח וחוס %חהחזהּ/\ 5 שְבּדוהץוא הזוס (3,6,9,9,5,2,3,9)ץ8זזה = שְפזוה שו ץהזזה שו ח1 זססותט\ח ה86ם זס= סרח +חוזק. פטטסכ הפחד 5 < זסטוהטצזה זז וצח +אצ תחילה יוצר הקוד מערך מסוג +ח8וז\ של שמונה משתנים, ואחר כך נעזר בלולאה לרישוס כל המשתניס הגדוליס מ-5. ניפוי שגיאות קוד במהלך כתיבת הקוד והוספת אובייקטים, עליך לוודא כי לא נפלו שגיאות בפרויקט 6 |08פו/\ שלך. לעיתיס קרובות קורה שתוכנית, הנראית תקינה לחלוטין על פני השטח, מסרבת לפעול בכל צורה שהיא. הסיבה לכך היא שגיאה כלשהי בקוד. נניח שברצונך להשתמש בלולאת 6|ח/\ לצורך הדפסת כל המספרים בין 1 ל-100 ב- אוססחו/\ 6018%6חוחח]. 0 סדנת לימוד 6.0 8\ החל פרויקט חדש מסוג 5אם 5900810 וכתוב את שורות הקוד הבאות בשגרת האירוע 0 חוזס= : זז 5 1 הזוס 1=ז >= 0‏ ס6ווח/\ 1 "=>6חטס6" לחוזק. פטפטס 60 \\ 0חם הפעל את התוכנית ותגלה מייד כי אירעה שגיאה, הגורמת לתוכנית להדפיס את הערך 1 פעסם אחר פעס. למעשה, אס תניח לתוכנית לפעול ללא הפרעה, הלולאה עצמה לא תפסיק לעולם. בעת עבודה ב-105, תוכל ללחוץ על לחצן 5000, לתקן את הקוד הפגוס ולהפעיל את התוכנית מחדש. אולם, יש מקרים, כמו המקרה הנוכתי, בהס תרצה לנפות שגיאות מתוכניתך במהלך פעולתה. לשס כך עליך להשתמש בלחצן 768% (ס5טַ8ק), הממוקס בסרגל פטטסת, או לחילופין, להקיש 8768% + |6₪. אס תוכניתך עדיין פועלת, הקש כעת 8% + |₪ס. שיס לב כי הופסק ביצוע הקוד (שורות חדשות אינן מודפסות יותר בחלון 6 ן), אך התוכנית עוד לא עצרה לגמרי. הטפסים עדיין טעונים לזיכרון והמשתניס מחזיקיס בערכיהס. במצב זה תוכל להקיש 55 או ללחו על לחצן +58 כדי להמשיך את פעולת התוכנית. אס תציג במצב וה את חלון הקוד, תמצא כי |8טפו\ 6 מאירה את הפקודה הבאה המיועדת לביצוע ומציבה חצ קטן משמאלו. מצב וה של עצירת ביניים מכונה מצב שבירה (1006! 81686). כאשר אתה עובד במצב שבירה, באפשרותך לצפות או לשנות ערכי משתניס בחלון 608%6וחוח1. במקרים מסוימים תוכל אף לשנות את הקוד ולהמשיך מייד בביצוע התוכנית. טיפ: הדרך הקלה ביותר לדעת אם הנך עובד במצב שבירה היא להציץ בכותרת של 6 |808ו/\ ולבדוק האם מופיעה בה המילה [68%זפ]. כמו כן תוכל להביט במצב הלחצנים בסרגל הכלים או לנסות לכתוב בחלון 316ו0סוחוח1. הערה: מומלץ לתקן שגיאות כאלו לפני הידור התוכנית. משום שהמשתמשים מפעילים את התוכנית מחוץ לסביבת 8856 |הטפו/, וביכולתם לשבור או להפסיק לולאה אינסופית רק באמצעות סיום פעולת התוכנית כולה, מתוך חלון זַסְבּח8\! 135% של פאוספחו/צ. פרק 10: שליטה במהלך התוכנית | 271 בדוגמה זו יישכחתיי להוסיף פקודה אשר תגדיל את ערך המשתנה 1. כיון ש-1 נשאר ללא שינוי, התנאי שהצבנו בפקודה 6!וח/\ לא יקבל לעולס ערך 8|56" והלולאה תתבצע אינסוף פעמים. כדי לתקן את השגיאה, כאשר הינך נמצא במצב שבירה, הוסף את השורה החסרה. הקוד שלך אמור עתה להיראות כך: זז 5 1 וחוס 1 0 => 1 6ווח/\ 1 "==+חט600" לחווק. פטססס 1[ 0ח6/\ סחם עתה, הקש ₪5 או לח על לחצן 504 של 8856 |508ו/. התוכנית אמורה כעת למנות מ-1 עד 100 ולעצור. הערה: ישנן פקודות מסוימות שלא ניתן להוסיף לתוכנית במצב שבירה. במקרים אלה, 6 |8טפו/\ מודיעה לך שעליך לעצור ולהפעיל את התוכנית מנקודת ההתחלה. כניסה אל הקוד במצב שבירה עומדות לפניך אפשרויות נוספות מלבד הפעלה מחדש של התוכנית. אתה יכול להיכנס אל הקוד ולעבור שורה אחר שורה, או לדלג על פני קטעיס שלמים. ישנן שלוש דרכיס שונות לכניסה לקוד ב- 8856 |1808/ש, כולן מתחילות בסרגל פַטססכ : + ז006 5000. מעבר על פני השורות בשיגרה הנוכחית בלבד, מבלי לעבור לשגרות אחרות הנקראות על ידה (מקשי קיצור: 8" + אוח5). ** %0ח1 ק5%6. מעבר על פני השורות בשיגרה הנוכחית כולל מעבר אל השגרות הנקראות על ידה (מקש קיצור: 8). + %ש0 5060. הפעלת הקוד עד סוף השורה האחרונה בשיגרה הנוכחית (מקשי קיצור: 8 + אוח5 + |60). לשס הדגמה, הפעל את תוכנית הדוגמה עד לסיומה ולאחר מכן הקש 8" מספר פעמים. שים לב כי בכל פעס שאתה מקיש 8" התוכנית מבצעת שורה אחת ומאירה את הפקודה הבאה בחלון הקוד, כפי שניתן לראות בתרשים 10.1. אס ברצונך לדלג על שורות קוד או לבצען מחדש לשס בדיקה, תוכל להשתמש בפקודה 6% 56%. מקם את הסמן על השורה הרצויה והקש 9" + |68 או בחר פטפסע, 60%ו5%0000 6%\ 56%. כמו כן, תוכל לגרור את הח המופיע על השוליים השמאליים ולמקמו סמוך לשורה שברצונך לבצע. 2 סדנת לימוד 6.0 8\ |< |ם]=. | (2066] [חחזס:] - 6011ן0זכן חק [+ ו [+ חזזס] ()2088 מעסת כגום שסהטנטק עסקססמך 25 1 בת 0 => 1 =ננגמח 1 6 " =סמגוסס" סמבעקע.צגומסכת 1+ ד = ך1 המש המם תרשים 10.1: במצב ניפוי שגיאות, 8856 |הטפו\ מאפשרת לך לערוך את הקוד שלך על גרירת החץ על השוליים השמאליים ומיקומו לצד הפקודה הנבדקת נסה ואת כעת: היכנס לקוד תוכנית הדוגמה ומקס את הח סמוך לשורה המעלה את ערך המשתנה 1. לאחר מכן, גרור את החץ חזרה אל פקודת +חוזק ובצע אותו על ידי הקשה על 8". שיס לב כי פעולה זו גרמה לכך שפעמייס יודפס ערך זהה עבור 1. בדוגמה לעיל, ביצעת ניפוי שגיאות בלולאת 6ווח/\. נניח כי אינך מעוניין לנפות שגיאות מן הלולאה עצמה אלא מהקוד שלפניה ואחריה. כניסה אל תוך הלולאה, במקרה זה, יכולה להיות מטרד רציני, בעיקר אס היא אמורה להתבצע 1000 פעמים. לכן, עליך להיעזר בנקודות שבירה (05ח1ו0קא68ז8). נקודות שבירה הן שורות קוד, המיועדות להכניס את 88516 |1508\ למצב שבירה טרס ביצוען. נקודות שבירה מאפשרות לך לבצע את התוכנית בצורה רגילה, ובשלב מסויס ליצור מצב שבירה ולהיכנס אל הקוד בנקודה מוגדרת מראש. |< |ם]=. (008:)) [חוזס] - 1ו6ןסז?) א ₪ ]₪ ---- "] ()088ם מעסץ מגוש שסהטבעק עסשססמך 25 1 בת 0ם => 1 16נגמח 1 6 " =סמגוסס" סמבעקע.אגומפת * = נקודות שבירה מז שאל תרשים 10.2: נקודות שבירה מאפשרות לך לבצע את התוכנית עד לנקודה מסוימת. בשלב זה באפשרותך לעצור, לבדוק ערך משתנה מסוים או שינויים כלשהם ולהמשיך אל נקודת השבירה הבאה פרק 10: שליטה במהלך התוכנית | 273 כדי ליצור נקודת שבירה, האר את שורת הקוד בה אתה מעוניין, במצב עיצובי ולאחר מכן הקש 9" או בחר פטטסק, +הוסקאהסזם 00016ד. 8516 |הטפו%\ מאירה את נקודת השבירה שהגדרת, ומציבה עיגול אדוס משמאלה, כפי שניתן לראות בתרשיס 10.2. עתה, נסה ליצור נקודת שבירה בקוד שיצרת. הגדר את פקודת 6ח=5 כנקודת שבירה. סמן את הפקודה והקש 9=. אחר כך, לח על לחצן 504 (או הקש 55), כאילו ברצונך לבצע את התוכנית באופן הרגיל. כעת אמורה התוכנית לבצע את לולאת 6ווח/\ ומייד אחר כך להיכנס למצב שבירה. הדפס את ערך המשתנה 1 (התוצאה האמורה להתקבל היא 101), כדי לוודא שלולאת 6ווח/\ אכן בוצעה כמתוכנן. כעת, הקש 5 כדי להמשיך בביצוע התוכנית. עבודה בחלון 6ז3ו60והוח1 חלון 1011601316 (אוססחו\\ 6018%6ח1), המוכר גס כחלון ניפוי השגיאות, מאפשר לך להכניס משפטים לתוך הקוד שלך, בשעה שהתוכנית נמצאת במצב שבירה. כדי להציג את החלון, ודא כי התוכנית במצב שבירה והקש 6 + |6₪. כדי להמשיך בביצוע התוכנית, הקש 5= או עבור לשורת הקוד הבאה. תרשים 10.3 מציג מספר שימושים נפוציס בחלון 601816חחוח1. ד תרשים 10.3: ניתן להציב ערך במשתנה ולקרוא לתוכנית באופן ידני תרשיס 10.3 מדגיס כיצד ניתן להציב ערך במשתנה ולקרוא לתוכנית באופן ידני. כמו כן, אתה יכול לסיים את התוכנית באמצע ביצועה על ידי הקלדת הפקודה 0ח= בחלון וח 4 סדנת לימוד 6.0 8\ מעקב אחר ערכי משתנים בעת עבודה במצב שבירה, מקובל כפי שאה עתה למדת, להדפיס ערכי משתניס בחלון 6 וח1. עס זאת 8856 |8טפו\ מצוידת בשתי תכונות נוספות המאפשרות לך לעקוב אחר ערכי המשתנים בתוכנית במהלך ביצועה. הראשונה היא תכונה פשוטה: כל שעליך לעשות הוא למקס את מצביע העכבר על שס המשתנה. פעולה זו תגרוס להופעת תיאור כלי (קוד|ססד) המציג את ערך המשתנה. התכונה השנייה, מתקדמת יותר, עושה שימוש בחלון 1356065 (צשססחו/\ פסח6א8//). חזזס=. 1חזזס 1 (10 0+ 1)חוז) 08| חזזסת. [חזזס טחוזו (10801 חזזס=. 1חזזס 1 8חוז (2)ץ31818 3 חוזס=. 1חזזס] פופ (31078)3 .]| חזזס=. [חזזוס 8חוזו (31818)4 80| חזזסת. 1חזזס פופ " (31078)5 08| חזזס=. 1חזזוס בוו "= (178)6 .]| חזזס=. 1חזזס בחוזופ' " (07ע310778 0 | חזזסת. [חזזוס טחוזו % (91878)8 חזזס=. 1חזזס 1 8חוז - (310778)9 יי ב ₪ (5178)10 תרשים 10.4: באפשרותך לצפות ולשנות ערכי משתנים בחלון 65ח6ז8)\ אס ברצונך לעקוב אחר ערך משתנה בחלון 65ח8%0/), לחצ לחיצה ימנית על שס המשתנה ובחר חסז9/\ 800 מהתפריט המקוצר. נסה זאת כעת: התחל פרויקט חדש מסוג 5%5 0870ח0ז5 והקלד את הקוד הבא בשגרת 1080 חזזס] של הטופס : ()1.080 חחזזס-] 5 סזבּעוזוק 0ח5 5 (10 60 1)ץ8זו\56 וחוס "סח" = (1)ץ8ז 5% "סא\ך" = (8/)2זז50 "סז ד" = (3)ץ8ז 5% 5 0חם במצב עיצוב עדיין, לחצ לחיצה ימנית על עְבּזיז/+5 ובחר ח6ז3ּ/ש 64. פעולה וו תגרוס להופעת תיבת הדו-שיח ח6זבּ/ש 4606 המוצגת בתרשים 10.5. לחצ א0 והוסף יציאה עבור ץ5%\8 בחלון 86065/). שיסםס לב כי בעמודת 6ט|%8\ מופיע הביטוי <0%%ח60 01 00%>, ואת משוס שהתוכנית עדיין לא הופעלה והמערך עוד לא קייס. הקש 8* פעם אחת כדי להפעיל את התוכנית וודא כי חלון 65ח8%6/\ מופיע על המסך. אם החלון אינו מופיע, בחר שש6ו, שסשחוצ\ ףִ6זבּ/\. הקש 58 מספר פעמים, ובדוק בכל פעס את חלון 5חִ366/)\. ערכי כל האלמנטיס במערך צריכים כעת להופיע בחלון. תוכל ללחוץ לחיצה כפולה על ערך המשתנה ולהכניס ערך חדש (פעולה זו גהה להצבת ערכים למשתניס בחלון 60!8%6ווח1). שים לב כי משתנים מרובי מימדים (כגון מערכיס או אובייקטים), מופיעיס בחלון במבנה היררכי של עצ. התכונה שימושית בעבודה עס עצמים מורכבים, כגון מערך רשומות (₪66070560). פרק 10: שליטה במהלך התוכנית | 275 ח6)ב ו 00 :חסו655זקאם 8 0 סופת [= וחזס=] סז 1 נהחזס=] :6 1 :לסשןסזק ןי שד 300 -ן חסו55פזק)= ה-30 א 6 6 15 316 חפר/\ הז 7+ 5 6ש!3/' חשר/\ הז 7+ תרשים 10.5: תיבת הדו-שיח ח8%6/\ 00 מאפשרת להוסיף משתנים לחלון פַחסז9ּ/\ איתור שגיאות במהלך כתיבת הקוד 88566 |8טפו\ מסבה את תשומת לבך לשגיאות תחביריות. אולס, בעת ביצוע התוכנית עלולות, מסיבות רבות, לצוץ אל פני השטח שגיאות בלתי צפויות. לדוגמה, נניח כי ברצונך לפתוח קוב טקסט אשר נמחק על ידי המשתמש. כאשר מתרחשת שגיאה מסוג זה בתוכנית מהודרת, מופיעה על המסך הודעת שגיאה, כפי שמראה תרשים 10.6, והתוכנית נעצרת. מ וסשסה) זסזזס סחוו-חגור המגוס] זסח שו תרשים 10.6: באפשרותך למנוע שגיאות בלתי צפויות ועצירות "לא סימפטיות" על ידי הוספת שגרות לטיפול בשגיאות (פחו|0ח8 זסזזם) לתוכניתך אומנס אין באפשרותך לצפות מראש את כל התסריטים היכוליס להוביל להתרחשות שגיאות בתוכנית. עס זאת, קל למדי לטפל ולמנוע שגיאות מסוג סחטסת %סא ₪16, כמו זו המופיעה בתרשים 10.6. אם לא כתבת קוד מיוחד לפתרון הבעיה, תוכל לפחות להציג הודעה ייהמשכילהיי את המשתמש בטרס תסיים התוכנית את פעולתה. 6 סדנת לימוד 6.0 8\ שימוש בפקודה יוסזיום ₪ח0 השיטה הנפוצה ביותר לטפל במצבי שגיאה היא שימוש בפקודה זסזזם חס של 6 |8טפו. כאשר מתרחשת שגיאה, הפקודה זסזזם חס מפסיקה את שטף התוכנית ומפעילה קוד המיועד לטיפול באותה שגיאה. להלן דוגמה טיפוסית : זז הק 60וו= 6060 וסזום חס כעת, אם תתרחש שגיאה באחד המשפטים הבאים אחרי פקודת זסזום חס, יופסק ביצועו השוטף של הקוד והתוכנית תדלג למשפט זסזוםחס6סססוו=. הוספת תוויות שורות קוד הנושא בו אנו עוסקיםס מוביל אותנו לכלי תכנותי נוסף: הוספת תוויות שורה (6ח!] 9חוו1806). אס עבדת בעבר על גרסאות ישנות של 8856, בוודאי מוכר לך השימוש במספרי שורות, כגון: "סו|46]" זחוזק 10 0 00%0 20 תוויות השורה של 8856 |508/\ דומות למספרי השורות הזכורים מ-8856. תווית יכולה להכיל גם טקסט, בנוסף על ספרות, אך עליה להיות ייחודית בתוכנית. לכל תווית מצורף הסימן (: ), כמו בדוגמה הבאה: ()080 1 וחזס=] 50 סזסעוזוק זסם חק 60!ו= 6060 זסזום חס 1 8 +טסח1 זס "דאד.ם |זסא\:6" הססס 5083 ,21 זטסח1 6חו | סטפ זוא סח 60וו= "!2658 כ|16] 606 ||68 .816 6ל פהוהסכס וחס|טסזוק 8 85 סזסחד" אס8 150 0חם ספ 0חם אס אחת הפקודות: ח6ק0 או זטסח1 116 תגרוס להתרחשות שגיאה, התוכנית תבצע את המשפטיס שלאחר התווית זסזום ה6ק60!ו=. במקרה וה תוצג על המסך הודעת השגיאה והתוכנית תסיים את פעולתה. בדוגמה לעיל, יש מספר נקודות ראויות לציון: ראשית, שיס לב למיקומה וסגנונה של שגרת הטיפול בשגיאות. נהוג למקס אותה בסמוך לסוף השיגרה אליה היא מסונפת. בשונה משאר שגרות המשנה, שס השיגרה אינו מורחק מן השולייס כדי להדגיש את ייחודה. שנית, וחשוב יותר, שיס לב למיקוס פקודת מט5 56% לאחר פקודת ח6קס. חשוב למנוע את ביצוע שגרת הטיפול בשגיאות אס פקודת ח006 בוצעה בהצלחה. פרק 10: שליטה במהלך התוכנית | 277 שליטה בשטף התוכנית לאחר שגיאה בדוגמה הקודמת סיימה התוכנית את פעולתה בעקבות התרחשות שגיאה. עס ואת, עומדות לרשותך גס דרכיס אחרות (טובות יותר) לטיפול בשגיאות : %, > צא משגרת המשנה, לאחר שהודעת למשתמש כי התרחשה שגיאה, והמשך בביצוע התוכנית במגבלות הקיימות. + חדש את ביצוע התוכנית מהפקודה הבאה אחרי הפקודה שגרמה לשגיאה. %, + אפשר למשתמש לתקן את השגיאה, ונסה לבצע את הפקודה הבעייתית מחדש. תוכל לשלב כמה תוויות בתהליך אחד ולשנות שגרת שגיאות מסוימת מספר פעמים. לדוגמה, תוכל להוסיף אחרי פקודת ח6ק0 תווית עבור שגרת שגיאות נוספת בשס זסח=זטמח61!ו=. תוכל גס לנטרל את תהליך הטיפול בשגיאות באמצעות הפקודה: 0 0%0 זסזזם חס פקודת זסזיוש חס הולכת יד ביד עס פקודת ₪65006. הדוגמה הבאה גורמת לתוכנית להתעלס משגיאות ולהמשיך בביצוע שורה אחר שורה: 6% ₪056 זסזזם חס עליך להשתמש בפקודה זו בוהירות רבה, הואיל והיא גורמת לתוכנית להתעלס משגיאות במקוס להתמודד איתן. מומלצ יותר להשתמש ב-₪65006 כדי לגרוס לתוכנית לדלג לחלק אחר בקוד, כפי שמראה הדוגמה הבאה: ()1.080 חזזס-] 50 סזבּעוזוק זז 60 6060 זסזום הס ו 1 5 זטסח1 וס "דאד.= |זחסצו\:6" חסקס 3 ,1 זטוסחז 6חו | טפ זוא חק שו 508 5 561655806 חוכ .86" .6 ₪6 6 הוחסכס ותשופסזכ 3 5/\ שפח ד" = 51055806 .")וט 0ף ו68066 זס ,חו308 ₪ 60 ₪60 655זק" .8 511055806 = 511055806 הסח ל חסמטע = (!"זסזום" ,|63ו6פ + |66ה68ש ספ ,51655306) א0פספוח זז 6 56 6 0חם + 0חם ספ 0חם 8 סדנת לימוד 6.0 8\ הדוגמה לעיל מציגה תיבת הודעה המכילה לחצני ₪60 ו-|66ח68. אס המשתמש בוחר ץ₪6 התוכנית מבצעת את הקוד המסונף לתווית 6070676 ומבצעת מחדש את פקודת ח6קס. קביעת סוג השגיאה בעת התרחשות שגיאה, הקוד שלך יכול לברר פרטים נוספים לגבי סוג השגיאה ונסיבותיה באחת הדרכיס הבאות : > זם - מכיל מספר המייצג את השגיאה. ** | זסזזם - מכיל מחרוזת לתיאור השגיאה. + 00166 ₪ - מכיל את מספר השגיאה, תיאור ומידע נוסף. משמש גס להגדרת שגיאות מותאמות אישית. כמו כן יש לו מאפייניסם שמייצגיס את מספר השגיאה: זססוחטא. זזם ואת תיאורה : חססקח6פסס.זחם. אס אתה יודע כיצד לתת פתרון לשגיאות מסוימות, תוכל להשתמש באובייקטים אלה כמענה נבון. בדוגמה האחרונה אירעה שגיאת 6חו= )סא 6!ו= המיוצגת על ידי המספר 3. תוכל בקלות להוסיף לשגרת השגיאה קוד אשר ייתן מענה מתאים (כלומר, בדיקת קובץ אחר) אס הערך של זזש הוא 53. טיפ: כאשר אתה כותב שגרת שגיאות העושה שימוש בתיבת הודעה, הצג בתיבת ל" ההודעה את מספר השגיאה ותיאור קצר שלה, זאת כדי להקל על תהליך הטיפול בשגיאות. מכאן... פרק זה ערך עבורך סקירה כללית בנושא תכנות ב- 8856 |1508/. למדת כיצד לטפל במחרוזות, בקבלת החלטות ובלולאות בתוכניתך. חומר נוסף בנושא תכנות תוכל למצוא בפרקים הבאים : <* מידע נוסף על 8856 |₪08/ תמצא בפרק ‏ 9 יסודות התכנות של 6 | פו/. <* | מידע בנושא יצירת פונקציות תוכנית משלך תמצא בפרק 11 ניהול הפרויקט: תת- שגרות, פונקציות וריבוי טפסים. + מידע שיעוור לך לשפר את יכולות עיצוב הממשק שלך תמצא בפרק 18 תכנון ממשק נכון. פרק 10: שליטה במהלך התוכנית | 279 ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים מה בפרק? השימוש בשגרות ובפונקציות עבודה עם טפסים מרובים ניהול רכיבים בפרויקט שליטה בהתחלת תוכנית פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים 21 בפרק 9, יסודות התכנות של 83516 [1503/, למדת איך לכתוב קודים שיגרמו לתוכנית לבצע מטלות שונות. הודגם שם כיצד לתפעל נתונים, ואיך משפטי בקרה מאפשריס ביצוע פעולות החוזרות על עצמן והפעלת משפטי קוד באופן סלקטיבי. אולס, יצירת תוכנית טובה, הניתנת לטיפול ולתחזוקה, דורשת יותר מאשר כתיבת קודיס. אחת ממטלות המפתח היא יצירת קטעי קוד וחלקי תוכנית הניתנים לשימוש חוזר, כדי שלא יהיה צורך להמציא מחדש את הגלגל (או במקרה זה, את תוכנית המחשב). מיומנות חשובה נוספת היא הכושר לנהל ביעילות את קטעי הקוד והטפסים. פרק זה דן בשני ההיבטיס הללו של ניהול פרויקט תכנות. ראשית תלמד איך ניתן להשתמש בשגרות, לביטול הצורך לכתיבת קטעי קוד החוזרים על עצמס. אחר-כך נבחן כיצד מוסיפים שגרות אלו ורכיבי תוכנה אחריס לפרויקט. בסוף הפרק תינתן סקירה קצרה לגבי בניית התוכנית והפצתה לשימוש אחרים. השימוש בשגרות ובפונקציות לעיתים קרובות, כשמפתח כותב תוכניות רבות וגדולות יותר, הוא מוצא את עצמו משתמש באותו קטע קוד בכמה מקומות באותה תוכנית או חבילת תוכניות. האס קיימת דרך יעילה יותר לשימוש חוזר בקוד באותה תוכנית, מלבד הצבתו החוזרת פעמיס אחדות באותה תוכנית! בוודאי שיש. הפתרון הוא בשימוש בשגרות (0765ו0660זק) ובפונקציות (5חסטסחטת) (שגרות מתחלקות לשגרות אירוע הנוצרות על ידי המחשב ומגיבות לאירועים ידועיס מראש, ושגרות משתמש הנוצרות על ידי המשתמש). שגרות ופונקציות הס מקטעי תוכנית המבצעיס מטלה מסוימת, ואחר כך מחזירים את העיבוד לאותו אזור בקוד ממנו נקראו (פונקציות מחזירות ערכים ואילו שגרות לא). פרוש הדבר שניתן לקרוא לשיגרה (או פונקציה) מסוימת ממספר מקומות בקוד, וכן ניתן בניהול נכון, להשתמש בשיגרה מסוימת ביותר מתוכנית אחת. הקורא כבר נחשף לעבודה עס שגרות, גס אם לא ידע ואת. כל הזנת קוד כתגובה לאירוע, בהפעלה על ידי לחצן פקודה (או פקד אחר), מהווה למעשה בניית שגרת אירוע (6זו60ססזק )חסעם). שגרות אירוע נקראות על ידי התוכנית בכל פעס שקורה אירוע. כידוע, יכול המשתמש לבנות בעצמו שגרות ולקרוא להן לפי הצורך. שגרות אלו נקראות תת-שגרות (פסחטטסזפט5) המוגדרות על ידי המשתמש. למרות שהקודיס בדוגמאות הקודמות היו כולס כלוליס בשגרות אירוע, תוכנית י'אמיתית'י יכולה לכלול קוד נוסף בתת-שגרות המוגדרות על ידי המשתמש. 2 סדנת לימוד 6.0 8\ עבודה עם שגרות רעיון המפתח מאחורי העבודה עס שגרות הוא פירוק התוכנית לסדרת מטלות קטנות יותר. כל אחת ממטלות אלו ניתנת לייאריזהיי בשיגרה, פונקציה, או אולי מחלקה (מחלקות נדונות בפרק 16 מחלקות: שימוש חוזר ברכיבים). לתכנות בדרך זו יש יתרונות אחדים: + ניתן לנסות כל מטלה לחוד. כמות הקוד הקטנה יותר בשיגרה מפשטת את תהליך איתור התקלות, ומקלה על עבודת מספר מפתחים על אותו פרויקט. > ניתן למנוע כתיבת קטעי קוד החוזריס על עצמם, על ידי קריאה לשיגרה בכל פעס שיש לבצע מטלה מסוימת, במקוס לחזור על כתיבת הקוד. * | מפתח יכול לבנות ספריית שגרות שניתן להשתמש בה ביותר מתוכנית אחת, ובכך לחסוך זמן פיתוח בפרויקטים חדשים. תחזוקת התוכנה פשוטה יותר מכמה סיבות: אם אין חוזרים על הקוד, יש לערוך ולהגיה אותו רק פעס אחת. בנוסף, ההפרדה בין רכיבי המפתח (למשל ממשק המשתמש ופונקציות בסיס הנתונים) מאפשרת לבצע שינוייס גדוליס בתוכנית, מבלי לשנות את כל הקודים. טיפ: כדי להתאים את הקוד לשימוש חוזר, כדאי להשתמש בהערות לעיתים תכופות. הרחבה זו בפרטים תאפשר למפתח אחר (או למפתח עצמו לאחר תקופת זמן ארוכה), להבין במהירות מה מטרת כל שיגרה ואיך היא מושגת. יצירת שיגרה כמו במקרה של תוכנית שלמה, תהליך יצירת השיגרה מתחיל בתכנון. יש צורך לקבוע מה המשימה האמורה להתבצע, איוה מידע יידרש על ידי השיגרה, ואיזה מידע יוחזר על ידה. לאחר השלמת משימה זו, ניתן להתחיל בקידוד השיגרה. בשפת 8856 |8ש8\ ניתן להתחיל בבניית שיגרה באחת משתי דרכיס: להתחיל מלא-כלוסם, או להשתמש בתיבת הדו-שיח 6600'6סזש 006. שתי השיטות קלות יחסית, והבחירה היא עניין של העדפה אישית. כמו כן, בשתי השיטות חייב המשתמש להימצא בחלון 6006 לפני שיוכל לבנות את השיגרה. ליצירת שיגרה מהיסוד, הצב את הסמן בחלון 6006, במיקום שאינו בתחוס פונקציה או שיגרה שכבר הוגדרה. ניתן למשל להציב את הסמן לאחר השורה 508 0ַחם בשיגרה, לפני השורה פט5 של שיגרה אחרת, או בראש החלון 6006. תרשים 11.1 מראה היכן ניתן להתתיל. טיפ: הצבת השגרות בסדר אלף-בית מקלה על איתורן תוך גלילה בחלון ה-6006. הן תמיד תופענה בסדר האלף-בית בתיבה הנפתחת 6וטפססיוש שבחלון 6006. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 283 [<1ם)- | (068:)) [חוזס] - 60)1ןסז2] א - ו [+ חהוזס] 6 מסנגססס | צור שיגרה לאחר ההצהרות הכלליות של הטופס ()א6110 ס1אפבמס מגום שסהטבטק מגוט מ צור שיגרה בין שתי שגרות קיימות () 1088 מעס? כגוט פסהטבטת מגוט המ צור שיגרה לאחר כל השגרות תרשים 11.1: יצירת שיגרה בחלון 6006 בשורת פט5 יצירת שיגרה חדשה בחלון 0006 מתבצעת על פי הצעדים הבאים: 1 פתח את הקוד עבור 1וחזס= על ידי לחיצה על הלחצן 60066 שסו/. 2 הקלד את מילת המפתח 5%8, ולאחריה רווח. 3 הקלד את שם השיגרה החדשה, בדוגמה זו 06זק?פזו=. 4 הקש ז066ח₪ ליצירת השיגרה. בהקשת ז00ח₪ קוריס שלושה דבריס: זוג סוגרייס נוסף בקצה שורת מט5, שורת פט5 6ח5 מוצבת בחלון 6, והאובייקט הנוכתחי ברשימה הנפתחת 6זט60ססזק של חלון עריכת הקוד, הופך להיות שס השיגרה. תרשים 11.2 מראה שינוייס אלה בשיגרה הנקראת 6ס0זקספזו=. [<1ם)- | (008:)) [חזזס] - 60)1ןסז2] א - זו - (|618ח66) סנסגןקאםת מסנסעס | ()06ע2ע12352ת כגום מגו5 המע תרשים 11.2: השורה 500 6ח= נוספת אוטומטית עם הגדרת שיגרה חדשה עכשיו אתה מוכן להזנת כל פקודה שברצונך להריצ כשהשיגרה נקראת. 4 סדנת לימוד 6.0 8\ תחביר שגרת פט5 כולל את השורה טט5, השורה 505 0חם, ואת פקודות השיגרה : ((3700076015 | )00008006 סג5 [50806] [שסהעחזק | 6ווטטק | סחסחת] הז 06 10 565 5 0ח= מילות המפתח שו|פטם, שופטוזק, 6חסוז= ו-806ז5 בשורת פט5 הן רשות, ומשפיעות על המיקומיס מהן יכולה השיגרה להיקרא. מילות מפתח אלו מצביעות על טווח ההכרה (56006) של השיגרה באותה הדרך שבה הן מצביעות על טווח ההכרה של המשתנה. השיטה האחרת ליצירת שיגרה הוא שימוש בתיבת הדו-שיח 6ז00ס6ססזש ₪00 (ראה תרשיס 11.3). הגישה לתיבת דו-שיח זו היא בבחירת 5|ססד, 6זט660סזק ₪00. || זז 0 - - = 7-7 2 | [08ח 8 וקסוק 17 טנ 6 %חפשם 7 חססחנום 7+ 6 סהשוק 7+ וטו 6 תרשים 11.3: ניתן גם ליצור שיגרה חדשה בשימוש בתיבת הדו-שיח 6זט60ססזק 00 5 85 81180|65/\ 068 ||מ | ] ליצירת מעטפת השיגרה, בצע בתיבת הדו-שיח 6זט660סזק 00 את הצעדיסם הבאיסם: 1 הכנס את שס השיגרה בתיבת הטקסט ש6וחבּא. 2 בחר את סוג השיגרה סחסעם ,ץשוסקסזק ,הסססחטת ,פט5). 33 בחר את טווח ההכרה של השיגרה (6שפטוזם ,שווטטץק). 4 אם דרוש, סמן את תיבת הסימון 508065 35 65!סהּחזב/ |1063 ||מ. ליצירת שיגרה יש לבחור סוג תת-שיגרה. לבחירתך ארבע אפשרויות: פונקציה (חסו6חט=) המחצירה ערך מוגדר. שגרות אלו מכוסות בהמשך בפרק. שגרת מאפיין (שזסססזק) קובעת או שולפת את ערך המאפיין בצורת מודול מחלקה. שגות אירוע (0ח6/₪) מגיבה לאירוע בטופס או במודול מחלקה. בחירת אירוע בתיבת דו-שיח זו מוסיפה הצחרה מקדימה לאירוע מוגדר-משתמש. השגרות /ז6ססזק ו-+חס/ם מתוארות בפרק 16, מחלקות: שימוש חוזר ברכיבים. לאחר הזנת הנתוניס הדרושים, לת 06. 88516 |508ו/\ תיצור את מסגרת השיגרה. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 285 הרצת שיגרה לאחר פיתוח השיגרה, דרושה דרך להריץ אותה מתוך חלקי תוכנית אחרים. להרצת שיגרה ניתן לבחור באחת משתי שיטות: שימוש בשורת ||68, או בפשטות על ידי שימוש בשס השיגרה והארגומנטים (חסוחטףָזה) הנדרשיס על ידה (הארגומנטיס הס אלה שצוינו בשורה טט5 כשהשיגרה הוגדרה). התחביר להרצת שיגרה הוא: ([800076005 | )6 8ה6סק |ו₪8 או: 5 006 בשתי השורות 86זפחססזש מתייחס לשס השיגרה. שס זה מצוין בשורת מט5 שהגדירה את השיגרה. 4700706065 מתייחס לפרמטרים המועברים אל השיגרה כאשר השיגרה דורשת זאת. בשורה הקוראת, יכולים הארגומנטיס להיות ערכים מילוליים, משתנים, או פונקציות המחזירות את טיפוס הנתוניס המתאים. ואת בשונה משורת טט5, שבה הארגומנטיס חייבים להיות שמות משתניס. פרמטרים (פוזסחגּזהּק), אס הס קיימים, חייבים להיות מופרדיס בפסיקיס. נבחן עכשיו דוגמה קצרה לשיגרה המשתמשת בפרמטרים. נניח שהתוכנית רוצה להציג על המסך טקסט כלשהו. (0חו50 5 1655806)5]1655806\ 5 6 0 1150 סט5 0חם שורת הקוד הבאה קוראת לשיגרה. כשקוראים לשיגרה ניתן לספק ערכיס לארגומנטיס שלה תוך שימוש במשתנה, מחרוזת מילולית, או שילוב של השניים: "6559306 ער 15 וח ד" 11655806 שגרת 1655806 פשוטה, ויחד עס ואת חוסכת זמן רב בטווח הארוך. היא הופכת את הקוד הקורא לה לקצר וקריא יותר. י אזהרה: באופן אופייני חייב מספר הפרמטרים בשורה הקוראת לשיגרה להיות שווה לאלה הקיימים בהגדרתה. כמו כן, הערכים המסופקים על ידי השורה הקוראת חייבים להתאים לסוגי הנתונים שהשיגרה מצפה להם. הפרת כל אחד מכללים אלה תגרום לשגיאה בעת הרצת התוכנית. 6 סדנת לימוד 6.0 8\ בתחילת קטע זה הזכרנו שתי שיטות הבאות בחשבון לקריאת שיגרה. שורת הקוד הבאה קוראת לשיגרה 1655806, בשימוש בתחביר השיטה האחרת: ("6000160 85/\ ז6/ו56 6ח 7" )1655806 ||₪8 כפי שניתן לראות, השימוש במילת המפתתח ||68 אינו חובה בעת הקריאה לשיגרה. אס משתמשים בפקודה |68, חייבים לכלול את הפרמטריס בתוך סוגריים. מומלצ להשתמש בתחביר שאיננו משתמש ב-||68. גישה זו מקלה על ההבחנה בין קריאת שיגרה וקריאת פונקציה, כפי שניתן לראות כשבוחנים את הדוגמאות בסעיף הבא. העברת נתונים לשיגרה בשתי דרכים ניתן להעביר לשיגרה נתוניס לצורך עיבוד: אפשר להגדיר את המשתנים כמשתנים ציבוריים (סוופטס), הזמיניס בכל מקוס בתוכנית, או ניתן להעביר את המשתנים ישירות לשגרות במשפטי הקריאה. לדוגמה, ניתן להוסיף ארגומנט שני לשיגרה 1655806!], שיאפשר לה להציג לתחצניס שונים: (ז%606ח1 45/ הסט ,5010 05 1655806)511655806! 5 חס 8 ,511055806 50% 1150 ספ 0חם אולס, משמעות גישה זו היא, שגס אס נבחר תמיד באותו אופן תצוגה של לחצניס נצטרך תמיד להעביר את המשתנה חסשאטם : 11055806 "1 1655806 ", 1 בתוכנית מסוימת זו הארגומנט חסשטם כנראה איננו משתנה במשך ההרצה. אולס, קידוד קשיח שלה לתוך השיגרה 655806 גם הוא איננו סביר, כך ששימוש במשתנה ציבורי נראה כבחירה הגיונית: זח1 45 הסאטפ סוופנוק (0ח501 5 1655806)511655806! 5 החטש ,511655306 אס0ם 150 50 0ח= התוכנית צריכה, לפני שהיא קוראת לשיגרה, לקבוע את ערכו של חסשטפם. מילת המפתת סוופופ גורמת לכך שצורך וה הוא יהיה גלוי לכל השגרות האחרות בתוכנית. אס מתכווניס להשתמש במשתניס בכמה שגרות, והשיגרה הנקראת ספציפית לתוכנית הנוכחית, קביעת המשתנים כמשתנים ציבוריים היא הגישה היותר טובה. אולם, לשם הבטחת שימושיותה של שיגרה בפרויקטיס רבים, הקפדה ככל האפשר על עצמאות השגרות היא רעיון טוב. לשס כך יש להגדיר את כל הפרמטרים שיש להעביר לשיגרה בשורה פ50, ולהעבירס בשורה הקוראת. בנוסף, כל המשתניסם בהס משתמשת השיגרה צריכים להיות משתניס מקומלים (סזטוזק), המוכרזים מתוך השיגרה עצמה. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 287 הפרמטרים המשמשיס בשיגרה יכוליסם לספק תקשורת דו-כיוונית בין השיגרה לתוכנית הקוראת. השיגרה יכולה להשתמש במידע הכלול בפרמטריס לביצוע החישובים, ואז להחזירס לתוכנית הקוראת בפרמטר אחר. למשל, שיגרה הבאה מקבלת את גובהו של מלבן ואת רוחבו מרשימת הפרמטריסם, ומחשבת את שטח המלבן ואת היקפו. ערכיס אלה מוחזריס דרך רשימת הפרמטרים: ,106006 35 00%ו16ח ,106067 35 הוח )686660806 5 (ז0606ח1 35 זס6רחוסה ,1000007 35 הסזהח וח * הסוח = 68זהח הוח + השסו/\ח) * 2 = סרוקה ספ 0חם ניתן לקרוא לשיגרה על ידי שימוש במשתניס לפרמטריס של קלט ופלט כדלקמן: 5 = 6ו/)שח 5 = 0%חח 0 = 68זהח 0 = וחזסקח השקה , 68זח ה ,0ו/\ח 016ה68|0₪6608 ניתן גס לקרוא לשיגרה על ידי שימוש בערכים מילוליים לפרמטריס של הקלט ושימוש במשתניס לפרמטריס של הפלט: 0 = 68זח 0 = וחזסקח רוקה ,68ז\/ח ,10 ,4 0!6ח68|6₪6608 העברת פרמטרים לשיגרה בדרך זו מוכרת כהעברה על ידי ייחוס (עְפ חְחוַפפהק 6)). שס המשתנה המועבר לשיגרה ושס המשתנה שהשיגרה משתמשת, מתייחסיס שניהס לאותו מיקוס בויכרון. בהצהרת פונקציה או שיגרה, ניתן לציין במפורש פרמטרים על ידי ייחוס, בעזרת מילת המפתח 61אץ8, כבדוגמה הבאה: (0חו50 5 0חהו50חג 1 ץ )הו 865ח8ה6 טפ "זה" = הפשח 5 0חם 500 5 0חו65!קרחה55 וחוס "261076" = 0חו5580!65 556500 680650 שלוש שורות הקוד הראשונות מגדירות תת-שיגרה פשוטה, המשנה תוכן מחרוזת, והיא מועברת כפרמטר. מילת המפתח 88% מציינת שכל שינוי המבוצע בפרמטר יתבטא במשתנה המועבר לשיגרה. במיליס אחרות, שינוי ערך פַחוש5ץחג בתוך השיגרה גורס לערך 5587001650 להשתנות בהתאם. יכולת זו מאפשרת לשיגרה לשנות את הערך המוחזר אז לקוד הקורא. 8 סדנת לימוד 6.0 8\ ניתן להעביר פרמטר לשיגרה לפי ערך (6טו8/ עֶ8). גישה זו גורמת לשיגרה להשתמש בהעתק של המידע שהועבר אליה, ומונעת מקוד השיגרה לשנות את הערך המשמש את התוכנית הקוראת. כשמוכרז פרמטר לשיגרה, ברירת המחדל היא העברה על ידי ייחוס. כדי לשנות ואת, יש להודיע לשפת 88516 |1508\ במפורש להעביר את הפרמטר לפי ערך. לשס כך יש להוסיף את מילת המפתח [3/ץ8 לרשימת הפרמטרים, לפני כל משתנה האמור להיות מועבר לפי ערך, כמודגם בקוד הבא : ,100006 5 %חהשו6רוח |8/\ץ₪ ,6606ח1 5 הסוח | )6866608016 טט5 (ז0606ח1 5 זסס6חוזסקה , הסוח . אזהרה: כשפרמטרים מועברים על ידי ייחוס, דרוש להצהיר בצורה מפורשת על המשתנים בתוכנית הקוראת ובשיגרה, ולוודא שסוגי המשתנים זהים בשניהם. יציאה מוקדמת מהשיגרה כשתוכניות, ולכן גם שגרות, הופכות לגדולות ומסובכות, לפעמים אין צורך שכל פקודות השיגרה תתבצענה. אס יש צורך לצאת משיגרה לפני שכל הפקודות בוצעו, ניתן להשתמש בשורה מט5 %א5 או לחילופין אס זו פונקציה (חסטסחטת) לצאת באמצעות חסזסחט= 5ואם. דרך אחת לשימוש בשורה ט5 54% היא להכניס בתחילת השיגרה קטע קוד, הבודק את התאמת ערכי הפרמטרים. אם פרמטר המועבר לשיגרה הוא מהסוג הלא נכון, או שערכיו יכולים לגרוס לבעיות בשיגרה, ניתן להשתמש בפקודת 500 6וא= להפסיק את פעולת השיגרה לפני קרות השגיאה. שימוש מסוג וה נקרא אימות נתונים (חסחפסו|ּ/\ ּזהכ). הקוד הבא משנה את הקוד הקודס לחישוב שטח המלבן, לצורך ביצוע בדיקה זו: ,100006 35 00%ו6רח ,106067 35 הוח )68666006 5 (1060061 35 זס60רחוזסה ,60067ה1 85 68והח החד 0 => 006ו6רוח וס 0 => השסו\\ח זז טטפ זוא + 0חם וח * הסוח = הסוח שרוח + הש0ו/\ח) * 2 = זססווסקה סט5 0חם עבודה עם פונקציות פונקציות דומות לשגרות, בהבדל מפתח אחד: הן מחזירות ערך. ערך וה יכול להיות מוצב למשתנה או לשמש בביטוי. 8856 |1508\ מציעה פונקציות מובנות אחדות שניתן להשתמש בהן, כמו למשל הפונקציה 405, המחזירה את הערך המוחלט של מספר, או %, המחצירה מספר נתון של תוויס מצידה השמאלי של מחרוזת. המשתמש גם יכול לבנות פונקציות בעצמו. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 289 כמו עס שגרות, גס בבניית פונקציה עומדות לרשות המשתמש שתי אפשרויות : בניית הפונקציה מלא-כלום, או שימוש בתיבת הדו-שיח 6ז0ט66ססוש 266. להתחלה מן היסוד, בחר את המקוס בחלון 6006 שבו רצונך שהפונקציה תתחיל, והכנס שס את מילת המפתת חסטסחט=, כשלאחריה שס הפונקציה. המוסכמות לגבי מתן שמות לפונקציות זהות למוסכמות של שגרות. כדי להשתמש בתיבת הדו-שיח 6זט660סזק ₪00 פשוט בחר את לחצן האפשרויות 6קץד חסטסחט= בתיבת הדו-שיח. כל אחת מהשיטות יוצרת מעטפת של פונקציה, בדיוק כפי שהיא עושה לגבי שיגרה. דוגמה ליצירת מעטפת כזאת מובאת בשורות הקוד הבאות: ( )806ז6/הרחט\] הסטשחט= סוופנוק מסו6חט= 6ח= למרות שהשורה הראשונה היא הכרזה קבילה של פונקציה, ברוב הפעמים מגדירים את סוג הערך שיוחזר על ידי הפונקציה. מגדירים סוג זה של פונקציה כמו שמוגדריס סוגי המשתניס בשורת חות, על ידי שימוש במילת המפתח 45 ולאחריה סוג המשתנה. הכרזת סוג הפונקציה באה אחרי הסוגרייס הסוגרות על הכרזת הפרמטר. בנוסף, מוכרזיס בדרך כלל הפרמטריס המועבריסם לפונקציה במשפט ההכרזה. משפט הכרזה שלס יותר מוצג בשורה הבאה: 6חו5 5 (016חו5 5 2זסחו ,6וַחו5 5 61סחו)806זסעה וטא הסטסשחטם= סוופגוק הבדל עקרוני נוסף בין בניית פונקציה לבניית שיגרה הוא הקצאת ערך לפונקציה במקוס כלשהו בתוך הקוד שלה. ערך זה חייב להיות מאותו סוג כפי שהוגדר בהצהרת הפונקציה והוא יהיה הערך שיוחזר על ידי הפונקציה למי שקרא לפונקציה. ניתן לראות ואת בשורה השנייה של הקוד הבא : 6חו5 5 (016חו5 5 2זסחו ,6וַחו5 5 61סחו)806ז6/ה וטא הסטשחט= סוופוק 2 / (סחו + 61סחו) = 806זסעהוחטצ חסטסחט= 6חם הערה: למרות שקוד פונקציה יכול להקצות ערך לפונקציה פעמים אחדות, רק הערך האחרון המוקצה לפני סיום הפונקציה (או היציאה ממנה) מוחזר על ידה. בקריאה לפונקציה, מציביס בדרך כלל את הערך המוחזר על ידה למשתנה בתוכנית, או משתמשיס בו במשפט תנאי, כמודגם כאן: 6 3 סז הסטסחט) 3 חַהוחסו55ת'י (15 ,806)25ז6/\וחוו\! = וחטף\ףע+ חסו655זקא6 |החסטוחס6 3 חו הסטסחט1 8 סחופט' "זט ח3 +הח/\\" 0% 50 הסחחד 20 < (2וחטח ,1 טח )06זסעה הטוא זז 0 סדנת לימוד 6.0 8\ הערה: אם מה שנדרש מפונקציה זה בפשטות לבצע משימה (למשל פתיחת בסיס נתונים), ניתן לקרוא לפונקציה כפי שקוראים לשיגרה, ולהתעלם מהערך המוחזר. קביעת טווח ההכרה של שגרות ופונקציות כשיוצרים שיגרה (או פונקציה), רוציס לפעמיס להגביל את תחומי השימוש בה ואת המשאביס המוקציס לה, כדי להפוך את הקוד לזמין לחלקיס אחרים של התוכנית. התחוס ממנה ניתן לקרוא לשיגרה נקרא טווח ההכרה (50006) השיגרה. ניתן להגדיר שגרות באחת משתי דרכים: כשיגרה ציבורית (6זט60ססזק ס6וופטם) או כשיגרה פרט*ת (6זט60ססזק ססהּעוזק). מילת המפתח שבה משתמשים בשורת ₪ט5, קובעת לאיזו תוכנית או שיגרה אחרת יש גישה לשיגרה שלך. הערה: טווח ההכרה בשגרות ובפונקציות קשור לטווח ההכרה במשתנים. הנושא נדון בפרק 9, שימוש במשתנים לאחסון מידע, בקטע היכן ניתן להשתמש במשתנה. "לצאת לציבור" אס יש כוונה שהשיגרה או הפונקציה תהיה זמינה לכל אורך התוכנית, יש להשתמש במילת המפתת סווטטק בעת הגדרת השיגרה. 6|טטץ מאפשרת לקרוא לשיגרה שהוגדרה בטופס או מודול מסויס, מכל שיגרה או טופס אחר בתוכנית. אבל יש להיזהר בבחירת שמות לשגרות ציבוריות, שכן לכל שיגרה ציבורית חייב להיות שס יחיד במינו בכל טווח ההכרה שלה. אס מילות המפתח שו|פטק או ספּעוזם אינן מופיעות בשורת טט5, ברירת המחדל היא שהשיגרה נקבעת כציבורית. שמירת הפונקציה כפרטית הכנסת מילת המפתח פ6זפטוזק בשורת פט5 תאפשר גישה לשיגרה רק מהטופס או המודול שבו היא הוגדרה. לגישה זו יש כמובן יתרונות וחסרונות. יתרון אחד הוא, שהשיגרה הפרטית שוכנת בויכרון רק כשהמודול שבו היא מאוחסנת נטען אליו, תוך חיסכון במשאבי המערכת. החיסרון הוא, שאין גישה לשיגרה ממודולים אחרים. מי שעובד עס שגרות אירוע (נדונות בפרקיס אחריס בספר), יכול להבחין שכברירת מחדל, שגרות אלו תמיד פרטיות. הן פרטיות מפני שבצורה אופיינית אין גישה לפקדים מחוץ לטופס שבו הן שוכנות. ווהי דוגמה להסתרת מידע (פַחז0ו3 חסטפוחזס/ח1) או כמיסה (ח8000|ט6805ח5), טכניקה שמשתמשים בה בתכנות מונחה-עצמים. כשמפתח משתמש במודול מסוים בשותפות עס אחרים, הוא יכול להגדיר את הפונקציות הנקראות על ידי אחרים כציבוריות, ואת אלו המשמשות רק אותו כפרטיות. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 291 שימור משתנים באופן אופייני כששיגרה מורצת, המשתניס שהיא משתמשת בהם או מייצרת אותם, מושמדיס עס סיוס הפעלתה. לפעמים אבל, יש רצון לשמור את ערכי המשתניס לקריאה עתידית על ידי השיגרה. ניתן לבצע משימה זו על ידי שימוש במילת המפתתח 6. מילת מפתת זו יכולה להיות מיושמת עס הכרזת משתני השיגרה, או בשלב הכרזת השיגרה עצמה. כאשר 50806 מופיעה בהכרזת משתנים, נשמרים רק המשתנים הנכללים במשפט 6. אס משתמשים במילת מפתח זו בהכרות השיגרה, נשמרים כל משתניה. לדוגמה: בשליחת דוח למדפסת, צריכה השיגרה המייצרת את כותרת העמוד לעקוב אחרי מספרו. בדוגמת הקוד הבאה, ערך המשתנה הסטטי חחטאמהָהקה נשמר בכל פעס שהשיגרה מופעלת : ()ז6806סחזק טש סוופנוק 5 רטקה 50306 1 + ףקה = ותטצ06בהקח "ד = 465אחה= והטואצה צחצס5הוא הםצדהס-" 6החק.וססחווק 6 שחוזק. זססחווק רחטו\סחהקח .8 " סהַבּק" 6חחזק.וססחווק +חוזק. זסזחווק 50 0ח= טיפ: לצרכי יעילות, חשוב להציב לשיגרה את טווח ההכרה המתאים. מתן טווח רחב מדי לשיגרה (למשל הגדרת השיגרה כציבורית כשדרוש שהיא תוגדר כפרטית), מבזבזת משאבי מחשב. כשפונקציה מוגדרת כציבורית, חייבת 8856 |150\ להקצות לה משאבים מתאימים, כדי שאפשר יהיה להעמידה לרשות כל חלקי התוכנית. השימוש במילת המפתח 50806, המחייב שיגרה "לזכור" את הערכים המקומיים, גורם גם הוא לבזבוז משאבים. בדרך כלל רצוי, אם ניתן, להגדיר שיגרה כפרטית, וכן להימנע משימוש במשתנים סטטיים. גישה כזאת נותנת ל- 8856 |1508\ שליטה יותר יעילה בזיכרון, שכן אז היא חופשיה לשחרר קטעי קוד שונים לפי הצורך. 2-4 שימוש חוזר בפונקציות ובשגרות שגרות ניתן ליצור בטופס או במודול. מיקוס השיגרה תלוי במקוס שבו נדרש השימוש בה, ובמטרה לה נועדה. אס השיגרה אופיינית לטופס מסוים, או אס היא משנה את מאפייני הטופס או הפקדיס הקשורים בו, כדאי למקס את השיגרה בטופס עצמו. אם, לעומת זאת, השיגרה מופעלת ביותר מטופס אחד בתוכנית, או שקיימת שיגרה כללית, המשמשת בתוכניות מרובות, יש למקס אותה במודול. המקוס שבו מאוחסנת השיגרה נקבע לפי המקוםס שבה היא נוצרה. אם רוצים, ניתן להעביר שיגרה מטופס למודול ולהפך, תוך שימוש בייגזור והדבק'י או אף בייגרור ושחרריי. 2 סדנת לימוד 6.0 8\ אחסון פונקציה בקובץ טופס כדי ליצור שיגרה בקובצ-טופס, יש רק לבחור את הטופס מחלון 6%[סזק, ואז לגשת לקוד הטופס. ניתן לעשות זאת בלחיצה כפולה בטופס עצמו (או על כל פקד), או על ידי בחירת לחצן 6006 ששו בחלון 66[סזק. לאחר הופעת החלון 6006, יוצריס את השיגרה, כמתואר לעיל בסעיף יצירת שיגרה. (6611ן0ז) 6661[סוש כ פוחזס= 65% |=] (1חזס=) 1וחזס=] = תרשים 11.4: ניתן לבחור את הטופס לשיגרה מתוך החלון 60[סזק שימוש בקובץ מודול עבור שיגרה קוב מודול מכיל רק קוד, ללא אלמנטיס של טפסים או אירועים. אס קובצ מודול כבר קייס בפרויקט, ניתן ליצור שיגרה חדשה על ידי בחירת הקובצ, פתיחת חלון 6, ובניית השיגרה לפי הצעדים שתוארו לעיל. טיפ: לחיצה כפולה על שם המודול בחלון 6%(סזק פותחת אוטומטית את חלון 6006 של המודול. אס קובצ מודול איננו קייס בפרויקט, או אס רוציס להשתמש במודול חדש, ניתן ליצור מודול על ידי בחירה 66%[סזם, 0|6סו₪ 2006. ניתן גס ליצור מודול חדש באמצעות לחיצה על הלחצן הזוס 00 בסרגל הכלים, ובחירת 108|6! מן התפריט הנפתח. בשתי הדרכים מוצגת תיבת הדו-שיח 10006 00. בחר בסמל המודול, ולחץ חס6קס. נוצר מודול חדש, ומופיע חלון 6006, שניתן להתחיל בו את העריכה. עס שמירת הפרויקט או היציאה מ- 8856 |1508, מתבקש המפתח לספק שם לקוב\ המודול. הערה: לחצן סרגל הכלים להוספת טופס או מודול חדש הוא לחצן של רשימה נפתחת. לחיצה על החץ מציגה רשימת פריטים. לאחר בחירת פריט משתנה ציור הלחצן. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 293 עבודה עם טפסים מרובים למרות שתוכניות פשוטות דורשות רק טופס בודד, רוב התוכניות מורכבות מטפסיס מרובים. סיבה אחת לכך הוא מגבלות השטח הזמין בטופס בודד. סיבה אחרת, חשובה יותר, היא הרצון להפריד בצורה לוגית בין משימות תכנות שונות. למשל: במקרה של מטלה בתוכנית שאינה מבוצעת לעיתיס קרובות, הכללתה בטופס נפרד נראית יותר הגיונית מדחיסתה עס שאר פריטי התוכנית. בנוסף, ניתן לחסוך במשאבי המערכת בעת הרצת התוכנית, על ידי טעינת טפסיס רק כשהס נדרשיס ופריקתס לאחר מכן. במילים אחרות התוכנית משתמשת בנפת זיכרון קטן ככל האפשר בעת ריצתה. הוספת טפסים חדשים לתוכנית כאשר 8856 |1508\ מתחילה פרויקט חדש, הוא מעלה בדרך כלל טופס ריק אחד, כפי שמודגס בתרשיסם 11.5. עס תכנון הפרויקט מוסיף המפתח פקדים לטופס, וכותב קודיס לטיפול באירועיס הקוריס בטופס זה. 10 80 [0פג 410705006 - 01607 ל יסטחו/צ. 5ה84-1 1005 הזבו שופ חנ טפס 6החופת וס אס ₪06 5 המוש ב 8 ה | ₪0|5 0 ₪ ש|יב-2| | זט חס ב | ומ | בח 27 8 מ 5 5% שח 5]5985חזנמפ ה 5' תרשים 11.5: 6 |0פו\ פותחת פרויקט חדש בטופס ריק יחיד בשלב מסויס יכול המפתח להחליט, אס לשס טיפול במטלה חדשה, או לצורך הקלת הצפיפות בטופס ההתחלתי, שנחוץ לו טופס או טפסים נוספים. תהליך הוספת טופס הוא פשוט. ניתן ללחוץ על הלחצן חחזס"] 800, או לבחור ‏ 66[סזק, וחזס] 00. פעולה זו מציבה טופס ריק חדש על המסך. טופס זה נראה כפי שנראה הטופס הראשון עס תחילת העבודה. אם לא ניתן שס לטופס הראשון, נקבע שס המחדל שלו 1חזס", הטופס השני נקרא 2חחזסת (או 3חזס=, 4וחזס= וכן הלאה). אס ניתן לטופס הראשון שס שונה, ברירת המחדל לשס הטופס השני היא 1חזס". 4 סדנת לימוד 6.0 8\ טיפ: ניתן להוסיף קבצים, טפסים, או מודולים מתפריט מקוצר, המופעל בלחיצה ימנית בתוך חלון -66[סזס. לאחר הוספת הטופס החדש, ניתן להציב בו פקדיס ולכתוב קוד בשביל האירועיס שלו, ממש כפי שנעשה בטופס ההתחלתי. בנוסף דרוש לאפשר גישה לטופס החדש מטפסים אחרים של התוכנית. הטיפול בגישה כזאת הוא דרך שורות הקוד 1080 וכן ספסוחש, והשיטות שוסח5 ו-₪106 של אובייקט הטופס. הוספת מודולי קוד לפרויקט כשכותביס מספר קודים לטיפול באירועים ובמטלות נוספים, מגליס לעיתיס קרובות שלאותה שיגרה נדרשת גישה ממספר מקומות בטופס או מטפסים שונים. במקרה כזה הגיוני לאחסן את השיגרה בקובצ מודול. טיפ: אם קיימת ספריה של פונקציות משותפות, לדוגמה תת-שגרות להדפסה, כדאי לשמור אותן במודול נפרד, כדי שניתן יהיה לצרפן לספריה של פרויקטים שונים. שוב, קוב מודול כולל רק קוד של 8856 |1508/. אין בו פקדיס, גרפיקה או מידע חזותי אחר. אס רוציס להוסיף קובצ מודול שיאחסן שגרות, ניתן לעשות זאת או בלחיצת החץ שליד הלחצן חוחזס] 00 ובחירת 0016 מהתפריט הנפתח, או על ידי בחירת 6ו1000] 800. כל אחת מפעולות אלו מוסיפה מודול חדש לפרויקט, ומציבה את המשתמש בחלון 6006 שלו (ראה תרשיס 11.6). ששו שחו 839105 ססעד | | | 4 ₪7 339054000 תרשים 11.6: ניתן לפתוח את החלון 6006 בלחיצה כפולה על שם המודול בחלון 60[סזק פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 295 כאשר מודול חדש נפתח לראשונה, נותנת לו 88566 |ה150\ את שס המחדל 61וט0סא (או 2 למודול השני וכן הלאה). כמו לגבי טפסיס ופקדים, רצוי לתת גם למודוליס שס ייחודי. למודול, כמו לטופס, יש מאפיין 6חפּא. לשינוי שס המודול, פשוט שנה את ערך המאפיין סוח8\ בחלון ץזזסקסזס. גישה לטפסים ולמודולים של פרויקט עס הוספת טפסים ומודולים לתוכנית, הס מתווספיס לחלון 66[סזק. חלון זה מאפשר גישה קלה לכל קטעי התוכנית (ראה תרשיס 11.7). בחירת טופס או מודול נעשית בפשטות, על ידי לחיצה על שמס בחלון ‏ 66[סזק. ניתן א ללחו בטופס על הלחצן + שאוסו\ כדי לעבוד על תכנון הטופס, או ללחוץ על הלחצן 6006 סו לעריכת הקוד הקשור לטופס. באשר למודולים, רק הלחצן 6006 אוסו/ ניתן להפעלה, מכיון שלמודול אין אלמנטיסם חזותיים. לחיצה כפולה על שס הטופס תביא לתוצאה זהה לזו המושגת בלחיצה על הלחצן 6006 שושו/. סז - וספןסזק פחחזזס= 7% (1חזס=) 1וחזס= 5% 5 0% (61וסו) 61\וטסוי 6 הלחצן 6006 שפוצ הלחצן 05166 שסו\ תרשים 11.7: החלון 6%(סזק מאפשר גישה נוחה לכל הטפסים והמודולים ניהול רכיבים בפרויקט טפסים ומודולים הס רק שניים מסוגי הרכיבים שניתן להוסיפם לפרויקט. אפשר גס להוסיף פקדים מותאמים אישית (פ!|סשח60 ה סספט0) וכן מודולי מחלקה (6|855 5). הקוד של אחדיס מהרכיבים, כמו טפסים ומודולים, ניתן לעריכה. אחרים, כמו פקדים של ספק חיצוני וספריות קישור דינמיות (11כ ,ץזהזטו! אחו] 6והההץכ) הס כבר אחרי הידור. למרות שסוגיס אלה הס חלק מהפרויקט, אין הס מופיעים בחלון %, ומוסיפיס אותס באמצעות תיבות דו-שיח מיוחדות. 6 סדנת לימוד 6.0 8\ טיפול בהפניות תוכנית אחד הגורמים הדורשיס טיפול בתוכנית הס הפניות (065ח6ז₪616). הפניות מצביעות לעבר שגרות ספריה שונות, המאפשרות לקוד לבצע מטלות מוגדרות. למשל, אס מתכווניס לאפשר לתוכנית לגשת לבסיס נתונים, יש לציין שהתוכנית משתמשת בספריה 00[666 60655 מז8כ. ב- 88516 |הטפו\ השליטה בהפניות פשוטה למדי. תיבת הדו-שיח ₪6/6:60665 מאפשרת בחירה של הפניות הדרושות לתוכנית. לשם כך יש לסמן את תיבת הסימון המופיעה לצד ההפניה (ראה תרשיס 11.8). סמן את אלו הדרושות לך, ובטל את הסימן מאלו שאינך וקוק להן. ניגשיס לתיבת הדו-שיח על ידי בחירת 0[66ז0, ₪616760065. ]6/019006% - 1 |<| :חש ז6/ס 6|סב|\ה/ים 5ח0ו63ו|סק ה זס=] 88500 |הטפוש שו 5ז וו סחה 00[605 שההולחטץ 885% |טפו |ש) סו חב 01605 835% ובטפו/י וש וכ | ץז זט | חס = 5600 שישה ךר |+. 1 ע'זססופסק5 15י] ]ס הסוסב זטוזי] הז'זס]זסק סש 11 606% 2 ק5600 03630356 שקה עסוזסוזס 5 2.0 זסזס!קא= 6ההוחזס)זטש הסוסבסווקקה | = סופ מחפו|> זפזסוק<= 6שההוחזס]זטק הסוסבסווקקה | | |+. 60807 זפזסוקא= 66חבחזס]זפק הפוסבּסווקקה 6 לחש 00ו60ק6 זפזסוקא= 66חהזוס)67 הסוסה 6ווקקה 1 105530687 זסזס|קא= 66חהוחזס]זסם הסוסבּסווקקה [ 1 ₪ זסהַבחבּוי] פס זפזסוקא= 66הבחזזס]זפק הסוסבסווקקה | + טס 1 זט זס|םא= 66חה וחזס זז חסו630\!סם, חסוסבוססטה 015 ד 52.8 וססד1\5יזםד5ץ5\5 וס סאז/\\: ‏ :הסט יסַהַהְהַח 1 תרשים 11.8: תיבת הדו-שיח 616760665 מאפשרת בחירת ספריות שייעשה בהן שימוש בתוכנית טיפ: לאחר הוספת ההפניות לפרויקט ניתן לסקור את הקבועים והפונקציות הציבוריים שלו בסורק האובייקטים (ז6פאוסז8 666[פ0), הניתן לגישה בלחיצה על הלחצן זספוסזם 666[פ0, או בהקשה על 2=. השליטה בפקדים באופן דומה להפניות ספריה, ניתן להוסיף לפרויקט ולהסיר ממנו פקדיס מותאמיס אישית. כאשר 885166 |1508/ נטענת למחשב, באופן אוטומטי מוטענים פקדים אחדיס לארגז הכלים. אולס, בדרך כלל נדרשיס פקדיס שתוכננו לביצוע מטלות מסוימות, שהן מעבר ליכולתס של הפקדים הרגילים. ניתן לטפל בפקדיס המיוחדים של פרויקט בשימוש בתיבת הדו שיח 6חפחסקוח0ס6 (ראה תרשים 11.9). כדי לגשת לתיבת דו-שיח זו בחר 0[66זק, 65ח6חסקו0ת60. כמו בתיבת הדו-שית 665ה₪6/676, ניתן לבתחור את הפקדים המותאמים אישית שיתווספו לתוכנית בעזרת סימון תיבות סימון. עס היציאה מתיבת הדו-שיח, משתנה ארגז הכלים, ומציג את הפקדים החדשים. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 297 5 |<[ | 5 1591805 | ספ | בו עזב זפ | סוחס 56 6ש ג ב 6\טטסוח [סיסתס-) ₪ 1 549זפ וזש ד5 )וז \ :> 0% 6סדוים ד5\55 וזו ב סח ססות > 01.5 חח ץז זו | הסה הוח ל6פזום ופוח חס 01.5 סיס ץזה זפ | וסישחס= וסטו= 6וטססוח [סטחס-= 01.5 השקסחתן ץז זסו | קד 1.0 זספוו] תסו ד ץזבזו | שקץד 1.0 כ|פחוסו 6 | - ₪ %- ץח 16005 טסו 7[ תרשים 9 1 1 : תיבת הדו-שיח עסו | חס 5000 0096 65 מאפשרת הוספת | 50% ₪1 ד5 ויז 5/5 \5 סוס = :חסו0 1 פקדים לפרויקט הוספת טפסים, מודולים ומחלקות לפרויקט מי שמפתח תוכניות מחשב, יגלה בשלב מסויס שבידיו שגרות וטפסיס סטנדרטיים, שניתן להשתמש בהם בפרויקטיס רבים. ייתכן גס שפותחו על ידו שגרות מותאמות לקליטת שמות וסיסמאות משתמשים, לפתיחת קבציס ולכמה פעולות נוספות, המבוצעות כמעט בכל תוכנית. ניתן, לכל אחת ממטלות אלו ובכל תוכנית, לבנות מחדש את הטופס ולכתוב מחדש את השיגרה. אבל דרך ואת מאוד לא יעילה. דרך טובה יותר היא לעשות שימוש חוזר במודוליס וטפסיס שפותחו לפני כן ושכבר נוסו ונבדקו. הכנסת מודולים וטפסיס אלה לתוך הפרויקט הוא תהליך פשוט. בבחירת 6[סזס, 800 6 מביאים אל המסך את תיבת הדו-שית 6 400 (ראה תרשים 11.10). תיבת דו-שיח זו מאפשרת לאתר ולבחור קבציס לשס הוספה לפרויקט הנוכחי. למרבה הצער, תיבת דו-שיח זו מאפשרת הוספת קוב אחד בלבד בכל פעם. לכן, אם דרוש להוסיף יותר מקובץ אחד לתוכנית, יהיה צורך לחזור על הפעולה מספר פעמים. -| |₪ ₪ [- 4 צב>] 10% תרשים 11.10: ניתן לגשת לתיבת הדו-שיח 6!= 4060 ------- ]0 שחאמשם ממערכת התפריטים, או מסרגל הכלים הסטנדרטי, וכן | 0 351;".088;7.0182.8. "0302 *;!ס.";חזו."] שו |\/₪‏ :סע וס פשוו= ופ על ידי לחיצה ימנית בחלון | 85 > 6% או הקשת +60 הנסוס 1300 ₪5 בהה - -] 8 סדנת לימוד 6.0 8\ . אזהרה: כשמוסיפים את אותו טופס או מודול לפרויקטים נפרדים, יש לזכור כי שינוי פונקציות במודול משפיע על כל הפרויקטים המשתמשים בו. אם בכוונתך לשנות מודול משותף בצורה קיצונית, השתמש באופציה 85 1000/0876 6ש58, הנמצאת בתפריט 68!₪, או העתק קודם את המודול לספרית משנה אחרת. הערה: קבצים בעלי סיומת |אףח. ו-אח-. הם קבצי טפסים. קבצים בעלי סיומת 885. הם קבצי מודול. אפשר גס להשתמש בתבניות הטפסים של 8856 |טפוש. תבניות אלו הן טפסיס שהוגדרו מראש, ובנויים לפונקציות ספציפיות, כמו למשל הטפסים אס8 זטסטג, ה56766 ה50|35, הסה וכן עְ8כ 06 +0 קוד. יש להוסיף לטופס את הגרפיקה המתאימה, תוויות כותרת ולכתוב קוד מינימלי, כדי להתאימו לצרכים. כדוגמה ראה בתרשים 11.11 את תבנית הטופס אסם זטסטה. תרשים 11.11: תבניות טפסים מקלות על פיתוח קטעי תוכנית משותפים כדי לגשת לאחת מתבניות הטפסים, יש להציג את תיבת הדו-שיח וחזס] 400 בלחיצה על לחצן וחזס] 00 שבסרגל הכלים, או על ידי בחירת 66[סזפ, וחזס"] 00. ניתן אז לבחור אחד מסוגי הטפסים בכרטיסיה שו6א של תיבת הדו-שיח (ראה תרשים 11.12). |<]? | הז ] 00 | בחוופוא = | סו חח ו בק ₪ הַסובום זספשסזם ספא = הַסובום זטספה | חזס= בה פע ו ל שה 7 יה הַסובום פחסוק 0 ח1 הס 1 086 = שב 8חז זס קוד ח50768 ח5ב|ק5 | הַסובום חו הס תרשים 11.12: ניתן בקלות להתאים תבניות טופס לשימוש בפרויקט פוט סר!! הו סו13ם ו 5 ו'מסם. -] פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 299 אם יצרת טופס שיהיה לו שימוש בתוכניות נוספות, ניתן גס לשמור אותו כתבנית. יש לשמור את הטופס בקובץ תבניות הטפסים של 8856 |1508/. בפעס הבאה כשתבקש להוסיף טופס חדש, תופיע גס התבנית החדשה בתיבת הדו שיח וחזס:] ₪00. הערה: אם 8856 |1508 מותקנת בתיקיית ברירת המחדל, תבניות הטפסים תהיינה מאוחסנות בקובץ פוחזס=\3%65|קוח6 ד\88516 [1508/\. הסרת קטעים להסרת מודול או טופס מפרויקט, בוחריס את הפרויקט או המודול בחלון 66[סזם, ואז בוחרים 66[סזק, 6שסוחסח. 8856 |508ו\ מבקשת אישור לכוונה להסיר את הקובצ, ואז מסירה אותו. שליטה בהתחלת התוכנית שמתחיליס פרויקט תכנות, 8856 |508ו/\ מניחה שהטופס הראשון שנוצר הוא זה שיוצג מייד בעליית התוכנית. למרות שבפרויקטיס רביס ואת כוונת המפתח, יש במקריס רבים עניין לפתוח בטופס שנוצר בשלב יותר מאוחר בתהליך הפיתוח. במקריס אחדיס אף רוציס שהתוכנית תיפתת בלי טופס בכלל. קביעת טופס פתיחה אס הטופס הראשון איננו אה שבו מתכווניס לפתוח את התוכנית, 8856 |1508\ מאפשרת לבחור איזה מהטפסים יוצג ראשון על ידי התוכנית. בחירה זו נעשית בתיבת הדו-שיח ₪65ז6קסזק 606[סזוס, כמוצג בתרשיס 11.13. ניגשים לתיבת דו-שיח זו על ידי בחירת 66%[סזק, 65וזו6ק0זק 666[סזס. |< | טפט זספןסז?] - 11ס6ן0זק | תוטספ | סקס | וס | מו | 0 :00 קטסזבזם :ץד ל66[טזק [+ [וחזס=] 6 1-3 :סחחב)] 60%[טזק 1 קושו לספןסזק חס :פב 6ון=] קוס מא |ןההההההההההההההחחם חסקן6507 ס6[סזם = [10008] הוחו ₪וחד ח | מ הו דן : ל | שסטחס6 אפעוה טפט 1 תרשים 11.13: רשימת האובייקטים | ו יק קטשזפ)5 מאפשרת בחירת הטופס הנטען בפתיחת התוכנית | | 630 0 סדנת לימוד 6.0 8\ שם שיגרה חובּו! פט5 רשימת האובייקטיס 5600 כוללת בנוסף לכל הטפסים שבפרויקט, גס את הביטוי חוהי] 0ט5. שס שיגרה שמור זה מאפשר לתוכנית להיפתח ללא טופס התחלתי. אס בוחריס באפשרות זו, אחד מקבצי המודול חייב לכלול שיגרה בשס חוגּ!!. סיבה אחת להתחיל תוכנית באפשרות חו8ּ!\ טט5 יכולה להיות הצורך לבצע שגרת אתחול לפני העלאת טופס כלשהו. סיבה אחרת לכך יכולה להיות פיתוח תוכנית שירות לשורת פקודה, שאיננה דורשת אינטראקציה עס מפעיל. מכאן... פרק וה סיפק מבט על ניהול חלקי התוכנית השונים. הוצגו טכניקות אחדות לתכנות יעיל יותר. בנוסף, נחשף הקורא לרבים מהרכיבים המגווניס המרכיביס את התוכנית השלמה. מידע נוסף על יצירת החלקים השונים והשימוש בהסם ניתן למצוא בפרקים הבאים: + > לדיון בסיסי כיצד לכתוב קוד של 8856 |1508/, ראה פרק 9 יסודות התכנות של 6 | פו/. + + ללמוד יותר על הפיכת קוד ליעיל יותר, ראה פרק 10 שליטה במהלך התוכנית. פרק 11: ניהול הפרויקט: תת-שגרות, פונקציות וריבוי טפסים | 301 חלק 3 רכיבי תוכנית ב- ₪3516 ובּש15 בי : 0 5 שו >ן/\ של = .% +< : הפקדים המשותפים של 50%ססו1/ % : עבודה עם מערכי פקדים , 0 % : יצירת פקדי 46%6% ;, 0 % : הרחבת פקדי 6%ע46% + : מחלקות: שימוש חוזר ברכיבים 1203 12 הפקדים המשותפים של 05011ו6ווא פרק 12: הפקדים המשותפים של 605086א | 305 ל- 8856 |508/\ סידרה של פקדים משותפים (0!5ח60 חסוחוח60) המאפשרים לפתח תוכניות הכוללות מאפייניס זהיםס למיגוון רחב של תוכנות, מתוצרת 67050%!! ומתוצרת יצרניס אחרים. פקדיס אלה יאפשרו לך ליצור סרגלי כלים (5ז8פ|ססד) ושורות מצב (5ז88 519005) ויאפשרו להציג נתוניס באופניס שוניס. פרק זה ימשיך את הדיון בפקדים על ידי הצגת היכולות של הפקדיס המשותפים של 6-0506ו. מבוא לפקדים משותפים הפקדיס המשותפים של פאוססחו/\ (₪0!5ח0ס6 הסח 60 פוססחו/)) הס קבוצת פקדיס המאפשריס לשלב בתוכניות יכולות כלליות המוצעות על ידי סביבת פווסטחו/\ ומכאן השס יימשותף'י. בשפת 6 8856 |508\ חלק מהפקדיס המשותפיס הקיימים עודכנו ונוספו להס יכולות חדשות, כן נוספו מספר פקדיס משותפיס חדשיסם לגמרי. בטבלה 12.1 תובא רשימה מלאה של הפקדים המשותפים שמוצעיס לך בשפת 6 | ובכללס פקדיס הכלולים בארגז הכליס של 88516 |1!508/\. טבלה 12.1: הפקדים המשותפים של 6-050%ו! ץו6ו\66זד | מציג נתונים במבנה של עץ הניתן להרחבה ולצמצום, בדומה לחלונית השמאלית של סייר פשססחו/\ שו6ו/115% | פקד מתקדם להצגת רשימות התומך בכמה מבטים, דומה לחלונית הימנית של סייר פווססחוש\ מציג פס מחוון, הדומה למחוונים של מערכת סטריאו סט ס66ִחָח1 | מהווה שיפור של פקד 080%טחח60 (תיבה משולבת) הרגיל שתואר בפרק 4. זהו פקד חדש שנכלל לראשונה בשפת 6 8856 |1508\ מאפשר שילוב קטעי וידאו חסרי קול בטפסים פקד הכולל לחצני חיצים המשמשים להגדלת והקטנת ערכים אוסו/\ו)חסו\ | תומך בתצוגת לוח שנה חודשי, דומה לזה הכלול ב- 98 5אוססחו/\ ז6אסוק ד | מאפשר להזין תאריך ידנית או על ידי שימוש בפקד שוסושחשחסו! ז|600 | פקד מכולה עבור סרגלי כלים הניתנים להסטה, כדוגמת אלה הכלולים בסביבת הפיתוח המשולבת של 88516 |1508\ 6 סדנת לימוד 6.0 8\ לפני שיתאפשר לך להשתמש בפקדיס שפורטו כאן תידרש להוסיף אותס לארגז הכלים שלך על ידי ביצוע הפעולות המפורטות להלן: 1 בחר את הפקודה 6012006065 מתפריט 66%[סזפ. תוצג לפניך תיבת הדו-שיח 5 0 6. 2 בחר את קבוצת הפקדיס המשותפים שאותה תרצה להתקין (ראה תרשים 12.1). תוצענה לך שלוש הקבוצות המפורטות להלן: % * 6.0 60010015 הסוהוה60 5עשס0חו/\ 11605016 - כוללת את כל הפקדים שפורטו בטבלה 12.1 עד פקד 1780660000 ועד בכלל. + 6.0 000170!5-2 הסהוחס6 5עשסהו/ 110,050 - שאר הפקדיס המפורטיס בטבלה 12.1, פרט לפקד זם|סס6. + 6.0 60047015-3 הסוחוו 60 5עצסח/:/\ 0506%ז116 - פקד זהם|סס6. 3 לחץ על 0% כדי לצרף את קבוצות הפקדיס שבחרת לתיבת הכלים של 6 | הפו (ראה תרשיסם 12.2). [< | ב | 5 591:805ח1 | ספ | בו זב זם! | חס 5600 30/6 6פוסזט אה | | 6|טסוח [סיסתס= 15 549זפ זזש 557 \5 סז 06% 6סדים ד5\55איסיסז/ו\: ב סח | זסתס-> 01.5 חח ץז זו | הסה הוח ל6פזום 6|וטסות חס 01.5 םויס ץזה זפ ! וסישחס= וסטו= 6וטבסות [סטחס-= 015 השקסחתן ץזהזפו | סקץיד 1.0 זספוו 6 ץזב זפ | שקץד 1.0 כ|פחוסו 6 | - ₪ / ץח 15605 5616066 -][ | ץז זפ | |סזטחס = 500 00/6 = 5.0% הדש 5/5 \פ/סוסז :6 :106300 תרשים 12.1: שלוש קבוצות הפקדים המשותפים סומנו והן תוספנה לתיבת הכלים לאחר שתלחץ על 06 אס תרצה להשתמש בפקדים המשותפים במסגרת פרויקט חדש, תידרש להוסיף אותס לארגז הכליס של 8856 |1508). את פעולת ההוספה תידרש לבצע גס בכל מקרה בו תרצה להוסיף פקד משותף כלשהו לפרויקט קיים, שהפקדים המשותפים טרס הוספו אליו. לאחר שתוסיף אותס לארגז הכלים ותשמור את הפרויקט שלך, הפקדיס המשותפים יוצגו בארגז הכליס של הפרויקט בפעס הבאה שתטען את הפרויקט. פרק 12: הפקדים המשותפים של א050ווא - 307 | 8 | חב ₪ ₪ > | לצ ]1 | 3 ט4 8 8 ₪ 3 3 65 ₪ - ₪ שק פך | תרשים 12.2: ארגז כלים אשר מכיל פקדים משותפים מכל שלוש הקבוצות פקד 5%ו 61פ1₪1: פקד משותף בסיסי אופו פעולתו של פקד 18861155 (רשימת תמונות) הוא כמשתמע משמו. פקד חן דומה לפקד תמונה או לפקד תיבת תמונה, אך הוא אינו משמש לאחסון תמונה יחידה אלא לאחסון אוסף תמונות. פקד 10806115% גם אינו מכיל שוס אלמנט המוצג בזמן ריצה, הוא משמש כשטח אחסון בלבד. אס תרצה להציג תמונה כלשהי המאוחסנת בפקד 5% 18061 תידרש להסתייע בפקד נוסף. חשוב שתבין את אופן פעולת הפקד, מפני שרבים מבין הפקדים המשותפים האחרים תלוייס בתמונות המאוחסנות בפקד וה. למעשה, אופן השימוש העיקרי בפקד הוא לשס אחסון תמונות עבור פקדיס אחרים, ורק לעיתיס רחוקות הוא מתפקד כפקד עצמאי. הגדרת פקד %פו ו61אַבּו1 בעת עיצוב היישום הדרך השכיחה ביותר להגדיר פקד :180615 היא על ידי צירוף תמונות באופו ידני בעת עיצוב היישוס. אין צורך להפיצ את קבצי התמונות עצמם יחד עס היישוס. הערה: בפרק זה תמלא בפקדי +1806158 קבצי תמונה שסופקו לך כחלק מתוכנת |1808\ 6. את הקבצים הגרפיים האלה תמצא בתיקיית הקבצים הגרפיים של 8856 |1508/. תוכל גם למצוא את אותן תמונות (אם תחליט להתקין אותן) על ידי כך שתאתר את התיקיה המתאימה במחשב שלך. נוח מאוד להשתמש בסמלים (05ח160) במסגרת פקדי מפני שהם קטנים ומפני שניתן להציג תצוגה מקדימה שלהם בתיבת הדו-שיח 6ון. 8 סדנת לימוד 6.0 8\ בצע את הפעולות המפורטות להלן כדי להגדיר פקד 5% 178961 בעת עיצוב היישוס: 1 שרטט פקד 18061156 על גבי הטופס שלך והגדר עבורו שס ייחודי. 2< פתח את תיבת הדו-שיח 23965 ץזוסקסיזוק של הפקד על ידי לחיצה ימנית על הפקד ובחירה בפקודה 65/יו6טסיזש מהתפריט המקוצר שיוצג לפניך. 3 בחר את כרטיסיית 10365 של תיבת הדו-שיח (ראה תרשים 12.3). הכרטיסיה תאפשר לטעון אלמנטים גרפיים ולהגדיר מוהה ייחודי עבור כל אחד מהס, כמתואר בסעיפים הבאים. 4 להוספת תמונה לפקד 178061.15% לתצ על לחצן 16076ק +1567. תוצג לפניך תיבת הדו-שיח 71606 56166%. בתיבת דו-שיח זו תוכל לבחור קבציס מהסוגים חסס1, זספזוס, =61 ו-3056 שיצורפו לרשימה. כאשר תוסיף לרשימה תמונות, יוגדרו עבורן ערכי אינדקס באופן אוטומטי (ראה שוב את תרשיס 12.3). תוכל גם להגדיר מזהי מחרוזת (5ז00ח106 פַחו5) עבור תמונות על ידי כך שתקליד את המזהיס בשדה צְפ6א של תיבת הדו-שיח. מומלצ להשתמש במפתחות מפני שכך יתאפשר לך להתייחס לכל תמונה בנפרד על ידי שימוש בשם ייחודי, ללא תלות בסדר התמונות ברשימה. 5 | כאשר תסיים להוסיף תמונות לרשימה, לח על אישור כדי לסגור את תיבת הדו-שיח. [< | 5% ע וזזסקטזי] | זו | 5 |300878 ה | )שוגו 065900 עקסס | = :66 5 | :106% ]| שגד אינדקס יוו | ₪ 4 98 ₪ ם ₪ 0 | , 3 וס 36| | 6זוו)סו"] 6שיסוחסם. ...גוסו 156% סוסו שוסקם | 308 תרשים 12.3: אם תגדיר פקד 18061158 במסגרת עיצוב היישום, התמונות תאוחסנה במסגרת הטופס ותהודרנה כחלק מקובץ הביצוע של היישום התמונות פרק 12: הפקדים המשותפים של א050וא - 309 הגדרת פקד 1396115%ו1₪ באמצעות קוד ניתן גס להגדיר ולשנות פקד 1080615 בזמן ריצה, על ידי שימוש בקוד תוכנית. בעת גישה לפקד 86115%ַ108 כל תמונה מטופלת כפריט באוסף (ח0ס60!!6600). הערה: אוספים (5ח60!!6600) הם מושג חשוב אשר משמש למספר מטרות בעת העבודה בשפת 88566 |508ו/. אם אוספים הם מושג חדש עבורך המשך בקריאה, במושג אוספים נדון לעומק בהמשך הפרק. אוסף הוא קבוצת אובייקטים. פקד 10806118%% משמש לעבודה עס אוסף בשס 5 האובייקטיס המאוחסניס באוסף וה הס התמונות המאוחסנות בפקד 5% חחן. תוכל להשתמש בקוד לשס ביצוע פעולות על אוסף 1150108065, כגון הוספת תמונות לאוסף ושינוי תמונות הכלולות באוסף. לדוגמה, שורת הקוד הבאה תצרף תמונה לפקד 1708061.15% בשם 180611551 : ("קוזם. 6זקץן \ז צז\: ")סקס הס | 00. 1508065 1. 1561 1806 ניתן לקרוא לשיטה 400 של אוסף 1150178065 שוב כדי לצרף לאוסף כמה תמונות בעת עיצוב היישוס. אוסף דומה במובניס מסוימים למערך אך אינו והה לו. הגישה לאוסף מתבצעת כמו הגישה אל מערך, כפי שניתן לראות בדוגמת הקוד הבאה, אשר מציבה את התמונה הראשונה הכלולה בפקד 100806115% במאפיין 6זנשס6וק של הטופס: 6ז ו סוק. (1 )5013065 |. 1561 108061 = 6זנססוק. 1 וחזס= 56% בוודאי שמת לב שהגישה אל פריט מסויס באוסף מתבצעת על ידי שימוש באינדקט (א06ח1), כאשר במקרה המוצג בדוגמה ערך האינדקס הוא 1. וכור שאוסף משמש לאחסון אובייקטים, בשונה ממערך שבו מאוחסנים ערכים מספריים. לכל אובייקט הכלול באוסף יש מאפייניס משלו. ץ6א הוא מאפיין מיוחד המוגדר עבור אובייקטים הכלולים באוסף. מאפיין צ6א (מפתח) של אובייקט מכיל מחרוזת שניתן להשתמש באופן הדומה לשימוש באינדקס: 6ז סוק ("866= ע6!ורח5 )15078065 1. 15%1 108061 = 6וססוק. 1 רתס 56% כדי להשתמש במאפיין ש6א לצורך חיפוש אובייקט, הצב ערך במאפיין זה של האובייקט בעת הוספת האובייקט לאוסף. עבור כל סוג של אוסף הוגדרו שיטות 866 (הוספה), 6עטסוח6א (גריעה), שהמאפיינים ע6א וכן א06ח1 מהווים עבורן פרמטרים. אס מאפיין א06ח1 של אובייקט לא הוגדר, 8856 |808ו\ מציבה בו ערך באופן אוטומטי ואילו המאפיין ע6א הוא אופציונלי. 0 סדנת לימוד 6.0 8\ ארגון הנתונים הפקדיסם שו6ו/1150 וכן ש6616ד מאפשרים לארגן נתוניס לצורך הצגתס במבנה הדומה לוּה שבמסגרת סייר פווססחו/\ (ראה תרשיס 12.4). היתרון העיקרי של פקדים אלה הוא העובדה שהס מאפשרים להפריד בין חוות הפקד עצמו, לבין הנתונים שמוצגים במסגרת הפקד. נתייחס כדוגמה לרשימה שמכילה 100 פריטים. פקד >ו6ו/1150 יאפשר למיין את הפריטים ולשנות את המבנה בו הס יוצג על ידי שינויים בהגדרות המאפיינים של הפקד. והו שיפור ניכר בהשוואה לפקד א8%880ו1 הרגיל, שאס תרצה לשנות את סדר הפריטים המוצגים במסגרתו, תידרש לטעון שוב את הפקד. ומומ או - טסופ 8 [6] 1006 שופ" 800 אשץ ₪ 6 | | 5 א | ו | ו ו ק | עס א || הפחססאם פאו0פפ) | פש ו 7 8% || - טאוד | 046 | . 0 שפד | 05 | א ב 16 1 דר | | 06% ₪ 3 ו ו א 305 סוס ו 50 5 8 שת פאך סו ודה ף ג עסססות 3% 9-9 ךר 6 פאר מפ זפ [₪ 63 25/03 6 פד סו65פוס = 0 23 שתהפט פאר וס הפה 7 ו 0 22 6 ב 25/0/83 שתהפט פאר העוט מ 2 18 5 6, ב ב 2 ב ב 2/3 טסו ופה 6 6 )וו 3 -504ד5\וו 3 6 ב אוהו 67 גאוד 1-5 03 בונ ] 0 23 ב מ סאוו ") 58 - 2/3 5320 ן ₪ % ₪ 25/03 5/9506 9 [ש| 00 440 (8-6: 3 25/09/98 סא האשקד [ן | וול חס 061 4או-15%ם 5-ו ב ב 2 ד [ן 0 אק ד [ין | ן | (:8) "ו חס 1564300662 5-מ | ו וקה 098 ד | |=. !0 חס ה ל ו וו[ ₪ תרשים 12.4: לסייר פווס6חו/\ ממשק 6₪ו/66זד (חלונית שמאלית) וממשק ש6ו/1150 (חלונית ימנית) בסעיף הבא תיצור פרויקט פשוט שיתבסס על פקד ש6ו/1159% ופרויקט פשוט שיתבסס על פקד - ש6ו/66זד. כדאי שתהיה מודע לכך ששני הפקדיס האלה הס מורכביס יחסית ללימוד. כדאי אולי שתקדיש קצת זמן לעיוןו בעזרה המקוונת, כדי לצבור מעט ידע אודות השימוש בהס. אס תקדיש מעט זמן למטרה זו, לא תתחרט. שימוש בפקד ש6ו/:5ו! פקד 1150/16 דומה לפקד א9580ו1, אך הוא מכיל כמה שיפורים. פקד 6₪ו/1180 יכול להציג נתוניס במיגוון אופניס: רשימות המכילות סמלים שמסודרות משמאל לימין, רשימות במבנה טורי, ומבט דוח. אופני תצוגה אלה תואמים לאלה המוצעים בתפריט התצוגה של סייר פשספחו\\ (סמליס גדולים, סמליס קטנים, רשימה ופרטים). לאחר שהפריטים יאוחסנו באוסף 11506005 תוכל להיעזר במאפיין אסוצ של הפקד לצורך שינוי התצוגה למבנה הרצוי לך. רשימה המוצגת במבנה דוח מיוחדת משוס שהיא מאפשרת להציג יותר נתוניס מכפי שאפשר להציג בעת שימוש במבני תצוגה אחרים. למשל, ב- זסזס|קאם פמוספחו/\ בחירה באפשרות פרטים (5ו068) תציג פרטיס נוספיס פרט לשס הקובצ. במבנה תצוגה כוּה שס הקוב> יהיה הפריט הראשי ואילו גודל הקובצ, סוג הקובצ ותאריך היצירה של הקובץ, יהיו תת-פריטים המקושרים לשם הקובצ. פרק 12: הפקדים המשותפים של א050ווא - 311 בעת שימוש בתוכניות תוכל לשלוט על תת-פריטים אלה על ידי שימוש במאפיין 5 שמכיל מערך מתחרוזות המקושרות אל כל פריט ברשימה. אוסף תו !60 הוא שמפיק את כותרות הטוריס שמוצגות בראש הדוח. קודס לכן ציינו שפקד 1₪3886118%% מספק את התמונות שהוצגו במסגרת פקדים משותפים אחרים. פקד א6ו/1156 יכול להשתמש בעד שלושה פקדי :1896115 מפני שהוא יכול לשמש להצגת סמלים גדולים, סמלים קטנים וכן תמונות במסגרת כותרות הטורים. את פקדי 10096115 תוכל להגדיר בעזרת תיבת הדו-שיח 28965 /+וסקסזס של פקד .1150/06 או על ידי שימוש בקוד באופן הבא : 1 16 = 5חסס1. חו9)\]צוסו/\| 56% 2 10806 = 5ח0ס1!|הרח5. חו3!\]עוסו/\| 56% 3 ]1 = 680616005רוהרתטוס0. חורה ]עוסו/\| 56% היכולת לשילוב תמונות סמל בכותרות טוריס היא יכולת חדשה שנכללה לראשונה בשפת 6 8856 |08/). אס לא תגדיר את המאפייניסם 5ח08|!!60ח5, 5ח160 וכן 5 !60 של פקד א6ו/115%, לא תוצגנה תמונות כלשהן במסגרת הפקד. כדאי להשתמש בפקד 108961155 קטן יחסית (בגודל 16א16) בעת מילוי 5% ו806ח1 שתשמש להצגת סמלים קטנים. בוודאי ּכור לך שהפריטיס הכלוליס בפקד 108961158 מאוחסניס במערך. כל הפריטיס הכלוליס בפקד מאוחסניס באוסף בשס 115016605 ולכל פריט יש מספר מאפיינים, ביניהס אינדקס המצביע על התמונה המשויכת לפריט ו-ח68000 (כיתוב). בדומה לרוב האוספים גם עבור האוסף 1150156005 הוגדרה שיטת 00, שמוגדרת כך: 1 ,"16 עו" ,"ץסאץרח" , 05.800ח50166! |. 1 1150/16 בעת בניית הפרויקט לדוגמה תלמד דבריס נוספים על פרמטרים של השיטה 400 של פקד 50/6 ]. התחלת פרויקט הדוגמה תוכנית הדוגמה תציג קבוצות כדור בסיס ואת נתוני הניצחונות וההפסדים שלהן. התחל את הפרויקט על ידי ביצוע הפעולות הבאות: 1. התחל פרויקט חדש מסוג ₪5 503003706. 2 הוסף לפרויקט שלך את קוב הפקדים הסוחוח60 פעשס6חו/\ 5016סזסווא 0 60057015, באופן שתואר בתחילת הפרק. 3 הוסף לטופס פקד 1156/16 והגדר עבורו את השס חוגּואעו. 4 הוסף לטופס שלושה פקדי 1₪806115% והגדר עבורס את השמות |בּוחיוסאוו, [וההח5!ו, ו-זססבּסרווו. 5 הוסף את התמונות הדרושות לפקדי -80611%ח1. הקוד לדוגמה שצורף לפרויקט מניח שהרשימות |חזסאוו, וכן |וחפ!ו מכילות תמונה אחת בכל רשימה ואילו זו מכילה שלוש תמונות. 12 סדנת לימוד 6.0 8\ הגדרת מאפיינים של פקד עצ6ו/5ו.! בדומה לפקדים אחרים, גם את המאפיינים של פקד ₪ש6ו/115% ניתן להגדיר בשני אופניס: באמצעות גיליון המאפייניס (28065 שזסקסזוק) של הפקד או על ידי שימוש בקוד. אם תרצה להגדיר את הפקד תוך כדי עבודה בסביבת העיצוב, תוכל להיעזר בתיבת הדו-שיח 23965 ע+ו6קסזפ אשר מוצגת בתרשים 12.5. לצורך פרויקט הדוגמה תגדיר 4 מאפייניס : ששו/, חסס1, 5₪08|!16005 ו-6806716005 חותט!ס6. בסעיף זה תלמד כיצד להגדיר את המאפייניס האלה בעת העיצוב וכן יוצג לפניך קטע קוד שיגדיר את המאפיינים. [< | 58 ע וזזסקטז] | 6ווססות | חס | יפ | 5 חוטוס | 50 | 5 סמו | 8 טחוס גוסו 7-5 [+ חסס\איש - חן = חסו6|50 3465 שן [= ---- שסאאאו-ם] בי 0 |+ ו חסזומואוש] - ₪ פה | וגוט -] 7 > |+ 6 005 - ח 6 1 וואיסווה - [ [=---- 65-ה 6 5סטוום -] וו ז |+ 6001-5017 - 0 הס 01 סרוה -]ז [+ וס 6001 - ] 6 וה -] 308 דוסה -][ 60| 5זסיסתן ‏ =[ תרשים 12.5: תיבת הדו-שיח 98065 ץזזסקסזק תאפשר להגדיר מאפייני פקד צו6ו/5%ו | תחילה תידרש להגדיר את מאפיין שפוצ, אשר מגדיר את המבנה בו הנתוניס יוצגו במסגרת הרשימה. למאפיין זה ארבע הגדרות אפשריות : <* | חסס1שוט! - מציגה כל פריט ברשימה כסמל גדול עס תיאור טקסטואלי פשוט. + חסס]!|8וח5אוט! - מציגה כל פריט כסמל קטן עס תיאור טקסטואלי פשוט. הפריטים מוצגים כשהס פרוסים אופקית. %* 8%!]שצ! ‏ - מציגה את הסמלים בדומה לתצוגת 16005 ||5₪8 (ההגדרה חסס8|!1וח5אוטו), פרט לכך שהסמלים מוצגיס בפריסה אנכית. + +וסססח אוו - מציגה כל פריט במבנה הכולל סמל קטן, תיאור טקסטואלי ונתוניס מפורטים על הפריט. גם הגדרה זו מציגה את הפריטים בטורים אנכיים. בעת עבודה עס פקד 6₪ו/115 תידרש להגדיר גם את שמותיהס של פקדי 8061.5%ח1 שיכילו את הסמלים הקטנים, הסמלים הגדולים, והתמונות שתשולבנה במסגרת כותרות הטוריס של הרשימה. אס תיעזר בתיבת הדו-שיח 78065 שהסקסזס תוכל להגדיר את שמות הפקדיס באמצעות תיבות הרשימה הנפתחות שבכרטיסיה 5 186 של תיבת הדו-שיח. בתיבות הרשימה אלו תמצא את שמות כל פקדי שהוספת לטופס. ביישוס הדוגמה תגדיר את מאפיין שסו\ באמצעות קוד. פרק 12: הפקדים המשותפים של א050ווא - 313 הוספת פריטים לרשימה הפעולה הבאה אותה תידרש לבצע היא כתיבת קוד שיצרף פריטיס לתצוגת הרשימה. תוכל להשתמש בקטע הקוד לדוגמה שמוצג בתוכנית 12.1 כדי להוסיף פריטיס לאוסף 5 ]. הפעל את התוכנית ותוצג לפניך התצוגה הנראית בתרשיס 12.6. תוכנית 12.1: ק8/./ש1151/1 - שימוש באירוע 10680 להגדרת פקד א6ו/158% 1 ()080. 1 חזזס-] 50 טוק | 806ח! 6 החסיז פהסס! 06 קט ז56' |הרחזוס\\!!1 = 5חסס1. חוה ועו |הח5!! = 5חסס8|!1רח5. חוה ועו | = 6806716005 הרתטוסס. חוה ועו ו 0וצ\ 66 15 5הרחט!ס6 606 01 הססוש שח ד .5ז06ה6רוהרתטוס6 00 ' .01605 6800רחהוחט!60 + זססרהטח 606 עס ה6סועוס |סיטשחסס 6 זס ' זר הותט|ס 5 אוש הוחו (1 ,,, "החד" ,,)680075.00רוהרחט|ס60. חו8!ע| = אוחוס 56% (2 ,,,"פחו/\\" ,,)6806175.00רוהרחטוס6. חוה]ע| = אוחוס 56% (3 ,,,"1.05505" ,,)6806075.00רוהרחט|ס6. חורה !ע| = אוחוס 56% 51 | 3 070806 החו5016! | ₪5 אוחסו וחוס :5100 | 6חז סז 5600 083 6רחס5 סחי :5 א50 60ב' הד ' (1 ,1 ,"א50 60" ,, )50005.0 |.חופּזש! = אוחסו 56 5חו/\ ' "64" = (1 )05ח10166ו5. ארחסו 5 "6" = (5)016605)2. אוחסו 6 ]0 פסחו| 3 30006 ₪6 6865ו₪01 ח68 טסצ ' ...6805 סרח וס הסוה הסוח 800 סש ' ₪0 60 עהסקסזק /וסו/\ 56% ' הסכסה עעט| = צוסו/. חובוזען 50 0ח= 4 סדנת לימוד 6.0 8\ [<1) -| ב וסור תרשים 12.6: כך ייראה פקד 6₪ו/1150 שיוגדר על ידי קטע הקוד שהוצג כאן שיס לב בקטע הקוד שהובא כאן למשתני האובייקט הזמנייס ששימשו לצורך הגדרת האוספיס ]6806ה חח ט!0ס6 וכן 1150%6₪5. תחילה קראת לשיטה 406 אשר החזירה הפניה אל האובייקט שהוסף על-ידה. בקטע הקוד שהגדיר את כותרות הטורים זו היתה למעשה פעולה מיותרת, מפני שהקוד אינו מתייחס למשתנה הזמני אוח|6 לאחר הקריאה הראשונה לשיטה ₪00. אך כאשר הוספת את נתוני הקבוצות לא נדרשת להגדיר מפתח משלך. בוודאי וזכור לך שמפתת הוא מחרוזת המהווה מזהה ייחודי של אובייקט הכלול באוסף. אם לא תגדיר מפתח משלך עבור אובייקט, 8856 |508ו/ תגדיר עבורך מפתח. על-כן נדרשת להיעזר באובייקט אחשו לצורך הגדרת שני תתי-הפריטים. אס תגדיר מפתח תכתוב את קטע הקוד הרלוונטי כך: 1, ,"א50 560" ,"אסשם" ,00ה.005ח50%5 | חוה ושעו "64" = (1 )500106005.("א50 ")50605 |. הוה וען "65" = (2 )016605 )5.("א50 )1501665 |. חוה|זען הוספת פריט וח115%1%6 לפקד עש6ו/:5ו.! הדוגמאות שבסעיף זה תצגנה את האוסף 605ז1150, שבו מאוחסנים פריטי 506 | שנוצרו על ידי שימוש בשיטה 800. תחביר השיטה 400 של אוסף 115060 הוא : חססו||8ח5 , הסס! ,6 ,ץ6א ,אס0חו 160.800[סס להלן פירוט הפרמטריס השונים הכלולים בפנייה לשיטה ושל משמעויותיהס: * 001666 - האובייקט הקורא לשיטה. אלמנט הכרחי בשורת הקריאה. + א06%ח1 - מספר להגדרת מיקוס פריט במסגרת האוסף. אם לא תציב ערך מספרי בארגומנט הזה, הפריט יתווסף לסוף הרשימה. הפרמטר א06ח1 הוא אופציונלי. ערך מאפיין א6סחו של פריט מסוים עלול להשתנות כתוצאה מהוספה או גריעה של פריטים אחרים. פרק 12: הפקדים המשותפים של א050ווא - 315 + שא - ניתן להשתמש במחרוזת זו כדי להגדיר לפריט שם ייחודי וידידותי. הפרמטר שא הוא אופציונלי. + 6% - פרמטר המכיל את המחרוזת שתרצה להציג במסגרת הפריט בחלון הפקד. זהו פרמטר אופציונלי, אך אני ממליצ למשתמשים בלתי מנוסים להשתמש בו. חשוב שלא לבלבל בין פרמטר זה ופרמטר ע6א. + חסס1 - פרמטר המכיל את מספר האינדקס או המפתח של תמונה הכלולה בפקד 186 ששמו הוצב במאפיין 16005 של פקד א6ו/115%. פרמטר זה ישמש לבחירת התמונה הרצויה. זהו פרמטר אופציונלי, אך יש להתייחס אליו בזהירות מפני שאס לא תציב בו ערך כלשהו לא יתאפשר לך להציג סמלים גדוליס בתצוגת 5 וטו של הפקד. + חסס!!|08ח5 - דומה לארגומנט חסס1, אך מכיל את האינדקס של התמונה במסגרת פקד 83986|!5%%ח1 ששמו הוצב במאפיין 5חסס!||9ח5 של הפקד. הו פרמטר אופציונלי, אך אס לא תציב בו ערך לא תתאפשר תצוגת סמליס קטניס במסגרת אופני התצוגה 5חסס8|!1ותפצוטו, 15% |וצ! או +וסקסחצושו. אס תרצה להוסיף לרשימה נתוניס נוספים לאובייקט 1150060 שיצרת, ח50%6 \ועוו, תידרש לשנות את הגדרת המאפיין (א06ח5)1וח106פט5. מידע נוסף אודות מאפיין 55 תוכל למצוא בעזרה המקוונת של 88516 |1508/. שינוי התצוגה לאחר שתציב נתוניס בפקד שו6ו/1156, תוכל להציג אותס במספר אופני תצוגה שונים, על ידי כך שתציב ערכים במאפיין שסו\ של הפקד תוך שימוש בקוד. אם תרצה לראות את מבני התצוגה השוניס תוכל להוסיף תפריט צוסו/ (תצוגה) ליישוס הדוגמה. צור את התפריט בעזרת זסטו0ם טחסו\ (עורך התפריטים) של 8856 |אטפוצ (לחצ על הלתצן זסזו0ם טח6!! או בחר זספו0ם טחסוי] מתפריט 10015). הפעל את זסטו0ם טחסוא וצור את פריטי התפריט המוצגיס בתרשים 12.7. | אס |ו6%3ק | :חספה | 08 |ה%שנוחוח ו 5 (סחסצ]) זסת כ ןו [+ שחס4 - 00| = :ח00ו355005ו6000] 0 | :10א6לחס פופו וסטחוע -] ופפ ₪ בסופברם שן 8 - תרשים 12.7: פריטי התפריט של תוכנית הדוגמה כשהם מוצגים בעורך התפריטים 6 סדנת לימוד 6.0 8\ לאחר שתסיים לעבוד עס עורך התפריטים, תידרש להוסיף קוד לכל אחד מפריטי התפריט שיצרת, כדי לאפשר לבצע את הפעולה הרצויה. הקוד הדרוש לפריטי התפריט השונים מוצג בתוכנית 12.2. תוכנית 12.2: ק8/./שם1151/1 - שימוש באירועי 016% טחסו! עבור פרויקט הדוגמה ()א6ו61 |וז6כ טחוח 50 סזבּעוזוק +סקס שוע! = צוסו/\. חוה!אען 50 0חם ()א6ו1 6חזה |טחרח סט5 6אפעווק ח160/עט! = צוסו/. חום ועו 50 0ח= ()66ו6 5% |גוחרח סנ5 סזבּעוזוק 5% |/שט| = עוסו/\. חום|זען טפ 06ח= (11660 || החרוח סנ5 ס6זבּעוזוק ח3|160רח5/שע] = צוסו/\. הוה וזען 50 0ח= <1) = !ההוז !ו חוזס !וו . וזה אב שששוער תרשים 12.8: בתצוגת +זזסס₪9 מוצגים נתונים מפורטים אודות הפריטים, תוך שימוש בכותרות הטורים בעוד שבתצוגת 16005 שַפָז | מוצגת רק תמונה המסמלת את הפריט מעל לשם הפריט בשגרת האירוע 1080 חזס= נוצרים אובייקטיס של 1150060 (קבוצות כדור בסיס) שיתוספו לאוסף ‏ 11507060. בכל פעס שפריט כלשהו מוסף לאוסף 115016005 מוצביס ערכים בתת-הפריטים (5)1וח1:6ט0ו5 (טור פחו/\ - נצחונות) וכן (501605)2 (טור 1055 - הפסדים), של אובייקט 11507060, אוחטו. פרק 12: הפקדים המשותפים של א50סווא - 317 שגרות אירוע 616% של פריט התפריט מגדירות את מאפיין שסו\ של פקד 1150/60₪. הערכיס שמאפיין ששו יכול לקבל הס 5ח160וט!, 5ח160!|הות5צוטו, 5% !וטו וכן +סקסחעצ! בהתאמה. בתוכנית הדוגמה שהצגנו זה עתה הדגמנו את יכולתו של פקד א6ו/115% להציג פריטיס. בדומה לפקד א118:80 גס פקד ‏ 6ו/115% תומך באירועים רבים ובמאפייניס רבים, כדוגמת אירוע 6%ו61וח166 המיועד לבחור פריטיס ולבצע עליהס פעולות שונות. אירוע 1660/66 מעביר אובייקט אל התוכנית שלך, כדי לאפשר לך לבצע על האובייקט את פעולה המתאימה: (הח50106 |. ו 6060 5 רח106 |\ץש )10066 1 עשסו/150. | פטס סספעווק "!הו 06 6 60>סוו0 טס" א0 15 החד "1660 6וסבּ]" = אס דך. סז זז סט5 0חם פקד ₪ו6ו/115% תומך גם במאפיינים המאפשרים למיין את תצוגת הדוח תוך שימוש בכותרות הטורים. השימוש באירוע >6ו!0חוחט!ס6 מאפשר לך לשנות בקלות את סדר המיון של הטור הנבחר, כמתואר כאן: (ז6800 ה רתט|ס0. טו 060 45 ז6300רוהותטוס |3\ץם )אסוו)הרתטוס חוהזע| 5 ססהטוזק 1- א06ח1.ז6300ההותט[ס6 = /66ז50. חוהוועו 6טזך = 660ז50. חוהוועו סט5 סחם ייתכן ששמת לב לכך שניתן לשנות שמות פריטים הכלולים בפקד 115/16 באמצעות לחיצה בודדת על טקסט הפריט. הפקד תומך בשני אירועים 806501 |6זס)6 וכן 3060 66 אשר מאפשריס לתוכנית שלך לדעת אילו פריטיס משוניס כעת. נוכחת שפקד א6ו/115% הוא פקד מורכב יחסית. אס תרצה להתנסות בעבודה עס כל היכולות שלו ייתכן שכדאי שתבנה כמה תוכניות לדוגמה שתאפשרנה לך להתנסות בעבודה עס כל המאפייניס והשיטות שלו. יכולות חדשות של פקד עצשסו/5%ו.! אס התנסית בשימוש בפקד 6₪ו/1150 שנכלל בגרסאות קודמות של 8856 |1808/, תשמח בוודאי לשמוע שלפקד 115/16 שנכלל בגירסה 6 נוספו שיפורים רביס. כבר התנסית בשימוש באחד השיפורים האלה, האוסף 6806716005 חחחט!ס6 אשר מאפשר להציג תמונות במסגרת כותרות הטוריס של תצוגת הדוח. להלן מפורטיס כמה שיפוריס נוספיס אשר יאפשרו לך לשפר חזות פקד ש6ו/15%] : 9%, ז00ז60 חהותטוס0שוסו|א - מאפיין וה מאפשר לשנות את סדר תצוגת הטוריס בתצוגת אסספחשט! (תצוגת דוח). לדוגמה, אם תגדיר את המאפיין כ-פטזדך בפרויקט הדוגמה יתאפשר לך לגרור את טור פחו/\ אל הקצה השמאלי של הדוח. %, 56|60%ש5₪0]|ט= - מאפיין חדש זה הופך את פקד ש6ו/1150 למועמד מצוין להחליף את פקד א119%580. ייתכן שהבחנת שאופן הפעולה המהווה ברירת מחדל עבור 8 סדנת לימוד 6.0 8\ הפקד הוא לאפשר בחירת פריטיס רק על ידי לחיצה על הטור השמאלי ביותר. הצבת ערך 6טזד במאפיין 56|66צו50!וט₪ מאפשרת לבחור פריטיס בלחיצה על טור כלשהו בתצוגה וגס מאפשרת חיווי חזותי לכך, על ידי הצגת השורה המוארת על כל רוחב המסך. 65 - מאפיין זה קובע האס יוצגו קווי רשת במסגרת הדות. קוויס כאלה יקנו לדוח מראה של גיליון נתוניס. 5 - מאפיין זה יציג פסי גלילה עס המראה החדש, השטוח. ח656!6600עס₪ - במצב רגיל תידרש ללחו על פריט בפקד 6₪ו/115% כדי לבחור אותו. בהגדרת 6טזד למאפיין חסו56!660זסטס, הפריט ייבחר (ואירוע 1060616 יתבצע) גם אס תעביר את מצביע העכבר על גבי הפריט למשך מספר שניות. חס - מאפיין אשר נועד להתאיס את חזות הפקד למקובל בסביבת 6500 26/6 של א₪ספססוו. 658 - מאפיין 6066680%65 קובע האס תוצגנה תיבות סימון לצד כל פריט שיוצג במסגרת פקד שו6ו/1150. תוכל לזהות מהו מצב סימון התיבה או להגדיר את מצב הסימון על ידי שימוש במאפיין 6066660 של הפריט. אירוע 1660666 יתבצע גם כאשר המשתמש יסמן את תיבת הסימון. יכולת חדשה נוספת שנכללה לראשונה בפקד 6ו/15%] של 6 8856 |8טפו\ היא יכולת להציג תמונה ברקע הפריטים. יכולת גו מיושמת כמו תצוגת רקע בעמוד 60\\. אס תטען תמונה על ידי הגדרת מאפיין 6זו6וס של פקד ש6ו/1150, כמו בדוגמה הבאה: ("700.+65 ] \ 65ו160ק \: כ" )טסוק הס |= 6זנססוק. הוה ועו בנוסף לכך, שני המאפייניס המפורטיס להלן יגדירו את אופן הפעולה של התמונה ואת האינטראקציה שתתקייס בינה לבין הפריטיס הכלוליס ברשימה: מאפיין 6חט0ז0א6886א6ד קובע האס הטקסט יוצג על רקע שקוף או אטוס. מאפיין +ח6וחף!|ה6זנססוק שולט על האופן בו התמונה תצויר על גבי פקד ש6ו/115%. תוכל להתחיל את השרטוט במרכז הפקד או בכל אחת מפינות הפקד ולהציג חלק גדול ככל שניתן מתוך התמונה, או אס התמונה קטנה מהפקד תוכל להציג כמה תמונות שתהיינה פרוסות כמו אריחים. בתרשים 12.9 תוכל לראות דוגמאות לשימוש בכמה מאפשרויות תצוגה אלו. פרק 12: הפקדים המשותפים של א050וא - 319 7 ו 7 65שב₪ /+ ₪ 8 |<1) -| [החזזס !ו!ה חוזס !!!ו .% תרשים 12.9: לא ניתן היה להציג את מבני התצוגה המוצגים כאן על ידי שימוש בגרסאות הקודמות של פקד 6₪ו/115% פקד שש6ו/66יוד פקד ש6ו/66זד דומה לפקד 1150/86 אך הוא מסוגל להציג גם פריטיס המכיליס שילוב של טקסט וגרפיקה. פקד ש6ו/86זד גס מציג את הפריטיס הכלולים בו במבנה היררכי של עץ. אס למדת אי פעס קורס בסיס במתמטיקה או במדעי המחשב הרי שהמושג יימבנה היררכי של עצ'יי בוודאי מוכר לך. בתרשיס 12.10 מוצגת דוגמת מבנה היררכי של עף. לאור אופיו ההיררכי של פקד א6ו/1186% יש כמה מושגיס בסיסייס שהכרתי להבין אותס כדי לנצלו באופן יעיל: שורש (ססם), אב טחסזבּק), וצאצא (0!וח6). פקד ש6ו/66זד גם עושה שימוש נרחב באובייקט 66ס0א, כך שבכדי שתוכל להשתמש ביעילות באובייקט ש06ע6סזד תידרש גם להיות בקי בשימוש בסוג אובייקט זה. הדוגמה השכיחה ביותר לשימוש בפקד או6ו/66זד היא התצוגה בחלונית השמאלית של סייר 5\ססחו/צ\ (ראה תרשיס 12.4). 0 סדנת לימוד 6.0 8\ "₪ תרשים 12.10: מבנה עץ מגדיר מערכת קשרים בין אובייקטים (מיוצגים על ידי עיגולים) הבנת המושג 1066 (צומת) מבנה היררכי הוא מבנה שלכל פריט הכלול בו יש קשר מוגדר עס הפריטים האחריס. נתייחס כעת אל אילן היוחסין של משפחתך כאל דוגמה של עצ. ההוריס שלך מצוייס 'ימעליך'י במבנה ההיררכי של המשפחה והצאצאים שלך מצויים יימתחתייך'י במבנה. בדוגמת אילן יוחסין של משפחה, כל אדס הוא צומת (80006) בעץ. הקשרים בין צמתיס מיוצגיס על ידי ענפים (6065ח878). הענפים היוצאיס מצומת מסויס מקשרים את הצומת אל צמתיס אחריסם בעצ (כלומר ענפי העץ מקשריס אותך אל אבותיך), אך ייתכו שלצומת מסויס לא יהיו צאצאים. בדומה לעצי יוחסין ולעציס הקיימיס בטבע, כל פקדי א6ו/66זד כולליס צמתיס. מאפיין 0065 של פקד וסו\66זד הוא בעצמו אוסף אובייקטיס מסוג 06סא. אס עקבת אחר הדיון במושג אוסף שהובא עד כה, הרי שלא תתקשה להבין את משמעות המשפט האחרון (אס פרט כלשהו הקשור במושג אוסף אינו ברור לך כדאי שתעיין שוב בסעיפיס שעסקו בפקד ש66ו/1150). בדומה לאוסף 1150166705 של פקד .1156/16 גס אוסף 5 של פקד 66/6₪]ד תומך במאפיינים מסוימיס ובשיטות מסוימות, שביניהן השיטה 00 אשר משמשת ליצירת אובייקט 006 חדש: 2 ,1 ,"06ס\] +65 ד" ,"ץְ6אערח" ,,ו65.00סס\. 1 בדומה לשיטות אחרות שאותן תיארנו, גם שיטה זו מחזירה הפניה אל האובייקט שיצרה וה עתה, כמתואר בקטע הקוד הבא : 6 25 06ס0\!כרח6ף וחום ("006סא 5% ד" ,"ץסאץרח" ,,)40065.00. 0/1 = 06ס\כות6ץ 56% 1 = 10806 1\006קוחס% 2 = 56!60060170806. 14006 וחס+ 3 = 060170806חהקא=. 006 רחס פקד שו0ו/766ד מאפשר להציג את העץ במבנה הניתן להרחבה ולצמצוס, כמתואר בתרשים 12.11. פרק 12: הפקדים המשותפים של א050וא - 321 <1ם) = 6פחוהּא=] אפוצ 66ז] .₪ 1.6306 ההסוזסוח ב חסופושו 351 5 בו בו 50% ₪60 5 6ווום סמו ד הסופועיוכ |8זוח6=) מסופושום ]68 תרשים 12.11: מבנה העץ הפשוט המוצג כאן נוצר על ידי שימוש בפקד ש6ו/66זד משתמשים יכולים לשנות את העצ באמצעות העכבר, תוך הרחבה וצמצוס ענפיס בהתאסם לרצונס. הבעיה העיקרית העומדת בפני מפתח המשתמש בפקד ש6ו/66זד היא הצגת הצמתיס במבנה הרצוי למשתמש והבהרת הקשרים הקיימיסם בין הצמתיס. על ידי שימוש במאפיין וַ65ופַחו5 תוכל לגרוס לכך שהעצ ירחיב ענף באופן אוטומטי בעקבות בחירה בו. הבנת מאפיין 400% בראש העצ נמצא שורש העצ (בניגוד למקובל בעציס המצוייס בטבע). השורש הע הוא צומת שממנו נובעיסם כל הצמתיס האחריס הכלולים בעץ. לכל עצ יש רק שורש אחד. העץ המוצג בתרשיס 12.11 הוא תרשיס ארגוני פשוט של חברה קטנה. הצומת המכונה 86 והבסווסוחה הוא שורש העצ, מפני שוהו הצומת הראשון שצורף לפקד 66/6 ד לכל צומת הכלול באוסף 0065 יש מאפיין ₪06 אשר מצביע על הצומת המהווה את שורש העא. אס תרצה לבדוק שכל הצמתיס הכלוליס בעץ המוצג בתרשים 12.11 אכן מצביעיס על אותו שורש תוכל לעשות זאת באמצעות קטע הקוד הבא : 6 25 06ס0\!כרח%6 וחום 5 חן 006\קרח%6 ₪86 זס= 00 006\ק רחש 6 " 15 +סס 5'" ,6 6 ד.6סס\]כרח6> לחויוק 6 %א6צ] חשוב לזכור ש-₪000 הוא צומת בפני עצמו ובכל צומת אחר בע מצויה הפניה אליו במאפיין ששמו זססא. 2 סדנת לימוד 6.0 8\ עבודה עם מאפיין ז+ְחסיובּק זה עתה ראית שלכל צומת הכלול בעץ יש הפניה לשורש העצ. אך הכרת שורש העצ אינה מספיקה להגדרת מיקוס צומת כלשהו במסגרת המבנה ההיררכי של העצ. אס תרצה לדעת את מיקומך במסגרת המבנה ההיררכי המוצג בתרשים 12.11 יידרשו לך נתוניס נוספיס בנושא למיקוס השורש. כעת אתה מוכן ללמוד על הראשון מבין כמה סוגי יחסים הקיימים במסגרת עץ, יחס הורות (קוחפחסוז6!3 %חסזבּק). בכדי שצומת מסויס יהיה הורה, נדרש שיהיו לו צאצאיס. בתרשיס 12.11 הצומת הראשון הוא ההורה של שני הצמתיס שאחריו. לשלושת צמתי חסופוטזם המוצגיס בתרשים יש הורה משותף. נניח שאתה צומת קטן ושאפתן, אשר נוקט בכל האמצעיס הדרושים לשס טיפוס במעלה הסולסם. תוכל להיעזר בקטע הקוד הבא כדי לבחון את מיקומך הנוכתי: 6 5 סססאץו וחוס ("065)"]6ס\. ₪1 = 6סס\\ץ] 56 הסח ד 0%סא.6ססאזץ! 15 סססצץוש +ז "!0055 6 סוס" אס 50 6 6% ד.)חסזהק. 6סס\ץוא ₪ " ס+ 60זסרהסזכ 06018 עד" אס08פוו + חש בדוגמה תוכל לראות שלכל צומת יש מאפיין 87601 אשר מצביע על צומת ההורה שלו. היוצא מן הכלל היחיד הוא צומת 00%ח, שמאפיין זחסזּק שלו אינו מצביע על שוס גורס אחר (במאפיין הזה מוצב הערך המיוחד פַחוחזסא). עבודה עם מאפיין ה6ז0!ו6 אס תרצה לבדוק אס צומת כלשהו הוא אב לצמתיס אחריס תוכל לבדוק מהו הערך המאוחסן במאפיין חסז0!וח6 שלו, על ידי שימוש בקטע הקוד הבא : (4006] 5 6ססווץ! |3/\ץ )66 סא עסו סד סט5 סזפּעוזוק הסחד 0 = חס6ז0!וה0.סססצוץוש + "זחס הק 3 0% זב 1" אס 50 + 0חם סט5 0חם ניתן לראות שמאפיין ח6ז0!וח6 יחזיר מספר שלס אשר מייצג את מספר הצאצאים שיש לאותו צומת. בכדי שצומת ייחשב לצאצא של צומת אחר הוא חייב להיות קשור אליו בקשר ישיר. פרק 12: הפקדים המשותפים של 050% 323 עבודה עם המאפיין !61 המאפיין חסז0!וח6 מחזיר את מספר הצאצאים שיש לאותו צומת ואילו המאפיין 0ו1ח6 מחזיר את אחד הצמתיס שהוא צאצא של הצומת (בדומה למאפייניס ₪006 ו-זחסזהּק). אך במקרה שלאותו צומת יש מספר צאצאים, מאפיין 0\וח0 שלו מחזיר רק את הצאצא הראשון שלו. מאפיין 6060 של צומת שאין לו באצאיס מכיל ערך פַחוחזסא, על-כן לא כדאי לך לנסות לבצע גישה אל מאפיין 0|וח6 של צומת שמאפיין ח6ז0!וח0 שלו מכיל את הערך 0. השאלה המתבקשת היא כיצד ניתן לגשת אל צאצאיס של צמתיס שהס אינס הצאצא הראשון של צומת האב שלהם. לכל צומת יש כמה מאפייניס אשר מקלים על יהוי האחים והאחיות שלו, כפי שניתן לראות בדוגמת הקוד הבאה: ( )ח6ז0!וח6!|בשחווק 5 6 5 סססצוץח3 וחוס 6 5 סססצווא וחוס חן 5 זססהטסחו וחוס 5 חן 66ס\ץח3 ח₪86 זס= זה 3 15 06סח 5וחז' הפחד 0 <> הסזסווה6.6ססצוץחג +[ " :זה חסזס!וח0 5'" 6 6 ד.6ססוץחה זחווק 0\וח.06ס\\ץחה = 04006א 56% 6% ך.06ס\0ו6 +חווק אס סחו. חז|טו5ז5זו=. 604006 = וססהטס6חו א6סח1. 0חוו0ו35%5 |.06ס\0|א <> וססהטסשחו 6ווח\\ 6% .סא (זס6חטס6חו)065סא. 0/1 +חחוק .אס חס חו)065ס\. ₪1 = זס%חהוס6חו סחס/צ\ + 0חם 6 ששחה +א6)] 50 0חם זכור שמאפיין 0\וח6 של צומת יכול להצביע רק על צומת אחד ואילו כל שאר הצמתיס שחולקיס את אותו אב נחשבים לצומתי %א6א או 5טסועפזפ. אך לכל הצמתים שלהס צומת אב משותף יש גס מאפייני פַחוופו5פל5זו= וכן פַחו|פו0565 1. הערה: עבודה עם אובייקט 66סא עלולה להיות מלווה בקשיים מסוימים. הדרך הטובה ביותר ללמוד לעבוד עם אובייקטים אלה היא על ידי עיון בקוד קיים המשמש לביצוע פעולות על אובייקט 006\. אם כבר יש לך הבנה מספיקה של מושגים הקשורים במבנים היררכיים, תוכל להיעזר בעזרה המקוונת של 885166 |1508/\. אני ממליץ לתרגל את השימוש בפקד 6ו/66זד. 4 סדנת לימוד 6.0 8\ אס תרצה ללמוד עוד על פקד ש6ו/66 המשך לקרוא פרק זה. סעיף גה התמקד בטיפול באובייקט 006 שכבר כלול בפקד 6₪ו/66זד. בסעיף הבא תלמד ותתרגל הוספת אובייקט ₪006 חדש לפקד, כחלק מפרויקט לדוגמה. פקד קוול5טבּד פקד קו5פ9ד אשר מוצג בתרשיס 12.12 הוא פקד שימושי מאוד הכלול באוסף הפקדיס המשותפים של פאוססחו/\. הוא מאפשר לחלק את הטופס מבחינה חזותית למספר כרטיסיות. פקד 905₪10ד המוצג בתרשים מוצג כחלק מפרויקט הדוגמה שניצור במהלך סעיף זה. בפרויקט דוגמה זה נשתמש בפקד קוש5פג9ד לשם מעבר בין שתי רשימות. הרשימות שתוצגנה תהיינה רשימות של קבוצות כדור בסיס בשתי הליגות המקצועניות בארצות הברית שתוצגנה במסגרת פקדי שו6ו/66זד. פקד 3905₪10ד יאפשר לך לבחור את הליגה ולהציג את רשימת הקבוצות המשחקות בה. התחלת פרויקט הדוגמה התחל את פרויקט 66180זד על ידי יצירת פרויקט חדש מסוג םא 0870ח558. לאחר מכן בצע את הפעולות הבאות: 1. הוסף לטופס הפרויקט פקד טוש5פבד והגדר עבורו שס קצר אך בעל משמעות כגון חו5513. 2 הוסף לקובץ פקד ש6ו/66וד והגדר את שמו 1שש. כעת תהיה מוכן להתחיל בהגדרת מאפייני הפקדיס פקד קופד וז 50% ₪80 58 פוגוום פזסטוך הסופושיוכ |8זוח6=) פחבוסח| 50 פוות/\ פחו ך ו 5 הסופועוק ]65 סטב וזב ] 8וזסווום בי הכרטיסיה הנבחרת פקד 6ו/66זודך תרשים 12.12: פרויקט הדוגמה ייעזר בפקדי קו8905ד |-א6ו/66זד פרק 12: הפקדים המשותפים של 050% 325 אזהרה: הפקד קו3050ד אינו פקד מכולה (|סשחס6 ז8חו9זחס6). כך שפקדים שישורטטו בתחומו לא יקבלו באופן אוטומטי את הגדרות המאפיינים 1510!6/, חַ6|פַַח5, קסד ו-16% שלו כפי שהיה קורה למשל עם פקדים שהיו משורטטים במסגרת פקד 6חה". לחיצה על פקד סופד מביאה אותו לחזית התצוגה תוך הסתרת הפקדים המשורטטים עליו. אם תרצה לשנות את מבנה התצוגה של פקדים שישורטטו במסגרת פקד מוַ35ד, כדאי שתקדיש תשומת לב לשיטה ז20708 של פקד מופטגּד ושל פקדים אחרים העשויים להיות מושפעים משינוי סדר התצוגה. בעת שתעבוד במצב עיצוב ייתכן שיהיה עליך ללחוץ לחיצה ימנית על פקד קוַ5פגּד ולבחור את הפקודה 886% סד 0ח56. הגדרת פקד קוז54טב3ּד הצעד הבא בתהליך יצירת הפרויקט הוא יצירת הכרטיסיות שתיכללנה בפקד 805%0ד. משוס שתידרש להציג את רשימות הקבוצות בשתי ליגות, תידרשנה שתי כרטיסיות. הגדר את פקד סו5ט8ד על ידי ביצוע הפעולות המפורטות להלן: 1. לחצ לחיצה ימנית על הפקד חו5%13פ כדי להציג את התפריט המקוצר. 2 בחר מהתפריט את הפקודה ₪65ז6קסזפ (הפקודה התחתונה בתפריט), כדי להציג את תיבת הדו-שיח 3465 ץזוסטסיוש של הפקד חוגו5%ז. 3 לת על הכרטיסיה 1895 והקלד 163406 חהּ6ווסוחה במאפיין הסוזקְ63. 4. לח על לחצן פַבּד 1561 כדי להוסיף כרטיסיה לפקד. 5 הקלד 168006 והּחסוחְבּא בתיבת הטקסט ח0וק63. 6. לת על לחצן 0 הכיתוביס שהגדרת יוצגו במסגרת פקד סוש5טפּד. הגדרת פקד עש6ו/66יוד כפי שעשית בעת העבודה על פרויקט 6₪ו/115% גס כעת תידרש להגדיר את פקד שו6ו/\66זד על ידי שימוש בקוד לצורך צירוף אובייקטיס לאוסף. תיעזר בפקד שו6ו/6זדך לצורך הצגת המבנה ההיררכי של הליגה שאותה תבחר להציג. בכל אחת מהליגות יש שלושה בתיס: 85ם, 65%/\ ו-|08ח66. הבתיס כוללים חמש קבוצות, חמש קבוצות וארבע קבוצות, בהתאמה. תוכל לנצל את המבנה האחיד של הליגות לתועלתך בכך שתאחסן את הנתוניס של הקבוצות בשני קבצי טקסט, דא7.ם(5460 41 ו- דאד.605ם וא שכל אחד מהס יכיל את שמות 14 הקבוצות שבאותה ליגה. את הקבציס תוכל ליצור בעזרת פנקס הרשימות (%6080ס\) של פאוססחו/\ או על ידי שימוש בכל עורך טקסט אחר שבו תעדיף להשתמש. צור את השגרות המוצגות בתוכנית 12.13, אשר תוספנה את הנתוניס המאוחסנים בקבצי הטקסט לפקד צוסו/66זד. 6 סדנת לימוד 6.0 8\ [<) 5% ע וזסקטז | וטוט | חס | 5 |68חס₪ | שב 1 ₪איסוחס. | טב ד 6פמ! [*|4+. | ]| סח שמ רו ו ה ₪ = ארון 7 [ ו )| ו ו ----->: זפ סד 0 :| תרשים 12.13: על ידי שימוש בתיבת הדו-שיח 28065 וקסוק (שהיא עצמה מבוססת על פקד קְַה5₪פַגד) תוכל להוסיף בקלות כרטיסיות לפקד קושפס3ד |<וםן. יווהו || |[< ]ב אשיי 6 59800 08 106 50800 א0ם 6 5ב 5 אס50 60א 5 6>ט81 5 5 35 5וסח 1"ובּון 15 5 תרשים 12.14: בתוכנית הדוגמה פקד ו6ו/66זד מלא בפריטי מידע שנקראים משני קבצי ו [ ו טקסט, כמתואר בתרשים תוכנית 12.3: 82/.שו6ו66זד שימוש בשיגרה 696 ַץְ3!ספוש לטעינת נתונים נבחרים אל תוך פקד 6ו/66זוד (0חוז50 5 69006 6306)51 \ץ8וספוש טטפ סווטגוק 6 5 4006]כרת6+ וחוכ 5 זססהטס6ח חחוס 5090 5 קוחם 51 וחוס 1 5 6 6 00 (68006 51 ,"א" ,,)1.140065.00/ = 006וקוח0) 56% פרק 12: הפקדים המשותפים של א050שווא - 327 פחסופוטוכ 06 00 ("חסופוטו זפהם" ,"=" ,0!ות)עעעס ," ")0 .1.0065 = 06ס\קותחס: 56% ("חסופוטו |₪3ח06" ,"6" ,0!והעעעס ,")65.00 1.0 = 06ס\קותס 56% ("חסופוטוכ 65%//" , "ץע" ,0!ותעעעס ," ".1.065 = 06סקותחס: 56% 5 63 רחוש 6! )%6% 606 הסכס' חס ד "6306 | |החסספּ\]" = 69006 |5 זז 1 5 זטסח1 זס " דאד.ם = וא\\" ,8 הזהק. סכה הססס 6 1 5 זטסח1 זס-] "דאד.605 |\" .8 הסבק. סכה הססס 0 5 ]₪5 5 שו 00 5 סד 1 = זסזחטס00ח זס= קוח6 51 ,21 זטסח1 6חו | (קוחס 51 ,זססהט0ס6ח .8 "=" ,0!והסעט ,"=" )1.05.00 = 06סאקוחסז 56 הסח זאסו 6 זוופח=. 1\006ק + 5 | דך\605 5 6 00 5 סד 1 = זסזחטס6ח זס= קוח6 51 ,21 זטסח1 6חו | (קוח6 51 ,זססחטס6ח :8 "6" ,העט ,")1.05.00 = 6ססאקוחסז 56 הסח זאו 6ן5ו ווח .1\006ק רתס 5 [5ם/\ 4 06 00 4 0 1 = זסזחטס60ח זס= קוח6 51 ,21 זטסח1 6חו | (קוחס 51 ,זססהטס6ח .8 "/\" , סווה)עטעס ,")1.65.00 = 6סס\קוחסל 56 הסח זאסצ 6ו/זטפח=. 006 רחס 6 6טסח1 6חז 056ו6' 1 0|056 6 0960 6חש 56% 6665 זאו = 1.506 6ו או פע = 50/6זסזסט. ₪1 סז חס |סשחס6 שוסן/66ך 6 ז56' 0 1.2070 50 6ח= 8 סדנת לימוד 6.0 8\ שיס לב שקטעי קוד אלה מגדיריס את הקשריסם שיתקיימו במסגרת פקד 6₪ו/6פזך בעת הוספת אובייקט 06סא. הפרמטר הראשון של השיטה 00 הוא מציין של צומת שהוא קרוב משפחהיי של הצומת שקרא לשיטה, ואילו הפרמטר השני מציין את קרבת המשפחה שקיימת בין הצומת שקרא לשיטה לבין הצומת שנוסף על ידי השיטה. הקבוע 6!וח6או) מציין שהצומת החדש הוא צאצא של הצומת שקרא לשיטה. ביצוע פעולות במסגרת התוכנית כעת נשוב ונעסוק בפקד קושפפגּד ונגדיר את שגרת 1080 של הטופס. סביר להניח כי תרצה שכאשר הטופס יוצג לראשונה יהיה בו מידע כלשהו, על כן תבצע קריאה לשיגרה 69006 |שְ8!ספום כדי להציג את רשימת הקבוצות שב- 168006 חפסווסחה. אך הלחיצה על פקד קו5ט3ד לא תשפיע על פקד 6₪ו/66זד מפני שטרס הוספת את הקוד הדרוש לשגרת האירוע 0166 של פקד סו5טּד. קטע הקוד המוצג בתוכנית 12.4 קורא לשיגרה 63006 8/1|ספום תוך העברת שס הליגה הרצויה כפרמטר השיגרה. תוכנית 12.4: ק8/שו6וע6זד - עבודה עם האירועים 1080 ו-א6ו|6 ()1.080 חחזזס= 50 6זבּעוזק 0 6 01 קסף חס עסו 66 606 זטק' 0 ז1.20706/ס 6זו0סססזס זטס ||68' "686 | הה6וזסוח" 6006 וץהוספוס 5 0חם ()66ו01 חן%5!8 5 סזבּעוזוק זז 5 קוח דה וחוס א סח ר56!60000660. חו58+ = קוח6 דה חס ה0. (קרח6 )305 ך. חו%518 68006 וץהוספוס סט 0ח= [<1ם) = | 6|פחוהּא = אסול ₪66 | 606 | !131 = 53006 1 הסחסוח ה 6306 ] |החסווב 4] חסופוא 851 בן: 5 וז בב 5 מסופואום חס 5 8 5 בי יי ו הסופושו סע = בי תרשים 12.15: בלחיצה על כרטיסיה, יישום הדוגמה מציג רשימת קבוצות כדור בסיס פרק 12: הפקדים המשותפים של 050% 329 השיגרה 68906 150181 היא לב הפרויקט. שיגרה זו יוצרת תחילה צמתיס שמכיליס את שמות הבתיס שבכל ליגה : ("חסופוטוק 85%ם" ,"=" ,0!והסעוט ,"5" 065.00ס\. 1 = 06ס\ חס 56% הקבוע 6!וח6שעז מורה ליישוס שהצומת החדש שייווצר יהיה צבאצא של הצומת ייח 'י. לאחר מכן מוסיפיס לכל בית מספר צמתים של קבוצות : (קחח6 51 ,הסח .8 "=" , הוה)ע ,")65.0 סא ₪1 = 6006 56% הארגומנט הראשון של השיטה 4800 הוא יישיי כלומר ערך המפתח הייחודי של הבית המזרחי של הליגה. המפתח הזה מאפשר לצומת 'י1פיי (הצומת המייצג את קבוצת 5 ) לדעת שהוא צאצא של הצומת שמייצג את הבית המזרתי. כעת תורה לצומת של הבית ולכל הצאצאיס שלו להשתמש באופן התצוגה המורחב (אובייקטי ₪006 הכלולים בפקד 6ו/66זד יכוליס להיות מוצגיס כשהס מורתחבים או כשהס מצומצמים), על ידי שימוש בשורת הקוד הבאה: זט פחם. 6 ססצוץו (לחילופין ניתן גס להציב ערך 6טד במאפיין 5080660 של כל אחד מהצמתיס המייצג בית בליגה). הנושא האחרון לו נידרש להקדיש תשומת לב הוא האופן בו פקד קושפטפּד מודיע שבוצעה לחיצה על אחד מאובייקטי 06סא הכלוליס בו. פקד קושפטפ9ד מכיל מערך אובייקטי פד (כרטיסיות). כך שכאשר אתה לוח על כרטיסיה אתה למעשה בוחר כרטיסיה, באופן דומה לבחירת פריט 06%118%ח1 בעת שימוש בפקד א115%80. הידע הוה יאפשר לך להבין טוב יותר מדוע שורת הקוד המוצגת להלן משמשת לזיהוי הכרטיסיה שעליה לח המשתמש: 10 רה56!60000. חו58+ = קוח6 דה בדוגמה הזו אחזרת את ערך האינדקס של הכרטיסיה שעליה לח המשתמש ואחסנת אותו במשתנה קוח6דח. קבלת קלט מהמשתמש מספר פקדים משותפים של פוספחו/\ מציעיס דרכיס שונות לקבלת קלט מהמשתמש. לדוגמה, השימוש בלוח שנה להזנת תאריכים אינה הכרחית, אך היא תעניק לתוכנית שלך חזות מקצועית. אחד היתרונות החשוביסם של הפקדים המשותפים של 6 |אטפו/\ הוא שהס מאפשרים לך ליצור במהירות תוכניות בעלות חזות מרשימה, על ידי שימוש באובייקטים קיימיס. בסעיף זה נתייחס לפקדיס הבאים: + 00ו1₪80660₪ - תיבה משולבת גרפית. + ששו/ הסוא - פקד לוח שנה. 0 סדנת לימוד 6.0 8\ %, + זסא6וקדס - תיבה משולבת לבחירת תאריכים. + חשספקט - משמש להעשרה של טיפול בקלט מספרי. + 5160 - משמש להזנה של מספרים באופן גרפי. פקד סטו0660בּוחוז פקד 1806607000 הוא אחד הפקדיס החדשים בגירסה 6 של 8856 |1508\. תפקידו דומה לזה של 000080%ח60 שתואר בפרק 4. אך פקד 1088660000 מאפשר לשלב תמונות לצד כל אחד מהפריטים המוצגיס במסגרת הרשימה הנפתחת של התיבה המשולבת, כפי שניתן לראות בתרשיס 12.16. 0 ₪ 6 27 וזגוב) חח 6 תרשים 12.16: מראה פקד 000 660ף8ח1 מרשים יותר ממראה פקד אספסטוח 60 רגיל הערה: הבדל נוסף הקיים בין הפקדים הוא העובדה שפקד סטחסס6סְפָח1 תומך רק בסגנון תצוגה אחד, סגנון הרשימה הנפתחת ואילו פקד אס8ספוחס6 מציע כמה סגנונות תצוגה. הגדרת פקד 00ו660₪פבּווו1 בדומה לפקדים משותפים אחרים של פווסטחו/\ גס פקד 108066000 משתמש בפקד לאחסון התמונות שתוצגנה במסגרת התיבה המשולבת. לכל פריט הכלול באוסף 05ח607020106 של התיבה המשולבת יש שתי תמונות שניתן להגדיר עבורס אינדקסים : + סחָ108 - הצב במאפיין את אינדקס התמונה הרצויה להצגה משמאל לפריט. + 56/1806 - זהו מאפיין אופציונלי. אס תציב בו ערך התמונה שתוצג לצד הפריט תשתנה בעקבות בחירה או עקב העברה של מצביע העכבר עליה. אס לא תציב ערך במאפיין, הפקד ישתמש בתמונה המוגדרת במאפיין 6סְ8חח1. פרק 12: הפקדים המשותפים של א050וא - 331 כדי ללמוד כיצד לקיים אינטראקציה עס פקד 180660000 בצע את הפעולות הבאות: 1 2 התחל פרויקט חדש מסוג 5 50800870 והוסף לו פקד 461.15%ַבּ1. הגדר את גודל התמונות שתוצגנה במסגרת הפקד ל-16א16% והוסף לפקד שתי תמונות. הוסף לטופס פקד 1806607000 והוסף את שורות הקוד הבאות לשגרת אירוע 60 של הטופס : 11 = 15% 1806 1 סט 0660 וח 2 ,1 "6סו" ,,165.00 טר 00. 1 טר סח 1,2 "ץזוב |" ,,01065.00רח 00. 1 סט סח 1,2 "ץז" ,,1065.00 סרח 00. 1 סט סח 2 ,1 "506" ,065.00 00. 1 סט סח 2 ,1 "06נ" ,,1065.00 0 00. 1 סט סח שיס לב לכך שפקודות 800 משתמשות באותס ערכי אינדקס עבור מאפייני 16 ו-56|10806 של כל הפריטיס. הפעל את התוכנית והעבר את מצביע העכבר על גבי כל אחד מהפריטיסם המוצגיס ברשימה. כאשר תאיר פריט מסויס התמונה המוצגת לצדו תשתנה. בנוסף לכך, אס תבחר את הפריט, תוצג לצדו התמונה שעליה מצביע מאפיין 56/16 של הפריט, כמתואר בתרשיס 12.17. <1ם) - | 0% ספחוט:) 6ההּחו! .% <1ם) - | 0 ספחוס:) 6ההּחו! .= ּ: ל 6 תרשים 12.17: ניתן להשתמש במאפיין 58/1006 לצורך הבדלה בין פריטים מוארים ונבחרים לבין פריטים רגילים 2 סדנת לימוד 6.0 8\ עבודה עם הפריט הנבחר כל פריט המוצג בפקד סטחִַס66ְמָ13 כלול באוסף 60066005 של הפקד. אס תרצה לוהות האס המשתמש בחר פריטיס כלשהם, בדוק האס מאפיין הח5!6000010 של הפקד מכיל הפניות אל פריטיס כלשהם, על ידי שימוש בקטע הקוד הבא : חס ד פחורטס\ 15 ה0ש56!600601. 1 סט 0660 חז זז |[ פו הז0ס1 סא ' 6 56600 1 טר 16 .8 " :56166060 וס" אס ספ + חש הערה: ניתן גם לבחור פריטים מקוד על ידי הצבת ערך 6טוד במאפיין 58!6060 של הפריט, כמו בדוגמה הבאה: 6 = 56160060. (1 )1065 סרח 00. 1 סטר סרח מדוע יש צורך לבדוק את מאפיין ח56!60000106 כדי לראות האס הוא מכיל ערך 8חוחזס\\! סביר להניח שכור לך שבעת שימוש בפקד א6070080 משתמשים יכוליס לא רק לבחור פריטיס מרשימת הפריטים של הפקד, אלא יכוליס גם להקליד טקסט בשורת הטקסט של הפקד. גם פקד 1030600000 תומך באופן פעולה זה. נסיון להקליד בשורת הקלט טקסט שאינו מייצג פריט, יגרוס לשגיאה. הערה: אתה יכול לאלץ את המשתמשים לבחור את אחד הפריטים שיוצגו ברשימת הפריטים של הפקד, על ידי כך שתגדיר את מאפיין 106%60 של הפקד לערך פטוד. הגדרה כזו תנטרל את היכולת להזין טקסט במסגרת הפקד. סידור פריטים בתיבה המשולבת פקד סטַחִַס66ְאָ103 גס מאפשר להגדיר רמת הזחה (ח%900ח06ח1) שונה עבור כל פריט הכלול באוסף 05ח6ש600001 שלו. על ידי כך שתגדיר אינדקסיס עבור פריטים שוניס תוכל להעניק למשתמשי הפקד שלך תחושה של סדר וארגון. להגדרת רמת ההזחה של פריט הצב במאפיין ח%800ח06ח1 שלו ערך שלס כלשהו. את המאפיין ניתן להגדיר גם על ידי הכללת פרמטר אופציונלי נוסף במסגרת הקריאה לשיטה 400, כמתואר בדוגמה הבאה: 1 ,1 ,"ססר" , "שץסאץרח" 5.00רח166סטרס6. חוהזס6 כל רמת הזחה מייצגת 10 פיקסלים. בתרשים 12.18 מוצג פקד 1086600000 פשוט שבמסגרת הגדרתו נעשה שימוש במאפיין ח8000זח06ח1. פרק 12: הפקדים המשותפים של א050וא - 333 |<11] - | 80% סטחוס:) 6הבּחו! .₪ ז | וו יריו תרשים 12.18: ניתן להסתייע במאפיין ח0800ח06ח1 לצורך ארגון פקד 130660000 5 בתקליטור: " דוגמה מלאה לפקד 1080660080 תמצא בתקליטור בפרק 12 בתיקיה 0 360 ח]. פקד העוספקש פקד חאוססק הוא פקד משותף נוסף אשר משמש לקבלת קלט מהמשתמש. אך פקד וה הוא מיוחד משוס שאינו מיועד לשימוש בפני עצמו. במקוס ואת הוא פועל בשילוב עס פקד המהווה עבורו יבן-זוגיי. פקד חאוססקט מהווה אמצעי המקל על שינוי הערכיס המספרייס המאותחסניס במסגרת הפקד האחר. לדוגמה, אס כלולה בטופס שלך תיבת טקסט שאמורה להכיל ערך מספרי, תוכל לקשר אותה אל פקד חאוססקטש כדי לאפשר למשתמשים לעבור על פני מספריס מבלי להידרש להקליד אותם. תרשים 12.19: פקד חשססק מאפשר למשתמשים להתאים ערכים לצרכיהם 4 סדנת לימוד 6.0 8\ הגדרת פקד העשוספקט בצע את הפעולות הבאות כדי להגדיר פקד חצוסספט: 1 שרטט על הטופס פקד שיכול להכיל ערכים מספריים, כגון פקד א80)א6ד. 2 שרטט על הטופס פקד חעשספקש. 33 הצב את שמו של הפקד שישמש להצגת הערכים במאפיין וסאַח60ץ₪00 של פקד חאוססק. הגדר את המאפיין על ידי הקלדת שס הפקד (לדוגמה 16%01) או על ידי שימוש במאפיין ץ00ט8סזט. 4 הגדר את מאפיין שזסקסזקץ00טם של פקד חאוססקט כ6/31כ. הצבת ערך זה במאפיין תגרוס לפקד חשססקש לעדכן את מאפיין ברירת המחדל של פקד ץ8000 שלו (למשל, מאפיין ברירת המחדל של פקד א680ד הוא 16%). תוכל גס להשתמש בפקד לשסם עדכון מאפייניס אחרים, כל עוד אלה יהיו מאפייניס המאפשריס אחסון ערכים מספריים. לאחר שתסייםס להגדיר את פקד חוססקש תוכל להגדיר מאפיינים נוספים שיגדירו את חזות הפקד ואת אופן פעולתו. שני המאפייניס שיאפשרו להגדיר את חזות הפקד הס: + \חסוחתףו|ה - קובע האס פקד חצוססס!\ יוצג מימין לפקד ץ00ט8 או משמאלו. ** חסחסח6וז0 - קובע האס הלחצניס של הפקד יוצגו אופקית או אנכית. תוצאות השימוש במאפייניס זחסוח8ו|ה ו-חסטפסחסוזס מוצגות בתרשיס 12.20. תרשים 12.20: ניתן להציב את פקד חצוססק\ בכמה פריסות שונות ניתן לומר שהמאפיינים המגדיריס את אופן פעולת הפקד הם חשובים יותר עבור מפתחים. מאפייניס אלה הס : + \חסוחשזסח1 - קובע שיעור שינוי בערך המספרי שיתרחש בעקבות לחיצה על לחצן. ,% + א8 - מגדיר את הערך המקסימלי שהפקד יכול להכיל. + חוא - מגדיר את הערך המינימלי שהפקד יכול לחכיל. פרק 12: הפקדים המשותפים של א050ווא - 335 %, > ץ68000חץ5 - גורס לפקד חשססקט לעדכן את פקד 80060 שלו. ייתכן שתרצה להציב ערך 8156" במאפייןו אס אתה משתמש בפקד חווססק מבלי לקשר אותו לפקד. דוגמה לשימוש בפקד חווססכ\ ללא קישור לפקד אחר הוא לצורך מעבר בין עמודי מסמך. + ספזו\ - קובע האס לאחר לחיצה על לחצן ההגדלה כאשר בפקד מוצג הערך המקסימלי, יוצג בו הערך המינימלי (ולהפך). עבודה עם ערכים ואירועים בעת עבודה עס פקד חשוססט תוכל לוהות מהו המספר שנבחר על ידי המשתמש באחד משני אופניס: על ידי אחזור הערך המאוחסן במאפיין 6ט|3\ של פקד חשוססקש, או במאפיין המתאיס של פקד 8000 שלו. ברוב המקריס אין משמעות באיזה מבין שני הערכיס האלה תבחר להשתמש. אך במקריס בהס מתאפשר למשתמשים לאחסן בפקד ץ8000 ערכיס התורגיס מהתחוס שהוגדר עבור פקד חווססקש, תוכל להיעזר רק במאפיין המתאיס של פקד שץ8000. ג אזהרה: חשוב שתזכור שמאפיין ץְ68000חץ5 שתואר קודם לכן מעדכן את פקד 8000 בערכים המוצבים בו, אך לא להפך. כלומר שאם נתייחס לרגע לדוגמאות שהוצגו בתרשימים, אם משתמש יזין ערך באחת מתיבות הטקסט, מאפיין 6טוג\ של פקד חצוסס לא יתעדכן. דרך אפשרית לפתרון הבעיה היא על ידי עדכון של מאפיין 6ט!3\ של תיבת הטקסט במסגרת אירוע 608006 של פקד שְ00ש8 שלו. בנוסף לאירועים ה'ירגיליסיי שמוגדריס עבור רוב הפקדים, פקד חווססק תומך גם בשלושה אירועים נוספיס העשויים לעניין אותך: ** 6086 - מתרחש בכל פעס שבה משתנה הגדרת המאפיין 6טו8/\ של הפקד. + אסו|0חצשסכ - מתרחש כאשר המשתמש לוחצ על החצ למטה של הפקד. + 06ו|00 - מתרחש כאשר המשתמש לוחצ על החץ למעלה של הפקד. עבודה עם תאריכים ב- 6.0 88516 |1808/\ נוספו לקבוצת הפקדיס המשותפיםס השנייה (הפריט 0פ5סזסוו₪ו 0 00170!5-2 חסוהוה0ס6 פאוססחו/\ בתיבת הדו-שיח 66חסחסקוח60) שני פקדים אשר מקלים מאוד על הזנת נתוני תאריך, פקד שסושתשחסוז ופקד זסאסוק דס. פקד שסו/חשחסוו שמוצג בתרשים 12.21 הוא פקד לוח שנה רב-גוני אשר מאפשר למשתמשים לבחור תאריכים באמצעות תצוגה חזותית במקוס להקליד אותם. 6 סדנת לימוד 6.0 8\ שינוי חזות פקד ‏ שסו/חושחסוא תרשים 12.21 מציג את מראה ברירת המחדל של פקד שסושושחסו!. אך לפקד יש כמה מאפייניס שתוכל להגדיר אותס כדי לשנות דבריס בחזותו או באופן פעולתו. חלק ממאפייניס אלה מפורטים בטבלאות 12.2 ו-12.3 מציין תאריך נבחר 3 22 2 20 19 8ו 17 90 28 28 27 26 25 24 6 - 4-5 3 2 ורר3 9 + ץד = | *---------- מציין תאריך היום תרשים 12.21: פקד שסוצוזחסו! מאפשר למשתמשים לבחור ערכי תאריכים על ידי הצגת לוח שנה במקום על ידי הקלדה טבלה 12.2: מאפיינים המגדירים את חזות פקד שוסוצחשחסוז שם המאפיין ערך ברירת תיאור מחדל ץ08ס דאוסח5 כן/לא תוצג בתחתית הפקד שורה עם תאריך היום 55 כן/לא יוצג טור שבו יפורטו מספרי השבועות 6 1 | מגדיר כמה חודשים אחורה/קדימה התצוגה תעבור בעקבות הגלילה. גם אם במאפיין יוצב ערך הגדול מ-1 אפשר יהיה לעבור חודש אחר חודש על ידי לחיצה על התאריכים המוצגים בפינות הפקד ( )0!ספעְהכ 6 | קובע האם תאריך יוצג בכתב מודגש. מועיל להבלטת תאריכים מסויימים, כגון חגים. כדי להיעזר במאפיין זה תידרש לציין תאריך בקריאה למאפיין, כבדוגמה הבאה: 6טזך = (7/4/1998%א )0!סם עבּ. 1אוסו/\חשחסוז פקד שאסו/\חזחסו! מאפשר להגדיר גס צבעיס שוניסם שבהס יוצגו הקטעים השוניס הכלולים בו. פרק 12: הפקדים המשותפים של א50סשווא - 337 טבלה 12.3: מאפייני הצבע של פקד שוסו/חזחסו₪ז זס|660זס- | קובע את צבע הימים והקו האופקי שמתחת לתווית השבועות זסו600זס= ףחוד | קובע את הצבע בו יוצגו הימים שאינם כלולים בחודש המוצג כעת אך נראים על המסך (הימים האחרונים של החודש הקודם והימים הראשונים של החודש הבא). הימים הראשונים של החודש הבא מוצגים לרוב כשטח ריק בסוף תצוגת החודש זס|ס6א886 ה | מגדיר את צבע הרקע של ימי החודש. לא רקע כותרת הפקד זס|60א06886וד | מגדיר את הצבע בו ייצבע הרקע של אזור הכותרת זס|660זס6וד | מגדיר צבע טקסט שלה כיתוב הכותרת והתאריך הנבחר הצגת מספר חודשים בבת אחת אס תרצה להציג יותר מחודש אחד ברגע נתון במסגרת פקד שוסו/\חזחסוז, תוכל לעשות זאת על ידי הגדרת המאפיינים 5שסמושחסו ו-500/5חזחסו\. לדוגמה, בתרשים 12.22 ניתן לראות פקד וסו/ושחסוא, שעבורו הוצב הערך 2 בשני המאפייניס, מצב אשר גורס לפקד להיות מוצג במבנה רשת. 12 3 19 0 26 7 -: 39 תרשים 12.22: פקד שוסו/חזחסויז אינו מוגבל להצגת חודש אחד ברגע נתון י אזהרה: לא ניתן להציג יותר מ-12 חודשים במסגרת פקד אסו/חזחסוז ברגע נתון. אם תנסה לעשות כן ייגרם מצב שגיאה. 8 סדנת לימוד 6.0 8\ כדי לאפשר יותר גמישות תוכל להגדיר את המאפיינים 5!ס60חסחס!! ו-5\וסמושחסוא בצמן ריצה, כדי לאפשר למשתמשים להגדיר את מספר החודשים הרצוי להס באופן דינמי. משתמש אינו יכול לשנות את קנה המידה של תצוגת הפקד בזמן ריצה. כלומר הרשת בגודל 2א2 מוצגת תמיד בגודל קבוע. אס תשנה את גודל הרשת בזמן ריצה, גודל הפקד ישתנה כדי להתאים לגודל החדש. לכן כדאי לדעת גודל רצוי לפני הפעלת התוכנית. למרבה המצל פקד שפו/חשחסו] תומך בשיטה ₪015226ח660פטקות 60 המחזירה את גודל הפקד שמכיל מספר נתון של שורות וטוריס, כבדוגמה הבאה: 56 5 00%ו6רו8ח5 ,16ַחו5 5 הססו/\פח5 וחוס חפ ,506 ,2 ,4 ,26ו5!סיחהס66סטוקרתסס. 1 ששוח הס 5 ,הו ח5 .8 " :5הסופת6רחו |סשחהסס עעסאז" זחוזוק. פטססס הערה: המספר המוחזר על ידי השיטה 0!526ח660פטקוח0ס6 נתון ביחידות המוגדרות במאפיין 563|81006 של הטופס (שהגדרת ברירת המחדל שלו היא 5מוצוד). קטע הקוד שהוצג כלל קריאה לשיטה 0!5226י66000זטקוח60 לשס קביעת גודל פקד שוסושוזחסוא בגודל 2א4. הערכיס שמוחזריםס באמצעות פרמטרים מוצביס במשתניס 5 ו-0%ו86ח5. עבודה עם ערכים עד כה למדת כיצד לשלוט בתצוגת פקד שסו/ושחסוא. אך כדי לבצע דברים מועילים עס פקד שוסו/ושחסו! דרושה דרך שתאפשר לוהות את התאריך ולהגדיר את התאריך העדכני. המאפיין העיקרי שבו תוכל להיעור כדי להחזיר את התאריך העדכני וכדי להגדיר את התאריך העדכני הוא מאפיין 6ט|8/\, כבדוגמה הבאה: %+201/03/1943 = 6ט|8/. 1/שסו/\ח>חסוז "ווק 2:34:00 6="7/19/75ט]8/. 1/שסו/\ת>חסון צוס=6טבּ/\. 1 /שסו/\ )חס סט /\. 1 סוחס .6 " 15 0816 56166060 סד" זחוזק. פטסטס הערה: תוכל להגדיר את טווח התאריכים החוקיים של פקד שסוצושחסוא על ידי הגדרת המאפיינים 6זהסחו1! ו-6זהסאג! של הפקד. המאפיין 6ט|8\ תמיד מכיל ערך מסוג 806 (תאריך), אך לפקד יש מספר מאפיינים נוספים אשר מייצגים רכיבים שונים של ערכו העדכני: > ותחסו - החודש הנבחר בשנה (המאפיין יכול להכיל ערכים שבין 1 ל -12). * עֶ - היוס הנבחר בחודש (המאפיין יכול להכיל ערכיס שבין 1 ל -31). + ]60 - השנה הנבחרת (לדוגמה 1998). + 666/\ - השבוע הנבחר בשנה (המאפיין יכול להכיל ערכים שבין 1 ל-52). פרק 12: הפקדים המשותפים של א50סווא - 339 הערכיס המאוחסנים במאפייניס שפורטו לעיל מתעדכנים באופן אוטומטי לאחר כל שינוי בערכו של מאפיין 6טו8/\ ולהפך. ניתן להציב במאפייניס האלה ערכים מספרייס שלמים ולעבוד עס הערכים הרצויים לך. מאפיין 6ט|3\ של הפקד אומנס יכול להכיל רק ערך אחד ברגע נתון, אך לפקד יש כמה מאפייניס נוספיס שאותם ניתן להגדיר באופנים שיאפשרו למשתמשים לעבוד עס כמה ימיס רצופיס. ההצבה של ערך שטזד במאפיין 056!666!טא תאפשר למשתמשים ללחוצ על תאריך מסויס ולבחור תחוס תאריכים, כמתואר בתרשיס 12.23. אם תגדיר את מאפיין ‏ ₪56|60ו₪ לערך שטזד תידרש להציב ערכים במאפייניס + ו-0ח56!5 כדי להגדיר את תחוס התאריכים הרצוי לך. [<]ה]- | גי יו 2 3 4 5 6 3 2ו וו מ1 0 פו 18 17 16 7 2 25 24 23 145 2 (2 28 89 959 תרשים 12.23: מאפיין ז856!60!טוי! מאפשר לבחור תחום תאריכים פקד ז6א6וק דפ פקד ז6א6וק דכ (ז6א6וק 6חוד 6ז8) משלב בין תצוגת לוח השנה של פקד אסו/\חשחסוז לבין יכולת להזנת תאריכים על ידי הקלדה. פקד זה מאפשר למשתמשים אשר יודעים את התאריך המדויק להזין אותו בקלות ובאותה עת מציע תצוגת לוח-שנה למי שזקוק לה. פקד ז6א6וק ד נראה כמו תיבה משולבת, אך כאשר לוחצים על הרשימה הנפתחת מוצג פקד שסו/וסחס₪. |< |ם])=. בחוזס] ₪ | 1.33 -| ינואר 1999 תרשים 12.24: פקד זסא6וקדס מאפשר הזנת תאריכים באופן גרפי ובאופן טקסטואלי 593 + ץע ד כ 6 0 סדנת לימוד 6.0 8\ הרבה ממאפייני פקד אופושחזחס!\ מוצעיס גס במסגרת פקד זסאסופדס. אך בשונה מפקד צוסו/\ה+חס!י!, פקד זסאסוק דכ אזינו יכול להציג יותר מחודש אחד ברגע נתון. עקב העובדה שפקד ז6א6וקדס מאפשר הזנה ידנית של תאריכים, מוגדריס עבורו מספר פרמטרים המשמשים לעיצוב הקלט. תוכל להציב במאפיין )חזס] של הפקד את הערכיםס המפורטיסם להלן: + 0001008086 - 0 - מציג את התאריך במבנה ארוך, בהתאס להגדרות הפעילות בלוח הבקרה. * 00806ה0005 - 1 - ברירת המחדל. מציג את התאריך במבנה קצר בהתאם להגדרות הפעילות של לוח הבקרה, לרוב צץ//ו. + 6חו0)0 - 2 - מציג את קטע השעה של הזמן העדכני בלבד. כאשר הגדרה זו פעילה לחצן החצ הנפתח מוחלף על ידי חיציס המצביעים למעלה ולמטה ולותח השנה אינו מוצג. + 00005000 - 3 - מציג את התאריך מותאם אישית. כאשר תשתמש בהגדרה 5007ט0600 - 3 תוכל להציב מחרוזת עיצוב משלך במאפיין וח0ס5ט6. בתרשים 12.25 יוצגו כמה מבניס להצגת תאריכים. | = בחוזס-] .₪ ם 9 == ---- 0806 507% - תאריך קצר - 3 יואר 16 שבת | <------ 866 פַח0! - תאריך ארוך -] 0 <-------- שוחוך - שעה 5 ו %חזס= וה%0צ65 - מבנה מותאם אישית תרשים 12.25: פקד ז6א6וקדס מאפשר להציג תאריכים תוך שימוש בכמה מבני תצוגה גלישה למספרים [סזח60 51166 (פקד הגררה) הוא פקד נוסף הכלול באוסף הפקדים המשותפים של 5\וס0חו/+. פקד זה מאפשר למשתמשים להצין נתונים מספריים במסגרת תוכנית. אופן פעולת הפקד דומה לוזה של מתגי החלקה שבבקרות אקולייזר של מערכות סטריאו או לחילופין לאופן הפעולה של פקד ז88 ||0ז56 (פס הגלילה) הכלול באוסף הפקדיס הסטנדרטייס של 88516 |1508/\. פרק 12: הפקדים המשותפים של א050ווא - 341 צור את פקד ז060ו|5 על ידי שרטוטו על הטופס. לאחר מכן תידרש להגדיר ארבעה מאפיינים עיקריים שיגדירו את חזותו. מאפייניס אלה מפורטיס בטבלה 12.4 ותוצאות השימוש בהם מוצגות בתרשים 12.26. טבלה 12.4: מאפייני הפקד זססו|5 מגדיר את סוג הגבול שיוצב. הצבת 0 במאפיין גורמת לכך שלא יוצג גבול והצבת ערך 1 בפקד גורמת לכך שיוצג קו גבול יחיד מגדיר את פריסת הפקד. הגדרת המאפיין כ-0 מציגה מחוון אופקי והצבת ערך 1 במאפיין מציגה מחוון אנכי מגדיר את מיקום 65ז8א 6%וד (שנתות) על גבי המחוון. הצב 0 במאפיין להצגת שנתות מתחת למחוון או מימינו, 1 להצגת שנתות מעל המחוון או משמאלו, 2 להצגת שנתות משני צידי המחוון ו-3 אם אינך מעוניין להציג שנתות קובע את מספר השנתות שתוצגנה. ניתן להציב כל מספר חיובי לאחר שתגדיר את חזות הפקד תידרש להגדיר מספר מאפיינים שיגדירו את אופן פעולתו. חוא ו-א8ּ] הס מאפייניס ראשוניס. מאפייניסם אלה מגדיריס את טווח הערכיס שהפקד יוכל לקבל. שני המאפייניס הבאיס הס 18706008006 ו-6פַחַ88ח508|!6. מאפיין 6בחִפּתַ6סְפָזהּ | מגדיר את שיעור השינוי בערך הפקד שייגרס כתוצאה מהקשה על מקש סְסְחָבּץ או חשוסססְחָּץ או לחיצה על לחצן העכבר כשמצביע העכבר מצוי באחד מצידי המחוון. מאפיין 6פַחַ8ח58|!6 מגדיר את שיעור השינוי בערך הפקד שייגרס עקב הקשה על אחד ממקשי החיצים. מאפיין 56!60%88006 הוא המאפיין האחרון המשמש להגדרת אופן פעולת הפקד. מאפיין זה קובע האס הפקד יוכל לשמש לשסם בחירת ערך יחיד או לשס בחירת טווח ערכים. זו |בזחסכוזסר - מחוון אופקי |68זס/\ - מחוון אנכי מחוון עם גבול סגנון שנתות 0 סגנון שנתות 1 סגנון שנתות 2 סגנון שנתות 3 תרשים 12.26: פקד ז06ו/5 מאפשר להזין נתונים מספריים באופן גרפי 2 סדנת לימוד 6.0 8\ שימוש בפקד ז06ו51 משתמשים יוכלו להגדיר ערך לפקד ז06ו/5 באמצעות לחיצה עליו או גרירתו. הס יוכלו גסם להיעזר במקשים כְנסְחָּק, חאסספְפָבּק, חצ ימינה או חצ שמאלה לשינוי ערך הפקד. הנתון שיוזן על ידי המשתמש יישמר במאפיין 6ש|8/\ של הפקד. הערה: מקשים משפיעים על פקד זפסו|5 רק אם הוא מצוי במוקד (פטסס). אם מאפיין 566008096 מוגדר 6טזד יתאפשר למשתמשים לבחור תחום ערכים על ידי החזקת מקש אוח5 לחוץ בעת גרירת המחוון. אך לרוע המזל זוהי אינה פעולה שמתבצעת באופן אוטומטי, אלא פעולה שיש לכתוב קוד שיבצע אותה. תידרש להוסיף לשגרת אירוע חששסס6פטסויז של הפקד קוד שיוהה האס מקש 6וח5 לחוצ בעת גרירת מחוון הפקד. אס כן, הקוד יגדיר את המאפיין 59!509'1 של הפקד שמכיל את נקודת ההתחלה של התחוס הנבחר ואת מאפיין 6פַחַ56!58 שמגדיר את גודל התחוס. בעזרה המקוונת של 88516 |1508/\ תוכל למצוא דוגמה טובה של שימוש במאפיין וה. פרויקט ‏ 061ח8!6 זסוס6 נדגיס את השימוש בפקד ז06ו51 על ידי בניית פרויקט הדוגמה ז06ח8!6 זסוס6 (מערבל צבעים). ידוע לך בוודאי שלטפסיס של 88516 |1508/\ יש מאפיין זס|ו886%60 שמכיל ערך מספרי אשר מייצג את צבע הרקע של הטופס. פרויקט הדוגמה הפשוט הזה ישתמש בשלושה פקדי ז06ו|5 להגדרת מאפיין זס|ו88660 של הטופס. צור את הפרויקט על ידי ביצוע הפעולות הבאות: 1 צור פרויקט חדש מסוג 5א= 00870ח509. 2 הוסף לטופס פקד א880א66ח6. הגדר את מאפיין שוחבּא של הפקד צְ3ז6א6 ואת מאפיין הסוזכְ63 שלו ץ3ו6 )0 665ב58ץוחס. 3 הוסף לטופס פקד 511061 והגדר את שמו כ-זס|5/660. 4 | שרטט פקד 18861 משמאל לפקד ז060ו|5 והגדר את שמו זסוס6!וטו. 5 צור שני מערכי פקדים (פעְ8זזה |סשח600) לפקדים זסוססופ! ו-זס|ו5/060. צור את מערכי הפקדים על ידי בחירת שני הפקדיס כאשר מקש 60 לחוץ. בחר צְ60 מתפריט 5618 ולאחר מכן 6ז45פ. תוצג לפניך תיבת דו-שיח אשר תשאל אותך האס אתה מעוניין ליצור מערך פקדים. לח על 165 (מערכי פקדים יתוארו בפירוט בפרק 13 עבודה עם מערבי פקדים). 6. הוסף פריט שלישי לכל אחד ממערכי הפקדים על ידי כך שתבחר שוב סְזְ5בּש. 7 הגדר את מאפיין ח0שק63 של (0)זס601!פ! כ-66א, את מאפיין חסשק63 של (1)ז9160!0! כ-ח6766 ואת מאפיין חסוזק63 של (2)זסוס60!פ! כ-6טום. 8 סדר את מערכי הפקדים ( )זס!ס160ט! ו-זסו51460 במבנה המוצג בתרשים 12.27. פרק 12: הפקדים המשותפים של א050ווא - 343 8 0 508065 עחם. -] > תרשים 12.27: הטופס הראשי של פרויקט ז06ח8!6 זסוס6 מכיל מערך של פקדי זס0ו|5 לאחר שתיצור את ממשק התוכנית, תידרש להוסיף לתוכנית כמה אירועים שיאפשרו לה לבצע את פעולתה. האירוע הראשון הוא אירוע 1080 של הטופס, שהקוד שלו מובא בתוכנית 12.5. האירוע הזה יוצר את המצב ההתחלתי של התוכנית. תוכנית 12.5: 5110555./87 - אתחול התוכנית במסגרת אירוע 1080 של הטופס ()080 1 הזוס 50 סזבּעוזק ז לחז 35 %הוס6ח וחוס סחס | 5 6טו8]! ,חס .] 25 הססזס! ,סחס | ₪5 60ח! וחוס 5 6חץ כו 56%' 2 סד 0 = %חטס6ח זס= 0 = חוא\. סחטס6ח)זסוס5106 5 = א18].(חווס6ח)זסו51060 4 = 666 אס ד. הסח )זסוס5106 %חטס6ח )אס החזזס? 6+ + זסו|ס6 6+ 6קו|הטוחז' ((₪05)0,0,0 .0|86% 0+ זס|ס6 06 56% |ווצא\ פוחד) .וסשחסס' (6טום] ,ח66זס)| ,460|) ₪ = זסוס6.28666וו 50 0ח= לאחר מכן תוסיף את הקוד שיבצע את פעולת שינוי הצבע כתגובה להזות המחוון של הפקד. הוסף את הקוד המובא בתוכנית 12.6 בשגרת האירוע ||5₪0 של מערך ז06ו|5 0-5 4 סדנת לימוד 6.0 8\ תוכנית 12.6: 51]10585./87 - שינוי צבע הרקע על ידי הזזה של פקד זפסו|5 (ז06006ח1 5/ א06ח0!|)1ז56 זסוס5106 פגו5 ספעווק ז 1 45 זהטס6ח חחוס סחס | 5 6טו8] ,חס .] 25 הססזס! ,סחס | ₪5 60ח! חחוס 6 שחה 66 ,₪60 ]0 65טובּע |6008 15 שפזס' הסח ד ץְ6=578 +[ 5 ס6ח || 6/סרח' 2 סך 0 = %חטס6ח זס= 36 \. (א06ח1)זס!51000 = 6טובּ/\. טחוס6ח)וסוס5106 %חטס6ח )אס + 0חם 56% 6 0 6 86 /\. (0)זס!5|000 = ססחן 6 )5000 = ח66זם| 86 /\. (2)זס|ס5|06 = 6ווופו זסו280660 6 סז 66| 0 +ח9! פס סט חסו55ת' (8!06] ,ה66ז| ,₪0)|₪60 = זסוס6א6.586וו 50 0ח= הפעלת הפרויקט לאחר שתזין את קוד הפרויקט הקש על 55 כדי להדר את התוכנית ולהפעיל אותה. נסה להציב שילובים שוניס של ערכיס בפקדי ז08ו|5 כדי לראות את השפעתם על צבע הרקע שיווצר. אופו הפעולה של פרויקט ז06ח8!6 זסוס6 הוא כדלקמן: לאחר שתהליך האתחול של הטופס מתבצע במסגרת האירוע 1080 חזס", רוב העבודה המעשית של היישוס מתבצעת במסגרת אירוע |ו0ז56 של מערך הפקדים זס|5/060. לאחר שהמשתמש מזיו מחוון פקד הכלול במערך הפקדים, אינדקס הפקד שהוזז מועבר אל שגרת האירוע ו|0ז50 זס|5!)060. היישוס בודק את מאפיין 6ט|8\ של תיבת הסימון /8זסא6. אס תיבת הסימון מסומנת (כלומר 66660ח6פע = 6טו8/), ערך הפקד ז06ו5 שהוזו מוצב בכל פקדי 5 הכלולים במערך הפקדים. שינוי ערך זה גורס לכל מחווני הפקדיס לנוע אל אותו ערך, לפני שקוד אחר כלשהו מתבצע. לאחר מכן, הערך המאוחסן במאפיין 6ש\\ של כל אחד מפקדי ז06ו51 הכלולים במערך הפקדים מוצב במשתנה הצבע המתאים - ₪60], חס6זס! ו-6טו8!. המשתנים שמייצגיס את הצבעים מועברים כפרמטרים לפונקציה ()₪68 והערך המוחזר מהפונקציה מוצב במאפיין זס|886%60 של הטופס. פרק 12: הפקדים המשותפים של א050ווא | 345 דיווח על מצב והתקדמות התוכנית אחד התחומיס החשובים בפעולת התוכנית הוא הצגת המתרחש בכל זמן נתון. בעת שימוש בתוכנית כגון מעבד תמלילים, המשתמשים מעוניניס לדעת באיוה עמוד הס מצוייס כעת ומהו מיקומס במסגרת העמוד הזה. נתוניס כאלה המכוניס נתוני מצב (ח0ו0080ז0+ה1 5%8005) מוצגיס לרוב באופן רציף על המסך ולא במסגרת תיבת הודעה. המשתמשיסם גס מעוניניס לדעת כמה ומן תימשך פעולה מסוימת ואיזה מרכיב של הפעולה מתבצע באותו רגע נתון. נתוניס כאלה מכוניס נתוני התקדמות (פ655ז8סזק חסוז8וחז0+ח1). בסעיף וה נסקור שלושה פקדיס משותפיס המשמשים לצרכים אלה: + ז50000588, שמציג הודעות אודות מצב התוכנית. ** ]65508ז8ָסזק, אשר מציג חיווי גרפי של שיעור ההתקדמות לקראת מטרה מסוימת. + חסטהמוחה, שמאפשר להציג ייסרטוניסיי שיהוו אינדיקציה לכך שהתוכנית מבצעת פעולה כלשחי. לפני שיתאפשר לך להשתמש בפקדיםס אלה תידרש לצרף אותס לארגז הכלים של 6 |1568/. תיאור הפעולות הדרושות לשס הוספת הפקדים לארגז הכלים נמצא בסעיף מבוא לפקדים משותפים בתחילת הפרק. הוספת שורת מצב לתוכנית בימיס שקדמו להמצאת פקד 50800888 (שורת מצב), מפתתי 8856 |הטפוצ\ נהגו להשתמש בשורות מצב 'מזויפות'י שהיו מורכבות מיילוחיות'' (2808|5) ופקדי |1806. פקדיס כאלה פעלו די טוב (וישנס אף כאלה שפועלים גס כיוס), אך פקד 50800588 הוא תחליף נוח יותר לשימוש עבור פקדיס כאלה. אס כבר השתמשת במסגרת היישוס שלך בפקד משותף כלשהו מהקבוצה בה כלול פקד ז500005898, לא תידרש להתייחס לתקורה (0680ז6ע0) העלולה לנבוע מהצורך בהפצת פקד נוסף מפני שכל הפקדים של הקבוצה מאוחסניס בקוב 06% אחד, שאותו תידרש להפיץ בלאו הכי. תרשיס 12.28 מציג פקד ז5%9%0588 טיפוסי המשמש במסגרת יישוס הכתוב בשפת 6 | 23 בר 33| 8 ב 1 ו 10 סח שד תרשים 12.28: שורות מצב מוצגות לרוב בתחתית הטופס 6 סדנת לימוד 6.0 8\ יצירת שורת מצב כדי ליצור שורת מצב תידרש תחילה לבחור את פקד ז50900588 ואחר כך לשרטט אותו על גבי הטופס שלך. בתחילה פקד ז51900588 משתרע על פני כל רוחב הטופס שאליו הוא מוסף והוא מכיל רק לוחית אחת, כפי שניתן לראות בתרשים 12.29. בוודאי שמת לב שלא חשוב היכן תשרטט את פקד ז50800588, הוא תמיד יוצג בתחתית הטופס. תחתית הטופס היא המיקוס המקובל של שורות מצב. [<1ם) = 0חז6 3 |סז)חס:) זב 513050 .₪ תרשים 12.29: התצורה של שורת מצב מוגדרת באופן אוטומטי בעת הוספתה לטופס לאחר שתשרטט את פקד ז50900588, תוכל להתחיל בהגדרת המאפיינים שיקבעו את חזותו, וביצירת הלוחיות הנוספות הדרושות לשס הצגת הנתוניס. ראית כבר שפקד 590587 נמתח על פני רוחב הטופס, כאשר הוא משורטט. אך את גובה הפקד תוכל להגדיר על ידי הצבת ערך במאפיין 610% שלו או על ידי בחירתו וגרירה של אחת מידיות הגדרת הגודל. קיימיס שני מאפייניס נוספיס אשר מגדיריס את החזות הבסיסית של פקד 608005081 : 6 ו-חפווה. המאפיין חףו|4 מגדיר לאיזה קצה של הטופס תעוגן שורת המצב (אס היא בכלל תעוגן). המאפיין יכול לקבל חמישה ערכים אפשריים : + 6חסאתףו|הפצ - מאפשר למקס את שורת המצב בכל מקום על גבי הטופס. > מסדת8ו|\4ופצ - ממקס את שורת המצב בקצה העליון של הטופס. + וחסאספתףו|הפצ - ממקס את שורת המצב בקצה התחתון של הטופס. הו ערך ברירת המחדל של המאפיין, אשר מייצג את המקוס בו המשתמשים מצפים למצוא את שורת המצב. + 66)חףו|הפע - ממקס את שורת המצב בקצה השמאלי של הטופס. + >חףומתפָו\הפצ - ממקס את שורת המצב בקצה חימני של הטופס. פרק 12: הפקדים המשותפים של א050ווא - 347 הערה: אני ממליץ למקם את שורת המצב בקצה התחתון של הטופס, בכל מקרה שבו לא קיימת סיבה המונעת לעשות כן. כל מיקום אחר עשוי אומנם להוות חידוש מקורי אך הוא גם עלול לבלבל את המשתמשים, שרגילים למצוא את שורת המצב בקצה התחתון של מסך היישום. בתרשים 12.28 ראית שניתן להציג בשורת המצב מספר הודעות בבת-אחת. כל מקטע של שורת המצב מכונה לוחית (וסַח8ּק). להלן שני ערכיס שאותס ניתן להציב במאפיין 6 של הפקד כדי להגדיר האס הפקד יכיל לוחית אחת או כמה לוחיות : + |חזסאזס5 - מאפשר הצגת מספר לוחיות במקביל. + 0|6וחו5זס5 - מאפשר הצגת לוחית אחת בלבד. אס תגדיר את מאפיין 56 כ-6!קחו5זס5, פקד :51800588 יתפקד כמו פקד |1806, שהכיתוב שיוצג במסגרתו ייקבע על ידי הגדרת מאפיין 6% ד6|סוחו5 של הפקד. אך בעת שימוש בשורות מצב שתכלנה מספר לוחיות תוכל להשתמש ביכולות נוספות. עבודה עם לוחיות של שורת מצב הפעולה הממשית של שורת מצב מבוצעת על ידי הלוחיות הכלולות בה. כל לוחית היא אובייקט נפרד, עבורו מוגדריס מאפיינים ואופני פעולה משלו. כל לוחית היא פריט באוסף 7806!5 של פקד ז50900588. לאחר שתשרטט את פקד 50000588 ותגדיר את המאפייניס שלו, תוכל להתחיל להוסיף לו לוחיות. הוספת הלוחיות תתבצע באמצעות גיליון המאפייניס של פקד ז5)900588 אשר מוצג בתרשים 12.30. |<| 5% עץזזסקטז | וס | חס | | חס | [פחב?] 6יסוחס. | |פחב = 56| 1 . ח :שח וו 68% זפ דוס ד 00 8 :)ו תרזוחו | :עס 7 144000] | )!בוה המשו בד 2 ו [= 560.ם] השתתחטוו. ו > שש וי [=. 396% -ם] 6שפ ]וז [=. ופ - ו] ו 6פפצ > השסבהם שן . וס - ₪ בו תרשים 12.30: תוכל לנהל את שורת המצב על ידי לחיצה על הלחצן בונה (עם שלוש נקודות) המופיע בימין שורת המאפיין הח0ז5ו6 שבגיליון המאפיינים 8 סדנת לימוד 6.0 8\ תוכל להיעזר בתיבת הדו-שיח 08065 /זסקסזק של הפקד, להגדרת המאפיינים של כל לוחית בנפרד. שמונת המאפייניס המפורטים להלן, הס המאפיינים העיקרייס המשמשים להגדרת החזות ואופן פעולת הלוחית: = שד - מגדיר את הטקסט שיוצג על גבי לוחית שמאפיין 6|ש5 שלה יוגדר כ-50716% (מקובל להגדיר את מאפיין %א6ד בומן ריצה). + 6זמודוססד - מגדיר את הטקסט שיוצג כאשר המשתמש ישהה את מצביע העכבר על גבי הלוחית. + 6חסוחחםטו| - מגדיר את אופן היישור של הטקסט שיוצג במסגרת הלוחית (לשמאל, לימין או ממורכז). + 5/6 - מגדיר את סוג הלוחית שיווצר. + ₪606 - מגדיר את אופן ההצללה שייושס בעת תצוגה תלת-מימדית של הלוחית. + %0526ש4 - מגדיר את האופן בו התוכנית תקבע את גודל הלוחית. > השו/שחוו\ - קובע את הגודל המינימלי של הלוחית. + שזטססות - מגדיר את התמונה שתוצג במסגרת הלוחית, אם קיימת כזו. רוב המאפייניס האלה הס קלים להבנה ואינס דורשיס הסבר נוסף, אך כדאי שנביא מעט פירוט נוסף אודות המאפייניס 56 וכן 6<ופססטת. ניתן להגדיר שבעה סוגים שונים של לוחיות במסגרת שורת מצב. אחד הסוגיס 0א6 ד50) מיועד להצגת טקסט שיוגדר על-ידך, אך שאר הסוגיםס מיועדים להצגת פריטי מידע מוגדריס מראש. סוגיס אלה משמשיס להצגת מידע אודות מצב מקשי הנעילה (106% 6805, 106% וחטא, וכדומה) ולהצגת התאריך והשעה העדכניים. לוחיות מסוגים אלה מתופעלות על ידי הפקד עצמו, כך שאתה תידרש בסך הכל להגדיר אותן בעת עיצוב היישוס והשימוש בהס לא ידרוש ממך לבצע פעולה כלשהי בעת פעולת התוכנית. סוגים אלה מפורטיס בטבלה 12.5 ואילו בתרשים 12.28 תוכל לראות דוגמה של כל אחד מהם. הערה: מאפיין שמיני, החהאזט5 יכול לקבל ערך נוסף שיוצג בלוחית מקש 1066 ||0ז56. הצגת הכיתוב %4א4א בכתב מודגש תציין שהמקלדת פעילה במצב הוספת אותיות יפניות. מאפיין 056 של לוחית יכול לקבל אחד משלושה ערכים, אשר יקבעו את גודל הלוחית. הגדרת ברירת המחדל, 00605026 מציגה את הלוחית בגודל המוגדר במסגרת מאפיין חז6ו/שחווא שלה. גודל זה לא ישתנה בעקבות הוספה/גריעה של לוחיות לשורת המצב. הצבת ערך 6ח%6ח760פ5 במאפיין תגרוס לכך שרוחב הלותית יותאס לרוחב הטקסט שיוצג במסגרתה, אס זה טקסט שהוגדר על ידי התוכנית, או אס מדובר במחווני מצב המקשיס או במחווני התאריך/שעה. הערך האחרון, פַחוזק5זט5 מאפשר להרחיב את הלוחיות כדי להתאים את רוחבן לרוחב שורת המצב. שימוש בערך הזה מונע משורת המצב להכיל שטח פנוי כלשהו. פרק 12: הפקדים המשותפים של א6050וא | 349 טבלה 12.5: סוגי לוחיות הזמינים לשימוש במסגרת תוכניות הגדרה תיאור סוג + דופ | מציג טקסט או תמונת כ3חשו8. הטקסט שיוצג במסגרת הלוחית מאוחסן במאפיין 5/8 שלה ואילו התמונה מאוחסנת במאפיין טסוק שלה 65 | מציג את מצב מקש 06%] 6805. אם המקש מופעל מוצג על הלוחית הכיתוב 605 מודגש ואילו כאשר המקש מנוטרל הכיתוב מוצג מעומעם וחט\זס5 | מציג את מצב מקש 106% חטא. אם המקש מופעל מוצג על הלוחית הכיתוב שא מודגש ואילו כאשר המקש מנוטרל הכיתוב מוצג מעומעם 5 | מציג את מצב מקש 56%ח1. אם המקש מופעל מוצג על הלוחית הכיתוב 5ח1 מודגש ואילו כאשר המקש מנוטרל הכיתוב מוצג מעומעם 556 | מציג את מצב מקש 106% |ו0ז56. אם המקש מופעל מוצג על הלוחית הכיתוב 5681 מודגש ואילו כאשר המקש מנוטרל הכיתוב מוצג מעומעם 6חודזס5 | משמש להצגת השעה העדכנית 6 | מציג את התאריך העדכני הערה: ללא תלות בערך אותו תציב במאפיין 6ו5סזטג לא יתאפשר לך להגדיר לוחית שרוחבה יהיה קטן מהערך המוצב במאפיין 6פחוו\. המאפיין האחרון שאליו נתייחס הוא מאפיין |6ו86. כבר ציינו שאהו המאפיין המשמש להגדרת האופן בו יוצגו האפקטים החזותייסם התלת-מימדיס במסגרת הלותית. המאפיין הזה יכול לקבל שלושה ערכים: |ו86ס\!זפ5 אשר מציג לוחית שטוחה, 56% (ערך ברירת המחדל של המאפיין) אשר מציג לוחית שנראית שקועה בשורת המצב ו-507881560 אשר מציג לוחית מובלטת. שלושת הסגנונות מוצגיסם בתרשיס 1. חב 40] [6ח3 6פוב רת [6חב 56| תרשים 12.31: תוכל לכלול בשורת המצב לוחיות שטוחות, לוחיות שקועות או לוחיות מובלטות 0 סדנת לימוד 6.0 8\ שליטה על לוחיות על ידי שימוש בקוד למדת איך להגדיר מאפייניס של כל לוחית בנפרד. אך עליך עדיין ללמוד כיצד להוסיף ולגרוע לוחיות לשורת המצב. בעת עבודה עם גיליון המאפיינים של פקד ]50900583 תוכל להיעזר בלתצנים |6ח8ק 56%ח1 ו- |6ח8ק 6עסוחסח. אך ניתן גם להוסיף ולגרוע לוחיות על ידי שימוש בקוד. פעולות אלו תבוצענה על ידי שימוש בשלוש שיטות האוסף 5 (ח001!6600 5|סְחהק) : + 00 - יוצרת לוחית חדשה שתיכלל בשורת המצב. + 06|606 - גורעת לוחית נתונה משורת המצב. + ]668 - גורעת את כל הלוחיות הכלולות בשורת המצב. הערה: בשונה משאר האוספים (60|!660005) של 88516 |1508/, ערך מאפיין א06ח1 של הפריט הראשון באוסף 080615 הוא אחד וערך מאפיין א06ח1 של הפריט האחרון שווה לערך המאוחסן במאפיין זחטס6 של האוסף. ראית כבר שהלוחיות המשמשות להצגת נתוני מצב המקשים ולהצגת נתוני התאריך והשעה מבצעות פעולות אלו באופן אוטומטי, ואלו אכן פעולות חשובות. אך כוחה האמיתי של שורת המצב נעוץ ביכולת שיש לה לשנות את הטקסט המוצג במסגרת לוחיות מסוג 16%, תוך כדי פעולת התוכנית. לוחיות אלו מורות למשתמש מהו מצב התוכנית שעמה הוא עובד. אס תרצה לעדכן תצוגת לוחית תוך שימוש בקוד תוכנית, תוכל להציב מחרוזת במאפיין )א6ד של אותה לוחית, כפי שמתואר בשורת הקוד הבאה: "10 )0 1 60070 סחועוסו/\" = 66 ך.(5)1|פחהק. 050871 5+8 תוכל כמובן להגדיר גס מאפייניס נוספיס באותו אופן. תוכל אפילו להגדיר את שורת המצב כולה על ידי שימוש בקוד, תוך שימוש בשיטות של אוסף 280615 ובמאפייניס של אובייקטי |9ח8?. הקוד המובא בתוכנית 12.7 ייצור את שורת המצב המוצגת בתרשיס 2. קטע הקוד הזה כולל שימוש במאפיין +חטס60 של האוסף פוַ6ַח08, שבו מאוחסן מספר הלותיות הכלולות בשורת המצב. תוכנית 12.7: ק8/ש.5131005 - הגדרת שורת המצב בעזרת קוד ()1.080 חחזזס= 50 ס6זבּעווק 50051 הטסו חכ 06190|6 6 סעסוח6>' 1 6סרח5.6|סְחק. 6% חח 80 |סחהכ זא ד 3 00₪' ,")0 500005 6ר6 15 פוחד" , "ץסאץוח" ,1 5.00וסחהּס. 50509 = 526סת. (5)1|סחהס. פרק 12: הפקדים המשותפים של א50סשווא - 351 ץ01508 6חחו) +ה6זוו6 6 00' שחו דו50 ,,,.5.800וסחהּס. חסו/\\ 6ח= סט 0ח= ]ה - | 0חז6 3 [סזוחס:) זה 50ט)513 .₪ 6 5181005 שח) 6 פוחד | תרשים 12.32: תוכל לשלוט על שורת המצב על ידי הגדרה של מאפייני לוחיות שורת התקדמות פקד ]51900588 אינו הפקד היחיד שבו תוכל להשתמש לצורך מעקב אחר פעולת התוכנית. יש תוכניות אשר נדרשות לבצע פעולות שאורכות זמן רב, כך שתרצה שלתוכנית תהיה יכולת לספק למשתמשים חיווי דינמי של מצב התקדמות הפעולה. פקד :00765583:₪ (מד התקדמות) הוא כלי אידיאלי לשימוש במצבים כאלה. לדוגמה, זפזס|כאם 66חז6ח1 נעזר בפקד ז65588זפסזק לשס הצגת אחוז מגודל הקבציס שהועברו עד כה. במצב כזה פקד ז65588ז8ַסזק מאפשר לך לדעת שני דבריס: ראשית, ההשתנות של התצוגה בפקד מהווה עבורך אינדיקציה שביצוע הפעולה נמשך. שנית, תצוגת הפקד תאפשר לך להסיק עוד כמה זמן יידרש להשלמת הפעולה. הגדרת פקד ו65583ו4סוק קל מאוד להגדיר פקד 1087055881 ולהשתמש בו. בדומה לפקדים אחרים תידרש תחילה לשרטט את הפקד על גבי הטופס ולאחר מכן תידרש להגדיר את מאפייני הפקד. 40%ו6 ו-חשטוצ\ הם שני המאפייניס החשוביס מקרב המגדירים את חזות הפקד. רוחב מד התקדמות הוא ברוב המקריס גדול מאוד ביחס לגובה. למעשה, בעורה המקוונת של פקד ז65588זפָסזס כלולה המלצה שרוחב מד ההתקדמות יהיה גדול לפחות פי 12 מגובהו. בתרשים 12.33 מוצג מד התקדמות טיפוסי. מאפיין 6ט|3\ של פקד ז655838ז8ָסזק מכיל ערך אשר מגדיר את השיעור מתוך הפקד שיוצג כשהוא מלא. אס נדמה פקד ז65588ז08זק למדחוס אזי ניתן להתייחס אל הערך המאוחסן במאפיין 6ט|8\ כאל הטמפרטורה הנוכחית. השטח שמתחת לטמפרטורה זו מלא בכספית ואילו שאר השטח ריק. 2 סדנת לימוד 6.0 8\ [<1ם) - | [חזס ]₪ ה תרשים 12.33: מדי התקדמות מספקים חיווי חזותי לשיעור הפעולה שכבר הושלם אא ו-חוו! הס המאפייניס הנוספים שאותס תידרש להגדיר עבור פקד ז65508זטסזס. הערכים שיאוחסנו במאפיינים אלה ייצגו את הערך המקסימלי והמינימלי שאותס ניתן יהיה לאחסן במאפיין 6טוג3ּ\ של הפקד. אס נחזור לרגע לדימוי מד החוס אזי הערכים המאוחסנים במאפיינים אלה מייצגיס את הטמפרטורה המקסימלית והמינימלית שאותו מדחוס יוכל למדוד. לדוגמה, הצבת ערך 50 במאפיין 6ט|8\ כאשר המאפיין חוא מוגדר כ-0 והמאפיין אא מוגדר כ-100 תגרוס להצגת מד ההתקדמות כשהוא מלא עד מחציתו. במאפיינים א ו-חוא ניתן להציב כל ערך שלס חוקי. אך הערך שיוצב במאפיין אבו חייב להיות גדול מזה שיוצב במאפיין חוא. תוכל להציב בשני המאפייניס האלה כל ערך שיהיה בעל משמעות במסגרת היישוס שלך. להלן שתי דוגמאות לשימוש במאפייניס אלה: > בעת עיבוד רשומות הכלולות במסד נתונים כדאי להציב 0 במאפיין חוא ולהציב במאפיין אא את מספר הרשומות שאותן נידרש לעבד. הגדלת הערך המאוחסן במאפיין 6ט|3\ לאחר סיוס עיבוד כל רשומה יאפשר להציג לפני המשתמשים חיווי של התקדמות הפעולה. > בעת ביצוע פעולה להורדת קוב\ תוכל להציב במאפיין אפּ!! את גודל הקוב בקילו בתיס או את מספר הבלוקיםס שהקובצ יתפוס. אופן שימוש אחר במאפייניס אלה במסגרת פעולות להורדת קבציס הוא על ידי הצבת 0 במאפיין חוא והצבת ערך 0 במאפיין א8א והתייחסות לאחוזים מתוך הקובצ שהורדו עד כה. פרק 12: הפקדים המשותפים של א050ווא - 353 עדכון מד ההתקדמות בעת פעולת התוכנית הגדרת מאפיין 6ט|8\ היא המפתח להצגת שיעור ההתקדמות של פעולה המבוצעת כעת. כאשר קוד התוכנית שלך יבצע פעולה מסוימת תידרש לעדכן באופן סדיר את הגדרת המאפיין 6טו8/. כפי שציפית, תוכל לבצע את פעולת העדכון במסגרת לולאה שתבצע פעולות שתחזורנה על עצמן, כפי שקורה בדוגמת הקוד הבאה: ה 5 "חוה5ז" 6006 פחוצוסווס1 66 חז' 0 סכ 30 60ה6קס השס ץ68זוה 5ב 6הרז' 6000 ז65508זטסזק שר 15 "זסכ""י 0=חוו!. זטס 5% |6עס\. חוב וז 6000 חו58ז = אהו זסס וס הוב וז 0 = זססחטסחו =0ם. חוה!5ז %ס\ 6|וחצ\ סס 6 660705 06655 %0 6006 +וספחזי 1 זססחהטס6חו = זס6חהטס6חו זססחטס6חו = 6טו8/\. זטס עסו חוב וז ססס | שילוב קטעי וידאו באמצעות פקד חסוזהּוחוח פקד הסושבּוחוח (הנפשה) מאפשר לך לכלול בתוכניות יכולות הנפשה. פקד זה יכול להציג קבצי 801 אילמים. קוב 4/1 מכיל למעשה סדרת קבצי תמונה אשר מוצגיס ברצף, באופן היוצר אפקט הנפשה, באופן דומה לזה שמיושם בסרטים מצולירים. במקריס מסוימיסם תוכל להיעזר בפקד חהסטאחוחה לצורך הצגת חיווי שיאפשר למשתמש לדעת שמתבצעת כעת פעולה כלשהי, כפי שקורה במסגרת פעולת העתקת קבציס בסביבת פווססחו/\ (ראה תרשיס 12.34). קטעי ההנפשה יוצגו ברקע של סביבת העבודה, במקביל להתרחשות פעולות אחרות. 4 7 -2 6 % קול ז6הוס' סז 'זסב|ס' הזסז=] | ווהווווווו בחותובוח6\] 560005 15 תרשים 12.34: התקדמות פעולת העתקה מוצגת על ידי שימוש בקטע הנפשה פשוט 4 סדנת לימוד 6.0 8\ הערה: ניתן ליצור קטעי הנפשה פשוטים גם על ידי שימוש בפקד זסחוד לשינוי מיקום פקד תמונה מדי פרק זמן קבוע. ליישום שיטה זו תידרש אומנם לכתוב מעט יותר קוד מכפי שתידרש לכתוב לצורך שימוש בפקד חסטאוחוחה, אך השימוש בה יחסוך את הצורך להכין את קטע ההנפשה כקובץ 1/ג. פקד זפחחוד תואר בפרק 4, שימוש בפקדי ברירת המחדל של 83516 ![1503/. הגדרת פקד חסוזבּוחוחוה כדי להגדיר את פקד חסט8וחוח8 תידרש תחילה לשרטט מופע של הפקד על גבי הטופס שלך. בתרשיס 12.35 נראית התצוגה ההתחלתית של פקד חסטההוחה. |< 1 = | [חזס ]₪ ססטו/\ עבוק תרשים 12.35: התצוגה ההתחלתית של פקד הסטאחוחה דומה לפקד תיבת תמונה שבמרכזו מוצג גלגל סרט שרטוט הפקד על גבי הטופס מגדיר אובייקט שיכיל את קטע האנימציה. אך כדי להפעיל את קטע ההנפשה תידרש לפתוח קוב\ הנפשה ולהריצ אותו. את הפעולות האלו תוכל לבצע על ידי הוספת לחצן פקודה הכללת קוד בשגרת אירוע 0% שלו אשר יפתח את קובצ הווידאו ויציג אותו. לפתיחת הקוב תוכל להשתמש בשיטה ח6ק0 של פקד חסטההוחה, שבקריאה אליה תכלול הגדרה של נתיב הגישה אל הקובצ שאותו תרצה להציג (תוכל למצוא כמה קבצי וידאו בתיקיה 0605ו/\65וחק8ז6\ של 8856 |1508/, בהנחה שהתקנת אותם). לאחר שתפתח את קוב> 1/ה, הפעל את השיטה שוש של הפקד כדי להתחיל בהצגת קטע ההנפשה. שתי שורות הקוד המוצגות כאן פותחות קובצ 8/1 ומציגות אותו: "וה טסו \ 605 \ קז \ סרח ס1\6 605 \ 1 סק \:6" הסכס. [הססהההוחה ץְב|ק. 1הסוסהווחג בתרשיס 12.36 מוצג פקד חסטווח בעת הצגת קטע וידאו. אס תרצה לעצור את הצגת קטע ההנפשה תוכל לקרוא לשיטה 5000 של הפקד. פרק 12: הפקדים המשותפים של א050שווא - 355 | ום).. [חזס] ₪ | ו | םע תרשים 12.36: קריאה לשיטה עְ3!ק תגרום להצגה חוזרת ונשנית של קטע הווידאו טיפ: כדאי לך אולי ליצור טופס שיכלול כלים להצגת נתוני מצב שבו תוכל להשתמש במסגרת כל הפרויקטים שתכתוב ב- 8856 |1508/. בקובץ כזה תוכל לכלול פקד חק ופקד חסטהחוחה. תוכל להגדיר את מאפיין שְ3!קסוטוה של פקד חססהמוחה לערך 6טזד, כדי להציג את קובץ הווידאו באופן אוטומטי, מבלי שתידרש לפנות לשיטה ְבּוק. פרמטרים אופציונליים של השיטה עְבּ|ק אופו הפעולה שהוא ברירת מחדל של פקד חסוחוחה הוא הצגת קטע וידאו בלולאה, כלומר הקטע מוצג שוב ושוב, ללא הפסקה עד שמתבצעת קריאה לשיטה 5500. להלן שלושה פרמטרים אופציונלייס של השיטה שיאפשרו לשנות אופן פעולה וה: + 860686 - מגדיר את מספר הפעמים שקוב> הווידאו יוצג. 5% - מגדיר את התמונה שבה תחל הצגת הקובצ. % קְ500 - מגדיר את התמונה שבה תיעצר הצגת הקטע. תוכל לברר את מספרי התמונות בקטע על ידי שימוש בנגן המדיה של פשוססחו/\ט (שאם. חצ |ספוו). הפרמטריס האופציונלייס שפורטו כאן ישמשו במסגרת שורת הקוד שתוצג להלן, אשר תציג פעמים את תמונות 5 עד 15 של קטע ההנפשה: 5 ,5 ,2 /8|ק. זסעץ3|קוע רוחה תוכל לכלול בשורת הקריאה לשיטה ערכיס עבור כל הפרמטרים האופציונלייס האלה או עבור חלקס. בפרמטרים שלא ייכללו עבורם ערכים בשורת הקריאה לשיטה, יוצבו ערכי ברירת המחדל שלהס. סדר הפירוט של הפרמטרים הוא 60680ח, א 508, 00ז5. אם לא תרצה להגדיר ערך עבור אחד הפרמטריס האלה יהיה עליך להשתמש בפסיק כבמציין מקוס. 6 סדנת לימוד 6.0 8\ בתקליטור: > הדוגמה הרלוונטית לפקד חסטפוחוחה נמצאת בתקליטור בתיקיה ז6ץ8|קווח שבפרק 12. כמו כן יש בדוגמה קטע וידאו בשם וט6.8אטא6וו= אשר צריך להפנות אליו את הפקד או לחילופין להעביר אותו אל כונן 6 לתיקיית השורש. מכאן... פרק וה הציג בפניך את קבוצת הפקדים המכוניס ₪0!5ח60 חסווח0ס6 פוססחו\. כמה מבין הפקדיס שנסקרו בפרק זה נכללו לראשונה בשפת 6.0 8856 |508ו/. תוכל להשתמש בפקדיס האלה לשס העשרת הפרויקטים שלך במיגוון אופניס. הדרך הטובה ביותר ללמוד אודות הפקדים האלה היא על ידי התנסות בשימוש בהס במסגרת תוכניות. מידע נוסף אודות נושאים רלוונטיים תוכל למצוא בפרקיס הבאים: > אם טרס למדת אודות הפקדים המוצעים בארגוז הכלים של 8856 |1508/ כברירת מחדל, כדאי שתעיין בפרק 4 שימוש בפקדי ברירת המחדל של 83516 |בּטפו/. > אם תרצה ללמוד אודות פקד ז83!ססד (שלא תואר בפרק וה) ואודות היצירה של תפריטים, עיין בפרק 6 שליטה נוספת למשתמש: תפריטים וסרגלי כלים. <* | מידע אודות שימוש בפקדיס במסגרת מערך יובא בפרק 13 עבודה עם מערבי פקדים. פרק 12: הפקדים המשותפים של א050ישווא - 357 13 עבודה עם מערכי פקדים פרק 13: עבודה עם מערכי פקדים | 359 עד עתה למדת איך להשתמש בפקדים כדי לאפשר לתוכניותיך ליצור קשר עס המשתמש. הפקדיס שהוספת לטפסים עד עכשיו היו עצמאייס לגמרי, ללא קשר מיוחד לפקדיס אחרים בטפסי התוכנית. כאשר תיצור ממשקי משתמש מורכבים יותר, יש להניח שיהיה לך נוח יותר לעבוד עס פקדיס המאוחדיס לקבוצות. בפרק 4 שימוש בפקדי ברירת המחדל של 83516 [1503/, למדת כיצד לבחור מספר פקדים בבת-אחת בסביבת העיצוב ולשנות את מאפייניהס כקבוצה אחת. למרות ששיטה זו נוחה בזמן עיצוב התוכנית, אין בכך כדי לאפשר לתוכנית שלך לעבוד עס קבוצות פקדיס בזמן פעולת התוכנית. שימוש במערכי פקדים יכול להקל על ניהול קבוצות פקדים בזמן ריצת התוכנית. מבוא למערכי פקדים מערך פקדים (ש8זוה |סשחס6) הוא קבוצת פקדים מאותו סוג, בעלי שס והה, המזוהים על ידי אינדקס. אם נושא המערכים מוכר לך, תמצא שמערכי פקדים עובדיס בצורה דומח. אלמנטים במערכי פקדים ניתן להתייחס לכל פקד יחיד במערך כאלמנט (ח6וח6ום) של המערך. כל אלמנט במערך הפקדים צריך לקיים מספר קריטריוניס : > כל הפקדים חייבים להיות מסוג והה. מערך הפקדים יכול להכיל תוויות (5ו806 |) או תיבות טקסט (65א0ם 16%%), אך אינו יכול להכיל את שני הסוגים יחד. + כל הפקדים הינס בעלי מאפיין חא והה. >* ניתן לזהות כל פקד על ידי ערך מאפיין א06ח1 שלו. מאפיין אינדקס הינו משתנה מסוג 006067ח1, לפיכך הערך המירבי שלו הוא 32767. לעיתיס קרובות, מאפייני התצוגה של הפקדיס במערך (כגון זחסת ו-80706750/!6) יהיו זהים, אולס אין וה הכרחי. המאפיין היחיד שעליו להיות והה עבור כל הפקדיס במערך הוא 6וחפּא\. שאר המאפיינים עשויים להיות שונים עבור כל אחד מהאלמנטים. הבנת היתרונות הטמונים במערכי פקדים עבודה עס מערכי פקדיס במקוס עס פקדיס בודדיס מסייעת בעיצוב ממשק התוכנית ובניהול הקוד. להלן חלק מהיתרונות של מערך פקדים : * הוספת אלמנט למערך פקדים גוזלת פחות משאבי מערכת מאשר הוספת פקד בודד מאותו הסוג. לדוגמה, שלוש תיבות טקסט בודדות (16%01, 6%)2ד ו-16003) תצרוכנה יותר משאביס מאשר מערך של שלושה אלמנטים מסוג תיבת טקסט. ** האלמנטיס במערך פקדיס חולקיסם מערכת משותפת של שגרות אירועים. משמעות הדבר היא שדי לכתוב את הקוד פעס אחת בלבד כדי לטפל באותו אירוע עבור כל הפקדים במערך. 0 סדנת לימוד 6.0 8\ %, > על ידי שימוש במערכי פקדים תוכל לעקוף את מגבלת השימוש בלא יותר מ-254 שמות פקדיס בטופס אחד. באופן תיאורטי, תוכל להגדיר במערך פקדיס כמות בלתי מוגבלת של אלמנטים. מכיון שמערך פקדים מהווה עבור 8856 |150 שס אחד בלבד, כמות הפקדיס אשר תוכל להציב בטופס כולו גדלה באופן ניכר. מ אזהרה: אל תגזים בשימוש בפקדים! הצבת יותר מדי פקדים בטופס גורמת לטעינה איטית יותר של הטופס, ועלולה להקשות על כמות משאבי המערכת. יצירת מערך פקדים ב- 5 8856 |508ו\ לא ניתן היה להוסיף פקדים בומן ריצת התוכנית, אלא כחלק ממערך קייס בלבד. ב- 6 88516 |1508/ ניתן להוסיף פקדים עצמאיים גס בזמן ריצה. ניתן ליצור מערך פקדיס בשלוש דרכים שונות: > הוספת פקד לטופס ושימוש בפקודות שְ600 ו-28506 כדי לשכפלו. * הוספת פקדים בודדיס לטופס ואחר שינוי מאפיין 6חפּאז של כל הפקדים, כך שיכילו שס והה. הוספת פקד לטופס, ולאחר מכן הגדרת מאפיין א06ח1 שלו כמספר בין 0 ל-32767. בסעיפים הבאים, תיצור מערך פקדים על ידי שימוש בשיטה הראשונה. הוספת מערך פקדים לטופס כאן, תוסיף מערך בעל ארבעה אלמנטים מסוג תיבת טקסט (800 16%0), ומערך נוסף בעל ארבעה אלמנטים מסוג תווית (/1806). בצע את הצעדים הבאים : 1 אם צריך, צור פרויקט חדש והוסף פקד א80+א6ד, כמתואר בתרשים 13.1. 22 קבע את מאפייני תיבת הטקסט כמתואר להלן: + קבע את מאפיין סוחגּא כ-ץְפזיזה+א% (או כל שס אפשרי אחר). <* | נקה את מאפיין +אסד. קבע את מאפיין חס" כ-עש6א זסוזטסס, גודל 10. 33 לח על תיבת הטקסט כדי להבטיח שהיא עדיין במיקוד, והקש 6₪1+6 או בחר באפשרות צְ600 מתוך תפריט 561% כדי להעתיק אותה ללוח (0זפסטטוו6). 4 לח על הטופס כדי להבטיח שהוא נמצא במיקוד. הקש %+6%1 או בחר באפשרות 6 מתוך תפריט 561 כדי להציב עותק של תיבת הטקסט בטופס. 5 בנקודה וו תופיע על המסך תיבת דו-שיח אשר תבקש לוודא שבכוונתך ליצור מערך פקדיס (ראה תרשים 13.2). בחר 65צ כדי ליצור מערך שכזה. פרק 13: עבודה עם מערכי פקדים | 361 תרשים 13.1: למרות שתיבת טקסט זו עתידה להיות חלק ממערך פקדים, יוצרים אותה בדרך הרגילה 6ו35 8 15031 ]]ס5סזסוו ?הזה [סזוחס0 3 6ו83ז0 0! ]חבש גוס סכ .811 ז' הבח וסזוחסס 3 6/יבה עסבפזןה גוסר | סט | סא | תרשים 13.2: הדרך הקלה ליצירת מערך פקדים היא להעתיק ולהדביק פקד קיים הבט במאפייני הפקד החדש (המודבק). חלון המאפייניס מציג את מאפייני הפקד (1)ץ8זז\אט, הלא הוא האלמנט החדש במערך הפקדיס שזה עתה יצרת. שיס לב כי מאפייני חס" ו-6%ד של האלמנט החדש תואמיס לאלה של תיבת הטקסט המקורית. בנוסף, שיס לב גס כי אינדקס הפקד החדש נקבע כ-1. 6. | גרור את תיבת הטקסט החדשה ומקם אותה מעל לתיבה המקורית. 7 לחצ על התיבה המקורית כדי לסמן אותה. שים לב כי מאפיין א06ח1 שלה אשר היה קודם ריק, מראה כעת את הערך 0. 8 תיבת הטקסט שהעתקת בצעד 3 נמצאת עדיין בלוח, לפיכך אין צורך להעתיקה שוב. הדבק תיבה נוספת לטופס וגרור אותה אל מתחת לשתי התיבות הקודמות. ודא כי מאפייני הפקד החדש מתאימים לשניים שקדמו לו, וכי האינדקס שלו הוא 2 כל פקד המתווסף למערך מקבל אינדקס הגדול באחד מהאינדקס שניתן לאלמנט הקודם. מספרי האינדקס במערך פקדים מתחילים מ-0. הערה: תיבת הדו-שיח המבקשת לאשר את יצירת מערך הפקדים, מופיעה בעת שכפול הפקד הראשון. לאחר אישור הפעולה היא לא תופיע יותר, גם אם תבצע שכפולים נוספים במסגרת אותו מערך. 2 סדנת לימוד 6.0 8\ 9 הוסף תיבת טקסט רביעית באותו אופן, גרור אותה כך שתמוקס מתחת לאחרים, ושנה את מאפיין חזושש שלה ל-495 5קושט. 0. הוסף פקד תווית צ3ז918!, ומקס אותו משמאל לתיבת הטקסט הראשונה. קבע את מאפיין ח0וז2ק63 כ-:סוחבּא 6פזו= ואת מאפיין היישור ל- 1- ץ₪5₪1ש2 זחשוח. 1. העתק את פקד התווית ללוח והדבק עותק שלו לטופס. השב 65+ לשאלה האס אתה רוצה ליצור מערך פקדיס. קבע את ח₪0ק63 של העותק כ-:שוחב3 185%, וגרור את התווית לשמאל התיבה השנייה. כאמור, מלבד מאפיין 6חא8א\, אשר נשאר זהה עבור כל הפקדים במערך, תוכל לקבוע את שאר המאפיינים על פי רצונך, כאילו מדובר בפקדיס נפרדים. 2. צור שני עותקיס נוספיס של פקד התווית. מקס אותס משמאל לתיבות הטקסט השלישית והרביעית, וקבע את מאפייני חסזק68 שלהם כ-:ע9ו0 ו-:6ז8ז5. תרשים 13.3 מראה כיצד נראה הטופס לאחר השלמת העיצוב. בנוסף, התרשים מדגיש את מאפיין א06ח1 של פקד מסוים. הערך הקיים במאפיין זה מציין כי הפקד חינו חלק ממערך פקדים. [%זם]- | [ח46500] 8510 581 ]זו - 6041ןסז ,אל | ו אוסטחושצ 5ח800-1 5|ססך חִבּזמָבום | ץזסט | חנו הטספ )זט ה 0פנסים אסוע 4 6 ו אש א ו, | ₪5 2 ₪ ₪ - ב -₪| | פוחזס> 45%-] (1חחזס=) הזוס ב ₪ \2 בא | 55 עוופוכ 19% - 0 1-0 6 ש .1800000058 506 90את - 1 38 6ז ח0300ו/3\1555//3 | : חן 3 0 ב םזי - 0 ו פד = 50 5805 חי 8 א |סחס6 3 חו וסוחס6 ב בַחוץ/ח6בו זספה)וח 6חז 5665]פחזנססת שים לב לערך במאפיין א06ח1 תרשים 13.3: טופס זה מכיל שני מערכי פקדים פרק 13: עבודה עם מערכי פקדים | 363 כתיבת קוד עבור מערך פקדים לאחר שיצרת מערך פקדים על גבי הטופס, תוכל לכתוב קטע קוד יחיד המטפל באירוע מסוים שיוצריס פקדי המערך. בעת התרחשות אירוע, ‏ 8856 |8טפו\ מציבה את ערך מאפיין א06ח1 של הפקד הרלוונטי (זה שיצר את האירוע) בקוד שגרת האירוע. תהליך זה מודגס בתרשיס 13.4. [ב ור 1 שגרת אירוע לתיבת טקסט עצמאית () 06מ08 51א76% מגום 6סהט1עק מגו= במ ערך א06ח1 מועבר כארגומנט (ע6606ת1 25 א₪5ם1) 62806 עהמעגסאס מגום פסהטבמק / מגו5 הבמס שגרת אירוע עבור תיבת טקסט שהיא אלמנט במערך תרשים 13.4: שגרות אירועים הכתובות עבור מערכי פקדים עושות שימוש במשתנה אחז כדי לפעול על האלמנט שיצר את האירוע טיפול באירועי מערכי פקדים כתיבת קוד עבור האלמנטיס במערך הפקדים נעשית דרך חלון הקוד, בדומה לכתיבת קוד עבור פקד בודד. קוד האירוע שכתבת יבוצע בכל פעס שאחד האלמנטיס במערך יצור את אותו אירוע. כעת תוכל לשפר את פרויקט הדוגמה על ידי הוספת שגרת אירוע. השיגרה שתכתוב צריכה להמיר את הטקסט שהקליד המשתמש בטופס לפורמט המתאים, כלומר להמיר את האות ראשונה בכל מילה לאות גדולה. תוכל לעשות ואת על ידי שימוש בפונקציה של 8856 |508ו, המכונה צח60זז5. אולס, היכן עליך לכתוב את הקוד! לפקדים המסוגליס לחוש את מצב המיקוד (0605=) על גבי הטופס יש שגרת אירוע בשם 1050-0608, המתבצעת כאשר המיקוד עובר מהפקד הנוכחי לפקד אחר. אפשרות זו נותנת לך הזדמנות מצוינת לשמירה על מבנה הטקסט בתיבות טקסט. תוכל להוסיף קוד לשגרת 1050-0605 של מערך פקדי תיבות הטקסט. קוד זה יופעל בכל פעם שתיבת טקסט במערך מאבדת את המיקוד (אירוע וה מתרחש לרוב כאשר המשתמש סיים להקליד את הטקסט בתיבה). כדי לכתוב את שגרת 1050-0605 של מערך הפקדים, בצע את המהלכיס הבאים: 1 לחצ לחיצה כפולה על תיבת טקסט שבמערך כדי להציג את חלון הקוד. עבור לשגרת 86ח008 שְא8זו\ט. ודא כי הפרמטר ז%606ח1 45 א06ח1 ומין לשיגרה. 2 | אינך מעוניין לכתוב קוד בתוך שגרת ספַחַ8ח6, ולפיכך עבור לשגרת 1050-0605. 3 כעת אתה אמור להימצא בשגרת 050-0008] ץפחמז)ט המכילה גם היא את הפרמטר ז%606ח1 45 א06ח1. הקלד את שורת הקוד הבאה לתוך השיגרה: (0856ז6 סקפ (18068)ץ8 ה 0 )/הס50 = (א06ח1)ץה )אס 4 סדנת לימוד 6.0 8\ הצד השמאלי של פקודת ההצבה, (א06ח1)ץ8זז\)ט, מתייחס לאלמנט מסויס במערך פקדי עפזז\/)ט. אולס באיזה אלמנט מדובר! מציין המערך, א06ח1, המועבר לשגרת האירוע כמשתנה, מאפשר לנו לקבוע איוה אלמנט במערך הפקדים איבד את המיקוד וגרס לשיגרה וו להתבצע. לפיכך, שורת קוד גו מפעילה את הפונקציה צח560 על האלמנט הרלוונטי וגורמת להמרת הטקסט הנוכחי לטקסט תקין (6856ז6קסזסטע). לאחר סגירת חלון הקוד, בחר את אחד האלמנטים במערך תיבות הטקסט והכנס לחלון הקוד שלו. שים לב כי בחלון הקוד מופיעה אותה שיגרה בדיוק. זכור, אלמנטים במערך פקדים משתמשים באותן שגרות אירועים. כעת תוכל לנסות את תוכנית הדוגמה. הפעל את התוכנית והקלד את הטקסט האזד =ז הו באותיות גדולות בתיבת הטקסט הראשונה (ליד תווית 6וח8א 8%זו=). כאשר תקיש פד כדי לעבור לתיבה הבאה, תופעל שגרת 1055-0605 והטקסט שהקלדת יומר לפורמט המתאים. הקלד את המילה 65ח0סן באותיות קטנות בשדה סוחפּ\ 185%. הקש על שנית ושים לב שהטקסט הזה מומר גס הוא. שגרת 1050-0605 שכתבת מתבצעת בכל פעס שאירוע 1051-0605 מתרחש עבור כל אחד מהפקדים במערך. בידוד אלמנטים במערך פקדים בעזרת מאפיין א106 אס יש צורך לבצע קוד מסויס עבור אלמנט אחד בלבד או עבור קבוצה מסוימת של אלמנטיס במערך, תוכל להשתמש במאפיין א06ח1 כדי לקבוע מיהו האלמנט שיצר את האירוע. לאחר מכן תוכל, לדוגמה, להציב את הקוד הנחו בבלוק )1 או 6856 56|666. בחן את העניין בעזרת פרויקט הדוגמה. שגרת האירוע שיצרת עובדת מצוין עבור מרבית האלמנטיס במערך, אולס קיצורי שמות מדינות, המוקלדים בתיבת הטקסט 6, צריכיס להופיע כולס באותיות גדולות. לפיכך, יש צורך להתאיס מחדש את שגרת 1051-0605 ץְ8זזהט כך שתוכל לבודד את תיבת הטקסט 50806 (אלמנט מספר שלוש במערך), ולבצע פעולה שונה על הערך הנקלט בה. שנה את הקוד בשגרת 1051-0605 זזש לפקודות הבאות : חסחד 3 = אסחח1 ]1 ((18068)ץ1(0856)0/\8 = (א06ח1)ץ8 )אס 56 (0856ז6כסזק פע , (18068)ץ8 ה 06 ) חהס50 = (א06ח1)ץ8 )אס + 0חם נסה את השיגרה החדשה: הפעל את התוכנית מחדש, עבור בין תיבות הטקסט והקלד ערכיס באותיות קטנות בלבד. שיס לב כי שגרת האירוע ממירה את הטקסט שהוקלד בתיבת 5080 באופן שונה משאר תיבות הטקסט שבטופס. פרק 13: עבודה עם מערכי פקדים | 365 כלי קוד לטיפול במספר פקדים יחדיו יתרון נוסף הנגזר משימוש במערך פקדיס הוא היכולת לקבוע את מאפייני הפקדיס במהלך ביצוע התוכנית על ידי שימוש בלולאת א6א...זסת. בדרך וו, תוכל להתייחס לכל הפקדים במערך צורה נוחה ויעילה. לדוגמה, שורות הקוד הבאות ממירות את הטקסט שנקלט בכל האלמנטיס במערך פקדים לאותיות גדולות: זז 5 1 וחוס 3 = 1 זס= ((1)ץ8ז\)60856)0%!! = (1)ץפז\)א6 1 אסא שיס לב כי לולאת ]אסא...זס] מונה מ-0 ל-3 ולא מ-1 ל-4 מפני שהאלמנטיס במערך ממוספריס בדרך כלל מ-0. הסרת אלמנטים ממערך פקדים בסביבת העיצוב תוכל להסיר אלמנטיס ממערך פקדיסם בטופס במספר דרכים : + על ידי בחירת האלמנט הרצוי והקשת 6!606. + על ידי בחירת האלמנט, לחיצה על תפריט 50% ובחירת האפשרות 61606. > על ידי לחיצה ימנית על האלמנט ובחירת האפשרות 08/6066 מהתפריט המקוצר. בצורה וו, תוכל למחוק את הפקד מהטופס ולהוריד את כמות האלמנטים במערך הפקדים. אס מסיבה כלשהי, תרצה לשנות את האלמנטיס במערך פקדים כך שלא יהיו שייכים למערך, עליך להגדיר לכל אחד מהס (פרט לאחד בודד) שס חדש, ולמחוק את ערך מאפייני א06ח1 שלהם כך שיחזרו להיות חסרי ערך (ווטא). מ אזהרה: בהסרת פקד מהמערך, שאר הפקדים אינם ממוספרים מחדש בצורה אוטומטית. משום כך, מחיקת פקדים עלולה להשאיר חללים במספור ערכי א06ח1 של האלמנטים שנותרו במערך. חללים אלה עלולים ליצור בעיות אם לדוגמה קיים קוד המשתמש בלולאת זס" כדי לעבוד עם האלמנטים במערך. במקרה זה, תתרחש שגיאה כאשר הלולאה תנסה לגשת לאלמנט במערך על ידי שימוש בערך א06ח1 שנמחק. 6 סדנת לימוד 6.0 8\ עבודה עם מערכי פקדים כעת, לאחר הבנת המכניזס העומד מאחורי יצירת מערכי פקדים, תלמד מספר דרכים לשימוש בו. סיבה אחת לאיחוד קבוצת פקדים כמערך אחד, הם כאשר נרצה להפעיל קוד והה לעיבוד הנתוניס על כל אחד מהפקדים בקבוצה. דוגמה לכך הן ארבע תיבות טקסט המייצגות יחדיו פרטי כתובת. סיבה נוספת היא פישוט כתיבת הקוד עבור שגרות אירועים. לדוגמה, אס יש לך 26 לחצני פקודה המייצגיס את אותיות האלף-בית הלועזי, קל יותר לטפל בהס כמערך מאשר להתייחס לכל פקד בנפרד. שימוש במערכי פקדים בתוכניות כפי שכבר למדת, קיימים כמה שימושים למערכי פקדים בתוכניות. אחד מהס הודגם קודס לכן, כאשר המרת טקסט, בכל אחד מהפקדים שעל הטופס לאותיות גדולות. פעולה נפוצה נוספת, במסגרתה נעשה שימוש במערכי פקדים, היא איתור לחצן האפשרויות (חסאט8 חסטקס) שנבחר מתוך מערך לחצניס. מאחר וניתן לבחור לחצן אחד בלבד בכל זמן נתון, תוכל להשתמש בלולאת זס=, כפי שמציגה הדוגמה הבאה: תוכנית דוגמה 13.1: דאד. צהחחהאסזזקס - שימוש במאפייני סחטספ 1 ו-6חטספ כדי לקבוע את טווח מערך הפקדים 5 ה056סח6ח ,%60617ח1 5 1 הזוס סחטספ!. ץפזורסקס סד סחטסס | סקס = 1 וס הסחד שטוּ/\. (1)ץ8זזב6קס + 1 = ה056ח6ח טטפ זוא + 0חם 1 אסא כפי שבוודאי הבחנת, תוכנית 13.1 משתמשת במאפיינים 6חט0פ! ו-סחטוסט במקוס להגדיר ערכים מדויקים עבור לולאת זס=. מאפייניס אלה מחזיריס את הגבול התחתון והעליון (בהתאמה) של ערכי האינדקס במערך הפקדים. באמצעות מאפיינים אלה ניתן לבצע הוספה והסרה אוטומטית של פקדים ממערכים. מאפייניסם אלה מקושריס למערך עצמו ולא לאלמנטים שבו. הערה: מאפייני סחטספ! ו-0חטספ מספקים ערכי מינימום ומקסימום של מספרי האינדקס במערך, אך אין בכך כדי להצביע שהאלמנטים במערך מסודרים בסדר רציף. פרק 13: עבודה עם מערכי פקדים | 367 מערכים מקבילים טכניקה שימושית במערכי פקדים היא שימוש במספר מערכים המכילים אלמנטים בעלי מכנה משותף. מערכים אלה נקראים מערכים מקבילים (3/5ּזזה |ס|ופזהק). ניקח כדוגמה את שני מערכי הפקדים שיצרת בתוכנית הדוגמה. מערך אחד הוא קבוצת תיבות טקסט אשר לתוכה המשתמש יכול להזין טקסט. המערך השני הוא קבוצת פקדי תוויות, כאשר כל תווית מתאימה לתיבת טקסט במערך הראשון. נניח שתרצה לשנות את התוכנית כך שתדגיש את התווית השייכת לתיבת הטקסט הנמצאת במיקוד, כך שתהווה סימן מאּהה למשתמש. תוכל להשיג מטרה זו על ידי הוספת קוד לשגרת 600-0605 (שיגרה המבוצעת בעת שהפקד מקבל מיקוד) של מערך תיבות הטקסט. קוד זה יקבע את מאפיין 800.)חס] של התווית הרצויה. כלומר, כאשר התוכנית מתמקדת בתיבת טקסט מסוימת, יגרום הדבר גס להדגשת התווית המשויכת אליה. כן יש להוסיף קוד לשגרת 1056-0605 (שיגרה המבוצעת בעת שהפקד מאבד מיקוד) של מערך תיבות הטקסט אשר יחזיר את התווית למצב רגיל. כדי להשיג מטרה זו, בצע את הצעדיס הבאים: 1 הקלד את שורת הקוד הבאה לתוך שגרת 601-0005 של מערך שְפזזת]א : סד = 0וסם.+חס=. (068ח1)ץ8 זזה וטו שיס לב כי הקוד, למרות שהוא נמצא בשגרת אירוע של מערך פקדי תיבות הטקסט, פועל למעשה על פריט במערך התוויות המקביל. משתנה א06ח1 משמש לקביעה על איה מהאלמנטים במערך התוויות יש לבצע את הפעולה. 2 הוסף את השורה הבאה לסוף שגרת 1051-0605 ץ8זז :א : 6 = 06ם.זחס=. (068ח1)ץ8 זזה וטו 33 הרצ את התוכנית. כאשר תעבור בין תיבות הטקסט, שים לב כי התווית המשויכת לתיבה הפעילה מודגשת. יצירת מערך פריטי תפריטים בנוסף למערכי פקדים, תוכל ליצור מערך המורכב מפריטי תפריט. כמו במערך פקדים, מערכי תפריטיס הס הדרך היחידה בה תוכל להוסיף פריטים לתפריט מסויס בומן פעולת התוכנית. תוכל להשתמש במערך תפריטים כדי להציג את רשימת הקבציס האחרוניס שהיו בשימוש על ידי התוכנית. אפשרות זו שכיחה בתוכניות רבות. כדי ליצור מערך תפריטים, יש צורך לפתוח את עורך התפריטים (לתץ על לחצן טחסו₪ זסטו0ם או בחר באפשרות זסזו0ם טח6ו מתוך תפריט 0|5ס1). לאחר מכן, צור פריטי תפריט על ידי הזנת מאפייני ח0ו0ק69 ו-6וחפּא עבור כל אחד מהפריטים. תרשים 13.5 מציג את עורך התפריטים אשר בו מוגדרים המאפיינים עבור מה שיכול להיות פריט ראשון ברשימת הקבציס האחתרוניס בשימוש. 8 סדנת לימוד 6.0 8\ |< | זסזו = ח6ו1 | 4 1 | :חסס3 | [006 חח ו ₪ (שחס)]) םס 0 6% [+ שחס) - 00| = :ה00ו600365005] 0 | :10א6לחסקופו טחוש -] ופפ ₪ בופבתם שן 8 | תרשים 13.5: תוכל להגדיר את מאפיין א06ח1 של פקד תפריט מתוך עורך התפריטים כדי ליצור מערך המורכב מפקדי תפריטים בדומה למערכי פקדים, אלמנטים במערך תפריטים חייביס לעמוד בדרישות מסוימות: + כל האלמנטים צריכים להיות בעלי מאפיין 6וחא והה. > כל האלמנטיס צריכים להשתייך לאותה רמה בתפריט. * הפריטים במערך חייביס להופיע ברציפות, אחד אחרי השני בתפריט. אס תרצה להוסיף שורת הפרדה בתוך הרשימה, עליך לכלול אותה כחלק מן המערך. + לכל אלמנט במערך חייב להיות מספר אינדקס ייחודי לו. טעינה והסרה בעת ריצה בפרקיס הקודמיס בספר למדת כיצד להוסיף פקדיס לטפסים בסביבת העיצוב. בסעיפים האחרוניס למדת כיצד ליצור מערכי פקדים כדי לטפל בקבוצות פקדיס בצורה נוחה. אולס, עדיין לא למדת כיצד להוסיף ולהסיר פקדיס בעת ריצת התוכנית. טיפ: אם אתה מתכנן להוסיף פריטי תפריט בזמן פעולת התוכנית, הצב את מערך התפריטים בסוף התפריט. באופן זה, תגרום לתפריט להתרחב אחרי הפריטים הקבועים ובכך לא תבלבל את המשתמש על ידי שינוי מיקום האפשרויות בתפריט. הערה: תוכל להסתיר ולהציג פקדים בזמן פעולת התוכנית על ידי שינוי ערך מאפיי ן | ך | 6פפו\ של הפקד המבוקש. אולם, עליך ליצור את הפקדים המבוקשים לפני שתוכל להשתמש בהם. הסתרה והצגה של פקדים אינה זהה להוספתם למערך. פרק 13: עבודה עם מערכי פקדים | 369 מ אזהרה: אם קיימות פקודות ]1 או 58!60 המתייחסות לפקדים לפי ערך האינדקס, ודא שהקוד פועל על כל האלמנטים במערך, כולל אלמנטים חדשים אשר עלולים להתווסף בעת ריצה. מאפייני 6חט0פ! ו-סחטסט מסייעים להשיג מטרה זו. אך זכור שהאלמנטים במערך לא מסודרים בהכרח בסדר רציף. יצירת האלמנט הראשון במערך פקדים אנו ניצור את האלמנט הראשון שלנו בזמן פיתוח כדי לפשט את הדוגמח: 1 הוסף את הפקד לטופס. 2 קבע את מאפיין חגא של הפקד. 3 קבע את מאפיין א06ח1 של הפקד כמספר שלם (אפס בדרך כלל). שים לב כי הכנסת ערך כלשהו במאפיין א06ח1 גורמת ליצירת מערך פקדיס. אס תעתיק ותדביק פקדים, 8856 |508/\ תקבע את ערך המאפיין עבורך. הוספת פקדים בזמן פעולת התוכנית לאחר שיצרת את האלמנט הראשון במערך, תוכל להשתמש בקוד כדי להוסיף אלמנטיס אחריס בתגובה לאירועיס אשר יתרחשו. ביישומיס רבים תוכל להוסיף את הפקדיס בומן טעינת הטופס. דוגמה לשימוש בטכניקה זו הינה ליצור טופס המיועד לקליטת מידע כללי. על ידי שימוש במערך פקדים, תוכל להעביר קבוצה ראשונית של רשומות לטופס, ולאחר מכן ליצור פקדיס בכמות שתרצה, כדי לטפל במספר משתנה של שדות ברשומה. (מערך רשומות (66070560), מייצג מידע בבסיס נתוניס. מידע נוסף על רשומות ניתן למצוא בפרק 24 יסודות מסד הנתונים). כדי להוסיף פקד בזמן פעולת התוכנית, עליך להשתמש בפקודת 1080. פקודה זו והה לפקודה המעלה טופס לזיכרון. כאשר אתה משתמש בפקודה, עליך לכלול את שס הפקד הרצוי ואת ערך האינדקס שלו. כדי למנוע טעויות, עליך לוודא שערך האינדקס ייחודי. שים לב כי מאפיין 6\פופו\ של הפקד נקבע כ-8156=. להלן תהליך הוספת פקד: 1 השתמש בפקודת 1086 כדי ליצור את הפקד החדש ולטעון אותו לזיכרון. 2 הפקד החדש יוצג במיקוס הפקד המקורי מפני שהוא יורש את מאפייני הפקד המקורי (כולל ערכי המיקוס שלו). לפיכך, עליך להזיז את הפקד בעזרת פקודת סו או על ידי קביעת ערכי מאפייני קסד ו-16% שלו. 3 כדי שהפקד יופיע על הטופס, קבע את מאפיין 6|פופו/\ כ-6טזד. 4 קבע מאפיינים נוספים לפי הצורך (כל ערכי המאפייניס הועברו מהפקד שעוצב במקור בסביבת העיצוב). 0 סדנת לימוד 6.0 8\ טיפ: קביעת ערך האינדקס של האלמנט החדש, כאחד אחרי מאפיין סחטספש, מבטיח שלאלמנט יינתן ערך אינדקס ייחודי. כעת, בדוק את הטכניקה על ידי הוספתה לתוכנית הדוגמה. הוסף לחצן בדיקה שיהיה אחראי על הוספת אלמנט למערך פקדי ץ8זו\)ט על ידי ביצוע המהלכים הבאים: 1. בסביבת העיצוב, קבע את מאפיין ₪6198% של הטופס הראשי כ-6000. ערך וה מאפשר מקוס רב עבור הפקדיםס החדשיס אשר יתווספו כאשר התוכנית תרוצ. 2 הוסף לחצן פקודה (הסשטם 0800ח60) באזור ריק בטופס. קבע את שמו כ-0400ח6 ואת מאפיין הסוזכקְ63 שלו כ-אסט %א6ז בּ 064. 3 הזן את הקוד הבא לתוך שגרת 616% של מערך 604006 : זז 5 1 וחוס בחטספ!\.ץ8זהס = 1 (1 + 1)ץ8ז0 1080 סד = 6|סופו/\. (1 + 1)ץ8ו\ )אס 0 + הסוסה (1)ץ8זו\ס)ס + קסד.(1)ץ8 אס = קסד.(1 + 1)ץפזוהס זז = 1(.16% + 1)/ץ8ו\ )אס הקוד המובא כאן קובע את מיקוס האלמנט החדש במערך כך שיהיה 120 נקודות (5קוא)) מתחת לפקד האחרון שהתווסף (תוך התחשבות בגובה הפקד עצמו). הפעל את התוכנית ולח על הלחצן כדי לנסות אותה. תרשים 13.6 מראה כיצד ייראה הטופס לאחר מספר לחיצות. [<1ה)- | [חזס ]₪ שו ררה :6 +פזו ררה 6 1.891 7000707073 ]| ררה 6 תרשים 13.6: ניתן להוסיף אלמנטים למערך פקדים בזמן פעולת התוכנית פרק 13: עבודה עם מערכי פקדים | 371 הסרת פקדים בזמן פעולת התוכנית כשס שאתה נדרש להוסיף פקדים במהלך ביצוע התוכנית, תידרש גם להסיר אחד או יותר מהס. ניתן להסיר פקד בעזרת פקודת 080וח/\. כמו בפקודת 1080, יש צורך לציין את שס הפקד ואת ערך האינדקס שלו כמתואר בדוגמה הבאהח: (5)ץ8 זז וסהסוח \ ם אזהרה: תוכל להשתמש בפקודת 6ס!חש כדי להסיר פקדים אשר נוצרו בזמן פעולת התוכנית בלבד, ולא להסרת פקדים אשר נוצרו קודם לכן בסביבת העיצוב. קודס לכן גילית שניתן להשתמש במערכי פקדים כדי ליצור טופס לקליטת מידע כללי. מטרת הטופס היא לבדוק את מבנה הרשומה הרצויה, וליצור פקדיס המטפלים בכל השדות ברשומה. בסעיף וה תלמד כיצד פועל טופס מסוג זה. כדי לפשט את העניין, נגדיר עבור הטופס שני מערכיס: הראשון עבור תוויות המתארות את השדות, והשני עבור תיבות הטקסט אשר תקבלנה את ערכי השדות ברשומה. כדי להתחיל את הגדרת הטופס, הוסף מערך תוויות ומערך תיבות טקסט לטופס כמתואר בתרשים 13.7. הערה: כדי ליצור אלמנטים במערך ולא פקדים נפרדים, קבע את ערכי האינדקס של התווית ותיבת הטקסט כ-0. בנוסף, יש צורך להוסיף פקד נתונים (|סח60 פּזהכ) לטופס כדי לספק את מבנה הרשומה לטופס. תוכל ללמוד על פקד הנתונים ופקדים הקשורים לו בפרק 25 פקד הנתונים ופקדי איגוד נתונים. [<זם) -] (חזס ]זט - 601ן0ז .₪ ם ם בו עו > עפזזבוט| > תרשים 13.7: בסביבת העיצוב, טופס קליטת המידע בגרסתו ההתחלתית, מכיל את האלמנטים הראשונים בשני מערכי הפקדים 2 סדנת לימוד 6.0 8\ הערה: 6ח8108850\8 - המאפיין שמכיל את שם 08088856 (מסד הנתונים). 6 - המאפיין שמכיל את שם מקור הנתונים מתוך מסד הנתונים. עליך לקבוע את מאפייני 2882856886 ו-166ט₪6607050 של פקד הנתוניס כדי לגשת לרשומה. לאחר שהגדרת את פקד הנתוניס, הקצה את הפקד למאפיין שסְזטספפּזהס של תיבת הטקסט. מאפיין זה יועבר לכל אחת מתיבות הטקסט שתתווספנה לטופס. לאחר מכן הזן את הקוד המובא בתוכנית 13.2 לטופס. תוכנית 13.2: ₪2./87 |קוזה5 - שימוש באוסף השדות לצורך יצירת פקדים זוסווקא= הסטקס ח00|68 5 080 הפוס וחוס ()61/816\/ וחזזס-] סנ5 סזפּעוזוק חן 5 1 הזוס זז 5 6!05!=ח חחוס 0חוז5 5 5836 וחום טפ וא הסח ד 080 הזוס 6+סא ]1 0313 וטו %ח1605.00=. = 6!05ו=ח 1 - 05|וח סד 0 = 1 וס סרחה ). (16|05)1=]. = 51436 החד 0 < זז (1)ץזוה\ט! 080 | (1)ץ 06 080 | 0 / 00ו1(.6 - 1)ץ8זו\אט + קסד.(1 - 1)ץ8ז\ = כסד.(1)אט 8% - 00801 = 66 ].(1)ץ8ו\ )אס סס ד.(1)ץ8 וס = ססד.(1)ץ8זהוטו - 1)ץ8זזהופ! = 1(.16%)ץ3זהוטו סד = 6|טופו/\.(1)ץ8ו\ )אס סד = 6!טופו/. (1)ץ8זזהוטו + 0חם 6ח5\8 = חסטכה1(.60)ץ8זזהוטו 586 = 0ו6ו8%3כ. (1)ץ8זזהוטו 1 )אסא וו\\ סח סחטסט(\. ץ8זז הס = 1 0 + 6000 (1)ץ8זס + קסד.(1)ץ8 הט = סס ד.חו8ז0 5 + 161006 חו0+91[3 + קס ד.חו01818 = 00%ו46]. סו 6 = 080 8פזופ טט5 0חם פרק 13: עבודה עם מערכי פקדים | 373 ()ו080 | וחזס-] סט5 6פעווק 6 = 080 56זוח סט 0ח= 9 קוד וה מוסיף תווית חדשה ותיבת טקסט עבור כל שדה אחרי השדה הראשון. פקדיס חדשיס מוצבים מתחת למערכת הפקדים האחרונה. לאחר מכן נקבעים מאפייני ח00ק68 של פקד התווית ו-60ו86כ של פקד תיבת הטקסט. לאחר שנתווספו כל השדות, התוכנית מציבה את פקד הנתונים מתחת לפקדים האחרים, ומשנה את גודל הטופס כך שיכיל את כל הפקדים. דוגמה לכך מוצגת בתרשים 13.8. תוכנית דוגמה היא ק580!62./8. הערה: בטופס מוגדר מסד הנתונים ט6ח.סוופום כממוקם ב- 60ח.סו|פו6:\/86\8. מסד נתונים זה הינו מסד נתונים לדוגמה שמגיע עם 8856 |1508/. אם מיקומו שונה אצלך במחשב, שנה את מיקומו במאפיין חהּאף85ַ8זכ, ראה תרשים 13.9. ופ אטח 800-105 1005 חזמזסמם ץופנ חנו טספ חפה 060% אפ 0% 6 ₪ ₪ 7 ש 5 ₪ ₪ ו | |= | ₪ ₪ שוח -5- [0006 חס - ןכ ו || וזו ( א 60) הס ב 6068סמ1 5 1 מצפ 1066065 25 16185תםמ מצפ שמ5001 3ג שעם50 מבפ תרשים 13.8: טופס הנתונים הכללי יכול לטפל כמעט בכל סוג רשומה 7-7 וה = מו5 8%16 משמד 0088ס5מגעם ססא 15 ו ₪ רו 4 סדנת לימוד 6.0 8\ וב 01374 - פסוזסקטזי [- 8 חו13 + ] ן | ו הזב 6חסא - 0 1-35 58 זו 6ס! - 0 1 5 6/0 - 0 2-6 (שחסו]) חב - 0 שטזד שעם! - 0 6 תרשים 13.9: מאפיין חהּ% הזכ של חב 5 3630350636 מ 33 3 זס] 363 ]0 66 זוס5 56 ]0 חס0ב06! חב הבח 6רל 5/5685הזטססת מכאן... בפרק זה, למדת מספר טכניקות בהן תוכל להרתיב את ביצועי תוכניותיך באמצעות שימוש בפקדיס. למדת כיצד לשפר את יכולות התכנות שלך על ידי שימוש במערכיס המקבצים יחדיו קבוצת פקדיס בעלי מכנה משותף. בנוסף, ראית כיצד להוסיף פקדיס בצורה גמישה במהלך ביצוע התוכנית. למידע נוסף על חלק מהנושאיס המדוברים בפרק זה, עיין בפרקים הבאים : > כדי לקבל מידע כללי נוסף על פקדים, ראה פרק 4 שימוש בפקדי ברירת המחדל של 83516 [150/, ופרק 12 הפקדים המשותפים של 6ס5סזסוו/. 5 בסיסי נתוניס ורשומות מוצגיס בפרק 24 יסודות מסד הנתונים, ומתואריס בצורה מפורטת יותר בפרק 26 שימוש באובייקטי גישה לנתונים (ס0). פרק 13: עבודה עם מערכי פקדים | 375 14 יצירת פקדי א6עו46% פרק 14: יצירת פקדי 606 | 377 בפרקיס הקודמיס למדת כיצד ליצור שילובי פקדיס הקיימיס ב- 8856 |8טפו\ כדי לבנות יישוס חזק. אחת האפשרויות המלהיבות ביותר של 8856 |50ו/\ היא האפשרות ליצור פקדים משלך. פקדים מותאמיס אישית אלה, הידועיס גס בשס פקדי א6עו46% (₪0!5ח60 6/6%ה), יכוליס לשמש כפקדים בכל יישוס 8856 |1503/\. (6%ע1ז6 הינו כינוי של חברת 167050% לקבוצת פריטים הכוללת פקדים, ספריות 11ם ומסמכי א6ע6). בנוסף ליתרון הברור בשימוש בקוד, ניתן להשתמש בפקדי 606% בדף 60/\ כדי לקבל תפקוד הדומה לפעולת תוכנית באינטרנט. בפרק זה תראה את הגישות שתוכל לנקוט וכמה מהדבריס שעליך לקחת בחשבון כאשר אתה יוצר פקדי 860/6%. המידע הקיים בפרק זה יורחב בפרק הבא, הרחבת פקדי א6עוז46 אשר ילמד אותך כיצד לבנות פקדים מתוחכמים יותר מסוג זה. מבוא ל-6%/ו46% כעת אתה כבר מכיר פקדים כגון פקד א80)א6ד ופקדי תוויות. כדי להשתמש בפקדיס אלה, עליך לשרטט אותם על טופס ולשלוט בצורה שבה הס יתנהגו בעזרת מאפייניהם, השגרות השייכות להס והאירועיס המקושרים אליהסם. כאשר אתה יוצר פקד 460/6% משלך, אתה יוצר אובייקט דומה, אולס אתה קובע מה יהיו מאפייניו, השגרות השייכות לו והאירועיס אשר יכוליס להפעיל אותו. לאחר יצירת הפקד, תוכלו אתה ואחריס להשתמש בו בפרויקטיס של 88516 |1508/, בדיוק כפי שאתה משתמש בפקדיס אחריס כגון פקד א16%080. למעשה, שימוש בפקד א6%ע460 מהווה את הדרך הטובה ביותר ליצור רכיב אשר ניתן יהיה להשתמש בו מתוך קוב> 5אם נפוצ מסוג שרת/לקות וכן על גבי האינטרנט. הצעדים בבניית פקדי 6%עו46% יצירת פקד 6%צ460 בשפת 8856 |08פו\ שונה מיצירת יישוס 5א5 רגיל. הנה תקציר הצעדיס הדרושיס לבניית פקד כזה: 1 החלט, ברמה פרטנית, מה יהיה השימוש בפקד שתיצור. פקד א8ש460 דומה לאובייקט עצמאי ולכן עליך לשאול את עצמך לאיוו מטרה אתה יוצר אותוז איך אתה רוצה להציג אותו על המסך! אילו מאפייניס, שגרות ואירועיס המקושרים לו יהיו זמיניס לתוכניתז 2 החלט אס תשתמש בפקדים אחרים כאבני בניין לפקד שלך. לדוגמה, תוכל ליצור פקד 606% אשר יכיל תצוגת רשת מפקד של חברה אחרת. כאשר אתה משתמש בפקדיס חיצונייס, קח בחשבון את נושא זכויות היוצריס על הפקד. 3 התחל פרויקט חדש מסוג |₪0ח60 6%ע460 ושרטט את הממשק עבורו. 4 הוסף קוד כדי ליצור מאפייניס, שגרות ואירועיס שתרצה שיהיו לפקד. 5 בנה פרויקט ניסיון ובחן את הפקד מתוך 8856 |1508/. ודא שהשתמשת בכל המאפיינים, שגרות ואירועיס שניתן להשתמש בהם עבור הפקד. 8 סדנת לימוד 6.0 8\ 6. הדר את הפקד לקובץ 06% ובצע את הבדיקות על גרסת הקובץ. אס אתה מפתח את הפקד עבור שימוש באינטרנט, בדוק את הפקד כשהוא מוצב על דף ב-65/\. 7 השתמש באשף ז%חסוחץס!ק6כ 6חה מְאַ8א6ק או בתוכנית שירות אחרת, כדי לבנות גירסה הניתנת להפצה המכילה את כל הקבציס הדרושיס לפקד. אסטרטגיות פיתוח בניית פקד 46006% ב- 88516 |1808/\ יכולה להיות משימה מורכבת או פשוטה בהתאס לבחירתך. רמת הקושי תלויה בשאלה אס אתה מתכוון להשתמש בפקדים קיימים, מה רמת תתכוס הממשק, וכמובן, בכמה קוד אתה מתכוון להשתמש. בכל מקרה, תוכל לבצע את תהליך הבנייה בשלוש דרכיס בסיסיות : + > בנה את הפקד מפקדים קיימים. גישה זו ידועה גס כבניית פקד מתוך פקדים קיימים (0₪015ח60 %ח50006ח600). דרך זו היא הקלה ביותר מפני שאתה מאחד למעשה פקדיס קיימים. לדוגמה, תוכל לארוז פקד אסם ספוח 60 ו- אסם )אשד יחד, ולכתוב קוד מינימלי אשר יגרוס להס לתקשר ביניהס בדרך הרצויה. > שפר פקד קיים. תוכל להשתמש בפקד קיים כנקודת הפתיחה ולשנות את מאפייניו לצרכיך. לדוגמה, תוכל לקחת פקד אסם 6%6ד ולהוסיף מאפיין אישי בשס 65 שיגרוס לטקסט להיות מוצג תמיד באותיות גדולות. שיטה זו חינה דרך טובה להשיג מהפקד את הפעולה המבוקשת בצורה מדויקת. % %* צור ושרטט פקד מותאם אישית. תוכל לשרטט את הממשק בעצמך בעורת פקודות גרפיות, וליצור פקד מקורי לחלוטין אשר אינו מכיל אף פקד קיים. תהליך ה דורש עבודה רבה יותר משתי השיטות הקודמות, אולס הוא מאפשר ליצור ממשק משתמש מקורי או שונה במקצת מהממשק הקבוע. פרק זה יציג בפניך את עולס יצירת פקדי א6%ש260. תלמד על כל אחת מהשיטות המתוארות כאן בעזרת פרויקטים לדוגמה, וכן תלמד כיצד להפיצ ולהדר את הפקד הסופי. פרק 15 הרחבת פקדי א6עו69, מציג בפניך כמה מהנושאיס המתקדמים יותר לגבי פקדי א860/6. יצירת פקד 6%שו46% בניית פקד 6%ש861 מפקדיס קיימים צופנת בחובה יתרונות רבים. קודס כל, כאשר אתה מוסיף פקד קיים לפקד שלך, אתה מקבל את יכולת הפעולה המלאה של הפקד הקיים - שיקול חשוב מבחינת כמות השגרות והמאפיינים הנתמכים על ידי פקד ממוצע. שנית, שילוב מספר פקדיס לפקד אחד מאפשרת להתייחס אליהם כיחידה בודדת, דבר העשוי להקל מנקודת מבט היישום. גישה זו מאפשרת גם לצייר את כל הפקדים על המסך בבת-אחת. יתרון נוסף הוא שלמשתמשים יהיה קל יותר להבין פקד הבנוי מפקדים המוכריס להם. פרק 14: יצירת פקדי אש60ה | 379 התחלת פרויקט פקד הדוגמה 4007655 כעת, לאחר שיש לך קצת רקע בנושא פקדי 60/6%ה, תוכל להתחיל לתרגל על ידי יצירת פקד א460/6% ראשון. הפקד שתבנה בסעיף זה יהיה פקד ₪00765560, המכיל אוסף תיבות טקסט המאפשרות למשתמש להקליד את שמו וכתובתו. דוגמה זו תספק לך דרך טובה להבין את הנושאיס הכלולים בפיתוח פקדי 6%ע60 בסביבת 8856 |8טפו. פקד 800765506 ייבנה כולו מפקדי תוויות ותיבות טקסט. ראשית, שרטט את ממשק המשתמש של הפקד והוסף קוד מינימלי כדי לאפשר לפקד לעבוד בסביבת העיצוב של 88516 |1508/\. |< ום). ‏ (01ז4ה115610:0) 1!סזוהס:5610 - ווס6ןסז מ |במשא ₪ אב תרשים 14.1: אובייקט |00ח60ז56 דומה לטופס, אולם אינו מכיל שוליים או אלמנטים המופיעים בחלון רגיל כדי לבנות את פקד 4007655, בצע את הפעולות הבאות. 1 היכנס לסביבת הפיתוח של 8856 |508ו/\ ובחר 66%[סיוק שפא מתפריט שוום. 2 מתוך תיבת הדו-שיח בחר 6%ע46%. דבר זה יגרוס ליצירת פרויקט חדש המכיל אובייקט |80ח050760\ בשם 0₪8011ח056760\, כמתואר בתרשים 14.1. 3 שנה את שס הפקד ל-46676556%8 בחלון המאפיינים. 4. בחר 00671165 0[66%זפ מתפריט 66%[סזפ כדי להציג את מאפייני 661[סזס. 5 ב- 8316 0[66%ז, שנה את שס הפרויקט (0[6601זק) ל-₪007655. 6. |מ] הוסף חמישה פקדי א80 16%. מחק את מאפיין א6ד שלהס וקרא להס: חא <* | %> ססוש‎ 6 ל ** סאשוק‎ 0 סדנת לימוד 6.0 8\ 7 הוסף חמישה פקדי תוויות לטופס ותן להם את ערכי המאפייניס הבאיס : מאפיין החסו2%ק63 מאפיין סוהבּא :3 סוחהּ )וטו הבוב ו :וס שוסופו ויב !מ :כ|2 מולוטו 8 סדר את התוויות ליד תיבות הטקסט המתאימות. לחי על אובייקט |%0ח60ז56 ושנה את גודלו כך שהפקדיס הנמצאיס יתאימו לגודל האובייקט. תוכל לשנות את גודל הפקד על ידי שימוש בידיות שינוי הגודל או שינוי מאפייני ₪48100% ו-חז0ו/\ בחלון המאפייניס. פקד הדוגמה אמור להיות בגודל של כ-4395 על 3600 5 שד והוא אמור להיראות כפי שמתואר בתרשים 14.2. 9 כמו שעשית בכל הפרויקטיס בשפת 88516 |1808/\, שמירת עבודתך הינה דבר חשוב ולכן עליך לעשות ואת לפני שתמשיך. תרשים 14.2: הקבוצה המלאה של הפקדים המאוחדים משורטטת על גבי פקד [0זחס5676\ הוספת קוד לשינוי גודל הפקד כפי שכבר ידוע לך משימוש בפקדים רגילים כגון פקד %80%א6ד, תוכל לקבוע את גודל הפקד בסביבת העיצוב על ידי שימוש בעכבר או על ידי קביעת מאפייני %ח0ו6 ו-חזסו\ שלו. פקד א%90א6ד מתוכנן להגיב לאירועים מסוג זה על ידי שרטוטו על גבי המסך בהתאם לגודלו החדש. כאשר אתה מעצב פקדי א6שו860 משלך ובייחוד פקדים הבנוייס מפקדיס קיימים, יש לשים דגש על נושא שינוי גודלס. כאשר אתה משנה את גודל הפקד, עליך לנקוט בצעדיס המבטיחים כי הפקדיס הכלולים בו לא יוסתרו מעיני המשתמש או יסודרו בצורה שתמנע את פעולתו היעילה של הפקד. פרק 14: יצירת פקדי א6ש60א | 381 כדי לטפל בפקד כזה, עליך להוסיף קוד שיידע להגיב לשגרת ₪65!26 של אובייקט (₪0ח60ז056!. קוד זה יופעל בכל פעס שמישהו ישרטט פקד זה בפרויקט 8856 |1508/\. כדי להוסיף את הקוד הנחוץ לפקד 1007655, בצע את הפעולות הבאות : 1. לת לחיצה כפולה על אובייקט |₪0ח60ז056, כפי שאתה לוח בדרך כלל על טופס רגיל. דבר זה יגרוס לפתיחת חלון הקוד. 2 בחר את שגרת ₪65126 מתוך תיבת השגרות של חלון הקוד. 3 הוסף את שורות הקוד הבאות לשגרת 26ו₪65 |₪0ח60ז056 : ()05126] |%70ח0567000\ סנ5 סזבּעווק (00ח56700\ וטו 5 50ח6רחו התטורתוחורח 66זס1חם ' 5 = 00%ו6. הסח ד 3615 > %חחוסרו. זז 5 = וסשו/\. חסחחך 2175 > חשסוש\. ]ז (₪0ח60 06 חס 00[6005 ₪6526' 0 - ה56816\/100. = ה0ו/\. סרחהּ\)אט 0 - 00ו//568!6. = ה57060.\/10%)אט 0 - ה568!6\/10%. = השססו\\. ואט 0 -- 2 / הז0ו\568!6. = הזסו/\\.סו2)א6 0 - 2 / ו568|6/100. = 060ו//\,. 656866 אס 60 2106006 606 שעסון' 0 + 2 / ה00ו/\568|6. = 6% |.0ו2)א 0 + 2 / ה00ו/\568|6. = 6% |.סולופו חזו\\ |ו0ח= 50 0חם 4 שמור את השינוייס שביצעת בפרויקט. הערה: המספרים המגדירים את גודל הפקדים בשגרת הדוגמה נקבעו בצורה שרירותית. מטרתם לשמור על תצוגה נאה של ממשק הפקד בעת שהמפתח משנה את גודלו. כאשר המשתמש משנה את מימדי פקד 007655, שגרת ₪656 מופעלת. שתי שורות הקוד הראשונות בדוגמה שהובאה כאן מונעות מהמשתמש מלהפוך את עותק הפקד לקטן מדי. השורות האחרות דואגות לשנות את גודל כל הפקדים בקבוצה תוך התחשבות בגודל אובייקט |₪0ח60ז56ש. 12 סדנת לימוד 6.0 8\ הוספת מאפיין חדש לפקד קיבוצ כמה תיבות טקסט בפקד א8460/6% מציג אותן בצורה מאוחדת ומאפשר לך לשרטט את כל תיבות הטקסט בטופס בפעולה בודדת. אולס, כדי שפקד 466% יהיה יעיל, עליך לגשת למאפייניו, שיטותיו (66650005) והאירועיס המקושרים אליו באותה צורה שבה הינך ניגש לפקד בודד. במילים אחרות, אס אתה מתכוון להתייחס לפקדיס הכלולים בו בצורה נפרדת כאשר אתה כותב את הקוד, לא עשית הרבה כשאיחדת אותס בפקד בודד. במקרה פקד 007655, מטרת הפקד היא לספק דרך לקבל את מידע הכתובת. מסיבה זו, תיצור מאפיין בשס 6 40076551 בפקד 655ז400, אשר יהיה דומה לפקד 16% בפקדי תיבות הטקסט. ההבדל הוא שמאפיין ‏ 6% 80076551 מחזיר את הטקסט מכל תיבות הטקסט בטופס כמחרוות בודדת. כדי לשמור על פשטות העניין, המאפיין יוגדר כניתן לקריאה בלבד על ידי שימוש בשגרת המאפיין 66% (מידע נוסף על שגרות מאפיינים ניתן למצוא בפרק 16, מחלקות: שימוש חוזר ברכיבים). ראה: "שגרות מאפיינים", פרק 16. כדי לקבוע את המאפיין, פתח את חלון הקוד עבור אובייקט |0ז5676000 והוסף את הקוד הבא : 0חוז5 5/ ()6 ] 4007655 6% ע+וסקסיק 6וופגוק 59 5 5 הזוס 8 שוחהּ\ס = 5 8 050706 8 5 = 5 + 8 000 8 5 = 5 + 86 050906 8 5 = 5 קושאס 8 5 = 5 5 = 6 ]4007655 ץדסקסזק 0ח= קוד שגרת המאפיין 66 אינו מתותכם. הוא משלב את תוכן הטקסט של קבוצת הפקדיס ומחזיר אותו כמחרוזת בודדת לתוכנית שקראה לו. אולס, ביצירת מאפיין זה הודגם רעיון לקיחת משימה (שילוב שדות הכתובת למחרוזת אחת) וביצועה תוך הוספת האלמנטים שלה לאובייקט (הפקד א6עו16). היתרון הוא שמפתחיס אחריס יוכלו להשתמש במאפיין וה ללא צורך בהבנת דרך הפעולה של מרכיביו. פרק 14: יצירת פקדי אש60א | 383 בדיקת פקד 6%עוז46% פקד 60/6% מגיע ללקוח בדרך כלל בצורת קוב מהודר מסוג 06%. קובץ זה, כאשר הוא נקלט במחשב משתמש אחר, יכול להתווסף לפרויקט 8856 [1508/\ או להיות מוצג בדף אינטרנט באמצעות דפדפן. אולס, בתהליך הפיתוח חייבת להיות לך דרך לבחון את פקדי א6ש460 ולנפות את השגיאות האפשריות בהס בתוך סביבת הפיתות של 6 |8פו/\. תהליך גה מורכב מעט יותר מניפוי שגיאות רגיל בפרויקט 5אם, מפני שעליך להתמודד עס שני חלקי קוד פעיל: פקד א6ש860 עצמו, והפרויקט המשתמש בפקד זה. בדיקה בעזרת קבוצת פרויקט הדרך הקלה ביותר לבחון רכיב 6%ש60 הוא להשתמש בקבוצת פרויקט 660[סוק קטסז6). בדוגמאות המוצגות בספר ּה, תעבוד עס פרויקט אחד בלבד בזמן נתון, כלומר שכאשר תבחר ביצירת פרויקט חדש מתוך תפריט 6!ו= של 88566 |הטפוצ, כל הפרויקטים אשר היו פתוחיס ייסגרו. סביבת העיצוב של 8856 |1808\ מאפשרת לך לפתוח כמה פרויקטים בעת ובעונה אחת. סידור זה ידוע כקבוצת פרויקטים והוא שימושי למצב שבו מבקשים לבדוק רכיבי 6%ע86. קבוצת פרויקט טיפוסית תכיל את רכיב א6ע60 עצמו, ופרויקט בדיקה (הבנוי כפרויקט 5אם רגיל). הוספת פרויקט בדיקה לקבוצה כדי להתחיל בבדיקת רכיב 00765560, עליך להוסיף פרויקט 5%5 רגיל מתוך תיבת 6% 6₪0ג2. חלון סייר הפרויקטים יתעדכן ויציג את שני הפרויקטים, כפי שניתן לראות בתרשים 14.3. טיפ: כ תוכל להוסיף פרויקט רגיל מסוג 5א5 על ידי לחיצה על הלחצן 0[60ז₪ ₪00. [קטוסזג) - קטסזג וספוסזק חס זספ0) 47% [=] (40076554-01.60) 076556 ₪ (8601[סזם) 8661[סזק 5:5 ם פוחזס= %-|=] (1חחזס=]) ו 3 תרשים 14.3: תוכל לפתוח פרויקט נוסף למטרות בדיקת הרכיב 4 סדנת לימוד 6.0 8\ יצירת פרויקט הבדיקה כאשר הוספת את פרויקט 5א5% לקבוצה, בוודאי הבחנת שנוסף סמל אפור (מעומעסם) לארגז הכלים. סמל זה מייצג את הפקד שלך והוא יישאר מנוטרל כל עוד הטופס (056760080) פתות. סגור את חלון |0056760080 ופתח את טופס ברירת המחדל של 601[סזם. הסמל המייצג את הפקד שלך יופיע בארגז הכליס ואמור להיות ומין. כאשר תציג את סמן העכבר מעליו יופיע שס פקד הדוגמה, 001765560 כמתואר בתרשים 14.4. | |8זפחסב תרשים 14.4: כדי להפוך את פקד א6ש460 שיצרת לזמין, סגור את חלון |סשחססז56\ כעת, פקד א26006 זמין. תוכל לצייר עותק ממנו על הטופס, כמו שאתה עושה עס שאר הפקדים. שים לב שהוא מופיע בדיוק בצורה שבה שרטטת אותו בחלון |₪0ח60ז56, אולם הוא מתנהג כמו פקד בודד. כל תיבות הטקסט בתוך הפקד זזות בתיאום, וכן אין אפשרות לבחור אחת מהן בנפרד מהשאר. בנקודה זו, אובייקט פקד א6שו8₪ טעון בויכרון ופועל. נסה לשנות את גודל פקד 8007655 בטופס. כאשר אתה משנה את גודלו בעזרת העכבר, הקוד בשגרת ₪6526 של אובייקט 5676000 שומר שגודל תיבות הטקסט השייכות לאובייקט, ישתנה בהתאם. אס תנסה להקטין את גובה הפקד בצורה קיצונית, הפקד יחזור לגודלו המינימלי, כמוצג בתרשיס 14.5. מצד שני, תוכל להגדיל את מימדי הפקד ללא הגבלה. 05500 | |ם) = [חזס] ₪ ב 3-3 שום תרשים 14.5: יישום הבדיקה מציג את פקד 4007655 כאשר הוא בגודלו המזערי פרק 14: יצירת פקדי אפש60 | 385 יצירת הפרויקט ההתחלתי כעת, לאחר ששרטטת עותק של הפקד על הטופס, תוכל להתחיל בבדיקת הפרויקט. בקבוצת פרויקטים, עליך להגדיר איזה פרויקט יהיה הפרויקט ההתחלתל (כ50300 %). 8856 |1808/\ מעבירה מיקוד לפרויקט זה, ומעלה את הפרויקטיס האחריס באופן אוטומטי. עליך לקבוע את פרויקט הבדיקה, 661[סזט, כפרויקט ההתחלתי, כדי לבדוק אותו יחד עס פקד 606% שיצרת. לח לחיצה ימנית על השס 6061[סזק בחלון סייר הפרויקטים, ובחר את האפשרות 00 +59 85 56% מתוך התפריט שיופיע, כמוצג בתרשיס 14.6. פרויקט 0[6001זק יודגש כסימול לכך שהוא הפרויקט ההתחלתי. [וסזג - קוסזב + (קפצ.655ו00) 2000655 לק -1 חס 056 65%[ (60, |-20076556)) |0076556-8 ₪ כן) 558% 85 56% פחזזסת 45% = .065זפקסז 0[6661זק זס>) הזוס 1 58%8 ןז 6שיסחחס 8 ו = 06 מ 6 תרשים 14.6: קבע פרויקט 5א5 כפרויקט ההתחלתי. פרויקט 466% יופעל אוטומטית הפעלת תוכנית הבדיקה כדי להפעיל את תוכנית הבדיקה, הפעל אותה בעזרת מקש 5" או על ידי לחיצה על הלחצן +59 של ₪856 |1508/\. הטופס ייטען לזיכרון ותיבות הטקסט של פקד 4007655 תהפוכנה זמינות. הקלד טקסט כלשהו בכל השדות והקש 6₪1+8768% כדי להעביר את הפרויקט למצב שבירה (1006!] א68ז8). פתח את חלון 60!806וחוח1 בהקשת 6+!60 והדפס את ערך מאפיין 6% 400176551 על ידי הקלדת הפקודה הבאה: 010655 1 |0076556-1 +חוזק אס תראה את הטקסט שהזנת בתיבות הטקסט, הרי שהפקד עובד כשורה. בנוסף, שיס לב שבהקלדת פקודת >6חוזק, 88516 |ה1508\ מציגה את כל המאפיינים השייכים לפקד ברשימה מוקפצת 1150 ק0-קסק). מאפיין 6% ז4007655 כלול ברשימה. אס לא תוכל להדפיס את ערך מאפיין 6% 8006551 בצורה נכונה, ודא שהקוד בשגרת המאפיין 661 הוקלד כראוי. כדי לקבל מידע נוסף על ניפוי שגיאות מתוכניות, ראה פרק 10, שליטה במהלך התוכנית. תוכל להשתמש בשיטות המתוארות כאן כדי לעבור על הקוד בשגרת המאפיין 6% 40076551 לבחון את ערכי המשתנים ולוודא תקינותם. ראה: "ניפוי שגיאות קוד", פרק 10. 6 סדנת לימוד 6.0 8\ בדיקת הפקד בעזרת זסיוס|קאם 6%חו6+חז בסעיף הקודס ראית כיצד תוכל להשתמש בפקד 007655 שיצרת בשילוב עס קבוצת פרויקטיס של 88516 |08פ1\. כפי שאתה כבר יודע, ניתן להשתמש בפקד 606% בצורתו המהודרת בדפדפן זסזס|קאם 6%חזססה1 בדף 60/). אולס, בגרסאות קודמות של 6 |ו\ תהליך הבדיקה מעין וה היה קשה. היה עליך ליצור קוב |אזת זמני מחוץ לסביבת הפיתוח של 8856 |1508/\ ולהפעיל את זסזס|קא= 6%חזססח1 בצורה ידנית. למזלנו, התהליך שופר בגירסה 6.0 של 8856 |808ו/. כעת תוכל להפעיל את ז6זס|קא= 6%חז6זח1 בצורה אוטומטית ולנפות את השגיאות מקוד פקד 868% מתוך סביבת העבודה של 88516 |1508/\. [< בו - ןייו | הסובת 00ב אשש ₪ ₪6 | ) ₪4 9 | ₪ 8 9. ב . | | 7890085 | ה0ו508 פחסו | 6098 ב וו מ 5 [+ [ותזר] 1- 98107555 סיו [8גופו/\ /50פזסו 155% הזב זטסז א וש חן זס)וקוחס 1 ₪ |<| ו | הטיס )הסחסקוחס= | חס | 1865 | |673ח6 5 66ןסזק 5וחז חפח/ש -ן 8 58 50 פ6תפחסקוחס6 זס] לוע 7+ 4 3 ] 3555 4 | חפ סז לזמ 97 :₪1 חלואו זספווסזם מז 7+ וי וס זט הפאש 6 שן תרשים 14.7: 8856 |ה150\ בגירסה 6.0 הופכת את תהליך בדיקת הפקדים למהיר על ידי הפעלה אוטומטית של הדפדפן פרק 14: יצירת פקדי אפש60א | 387 אס חלון קבוצת הפרויקטים עדיין פתוח, הסר את פרויקט 5%5 מהקבוצה. לחצ לחיצה ימנית על 661[סזס בחלון סייר הפרויקטים ובחר באפשרות 0[606זק 6/סוח₪6 מתוך התפריט שייפתח. הפרויקט היחיד שאמור להישאר הוא פקד ₪007655. הפעל את פרויקט הפקד על ידי הקשת 55 או על ידי לחיצה על הלחצן 5081 של 6 |1508/\. אס דפדפן זסזס|קא= 06%ז6לח1 מותקן, הוא אמור לפעול בצורה אוטומטית, כפי שמוצג בתרשים 14.7. הערה: בהפעלה ראשונה של הפקד תופיע כרטיסיית פַחוּפַאַטס6ס שבתיבת הדו-שיח של מאפייני הפרויקט, כמוצג בתרשים 14.07. כרטיסיה זו קובעת כיצד יופעלו רכיבי 606% כאשר מקישים 5=. (כדי לקבל מידע נוסף בעניין זה, ראה פרק 16, מחלקות: שימוש חוזר ברכיבים). לאחר לחיצה על 06 יופעל הדפדפן זפזס|קאם ז6חזסזח1. לאחר סיום בדיקת הפקד ב-זסזסוקאם 66חז6שח1, סגור את הדפדפן ועצור את הפרויקט. ראה: "עבודה עם טפסים מרובים", פרק 11. הידור הפקד עד כאן, למדת כיצד לבדוק את פרויקט הפקד כאשר הוא מופעל כקוד בסביבת העיצוב. אולס, כדי להשתמש בפקד מחוץ לסביבת העיצוב (כלומר, על מחשב המשתמש), עליך להדר את קוד המקור לפורמט קוב 06% ולארוז אותו כך שהוא יהיה מוכן להפצה. בצורה צו, יוכלו מפתחים אחריס להתקין את הפקד במחשביהס ולהשתמש בו בפרויקטיס שלהס בין אס הס מפתחים בשפת תכנות, מעצבים דף אינטרנט או משתמשים בכלי פיתוח אחר. יצירת קובץ 06% תהליך הידור (פחוווקוחס60) פקד 6%ע460 דומה לתהליך הידור פרויקט םאש רגיל למעט העובדה שהתוצאה הסופית של תהליך הידור פקד 460/6% הנה קובצ 06% ולא קוב 5אם. כדי ליצור קוב\ 06% עבור פקד 8007655, בצע את הפעולות הבאות: 1. בחר באפשרות 8386 מתוך תפריט ₪116 של 8516 |1508/. 2 כשתיבת הדו-שיח 0[605:ק ₪866 מופיעה, הזן את שס קובף\ למשל ₪55.06%סק\ (ייתכן ויהיה עליך לציין גס את שס תיקיה). 3 לתצ על א0. 88566 |1508\ תהדר הפקד ותכתוב את תוצאת ההידור בקוב\ 06% על הדיסק. לאחר שפקד א6שו846 עבר תהליך הידור, עליך לבדוק את הפקד המהודר. וזכור שפקד 66% שונה מיישוס 5%5 רגיל בכך שהוא אינו יכול לפעול בצורה עצמאית. כדי לבדוק את הפקד, עליך להשתמש בתוכנית שתכיל אותו. 8 סדנת לימוד 6.0 8\ בדיקת הקוד המהודר אחרי שהידרת את הפקד, עליו לפעול בדיוק בדרך שבה פועלים פקדים רגילים. התחל פרויקט %5ם חדש בסביבת הפיתוח של 8856 |פטפוצ (הסר את הפרויקטיס האחריס הקיימים בזיכרון אס ישנס). לאחר מכן, הצג את תיבת הדו-שיח 5ח6חסקו 60 על ידי הקשת +60 או על ידי בחירת האפשרות 8ח6חסקןוח60 מתוך תפריט 606[סזק. אס הפקד אינו מופיע ברשימה, לח על לחצן 87056 ובחר את קובצ 06% שלך. כאשר תסגור את תיבת הדו-שיח 06ח6חסקח60, יווצר סמל חדש בארגז הכלים. במצב וה תוכל לשרטט את הפקד שלך על הטופס כפי שעשית קודס לכן כאשר בדקת את הפקד בקבוצת פרויקטיס. הפעם, תוכל להשתמש בקוד מהודר (ראה סעיף קודם יצירת הפרויקט ההתחלת'). הערה: כאשר אתה משתמש בפקד מהודר ב- 8856 |הטפוצ, לא תוכל לנפות שגיאות בתוך הפקד עצמו או להציג את קוד התוכנית שלו. הפצת הפקד למחשב אחר פקדי 6%ע60 שלך יכולים לפעול על גבי מחשבי משתמשיס ומפתחים אחרים. אולס, תהליך העתקת קוב 06% סופי למחשב אחר אינו מספיק כדי לגרוס לו לפעול. כדי שהפקד יפעל על כל מחשב נתון, אתה חייב לדאוג להתקנת קבצי תמיכה נוספים. הסיבה לדרישה זו היא שהקוד הכתוב בשפת 8856 |8טפו\ משויך לקבוצת שפות תכנות מדור מתקדס הדורשות קבצי ספריות לשם הפעלתן (קבצי 1ופ). לדוגמה, אחד הקבציס הבסיסיים הדרושים להרצת כל תוכנית 8856 |%508 הוא הקובצ | |ס. 5/8/60 (6.0 6הוח136 |הטסזו/\ 88506 |508ו/ 67050%ו1!). אף תוכנית 8856 |הטפו\ אינה יכולה לפעול אס קוב זה לא יהיה מותקן במחשב. הערה: במחשב אשר בו מותקנת 8856 |1508/ (וקבצי התמיכה) ניתן יהיה להשתמש בפקד על ידי העתקת הקובץ למחשב ורישומו במערכת בעזרת פקודת 5565/832), כבדוגמה הבאה: 55.06%םאסס/2\זם ד5צ5\5)שססאז//ש\:6 ₪565/832. בשורה התחתונה, כדי שהפקד שלך יוכל לפעול בצורה תקינה, עליו להיות מותקן במערכת. תוכל להתקין אותו בשתי דרכים, בהתחשב בדרך שבה ישתמשו בו: 4%, + התקנה רגילה - אם פקד א8שו460 שלך מהווה חלק מפרויקט 8856 |טפו/ נוסף, הוא יותקן ויירשס במערכת כאשר קבצי היישוס יותקנו. <* התקנת אינטרנט - אם הפקד שלך מהווה חלק מדף 660/ו, עליך להציב תג < ז0850> מתאים בקוד שואדה. קובצ 06% וקבצי התמיכה, אשר חייביס להיות בתוך ארכיון מסוג 648 על גבי שרת האינטרנט, יועברו ויותקנו על ידי זסזס|קאם 6%חזססח]. פרק 14: יצירת פקדי אש60ה | 389 התקנת הפקד בתוכנית התקנה הדרך הקלה להתקין את הפקד במחשב אחר היא לבצע התקנה רגילה. בהתקנת קובצ == רגילה, המשתמש מריצ תוכנית בשס ם5אם.ם5510 אשר דואגת להתקנת הקבציס במחשב ורישומס במערכת. כאשר אתה יוצר קבצי התקנה עבור פרויקט 5אם רגיל, השתמש באשף %חסוחץס!60 6חג סְאַהּא6בּק. האשף יידע לטפל בקוב\ 06% שלך. אולס, אם אתה חושב שהקוב> שלך ידרוש קבצי תמיכה אשר אינס דרושים לשאר חלקי התוכנית, עליך ליצור קוב נתמך ((060₪ח606כ2) על ידי האשף. דרך השימוש באשף %חסוחץס!ק6כ 0ַח3 7868806 מתוארת בנספח 2, אריזּת היישום. ראה: "אריזת רכיבי 6%ש60", נספח 2. התקנת הפקד דרך האינטרנט כפי שידוע לך, יש להתקין את קבצי התמיכה כדי שהפקד יפעל במחשביס אחרים. אס אתה מתכוון להשתמש בפקד א460/6 שלך דרך האינטרנט, זפזסו|קאם 6%חזס%ח1 מסוגל להתקין את הפקד בצורה אוטומטית. אולס, צורת העברת הפקד בדרך זו שונה מדרך ההתקנה הרגילה. כאשר המשתמש ניגש לדף 60/\ המכיל פקד א6ע60ה, זסחזס)ח1 זסזסוקאם מוריד את קובצ הארכיון (60-648חו689) הדרוש מהשרת ולאחר מכן מתקין את רכיבי א6%ש8260. זהו אחד מהיתרונות בשימוש בדפדפן זסזס|קאם 6%חז6ח1. תוכל להפיץ פקדים מעודכניס על ידי התקנתס בשרת מרכזי אחד. אולס, כדי שהתהליך יפעל כשורה, עליך לספק לדפדפן את כל המידע הדרוש לו. ראשית, עליך ליצור קבצי 648 עבור פקד 866% שלך. קובצ 648 הינו קובצ מסוג מיוחד אשר מכיל קבציס דחוסים. לדוגמה, קובצ 648 בודד יכול להכיל את קובצ 06% המהודר וקבצי הפעלה מסוג ₪11 של 8856 |1508/. לא ניתן להשתמש בקבציס הנמצאיס בתוך קוב> 648 עד לתהליך חילוצם ט866שאם) במחשב המשתמש. תוכל להשתמש באשף +חסוחץסוק6 0ח8 0866806 כדי ליצור קוב 648, כמתואר בנספת 2, אריזת היישום. אולם, ייתכן ויהיה עליך לטפל בקבצי 648 בצורה ידנית. ערכת הפיתוח לאינטרנט של 116070050 (506 6160% 6חזסשח1), אשר ניתנת להשגה דרך אתר 0% באינטרנט, מספקת כלים לטיפול בקבצי 638 ממצב 05ס-15!. ניתן גס לשלב חתימה אלקטרונית בקבצי 648 הנוצריס על ידך. תוכל לרכוש קוב חתימה אלקטרונית, המאפשרת לכל אחד המשתמש בפקד שלך לקבל מידע אודותיך. קובצ וה משמש דרך לאבטחת המידע על מחשב המשתמש מפני שלפקד 6%ש60 יש גישה מלאה למחשב שעליו הוא פועל. אס לא תשלב קובצ חתימה אלקטרונית בקבצי 8 שתפיצ, משתמש זסזס|קאם 6חזסזח1 אשר ירצה להשתמש בפקד שלך יהיה חייב להוריד את הגדרות רמת האבטחה ב- זסזסו|כאם 6חז%6ח1 כדי לאפשר הפעלת פקדיס שאינס חתומים בצורה דיגיטלית. אחת מהתוכניות שבערכת 506 %ח6ו!6 6%חז67שח1, תוכנית בשם 516%0005, מאפשרת לשלב חתימה אלקטרונית בקבציס. כאשר אתה מהדר פקד א60/6 לקובצ 06%, המהדר נותן לו שס ייחודי - 6018-:00ח1606 6טשוחט [ב03ו6. מוהה גה דרוש לתהליך הוספת הפקד לדף ט6)\. כדי לדעת מהו השס הייחודי, תוכל להציצ בקובצ 0 סדנת לימוד 6.0 8\ אד שנוצר על ידי אשף חסוחץס|ק6כ 6חה 6ִחַ8688ק. ניתן לראות דוגמה לשימוש בתג <ז0860> בנספח 2. אחרי שאתה יודע את מזהה 6010 של הפקד, תוכל להשתמש בו כדי לשלב את הפקד בדף ס6/ו. ראה: "קבצים המיועדים לשימוש באינטרנט", נספח 2. השלב האחרון בתהליך הוא להציב את קוב 648 ואת דף ספש\ (!ואדה) על השרת. ודא שתג < ז0850> מכיל את שס קובצ 648, כמתואר בנספת 3. אחרי שכל הקבצים הוצבו במקומם, יוכלו משתמשים אחרים להשתמש בפקד. כדי לבדוק שהדף עובד בצורה תקינה, נסה לגלוש אליו מתוך מחשב שהפקד אינו מותקן בו. אס הפקד לא יותקן, בדוק את הדברים הבאים: + בכרטיסיה /566018, שבתיבת הדו-שיח 026005 +0%676ח1 (בתוך תפריט שש6:/) של וסיזס|קא= 10%6786%, הוסף את שס השרת שלך לרשימת השרתים האמיניס. הפעל את הדפדפן מחדש וטען את הדף. + התקן ורשום את הפקד בעורת תוכנית התקנה רגילה. בדרך זו, תוכל לוודא שהבעיה קיימת בקוב> הארכיון (648). כאשר אתה פותר בעיות הקשורות בפקדיס בדפדפן זסזס|קא= 6חז6שח1, כדאי שתמחק את הקבציס והאובייקטיס הנמצאיס בזיכרון המטמון (68606) כדי שתהיה בטות שאתה מקבל עותק ייעדכנייי בטעינה חדשה של הדף. תוכל למחוק את הקבציס הזמנייס על ידי לחיצה על לחצן 65!= 0616%6 שבכרטיסיה !66063 בתיבת הדו-שיח 5 ש%>06ה507ה1. אז תוכל להסיר את הפקד על ידי סימונו בתיקיה 5 ווובּיושסיזק (6נְבּס!ה/טסכפ \ פ/טססהועצ\ ובחירת 6טסוח6א מתוך תפריט שוו=. שיפור פקד 6%עו46% הסעיף הקודס הציג את רעיון יצירת פקד 6%ע860 על ידי ארגון פקדים קיימיס בתוך אובייקט |0שח60ז56. תוכל ליצור גס פקדיס "יחדשיסם'י על ידי הוספת אפשרויות לפקדים קיימים, כלומר, תוכל להשתמש בפקד מסוג מסויס ולהוסיף לו שגרות, שיטות ואירועים. לדוגמה, תוכל ליצור פקד פס גלילה (ז0|!88ז56) מיוחד אשר מציג אותיות במקוס במספרים, או ליצור תיבת טקסט שתקבל רק סימנים מסוימים. הצבת הקוד אשר יבצע את הפעולות הללו בפקדי 860/6% נפרדיס גורמת לכך שיהיה קל יותר להשתמש בקוד בתוכניות עתידיות. לדוגמה, במקוס להוסיף קוד מיוחד לכל פקד תיבת טקסט בתוכנית שלך, תוכל להשתמש בפקד היימשופריי שתיצור במקוס בפקד תיבת טקסט רגיל. כדי ליצור את הפקדיס המשופרים הללו, עליך להשתמש באותן הטכניקות שלמדת בסעיפים הקודמים: 1. התחל פרויקט חדש מסוג פקד א6צוזס. 2 הוסף את הפקד הבסיסי לחלון !0ז600%ז56. 3 הוסף קוד עבור המאפייניס, השיטות והאירועיס. פרק 14: יצירת פקדי א6ש60א | 391 הסעיפים הבאים יוליכו אותך דרך שלבים אלה, תוך שימוש בפקד תיבת טקסט כפקד הבסיסי. פקד תיבת הטקסט היימשופריי שלך יקבל את השם 76 ז86060ז0 60שוחז | אספ'י). יהיה לו מאפיין מיוחד אשר יאפשר למשתמש לבחור סט תוויס שהפקד יסכים לקבל בתיבה. מאפיין נוסף גה, בשס 608186660%, יאפשר למשתמש להגביל את הטקסט המוזן לתוכה לאותיות בלבד, מספריס בלבד, או שניהס יחד. יצירת הפקד הבסיסי השלביס ביצירת תיבת הטקסט המשופרת דומיס לפעולות שביצעת כדי ליצור את פקד 5, כדי ליצור את תיבת הטקסט המשופרת, בצע את השלביס הבאיס: 1 התחל פרויקט חדש מסוג פקד 6%ע461. 2 הוסף תיבת טקסט לחלון |80ח60ז56, ומקס אותה כשהפינה השמאלית-עליונה שלה במיקוס 0,0. 3 קרא לתיבת הטקסט בשס 9066037566 ונקה את מאפיין +אפד. 4 קבע את מאפייני הפרויקט ואת מאפייני אובייקט |₪0ח60ז056 לפי טבלה 14.1. טבלה 14.1: קביעת ערכים עבור תיבת הטקסט המותאמת 6 606[סזק (0ח60 66% 6חה\ 66[סזק 60 וחו |%+א6דך חסחק 656 666[ס-ק 6% 378600 660וחו | 107 אסם )אשד ץזסקסזק 6וחפ\] |סז%חה60 ז56\ אוו והַת%6אד ם |< ]ם]- | ה 1 תרשים 14.8: הפקד הבסיסי, המוצג כאן, ישופר כך שהוא יספק אפשרויות נוספות 12 סדנת לימוד 6.0 8\ .6 כדי לקבוע את שלושת הערכים הראשונים בטבלה, השתמש בתיבת הדו-שיח 65. כדי לקבוע את הערכים האחרים, סמן את אובייקט !0ז%ח60ז56ט והקש 4] כדי להציג את חלון המאפיינים. התוצאה הסופית, לאחר שקבעת את ממשק המשתמש של תיבת הטקסט, אמורה להיראות דומה לתרשים 14.8. כתוב קוד בשגרת ₪656 של אובייקט |0ח60ז58 כך שגודל תיבת הטקסט יתאיס לשטח שהמפתח ישרטט כאשר הוא ישתמש בפקד שלך. שגרת ₪6526 מוצגת בתוכנית הדוגמה 14.1. תוכנית דוגמה 14.1: ק8/.כםד1ו\11 - שימוש בשגרת 86526 כדי לוודא שהפקד ממלא את כל השטח הריק. ()05126] |070ח0-0ז56(\ סנ5 סזבּעוזוק 5686 |ס 105660 = 00%ו6ר. 56% הח אס הזו 568|6. !12567600 = 56/16 זה ))א6 50 0ח= שגרת₪65126 מכילה את כל הקוד הדרוש לממשק המשתמש של פקד הדוגמה. מטרתה לשמור שגודל תיבת הטקסט יהיה זהה לגודל אובייקט |%0ח60ז6פש. שמור את הפרויקט. לפני שתמשיך, בדוק את שגרת ₪656 על ידי ביצוע הפעולות הבאות : 1 2 3 סגור את חלון |600%0ז56. במידה וארגז הכלים גלוי לעין, יופיע עליו סמל חדש המייצג את הפקד שלך. בחר ₪70[66% 866 מתוך תפריט ₪116. לאחר מכן הוסף פרויקט שאם רגיל. שרטט את הפקד שלך על גבי טופס 1וחזס" ונסה לשנות את גודלו. המטרה בצעדיס אלה היא להרגיל אותך לרעיון שהקוד בפקדי 6%ע60ה שלך פועל גס במצביס שהפקד לא פועל בתוך תוכנית כלשהי. בזמן שאתה מפתת פקד אס6טט6א, זכור שהקוד שאתה כותב משמש גס בסביבת העיצוב בתוכנית שהפקד ישולב בה. כעת הסר את הפרויקט מסוג 5אם על ידי לחיצה ימנית עליו בחלון סייר הפרויקטיס ובחירת האפשרות 0[6001זק 6/סוח6ח. עכשיו הגיע הזמן לשפר את הפקד. שיפור הפקד הבסיסי השיפורים אשר תבצע בפקד תיבת הטקסט יהיו להגדיר מצביס שבהס הפקד יקבל כל תו מסוג שהוא, ספרות בלבד, או אותיות בלבד. תוכל לעשות זאת על ידי הוספת מאפיין משלך בשס זַמִף1606ז8ח6, אשר יהיה באחד מהמצביסם האפשרייס הבאיס: 4%, +. 4%, +. 0 0- הפקד יקבל כל תו. 1. הפקד יקבל ספרות בלבד. 2 - הפקד יקבל אותיות בלבד. פרק 14: יצירת פקדי א6ש60א | 393 יצירת מאפיין 6031666 כדי ליצור את מאפיין זמִססס1זה603, עליך להוסיף משתנה פנימי (סהּעוזק) אשר יכיל את ערך המאפיין בפקד. לשס כך עליך ליצור אותו באזור ההגדרות הכלליות של אובייקט [0חס6ז56! בצורה הבאה: 5 10660 בחר ס6העווק לאחר מכן, עליך ליצור את המאפיין החדש הנקרא זסִס8166ז8ח6. תוכל ליצור אותו על ידי כתיבת שגרות 66 ו-160 בצורה ידנית או על ידי בחירת האפשרות שזפקסזס מתוך 6זט660סזק 400 בתפריט 100|5. הקוד בשגרת המאפיין 68716666 קל להבנה. כאשר המפתח ירצה לשנות את ערך מאפיין 116666ז8ח6, שגרת המאפיין 66 תחזיר את ערך המשתנה הפנימי. כאשר ישתנה ערך המאפיין, שגרת 16% שלו תשנה את ערך המשתנה הפנימי לאחד מהערכים המותרים. הקוד הבא מיועד לשתי שגרות המאפיין: לחז 5 ( 68706606 6% ע+וסקסיק 6וופגוק רת = 66066 ץסקסזק 0חם (1000061 5 6ט|8/\שש6\ח | ץש )16060 החה6 ז6 | שוסקסזק =סוופגוס 6 /\/וס\]ח 6856 50166 2ַ 10 6856 6ט|ה//וס\ח = 606% זה חח 6 6856 0 = 816000₪6ח6וח סח "60" 060חההה0 וקסוק שסקסזק 0חם שיס לב לשימוש בשיטת 60080860/שוסקסזק. שיטה זו עובדת בתיאוס עס שגרות 5 ו-665 סק 6פוז/\, אשר מתוארות בסעיפיס הבאיס. כעת עליך להשתמש בשגרת ₪65ו6קסזקאוח1 של אובייקט |00ח56760 כדי לקבוע למאפיין ערך התחלתל: ()65דסקסזקוח1 |0זח056760\ 5 סזבּעוזוק 0 = 871600₪6ח₪6] 50 50 קוד ה מבטיח שלמאפיין יהיה ערך חוקי, אפילו אם המפתח לא דאג לקבוע לו ערך כלשהו. 4 סדנת לימוד 6.0 8\ שימוש באובייקט 830 ץזוסקסיוק עליך ליצור גס את הקוד עבור שגרות 0067065ז7ק₪680 ו-65!ז6כסזקסטוז\\ כדי לשמור את הגדרות העיצוב של מאפיין 1606₪0ז608. שתי שגרות אלו משתמשות באובייקט 0 כדי לשמור ולטעון את ערך מאפיין ז608766060. אובייקט 880עוסקסזק מאפשר לך לטפל בערך הניתן למאפיין ב1מן העיצוב. הקוד עבור שתי השגרות, המוצג בתוכנית הדוגמה 14.2, אינו קשה לפענוח. הדבר החשוב הוא לדעת מדוע יש לכתוב את הקוד. תוכנית דוגמה 14.2: ק8/.סםדזוא1! - טיפול בערך המאפיין (80/ סז 5 080 קסזק )65 סז 68 |ס ה56700(\ 50 סספעווק (60600 ה 06% םח ,"6 סו הט קסזק = 60606 הח וח 50 0חם (880/ז6ק0זק 5 880 סק )65ודוסקסקסט/\ |סח00ז56(\ 50 סספּעווק (06000 ו 061 וח 3766600 ח"ח" )וס סק סטו\\. הט קסזק |ו68 50 0ח= זכור כי קוד השייך לפקד 8606% מתחיל לפעול ברגע שאתה משרטט אותו על גבי טופס. נניח שאתה קובע ערך מאפיין כלשהו בסביבת העיצוב. בפקד הדוגמה, הבה נניח שאתה קובע את ערך מאפיין 681606 ל-1. תוכל לשנות אותו כמה פעמיס שתרצה בזמן שהתוכנית פועלת. בדרך כלל, בזמן סיוס התוכנית, ערכי הפקד חוזריס למצב שבו הס היו בסביבת העבודה, ולכן יש צורך בטיפול בשני מצבים שהמאפיין יכול להיות בהסם. אס ננסה להגדיר ואת בצורה פשוטה יותר, במקרה שאתה משנה ערך מאפיין כלשהו בסביבת העיצוב, יש לדאוג לכך שהפקד ידע להחזיר לעצמו את הערך בזמן פעולת התוכנית. על הפקד גם לדעת לתזור בחזרה לערך וה (אס השתנה) כאשר עובריס בחזרה למצב עיצוב. אובייקט 880/+ו6קסזק מאפשר לפקד 606% לשמור את ערכי המאפיינים שלו ובכך לענות על הדרישה שהצבנו. שיטת 6080860/ז6קסזק מאפשרת לנו לדעת שהמשתמש שינה ערך מאפיין כלשהו. כאשר ניתן לדעת באיזה מצב התוכנית נמצאת וכן האס הופעלה שיטת 860ה6008עו6קסזק, 8856 |508ו תוכל להפעיל ‏ את שגרות 5 ו-67165 68070 בזמן הנכון. ם הערה: בוודאי הבחנת בכך שעליך להוסיף כמות רבה של קוד כדי ליצור מאפיין בודד. בסעיף הבא תתוודע לאשף פקדי 6%ע60ה (המגיע כתוספת ל- 88566 |1808) אשר הופך את מלאכת הוספת מאפיינים ושגרות אירועים לקלה. אחרי שתסיים ליצור את פקד ץוחו וזאח:אד, המשך לקרוא כדי ללמוד כיצד להשתמש באשף זה. פרק 14: יצירת פקדי א6ש60 | 395 שינוי צורת התנהגות תיבת הטקסט השלב הבא בפרויקט הדוגמה הוא ליצור את הקוד ההופך את תיבת הטקסט המיוחדת למשהו העושה דבר שונה מפעולת תיבת טקסט רגילה. במקרה זה, תוכל להשתמש בשגרת 655זקץ6 של הפקד כדי לבדוק כל תו כאשר המשתמש מקליד אותו. |508ו/ 6 תעביר את קוד 45011 של התו דרך משתנה 66456 של השיגרה. בהתחשב בתו 1 ובערך מאפיין 166060ז8ח6, תוכל לקבל את התו או לשנות את ערך משתנה וו50/ץ6א ל-0, דבר המונע מתיבת הטקסט מלהציג אותו על המסך. בנוסף לעובדה שהתו לא יוצג על המסך, עליך לעדכן את התוכנית שקראה לשיגרה בעובדה שהמשתמש הקיש תו לא חוקי. תוכל לעשות זאת על ידי יצירת שיגרה בשס זסזום 50 כדי ליצור את השיגרה, הוסף את שורת הקוד הבאה לאזור ההגדרות הכללי של אובייקט |₪0ח₪050760: ()זסז507=7(! %ח6/ם 6ווסגוק שיגרה וו תתנהג כמו כל שיגרה הקיימת בפקד אחר. כל אחד המשתמש בפקד שלך יכול לכתוב קוד בתוכה. הדבר היחידי שעליך לעשות זה להפעיל את השיגרה על ידי שימוש בשיטת זח565/6ו₪₪. בגלל העובדה שקיימיס שלושה סטיס אפשרייס של תוויס, תוכל להשתמש בפקודת % כדי לטפל באפשרויות השונות. עוד דבר אשר יש לשיס לב אליו: עליך לאפשר שימוש במקש 880650866 (8 6006 45611) בכל אחד מהסטים המותרים. אחרת, המשתמש לא יוכל למחוק את התו הקודם. הקוד עבור שגרת 655זקץ6א מוצג בתוכנית הדוגמה 14.3. תוכנית דוגמה 14.3: ?111750./8! תכנות שגרת 655ז1קץ6א להצגת קלט המשתמש. (06061ח1 5/ [ו655)006/50זק ץ66 000566 סט5 סספעווק טטפ זוא חס ד 866 ץ6אפע = 50 ץ66 )1 הח וח 60856 50|606 6 15 63000 שחג' 0 6856 סטפ זוא 0 06 8 זססוהטח ץוחס' 1 6856 החד 9ץ6א פע => 86750 0ח3 0ץסאפע =< 50 ץ66 זז טטפ )וא 6 0 = |ו46/850 0 50( \ %ה5/6 8156 זז 0ח 6 סדנת לימוד 6.0 8\ 60 06 עְהח 6015 ץוחס' 2 6856 חח ד 2ץ6א פע => |ו50ץ6א הג ה ץ6אפע = < וספ ץסא זז טטפ זוא החד 122 => |50ץ6א 0 97 =< 6650 )561 טטפ זוא 6 0 = |ו46/850 קסם סז 56( | +ה6/- 8156 + 0חם סח 5 0ח= הקוד בתוכנית הדוגמה 14.3 פשוט למדי. תקפות |6/56א, אשר מייצג את התו שהוקלד, נבדקת על ידי פקודות 6856 :56166 ו-1. אס התו אינו נמצא בטווח הרצוי, הפקד גורס לצפצוף ומפעיל את שגרת זסזזםז56. בדיקת תיבת הטקסט המגבילה לאחר שהקלדת את כל הקוד עבור הפקד, תוכל לבדוק את פקד זוחו1ז8ח06ט על ידי ביצוע השלבים הבאים: 1 שמור את הקוד. 2 הוסף פרויקט 5א= רגיל לקבוצת הפרויקטיס (אםס לא עשית ואת עדיין). 3 סגור את חלונות העיצוב והקוד עבור אובייקט |₪0ח60ז056ו. שים לב לכך שמופיע סמל עבור הפקד שלך בארגז הכליסם. 4 הוסף עותק מפקד טוח 66081 לטופס ביישוס הבדיקה. 5 קבע את מאפייני הפקד. 6. הפעל את התוכנית ונסה את הפקד. נסה לקבוע את ערך מאפיין 6871006 בערכים שוניס כדי לוודא שהוא מקבל רק את התוויס הרצויים. אס אתה נתקל בבעיות בהפעלת הפקד, תוכל להשתמש באותן השיטות לניפוי שגיאות כדי לגלות את הבעיות בפקד כפי שאתה בודק שגיאות בתוכנית רגילה. תוכל לקבוע נקודות עצירה (06חו8768000) ולהפעיל את הקוד שורה אחרי שורה, בין אס בתוך פרויקט פקד א6ע60, או בתוך הפרויקט הרגיל מסוג 5%5 (ראה פרק 10, שליטה במהלך התוכנית). ראה: "ניפוי שגיאות מתוכניות", פרק 10. פרק 14: יצירת פקדי אפש60א | 397 בחירת סמל עבור ארגז הכלים בוודאי הבחנת שלכל הפקדים שיצרת יש אותו סמל בארגז הכלים. תכונה זו עלולה לגרוס לבלבול. תיאור הכלי מספק הסבר עבור הפקד, אך עדיף להגדיר סמלים שוניס לפקדים. תוכל להגדיר סמלים על ידי קביעת מאפיין ק₪033ו8א80!|ססד. מאפיין זה קובע מה יוצג בארגז הכליס. אס הוא נקבע כ-6חסא, הסמל הוא ברירת המחדל. תוכל לקבוע במאפיין כל תמונת כִ0ו8 שהיא, אולס קח בחשבון שגודל סמל ארגז הכלים הוא 6 נקודות (615א!5). לפיכך, מומלצ להשתמש בתמונות אשר נוצרו בגודל זה. אשף ממשק פקדי <6עצוז46 כאשר יצרת את מאפיין 6087866600 לתיבת הטקסט המשופרת, יצרת חלק מממשק הפקד. אך סביר להניח שהמשתמשים ירצו לגשת לרוב המאפיינים, השגרות והאירועיס הנפוציס השייכיס לתיבת הטקסט. לדוגמה, בוודאי הבחנת שמאפיין זאד אינו נגיש. זה הגיוני משוס שלא נכתב כל קוד עבור המאפיין. פקד א80זאפד מהווה אלמנט פנימי בפקד שלך. בשלב הקודם, יצרת את מאפיין 6087160606 באופן ידני, אולס כפי שתוכל לשער, דרך זו של יצירת עשרות מאפייני פקד בצורה ידנית מתישה. למזלנו, 88566 |1508\ מספקת כלי ההופך את התהליך לקל יותר: אשף ממשק פקדי 66% - 2870ו/\ 1866ו6זח1 |סיוזחס6 6%ע6ה. ראשית, עליך להגדיר לאשף את שמות כל המאפיינים שתרצה ליצור עבור הפקד. לאחר מכן הפקד מאפשר לך יילחבריי את מאפייני הפקד שלך למאפייני רכיב הנמצא בתוכו. במילים אחרות, האשף מסוגל לכתוב את קוד השיגרה עבורך ולגרוס לכך שמאפיין 6%ד של אובייקט |₪0ח60ז56 שלך יעדכן את מאפיין א6ד של תיבת הטקסט המוכלת בו. הוספת האשף לסביבת 83516 וַב1503\ כדי להשתמש באשף ממשק פקד א6%ע60ה, הוסף אותו קודס לכן לסביבת העיצוב. כדי לעשות זאת, תוכל להשתמש במנהל התוספות (וססְהח חו-00) של 88516 |הטפו\. כדי להפעיל את המנהל, בחר באפשרות זסחַהּח3ּ1!] חו-800 מתוך תפריט 5ח00-1. כדי להוסיף את אשף ממשק פקד א6%ע60ה, סמן את תיבת הסימון ליד שס האשף. בכך תודיע למנהל התוספות שברצונך לכלול את האשף בתפריט 400-105. לאחר מכן, לתצ על לחצן 0% כדי לצאת מנהל התוספות ולהוסיף את האשף לסביבת 8856 |1808/. כעת, כדי להדגים את דרך פעולת האשף, צור את תיבת הטקסט המשופרת מחדש: 1. התתל פרויקט חדש מסוג א6ש46%1 ושרטט תיבת טקסט בחלון |60060ז50. 2 קבע את השמות והגדליס באותה הדרך שבה קבעת אותם בדוגמה הקודמת (ראה סעיף יצירת הפקד הבסיסי). 3 הפעל את האשף על ידי בחירת 2316!ו// 671306:ה1 |סז+חס6 6%עש6א מתפריט 85,., האשף יופעל ויצייג את המסך ההתחלתי שלו הנראה בתרשים 14.9. 4.| לת על לחצן +א6א כדי להתחיל את מלאכת יצירת המאפיינים. 8 סדנת לימוד 6.0 8\ טיפ: כדי שהאשף יפעל בצורה הטובה ביותר, עליך להוסיף את כל הרכיבים הדרושים לפקד שלך לפני שאתה מפעיל אותו. הסווסטטסזוח! - 6זה2ו/\ 306!ז6)ח! |סזוחס:) %פצווסת 6 וס ]זסק סע 5קוסח ₪ ז23ו/\ 6]366סח1 |סזסחס-> 866% שח 83506 |98ו/\ חן |ססחס6 06% חב הַח67630 חו 55505 הַחואוס!0+ (05 חש ,005 ,65 קסזק) 306"ז6:חו חל הַחוח1/ט 0 -- ה חל זס] ₪006 הַחוו 6 הט 86 הַחו80 676 - ]חן 56 ||3 30360 6/יבח ספטוח פע ,חספ טסץ 76ס]₪6 :סססון 36 קה 0]'5 60 86 ו 38 503 5להשהחפ|ט. 5 וסקס 06866 0ם ה זה2ו/ שחש ע>זסקסזס 6 1056 :סססו .070!5ח256760\ זטסץ' ז10 .56/6605 ]וס סְהַחח6 50 חול עחה 35 886% 655 ח63 טס" .הוח סל 466 66ו6 16856 תרשים 14.9: אשף ממשק פקד 66% הופך את עבודת יצירת המאפיינים לפשוטה יותר על ידי יצירת חלק גדול מהקוד עבורך זנ 6 חן ח0ס507 פוחם פוא =[ בחירה ויצירה של מאפיינים השלב הבא בשימוש באשף הוא לבחור את המאפיינים, השיטות והאירועים אשר ברצונך להפוך לזמיניס עבור הפקד. באופן כללי, מאפייניס, שיטות ואירועיס ידועיס בשס חברים (0675 ח6ו). בתיבת הדו-שיתח 0675 16] %06806חה1 56!66%, המוצגת בתרשיס 14.10, האשף מכיל את שמות כל החבריס שתוכל למצוא בכל פקד בשפת 6 |1508/. כדי לבחור מאפיין או שיטה עבור הפקד שלן, סמן את שס החבר ברשימת החבריס הזמיניס ולחץ על לחצן החצ הימני כדי לבחור את החבר. בפקד הדוגמה, סמן את מאפיין א6ד בחלון השמאלי, ולחצ על לחצן הח הימני. טיפ: כ תוכל בנוסף לבחור חבר על ידי לחיצה כפולה על שמו ברשימה. 306]ז6)ח] 561601 - 0זב2ו/\ 306!זס)ח! |סזוחס:) >סצווסת נוסץ 503% 85חבח להשע= חב ,008ח166 , עזסקסזוק זט ל5ו| 8 15 וסוס .6060 זנוסץ חו 56 50 )חהיאי טוח ,6005 , 665זשקסזק 376 6-56|66550ז השפ 6/יבח 503% 5פחס שח סו|פנוכ 306 חספ 3630 6/יבח הרל 65ח6יש בחה. .605 חב ,1650005 ,65 זסקסזק הטוס זנוסץי 30 ספ זאשו >סו 56166560 3065: = ססות 0660 | ₪5 מחטשום חאוסס 6 ]חסעם 5 זי ץלזסססזק ץלזסקסזק תרשים 14.10: השלב הראשון ץזזסקסזק חב זה6קקה חס מנוץפ א | << ו ה ביצירת מאפיינים, שיטות ואירועים %חפשים חושיסי56נוסוי] הפע | 605|קחס-6806 56 )הפע סוי חש = 630010655 6חץ5 ו הפע ו 5 ץז קסזק 3 טפנו עבור הפקד שלך הוא להוס ףּ תוי הב | 365 > ₪- 16 6הַחה6/שזסקס ץחה | זבה | < 6 | 6% | 8 | וס שגרות עבור שמות החברים השכיחים פרק 14: יצירת פקדי אפש60א | 399 אחרי שהוספת את מאפיין 6% לרשימת השמות הנבחרים, לתץ על לחצן 6% כדי לעבור לדף הבא של האשף. לאחר שבחרת את המאפיינים, השיטות, והאירועיס עבור הפקד שלך, האשף יעביר אותך לדף שבו תוכל להזין פריטיס חדשיס המותאמיס אישית לפקד. תיבת הדו-שיח 65 %671866ח1 וח015%0 076806 מכילה רשימת כל החברים האישיים אשר ייווצרו עבור הפקד שלך (ראה תרשיס 14.11). )א 306]ז6)ח! הו0ז5ט-) 16316 - זה 2ו/\ 306!ז6)ח! |סזוחס:) אפצווסת זס] לחהו וסץ' 5לחשע= טוחה ,005ת166י] ,65זסקסזק השס זנוסץי ₪0 בח |סלחס6 זטוסץי 50 סטטוחנו 5זספוחפוח 6זה 7656 .וססחס6 זטסץ' 50605 5וסו/יזכ חן 56/5056 ע5/530 זסח שבח טפץ +08 5סחס תרשים 14.11: האשף מספק גם תיבת דו-שיח אשר בה ניתן להזין שמות פריטים אשר אינם מופיעים בתיבת הדו-שיח בחירת חברי הממשק אם יש לך מאפייניס או חבריס אחריס אשר הוגדרו מראש, הס יופיעו ברשימה זו כאשר אתה מגיע לתיבת הדו-שיח. מתוך תיבה זו, תוכל להוסיף חבריס חדשיס ולערוך או להסיר חברים קיימים. כדי להוסיף חבר חדש, לח על לחצן ש6א של האשף לפתיחת תיבת הדו-שיח הוספת חבר מותאם אישית. בתיבת דו-שיח זו, עליך לקבוע את שם וסוג החבר. צור את מאפיין 6087466001 על ידי הקלדת 60876060% בשדה 6וחהא ולתצ על לחצן 06. אחרי שתחזור לתיבת הוספת חבר מותאם אישית, צור את שגרת זסזזםז56(! באותה הדרך. לבסוף, לחצ על לחצן +א6א כדי להמשיך הלאה. מ אזהרה: אין לערוך או להסיר את חברי הפקד שהגדרת לפני כן בעזרת קוד בלבד מפני שאשף ממשק פקד א6ש46 פועל בדרך של ניתוח הערות הממוקמות על ידו בקוד. אין בטחון שהאשף יוכל להבין את הקוד הכתוב על ידך בצורה נכונה. 0 סדנת לימוד 6.0 8\ מיפוי המאפיינים השלב הבא בשימוש באשף ממשקי א6ש460 הוא להקצות את השמות הציבוריים של הפקדיס המותאמיס אישית לחברים הקבועיס בפקד שלך. תהליך וה נקרא מיפוי החברים (5ז6טוח6!] 6 פַחוסס18א). לדוגמה, במקוס ליצור מאפיין 6%ד משלך, תוכל למפות את מאפיין 6% של הפקד המותאס למאפיין 6% של 6008756%ט. תיבת הדו-שיח פַחוסק18 56%, המוצגת בתרשיס 14.12, מכילה רשימה של כל המאפייניס, שיטות והשגרות שהגדרת כחלק מהממשק הציבורי של הפקד שלך. שחוסקב א ]56 - הז23ו/\ 306]זטוח! וסזוחס:) אסצווס זט ,600005 ,65זסקסזם שח ]0 עשוה חסוס6חט 506 קבוח חב6 טסצי 60015 %ח506ח60 חו 5זפטוחשוח רל סל [סיפחס6 זטסץ חו פלחשעיט. ,65פזסקסז סוה זס שחס 56/6566 ,55| שהחב\ סוופטיק 86 החסז= שח 3 [סזלחס6 חל 561666 הפר חב ,5לחטעיט וס ,0005תלפח. .0 | קב ספ זחבואו וס .6% 0%ו₪1 .החוקקהוח הוחו" טסץ' השעש 305 ₪ = זחשעם וי ו +חסעם וע | 8 ] הפו חאוס6פנוסהי] %חסצם ]טסו תרשים 14.12: מיפוי החברים הציבוריים של הפקד גורמת חי )הפע תי [- > / לקישורם לחברי הפקדים הנמצאים = שחסשם בפקד | הפוחב < 4 | 6% | ו -5) סוס בתיבת הדו-שיח שתי תיבות לזיהוי הפקד וחבר הפקד שאליו החבר הציבורי אמור להחיות ממופה. כדי למפות חבר ציבורי יחיד בפקד, בצע את הפעולות הבאות: 1 בחר את החבר ברשימת השמות הציבוריים 1150 65וח8א 6ווטטפ). בדוגמה זאת, סמן את מאפיין )16% בצד השמאלי. 2 בחר את 060087560 מתוך רשימת הפקדים (רשימה זו מכילה את שמות כל הפקדים הסטנדרטיים בפקד שלך). 3 בחר את החבר השייך לפקד גה מתוך רשימת החברים. במקרה זה, מאפיין %א6ך ייבחר עבורך בצורה אוטומטית. תהליך זה מודגם בתרשיסם 14.12 עבור מאפיין ד השייך לפקד זוחו |זהח6)אז. 4.| לת על לחצן 60 כדי להמשיך לתיבת הדו-שיח האחרונה של האשף. תיבה זו, המוצגת בתרשים 14.13, מאפשרת לך לקבוע את ההגדרות עבור כל חבר ציבורי שאינו ממופה לפקד פנימי. הערה: בתיבת הדו-שיח פַחוסְטְ3ּ!! 56%, שים לב שתוכל למפות מספר חברים ציבוריים בפעם. יש אפשרות לבחור יותר משם ציבורי אחד. תוכל לבחור כמה שמות ואחר לבחור רכיב שאליו הם ימופו. כל שם ציבורי ימופה למאפיין או השיטה של הרכיב הנושא את אותו שם. לדוגמה, מאפיין 6%ד של הפקד האישי ימופה למאפיין 6%ד של תיבת הטקסט או התיבה המשולבת (א80 סטוחסס). פרק 14: יצירת פקדי אפא60ג | 401 וזו )56 - 6זה2ו/\ 306]זס)ח! |סזוחס:) אסצווס ה שח .5זססותסות 6קקב חנו 86 0 5פנופו300 56 56% חה6 טסץ* .31065 61/6 56 0565 פהַחה60 סח 00 פע טסופו נוסץ 3007100565 4056 זספותסוח שחל 0 שחחבח וסט חס 501666 ספ חש 636 זס] 6686 .3085 ו הסח חב פהַחח6 50 מחפצ 63 0 )חאו טס .6% 0110 300710665 פח5 בחוץ]וטיסוח הפוחו! נוי הפח/ור הסוסה 1 6פוופוזה. 6ב :]6/0 בוו 8 ] מק | %חפעם שוחוד ההוש סוחוד חנו וקסוק וט ]6 5 [‏ [+ ו [= | ששקסה ו 5 חשוחנחז ה חסוס 650 אסם 556 86 366075 זב הטוחצו 65הוחחזססטס. 6ב || ָ > | סוס 4 ץלזסססזק 4 תרשים 14.13: תוכל לקבוע את הגדרות המאפיינים והשיטות לפני השלמת קוד הפקד האשף מאפשר לך לקבוע הגדרות שונות בהתחשב בסוג החבר שאתה יוצר. עבור מאפיין, תוכל לקבוע את סוג המידע שהמאפיין יוכל להכיל, ערך ברירת המחדל של המאפיין וסוג הגישה המותר למשתמש בסביבת העיצוב ובזמן פעולת התוכנית. סוג הגישה המותר קובע אס תיווצר שגרת המאפיין 16%, שגרת המאפיין +66 או שניהס יחד עבור המאפיין. תוכל לבחור באפשרויות ץוח 6זחוש\ ,ץוח ₪680 ,6זו/\/₪680 או סחסו עבור הגישה בזמן פעולת התוכנית. עבור סביבת העיצוב, תוכל לבחור באפשרויות ץוח ₪680 ,1080/06 או סחסא. עבור פקד הדוגמה, קבע את סוג הנתונים של מאפיין 608146060 כ-ז0606ח1 ואת ערך ברירת המחדל שלו ל-0. תוכל להוסיף גם תיאור למאפיין בתיבת התיאור. תיאורי מאפיינים מופיעים בתחתית חלון המאפיינים בסביבת העיצוב. כעת, לאחר שהגעת לשלב האחרון של האשף, תוכל ללחו על לחצן חפוחום. סיום כתיבת הקוד לאחר שלחצת על הפוחו=, אשף ממשק פקד א6%ע460 יוצר מספר מודולי קוד בפקד שלך. בנוסף, הפקד גס מציג דף תקציר מידע המספק פרטים אודות השלבים שנשארו כדי לסיים את תהליך יצירת הפקד שלך. דוגמה לדף כזה מוצגת בתרשים 14.14. |< | 1םן | עזבּחוחו5 0זה2ו/ש\ 806]ז)ח! |סזוחס:) אסצווס ה כ > חב ,60 ,הַח5550 06 666!קוחס6 50 8זונוספיז פוחסמו ]0 115% ס סד 8 5 אוסוסב 801ח05676-0! זטוסץ ]0 הַחוּ]ססזם-ספ!וום 15910 זנוסץ זט הזב זהסזם 865% 3 076866 (ם ַחוח6ק36 ,וסחס-1586\ זנוסץ זט הזה זהסזק 165% 3 קט 56% סם עבצ סאשם סז שזפחד 06% חב 6768500 זס , 56 5530 3 חו וסשחס6 506 880 ז56חו טסץ זסתספחואי חס .| זס] 86[סזק |סטחס 3 קט 56% ||ואו 5555 חואיס!וס] שחל ,%סש[סזוק |סזסחט-) 6%/ו800 חב 0788560 טסץץ 1 חב זהסזק 65% .01חס-560\ זנוסץ 58% (1 006 חנז חו [סחס6 שר לוכ 80 , 6500 5]סלחס-105676 ונטס 056[ (2 ןז ₪6 5530370 3 300 ,86%[סזק 565% 3 663560 ץב63זוב >'חפיבח טסץ ]1 (3 . הפוח 6!= רל החסז] 016% 00 הַחו561660 עם ]0 66ח553חו חב 366|כ סל חס 5'|סיסחס-1(5676 ונטס >סו|6-6|פטסט ,אספוססד 6ח חז. (4 ₪- חב 6/יסוח ח63 טס ,6%פ[סזם == בז3חב5 6ח! חו , 1וחזס= חס [ססהס-25576\ זנוסץ תרשים 14.14: קרא את דף התקציר כדי לקבל ייעוץ כיצד לסיים את תהליך יצירת הפקד 2 סדנת לימוד 6.0 8\ אחרי שסקרת את דף התקציר, תוכל להביט בקוד שנוצר על ידי האשף. כדי לראות את הקוד לחצ על אובייקט |ס%ח0ס6 ז56 בחלון הפרויקט. אחר לת על 6006 צוסו/\. באזור ההגדרות הכלליות, האשף יצר קבועיס לערכי ברירת המחדל של כל המאפייניס שלא מופו. למאפיין +ק1666ז8ח6 ניתן ערך ברירת מחדל 0. בנוסף, האשף יצר משתנה פרטי בשסם ₪608746660%. אחר תופענה ההצהרות על כל שגרת אירוע שבקשת לכלול בפקד. דוגמה מהקוד מוצגת כאן. אס מיפית שגרות אירוע, תראה שהאשף הציב הערות כדי להראות כיצד האירועים ממופיס לשגרות אירועיס בפקדים שבפקד: 6%ו|קאם הסטקס ע+סקסזק !ופסכ 0 = זס|00א286 061 605% 0 = ז07600|0= 06% 605% 0 = 6876006 06% וח 605% :ה /\ ץהסססזק' פס ] 5 זסוס6א₪86 וח חוחוס 8חס ]! 35 זס|וס66זס] וח הזוס 5 370060 וח הזוס :60305 +חהסעש %- 87560,000008756 חס = 10ח81הוסכהּז' ()א6ו01 %חפעם ()68ו101טכ +חסעם ()זסזז567(! +חסעם (1050061 45 |ו50ש6א)655זק 66 +חסעם אחרי הצהרות המשתנים ושגרות האירועים תופענה שגרות המאפיינים. שגרות אלו נוצרות עבור מאפייניס אשר ממופים למאפיין של חבר וכן למאפיינים אשר נוצרו על ידך. כפי שתוכל לראות בקטע הקוד הבא, הקוד עבור מאפיין זא6ד שלם (גם אס פירוש הדבר שקיים שלד שיגרה בלבד עבור מאפיין +60876660): [פשאז | סש דאםוןו 60 6אששס וס שהוד צזססוא אס פטסויםח דסא ספ ושצזאה הצ - 1%‏ 96,00817560זהת-אס= +ח1טהוס סוי 50 45 ()6 ד 6% /ל+וסססזק ס6ווסגוק .56% = )אסך סקסזק סחם (8חו5 5 6 ך צוס\ |ב\ץם )אס ד 66| שוסקסזק 6ווסטוק ]ד 6 = ()א6 37560.7ח06א0 "זא ד" 860ַההח0/וסקסיק וסקסזק סחם זז 5 ()0060 637 06% /סזסכסזק 6ווטגוק 0% וח = 0660% ה זסקסזק סחם (ז100006 5 76000%הח צשס\ |3/\ץם )6060 בה 166 שזסססזםק 6ווטגוק הר עס = 6810060 וח "600" 860ההת0צוסססיק זסקסזק סחם פרק 14: יצירת פקדי 606% - 403 אס תרצה לשלב שיטות בפקד, האשף ייצור אותן כפונקציות ולא כתת-שגרות. לבסוף, הקוד עבור קריאה וכתיבה של ערכי מאפייניס לאובייקט 880שזסקסזס מיוצר בצורה אוטומטית : 6 ווחסזן פסט|/ע /וסקסזכן 080 [' (080/ סק סק 5 80 סק )65ו סק 68 |ס0ח56700(\ 500 סספּעווק (זס|60א₪86 061 ,"זסו86660" )סקס סה קסזק = זסו60א₪86 וח (ז600!0זס-] 066 וח ,"זס|ס660זס- ")סקס סה קסזק = זסוס66זס-] וח ("" ,"א ")סק סה קסזק = 6 .הח )6 806600(‏ 61 םח ,"066 סה םסק = 60006 הח וח 50 0חם 6 סס פסט|הע /שוסקסזכן בס" (80/ סז 5 80 קסזק )65ווסקסזוקססו\ |0-%ח56700(\ 50 סספּעווק (ז0ו00א286 066 וח ,זסו|ס6א₪86 וח ,"זסו60א886")ץסקסזקסו\. סה קסזק |ו68 (זס|660זס-] 061 וח ,הסוס66זס= וח ,"וסו660זס-" )סקס זקסטו\. סט קסזק |ו68 ("" ,6% 0837501.7ח0000 ,"זאם ד" )ץהסקסקסשו/\. 86 קסיק ||68 3000 061 6060 הח וח "ל06 ה" )סקס זקסס/\. הט קסיק ||68 50 0חם כדי להשלים את כתיבת הקוד עבור הפקד, עליך להוסיף את הקוד הנחו למאפיין ולשגרת 655זקץ6א, המוצגת בתוכנית דוגמה 14.4. תוכנית דוגמה 14.4: ?8/.ס= זוי ! השינויים הנחוצים בקוד אשר נוצר על ידי האשף. 5 ()8710600%ה 66% /סזסקסזק 6ווסגוק וח = 6300606 סקסזק סחם (06061ח1 45/ 6ט!3/\ששסצח | \ץם )6716660 6% | ץשוסססזק שווטגוק 6ט]3/\/ש0\ח 6856 561606 2 170 6856 86 סח = 76000%ו3ח6 וח 6 6856 0 = 6087166606 וח וח "006" 0ַ6חַחַהח60/וסססיק הטסוק סחם (10%60067 45 65506650 66 56%זהחה66ס 5 סספּעווק טפ זוא הסח ד 080% ץ6אפע = 50 ץ66 זז הח וח 6856 50|666 6 פו 6878000 שח 0 6896 סטפ זוא 60 06 עְהוח פזסטותטח ץוחס' 1 6856 חס ד 9ץ6) פע => |50ש66 0חה 0ץ6אפע =< 50 ץ6א זז טטפ זואם 4 סדנת לימוד 6.0 8\ 6 0 = |ו46/850 0 סז 5 \ +ה6/ 3156 + 0חם 0 06 עה 5ז60! ץוחס' 2 6856 החד 2ץ6א פע => 4650 סח הץס6אפע =< 50 ץ6א זז טטפ זואם החד 122 => 86750 0חג 97 =< 6056 1501 טטפ זואם 6 0 = |ו66/850 0 סז 5 \ +ה6/ 3156 + 0חם וח 50 0חם הוספת הקוד הסופי נחוצה מפני שהאשף יוצר יישלדיי בלבד עבור חבריס אלה. אחרי הכל, אס האשף היה מסוגל ליצור את כל מה שנחוצ, היית מחוסר עבודה! אשף דפי המאפיינים ראית את אשף דפי המאפיינים (0זה2ו\\ 5ספָהק שזסקסזוק) בעבר כאשר עבדת עס כמה מהפקדיס הפנימייס של 8856 |8טפו. תיבות דו-שיח אלו הופכות את פעולת קביעת המאפייניס השייכים לפקד מסויס לקלה על ידי סידור המאפייניס לפי קבוצות. תוכל ליצור דפי מאפייניסם עבור הפקדיס שלך תוך שימוש באשף דפי המאפיינים. כמו שעשית באשף ממשק פקד א6ע60, עליך להוסיף את אשף דפי המאפיינים לשולחן העבודה דרך מנהל התוספות. אחרי שביצעת ואת, תוכל להפעיל את האשף מתוך תפריט 800-105 של 8856 |ף8טפו/. כאשר תפעיל את האשף, תראה מסך המסביר את מטרת השימוש באשף. לחיצה על לחצן 6%\ במסך זה תעביר אותך לתיבת הדו-שיח הראשונה, במקוס אשר בו מתחילה מלאכת יצירת דפי המאפיינים. יצירת הדפים תיבת הדו-שיח 23065 ץזו6קסיוק 86+ 561661 מאפשרת לך ליצור את דפי המאפייניס (ראה תרשיס 14.15). אם כללת את מאפייני זחס= ו-זס|ס6 בפקד שלך, האשף ייצור שני דפים בעצמו: זסו087060ח508 ו-%ח0870-0ח508. אס אינך וקוק לדפיס אלה, כל שעליך לעשות הוא להסיר את הסימון מהתיבות הנמצאות ליד שמות הדפים כדי למחוק אותם מסט דפי המאפיינים. בנוסף לדפים המופיעים כברירת מחדל, תוכל להוסיף דפים חדשיס לתיבת הדו-שיח. לחיצה על לחצן 400 תגרוס להופעת תיבת הדו-שיח 6וח8א 0306 ץזוסקסזק, אשר בה פרק 14: יצירת פקדי 606 | 405 תוכל להקליד את שס הדף שברצונך ליצור. כאשר תסייס להזין את השסם, הוא יוצב ברשימת הדפים הזמינים ויקבל סימון. סדר שמות הדפיס ברשימה הוא הסדר אשר בו תופענה הכרטיסיות. תוכל לשנות את הסדר על ידי סימון דף ושימוש בלחצני החיציס כדי להזיז אותו ברשימה. 5 עוזסקסז?] 6ח] 56!601 - 6זה23ו/\ 306 עוזסקסזק הלוו 056 50 לחש טסץ' (5)סְחָב עשוסקסזוק 6ח5 56ססח 0ח60 56 זנוסץ 3 6סט\!חו סד .00 66% ,חב עלזסקסזס אופח 3 300 סד 6 )0 66| 56 50 אספ 606% 806 666% , סמב עשוסקסזק 6 56 לחבאו נוסץ' 65חַ3 ע>זסקסזט |ה .חָב0 עשזסקסזק 6 6חווחז0%6 60 פחסספום אוסזזב 806 056) 56166560 .5פַחָב ץ6זסקסזק זטסץ ]0 ז06זט 53037000 |ש] המשרהה תרשים 14.15: באפשרותך ליצור דפים חדשים או לשנות את שמות הדפים הקיימים באשף דפי המאפיינים אחרי שסיימת להוסיף דפיס לתיבת הדו-שיח, לחצ על לחצן 6% כדי לעבור לתיבת הדו-שיח הבאה. הוספת מאפיינים לדפים השלב הבא ביצירת דפי המאפייניס הוא להוסיף את המאפיינים הנחוציס לכל דף בתיבת הדו-שיח. תיבת הדו-שיח ₪65ז6קסזק 400 מוצגת בתרשיס 14.16. טפט 400 - 6זה2וש\ חב עוזסקסז סז ה636 חס 15013 50 לחהו סע 65זסקסזס 6חם 56160%. מ 6 שפח לחבע וס הסוחצו חס חב ע6זסקסזק שחש >סו> 3 016 הפר חב , עלזסקסזק 86 561665 , והסקקב ספ ע6זסקטזום חססוטופ 6/יסוח 010 6 0% חח3> 5חַבכ '5:30370' :סססו חב ץלזסקסזק 6|סב|\ה ה | 6חס-5:300810 | | == | ה | < 6 | 6% | | ו תרשים 14.16: תיבת הדו-שיח 65וםקסזק 00 מציגה את רשימת המאפיינים הזמינים ומראה את הדפים המוגדרים עבור תיבת הדו-שיח 6 סדנת לימוד 6.0 8\ כדי להוסיף מאפיין לדף כלשהו, לח על הכרטיסיה המתאימה לדף הרצוי, בחר את המאפיין מתוך רשימת המאפייניס הזמינים ולחצ על לחצן הח הימני. שים לב, בתרשיס 14.16, לכך שנוסף דף וקסוק |8ז8ח66 ובו מאפיין זא66ס1ַז608. בנוסף, אס הופיעו דפי ברירת מחדל, זס|5090087060 ו-0870-00%ח500, שיס לב לכך שהמאפיינים המתאימיס להם כבר נוספו. טיפ: ל תוכל לגרור מאפיין לכרטיסיה מסוימת כדי להציב אותו בדף המאפיינים הרצוי. לאחר שסיימת להוסיף מאפייניס לכל הדפים, לח על לחצן הפוח כדי לסיים את תהליך יצירתס. בדומה לאשף ממשק פקד א68ש6, אשף דפי המאפיינים מציג דף תקציר אשר מספק מידע נוסף שיעזור לך להשלים את יצירת הפקד שלך. שימוש בדפי המאפיינים ביישומים כדי להשתמש בדפי המאפייניס שיצרת, עליך להוסיף לפרויקט כלשהו עותק מהפקד שלך. לאחר מכן, בדף המאפיינים, לח על הלחצן בונה (שעליו שלוש נקודות) הנמצא בשורת המאפיין וחסזפט6. כעת תוצג תיבת הדו-שיח דפי המאפיינים כפי שהיא מופיעה בפקדיס אחריס ותאפשר למפתח לשנות את ערכי המאפיינים. בתרשים 14.17 מוצגת דוגמה לדף מאפייניס השייך לפקד מותאם אישית. |א 5 עוזסקסז] | חס | ]זה :6 שחס] ו - 5 [+ 561 5308 65 במ שמוזסטח. |[ ₪ -] סו -] סוומו!. =[ וק 5 15 53705 5] תרשים 14.17: דף המאפיינים שיצרת עוזר למשתמשים בו להתאים את פקד 6%אעו460 טיפ: תוכל גם להגיע לדפי המאפיינים על ידי לחיצה ימנית על הפקד ובחירת האפשרות 7 = 6/065ק0זק מתוך התפריט. פרק 14: יצירת פקדי אפא6₪ג | 407 יצירה ושרטוט פקד <6עו+46% שתי הדוגמאות הקודמות הראו לך כיצד ליצור פקדי 466% הבנוייס מפקדיס קיימיס. הסעיפיס הבאיס ייראו לך איך ליצור פקד אשר נוצר מההתחלה על ידי שרטוט הממשק בעזרת שיטות גרפיות ויצירת המאפיינים, שיטות ואירועים עבור הפקד. הפקד שתיצור בפרק זה יהיה לחצן פקודה בעל הגדרות צבע ורקע שונות, דבר שלא תוכל לעשות תוך שימוש בפקד קיים. למרות העובדה שלחצן פקודה הינו דוגמה פשוטה יחסית, תוכל להשתמש בה כדי להבין כיצד תוכל ליצור פקד משלך. התחלת הפרויקט כדי להתחיל ליצור את הלחצן הצבעוני, התחל פרויקט חדש מסוג פקד א6ש860. לאחר מכן, קבע את מאפייני הפרויקט ופקד המשתמש כפי שמתואר בטבלה 14.2. טבלה 14.2: מאפייני הפרויקט והפקד א חסוזס6567 6606[ס:ק חסאטם 6080 660ה8ַחחם זסוס6 +סססזס 6החהא |סזטחהס6 567 חזס!|ס6 יצירת ממשק המשתמש בדוגמאות קודמות, שרטטת את ממשק המשתמש של הפקד על גבי אובייקט (₪0ח56760(\ על ידי שימוש בפקדיס קיימיס. אולס, בפקד וה המשורטט על ידך, תוכל ליצור את הממשק בצורה עצמאית בעזרת הוספת קוד לשגרות |%0ח60ז56. עליך לכתוב את הקוד המשרטט את צורת הפקד בשגרת %חו8ק של אובייקט | ח60ז56ש. שיגרה זו תופעל בכל פעס שהחבר המכיל את הפקד שלך (כגון טופס התוכנית) משורטט. תוכל גם להפעיל את השיגרה בעצמך על ידי שימוש בשיטת ח05ז/₪6 השייכת לפקד. וכור כי ממשק לחצן הפקודה הינו למעשה תמונה בלבד. עליך להשתמש בשיטות גרפיות, כגון שיטת 6חו!, כדי לשרטט את התמונה שהמשתמש יראה על המסך. לדוגמה, כאשר המשתמש ילת על הפקד שיצרת, עליך לדאוג לכך שהתוכנית תשרטט קוויס באזור הלחצן בצורה שבה הס ייראו כאילו הלחצן נלח. כדי לקבל מידע נוסף בנוגע לשיטות גרפיות, פנה לפרק 19, שימוש במרכיבי התכנון הוויזואלי. ראה: "פקד 6חו1 ופקד 6כְ508", פרק 19. 8 סדנת לימוד 6.0 8\ כדי לשרטט לחצן פקודה משולש, תוכל להשתמש בשיטות 6חו] ו-א+חוזס בלבד. במקרה זה, הלחצן ימלא את כל שטת |%0ח60ז56\. בתהליך כתיבת הקוד עבור לחצן פקודה צבעוני יש שלושה שלביס : 1. השתמש בשיטת 6חו] השייכת לאובייקט |60080ז56\ כדי לשרטט תיבה מרובעת מלאה בגודל המלא של הפקד. כדי ליצור תיבת בגודל המתאים, השתמש במאפייני +6100 ו-חזסו/\ של הפקד כמשתני מימדיו בשיטת 6חו]. 2 כדי לדמות את המצב היימורס'י של הלחצן, שנה את צבעי השורות המרכיבות את התיבה המרובעת. פעולה זו מצריכה שימוש נוסף בשיטת 6חו] כדי ליצור קו לבן לאורך הגבולות עליון ושמאלי של הפקד וכן כדי לשרטט קו שחור לאורך הגבולות תחתון וימני. קוויס אלה מעניקיס ללחצן את הצורה היימורמתיי הרגילה שלו (כאשר הלחצן 'לחוצ'יי, עליך להחליף את מצבו על ידי החלפת מיקומי הקו הלבן עס הקו השחור). 3 שרטט את תוכן הלחצן על ידי שימוש בשיטת שחוזס. הקוד אשר יוצר את גוף הלחצן מוצג בתוכנית הדוגמה 14.5. יש להציב את הקוד בשגרת %חו8ק של אובייקט |₪0ח60ז56ש. תוכנית דוגמה 14.5: 82/.א6010₪1 - שיטת 6חו! לשרטוט הלחצן הצבעוני. ()חו8ק |%00ח56700(\ 500 סספעווק 5 הסח וחוס סח 35 הסוח וחוס |70ח0ז56\ השו\ סט 66 זס? ההססז 506 68/6 |' 0 - 600% = +חטוסוח 0 - וש = ה6סו/\ח אס 60זס|60 8 צוהז ,זס|ס6א86 0|'5זחה00ז50\ 66% 1 = ה6סו/\עטפזס. זס|60א86 חח! = זסוססווו=. 0 = 6ושפוווח. 5 ,השרוח ,וססו/ש\ח) - (0 ,0) 6חו ]וס 5660 ו 10% זסאוס! אובּזס' 3 = הססו/\\אופזס. חס ד 8|56= = הצוססספוסוזט + אע = זס|660וס=. 56 סוח/\\טע = זסו|ס66זו=. זז 0חם שרוח , הססו/\ח) -- סט הטוסרוח ,0) שח 1 וסהס56\ ( ווח , הססו\ח) - (0 ,הסוח שחו 1 !סט הס6ז5\ 5חו! 60%!-זסט אובּזס' חס ד 8|56= = הצוססספוסוזט + ס6וח/\פע = זס|ס66זס=. פרק 14: יצירת פקדי א609ג | 409 6 6% = ז600|0ס=. + 0חם (0 ,חז)סו/\ח) - (0 ,0) סח ]. וסזהס6ז56\ (000ו6וה,0) - (0 ,0) 6חז]. וסהס6ז56\ חס ופסכ הס 63 66 60 ססר |סחה אה1ט68|6' 2 / ((הסוזק68 וח )וזא ד.- הזסו/\.) = >סחסזטש. 5 = %חסזט0. החסחד 5 > %6שחסווטס. זז 2 / (( 63000 600 א ד - %חסו6.) = אחסזט6. 5 = ח6זווס. הסחד 5 > שזחסזוטש. + 63000 66 צובּזס' זס|ס66זס-טח! = זס|660זס=. סוס 63 רוח שחחחק. |סהס56\ חטו\\ 0ח= 50 0חם הקוד בתוכנית הדוגמה 14.5 קל להבנה. ראשית, מתבצעות כמה קריאות לשיטת 6חז] כדי לשרטט תיבה וכמה קוויס המייצגיס את לחצן הפקודה. לאחר מכן, תוכן הלחצן משורטט במרכז הפקד. שיס לב לכך שיש פנייה לכמה משתני מודול בשגרת זַחופק. לדוגמה, צבע הלחצן נקבע על ידי משתנה זסוס66ספטַח!, אשר מכיל את תוכן המאפיין זס|860. יש להצהיר על המשתניס הבאיס בסעיף ההגדרות הכלליות של אובייקט (70ה0ז56 0 : סחטסז60זס- הסטפ' חס | 35 זסוס66זס=פח! וחוס 8860000 חססטפ' פַחס | 45 זסוס6א6הפפח! חחוס 7 056 6 15' | ה200!68 35 הצוססספטסוזפ חחוס ההצהרות על ערכי המשתניס הנמצאיס ברמת המודול נחוצות לשגרות המאפייניס כדי שהשגרות תוכלנה לשנות אותם. המשתנה הבולאני, חושסס6פטסוזפ קובע אס הלחצן במצב י'לחוצ'י או יימורס'י. בתרשיס 14.18 מוצג הצבע הבסיסי של הפקד כפי שהוא נראה בטופס פרויקט הניסיון. |< |ם)= ‏ [חזס ]₪ תרשים 14.18: הקוד הקיים בשגרת +חו8? אחראי לשרטוט ממשק המשתמש של הלחצן 0 סדנת לימוד 6.0 8\ השלב הסופי ביצירת ממשק המשתמש הוא לקבוע ערכיס התחלתיים עבור צבעי הלחצן. כדי לעשות זואת, הקלד את הפקודות הבאות: ()26ו|108ח1 |00ח60ז56(\ 5 סזבּעוזוק חה8ץ6סע = זס|ס6א6הפפח | סופספ = זס|660זס-ח | 50 0ח= שורות קוד אלו מספקות הגדרות התחלתיות עבור שגרת זחו8ּק. יצירת מאפייני הלחצן כפי שהזכרנו קודס לכן, תוכל לשמור על עיצוב פשוט של הלחצן. ארבעת המאפייניס העיקרייס שלו הס %חס= ,ח00ק68 ,זס|60א286 ו-זסו660זס"]. שלושה מתוך ארבעת המאפייניס, +חס ,ס|886660 ו-זס|860זס=, יהיו מקושריס למאפייניס הרלוונטיס של פקד המשתמש. בנוסף, המאפיינים זס!|60א886 ו-זס|660זס יישמרו כמשתניםס המיועדיס לשימוש על ידי הקוד. כאשר אתה משתמש באשף ממשק פקד א6ע₪6, תוכל ליצור את המאפייניסם הדרושיס לך בקלות. עליך להוסיף את מאפיין ח00ס68 ולקבוע אותו כסוג ז6פוח6! וחסס5ט6 וכן למפות את מאפייני חס ,ס|00א886 ו-זס|660זס=] לאלה הנמצאים באובייקט |₪0חס5676. האשף ייצור את שגרות המאפייניס 160 ו-6% עבור ארבעת המאפיינים. קח, לדוגמה, את שגרת המאפיין +66 עבור מאפיין זס\886%60 : = 01 5 ()זס|ס6א286 06% שזסססזק ש6ווטגוק 660 |ס 56700 = זס|ו₪86660 שזסקסיוק סחם שיגרה זו מחזירה את ערך צבע הרקע עבור הפקד. ניתן להשתמש בה כפי שהיא כתובה כאן, אולס עליך להוסיף שורה נוספת לשגרת המאפיין 16%, כמתואר בשורות הקוד הבאות : (6010₪ 015 45 זס|ס8666 עעס\] |\ץם)זסו60א₪86 66 | שזסססזק שווטגוק זס|60א286 עס = ()זס|0ס58666. !560 \ זסו60א701.286ה56760(\ = זסוס4666פפח | "זס|0ס6א886" 0ספַההח0/סוסקסיוק ץסקסזק 0חם שיס לב לכך שנוספה שורה עבור שמירת ערך הצבע במשתנה זס|886660פַח!. שגרת %חו? משתמשת במשתנה זה, אשר קיימת עבורו הצהרה באזור ההצהרות הכלליות. למאפיינים הנותריס, המוצגיס בתוכנית הדוגמה 14.6, ישנו קוד הכתוב באופן דומה. פרק 14: יצירת פקדי 606% - 411 תוכנית דוגמה 14.6: ק8/.אד601088 - רוב שגרות המאפיינים נכתבו על ידי האשף. +חסת ₪5 ()זחס- 06% אוסססלק שווטגוק +ס .סח 56760! = %חס- 56% שסקסזק 0חם (טחס= 5 +חס= צוס\] |3/\ץם)חס- 56% עצ+וסססזק סוופגוק חס עס = +חס-. !056600 56% "זחס-]" 60פחהח0/סוסקסיוק ץסקסזק 0חם = 01 5 ()זסו660זס-] 06% עאוסססלק שוופגוק זס|660זס.ז0ו056700\ = זס|ס66זס= שזסקסיוק סחם (6010₪ 015 45 זסו|ס66זס- צו6\ |3/ץם)זסו|ס66זס- 6% | ץאסססלק שווסגוק זסו660זס= שוס\] = ()זס|660זס=. !5600 \ וסוס |0ח056760\ = וסוס660זס=וטחו "זס|ס60זס-]" 60פחהח0/סוסקסיק וקסוק סחם %חוזה/\ 25 ה0ו0ק68 06% עאוסססלק שווטגוק חסק68 וח = ה00ק68 שזסקסזק 0חם (ח8וזה/\ 5 הסוזק8 עשס\ |ה/\ץם)חסו 63 6% | ץאוסססלק שווסגוק חסוז0ק68 צו6] = 6800 ח +חופק |סיחה60ז56\ "6300" 60פחהח0 סוקסוק שזסקסוק סחם למרות העובדה שעליך להצהיר על המשתנים 6חטסז60זס8ח| ו-6חטסזסא8886חו, אשף ממשק פקד א6ש460 יוצר את הגדרת חסטק68 חח עבורך בצורה אוטומטית. הסיבה להבדל נעוצה בעובדה שמאפיין ח00ק68 אינו ממופה לאובייקט |₪0ח60ז56. תוכל גס לשנות את ערך הקבוע המכיל את תוכן ברירת המחדל, ח00ק68 060 חח למשהו השונה מ-0, כגוו השס חז8זסוס6. הערה: האשף יוצר גם את הקוד עבור שגרות 65 ז6קסזק6)/\ |-67065ק0זק ₪680 כדי שניתן יהיה לשמור את ערכי המאפיינים באובייקט 888זפססזס. 2 סדנת לימוד 6.0 8\ יצירת אירועי לחצן תוכל להשתמש באשף ממשק פקד א6ש60 גם כדי ליצור את האירועים עבור פקד הלחצן הצבעוני. תוכל לעשות זאת בזמן שאתה יוצר את המאפיינים, או על ידי הפעלה מחדש של האשף. זכור למפות את האלרועים >66ו01, 0605-60%, חשוסס6פגוסויז ו-ק 6פגוסוז לשגרות המתאימות באובייקט !|%0ח600ז056 (ראה סעיף מיפוי המאפיינים הנמצא בפרק זה). לאחר שהאשף יצר את קוד השלד, הוסף את הקוד הנחוץ עבור שגרות חשסס6פטסוו ו-ק(\56טס!!. מן הראוי שהלחצן שתיצור יתנהג בצורה דומה ללחצן פקודה רגיל, ולכן שנה את מראה הלחצן כאשר הוא נמצא במצב "לחוציי. תוכל לעשות ואת על ידי שרטוט קווים שחורים לאורך השוליים העליון והשמאלי של הלחצן כאשר שגרת חשססספטסוז מופעלת וכן על ידי שרטוט קוויס לבניס לאורך שולייס אלה כאשר מופעלת שגרת 600פטסו!]. דבר זה נעשה על ידי קביעת ערך המשתנה הבולאני חשססספטסוזפ והפעלת הקוד הנמצא בשגרת %חו8ק של אובייקט |סשח0ס6ז6פ5. לאחר הוספת הקוד הדרוש לשתי השגרות הללו, הקוד עבור פקד חזפזס!|60 אמור להיראות כפי שמוצג בתוכנית הדוגמה 14.7. תוכנית דוגמה 14.7: ק8/.א6010881 - קוד השגרות אשר נוצר על ידי האשף ושופר על ידך. 1000060 5 1%ח5 ,1006067 5 הסטם)הצוס6פוסוי] |סהס56760\ 5 6זהעווק (9/6חו5 5 צ ,6פַחו5 ₪5 א סד = חאוסס6פוסוזם +חוהק 56000 (ץ ,א ,516 ,הסט )הפוסו +ח6/ 3156 50 0חם = ,0!6חו5 5 א ,1000061 45 501% ,1000067 5 הסט )סוי וסחס5660\ 5 סזהעווק (6פַחו5 ₪5 ץצ 6 = חצוס60פוסוזם +חו3ק |70ח5600\ (ץ ,א ,5016 ,הסט )סוס +הסע5 ₪150 50 0חם הערה: אל תערבב את האירועים המתוארים כאן עם אירועי פקד חזפזס!וס6, כפי שהם נראים מנקודת מבט המשתמש. הקוד בתוכנית הדוגמה 14.7 מופעל כאשר מתרחשים אירועים הקשורים בעכבר באובייקט |0חח60ז56. הפקודה האחרונה, ₪815565/670%, מפעילה את האירוע המתאים בפקד החחזס!ו60 וזה גורם להפעלת קוד בשגרת האירוע אשר נכתב על ידי המשתמש. תרשים 14.19 מציג את המצב הלחו של פקד חז8זסו60. פרק 14: יצירת פקדי אפ60ג - 413 יצירת דפי מאפיינים עבור הלחצן המשימה האחרונה שעליך לבצע במלאכת עיצוב פקד הלחצן הצבעוני היא ליצור את דפי המאפיינים כדי שהמשתמש יוכל לקבוע את מאפייני הפקד בקלות. השתמש באשף דפי המאפיינים כדי ליצור את הדפיס (ראה סעיף אשף דפי המאפיינים בפרק זה) ובצע את הפעולות הבאות: | וםן=. [חזס ]₪ 6 תרשים 14.19: הקווים השחורים מסמלים את העובדה שהלחצן לחוץ 1 הוסף דף !660613 לרשימת הדפים. 2 הצב את מאפיין ח00ק63 בדף זה. 33 ודא שהמאפייניס זס|ס6א886 ו-ז660|0זסת נמצאיס בדף זס|5080087060. 4 | ודא שמאפיין )חס נמצא בדף +חס-08370ח500. בדיקת הלחצן הצבעוני בתוכנית בנקודה זו, הושלס עיצוב הפקד שלך והוא מוכן לבדיקה בתוך תוכנית. עליך להוסיף פרויקט רגיל מסוג 5%5 לקבוצת הפרויקטיס המכילה את פקד חזפזס|ס6. לאחר מכן עליך לסגור את חלון העיצוב של פקד הפזס|60 כדי להפוך את הפקד לזמין עבור פרויקט הבדיקה. כעת תוכל לשרטט את הפקד על גבי הטופס כפי שאתה משרטט כל פקד אחר. כאשר אתה משרטט את הלחצן, תראה את המסגרת הטיפוסית המסמלת את גודל הפקד. כאשר אתה משחרר את לחצן העכבר, הפקד ישורטט מחדש בצבעי ותוכן ברירת המחדל שלו (ראה תרשים 14.18 כדי לראות כיצד ייראה הפקד). 4 סדנת לימוד 6.0 8\ קביעת מאפייני הלחצן לאחר שהצבת את הלחצן בטופס, קבע את ערכי מאפייניו. תוכל, כמובן, לקבוע את המאפיינים מתוך דפי המאפיינים. נקודה אחת שיש לזכור היא שאם יצרת תיאור במאפיין ח00ק68 כאשר הגדרת אותו באשף המאפיינים, הוא יופיע באזור הנמצא מתחת לרשימת המאפיינים כאשר מאפיין ח00ק68 נבחר. תיאור וה מהווה עזרה נוספת למשתמש בעבודתו עס הפקד שלך. דרך נוספת לשנות את מאפייני הפקד שלך היא להשתמש בדפי המאפיינים שיצרת. תיבת הדו-שיח המוצגת בתרשיס 14.20 מאפשרת לך לקבוע את המאפיינים ח68000, זסו60א886, זס|660זס ו-%חס+ השייכים לפקד. שגרת %חו8? מופעלת בכל פעם שתסגור את דפי המאפייניס. לאחר מכן יוחלו הערכיס החדשים על תצוגת הפקד. כתיבת קוד עבור שגרות האירועים תהליך כתיבת הקוד עבור שגרת אירוע השייכת לפקד שיצרת והה לתהליך כתיבת הקוד עבור כל שגרת אירוע אחרת. תוכל ללחו לחיצה כפולה על הפקד כדי להגיע לחלון הקוד שלו בפרויקט הבדיקה ולאחר מכן להתחיל להזין את הקוד. כדי לוודא ששגרת 616% של הפקד פועלת כשורה, הצב תיבת הודעה (א0פ 0655846) בשגרת האירוע כדי להודיע שהלחצן נלחצ. הקוד הדרוש לכך מוצג בשורה הבאה: "[סח600 הזםזס|וס6 606 ס6אסו!6 טסץ" אס0ס 150 | ום] = [חזס ]₪ 6 תרשים 14.20: דפי המאפיינים מהווים דרך מסודרת אשר בעזרתה יוכלו המשתמשים לקבוע את ערך מאפייני הפקד לאחר שהוספת את פקודת א15080!], בדוק את שגרת 616% על ידי הפעלת הפרויקט. כאשר תלת על לחצן חז8זסוס6, ההודעה אמורה להופיע. במידה ותרצה לבדוק שגרות אירועיס אחרות, בצע את אותס המהלכים. פרק 14: יצירת פקדי אפ60ג - 415 מכאן... בפרק זה ראית איך יוצרים פקדי א6שו6, על ידי שיפור פקדיס קיימיס וכן על ידי יצירתס מחדש. בנוסף, ראית שני אשפיס המסופקיס על ידי 8856 |%1508 במטרה לעזור לך ביצירת פקדים. כדי לקבל מידע נוסף בנוגע לנושאיס אשר נדונו בפרק זה, ראה את המקורות הבאים: > כדי לקבל מידע נוסף בנוגע ליצירת פקדי 6%שו1₪, ראה פרק 15 הרחבת פקדי אסעוץ6. + כדי ללמוד על מסמכי 160/6%, ראה פרק 31 מסמכי א6עולס1. 6 סדנת לימוד 6.0 8\ 15 הרחבת פקדי %א6עוז46 פרק 15: הרחבת פקדי אפושא - 417 בפרק 14 יצירת פקדי 6%ע6%, ערכת היכרות עס יסודות הבנייה של פרויקט המבוסט על פקדי 860/6%. בנוסף לכך, למדת להשתמש בשני אשפי תוספות (05ז28ו)\ ח1 00) אשר סייעו לך בבניית הפקד. פרק זה יעמיק את היכרותך עס פקדי א6ע160, תוך הצגת מספר נושאיס נוספים אשר יעזרו לך בבניית פקדיס טוביס יותר. הסעיפים בפרק וה מכסים את הנושאיס הבאיס : % + שימוש באובייקטיס המשפריסם את שילוב הפקדים במכולות (815חו%9ח60) שלהם. % + דפי מאפיינים (8965? /ז6קסזק) להגברת הגמישות, ללא שימוש באשף. % + טיפול בשגיאות בפקדי אסעזסה. בנוסף לכך, תלמד לבנות פקד 6%ע60 מעט יותר מורכב: פקד המחשבון. אובייקט +חסוטוחה לשמירה על אחידות בפרויקט מסוג 5%5 00870ח8ז5 קיימת מידה רבה של שליטה על מה שהמשתמש רואה, כמו צבע וצורת הטפסים. לעומת זאת, פקדי א6%שו8460 ניתנים למיקוס בתוך מכולות שונות, הנקבעות על ידי המשתמש. כדי שהפקד יפעל בצורה עקבית ורצויה בכל סוג מכולה, יש צורך שתהיה לו גישה למידע הנוגע למכולה שלו. למרבה המזל, מפתח מסוגל לכתוב קוד בתוך אובייקט מסוג פקד משתמש (/80ח050760) הנעזר באובייקט הנקרא זחסוטוח4 (סביבה) לקבל מידע על סביבת הפקד. יצירת דוגמה לאובייקט +חסוטוווה כדי ללמוד את השימוש באובייקט זחשוטחח, התחל פרויקט חדש מסוג 5אם 0870ח5%8, ואז הוסף פרויקט מסוג |ס₪חס6 6%ש61 כדי ליצור קבוצת פרויקטים. שנה את גודל אובייקט |80ח60ז56 כך שיהיה קטן יחסית (בערך 1050 א 1605 יחידות), וסגור את חלון ו%0ח56760(\. אחר שנה את המאפיין זס|60א886 של 1 חזס= לסגול, והצב את הפקד שייצרת על הטופס. התוצאות צריכות להיראות דומות לתרשים 15.1. תרשים 15.1: פקד משתמש אינו מגיב אוטומטית לשינויי צבע המכולה 8 סדנת לימוד 6.0 8\ שיס לב, כי צבע הרקע של הפקד אינו תואס לצבע הטופס. רוב הסיכוייס הם שהפקד יעבוד כראוי, אך הבדלי הצבעיס עלוליס להסיתח את דעתס של המשתמשים. כדי שהפקד יתאיסם עצמו לרקע אוטומטית, יש למצוא דרך לגרוס לקוד הפקד להשיג את מאפיין זס|886%60 של האובייקט המכיל אותו (המכולה). למרבה המזל, האובייקט %ח6וטוחה מאפשר לפקד לגשת למאפיין זה ולנתוניס חשוביס נוספיס. מעקב אחר צבעי האובייקט %חסוטוווה כדי להתמודד עם בעיית אי ההתאמה שהוצגה לעיל, יהיה עליך לשנות צבעי הפקד כך שיתאימו לצבעי המכולה שלו. ראשית, מחק את דוגמת הפקד הראשונית שזה עתה יצרת, וחזור לחלון ו%0ח60ז056. כעת, הוסף את שורות הקוד הבאות לשגרת האירוע ()00671165זק+וח1 של |סשח60ז56 0 : זס|60א086.+חסוסרחג/ = זסו00א286. !סט הז זס|660זס-.%ח6וטרחג = זס|ס660זס-. !סט סז כעת הפקד שלך צריך להתאים עצמו לצבעי המכולה שלו. כדי לוודא ואת, סגור את חלון וסח0ס6 ז056! כך שהפקד יהיה זמין בארגז הכלים. לאחר מכן צייר מופע של פקד המשתמש על הטופס. כאשר הפקד החדש יופיע, עליו להופיע באותו צבע כמו הטופס (ראה תרשים 15.2). [חזם] .₪ תרשים 15.2: האובייקט זחסוטוחה מאפשר להשיג מידע על המכולה של הפקד, כמו למשל, הצבעים מה יקרה אס משתמשי הפקד ישנו שוב את צבע הרקעז נסה לכוון את מאפיין זס|00א₪86 לצבע אחר. כשתעשה ואת, הטופס ישתנה מיידית בהתאס לבחירתך, אך הפקד יישאר סגול. תוצאה זו מתקבלת משוס שהגדרת קוד באירוע ₪65זסססזקשוח1, אך לא באירוע החשוב חַסְאַחַ3ח6)חסוטוחה. פרק 15: הרחבת פקדי אפ60ג - 419 כדי להדגים ואת, הוסף את הקוד הבא לפקד המשתמש: (0חו5 35 6וחה\] סק )360 שרח |סה60ז056\ סטש סספעווק זס|08600.+ה6וטרחג/ = זס|0ס6א886.|סיטהס6ז56\ זס|600זס= .הווחא = זס|ס66זסת. |סיהס6ז56\ 50 0חם כעת, סגור את חלון |ס₪ח60 ז056, וצייר מופע של הפקד על הטופס. שנה את ערכי המאפיין זס!886660, והפעם גס צבעי הרקע של הפקד ישתנו. מאפייני האובייקט זחסוטוווה כפי שבוודאי ניחשת, האירוע סספַההַח6סחסוסוחה מופעל כאשר מאפייני האובייקט השפוחה משנים את ערכם. הדוגמה לעיל מעדכנת את המאפיינים זס|660ז0= ו-זס!886%60 בכל פעס שהאירוע מופעל, אך הפרמטר פוחפּאזסקסזק מאפשר לך לקבוע איזה מאפיין השתנה. בנוסף למאפייני הצבעיס, האובייקט 80916 מכיל כמה נוספים. כמה מהחשוביס מהס מופיעים בטבלה 15.1. טבלה 15.1: מאפיינים חשובים ב-זח6וסוחא זס|ו886%60 | שומר את צבע רקע המכולה ה סו | מציין אם פקד משתמש הינו פקד ברירת המחדל במכולה 6חהאץה|ספוסם | שומר את שם מופע הפקד. ניתן להשתמש במאפיין 6ח8\ץ8וספום כדי לזהות את ההודעות המוצגות בזמן העיצוב זסו660זס] | שומר את צבע הקידמה של המכולה 030 | מציין את המיקום (10686) בו הפקד רץ. בתוכניות בינלאומיות, נוח להשתמש במאפיין זה כדי לשנות את השפה או תבנית התאריך ח8ו|\%א6ד | מייצג את הגדרת יישור הטקסט של המכולה 6 | מציין אם הפקד נמצא בזמן עיצוב או בזמן ריצה. אם ערכו של 6 הווא 8156=, הפקד נמצא בזמן עיצוב; אחרת הפקד נמצא במצב ריצה. קיים מאפיין נוסף, 10680, המייצג ₪086 ניתן לגשת לכל אחד מהמאפייניס בטבלה 15.1 מתוך הפקד על ידי שימוש באובייקט +חסוסוחה. 0 סדנת לימוד 6.0 8\ האובייקט ‏ %6061א= בנוסף למאפיינים המסופקיס על ידי האובייקט זחסוטוח\, קייס אובייקט נוסף הנקרא 6+אם, המספק גס הוא מספר מאפייניס שימושיים. מאפייניס אלה, הנקראיס 656 "060ח6+אם, נראים ממבט ראשון כחלק מהתהוות פקד. לדוגמה, כאשר ממקמיס פקד על הטופס, המאפיינים 16% ו-קסז נראיס כאילו הס חלק מהפקד עצמו. אך בפועל, מאפיינים אלה, כמו גם כמה מאפיינים אחרים, הס חלק מהאובייקט 0 האובייקטיס 4091606 ו-ז06ח₪6 מספקים מידע על הפקד ביחס למכולה שלו. עס זאת, האובייקט ז06ח00א₪ אינו זמין עד אשר הפקד ממוקס על המכולה הלכה למעשה. כיון שכל מכולה שונה מחברתה, לא ניתן לקבוע מראש מה תהיה המכולה עליו ימוקס הפקד או באילו מאפייניס הוא יתמוך. מסיבה זו, לא ניתן לגשת לאובייקט ז06ח6:א= מתוך שגרת האירוע 6ו|שוח1, הנקראת לפני המיקוס הסופי של הפקד במכולה. עס זאת, ניתן לגשת לאובייקט ז06ח06אם באירועיס ₪65ז6ססזקשוח1 וכן 6765קס7ק ₪630. כדי לצפות ב- 0067065זק ז06ח06אם, צייר דוגמה ראשונית של הפקד והקש 4" כדי להציג את חלון המאפיינים. שיס לב כי למרות שלא הוספת עדיין מאפייניס לפקד המשתמש, חלק מהם מוצגים ברשימה. אלה הם מאפייני האובייקט ז06ח006ם. כדי לבחון את העניין, הוסף את הקוד הבא לאירוע 060165סלשוח1 של פקד המשתמש: "020166 06006 66 ה50 ד" = 6% דכ דוסס ד 0 ח6אאם. |סי סז \ כעת, צייר דוגמה ראשונית של הפקד על הטופס. המאפיין א6זקודוססד צריך להופיע אוטומטית על דוגמת הפקד שציירת. ניתן לוודא עובדה זו על ידי הצבת מצביע העכבר מעל הפקד, כמוצג בתרשים 15.3. [חזס] .= ]ןטס ז6ח6זא = 6 הַחו65 ד . . תרשים 15.3: האובייקט ז08ח6זא= מאפשר לפקד לשנות מאפיינים אשר הוגדרו על ידי המכולה שלו פרק 15: הרחבת פקדי א609ג | 421 בניית פקד המחשבו ] ו בסעיף זה תלמד לבנות פקד מחשבון פשוט, אשר ישמש בסיס לנושאיס המוצגיס בהמשך פרק זה. פקד המחשבון הינו פקד 6%ע460 פשוט, המאפשר למשתמשים לספק שני ערכי קלט, ולבצע פעולה מתמטית עליהס: חיבור, חיסור, כפל, או חילוק. הפעולה המתמטית נקבעת באמצעות המאפיין חסטאזפקס, ומבוצעת כאשר המשתמשיםס לוחציס על לחצן. פקד הדוגמה מוצג בתרשים 15.4. זסזב|ו23|0) תרשים 15.4: פקד המחשבון מורכב מ"פקדי משנה" המונחים עליו יצירת הפקד כדי ליצור את פקד המחשבון, התחל פרויקט חדש מסוג |₪0חס6 6%שו46₪. כעת מקם את הפקדיס הבסיסיים הבאים על משטח עיצוב פקד המשתמש החדש: <* חסטם608!טן - תווית אשר אליה יכולים לגשת המשתמשיס באמצעות המאפיין 68000 של הפקד. + 1 טא וכן 2וחטא - תיבות טקסט אשר שומרות קלט מהמשתמשים. + ח800ז6ק5!0! - תווית בין תיבות הטקסט, אשר מייצגת את הפעולה החשבונית שתבוצע. + 5 - תווית המציגה את סימן השווה (=) כדי לייצג חזותית את סמל המשוואה המתמטית. + ]| - תיבת טקסט המשמשת כדי לשמור את תוצאת החישוב. + 660%6א605 - לחצן המשמש לביצוע הפעולה. המשתמשים יכולים לשנות את כותרת הלחצן באמצעות המאפיין חסק68חסטטם של הפקד. לאחר שתסיים למקם את הפקדים, הפקד שלך צריך להיראות כמו הפקד שמוצג בתרשים 15.4. 2 סדנת לימוד 6.0 8\ יצירת הממשק השלב הבא ביצירת פקד המחשבון הינו לכתוב קוד עבור המאפיינים. כזכור לך מהפרק הקודס, אשף ממשק פקד א68שו4₪ מאפשר לך להציג מאפיינים, שיטות ואירועים, השייכיס לפקד שלך. דוגמת פקד המחשבון כוללת מספר מאפייניס אותם ניתן להציג בעזרת האשף. בצע את הצעדיס הבאיס: ראה: "אשף ממשק פקדי א6ט60ג", פרק 14 1 הפעל את האשף על ידי בחירה באפשרות 2316ו/ 105671366 !60510 6%על6 מתפריט 5חו-200. לחצ על +א6א. 2 בתיבת הדו-שיח 1612675 105671866 56166%, הוסף מאפיין חסושט63 לפקד. 3 בתיבת הדו-שיח 5ז06ו16₪] %671306ח1 וח6₪5%0 68%6ז6, הוסף שני מאפיינים חדשים, שיטה, ואירוע, כמוצג בתרשים 15.5. מדובר באלמנטים שלהלן: + המאפיין ח0ו9%ז6ק0 קובע אס הפקד מבצע פעולת חיבור, חיסור, כפל או חילוק. + המאפיין ה0זזק800063 קובע את כותרת הלחצן. + השיטה 31163+6504165/ מוודאת את תקפות הקלט בתיבות הטקסט. > האירוע 836506165 מופעל כאשר הפקד נתקל בקלט שגוי. 5 1306זס)ח! הו510ט:) 216316 - 6זהקו/\ 06ב!זס)ח! וסזוחס:) אסצווס ה זט לחפאו נוסעי חפ 80 11500005 65 ז6קסזם חוווס זנוסעי ₪0 חב |סלחס6 זטוסץי 0 פטסוחו 5זסטוחסוח 6זה 70656 .וסושחסס זנוסץ' .50505 5נסויפז חו 56166566 8/7680 סח 8/6ח טסץ 58 65חס 650 עד טסו סקס טסו סו קב -0:טנ לוו הלבו תרשים 15.5: אובייקט המחשבון זקוק ל-4 איברי בקרה חדשים 4. בתיבת הדו-שיח פַחוקְק3ּ1 56%, מפה את המאפיין חסוסְכְבּ6חס%6ט₪ למאפיין ה00זק63 של 660%6א65וח6. בנוסף, מפה את המאפיין הסשק63 של הפקד למאפיין ח0וז2ק63 של חהסושקב63וטו. ביכולתך גס למפות את המאפייניס זס|60א6ּפ, וס|660זס: וכן 6!/ז5זסטזוסם למאפייניםס המקבילים של אובייקט !%0ח60ו056, אם אתה מעוניין בכך. 5. לח על ח5וחו=, והאשף יצור קוד נוסף לאובייקט !056160010 שלך. כעת, כל שעליך לעשות הוא לכתוב את קוד התוכנית למאפיינים, לשיטות ולאירועיס. פרק 15: הרחבת פקדי א60₪9ג - 423 הגדרת המאפיין הסוז3ז6ק0 ברירת המחדל של אשף ממשק פקד א8שו46 יוצרת את המאפיין ח800ז6ק0 כמשתנה מסוג זח8וז8/\, ומגדירה משתנה פרטי בשס חס80ז6ק0 חח כדי לשמור את ערך המאפיין. אך במקרה שלנו, נשתמש בערך שלם (כלומר, משתנה מסוג ז0606ח1) כדי לייצג את הפעולה החשבונית : 0 לחיבור, 1 לכפל, 2 לחיסור, ו-3 לחילוק. כדי שהפקד יהיה נוח לשימוש, מומלצ לא לדרוש מן המשתמש לשנן את משמעות הערכיס השרירותייס האלה. לשס כך ניתן להיעור בהצהרת וחטח= המאפשרת לפקד להציג את משמעות הערכים במילים. עליך להוסיף את הצהרת וחטחם לאזור ההצהרות הכלליות של אובייקט | ח60 ז056ו, כפי שניתן לראות בתוכנית 15.1. תוכנית 15.1: 86/. 641017551 - הצהרת וחטחם עבור המאפיין חסטאזסקס. 6מץ ד התטח= סוופטק 0 = ₪00 1 = שץוסטוטו 2 = 500086 3 = 6סושום וחטח= 0ח= שנה שורה זר -> 6קץד0 45 חסספזסק וח הזוס בתוכנית 15.1 נוסף סוג חדש, 6סץזסס, ובנוסף סוג המשתנה ח800ז6ק0 וח מוחלף מ-%ח18ז8/\ ל-6סץדק0. כעת עליך לשנות את השגרות 06 ו-56%0 של המאפיין חסטפזססס, כמוצג בתוכנית 15.2. תוכנית 15.2: 86/. 51 0 61 - שינוי שגרות המאפיינים לשימוש בסוג 6סץדסס. 6מץ ד 45 ()חהסו8ז6ק0 6% עשוסקסיק 6וופגוק הסוטהזסק וח = הססהזסקס ץדסססיוק סחם (6קץ 01 5 הסטה וסקס שוס\] |3/\ץ)הסטהזסק 6 | שוסססיק 6וופגוק חסו הזוק צוס\] = הססהזסקס וח "הסוסה וטק" ספַחהה6 הטסוק סק וח 6856 ז50!66 6856 0 "+" = חסופזסססופו 6856 = חסחפזסס0!ט! ץוסט!טוי] 6856 = חסטפזסקסוט! וו 6856 "/" = חסטפזסססוטו 6חם "" = )](₪050]א% ץדסססיוק סחם ו 4 סדנת לימוד 6.0 8\ בתוכנית 15.2, בנוסף לשינוי שגרות המאפייניס כך שתשתמשנה בסוג 6מץדמ0, הוספת קוד המעדכן את ח00ם608!ט! ומנקה את :86501 כאשר סוג הפעולה החשבונית משתנה. שימוש ב-וחטח6 הינו רק דרך אחת לעשות את הפקד שלך יותר נוח לשימוש. תרשים 15.6 מראה כיצד המאפיין ח00ו80ז6ק0 נראה בחלון המאפייניס של הפקד. 2 - 0611169 - [סלהס-3 -012יו חס 816 | > | טב חכה 6 חססקב -)חס>פן 5זספוחו!! סאד ע!קוטונזי חסוסקב | 6ז 30000 34565%/3/!0=)| (6חסא]) הוחב טי - 0 ב -א] 561% 5305 105 28 א 15 0 10 ה זפ - 2 6וום - 3 מ סו סקט תרשים 15.6: המאפ'ן ה800ז6קס מספק רשימת ערכים תקפים, במקום לדרוש מהמשתמשים לספק אותם תכנות שיטות ואירועים השיטה 0165ח03065ו|8/\ קובעת האס המשתמשיסם הקלידו ערכי טקסט תקפים לשתי תיבות הטקסט. שיטה זו הינה פונקציה פשוטה אשר מחזירה 6טזד או 8156]. הקוד לפונקציה זו מוצג בתוכנית 15.3. תוכנית 15.3: 86/. ₪51 67 ]6 - האירוע 165ח-0306ו|8/\. 0068 5 ()65סח 30 ו|ה/\ הסססח= 6ווסגוק חן 876 0165ח6 6רח55' 6 = 65ח= 030ו|8/\ 5 6 666% חסטסחט- זוא הסהך "" = (2התט)\ס)פחוזד זס "" = (1והטאא0ס)פ וד זו 5 ס6סוחו\! וס 666% חסטסחט= זוא הסהד (1 וטא )6וזסרגצ151 +סא )1 הסטסחט= זוא הסהד (2 טטצ )6וזסרתגוצ15 +סא + !0ו|\ סזב 6 הס ,137 50 פוש זו ססר וסץ זי 6 = 0165ח0300ו|/\ חסוט6חו= 6ח= פרק 15: הרחבת פקדי א609 | 425 האירוע 616% של הלחצן 660%6א665 מכיל את הקוד, אשר מבצע למעשה את החישוב ומציג את התוצאה. כדי ליצור אירוע זה, השתמש בקוד מתוכנית 15.4. תוכנית 15.4: 86/. 51 07 61 - האירוע 616% של 6ז660א5 0 ח6. ()א0116 006ו60א0וח6 510 ססה/ווק 1 5 8!1/\ח הזוס 1 5 8!2/\ח וחוס זח1 45 ז|טפסחח חחוס חס ד 8|56= = ()165 חח 66ה0וו3/\ +[ 5 %ה6/ 150 "???" = )|(4050)א% סטפ זוא זז 0חם (1 חט)\8!)0/\ = 3|1\ח (2חוו\3!)0/\ = 3|2\ח סק וח 6856 561606 60 6856 2 + 811/\ח = )|650חח ץוסחוט 6856 2 /\ח * 8|1/\ח = 650|6חח 50% 6856 2נח - 811 \ח = )|650ח 86 0856 2 / 8]1\ח = )|650חח 6חם סח = 60506 סט5 0ח= בדיקת הפקד כדי לראות את הפקד מנקודת מבטו של המפתח, סגור את טופס עיצוב הפקד. תוכל ליצור קבוצת פרויקטיס ולצרף אליה תוכנית בדיקה מסוג 5א0870.5ח500. עשה ואת באופן הבא: בחר באפשרויות 1!6=, 66%[סיזש 4006. פתח את הטופס מתוך פרויקט 5אם 0370ח508. צייר דוגמה ראשונית של הפקד על הטופס, והצג את חלון המאפייניס. ביכולתך לכוון את המאפייניס ח0ק68חסטפ, חס6800, חהסוזפזסק0 מתוך חלון זה. לת לחיצה כפולה על הפקד, והקלד את הקוד באירוע 88000165 : ()0165ח 830 00!1ח68|600 50 ססהעוזק "!פזסטרחח סו|8שחן 606760 6עהח טס" אס 150 טט5 0חם הר את תוכנית הבדיקה, ודא שהמחשבון מפעיל אירוע וה בהקלדת מידע שגוי. 6 סדנת לימוד 6.0 8\ יצירת דפי מאפיינים פרק 14 הכיל מבוא קצר על דפי מאפיינים (08065 ץזזסססזק). דפי מאפייניס הס תיבות דו-שיח המכילות כרטיסיות שנועדו לסייע למשתמש לשנות מאפייניס בזמן עיצוב. כידוע, ניתן להציג דפי מאפייניס באמצעות לחיצה על הלחצן בונה (שעליו שלוש נקודות) שבשורת המאפיין וחס5%ש6 בחלון המאפיינים, או על ידי לחיצה ימנית על פקד ובחירה באפשרות 65וו6כסיופ. בנוסף להיותס דרך נוחה לארגון המאפייניס של הפקד, דפי מאפייניס המצורפים לפקד ניתניס לשימוש גס בסביבות פיתוח נוספות, מלבד 8856 |1508/\. פרק 14 הראה גס כיצד ליצור דפי מאפייניס באמצעות 0ז28ו)\ 08065 ץזזסססזק. אשף זה מיועד לאפשר דרך נוחה ליצירת גיליון מאפייניס, אך אין הוא מכסה את כל האפשרויות הקיימות. בסעיף זה תלמד כיצד להכין דפי מאפיינים באופן ידני, כך שתוכל להשתמש בשיטות תכנון ואפשרויות אשר אינן קיימות באשף עצמו. ראה: "אשף דפי המאפיינים", פרק 14. להלן השלבים העיקרייס בתהליך בניית דפי המאפיינים. הסעיפים הבאים מפרטים כל אחד משלביס אלה. 1 צור אובייקטים של דפי מאפייניס עבור כל קבוצת מאפיינים. 2 מקם על דפי המאפייניס פקדים היכוליס לשמש את המפתח לעריכת המאפיינים. 3 יישם את שגרת האירוע 060ח8ח6ח56!6600 עבור כל דף מאפיינים. אירוע זה אחראי לקריאת הערכיס הנוכחיים של מאפייני הפקדים. 4 יישס את שגרת האירוע ספַחַח6 (או לפעמים >6ו01) לכל פקד בכל דף מאפייניס. 5 יישם את שגרת האלרוע פסְפַחַ8ח6ץוסק בכל דף מאפיינים. מטרתו הינה להעתיק את ערכי המאפייניס החדשים מפקדי דפי המאפייניס אל המאפייניס המקבילים של פקד המשתמש. 6 חבר את דפי המאפייניסם אל פקד המשתמש. יצירת אובייקטים של דפי מאפיינים הצעד הראשון ביצירת תיבת דפי מאפייניס עבור הפקד, הוא יצירת אובייקטיס של דפי מאפיינים לכל קבוצת מאפייניס שברצונך לכלול. הדרך שבה הקבוצות מאורגנות תלויה לגמרי בך, אך רצוי שתשתמש בהגיון בריא. אס לפקד יש מעט מאפיינים, כנראה שתצטרך דף מאפיינים אחד בלבד. אולס, אס פקד כולל מאפיינים רבים, כדאי שתיצור מספר דפיס ובכל דף תכלול מאפיינים דומים. עבור פקד המחשבון לדוגמה, מספיק ליצור דף מאפייניס אחד שייקרא |8ז6ח66. בצע את הצעדיס הבאים כדי להוסיף את דף וה לפרויקט הפקד. פרק 15: הרחבת פקדי אפ | 427 1. ודא כי פרויקט |סיו%ח60 6%ע8466 נבחר בחלון וסיזס|קאם 66%[סיופ ובחר 66%[סזם, 6 צלזסכסיוק 6606. תיבת הדו-שיח שַפַב3ּקץ+זסקסזק ₪06 מופיעה. 2 לת פעמיים על סמל דף המאפיינים, ואובייקט חדש של דף מאפיינים יופיע. שיס לב לכך שהוא נראה כמו מעצב טופס. 3 הצג את חלון המאפייניס של דף המאפייניס על ידי הקשה על 4=. 4 שנה את המאפיין 6וחבּא של דף המאפייניס לערך !636660613. 5 שנה את המאפיין חס63% של דף המאפייניס ל-6606181 (כותרת זו מופיעה בכרטיסיה של דף המאפיינים, אשר אינה מוצגת בזמן העיצוב). דפי המאפיינים החדשים שיצרת אמוריס להופיע בחלון זסזס|סאם 606[סזס, כמוצג בתרשים 15.7. > ו - גוסו סוסה | ₪ ₪ ₪ חס 056 15% ([60. 86 -6) |סחס-8]0 6 שּ 5 ץלז סז 4-07 .86601 6) |678ה0006| 6 (שפצ.ז65 3/6 -6) +65 דןיום ₪ ב פוחזס= 45%-] (חזז) 80665 0) 1החזס= ב תרשים 15.7: דפי מאפיינים הינם אובייקטים נפרדים בפרויקט פקד 606% מיקום פקדים על דפי המאפיינים לאחר שיצרת את דפי המאפייניס, תוכל להוסיף להס את הפקדיס הנחוציס כדי לערוך את מאפייני הפקדיס המותאמים אישית (פ!0ח60 סספטס), אליהס יקושרו דפי המאפיינים. סוג הפקדים אשר יהיו בשימוש תלוי בך, אך ברוב המקריס תוכל להשתמש בתיבות טקסט כדי לייצג מאפייני טקסט, תיבות סימון כדי לייצג מאפייניס בוליאניס (6/8!50טז1), תיבות רשימה כדי לייצג מאפייניס בעלי מספר אפשרויות, וכך הלאה. בצע את הצעדיס הבאיסם להוספת פקדים לדפי המאפייניס אשר יצרת : 1. בחלון זסיזס!קאם 666[סיזפ, לחץ פעמיים על אובייקט !6316606063 כדי להציג את הדף ץ+וסטסיוק |0673ח06. 2 הוסף לדף המאפייניס שלושה פקדי !1886, המכיליםס את המאפייניס הבאים: 6וח 3 הסוכ 63 חסחק63!טו חסוז0ק3) חסקה803 וטו ח00ק63 חסססטם חסספזסקסוטו הסוס סקס 3 הוסף שני פקדי א80+א6ד: ה0וז0632 ו-חסוזק63ח60ט5שאס, כדי לשמור את כותרות הפקדיס. 4 הוסף תיבה משולבת חסוז9ז6ק0טוחס, כדי לשמור את סוג הפעולה החשבונית. 8 סדנת לימוד 6.0 8\ לאחר הוספת פקדיס אלה, דף המאפייניס הכללי שלך צריך להיראות דומה לזה המוצג בתרשים 15.8. תרשים 15.8: דף המאפיינים |3ז8ח66 עם כל פקדיו שגרת האירוע 07670370060ו56!66 דמיין לך לרגע שמפתח משתמש בפקד המחשבון כחלק מיישום. המפתח מיקס שני פקדי מחשבון על הטופס, אחד לחיבור והשני לכפל. כאשר המפתח מציג את דפי המאפיינים של אחד או יותר ממפקדי המשתמש, האירוע 0080060ח58!6000 של האובייקט 09160 שזסקסזס מופעל, כך שכל המאפיינים של פקד המשתמש יוצגו בדף המאפיינים. כדי לכתוב קוד לטעינת המאפייניסם אל תיבות הטקסט והתיבות המשולבות, פתח את חלון הקוד של דף מאפייני |9ז6ח68606 על ידי לחיצה כפולה על האובייקט 78065 ץזזס6קסזק. לאחר מכן, הוסף את שורות הקוד מתוכנית 15.5 לשגרת האירוע 56|6600706080860. תוכנית 15.5: 86/. 6107551 - שגרת האירוע 860ח5660000008. (56!6600000800600 6ְהַבק/םסקסזק 50 ססהעחוק חס 03 (0 )!סח 5616006060 = א ד. הסוק הס סוחס טפ (0 )05 הס-56!660606 = אס ד. הססקה6הסטום אס סוק רתס "00 - 0" 00106 חסו וסקס טוח "ץוכקשוטו - 1" 00106 הסוסה סק ססות "50780 - 2" הח00166.. הסוס וסקס טרח "ועו - 3" הח00166ג. חסוס סקס טוח סו סק 0. (0 )0!5ח56!606606-0 = א507006! |. הסה סק סטות6 6 = 680060 50 0חם שים לב כי לכל פקד שעל דף המאפיינים, מוצב ערך ממאפיין של פקד, הנמצא באוסף 5. כפי שתראה, דפי מאפייניס מסוגליס לשנות מאפיינים של כמה פקדים בו-ומנית. כרגע יצרת דף מאפיינים אשר מסוגל לטפל רק במאפייני פקד יחיד. פרק 15: הרחבת פקדי אפ60ג | 429 שגרת האירוע 670346 כאשר המפתח משנה ערך פקד על הטופס, מופעל האירוע ספַח8ח6 של הפקד. השתמש באירוע וה כדי ליידע את 88566 |1508/ כי ערך המאפיין בדף המאפייניס שונה. הערה: מספר פקדים, כגון א80א60ח6 |-אספססוח60, משתמשים באירוע 616% במקום באירוע ספַח8ח6, כדי לטפל בהודעת השינוי. כל שעליך לעשות הוא לשנות את ערך המאפיין 6080960 של אובייקט דף המאפייניס לערך 6טזד. פעולה זו תאמר ל- 88516 |1508/\ להפעיל את הלחצן שומְקה. הקוד לאירועיס 06% ו- 96ח8ח6 של הדף |8ז6ח681606 מוצג בתוכנית 15.6. תוכנית 15.6: 86/. 51 01 641 אפשור הלחצן עמקה באמצעות המאפיין 0ַפַחַ608. ()66ו1 הסו8 60006 ס5 6זבּעוזוק 6 = 680060 5 0חם ()06ח 6 הסק )סא 00 סטש סספעווק 6 = 680060 5 0חם (060ח8ח6 הסחק00008 סט5 ספעווק 6 = 680060 5 0חם שגרת האירוע 5סְפַָהַב3ּה6ץוקקה האירוע 0016080865 מבצע פעולה הפוכה מהאירוע 860ח608ח56!6600. בעוד ששגרת האירוע 6080960ח56!6000 טוענת מידע לדף המאפיינים, שגרת האירוע פספַחַהח6ץוססא שומרת את הערכים החדשיס ומחזירה אותס לפקד. אירוע זה מופעל כאשר המפתח סוגר את דף המאפיינים, או לוחצ על לחצן שופֶסה. באשר לפקד המחשבון, עליך פשוט ליטול את המאפייניס מדפי המאפייניס ולהציבס אותס בפקד, כמוצג בתוכנית 15.7. תוכנית 15.7: 86/. 51 64101 - שגרת האירוע פספַההַַח6ץוססה. ()065חה ח0ץ!כקהג/ 806ק/וסקסזק טס סספטווק הסוזק03 = חהס וק 08. (%7015)0חס-50|66060 סוחס = הסו חס טם. (0500 טח 5660600 א |. הסו 6008 = הסוזסקס. (56|660606:00%7015)0 טט5 0חם 0 סדנת לימוד 6.0 8\ קישור דף המאפיינים אל הפקד תמה בניית דף המאפיינים |9ז68|60606. עם זאת, כדי שתוכל להשתמש בו בפועל, עליך לקשר אותו לפקד המחשבון (זכור כי דף מאפייניס הינו אובייקט או קובצ נפרד, אשר ניתן לשימוש במספר פקדים). לשם כך, עליך לבצע את הפעולות הבאות: 1 הצג את שסשחו/ש 06514001 של פקד המחשבון. 2 בחלון מאפייני הפקד, לח פעמייס על המאפיין פ5סאַבּקץץז'ו6קסיופ. תיבת הדו-שיח 5 00 +866ת60 מופיעה. 33 סמן את תיבת הסימון 68166606131, כמוצג בתרשים 15.9. |< | ב 0 חב עזסקסזק 6|סב!וב ימ 4 | 5 1 1 58 | | 5533810033 +| ₪ - תרשים 15.9: דפי המאפיינים אשר יסומנו יקושרו אל הפקד 4 לח על 06 בתיבת הדו-שיח כדי לקשר את הדפיס הנבחרים עס פקד המחשבון. שימוש בדף המאפיינים כעת השלמת את דף המאפיינים של פקד המחשבון. כאשר תעבוד עם יישום אשר מכיל פקד וּה, תוכל לכוון את מאפייני הפקד מחלון המאפיינים או מדף המאפיינים. כדי לבדוק את דוגמת דף המאפיינים שלנו, ראשית סגור את כל חלונות מעצבי הפקד. כעת, פתח את הטופס מפרויקט הבדיקה, צייר מופע של פקד המחשבון על הטופס, ופתח את חלון המאפיינים שלו על ידי הקשת 4". אס תסתכל מקרוב, תוכל לראות מאפיין חדש הנקרא 5000ט6. כדי להביט בדף המאפיינים, לחץ לחיצה כפולה על מאפיין וחסזפט6, או לחץ על הלחצן בונה (שעליו שלוש נקודות). לאחר שתבצע ואת, דף המאפיינים יופיע, כמוצג בתרשים 15.10. שיס לב שמייד לאחר שתשנה פקד על דף המאפיינים, הלחצן עוססה יהפוך לזמין. הערה: זכור לשמור את השינויים שביצעת בפרויקט המחשבון. שים לב לכך שבזמן שמירת השינויים, דפי המאפיינים ישמרו תחת הסיומת 6אק. פרק 15: הרחבת פקדי אפ6₪ג | 431 [< | עס סז | ב סגו סוד 0 ] :ווק סוב חחזסווסכן | :חסווס3-) חפווום ו ה תרשים 15.10: הנה דף המאפיינים השלם של פקד המחשבון ו בחירת מספר פקדים כוכור לךך מסעיף שגרת האירוע 56!66000670830060, אוסף האובייקטיםס 5 מייצג את הפקדים שנבחרו על ידי המפתח בהצגת תיבת הדו-שית 5 /לווזסכסזוק. בשגרות האירועיס 56|660006080060 ו-5סחַחַהח6ץוססא ניתן להשתמש באובייקט 56!60%60600₪0|5, כדי לגשת למאפייני כל הפקדיס המסומניס. למשל, אס המפתח בחר שני פקדי מחשבון, ח0/5)0(.68000ח56!60:6000 - המייצג את כותרת הפקד הראשון, ו-ח00ק00/5)0(.68ח56!6606060 - המייצג את כותרת הפקד השני. על ידי כתיבה נכונה של הקוד, המפתת יוכל להחיל את אותה כותרת על שני פקדי המחשבון המסומניס. ייתכנו מצבים בהם לא תהיה מעוניין לאפשר שינוי מאפיין מסוים, כמו לדוגמה החסוז8ז6ק0, בכמה פקדים בו-זמנית. במקריס אלה, תוכל להשתמש במאפיין +חטס6 של האוסף 0₪015ח56!6006000 כדי לבדוק אם יש להתעלס מהשינוי, או אף לשנות את מאפיין 6|פופו\ של הפקד הנמצא על דף המאפיינים, לערך 8156=. דרך נוספת לטיפול במקרה מעין זה, היא להחיל שינוייס מסוימיס על כל הפקדים, ושינויים אחריס רק על הפקד הראשון. אירוע 65פַחַ8ח6ץוס0ה לדוגמה, אשר מסוגל לטפל במספר פקדים, מוצג בתוכנית 15.8. תוכנית 15.8: 86/. 616155 - החלת שינויים על מספר פקדים. ()065חה ח0ץ!כקג/ 806ק/סוסקסזק סטש 6ספטווק (0ח68|600 45 |סשחס6 חחוס (₪0ח60 /6/67 סז 5חסו 68 66% 5 חן [סשחס6 חס8ם וס סוק = חהסק68.|סישחס6 סוחס טס = הסטקה6הסטטם.|סיטשחסס |סיחס6 %א6ו] סז חס 068 5'!סיטחסס ל5ז שר ץוחס 56% א |. הסו 600 = הס זסקס. (7015)0חס-56|660606 5 0חם כדי לבדוק שיגרה זו, ראשית פתח את תיבת הדו-שיח 08965 /זסססזס. לאחר מכן, סמן מספר מופעים של פקד המחשבון, ושנה את מאפייניהם. 2 סדנת לימוד 6.0 8\ טיפול בשגיאות בפקדים פקדים הפועלים כשורה הינס בעלי חשיבות רבה מאוד. המפתח, כמו גם המשתמש, מסתמכים על הפקד כאובייקט תקין ויציב, אשר אינו אמור להתרסק, אלא בנסיבות יוצאות מגדר הרגיל. המפתח אחראי כמובן, לבדוק כי היישום עובד באופן תקין עס הפקד שלך, אך כדאי גם לך לנקוט מספר אמצעי וחירות כדי למנוע הפתעות לא נעימות למפתחים ולמשתמשים. ראה: סעיף "אריזת מרכיבי א6שו₪ה", נספח 2. ראשית, הרבה להשתמש בטיפול בשגיאות כאשר אתה כותב שגרות אירועים. אס מתרחשת שגיאה, והקוד שלך מתעלם ממנה, הפקד יפסיק לפעול ויגרוס לנפילת פקד המכולה. ככלל, יש לשלב טיפול בשגיאות בכל האירועיס בהס משולב קוד. בנוסף לכך, ישנס מספר תחומי מפתח הזקוקיס לתשומת לב מיוחדת : + טיפול בקבצים. מה קורה אס הקוב אינו קיים או מוגן מפני כתיבה: > קישוריות קלט/פלט. מה קורה אם הרשת נפלה או לא מגיבה, לדוגמה! > תקשוות עם פקדים אחרים ועם המכולה. האס ביכולתך להשתמש בהצלחה בערכי מאפיינים, הנלקחיס מפקדיס אחרים, בתור קלט לפקד שלך! > תנאים גבוליים. איך הפקד שלך מגיב לערכי קלט מוגזמים או לא נכונים (כמו למשל 99999-)1 בפרק 9 יסודות התכנות של 83516 וב150/, למדת אודות השימוש בהוראה זסזום חס כדי לשלוט על ורימת התוכנית לאחר התרחשות שגיאה. ראה: "שליטה בשטף התוכנית לאחר שגיאה", פרק 10 הוספת טיפול בשגיאות לשגרה שלך מסתכמת בשורות ספורות של קוד, במיוחד אס הינך דואג ליצור שגרה גלובלית לטיפול בשגיאות, כמו בדוגמה הבאה: (ז00606ח1 35 )סז דוסזם 500 זז 6856 50|60 1 6856 6 3 6856 "0000 85 זסזום 5/5061 /" = 51655806 (676ח 6006 פחו|0חהח זסזום סזסוח) ...' 6 6856 "0060 ₪85 זוסיזם הצוסהאח חג/" = 511655806 6סחם 50 0חם "| רח6|ססזק ספהטמאהכ" פרק 15: הרחבת פקדי א609ג - 433 השגרה ספזדזסזז= יכולה להיקרא מכל אירוע בפקד שלך, באופן הבא : 1 השתמש בהוראה זסזזם חס בתחילת השיגרה : ז|סההתזו= 6060 זסזו= חס 2 בשיגרה המטפלת בשגיאות, העבר את מספר השגיאה לפונקציה ספזדוסזום, בדרך זו: | הת זזס ספזדוסיח= דרך נוספת להימנע משגיאות הינה להשתמש תמיד בשגרות 66 ו-16 כדי לגשת למאפייני הפקד, כך שיהיה ביכולתך לוודא את תוקף ערכי המאפייניס בזמן הצבתס. אס אתה יוצר מאפייניס על ידי הצהרת משתניס ציבוריים, תהיה לך שליטה מעטה יותר על ערכיהסם. שימוש בשגרות מאפיינים מאפשר לך לעורר שגיאות מיידית אס המשתמשים מנסים להציב ערכים שגויים. מכאן... בפרק זה ראית כיצד להעשיר פקדי א6שו46₪ על ידי יצירת דפי מאפיינים. בנוסף לכך למדת על האובייקטים )ח6ופוחג ו-ז06ח06אם, ובניית פקד לדוגמה המבצע חישובים. לקבלת מידע נוסף אודות נושאים קשורים, פנה לפרקיס הבאים : %, > פרק 14 יצירת פקדי א6צ1וש16, מספק הבנה בסיסית אודות פקדי 6%ע860 וכיצד ליצור אותס. % פרק 31 מסמכי אסעול16, מסביר כיצד להמיר יישוס סטנדרטי במהירות לשימוש ב-60/\. + נספח 2 אריזת היישום, מספק מידע אודות פריסה של פקדי 6006%. 4 סדנת לימוד 6.0 8\ 16 מחלקות: שימוש חוזר ברכיבים פרק 16: מחלקות: שימוש חוזר ברכיבים | 435 טכניקות תכנות מונחה-אובייקטים (או מונחה עצמים) הינן שימושיות מכיון שהן מאפשרות לבצע ביעילות שימוש חוזר בקוד. בפרק וה תלמד כיצד לבנות מחלקות 6 |8ש8ו/\. מחלקה (01855) מאפשרת ליצור אובייקטים, תוך ניצול טכניקות תכנות מונחה-אובייקטים. לדוגמה, בעבודה על פרויקט גדול, כל חבר צוות יכול ליצור מחלקה מסוימת, ולהדר אותה לפורמט של 11 6%ע460, כך שאחרים יוכלו להשתמש בה. הבנת מחלקות אס השתמשת בפקדים שהוגדרו על ידי המשתמש ב- 8856 |אטפוש, הרי השתמשת כבר במחלקות ואובייקטים. לדוגמה, ציור תיבת טקסט למעשה יוצר מופע (66ח5%8ח1) של מחלקת תיבת הטקסט. ציור 5 תיבות טקסט, ייצור 5 מופעים של מחלקת תיבת הטקסט. כל מופע הוא יייישות'י בפני עצמו, אך כולס נוצרו מאותה תבנית. מופעי מחלקות נקראיס אובייקטים (0016685). כל מחלקה נפרדת היא תבנית, שממנה נוצר סוג מסויס של אובייקט. בדוגמה זו, מחלקת תיבת הטקסט מגדירה כי לתיבת טקסט מאפיין בשס 6%ד. עם ואת, הגדרת המחלקה עצמה אינה מכילה מידע על ערכי המאפייניס. במקוס זאת, האובייקט הנוצר מהמחלקה, למשל 601, מכיל את המידע. תכנות מונחה-אובייקטים בוודאי הספקת לשמוע את המושג תכנות מונחה-אובייקטים (60ח6וזס 091666 - קסס פחוההוהזפסזק), ‏ או לקרוא עליו. אחד מעקרונות המפתת של 005 הינו הפעלת אובייקטיס הניתניס לשימוש חוזר כדי לבנות תוכניות. 00 מתחיל בשלב התכנון, בקביעת האובייקטים שיופיעו ביישום. לדוגמה, נניח שברצונך לכתוב תוכנית המנהלת תשלומי עובדים. בתוכנית עבודה מסורתית תיקבענה מראש כל הפעולות בתוכנית, כמו ''הוספת עובד לבסיס הנתונים'י או ייהדפסת שיק לעובדיי. תכנון עבודה מונחה-אובייקטים, ינסה במקוס ואת להפריד בין תפקידי התכנות השונים, ובין האובייקטיס בתוכנית (עובדים, בסיס הנתונים, שיקים וכדומה). כדי שהתכנון ייחשב מונחה-אובייקטים באמת, כמה עובדות לגבי האובייקטים חייבות להיות נכונות. הרשימה הבאה מכילה את תמצית יסודות 000: %, > אריזה (ח800]ו5ק68חם). אריזה, או החבאת מידע, קשורה לכך שהאובייקטיס מחביאיס את הפרטיס על דרך עבודתם. לדוגמה, כאשר אתה משנה את ערך המאפיין 6%ד בתיבת טקסט, אינך יודע (ולא אכפת לך) כיצד תיבת הטקסט מציירת מחדש את התווים. החבאת מידע מאפשרת למפתח האובייקט לשנות את דרך פעולת האובייקט, מבלי להשפיע על המשתמשיס באותו אובייקט. + ירושה (6חם;וזסחח1). ניתן להגדיר אובייקט חדש על בסיס אובייקט קיים, כך שיכיל את כל המאפיינים והשיטות של האובייקט הישן. לדוגמה, ניתן ליצור אובייקט חדש המכיל בנוסף למאפיינים ולשיטות הרגילים של אובייקט קיים, גם כמה משלך. ביכולתך להוסיף מאפיינים נוספים, ו"ילרשת'י את המאפייניס הקיימיס. 8856 |1508/\, במובן הצר של המילה, אינה תומכת בירושה. 6 סדנת לימוד 6.0 8\ + ריבוי צורות (ותפוחטזסוחץוסק). אס כי הרבה אובייקטים יכוליס להגדיר שיטות בעלות שס זהה, השיטה יכולה להתנהג בצורה שונה בכל אחד מן האובייקטיס. בוכות ריבוי הצורות, התוכנית מריצה את השיטה המתאימה עבור האובייקט הנבחר. למשל, האופרטור + ניתן לשימוש הן עס מחרוזות והן עם מספרים. למרות שאותו סמל (+) נמצא בשימוש בשני סוגי המידע, 88516 |1808/ יודעת לבצע פעולות שונות. תוצאה חשובה אחת של השימוש ב-005 הינה קוד הניתן לשימוש חוזר. אחד מהדבריס העושים את האובייקט ניתן לשימוש חוזר הוא הממשק, או השיטות והמאפייניס שבהס האובייקט משתמש כדי לתקשר עם שאר העולם. כאשר בוניס אובייקטיס עס ממשקים מוגדרים היטב, קל יותר לשנות את פנים האובייקט, או אף להוסיף ממשקיס חדשים, מבלי להשפיע על תוכניות המשתמשות באובייקט זה. מחלקות ב- 83516 [ב150\ את המחלקות ב- 8856 |508ו/ ניתן ליצור באמצעות מודול מחלקתי (6|גו00ח 6855). מודוליס מחלקתיים יכולים להכיל בתוכס מספר סוגי אלמנטים : >< מאפיינים: אלמנטיס המשמשים להשמה ואחזור ערכיסם מהמחלקה. % שיטות: פונקציות או שגרות ציבוריות אשר מוגדרות במחלקה. > אירועים: בדומה לפקדים, אשר מסוגלים לעורר אירועיס בטופס אשר מכיל אותם, אובייקט הנוצר ממחלקה מסוגל לעורר אירועיס באובייקט המכיל אותו. בנוסף לאלמנטים אלה, מודוליס מחלקתיים מכילים שני אירועים פנימיים : 1₪8126ח1 ו-86חווחז6ד. האירוע 08|26וח1 מופעל כאשר נוצר מופע חדש של המחלקה, והאירוע זוז ד מופעל כאשר האובייקט מושמד. הגדרות לאובייקטיס נוצרות בתוך מודול מחלקתי. מודול מחלקתי הוא כמו מודול קוד רגיל, אך הוא מכיל רק הצהרות משתנים וקוד שגרות. אין בו רכיב ממשק משתמש. אך ניתן להפעיל מחלקה בעזרת טופס הנמצא בתוכנית, ממש כמו מודול קוד רגיל. ניתן להשתמש במודולים מחלקתיים בדרכים שונות, למשל בדרכים הבאות: ** בפרויקט 8856 |808ו/, | מודול מחלקתי מאפשר ליצור מופעים רבים של אובייקטיס בכל מקוס בתוכניתך, מבלי להשתמש במשתנים גלובלייס. + ביכולתך ליצור אובייקטי 608% ולהדר אותס בתור קבצי 11ם או 5%5, כך שמפתתיס אחרים יוכלו להשתמש בהס מתוך הקוד שלהם. לדוגמה, תוכל להגדיר את כל הכללים העסקיים-פיננסייס שלך בתוך מחלקה, ולהדר אותס בתור 1 א6ע6ה. לאחר מכן, מפתחיס אחרים יוכלו לפנות אל אותו 11פ ולהשתמש בתוכניתס בכלליס הפיננסיים הנמצאיס באותו קוב\. + ביכולתך לבנות תוספת ל- 8856 |1508/, כדי להעשיר את פונקציות ממשק המשתמש שלה. פרק 16: מחלקות: שימוש חוזר ברכיבים | 437 בניית מודולים מחלקתיים הדרך הקלה ביותר ללמוד היא על ידי עשייה, ולכן, הבה ניצור מודול מחלקתי פשוט. מודול מחלקתי גה יכיל מידע אודות העובדים. לאחר שתיצור את המודול, תלמד כיצד להשתמש באובייקט העובדיס בתוכניתך. יצירת מודול מחלקתי חדש ראשית, צור פרויקט 5א5 50800870 חדש. לאחר מכן, בחר 1006016 01355 66 מתוך תפריט 66%[סזפ. פעולה זו תיצור מודול מחלקתי חדש עס השס ההתחלתי 6|8551, ותפתח את חלון הקוד של המודול המחלקתי, כמוצג בתרשים 16.1. (0006) 3551!₪ - 6611[ס'וק ₪ (8ח841)0ז06013) | ח66)] תרשים 16.1: על ידי שימוש במודולים ביישומי 8/, תוכל ליצור אובייקטים משלך לאחר יצירת המודול המחלקתי החדש, מומלץ לתת שם ייחודי ותיאורי למחלקה. שס מודול מחלקתי חשוב יותר משס מודול קוד רגיל, משוס שאתה משתמש בשס המחלקה בקוד התוכנית. מפתחים רבים נוהגים להוסיף את האותיות 6 או 65 כדי לייצג שס מחלקה. דוגמה פשוטה זו תהיה מחלקה המייצגת פועלים, ולכן נקרא למודול מחלקתי זה 66ץ0ומהח6|55. כדי לתת שס למחלקה, הצג את חלון המאפייניס של המחלקה על ידי הקשת 4= בזמן שחלון הקוד פתוח, או על ידי לתחיצה ימנית על המודול המחלקתי בחלון זסזס|קאם 66[סזק ובחירה באפשרות 65ז6קסזק מהתפריט המקוצר. 8 סדנת לימוד 6.0 8\ הוספת מאפיינים למחלקה לאחר יצירת המודול המחלקתי, ביכולתך להוסיף לו מאפייניסם משלך. המאפייניס במחלקות משמשיס לאותה מטרה כמו מאפייני הפקדים: כדי לשמור ולאחזר מידע. ניתן להוסיף מאפיינים למחלקה בשתי דרכים: באמצעות שימוש במשתנים ציבורייס או שגרות מאפיינים. משתנים ציבוריים שימוש במשתניסם ציבורייס הינה הדרך הפשוטה ביותר ליצירת מאפייניס. פשוט הכנס אותס לסעיף ההצהרות של המודול המחלקתי. לדוגמה של 66ש6!5500!0, תוכל להוסיף כמה מאפייניס פשוטיס באמצעות הקוד הבא : 508 5 סרה\פזו= 6ווסגוק 5010 5 35306 | סו|סוק הסט 5 17ז58!3 סוופנוק 6 5 0סזור0סהכ 6וופטוק הערה: בדרך כלל יהיו במחלקותיך גם מספר משתנים פרטיים, אך רק המשתנים הציבוריים יהיו זמינים לשאר היישום כאשר האובייקט ייווצר. לאחר שתיצור אובייקט מהמחלקה שלך (מייד תראה כיצד עושים ואת), תוכל להשתמש במאפיינים אלה ממש כמו במאפייני פקד: "06" = 6וח5\8זו=.6נטסץוו "ה רח5" = 6רח350%3 66.1[ עו 6חה זו .60[טסץו .8 " ,סוו6ר]" אספוו החיסרון בשימוש במשתניס ציבורייס בתור מאפייני אובייקט הוא שלא מבוצע עליהס אימות. בדוגמה זו תוכל להציב כל ערך במאפיינים 6וחִ56%8זו=, 6וחִ185%\8, או 0, כל עוד יהיה מהסוג הנכון. שגרות מאפיינים שגרות מאפיינים הינן גמישות יותר מאשר משתנים ציבוריים כיון שהן מאפשרות להריצץ קוד כאשר מישהו ניגש למאפיין. שגרות משתניס נכתבות כמו פונקציות, אך מנקודת המבט של משתמשי האובייקט, הן מתנהגות ממש כמו מאפיינים. שלושת הסוגיס של שגרות המאפייניס הס כדלקמן: + 666 שזסססזם - פונקציה המורצת כאשר המשתמש קורא את ערך המאפיין. + 16% ז6ססזס - שיגרה המופעלת כאשר המשתמש משנה את ערך המאפיין. + 5066 זפקסזק - מקרה מיוחד של 166 ץאסססזק, כאשר הערך המועבר לשיגרה הינו בעצמו אובייקט. פרק 16: מחלקות: שימוש חוזר ברכיבים | 439 שגרות מאפייניס נכתבות בחלון הקוד של המודול המחלקתי. כדי ש- 8856 |8טפו\ תיצור את השלד של שגרות המאפיינים, הצג את תיבת הדו-שיח 6זט660סזש 006, המוצגת בתרשים 16.2, על ידי בחירת 660016סיזק ₪60 מהתפריט 015סד. למשל, נניח שתרצה להוסיף מאפיין נוסף למחלקה - המאפיין זהסוחזוהקסכ. בתיבת הדו-שיח הקלד +חסוהזו3ק6כ בשדה 6וחבּא, בחר ץז+'וסקסיופ בתור סוג השיגרה, ולת על אס. - | ו חסוחזזב סק ] : וחב 6מעך | |68ח) 0 יזוק + טפ %7 ]השס 17 חסחסחנם 17 וז 7 וטנו " 5 5ב 31180|65/ |8סס) ||₪ | -] תרשים 16.2: באפשרותך להשתמש בתיבת הדו-שיח 16ט660סזק 466, הנגישה מתפריט 5, כדי ליצור סוגים רבים ושונים של שגרות, כולל שגרות מאפיינים |< ום)= (6006) 018551 - 016661 ,₪ | [64 1ע4ז6קסזק] הק ] - (|813ח06) המבעסם 25 () סמפע8325עק5כ2 656 צסעפקסעק שג1מעגוק צסעסקסמת במסם (אַמ1ע5652 25 שגו1[הקחבחט 1בעט2) סמפאפסעהקפת 255 צסעסקסעק שג1גוק צסעסקסעק במס תרשים 16.3: שגרות המאפיינים נראות כמו פונקציות רגילות, אך מנקודת מבט קוד היישום הן מאפייני אובייקט 0 סדנת לימוד 6.0 8\ השימוש בתיבת הדו-שלח 6זטו60ססזק ₪00 גורס ל- 8856 |8טפו\ להוסיף את תשתית השגרות 16% זסקסזק ו- 66 ץזוסקסזק. ברירת המחדל של 88516 |508ו/\ הינה להניח כי המאפיין הוא מסוג זח8וז\. המאפיין )חסוחזזהק6כ יהיה מסוג פַחו5₪, ולכן יהיה צורך לשנות את הגדרות השגרות. שלדי השגרות החדשיס מוצגיס בתרשים 16.3. כאשר המשתמשים ניגשים למאפיין זחסוחזזהקסכ, שגרת המאפיין המתאימה מופעלת. לרוב, הפעולה הנכונה שיש לבצע היא לשמור את הערך בדרך כלשהי, כמו בדוגמה הבאה, המשתמשת במשתנה פרטל: 5018 5 סרה 5זו= 6ווסנוק 509 5 850306 | 6ווסנוק 6 25 הססזורו30כ 6וופטוק הסט 25 /ב|58 ס6וופנוק זז 35 והטצ\סקסכח 6ספעווק 58 25 ()הסות+והקסכ 6% ץאהסקסזק 6ווסגוק ףח 6356 56160 1 56 "0ח60אזבּ]" = זחסווהקסס 2 00856 "חח 060" = זחסוווהקסס 6" 6856 "" = זחסוחצוהקסכ וח /סקסזק סחם (68חו50 5 סט|ה 510 |ץם )הסח סכ ז6 | ץאהסססזק 6ווסטוק ((8|06/צ\60856%)5]46(\)חחוז ד 6856 50|665 "א ד אהו" 68956 1 = חט\סקססח "א דא 660" 6856 2 = וחטףסקססח 6" 6856 0 = וחטשסקססח וח /סקסזק סחם בקוד למעלה, שגרת המאפיין שומרת למעשה את הערך המייצג את מחלקת העובד בתוך משתנה פרטי של מספר שלם. עס זאת, משתמשי האובייקט תמיד יציבו ויקבלו בחזרה מחרוזת. בתוכנית אמיתית, שגרת המאפיין מסוגלת לבצע פעולות מכל הסוגיס על הערך, כולל שמירתו בבסיס נתוניס. הערה: כדי להגדיר מאפיין לקריאה בלבד, אל תגדיר את השגרות 56% ץזזסקסזק או 6% שזסססזק שלו. פרק 16: מחלקות: שימוש חוזר ברכיבים | 441 שימוש בפונקציה 66% /+וסקסזק עם אובייקטים מהקוד שבסעיף הקודס מובן שהפונקציה 06% שזז6קסזק משמשת להחזרת ערכיס מהאובייקט, והשיגרה 161 שזסקסזק משמשת לקבלת ערכים מהתוכנית הקוראת. עס זאת, הפונקציה 16% שזפקסזק אינה פועלת עס אובייקטים. לכן, אס הפרמטר הוא אובייקט, תצטרך להשתמש בשיגרה 56% שוסססזק, כמו שניתן לראות בקוד הבא : 656 45 זספו/ו6קנו5[טס ס6סְהּעווק 66 45 ()ז50ו/ו6ק5 06% עשוסקסזק 6ווטגוק זו 5[ט0 = זספו/ז6ק5 56% ץסססזק 6חם (6!550!0/66 45 00[8055)ז50ו/ו6כ5 56% עהסססזק 6ווטגוק 5 = 00[5/060/50 56% הטסוק סחם שיס לב לפקודה 560, המשמשת לקביעת ערך האובייקט. יש צורך להשתמש בפקודה % גם בקוד הניגש לשגרות המאפיינים : 656 /ש6\] 5 66ץסוקותש[פס הזוס 656 צוס\] 5ג/ 55ס8[טס וחוס "60706" = סרחה \9זו=. 66ץסוקותם[פס "ח26%50" = 350\306 | 66ץסוקותש[פס ".זוא" = 75\%806ו.00[8055 "ץ|50866" = 6וח850\\8 8055.1[פס 5 = ]66.506/150/ץס!קוחם(ט0 56% 3586 | זס5ו/ 66.5 שסוקרת=[ס .₪ " 15 2055 5 060706" א0ס8 150 הוספת שיטות למחלקה אובייקטיס יכוליסם להכיל שיטות, כמו שיטת זחוזק (הדפס) של פקד אספשזשסוס. ביכולתך ליצור שיטות במחלקה על ידי הוספת שגרות ציבוריות (65זט660סזק 6ווסטק) למודול המחלקתי. שגרות ציבוריות פועלות כמו שגרות ופונקציות רגילות, אך מילת המפתת סווטטס מצביעה על כך שהן תהיינה זמינות לכל המשתמשים באובייקט שלך. לדוגמה, את הפונקציה הבאה, 68|688156, ניתן להוסיף לאובייקט העובד: ץ6ח6 6 45 ()68|6₪8156 הסססחטת סווטגוק 56 5 053156ח006 50 הוחו (צוסא ,60זורוס6הכ.6! ,"עְעְעֶץ")וכסזכ 6856 50|66 1 < 15 6856 6 = 5070760013!56 1 => 15 6856 2 = 5070760013!56 6חם ]6.58 + %79156ה6760ק 50 * /6.58|37] = 681608156 חסטסחט= 6חם 2 סדנת לימוד 6.0 8\ הפונקציה 68!688156 משתמשת בפרק הזמן השמור במאפיין 60זוח6ז8כ כדי לקבוע אס לתת לעובד העלאה של 6 אחוז או של 2 אחוז. הדוגמה מראה כיצד לארוז כלל עסקי במחלקה. פיתוח נוסף של הרעיון יכול להיות למשל הגדרת מספר סוגים נפרדים של מחלקות עובדים (לדוגמה, 6ו8111ק66ץסוכוח6!55 ו-6חדו|ט 66ץסוקות6!55), כאשר לכל אחד מהס תהיה שיטת 681608156 נפרדת. הצהרה ושימוש באובייקטים לאחר שיצרת את מחלקתך, תוכל ליצור אובייקטיס חדשים בתוכנית שלך על ידי פנייה לשס המחלקה: 056 שצס\] 5 א[פס וחוס מילת המפתח או6א גורמת ליצירת מופע של המחלקה 10/66מוח6!55, ולשמירתו במשתנה האובייקט א[פס. עס זאת, לעיתיס תרצה לעכב את יצירת האובייקט לשלב מאוחר יותר בתוכנית. במקרה כזה, השתמש בפרמטר צו6א יחד עם הפקודה 56% כאשר אתה מוכן לכך: 5 85 אןסס וחוס ...זה |' 5 שו6)] = א[00 )56 בקוד לעיל, המופע עצמו של האובייקט לא נוצר עד אשר הפקודה 56% מופעלת. בדוגמה הראשונה, מופע האובייקט נוצר בפעס הראשונה בה פוניסם למאפיין או לשיטה השייכים לאובייקט. הערה: השתמש תמיד בפקודה 56% יחד עם ש6א במקום ליצור את האובייקט עם הפקודה וחום. כך תוכל ביתר קלות לנפות שגיאות מהקוד שלך. קישור מוקדם לעומת קישור מאוחר עד עכשיו, כל ההצהרות בפרק זה השתמשו בקישור מוקדם (ַחו0חו8 עז8ם): סוג האובייקט מוגדר בקוד בצורה מפורשת. עס ואת, גם קישור מאוחר (0חו0חו8 806 |) הינו אפשרי, כפי שניתן לראות בדוגמה הבאח: 0 5 א[טס וחוס ("6!355/י].66%[סזק ץ]]" 66%[ 6768%60 = א[פס 56% כדי לבצע קישור מאוחר, יש להשתמש בפונקציה 67681600[606 ובמחרווזת מזהה. החסרון של קישור מאוחר הוא: כיווו שהאובייקט א[פס מוגדר בתור הסוג הכללי %, לא ניתן לצפות במאפייניס ובשיטות שלו מתוך סורק האובייקטיס 0016600 זס6פשסזם), ותכונות הכתיבה וההשלמה החכמות לא תהיינה זמינות לגבי אובייקט זה. פרק 16: מחלקות: שימוש חוזר ברכיבים | 443 עס ואת, לפעמיס יש צורך בקישור מאוחר, כיון שהוא מאפשר לשנות את האובייקט מבלי להדר מחדש את התוכנית המשתמשת בו. הערה: הפונקציה 07680600[60 אינה נחוצה כדי להשתמש בקישור מאוחר. ביכולתך לכתוב קוד המשתמש בקישור מאוחר בצורה הבאה: 0 5 א[טס חחוס 5 נססץוי] אוס\] = א[פס 56% דוגמה למקרה בו תהיה מעוניין להשתמש בקישור מאוחר יכולה להיות למשל, בזמן יצירת מופע של אובייקט על מחשב מרוחק. השמדת האובייקט הצבת הערך פחוח)סא במשתנה מסוג אובייקט גורמת לשחרור כל המשאביס הקשורים לאובייקט, ולהרצת הקוד הנמצא באירוע הפנימי 6ופחווחז6ד. מעשה זה מבצעיס באמצעות הפקודה 56%: פחותזס\! = קוח6 ד[טס 56% טיפ: למרות שתוכן האובייקטים אינו זמין יותר כאשר המודול או הטופס המכילים אותם מושמדים, הצבת הערך פַחוחזסא באובייקטים לאחר סיום השימוש בהם הינה מנהג תכנותי נכון, כיון שכך ניתן לוודא כי כל משאבי הזיכרון משוחררים והאובייקטים מושמדים. יצירת אובייקטים מפרויקטים אחרים כאשר ברצונך לגשת למחלקות מפרויקטיםס אחרים של 8856 |1508\ או מספריות 66% 11ם, אתה יכול לכלול את שס הפרויקט: 5 ץו] וס 5 א[טס וחוס זכור כי בשביל לגשת למחלקות בפרויקטים או ספריות ‏ 11ם, תצטרך להוסיף אותס לרשימת הפניות הפרויקט (₪6)6760665 666[סזק). 4 סדנת לימוד 6.0 8\ הוספת אירועים משלך אובייקטיסם של 8856 |1508\ מסוגליס לעורר אירועים, כמו האירוע 1080 הקייס בטפסים. אירועיס מספקים דרך נוחה לאובייקט להריצ קוד הנכתב על ידי המשתמש באובייקט. האובייקט מפעיל את האירוע באמצעות שגרת אירוע (6ז60ססזק +ח6/ם). למדת כבר כיצד למקס קוד בשגרות אירועיס. כדי ליצור אירוע במחלקה שלך, עליך לבצע שני דברים : 1 הצהר על האירוע בתוך המחלקה. 2 השתמש בפקודה %ח₪81565/6 כדי להפעיל את האירוע כאשר נחוצ. כעת תוכל ליצור אירוע לדוגמה במחלקת העובדים. נניח שתרצה להגדיר דרך להתריע על שגיאות בפני משתמש האובייקט. ראשית, הצהר על אירוע בשם זסזזםפְּהכ בסעיף ההצהרות הכלליות של 66ש0וכוח6!55, על ידי הוספת שורת קוד בודדת : (0חו50 5 ]6% ] 511655806 |8\ץ)זסזום בכ %חסעם ס6ווסוק כעת עליך להוסיף קוד כדי להפעיל את האירוע. היזכר בשיטה הקודמת, 68!688156, המתבססת על המאפיין /ץז58!9 של האובייקט. אם המשתמש אינו מציב ערך במאפיין זה, לא ניתן לחשב כהלכה את העלאת השכר. הינך יכול לשנות את 68|608156 כדי לשלוח על כך הודעת שגיאה למשתמש דרך האירוע זסזוםפזהכ על ידי הוספת פקודת 1 פשוטת: ("!!561-10ק5\(\ ץצ |ה5")זסזום 9 %ח56/6ו9 הפחד 0 = עז6.58|3ו ]ז כפי שניתן לראות, מאוד קל להוסיף אירוע. כדי לגשת לאירועיס שלך מהקוד הקורא, עליך להצהיר על האובייקט באמצעות מילת המפתח שחסעסוטו/ץ, ולהגדיר שגרת אירוע אשר ניתנת לקריאה על ידי האובייקט. לדוגמה, מיקוס הקוד הבא בחלון ההצהרות הכלליות של טופס או מודול, יגרוס ללכידת האירוע זסזוםפהס : 656 5/ 055[פ0 פסהסעםרטו/\\ וחוס (0חוז50 45 )6% 516558067 |8/\ץ)זסזדום 9+ 55סש[סס סטפ סספעווק "| וזסזזם" ,|0₪68ט/ ,60 5116553061 א80 150 5 0חם מילת המפתח פח6עםוטוצ\ גורמת להוספת שס האובייקט לתיבת האובייקטיס בחלון הקוד, ומאפשרת לתוכנית 88586 [1508\ ליצור את שלדי שגרות האירועיס למענך. כדי לבדוק דוגמה זו, צור את האירוע +ח95/6ז08 במודול המחלקתי, והוסף קוד כדי ללכוד את האירוע, כמפורט לעיל. לאחר מכן תוכל לגרוס לאובייקט להפעיל את האירוע על ידי קריאה לשיטה 68|688156 כאשר המאפיין עז58!8 שווה לאפס. פרק 16: מחלקות: שימוש חוזר ברכיבים | 445 יצירת !| ₪1 6%עו₪46% הוספת מחלקות לפרויקטיס מסוג 5א= 0870ח5/9 הינה שימושית, אך הידורן למרכיבי 1 606% או שאם 6%ע60ה עשוי להיות שימושי יותר. מרכיבי 46006% אלה ניתניס להתקנה ורישוס על מחשב אחר, כך שהיישומיס על אותו מחשב מקבליס את היכולת לגשת למחלקות שלך. לדוגמה, תוכל ליצור ספריית ‏ 11ם המאפשרת גישה לבסיסי נתוניס, ולהתקין אותה על שרת 60/\ לשימוש עס עמודי השרת האקטיבייס (6ש460 5 "ְ507/6). הסעיפים הבאיס מתארים כמה מהשלביס הכרוכים ביצירת פרויקט או . יצירת פרויקט 6%עו246% כדי ליצור ₪11 א6ע46, עליך להוסיף את מחלקתך לפרויקט מסוג 11 אפע6ה. הדרך הקלה ביותר לבצע זאת הינה ליצור פרויקט מסוג זה ולבחור ₪11 860/8% מתוך תיבת הדו-שית 60[סזש שפא. כזכור לך, לאחר בחירת פרויקט 5אם 50800870 חדש, אתה מקבל פרויקט עס טופס בשם 1וחזס". בצורה דומה, יצירת פרויקט 11 א6ע60 או 1וס חדש גורמת ל- 8856 |8טפו\ ליצור פרויקט עס מודול מחלקתי בשסם 0!8551. אם הינך מתחיל לבנות מחלקה חדשה, עליך רק לשנות את 0!8551 לשס טוב יותר ולהתחיל להזין קוד. אס ברצונך להוסיף לפרויקט מודוליסם מחלקתייס אותס כבר כתבת, לתצ לחיצה ימנית בחלון זפזס|קאם 606[סזק ובחר 816 ₪00. הערה: פרויקטים מסוג ₪11 א6צ6ה או 5אם מסוגלים להכיל מספר מודולים מחלקתיים, וכן מודולי קוד וטפסים. אך רק האובייקטים בתוכם המוגדרים כציבוריים זמינים ליישומים אחרים עבודה עם מספר פרויקטים בחלק הראשון של פרק זה, הוספת מודול מחלקתי לפרויקט 565 0ז08ח500. אומנס המודול עמד ברשות עצמו, אך הוא עדיין היווה, יחד עס הטופס, חלק מאותו פרויקט. עס ואת, כאשר תעבוד עם פרויקט 11 א6%ע60ה, רוב הסיכויים יהיו שתהיה וקוק לפרויקט נפרד מסוג 5%5 50000870 כדי לבדוק את מחלקותיך, מכיון ש- ₪11 460/6% מיועדים לשימוש מתוכנית חיצונית. במילים אחרות, ממשק המשתמש של היישוס יכול להיות פרויקט אחד של 8856 |1808/, ומחלקת הגישה לנתונים תהיה פרויקט אחר ונפרד. כדי לפתח ולבדוק ביעילות יישוס כמו זה, יהיה עליך לדמות פעולת גומלין זו. למרבה המצל, ביכולתך לבצע את בכמה דרכים, כמפורט להלן: + שימוש בקבוצת פרויקטים: הוסף מספר פרויקטים לחלון ז6זסוקאם 666[סזק. + שימוש במספר מופעים של 83516 !1508/: הפעל שנית את 8856 |1508/ וטען את פרויקט 11 606% שלך במופע השני של 88516 |1508/. > שימוש ב-₪11ם המהודור: השתמש בשיטה וו כדי לשתף מפתחים אחרים במחלקות שלך. 6 סדנת לימוד 6.0 8\ בומן שאתה קורא סעיף זה, חשוב על מצב בו קיימיס שני פרויקטים : פרויקט 6%שו460 1 המכלל מחלקה, ופרויקט פאם 50870876 המשתמש במחלקה זו. הערה: כאשר הינך ניגש ל- .₪11 606% מתוך פרויקט 5א5% 606% באחת מהדרכים המוסברות לעיל, עליך תמיד להוסיף הפניה אל ₪11 באמצעות תיבת הדו-שיח 6 ראה את הסעיף "שימוש ופנייה אל 1!ס", מאוחר יותר בפרק זה. שימוש בקבוצת פרויקטים באפשרותך ליצור קבוצת פרויקטים ב- 8856 |פטפוש על ידי בחירה ב- 0[6%זק 400 מתפריט ₪16. כל פרויקט בקבוצה יופיע בחלון זפזסוקאם 66[סזס, כפי שניתן לראות בתרשיס 16.4 הערה: יצירת קבוצת פרויקטים הינה שונה מהדרך הרגילה בה מטפלים בפרויקטים מרובים של 8856 |1508/. באופן רגיל תשתמש באופציית התפריט 66%[סזק ח6קס, שתגרום לפרויקט הנבחר להחליף את כל הפרויקטים הפתוחים כרגע. בזמן יצירה של קבוצת פרויקטים, מספר פרויקטים נטענים לסביבת הפיתוח באותו זמן. - בש || ₪ הז (=אשןום) =אשןיום פחזזס= 4% = ( 57 דרח 5 הו או 5 )= =] (עפוְהַסת) ע'"ס5וססת %% (מחנזק) מרוזם 87-כ 5 5%5ב]!0 45% ]=] (005]ח6586) 85ו6ח506 ₪ ( 6155068 ) 6שעסופו 5 ₪5 (זומזם) זומזם 4 בו חס 10567 5%<=|=] (בע) בשויו זע תרשים 16.4: קבוצת פרויקטים מאפשרת לבדוק ולנפות שגיאות ברכיבי ₪11 6%שו460 בתוך מופע יחיד של 8856 |08פו\ הדרך הרגילה לשימוש בקבוצות פרויקטים היא: ראשית, ליצור מרכיב א6טחסה, ולאחר מכן להוסיף פרויקט 5א5 50980870 כדי לבדוק את אותו מרכיב. הינך יכול להשתמש בכלים לניפוי שגיאות המסופקים על ידי 8856 |808ו/, כמו פַחומק506 ושימוש בנקודות שבירה, בכל הפרויקטים הנמצאיס בקבוצה. פרק 16: מחלקות: שימוש חוזר ברכיבים | 447 שיס לב שלפני הלחיצה על לחצן ההתחלה של 8856 [508ו/\, תצטרך לציין את הפרויקט ההתחלתי מתוך קבוצת הפרויקטים. הפרויקט ההתחלתי לפי ברירת המחדל הוא הפרויקט הראשון שנפתח, ושמו מופיע באותיות מודגשות בחלון ז6זסוכאם 60[סזם. כדי לבחור פרויקט התחלתי אחר, לחצ לחיצה ימנית על שס הפרויקט הנבחר, ובחר 85 560 מ הערה: ברוב המקרים יהיה עליך להגדיר את הפרויקט 5א= 5180970 בתור הפרויקט ההתחלתי. גם פקדים וספריות 11ם יופעלו, אך רק הפרויקט ההתחלתי יקבל את הפוקוס. שימוש במספר מופעי 83516 |בּטפו לפעמים, שימוש במספר מופעים של 8856 |808ו/ הינו נוח יותר משימוש בקבוצת פרויקטים. אס יש לך פרויקטים מאוד מסובכים של 55 או 11ם, שימוש במספר מופעי 88516 |1508/\ יכול להוות אפשרות טובה יותר, כיון שבמקרה זה תוכל להביט בכל פרויקט כאשר הוא נמצא בסביבה משלו. ההבדל העיקרי הוא שבקבוצת פרויקטים, 8856 |ה150/\ מטפלת בהפעלה ובעצירה של כל הפרויקטים. שימוש במספר מופעי 88516 |1508/\ דורש ממך להפעיל ידנית את הפרויקטיס הנחוצים לפרויקט נתון. במיליס אחרות, יהיה עליך להפעיל ראשית את פרויקט הספריה, ולאחר מכן את הפרויקט 5אם 0810ח5098. כל תכונות ניפוי השגיאות עדיין תהיינה ומינות במופעים השונים של 88516 |1508/. במיליס אחרות, תוכל להגדיר נקודות שבירה ולצעוד קדימה ואחורה בקוד בשני הפרויקטיס. עס ואת, כיון שתקשורת בין-תהליכית נוספת מעורבת בין המופעיס השוניס של 88516 |808ו/, יחיה עליך להתחיל מחדש פרויקטים לעיתים קרובות יותר מאשר עס קבוצת פרויקטיס. שימוש ב- ₪511 המהודר השימוש ב- ₪11 א6%ע260 מהודר מאפשר מופע יחיד של 8856 |808ו/. דרך זו אינה מתאימה לבדיקת קוד השייך למחלקה, כיון שאין דרך להשתמש באף אחת מתכונות ניפוי השגיאות. עס ואת, מפתתיס אחריס יוכלו להשתמש ב-11ם המהודר על מחשביהם, מבלי שיהיה עליהס להעתיק את הפרויקט והקוד שלך. שימוש ב-11פ מהודר מצריך מעט שלביס פשוטים: 1 התקנה: העתק את ה-11ם ואת המרכיבים או הקבציס הנחוציס בשבילו (אס יש כאלה) אל המחשב של המפתח. 2 רישום ה-511: השתמש בתוכנית ₪505/832 כדי לרשוס את הקוב במערכת. 3 הוספת הפניה ל-11: לאחר התקנת ה-11 ורישומו, עליו להופיע בתיבת הדו-שיח ₪0606760665. 8 סדנת לימוד 6.0 8\ פנייה ושימוש ב- 11פ: לא משנה באיזו דרך תשתמש כדי לטעון את פרויקט א6ע60 (קבוצת פרויקטים, מספר מופעי 8856 |הטפוצ או 11ס מהודר), תמיד יהיה עליך להפנות (₪6)070066) אל |1ם בפרויקט %5ם 080ה500. הצג את תיבת הדו-שית 685 על ידי בחירה באפשרות 065ח₪6/076 מתוך התפריט ‏ 66נסזק. רשימת ההפניות הזמינות צריכה להכיל את שם פרויקט ₪011 606% שלך. לאחר שתסמן את התיבה ליד שס ה-11פ, הוא יהפוך לזמין עבור הפרויקט שלך. הערה: בזמן שימוש במספר מופעי ₪856 |הטפוצ, יכול להיות שיהיה עליך להוסיף מחדש הפניה אל ה-11ם לאחר שתבצע בו שינויים. בנוסף לכך, הפרויקט ₪11 6%ש6 לא יופיע בתיבת הדו-ש'ח 60065ז₪616 לפני תחילת הפרויקט. גישה למחלקה: בדוגמה הקודמת, יצרת מופע חדש של אובייקט העובד, פשוט על ידי כתיבת שס המחלקה: 656 צוס\! 5 8055[טס וחוס אך כאשר המחלקה מוגדרת במרכיב 606% מהודר וחיצוני, עליך לכלול גסם את שס הפרויקט: 6 ו רת=6!5.. | 66ץס|קרח= צוס\! 5 8055[טס וחוס אס יש לך מספר מחלקות ציבוריות המוגדרות בתוך 11ם, תוכל לגשת לכולן: 66 א0!5. | |660ץסוקרחם שצ6\ 5 6=0נ[טס וחוס וט ח6!55.. | ו66שסוקרח= צוס\! 5 אססווסנטס וחוס שים לב שגם אס תכתוב קוד המשתמש במחלקות חיצוניות אלו, כל תכונות העורך (כמו רשימות פרמטריס) תהיינה זמינות בחלון העריכה של 88516 |08פ!ו/\. קביעת המאפיין הופעה בפרויקטיס של ₪011 6%ע460 או 5אם אסטטסה, לחלון המאפייניס של המודול המחלקתי מופיע מאפיין נוסף: הופעה (0חו0ח5%0ח1), אשר אינו קיים בפרויקט 5א= 00870ח509. מאפיין זה קובע כיצד ייווצרו מופעי המחלקות. האפשרויות משתנות בהתאסם לסוג הפרויקט. בזמן למידת יסודות ה-007 והמחלקות, אתה בהחלט יכול לשכוח ממאפיין זה ולבצע ניסויים בפרויקט ₪5 50800870. עם זאת, מאפיין וה בדרך כלל נקבע בזמן היווצרות המחלקה, ולכן הוא מאוזכר כאן. טבלה 16.1 מסבירה אודות הגדרות המאפיין 0חו6ח8ז5ח1 : פרק 16: מחלקות: שימוש חוזר ברכיבים | 449 טבלה 16.1: שימוש במאפיין 84חו0ח15%8 6 סו!סטק 1 ₪ שאם 6 == בלבד 06| =%= בלבד 6 וטוט 8 סאם וס סו 1 8 סאם לא ניתן לגשת למחלקה זו מחוץ לפרויקט הנוכחי מופעי מחלקה זו יכולים להיווצר רק מתוך הפרויקט אשר מגדיר את המחלקה. עם זאת, יישומים אחרים יכולים לגשת למופעי המחלקה, לאחר היווצרותם בכל פעם שנוצר מופע חדש של המחלקה, מופעל עותק חדש של 5א= המכיל את המחלקה כמו ס55ַסְופַחו5, אך הוא גורם למאפיינים ולשיטות להופיע כמשתנים ושגרות ציבוריים בתוכנית יישומים אחרים יכולים ליצור כל מספר של מופעי מחלקה, בזמן שרק עותק אחד מהתוכנית המכילה את המחלקה מופעל כמו 56וטוטויז, אך הוא גורם למאפיינים ולשיטות להופיע כמו משתנים ושגרות ציבוריים בתוכנית הלקוח המידע בטבלה יכול להיות מובן יותר אס חושביס על ההבדלים בין קבצי 5א5 וקבצי . קוב> ‏ 11ם 6%ע860 מיועד לשימוש בתור רכיב משותף, כך שלקוחות מרוביס מסוגליס לגשת לאותו מופע של רכיב זה, ואילו 5%5 רצ במרחב זיכרון משלו. בנוסף לכך, כאשר מדובר ברכיב מסוג 5א₪ 860/6%, משתמשים יכולים להריץ את התוכנית, ובאותו זמן תוכניות אחרות יכולות לפנות אליו ולהשתמש במחלקות מתוכו. 0 סדנת לימוד 6.0 8\ מספור (וחטחם) אחת התכונות המצוינות של 88566 1808 היא הדרך שבה היא מציגה מידע ורשימות בהקלדת קוד. לדוגמה, אס הינך משתמש במחלקה 66ש00ה6!557, 88516 |1508/\ מסוגלת להציג את רשימת המאפיינים והשיטות הזמיניס, כמוצג בתרשים 16.5. |< וםןב. (006-)) 651 דרחיו] - =אוןוכ או |+ ו | ] ()61168 1656בעש כום שסהטבעק שק קתם15ש חם 25 ס5שדקמתם אבע 0-8 > זור ₪57 3 כ ₪5 58 ₪5 35138 | ₪5 53 ₪9 וטו ₪5 תרשים 16.5: תכונות כמו הצגה אוטומטית של חברי המחלקה וסורק האובייקטים, פועלות על מחלקות שנוצרו על ידך עס ואת, אם כתבת שיטה בתוך המחלקה, לעיתיס קרובות יהיה עליך למצוא דרך לדעת את ערכי הפרמטריס התקפים. דוגמה אחת לכך הינה קבועי תיבת ההודעה (כמו |68וזספע) אשר מוצגיס בזמן שהינך מקליד את הפקודה א480פ!א. חשוב על דוגמת המאפיין 0060%ז8ק6ש במחלקה 61550066 למרות שהינך מאפשר למשתמשים להציב מספר ערכי מחרוזת, בפועל נשמרת מחלקת הפועל בתור מספר שלם. בנוסף לכך, כל עוד אין למשתמשי המחלקה רשימת מחלקות תקפות, הס לא יוכלו לדעת כי 6 דם אהו הוא ערך בר-תוקף. דרך אחת לפתור את הבעיה הזו היא להשתמש במספור, או לפי 88516 |1508/, וחטחם. המספור מאפשר לך להגדיר קבוצת קבועיס בתור סוג מידע. באפשרותך להשתמש בסוג מידע ה בתור פרמטרים של פונקציות. לדוגמה, תוכל להגדיר מספור למחלקות עובדים, ולאחר מכן להגדיר מחדש את המאפיין +חוחזוהקסכ של 66ץס!ס6!55, כמוצג בקוד הבא. פרק 16: מחלקות: שימוש חוזר ברכיבים | 451 רקס התטחם סווסגוק 1 = 136600 2 = 8חחט 600 3 = 60 דחסטהוחזסזח1 4 = הצוסחאח) ההטוח= חם תח 45 הט\סקססח הזוס רקס 45 ()חה6וח הס 661 עשוסקסחק 6ווספטוק הקסה = זהסוחדוהקסס שזסססזק 0חם (5 66 5 +6כ סא |3/\ץם )הס והקסכ 66 | שוסקסחק 6וופגוק וא = התטאפסקססה שזסססזק 6חם לאחר מכן תוכל לגשת למאפיין זחסוחזז8ק6ס כדלקמן: 66 הסה ווס+ח1 = +ה6ות+זה סכ . 66ץסוסותם[פס "+06 17" 500% הסחד ה66 [הסטהוזסזחה1 = +הסותצ+והקסכ. 66ץסוקותש[פס זז תוכל לבדוק את זה על ידי הוספת סעיף וחטח=ש לפרויקט לדוגמה אשר יצרת מוקדס יותר. שים לב לכך שכאשר תכתוב את סמל השוויון כדי להציב או לקרוא את ערך המאפיין זחסוזזהק6כ, הערכיס תקפים יוצגו לפניך בתוך רשימה נפתחת. יצירת מחלקות המכילות אוספים אוסף (ח60!!6600) הוא קבוצת פריטים, אשר הס בעצמם סוג אובייקט. ב- 8856 |הטפו\ קיימיסם מספר אובייקטי-אוספים, כמו פוחזסת (-₪0|5ח60. ניתן להשתמש בפקודה זס= +6א...ח6אם עם אוספים כדי לבצע פעולות על כל האובייקטיס הכלולים באוסף. השיגרה ||264וווחו!\, המוצגת בתוכנית 16.1, ממזערת את כל הטפסיםס הטעוניס ביישוס. תוכנית 16.1: דאך.=2זויזא11וא - שימוש במבנה 5860 זס] לטיפול בכל פריטי האוסף .105 |08060! || 26ורתוחזשן ' ()!\264ווהוחו! 500 הס 5 +הסרת6!ם וח וחוס .רחוס |08060| ח686 זס- ' 5זוס= ח1 +ה6רת6!ם וח ה86= זס= רח'זס1 6+ ש2ורחוחז]]' 0ררחוחו]סע = 0/5%006ס0ח1/\. +השרחסות רת חש רת6!ת וח +אסו] טט5 0חם 2 סדנת לימוד 6.0 8\ האוספים פותרים 3 בעיות עיקריות אשר בהן נתקלים רוב המפתחיסם בזמן העבודה עס אובייקטים : * הס מספקים דרך סטנדרטית לגישה ומעקב אחר מספר מופעי אובייקטים. * הס מקבציס מספר אובייקטים מקורבים למטרות קבועות, כמו שינוי מאפייני הצבעים, או גרירה למיקוס חדש. > בניגוד למערך, האוסף יכול להכיל חבריס מסוגיס שונים. * הם מארגניס מערכות גדולות של אובייקטיס לצורה של היררכיה. הסעיפיס הבאיס מסבירים כל אחד מהיבטי השימוש באוספים, אשר בהס תיתקל כאשר תיצור יישומיס מבוססי אובייקטים ב- 8856 |1508/. שיטות ומאפיינים סטנדרטיים באוספים אוספים המוגדריס על ידי המשתמש חולקים קבוצה והה של מאפיינים ושיטות. האוספים יכולים להכיל מאפייניס ושיטות נוספים, אך כל האוספים שתיצור ב- 8856 |1508/\ יכילו לפחות את הקבוצה המופיעה בטבלה 16.2. הערה: אוספים המוגדרים מראש על ידי 8856 |508ו עלולים שלא להכיל את כל המאפיינים והשיטות המופיעים להלן: טבלה 16.2: מאפיינים ושיטות המשותפים לכל האוספים הפש 0000000000 שמש ה המאפיין +חטס6 מדווח את מספר האובייקטים באוסף המאפיין 16 מספק גישה לאובייקט יחיד מהאוסף בנוסף לפריטים בטבלה 16.2, רוב האוספים בדרך-כלל מספקים עוד שתי שיטות מקובלות, המופיעות בטבלה 16.3 טבלה 16.3: שיטות המקובלות ברוב האוספים 6 ,606 | מוחקת אובייקט מהאוסף השיטות 400 ו-₪60/6 מספקות למפתחים דרך סטנדרטית ליצור ולמחוק אובייקטיס מהאוסף. השיטה 400 כוללת לרוב מפתח ואינדקס המועבריס כפרמטרים, ומשמשים לוהות את האובייקט בתוך האוסף. עס ואת, אוספים שוניס עשוייס ליישס את פרק 16: מחלקות: שימוש חוזר ברכיבים | 453 השיטות 400 ו-₪606 בדרכיס שונות. לדוגמה, השווה בין תחביר 400 של האוסף 5 | השייך לפקד ש6₪ו/115%, ובין האוסף 5וח6ז150 1 של הפקד 15% 18861 : זר 5160 טרח 6,160 , 66 א סח 50065.0 |. נעוסו/50 | 6ז סוכ סא סח 200/. 1508065 1. 1561 1806 יצירת אוסף חדש לפעולות קבוצתיות הינך יכול ליצור אוספים כדי להכיל טפסים, פקדיס ואובייקטים. השתמש באובייקט ח60|!6000 כדי ליצור אוסף חדש. ההצהרה הבאה יוצרת אוסף חדש בשס 60156!60060 : ח0]!6600 שצ46] 5/ 6056166000 חזוס הצהרת משתנה בתור אובייקט מסוג 601166000 נותנת לאובייקט שלך 4 מאפייניס ושיטות מובנים, כפי שניתן לראות בטבלה 16.4. טבלה 16.4: מאפיינים ושיטות מובנים באובייקט ח0ס6600ו|60 תפקיד המאפיין +חטס6 מחזיר את מספר האובייקטים אשר באובייקט השיטה 400 מוסיפה אובייקט לאוסף המאפיין חן מספקת גישה לאובייקט יחיד מהאוסף השיטה 6ע0וח₪6 מוחקת אובייקט מהאוסף הקוד בתוכנית 16.2 יוצר אוסף חדש בשס 65א6016080 ומוסיף את כל תיבות הטקסט שעל הטופס לאוסף החדש. תוכנית 16.2: דאד. ז0ם 6011 - יצירת אוסף בעזרת קוד זה וסו|קאם הסטקס 6 ||3 הו%3חס6 60 ח60|!66000 שש6ח 3 070806 ' החסז 8 חס 65אסכ )א ' ח00|!660 צ\6\] 5 65א0ש)אם דו60 הזוס ()26ו|08וח1 וחזס= סטש 6אפעווק .600005 060 סל ה₪80 זס= חו 560 6!טהוהש ' |סחס6 45 הח%1106ח6 הוחו .וחזס+ 6ץ חס 0015ח60 6ו הפטסזו קסס|' 6.05 ה הח1106ה6 החסה וס 4 סדנת לימוד 6.0 8\ 6 סז 6 800 ,אסס 0 8 15 וסזחס6 שח +ך ' .5 0 01 ח60|!6000 ' הסח "אסא ד" = (0ח01106ח60)6קץד זז רח16ח6 00 60065 דוסס + 0חם רח071106ח6 %א6\] 50 6ח= הקוד בתוכנית 16.3 משתמש באוסף 65א%80א60118 כדי לנקות את כל הטקסט אשר הוקלד על הטופס. תוכנית 16.3: דאד.8 ]6 - שימוש בלולאת ח86ם...זס] כדי לטפל באוסף ()א6116 6061687 50 5 6 60 ₪86 זס= חן 560 6|פ8ו3\ ' (סיח00 05 וח1106ה6 הוחו .ח0ו60|!660 606 חן 5זסאסכ 00 6 +0 ה686 0687 ' 5 דו60 1 וח166!חה6 86 וס "" = )6 ך.0ח1166ח6 רח071106ח6 %א6\] 50 6ח= ראה: "שימוש בפקד שו6ו/15%!", פרק 12. שימוש באשף המחלקות כאשר הינך יוצר מחלקה חדשה, 8856 |פטפו\ מציגה לך את האפשרויות (בין היתר): ליצור מחלקה ריקה, או להפעיל את אשף המחלקה 811060 01855). 00 6!355 6 . 3|<| | בחופוא = | אש 5 8 6 2805 0808 א6|קוחס | 6|נס1י] 355 פס 6זוזט] 6 רו 03100 ₪15 אוסח5 ז'חסק). -] תרשים 16.6: לחיצה כפולה על אשף המחלקה מפעילה כלי העוזר לארגן מחלקות פרק 16: מחלקות: שימוש חוזר ברכיבים | 455 הערה: אם אינך רואה את :80068 0|855 כמוצג בתרשים 16.6, השתמש במנהל התוספות (ז6טְח8!! חו-800, הנמצא בתפריט 5חו-400) כדי להפוך את האשף לזמין. ניתן להשתמש באשף המחלקה כדי ליצור קווי מתאר כלליים עבור המחלקות החדשות, או לארגן מחדש מחלקות קיימות. תרשים 16.7 מציג את אשף המחלקה עס המחלקה 66ש6!550!0 טעונה בתוכו. (אוםן- קוספ אוסוצ ₪48 ₪6 | 4 | ? |6 ]9 | | | ₪ חס | 196065 | 65זסקסזם ה | 6000 קסזק | | 5תפתטסזה | | >קעדבבם | 8 שחבם| 6 זו ב | 0 ו זב קט וז 06 ₪5 בי 1 ב זב 656 זב ב ב 66 5 ₪57 תרשים 16.7: אשף המחלקה מספק ממשק גרפי למחלקות, מאפיינים, שיטות, קבועים ואירועים כדי להוסיף פריט מסויס לפרויקט שלך, לחצ על אחד מלחצני סרגל הכלים. אשף המחלקה יציג תיבת דו-שיח ובה תוכל לכוון את תכונותיו של הפריט החדש. תרשיס 8 מציג את תיבת הדו-שיח המוצגת כאשר מוסיפים שיטה חדשה. |א. ₪106 1600 2 | ב ו | ב :שוחב 6 : 5לחפחחהזה :שקץז 0353 חזוססת ששחשזו ו לו 85 שז ספ -]ן ?17 8/0 -] 6 | תרשים 16.8: תיבת הדו-שיח של אשף השיטה מציגה את כל האפשרויות הזמינות 6 סדנת לימוד 6.0 8\ כאשר תסגור את אשף המחלקה, הוא יעדכן את הפרויקט שלך בכל השינויים או ההוספות שביצעת. עדייןו יהיה עליך להוסיף קוד כדי שמחלקתך תבצע פעולות כלשהן, אך אשף הביטוייס ייצור את ההצהרות הדרושות ואת הקוד התומך. מכאן... בפרק זה למדת לבנות מודוליס מחלקתיים, והיכרת את האובייקטיס אשר ניתן ליצור מהס. כדי ללמוד עוד על כמה מהנושאיס המכוסיס בפרק זה, פנה לפרקיס הבאים: * כדי לראות כיצד אוספים מתפקדים יחד עם פקדים, ראה פרק 12 הפקדים המשותפים של %)ס5ססוו!. =* | הינך יכול ללמוד כיצד ניתן להשתמש בטכניקות המוחלות על מחלקות כדי לבנות פקדי 606% משלך באמצעות עיון בפרק 14, יצירת פקדי א6עוזס. > כדי ללמוד עוד אודות גישה לאובייקטים ואוספים מיישומים אחרים, כמו טזוסו\ או |6א5, ראה פרק 22 שימוש ב-015 לשליטה על יישומים אחרים. > אוספים יכוליס לעזור גס בתחוס ה-65/\, כמתואר בנספח 4 דפי שרת פעילים. פרק 16: מחלקות: שימוש חוזר ברכיבים | 457 חלק 4 ממשקי 6ו₪35 |בּט5ו/\ ]וז 6 : 0 5 שו >ן/\ של = פרק 17: יישומים בעלי ממשק מרובה מסמכים פרק 18: תכנון ממשק נכון פרק 19: שימוש במרכיבי התכנון הוויזואלי 19 יישומים בעלי ממשק מרובה מסמכים מה בפרק זה? מבוא ליישומי זפוא יצירת תוכנית זפוז פשוטה יצירת עותקים מטופס בודד עבודה עם תפריטים טיפול בטפסים צאצאים + יצירת תוכנית דוגמה לניהול פגישות הפועלת בסביבת זסוא פרק 17: יישומים בעלי ממשק מרובה מסמכים | 461 כאשר תתחיל לכתוב תוכניות מורכבות יותר ב- 8856 |508ו/, בוודאי תרצה להשתמש בממשק ריבוי המסמכים של פאוססחו/\. ממשק זה מאפשר לתוכניות לעבוד עס מספר מסמכים הכלוליס בטופס אב (וחזס זח6זהק) בודד. השימוש בטכניקת 1סא מאפשר יצירת ממשק ברור ומובן יותר בהשוואה לממשקיס הכוללים טפסיס עצמאיים ובלתי תלוייס המפוזרים על גבי המסך. תקן 1 יכול לשפר את תוכניתך בשתי דרכיס אפשריות. ראשית, תוכל להשתמש בטופס אב אחד כרקע לכלל היישוס שלך. בממשק קיים טופס האב (חזס ז6חוח60) ואילו הטפסיס הנוספים, המונחים על גביו, מכוניס טפסי צאצא (פחזס= 6ווח6). כאשר המשתמש גורר או מזיז את טופס האב, טפסי הצאצא זזים גם הם, דבר המסייע לשמור על ממשק התוכנית שלך נקי ומסודר. שנית, ואף חשוב מכך, תוכנית זסו₪ מאפשרת למשתמשיה לעבוד עם מספר טפסים בו-זמנית. כמו כן, תוכניות 1סוא מאפשרות עבודה בו-ומנית עס מספר מופעים של אותו טופס, דבר היכול להוסיף גמישות ועוצמה רבה ליישוס שלך. מבוא ליישומי 1פוא רביס מהיישומים שאתה יוצר ב- 8856 |1808/\ כוללים סדרת טפסים עצמאיים, דומיס לאלה המוצגיס בתרשים 17.1. כל אחד מטפסיס אלה מופיע על המסך בנפרד וניתן להזיזו, להגדילו או להקטינו ללא תלות בטפסיס אחריס המצוייס אותה עת על המסך. בסוג כזה של ממשק אומנס קשה לארגן את הטפסיס בקלות או לטפל בהס כקבוצה, אך אפילו אס נתחשב במגבלה זו, ממשק זה הוא עדיין הנפוץ ביותר מבין הממשקיס הקיימיס ומתאיס לעבודה עס סוגיס רביס של תוכניות. זנ 66 ₪ 6 חס הסוב 65 ]] 0% /שט? 4900/00 [< ום]= | הסוב חוזס!ח! ה)טוטצ . חסהָהּחבּו 6וחם א זפזו= 6 351 | | :זס-] הסזב50 [שסשש | [שמטם | [ ב 1 סו 6 זו וז ו0 6 שוח 1.891 1601 0884/80 | | .. קפס ב ...1 תוס ]| טס [5 | 1 וו 5) | - הפס בו | 450 | | לו 85 5 65 | | הפמ תרשים 17.1: בממשק זה שני טפסים אשר לא נראה ביניהם קשר מבחינת צורת הצגתם 2 סדנת לימוד 6.0 8\ דרך אלטרנטיבית לממשק הסטנדרטי שהוצג בתרשיס 17.1, היא שימוש בממשק מרובי מסמכים, או 151 (61866שח1 +ה6וחט6סכ 6וקטוטוי). בסוג זה של תוכניות קייס טופס אב אחד אשר מכיל את מרבית הטפסים האחריס בתוכנית. הטפסיס האחריס יכולים להיות טפסי צאצא, הנמצאיס בתוך טופס האב, או טפסים רגילים שאינס נמצאיס בו. בעזרת יישוס מסוג 1סו!, תוכל לארגן בקלות את כל טפסי הצאצא או למזער את כל קבוצת הטפסים על ידי מזעור יחיד של טופס האב. יישומיםס כגון 4 16070506 ו-661א₪ הס דוגמאות ליישומי [סוא. אס עבדת עס תוכניות אלו בעבר, אתה בוודאי יודע שניתן לפתוח מספר חלונות בתוכנית בעת ובעונה אחת, לגשת אליהס בקלות דרך תפריט חלון ולמזער את כולס בעזרת לחיצה אחת של העכבר. גס 6 |אטפו\ עצמה עברה שינוי מראה והפכה ליישוס 1סוא החל מגירסה 5.0. תרשיס 2 מציג שלושה גליונות עבודה הנפתחיס בעת ובעונה אחת ב-|06אם, כדוגמה ליישוס 1 אופייני. קובץ עריכה תצוגה הופפה עיצוב כלים נתונים חלון ערה | ₪ | == | ₪ ₪ | 9 = < |6 ₪ |-= - = | ₪ ם' ₪ | ש ₪ 6|₪ ₪ םןן |.-. .2-9 % | ה|3 = ש= ש| זי | ש 7 | 0- א | = - 4 <- 2 טופס אב טופס צאצא ₪ + | ש )= מס - 3 4 יליוך1 ,( אוליוף2 \( היליון3 \" 9 | 41 [14/ גיליוך1 \( יליו ( ילוו > מוכך | [ [ד- זר ]אש תד חר תרשים 17.2: יישומי 1סוי! מאפשרים לך לטפל בקלות בריבוי חלונות מסמך תכונות טפסי אב טופס 1א, הידוע גם בכינוי טופס אב (וחזס= זחסזהק), משמש כשטח אחסון לכל הטפסים הצאצאיס בתוכנית. לטופס 1פ!\ יש מספר תכונות המגדירות את התנהגותו: > בכל תוכנית יכול להיות טופס 1ס!ו\ אחד בלבד. <* טופס 1סו יכול להכיל רק את הפקדיס אשר תומכים במאפיין חפָוו, כגון פקד 0166808 או ז83!|ססד. אינך יכול להציב פקדיס אחריס בטופס זפוו. > אין אפשרות להשתמש בפקודת זשחוזק או בכל אחת מהפקודות הגרפיות כדי להציג מידע בטופס 1פ!א. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 463 * חלון האב וכל חלונות הצאצאיס מיוצגיסם על ידי סמל (ח160) בודד בשורת המשימות של פוספחו/\. אס טופס האב ממוזער ומוחזר לגודלו הקודס לאחר מכן, כל הטפסיםס הצאצאים יוחזרו לאותה צורת התצוגה שהיתה להס לפני שהתוכנית מוזערה. + אם פריט בתפריט מוגדר עבור טופס צאצא, שס התפריט יוצג בשורת התפריטים של טופס האב. אס מוגדר תפריט לטופס האב, הוא לא יוצג אם לטופס הצאצא הפעיל יש תפריט משלו. תכונות טפסי הצאצא כמו שלטופס 1פ!\ יש תכונות התנהגות משלו, גס לטפסי צאצא יש צורת התנהגות מסוימת. תכונות טפסי הצאצא הן: > כל טופס צאצא יוצג בתוך גבולות טופס האב. אין אפשרות להוציא את טופס הצאצא אל מעבר לגבולות טופס האב. > כאשר טופס צאצא ממוזער, הסמל שלו יוצג בחלון האב ולא בשורת המשימות של 5וססחו/\. + כאשר טופס צאצא מוגדל לגודלו המקסימלי, הוא ממלא את כל השטח הפנימי של טופס האב. בנוסף, כותרת טופס האב מכילה את שס טופס האב ואת שס טופס הצאצא המוגדל. + כאשר טופס צאצא מוגדל לגודלו המקסימלי, כל הטפסים הצאצאים האחרים מוגדליס גס הסם. יצירת תוכנית פשוטה בעלת ממשק זסוו כמו בשיטות תכנות רבות, הדרך הטובה ביותר להבין כיצד פועלים יישומי 1ס!ו\ היא ליצור תוכנית פשוטה. סעיף זה יעביר אותך דרך תהליך הקמת יימעטפתיי לתוכנית 1. התוכנית תורכב מטופס ₪1 וטופס צאצא יחיד. לאחר מכן תוכל להשתמש בתוכנית כבסיס ליישומי ₪1 א מלאיס. כשלב ראשון צור פרויקט חדש ב- 8856 |89טפו/ על ידי בחירת אפשרות 60%[סיז שא מתוך תפריט 6ו1=. יצירת טופס אב הצעד הבא הוא ליצור את טופס האב (זכןא). כדי ליצור טופס 1סוא לפרויקט שלך, בחר בתפריט 66%[סיזפ, הוסף טופס 1סוא, או בחר בטופס 1סוא מתוך התפריט הנפתח שמופיע לאחר לחיצה על הלחצן 00166 זסוא. לאחר מכן, בחר את סמל טופס 1סוא מתוך תיבת הדו-שיח וחזס] ₪101 00 ובחר ח6קס0. כאשר טופס 1סוז יתווסף לפרויקט, הוא ייראה כמו הטופס שבתרשיסם 17.3. 4 סדנת לימוד 6.0 8\ וי ] ם = וי | תרשים 17.3: טופס פוא הינו בעל רקע כהה יותר מאשר טופס רגיל טופס 1כ! יתווסף לתיקיית הטפסים בחלון סייר הפרויקט (סזסוקאם 605[סזק אוססחו//). אולס, אס תסתכל במבט בוחן, תוכל לראות כי הסמל המשויך לטופס 1פוו בחלון הפרויקט, שונה מהסמל המשויך לטופס רגיל. - זספוסזק (1חוס-) 1 החזס= .ער -*: וה | סמל טופס סטנדרטי סמל טופס סו תרשים 17.4: ניתן להבחין בסוג הטופס בחלון הפרויקט לפי הסמל שלו לאחר הוספת הטופס לפרויקט, עליך לספק שס עבור הטופס ולקבוע את המאפייניס הדרושיס. מרבית המאפייניס של טפסי זס!ו! אהיס לאלה של טפסים רגילים. ראה: "חלקי הטופס", פרק 3. קיימים שני מאפיינים אשר הינם ייחודיים לטפסי 1סו וראויים להתייחסות מיוחדת : מאפיין ח6ז0!וח6/ו0ס0ח605ט ומאפיין 5ז0|!83ז56. מאפיין חסזס!וח6שוסח%05טה קובע אס טפסי צאצא יוצגו אוטומטית בזמן טעינתם. אס ערך המאפיין הוא סטזד (ערך ברירת המחדל), הטפסים הצאצאים יוצגו מייד לאחר שייטענו לזיכרון. מכאן ניתן להבין כי פקודת 1080 ושיטת עוסח5 הן בעלות השפעה זהה על הטופס. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 465 מאפיין 5ז0!!83ז56 קובע האם, במידת הצורך, יופיעו פסי גלילה בטופס 1ס!! האמור. כאשר ערך המאפיין הוא פטזז (ערך ברירת המחדל), יוצגו פסי גלילה על גבי טופס אס אחד או יותר מטפסי הצאצאים חורג מתחומי טופס האב, כפי שמתואר בתרשים 17.5. אס המאפיין נקבע כ-8156=, לא יוצגו פסי גלילה. סז !0 2 וו ב 4 ופא ו תרשים 17.5: פסי גלילה מאפשרים להציג חלקי טופס צאצא החורגים מגודל טופס האב מאפיין חשוב נוסף הוא שזושסוק. למרות העובדה שאין תמיכה בטפסי 1סא לשיטת זחוזק ולשיטות גרפיות כמו בטופס רגיל, תוכל עדיין לכלול תמונה כרקע לטופס. יצירת טופס צאצא תהליך יצירת טופס צאצא בתוכנית 1ס!וא אף פשוט יותר מתהליך יצירת טופס האב. טופס צאצא הוא למעשה טופס רגיל אשר ערך מאפיין 0ווח16זסוז שלו הוא 6זד. לפיכך, כל מה שכבר ידוע לך על יצירת טפסים רגילים נכון גם לגבי יצירת טפסי צאצא ביישומי זסוז. עבור תוכנית הדוגמה, כל שעליך לעשות הוא לשנות את ערך המאפיין 6ווהסזסוז של הטופס אשר נוצר. לשס כך, בחר את הטופס בחלון הפרויקט, סמן את מאפיין 0וח6זסוא בחלון המאפייניסם ושנה את הערך שלו לערך 6טזד. תוכל להבחין כי הסמל בחלון הפרויקט השתנה מטופס רגיל לטופס זסוז. זגהו השינוי היחיד בו ניתן להבחין מסביבת העיצוב (ראה תרשים 17.6). ל טיפ: בדומה למאפיינים אחרים בעלי ערכים קבועים מראש, ניתן ללחוץ לחיצה כפולה על מאפיין 6ווח10סוא בחלון המאפיינים ולשנות את ערכו בין הערכים הקבועים מראש. 6 סדנת לימוד 6.0 8\ סמל טופס צאצא תרשים 17.6: שים לב כי סמלים של טפסי הצאצאים שונות בצורתן מסמלים של טפסים רגילים וטופס האב לאחר שקבעת את ערך מאפיין 6ווח6זסא, כל שנשאר הוא להוסיף את הפקדיס הדרושיס לתוכנית. תוכל, כמובן לעצב את הטופס ואחר לשנות את מאפיין 6ווח16סוו. אין חשיבות לסדר הפעולות. בתרשים 17.7 ניתן לראות טופס צאצא טיפוסי. ות ו א: | תרשים 17.7: טפסי צאצא נראים בדיוק כמו טפסים רגילים תרשים 17.8: יישום 1סווז פשוט זה מציג טופס אב ושני טפסי צאצא. שים לב שטפסי הצאצאים הם עותקים זהים של אותו טופס פרק 17: יישומים בעלי ממשק מרובה מסמכים | 467 הפעלת התוכנית לאחר שסיימת לקבוע את טפסי האב והצאצא, תוכל להפעיל את התוכנית כדי לראות כיצד מתנהג טופס צאצא בתוך טופס אב. ראשית, כמו תמיד, עליך לשמור את עבודתך. אחר, לת על לחצן +50 או הקש 55 כדי להפעיל את התוכנית. כשהתוכנית פועלת, מבנה הטופס אמור להיות דומה לוה המוצג בתרשיס 17.8. כעת בצע את המשימות הבאות כדי להבין את צורת ההתנהגות של טפסי האב והצאצאיס: 1 מזער את טופס הצאצא ושים לב למיקוס הסמל שלו. 2 גרור את טופס הצאצא על פני המסך. הטופס לא יעבור את גבולות טופס האב. 3 הגדל את טופס הצאצא לגודלו המירבי. 4 מזער והגדל את טופס האב. בעת הפעלת התוכנית, ודאי שמת לב שטופס הצאצא הופיע מעצמו. הדבר נגרם, בדוגמה הפשוטה שיצרת, משוסם שטופס הצאצא (אשר נוצר ראשון עס יצירת הפרויקט) עוצב כברירת מחדל, בדומה לטופס הראשי של הפרויקט. אס אתה מעוניין לשנות את מצב ברירת המחדל ולהתחיל את הפרויקט עס טופס אב ריק, עליך לשנות את הגדרות 001666 976₪0ז5 בתיבת הדו-שיח ₪65ז6קסזק 66[סזק, כמתואר בתרשים 9. ניתן להגיע למאפייני הפרויקט על ידי בחירת האפשרות 65ז6כסיוק 60%[סזק מתפריט 666ן[סיזוש. 60%ן0ז - 631 דוו | חטשכ | )הפחסקוחס= | פווסוחס6 | מו | | :001600 קטסז3ז5 :ץד ל0פ[סזק [+ חפה קנסו] 133-ו | חב 6%פ[סזוק סו | כ|36] 6%פ[סזק :0 חס שחחב! שו קסופ אצ ₪אאחההההההההההההההם :חסוסקוז0650 ןסו סו = םחה -] חס 00/6 305 טפ שן שא 56חםם|.] שוטס - עזסוחש ה ההוב -] בן- ב זו שמ 2 ] 9% [ 6 | ₪8 | תרשים 17.9: בתיבת דו-שיח זו הינך מגדיר את הטופס ההתחלתי של הפרויקט, כמו גם מאפיינים נוספים 8 סדנת לימוד 6.0 8\ ריבוי מופעים של טופס ניתן להשתמש בטופס 1פ!א כדי לגרוס לתוכניות להיראות טוב יותר ולהקל את הטיפול בטפסים השונים. אולס, אין וו הסיבה העיקרית בגללה כדאי להשתמש ביישומיס מסוג זה. המאפיין החזק ביותר והכוח העיקרי של יישומי 1סוא היא היכולת ליצור ולטפל בריבוי מופעי הטופס בעת ובעונה אחת. לדוגמה, בעבודה עס מעבד התמלילים 6זס\ 050%6ז6וו, כל מסמך פתוח או חדש מהווה למעשה מופע נוסף מטופס בסיסי קבוע. למעשה, יישומי ₪1 רביס מכילים שני טפסיס בלבד: טופס אב וטופס נוסף המשמש כתבנית (866!סוח6ד) עבור כל טפסי הצאצא ביישוס. הערה: תוכל ליצור יותר מתבנית אחת עבור הטפסים הצאצאים ביישום שלך. לדוגמה, ל- 88516 |1508\ עצמה יש שתי תבניות בסיסיות של טפסי צאצא: טופס העיצוב וטופס הקוד. תוכל ליצור מספר בלתי מוגבל של תבניות, כל זאת במגבלות המערכת. יצירת יישוס 1סו\ מסוג זּה, מחייבת השקעה רבה יותר מזו שנדרשה במסגרת תוכנית הדוגמה. בתחילה עליך להגדיר טופס 1פוא בסיסי בסביבת העיצוב ולאחר מכן להשתמש במשתני אובייקטים כדי ליצור מופעיס של הטופס בומן פעולת התוכנית. כדי ליצור יישוס 1ס! המכיל מספר מופעים של טופס בודד, התחל פרויקט חדש והוסף לו טופס 1סוא, כמתואר בסעיף יצירת תוכנית 1ס!א פשוטה. לאחר מכן, קבע את טופס 1 כאובייקט ההתחלתי באמצעות תיבת הדו-שלת 65וזו6קסזק 66[סזס. הגדרת הטופס הבסיסי בדומה לסעיף הקודס ריבוי מופעים של הטופס, תהליך יצירת תבנית (6!306ד) הטופס והה לתהליך יצירת טופס רגיל. הוסף לטופס את כל הפקדיס הדרושיס עבור הממשק וכתוב קוד להפעלת הפקדים. בנוסף, עליך לקבוע את ערך המאפיין 6ווח16סוו של הטופס לערך 6גוזד. בעת הפעלת יישום 1סו!, תבחין כי כאשר טופס צאצא מופיע בפעם הראשונה, גודלו ומיקומו שוניס בהשוואה לאלה הזכורים לך מסביבת העיצוב (ראה תרשים 17.10). הסיבה לכך היא שמערכת ההפעלה פווספחו/\ מקצה, כברירת מחדל, גודל ומיקוס מסוימיס לכל טופס צאצא המוצג על המסך. אס הגודל ומיקוס ברירת המחדל אינס מקובלים עליך, תוכל לקבוע את מאפיין הגבול (ז80706) של החלון לגודל קבוע (5126 60או=) או לחילופין, לכתוב קוד בשגרת 1080 של טופס הצאצא כדי להציב את הטופס במיקוס ובגודל הרצויים לך. תוכל לבדוק את הערכיס המוגדריס במאפיינים 90%ו46 ו-ושו/\ של הטופס בסביבת העיצוב ולשלבס בקוד אותו תכתוב בשגרת 1080 של הטופס. שיטה דומה תוכל לנקוט גס בעת קביעת המיקוס הרצוי עבור הטופס: בדוק את הערכיס המוגדריס במאפיינים קסד ו-16% בסביבת העיצוב, ושלב אותס בשגרת 1080. הקוד בתוכנית 17.1 מראה כיצד לקבוע את גודלו של טופס הצאצא ולמרכז אותו בתוך טופס האב. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 469 יו | בו תרשים 17.10: יישומי ]םא קובעים את גודל ומיקום טפסי הצאצא שלהם בצורה אוטומטית הערה: הגדלת חלון הצאצא עד כדי חריגה מגבולות חלון האב, כתוצאה מפעולות המשתמש או מפקודות קוד, אומנם אינה מגדילה אוטומטית גם את חלון האב אך גורמת להופעת פסי גלילה המאפשרים צפייה בחלון הצאצא החורג (זאת, כמובן, בהנחה שערך מאפיין 5ז88!|ו0ז56 הוא ס6טזד, כפי שכבר למדת בסעיף הקודם, יצירת טופס אב). תוכנית 17.1: דאד.כ |ז16פו! שימוש בקוד כדי לקבוע את גודל ומיקום טופס הצאצא. ()080 1 וחזס 5 6פץווק 5 = %ח6.160] 0 = הססו/ש. 6 2 / 6.1600 - 00%ו563166. הוה ווסר) = ססד. 6 2 / (ה0ו//.16] - ה00ו\568|6. חוה וסור ) = 6 |. 6 50 0ח= תרשיס 17.11 מציג את תוצאות הפעלת הקוד. הערה: אינך יכול להשתמש במאפיין חסטופססק!\ז97ו5 כדי לקבוע את המיקום ההתחלתי של טופס צאצא בחלון 1סוא. למעשה, אינך יכול לשנות את הגדרות המאפיין עבור טופס צאצא מערך ברירת המחדל שלו |וחפו - 0. 0 סדנת לימוד 6.0 8\ )הסוב ו ₪ 6 /ח! 46 א. תרשים 17.11: תוכל לכתוב קוד אשר יבטל את גודל ומיקום ברירת המחדל של טופס צאצא יצירת טפסים תוך שימוש במשתני אובייקטים לאחר שיצרת את טופס הצאצא הבסיסי, הינך וקוק לדרך אשר בעזרתה תיצור מופע של הטופס בזמן פעולת התוכנית, ותציג אותו ביישוס. לשם כך יש צורך בכתיבת שתי שורות קוד. כהתחלה, תשתמש בפקודת חוכ כדי ליצור משתנה אובייקט (00[60 6 ) אשר יכיל מופע של הטופס. במסגרת הפקודה חזום, השתמש במילת המפתח שא כדי להורות לתוכנית 88516 |1508/ ליצור מופע חדש (66ח5%0ח1 שו6א) של הטופס, שכן אחרת תיצור הפקודה כינוי חדש לטופס הקיים. לאחר שיצרת את משתנה האובייקט, עליך להשתמש בשיטת שסח5 כדי להציג את הטופס. במקרה זה, במקוס להשתמש בשם הטופס, הגדר את שס המשתנה. שתי שורות הקוד הדרושות לכך הן: 1 תו צו6\] 5 וחזסת עס הזוס צסח5. רחזס-] 6 א] כדי לראות כיצד הקוד עובד, הצב את שורות הקוד בשגרת 0166 של טופס 1סוא והפעל את התוכנית. בכל פעס שתלח על טופס 1סוא, יוצג מופע חדש של טופס הצאצא. מילות המפתח 16 ו-וח'וס-]6/ו6% זה מכבר למדת שכל הטפסים הצאצאים זהים בצורתם ונוצרים על ידי שימוש באותן מילות מפתח, אס כך, כיצד תוכל לבודד טופס מסוים בקוד! בעיה גו מתחדדת כאשר מדובר בקוד כללי חיכול לפעול על כל אחד מהטפסים. כדי להתמודד עס הבעיה, בעת יצירת יישומי זס!א, תוכל להיעזר בצמד מילות המפתת: 6 ו-1ז6-0ע60. מילות מפתח אלו מאפשרות לך ליצור קוד כללי אשר יוכל לעבוד עס כל טופס צאצא שתיצור. 6 היא מילת מפתח בה ניתן להשתמש בכל טופס לשסם התייחסות לטופס עצמו, בדיוק כפי שהמילה א משמשת בשפה האנגלית לזיהוי הדובר מבלי לנקוב בשמו. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 471 בתוכנית 17.1 נתקלת בשימוש במילת המפתח = לצורך שינוי גודל ומיקוס טופס הצאצא בעת טעינתו. שימוש נכון במילת המפתח = ביחס לשם הטופס לאורך כל הקוד המתייחס לטופס הצאצא, יגרוס לקוד שיופעל על כל מופע פעיל בכל ומן נתון. מילת המפתת ז6-0ש60 היא למעשה מאפיין של טופס האב. השימוש בה דומה לשימוש במילת המפתח 6א. הזזסח6שו860 מתייחסת לכל טופס צאצא הפעיל בזמן נתון. שימוש נכון במילת המפתח חחזסח6עו46 לאורך כל הקוד המתייחס לטופס האב, יגרוס לכך שהקוד יופעל על המופע הפעיל בלבד ולא על מופעיס אחריסם. שורת הקוד הבאה מציגה דוגמה פשוטה לשימוש במאפיין וחזס60/6\ : "6ע36 ץ0ח6זזט6 15 וחזס? פוח ד" +חוזק. וההס- 60/6 +ח6זוהקזסוו כדי לבדוק את הקוד, הצב אותו בשגרת 016% של טופס האב. ודא שקייס יותר מטופס צאצא אחד בזיכרון. לחיצה על אזור ריק בטופס האב תגרוס להדפסת הטקסט בטופס הפעיל בומן הלחיצה. הערה: שים לב, כאן ובתוכנית 17.1, לשימוש בקידומת סז לשם טופס האב. על ידי שימוש במאפיין וזס6ש860, תוכל להתייחס לכל מאפיין, שיטה או אירוע המתרחשים בטופס הצאצא הפעיל בלא צורך בידיעת שס הטופס. אתחול מופע של טופס צאצא אס יש צורך בכתיבת קוד אשר יתבצע כאשר מופע של טופס צאצא נוצר, תוכל להציב את הקוד בשגרת 26ו|108ח1 של טופס הצאצא. שיגרה זו מתרחשת בכל פעס שנוצר מופע חדש מהטופס ולפני התרחשות אירוע 1080. לדוגמה, תוכל לקבוע את מאפיין ח68000 של טופס הצאצא בזמן שהוא נוצר. פרויקט הדוגמה 1165%!] מכיל בשגרת ₪8|26וח1 של טופס הצאצא, קוד אשר מגדיל ערך משתנה ציבורי כדי לדעת כמה טפסי צאצא נוצרו ולאחר מכן קובע את מאפיין חסו0ק63, של הטופס החדש, כך שיציג את ערך המשתנה. שימוש בתפריטים בפרק 6 שליטה נוספת למשתמש: תפריטים וסרגלי כלים, למדת כיצד ליצור תפריט לתוכנית. בנוסף, גילית שתוכל ליצור תפריט נפרד עבור כל טופס בתוכנית אס תרצה בכך. טפסי 1פ!וא יכולים גס הס להכיל תפריטים. תוכל ליצור תפריט עבור טופס 1פוו באותה דרך שיצרת תפריט עבור טופס רגיל, תוך שימוש בעורך התפריטים. תפריט השייך לטופס 1סוז הוא הדרך העיקרית לגישה לאפשרויות הקיימות ביישום זפוו. ראה: "יצירת שורת התפריטים", פרק 6. 2 סדנת לימוד 6.0 8\ ביישוס 1פ!ו\ טפסי צאצא יכוליס להכיל גס הס תפריטים. יצירת תפריטים בטפסי צאצא דומה ליצירת תפריטיס בטופס אב, ונעשית באמצעות עורך התפריטיס (טחסו! זסטו0ם). אולס, כאשר מופיע על המסך טופס צאצא המכיל תפריט, יופיע התפריט כחלק משורת התפריט של טופס האב ולא כחלק מטופס הצאצא. תופעה זו יוצרת בעייתיות מסוימת ביישומי 1סוא, הנובעת מכך שכאשר טופס הצאצא פעיל, התפריטיס שלו מחליפים למעשה את תפריטי טופס האב. כלומר, כאשר טופס צאצא עס תפריטיס נמצא במיקוד, לא ניתן לגשת לתפריטי טופס האב. תוכל להשתמש בשתי דרכיס לפתרון בעיות הנובעות מהחלפת התפריטים בין טופס הצאצא וטופס האב. הדרך הראשונה היא להעתיק את כל הפונקציות הנחוצות מטופס האב לכל אחד מהטפסים הצאצאים. לרוע המזל, גישה זו עלולה להוביל ליצירת תוכנית מסורבלת וקשה לניהול, בעיקר אס קיימיסם טפסי צאצא רביס המכילים תפריטים. דרך חלופית לפתרון הבעיה היא לכלול את כל תפריטי הטפסיס הצאצאיסם בתפריט האב. במצב ה תוכל לכתוב קוד בשגרות 600-0605 ו-1051-0605 של טופס הצאצא, כדי להציג את תפריטי האב אשר מיועדים לטופס הצאצא הנמצא במוקד, ולהסתיר את תפריטי הטפסים אשר אינס במיקוד. לדוגמה, כשאתה עובד על תוכנית עיבוד תמלילים, תרצה שתפריטי קוב\ (160ו=) ועזרה (כ|6) יהיו זמיניס במשך כל וזמן פעולת התוכנית, לעומתם, תפריטי עריכה 0ו0ם) ועיצוב (ח0ו65כ) צריכים להיות זמיניס רק בעת עבודה על מסמך. כדי להפוך את התפריטיסם עריכה ועיצוב לגלויים, תוכל לכתוב קוד כגון הקוד המוצג בהמשך בשגרת 6000005 של טופס הצאצא המתאים: סד = 0!6ן616./15 טחוח סד = 016ן8%.\/15 רחוס טחרח הקוד הבא המוצג בשגרת 1050-0005 של טופס הצאצא, הופך בחזרה את תפריטי עריכה ועיצוב למוסתרים: 6 = 6!סןפו/\.61% טחוח 6 = 151016/\. 81 רחזס= חר כדי לוודא שכל קוד תפריט בטופס האב פועל על טופס הצאצא המתאים, השתמש במאפיין חזזס6ע60\ של טופס האב כמתואר בסעיף הקודס. טיפול בטפסי צאצא אחד מיתרונות העבודה עם יישומי 1סו\ היא היכולת לטפל בטפסי צאצא בקלות. 6 |6טפו\ מציעה מספר כלים אשר מקליס את העבודה עס מספר טפסי צאצא הפתוחיס על המסך בעת ובעונה אחת. תוכל לצייד את המשתמש ביכולת לסדר את חלונות הצאצאים באופן אוטומטי. תוכל אפילו ליצור תפריט המכיל את רשימת הטפסים הפעילים ולאפשר למשתמש גישה לכל אחד מהם על ידי בחירת הטופס הרצוי מתוך התפריט. אפשרויות אלו שימושיות בעיקר כאשר המשתמש מבצע מעבר שוטף בין משימות או בין קבציס ביישוס. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 473 שימוש בסידור אוטומטי דרך אחת אשר בעזרתה המשתמש יכול לעבור בין קבציס פתוחיס היא על ידי הצגת כל טופס על המסך בסדר מסוים. בדרך זו, המשתמש יכול לגשת לכל טופס בלחיצת עכבר. הבסיס לכך היא שיטת 6פַחזזה של טופס 1סוז. שיטה זו מסדרת את כל הטפסים הצאצאיס של היישוס בסגנון מסויס. כל אחת מצורות העיצוב הללו גורמת לכך שלפחות חלק מכל טופס יהיה גלוי לעיני המשתמש. השימוש בשיטה זו נפוצ בתוכניות ]וא מבוססות פאוססחו\\. כדי להשתמש בפקודת שפָחְזזה, עליך לציין את שס טופס 1פ!!, השיטה עצמה וקבוע המייצג את צורת הסידור שברצונך לבצע על הטפסים. שורת הקוד הבאה מדגימה את השימוש בשיטה: 6 6חהוה. הוה וו0רח תוכל לסדר את החלונות בארבע צורות אפשריות בעזרת שיטת 6פחפזוה. כל אחת מהצורות מיוצגת על ידי קבוע. טבלה 17.1 מכילה סיכום של כל צורות הסידור. דוגמה לצורות הסידור ניתן לראות בתרשימיס 17.12 עד 17.15. טבלה 17.1: צורות סידור לטפסי צאצא 6 | כל טפסי הצאצא הפתוחים מסודרים כך שכל טופס מונח מעל הטופס הקודם עם סטייה מסוימת |68ז/\6!ודפע | גובה טפסי הצאצא הפתוחים זהה לגובה המירבי של טופס האב והם מוצגים אחד לצד השני. אם קיימים טפסי צאצא רבים, הם יוכלו לתפוס מספר שורות כאשר הם מסודרים |%ח20וזסו6!ודפע | רוחב טפסי הצאצא הפתוחים זהה לרוחב טופס האב והם מונחים אחד על גבי השני. אם יש טפסי צאצא רבים, הם עלולים לתפוס מספר עמודות 5 ההזה סש סמלים ממוזערים של טפסי צאצא מסודרים בתחתית טופס האב לרוב תרצה להציב את אפשרויות הסידור בתפריט שסשחוצש בטופס 1ס!ז. כל אפשרות סידור שתרצה לתמוך בה תופיע כפריט נפרד בתפריט. 4 סדנת לימוד 6.0 8\ ] תרשים 17.12: טפסי הצאצא מסודרים אחד מעל לשני טיפול ברשימת חלונות דרך אחרת ליצור גישה קלה לטפסי צאצא ביישוס, היא להחזיק רשימת קבציס פתותחים. מלאכה וו קלה למדי. תוכל ליצור את רשימת החלונות בעת יצירת התפריטים עבור טופס האב. עליך לקבוע באיזה תפריט לשב את הרשימה ולאחר מכן להגדיר את ערך המאפיין 156!אוסחו/\ בעורך התפריטים, כ-6טזד. פעולה זו מתוארת בתרשים 17.16. יו ]| 3 הסוזהחזס!ח! זסטהו46/ ו | תרשים 17.13: טפסי צאצא אשר סודרו בצורה אנכית פרק 17: יישומים בעלי ממשק מרובה מסמכים | 475 \תסזה |( א ב 3 גווס ח! טחוס ה ] תרשים 17.14: טפסי צאצא אשר סודרו בצורה אופקית )חסזב !40 א ב |= |ם|5. 1 1 ם]|]|א |ם|5. ם'||< |םן5 ₪ תרשים 17.15: כאשר טפסי צאצא ממוזערים, הם מוצגים כסמלים המסודרים בתחתית טופס האב ₪0 הערה: תוכל גם לשנות את הגדרות מאפיין 15!אוססחוע\ מתוך קוד התוכנית. 6 סדנת לימוד 6.0 8\ <> זסזו = טח146 | ₪ אא₪, | ו | 36 זו בוו תרשים 17.16: חלונות הצאצאים פתוחים בעת הוספת טפסי צאצא ליישוס, רשימת החלונות מתעדכנת באופן אוטומטי ומציגה את הטפסיס החדשיס שהתווספו. שס הפריט המשויך לטופס הוא הטקסט שניתן לטופס שיצרת. לשס הטופס הפעיל הנוכחי מצורף הסימן (*). תרשיםס 17.17 מציג רשימת חלונות עבור יישום זפ!וו. תרשים 17.17: רשימת החלונות מאפשרת למשתמש לבחור את הטופס עמו יעבוד פרק 17: יישומים בעלי ממשק מרובה מסמכים | 477 תוכנית דוגמה - יישום 1ס!! לניהול קשרים כרגיל, הדרך הטובה ביותר להדגים את טכניקת יצירת יישומי 1 היא לבנות יישוס שימושי. התוכנית מכילה מספר מופעים של טופס מקור ולכן היא הופכת ליישום זפוו. אס חלק מעבודתך כולל קשר עס לקוחות קבועיס, אתה בוודאי משתמש בתוכנה כלשהי לניהול הקשרים. סוג וה של תוכניות מאפשר לך לשמור מידע על כל אחד מהלקוחות כגון שמס, כתובתם, מספר הטלפון שלהם, תאריך אחרון בו נוצר קשר וכיוצא בּה. בחלק מתוכניות אלו קיימת מגבלה של אפשרות לעבוד בכל פעס עם פרטי לקוח אחד בלבד. מגבלה זו עלולה ליצור אי נוחות, למשל במצב בו אתה עובד על הזמנה עבור לקוח מסוים, ובאמצע העבודה מתקשר לקוח אחר כדי לשותחח אתך על ההזמנה שלו. במקרה מעין זה, עליך לסגור את חלון המידע עבור הלקוח שעבדת עליו ולפתוח את חלון המידע עבור הלקוח השני. תאר לך שתוכל לפתוח את חלון המידע עבור הלקוח השני ללא צורך בסגירת החלון הראשון. יכולת מעין זו היתה מקלה עליך את העבודה עד מאוד הלא כן? ובכן, תוכל לעשות זאת בעזרת יישום זסו!. סעיף וה ילמדך כיצד לבנות תוכנית 1ס!וא מעין וו. התוכנית תציג רק את שס וכתובת הלקוח ותשמש מעין אב-טיפוס לתוכניות מורכבות יותר שתוכל לפתח בעצמך. כדי ליצור תוכנית מלאה לניהול קשרים, עליך להוסיף קוד נוסף לטיפול במסד הנתוניס. התוכנית משתמשת במסד הנתונים 60655( 11670506 ובמנגנון 36 לקבלת המידע. ראה: "שימוש ב-6פ8ז", פרק 26. יצירת טופס זסוא השתמש בידע שרכשת בסעיפים קודמיס והוסף טופס 1כןא לתוכנית. אחר, קבע את מאפיין ח6ז0!וח6אוסח5ססטה של הטופס לערך 8!56=. כן עליך לשנות את מאפייני שוח ו-ח63000 של הטופס כך שיכילו ערכים שוניס מערכי ברירת המחדל. בתוס קביעת מאפייני הטופס, עליך ליצור תפריט אשר יציג את המידע הקשור ללקוח בטופס צאצא מתאים. פריטי התפריט שעליך להוסיף מוצגים בתרשים 17.18. ראה: "יצירת שורת תפריטים", פרק 6. פריט אחד מתוך התפריט אשר ראוי לציון מיוחד הוא חחזסת שו₪6 070806. המשתמש יכול לבחור באפשרות זו כדי לקבוע האם להציג את המידע בחלון הצאצא הנוכחי או ליצור חלון חדש בכל פעס. מאפיין 6080660 של הפריט נקבע בהתאס להחלטת המשתמש. לאחר שיצרת את התפריט, עליך כמובן, להוסיף קוד אשר יפעיל את האפשרויות בתפריט. תוכנית 17.2 מכילה את הקוד עבור הפריטים המוצגיס בתרשים 17.18. 8 סדנת לימוד 6.0 8\ זו = טח6)ו | 6 חסום = | |68 6ו=טוחוח וו [+ (6חסגו)] 5 ן (%חז [+ שחסא - ₪ 600030605 0 | :10א6חס6כופ -] סופ ש] 8ב ן 8 -] | שק | אשת |+ |+ |+ = ו החזוס=] 60% 6-76806יייי תרשים 17.18: תוכנית הדוגמה לניהול הקשרים מכילה את פריטי התפריט המוצגים תוכנית 17.2:חז1. הווח - שימוש בקוד בתפריט היישום לניהול קשרים. ()אסו|6 )ואם!ו סט5 סזפּעוזוק 6 הסוח \ 50 0חם ()1].080 החזס-1כ1! 5 סזפּעווק ]אפ = ב5+30/טססחו/\. 6 50 0ח= (00061ח1 45 |66ח0)08הסוח(\ וחזס=1כו! סטש 6פעווק 6 50 0חם ()69ו01 6806)וחסרח סג5 סזבּעוזוק ח200|68 5 60666566 הזוס הר +ס\] = 6060656% = 0066660. 07086 סרח = 668060 50 0חם (011660 צוס\\רתסרח סנ5 סזבּעוזוק חס ד וחזס-0768%6 ]1 רת עס 5 רת6ורח הזו \וסח5. רחס וח + 0חם 0 50 0ח= פרק 17: יישומים בעלי ממשק מרובה מסמכים | 479 ()א6ו6 5680רתסרח ס)ש5 סזְהּעוזוק 008 צוסח5. ה566וחיו חס ד וחזס-0768%6 ]1 שרח שעס\] 5 התסווחו חחזוס צוסח5. רחס וח + 0חם 5% 50 0חם יצירת טופס צאצא ללקוח בשלב הבא עליך ליצור את טופס הצאצא בו בו יוצג המידע אודות הלקוח. כדי ליצור את הטופס, הוסף טופס חדש לפרויקט (או השתמש בטופס ההתחלתי) וקבע את מאפיין 0!ומ10סוא שלו לערך פטזד. בנוסף, יהיה עליך לשנות את ערכי המאפיינים שוח ו-ח00ק68 (הגדר את שס הטופס זסטחס6!וחז) כדי להתאימו לקוד פריטי התפריט). לאחר קביעת מאפייני הטופס, הוסף את הפקדים הנחוצים להצגת המידע. הטופס המלא מוצג בתרשים 17.19. [< ]= | סח זספחו46) אב 7 שוחב ופ > 198808 1 תרשים 17.19: המידע אודות הלקוח מוצג בטופס צאצא יצירת טופס חיפוש כאשר אתה מעוניין לאתר מידע הנוגע ללקוח מסויס מתוך מאגר הלקוחות, עליך להשתמש בטופס חיפוש המאפשר לך להקליד שס שיש לחפשו. קרא לטופס החיפוש בשס ה1156876. על הטופס להיות פשוט ביותר, לכלול תווית, תיבת טקסט לתוכה יוקלד שס הלקות, ושני לחצני פקודה בעזרתם ניתן לאשר או לבטל את פעולת החיפוש. הקוד עבור הטופס פשוט גס הוא. הוא ישתמש בשיטת 8%זו0חו= של מערך הרשומות הרלוונטי כדי לאתר את המופע הראשון של השס המתאיס לפקודת החיפוש. טופס החיפוש המלא מוצג בתרשים 17.20, והקוד עבור הטופס מוצג בתוכנית 17.3. הערה: כדי שהתוכנית תעבוד, הוסף הפניה (66ח6ז₪6/0) ל-0גכ (ראה פרק 11). בחר בתפריט ‏ 66[סזק, 66ח₪61676 וסמן ץזבּזטו! 00166 3.51 סג אספסזסווז. כמו כן עליך לבדוק שמסד הנתונים המצוין בתוכנית נמצא במקום המתאים. 0 סדנת לימוד 6.0 8\ הערה: מערך רשומות (566070565) הוא סוג מיוחד של אובייקט כאשר משמש כקשר בין תוכנית של 88516 |1508/\ למידע הנמצא בבסיס נתונים. תלמד על מערכי רשומות בפרק 26 שימוש באובייקטי גישה לנתונים (0). ל 6 תרשים 17.20: שכלל את טופס החיפוש על ידי הוספת אפשרות לחיפוש על פי שם פרטי תוכנית 17.3: 04.ח0ז1568! - השיטה 56זוח0חו= לאיתור הלקוח המבוקש. ()א0ו|6 |66ח7008ח6 5 סזבּעוזוק 6 הסוח( \ טפ 0ח= ()א6ו1 ה056876ח6 ס)5 סזבּעווק 58 5 50ח576 וחוס = 570050 "" ,8 57005 .8 " = 358006 |" 56ו-0חו=.005%656% 6 הסוח \ 5 0חם לב התוכנית הטפסים שיצרת עד כה מהוויס את ממשק התוכנית, אולס לב התוכנית הוא קבוצת שגרות האחראית על הצגת המידע הלכה למעשה. כדי ליצור אותן, עליך להוסיף מודול (6!ט0סו) לתוכנית. תוכל לעשות זאת על ידי בחירת ₪066 מתפריט 66%[סזום או על ידי בחירת 8060/86 מתוך התפריט הנפתח לאחר לחיצה על הלחצן 001666 206. ראה: "הגדרת טווח ההכרה של שגרות ופונקציות", פרק 11. לאחר הוספת מודול לפרויקט, עליך להגדיר מספר משתניס ציבוריים וליצור את השיגרה אשר תגדיר את התוכנית. משתנים ציבורייס יוצריס עבור התוכנית נגישות לאובייקט מסד הנתוניסם. בתוס קביעת המשתנים, עליך ליצור שגרת חו8א סט5 לשס אתחול המידע במסד הנתוניס והצגת טופס האב. בתוכנית 17.4 ניתן לראות את ההצהרה על המשתנה הציבורי ואת השיגרה חו8! פט5. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 481 תוכנית 17.4: 6.0%!וח16סו - שימוש בשיגרה חו8ּו\ מט5 כדי לאתחל את מסד הנתונים ולטעון את הטופס הראשי 25 00050566 ,2860856 25 605000 שווטוק ח800!68 25 וחזס-0768%6 6ווטווק ()חו 5 ("ס סח 86006 /\: 2" )38356 הסקס. (665)0 אס שפח כ = 605000 56% 560 06 ,"זר 056500 60500.0 = 6050560 56% צ\סח5. חו3 ]ור 6זד = וזס-66806 טט5 0חם לאחר יצירת שגרת חוג! 505, עליך לשנות את אפשרויות הפרויקט ולקבוע את טט5 חזפוז כאובייקט ההתחלתי של התוכנית. בתוכנית 17.5 תמצא את שתי השגרות 016870056 ו-5ט0/וסח5 אשר מציגות מידע אודות לקוח קיים או מעלות עבורך את טופס המידע לקליטת לקוח חדש. שגרות אלו נקראות על ידי פריטי התפריט המתאימים בטופס 1ס)\א. ראוי לציין כי בשגרות אלו נעשה שימוש במאפיין חזס60/6 של טופס האב כדי לקבוע באיזה מבין טפסי הצאצא יתקבלו הנתוניס שיישלחו. תוכנית 17.5: 6.04!וח16פוז - שימוש במאפיין חזס"6ע60ה כדי לשלוח את פלט השיגרה למקום הנכון. (6168700500 50 סוופווק זז 5 1 וחוס 5 סד = 1 וס "" = )6 ך. (1)- סרח 616 רת ס- 6 עו הוה ןורח 1 אסא טט5 0חם (00500/ש0ח5 סטפ סווטגוק רחוס 60/6 . ח !סרח רו \ "" ,8 35%\8006 |!605056% = זא6 ד (0 )וס רח6ו)א6. "" ,8 6ר50\3ו- !6150560 = זא6 ד (1 )וס רחשו )א6. "" ,8 1 6151560!007655 = זא ד (2 )0 רח6ו)א6. "" .8 /60517560!010 = זא ד (3 )וס רח6ו)א6. "" ,8 00500501150806) = 66 ד. (4 )טרס ו0. "" .8 0ו60504560!2 = 6% ד (5 )וס רח6ו)א6. חזו\\ 0ח= 5 0ח= 2 סדנת לימוד 6.0 8\ הרצת התוכנית כאשר תריץ את התוכנית, תוכל ליצור חלונות חדשים עבור כל לקוח שתוסיף, או לשנות את מצב האפשרות וחזסת שוסא 076866 בתפריט כדי להציג את המידע על הלקות הבא באותו החלון. כפי שכבר צוין, תוכנית זו מיועדת להדגיס את הרעיון באופן כללי ואתה מוזמן לצרף אליה מרכיבים משלך. התוכנית מוצגת בתרשים 17.21. הסה בו 0 ששאא | 0ם] = 5ח0)8ם1 הו חוזס/ח! ז הו אב. 80] ומאל | האתהק] = שחמ!/ 18 0 0 0 | כ א]- 966 א בי תרשים 17.21: תוכל להציג מידע אודות מספר לקוחות בעת ובעונה אחת שיפור היישום פרק זה מדגיס מספר טכניקות בהן תוכל להשתמש כדי ליצור יישומי 1םא. כפי שאתה רואה, טופס 1סןוא יכול להוות כלי רב עוצמה בעזרתו ניתן ליצור תוכניות. אולס, יש מספר נקודות שעליך להביא בחשבון כדי שתוכניותיך תוכלנה לתפקד בצורה אופטימלית. הקפדה על הנקודות המובאות להלן תסייע לך לבנות תוכניות בעלות רמת ביצועים גבוהה ומינימוס בעיות למשתמש: % > כל חלון באצא המוצג על המסך צורך זיכרון. כאשר אתה טוען חלונות רביס מסוג זה, היישוס צורך כמות זיכרון רבה ולכן עליך ליצור חלונות צאצאיס המכיליס כמות מינימלית של קוד ופקדים, או לתילופין, להגביל את כמות החלונות הפתוחים. > אם תפריטי טופס הצאצא וטופס האב מכילים את אותן האפשרויות, כתוב את הקוד המיועד להן בשגרות טופס האב. בצורה זו, שגרות 616% של תפריטי הצאצאיס יקראו לשגרת 016% של טופס האב לצורך שימוש בקוד משותף. > שנה את מצב שגרות 61666 של טפסי האב והצאצאים מ-6זפצוזק ל-6ו|טטק ואת כדי לאפשר שימוש בשגרות משותפות לחלון האב וחלונות הצאצאיס. + הימנע משימוש במאפיין 6וח8\ בקריאה לטופס הצאצא. במקוס ואת, השתמש בקבוע ₪6 (או הימנע מזיהוי טופס). כמו כן השתמש בפונקציה 60/60 בשגרות טופס האב. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 483 > הצב את כל הפקדים המוסתרים (|ס0חס6 ףָסופום חסוחוח60, פקדי 115% 6אַהח1 וכיובא בזה) בטופס האב. דבר זה מאפשר לכל טפסיס הצאצא להשתמש בפקדים אלה ללא צריכת זיכרון מיותר. שמירה על כללים אלה תביא ליצירת קוד פשוט יותר, ותשפר את ביצועי היישוס. יצירת מסגרת בסיסית ליישום זפוא הקוד המתואר בסעיף זה מתוכנן כך שיספק שלד בסיסי לכל יישום 1סוא שתיצור בעתיד. ניתן לשנות את הקוד הנמצא בשלד זה כדי להתאים אותו לדרישות הספציפיות של כל יישוס. לאחר מכן תוכל להשתמש בפרויקט השלד כמקור ליישומיס אחריס. היישוס המלא מוצג בתרשיס 17.22. []ם) -] ב ] 0 1 הת ופא ו / אא בי תרשים 17.22: ניתן לפשט את העבודה על יישומי זסוז על ידי יצירת יישום מקור לדוגמה יצירת תבנית טופס אב זפוא טופס אב הוא למעשה מחסן של חלונות הצאצאיס ולפיכך הוא אחראי על יצירת חלונות חדשים כאלה. לפיכך, לרוב מטיליס על טופס האב גם את המשימה להשגיח על מספר טפסי הצאצא שנוצרו על ידו. בנוסף, טופס אב מכיל בדרך כלל אלמנטים משותפים השייכיס לממשק המשתמש כמו סרגל כלים, שורת המצב וכדומה. תוכנית 17.6 מציגה דרך בה משגיחים על מספר החלונות. שגרות 68060ז0אוססחו/\ ו-65070/60שססחו/\ | נקראות ‏ על ידי טפסי הצאצא בשגרות 1080 הזוס ו-80סוח() וחזס] שלהס בהתאם. משתנה %חטס6אצוסטחו/\סווח6 הוא משתנה ציבורי (סוופט) המאפשר לטפסי הצאצא לדעת כמה טפסים מסוגם מצוייס בציכרון. 4 סדנת לימוד 6.0 8\ תוכנית 17.6: ק8/י קקהזסוז טופס אב המכיל קוד משותף לכל טפסי הצאצא. >>> 6 >< >< 26 >< 26 >< 2 >< א < 6< =< < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< 6 6< < 26 < 26 >< 26 >< 2 6< < 26 < 26 < 26 >< 26 >< 6< 6< < 26 < 26 < 26 >< א 126 +חסזהק 11 8 אוס חס 6066065 08516 6וח50 8065 50חהסוחסכ - וחסיז.)ח6זהּקזסאן ' ח0פסו|סכ3 101 ח3 חן 0686 6!טסח5 וחזסז ' >>> 6 6 >< 26 >< 26 >< 2 >< 6 >< 6< < 6< 26 < 2 >< 2 >< 6 6< < 26 >< 26 >< 2 < א 6< 6 26 < 26 >< 26 >< 2 6< < 26 < 26 >< 2 >< 26 >< < 6< < א< < 26 >< 26 < א 126 +סווקאם חסטסס לחז 5ב +הטסחו/ס!והחורח 66העויוק >%>>;<א;< אאא אכ 6 6 >< >< >< 6 6< א< 26 << 2 < < < < ל א< אכ אכ אכ כ 6< אכ 6< 6< אכ 2 < < << 2 < < 2 < א< אכ אכ אכ כ כ אכ אכ אכ 6< א< 6< א< 26 2 < 26 2 א< 12% 0 חס שעח 5שטסוסחועט 6!וח6 ץפח עוסת 5ח סק ' %<א;<><>< >> >< >< >< א >< >< < 2 >< >< 26 < >< 6< 2 6 >< 6< 6 >< >< 2 6< >< 6< 6 >< >< 26 6 >< >< 2 6< >< 6< 6 >< >< 26 6< >< 6< 2 6< >< 26 6< >< 6< 2 >< >< א< 2 >< >< 12 1 5 (%הטס6עשססחו/\סווח) 66% עאהסססזק סוופגוק +חטס60חו ]וח תורח = +הט00עשסחחו/\שוות6 ץוסקסזק 50 ;אאא אכ 66 <> 6 6 6< א< 26 < < < < < < < ל א< אכ אכ אכ < אכ אכ 6< 6< אכ < < א< 2 א< 2 < 2 < א א אכ אכ אכ כ כ כ אכ א< 6< א< 26 א< 2 2 א< א< 2 א< 12% ז ו 60 טחוש 6+ +ה6רת6 סח 60 6768660 15 עוססחוצ 3 הסחעט 60ו|68 ' %<א;<><><6< א >< >< >< 2 6 >< 6< 2 6 >< 2 6< >< 6< 2 >< >< < 6 >< >< 2 6< >< 6< 6 >< >< 26 6 >< >< 2 6< >< א< 2 >< >< 26 < >< 6< 2 6< >< 26 6< >< 6< 2 >< >< א< א >< א< 12% ()68%00ז)/שססחו/\\ 5₪0 6ווטגוק 1 + +הטס0חו/\0!וח6שחורח = %תטסחו/\ווחזחווו ד 5חהסא 3 סכנ 50 0חם ;אאא אכ 66 <> >< 6 6< א< 26 < < 2 < < < < א< א< א< אכ כ 6< 6< אכ 6< 6< אכ < < א< << 2 < 2 < < א א< אכ אכ אכ כ אכ אכ א< 6< אכ 26 א< 26 2 א< א< 2 א 12% 60 ששסוסחושש 6+ %ח060766 60 6768760 15 שוססחוצו 3 הסחעט 60ו|68 ' %<א;<><>< )א 6< >< >< 2 6< >< 6< 2 >< >< 26 6 >< 6< 2 >< >< 6< 2 6< >< 2 6< >< 6< 26 >< >< 26 6 >< < 2 >< >< < 2 >< >< 26 < >< 6< 2 6< >< 26 6< >< 6< 2 >< >< א< 2 >< א< 12 (600ץ6500כ/וססחו/\\ 50 6ווטגוק 1 - +הטסשחו/\0!וח6שחורח = %הטסחו/\סווחזחוו! תוחור 5 הס 00 50 0ח= הערה: שגרת 000806585 הינה בגדר המלצה ואינה מיושמת בדוגמה. שיס לב כי התוכנית לעיל מכילה קריאה ל-פחסֶַטַ068ז08קש. שיגרה זו מפעילה ומנטרלת את הלחצניס בסרגל הכלים. אס קיים טופס צאצא, לחצני סרגל הכלים מופעלים. כאשר טופס הצאצא האחרון נמחק מהזיכרון, שגרת 60ץ650כצוססחו/\ מפחיתה 1 מערך המשתנה +חטסשחו/\0!וחססחווחז עד שערכו מגיע ל-0 וגורמת במצב וה לחסימת הלחצניס שעל סרגל הכלים. הקטע החשוב ביותר בתוכנית 8 דא 1ס!וא הוא שגרת 616% של תפריט ₪116. קוד וה אחראי ליצירת חלונות, פתיחת קבצים ויציאה מחיישוס. בגלל העובדה שכל הפעולות בתפריט ₪16 קיימות בטופס האב ובטפסי הצאצא, עליך להפוך שיגרה זו לציבורית שווטטפ, ראה תוכנית 17.7). פרק 17: יישומים בעלי ממשק מרובה מסמכים | 485 תוכנית 17.7: קפ/. קקהזסוז טיפול בשגרת 016% של התפריט. %<א;<><>< >> >< >< >< 2 6< >< 6< 6 6< >< 26 6< >< 6< 2 >< >< < 2 >< >< 2 6< >< 6< 6 >< >< 26 6 >< < 2 6< >< א< 2 >< >< 26 6 >< 6< 2 6< >< א< 6< >< >< 2 >< >< א< 2 >< >< 12 .0 6 פששססחועט סח הסחצט הזזס+ [כוי] 6+ זסז זס|וסחח והסרח 6 ' ,5 6או! לטו[ חסרח 3 שעפּח ||וא פששססחוצו 0!וח6 6 סרח06 פורש חך ' .6/6 015 ||63 ח68 ח6זם!וח6 06 50 6ו|טוס פוח% שא |וואו סא\ 50 ' >>> > >< >< 26 >< 26 >< 2 >< 6 >< 6< =< < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< 6 6< < 26 < 26 >< 26 < 2 6< < 26 < 26 < 2 >< 26 >< < 6< < 2 < 26 < 26 < 6 126 (10660061 45 א1006)א616 05ח6106וו= טחרח פט6 סוופוק 106% 6856 ז50|66 ><> >> > > 6 >< 26 >< 2 >< א 6< < 26 < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 26 >< א < < 26 < 26 < 26 < 2 >< < כ < 26 < 26 < 26 < א 6< < א< < א< < אכ 1 1 6356 )רת 46 5 עוסצוח הזוס סד = 0!6ו5ו/\. צוס\וח ><>< >< 6 >< >< 2 >< 2 >< 2 6< א 6< 6 26 < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 26 >< 6 6< < 26 < 26 < 26 >< 2 >< 6< 26 < 26 < 26 < 26 >< א 6< < א< < א< < אכ 1 60 חספחץ ,86ח6! 8 זס? זס5 6ח+ זקוחסזק -- הסקס וו ' %חוו זפ 606 זו (6!ו חש חו) צוססחוצו ס!וח6 6 ססחו סו ' .01800 6 חן !68066 655זק ' 66 > 6 >< >< 2 6< >< 6< < 2 >< >< < < א א< >< < < 2 6< >< < < < א< 6< >< < 2 א< >< < < < א 6< < < < א< 6< >< < < א< א< 6< < < 2 א< א< < < א 26 אכ 1 2 6856 6% 0506 זסזיום חס 8 ו ו ס!ו 6010 = 805=. "*.* | (*.*) פסון= ||ה | 6ס. | 0א0.*) פסוו= אשד" = זססוו=. חסקס\וסח5. וו\\ 0ח= 6חה חש 6018 6!ן- 6 הסחד |06ה60!0.60168 <> זום זז ><6< 626266 6 6 6 א< < < < 2 < א< א א< אכ אכ כ אכ כ 6< 6< א< 6< א< א< < << < < < < א< אכ אכ אכ אכ כ 6< א< אכ 6< א< < א< < 2 2 א< 2 א< א א< א< אכ אכ 1 בחור ץחה 00 + חס 50 ,5606800 66 15 3 אססחז ' ><>< >< 6 >< >< 2 >< 2 >< 2 6< 2 6< 6 6< < 26 < 26 >< 2 >< 6 6< < 26 < 26 >< 26 >< 6 6< < 26 < 26 < 26 >< 2 >< 6< 26 < 26 < 26 < 2 >< א 6< < 26 < א< < אכ 1 3 6856 >%>> >> > > > >< 26 6 6 6< 2 26 2 2 2 2 2 2 2 א< 2 26 26 2 26 26 26 2 6< 26 6< 6< 6< 26 %< 6< 6< 6< >< 6< >< 6< >< 6< >< 6< 6< 6< 6< 6< 6< 6< 6< 6< א< א< א< אכ 1 הסוז68ו!קכה 6ח+ סוהחורחזם ד -- אאם שו ' ><>< >< > >< >< 2 >< 26 >< 2 >< 6 6< 6 26 < 26 < 26 >< 2 >< 6 6< < 26 < 26 >< 26 >< 6 < < 26 < 26 >< 2 >< 2 >< < כ < 26 < 26 < 2 >< א 6< < א< < 2 < אכ 1 4 6896 6 הסוח סחם 50 0ח= כאשר נבחרת אפשרות ש6א בתפריט 1!6= (1 = א06ח1), השורה או6\] 45 צוסאחז1 חחוס חח יוצרת מופע חדש של טופס הצאצא. אולס הפעולה אינה יוצרת את הטופס החדש בעצמה. הטופס נוצר ברגע שהקוד פונה לאחד ממאפייניו או שגרותיו. לכן, השורה 6טזד = 16,186 היא זו היוצרת את הקוד בסופו של דבר. לאחר שהטופס נוצר, למאפיין 6\פופוצ שלו נקבע ערך 6טזד והטופס מוצג על המסך. 6 סדנת לימוד 6.0 8\ טיפ: טפסים הנוצרים על ידי פקודת ש6א אינם מוגדרים על ידי ברירת המחדל כך שיוצגו ולפיכך עליך לזכור להציגם על ידי קביעת ערך מאפיין פופו שלהם לערך פטזד. קוד האפשרות ח006 ,1!6= (2 = א06ח1) בתוכנית 17.8 מציג למעשה תיבת דו-שיח כדי שהמשתמש יספק שס קוב\. אס המשתמש לא לוח על |6ח68, הרי שהקובצ נפתתח בעזרת שגרת 6ווחחסקס0, כמו שמוצג בתוכנית 17.8. הפריט האחרון בפקודה הנבחרת הוא 4 א06ח1, אשר מייצג את האפשרות זוא ,₪16 בתפריט. קוד זה יהיה קל לכתיבה מפני שהדרך הנכונה לסגור יישוס 1פו\ היא להסיר את טופס 1סו מהזיכרון (בעזרת שגרת ספסוחש). כמו שצוין קודס לכן, הקוד בשגרת 16ו=ח6ק0 אחראי על פתיחת קוב טקסט וטעינתו לתוך תיבת טקסט בטופס הצאצא. קוד ה נכתב בצורתו הבסיסית בלבד והוא אינו מכיל טיפול בשגיאות כגון בדיקה אס גודל הקוב\ עולה על 44% תחת 95 פוססחו/ו. אולס, הוא עדיין מספק דוגמה בסיסית כיצד לטעון קובצ אל תוך תיבת טקסט, אשר תספיק לצורך הדגמה צו. מ אזהרה: הימנע משימוש בפקודת ַח5 כדי לסגור את היישום שלך. פקודת 0ח= מפסיקה את פעולת היישום באופן מיידי ולא מאפשרת לשגרת 080!ח( חזס] להתבצע. הדרך הטובה ביותר לסיים את פעולת יישום 1ס\ היא להסיר (1034חט) את הטופס. תוכנית 17.8: ק8/י קקהזפויז קוד משותף. <> >> > >< >< 6 א >< >< >< < 26 כ >< < < א 6< >< < < ל א< 6< < 6 2 א< >< < < 2 26 >< < < < 26 6< < < < א 6< < < א א א< 6< < < א< אכ 6< אכ 1 8 ]וס חו זט 6 6וטוסח5 5אוססחוצש 6!וח6 6 הסרה 5760 0006 ' 0 6 |ווא\ 6006 6!ןחהסכ 0 פוחד .וחזוסז +הסזהכ כו ₪6 וס 6|טוססוח ' .וחזס1 +ה6זהק 101 של חו ! ק66א |ווו סש 50 ,הסזוסווח6 6רף +ס || ץט ' %א<)><א<>< 6 6 << 6 6< כ >< 26 < 2 >< א >< < < < אכ < 26 >< 2 < א 6< < 26 < 26 >< 2 < 2 >< 6< 2 < 26 < 2 >< 26 >< 6 < 6< 26 < 26 < א< 6< א 126 (8ח5₪71 5 6רת3\סון--6)50!ו ח06 טפ סוופגוק 500 25 065ח06ה600וו-507 הזוס הז 5 ותטצסוו-טחו וחוס ><>< >> א >> 26 >< 26 >< 2 >< 6 6< < 26 < 26 >< 26 >< א 6< 6 26 < 26 < 26 < 2 < < אכ < 26 < 26 >< 2 >< 6 6< < 2 < 26 < 2 >< א 6< < 6< < א< < אכ 1 6חּח 6 766 8 06% ' %>><א<>< >> 6 >< >< 26 6 >< >< 2 >< >< 26 6< >< >< 26 6 >< כ א >< >< 2 6< >< 6< 2 >< >< 6< 6< >< >< 2 6< >< 6< 2 >< >< 26 6 >< א< 2 >< >< 26 26 >< >< 2 16 66 = וחהטא'סוו- טח %<><><>< 66 6 >< >< 26 6< >< >< 2 >< >< 6< 6< >< >< 26 6 >< כ 2 >< >< 2 6< >< 6< 2 >< >< < 6 >< >< 2 6< >< 6< 2 >< < 26 6< >< א< 2 >< >< 26 26 >< >< 26 6 1 6 6+ חססס ' ><> >> >< א >< >< < < < < א< אכ אכ אכ 6< אכ א< 6< >< א< 6< א< א א< < < < < 2 א< א< אכ אכ אכ כ כ כ אכ אכ 6< א< 26 א< 26 א< א< א< 2 א< א< א א< א< אכ אכ אכ 1 פרק 17: יישומים בעלי ממשק מרובה מסמכים | 487 רחט\זשוו-6חו 45 +טוקח1 זס-] 6וה )שו ט5 הססס %>><א<א: > > 26 >< >< >< 6 >< >< 6< 6 >< 6< 2 >< >< א< 6 >< >< 2 6< 6< 6< 2 6< >< 2 6< >< 6< 6 >< >< 26 6 >< < 2 6< >< 26 6< >< 6< 2 < >< א< 1 |ס שח 60 062808 6+ ססחון 6 6 01 60065 שר 6ווק ' 00 5 ₪6 66 זו 131 ||וא\ 6006 פוחד .החזזסז 6!וח6 שר ' 6 שוחו 0!טסח5 טסץ 50 ,00% 6רף חו +₪ 80 סחַזהָ| ' .6 חאצוס זוטסץ חן סחוווסחהח זסזוס |החסטווססה ' %>;<><א< > >> א 6 >< >< < >< >< 6< 26 < >< < 6 >< >< 2 6< >< 6< 2 >< >< 26 6< >< כ 2 6< >< 6< 6 >< 6< 2 6< >< >< 2 >< >< 26 6< >< 6< 2 < >< 26 16 הזס- 60/6 הטו\ (רחגוצ6!ו- סח , (התטאס!ו-חו)- 0 8)1טסח1 = 6 ד.0808. ><> > > > >< < < < < < < אל אכ אכ אכ < 6< 6< 6< 6< א< < < << < < < < א< א א< אכ אכ כ אכ א< אכ 6< א< א< 26 א< א< 2 א< א< א< א< 12% 6ח ה ח6!ו 6חז 0 וחזס? 0!וח6 6+ 01 הסוזק68 06 66% ' 66% >< >< 6 >< 26 >< 6 6< 6 6< < 26 >< 26 >< 2 < < 2 < 26 < 26 >< א 6< 6 6< < כ >< 26 < 2 >< 6 6< < א< < 26 < 26 < 6< 26 6 126 507636 = הססק68. וו\\ 0ח= ><6< 62666 6 6< 6< א< < < 2 < 2 א< א א אכ אכ כ אכ כ 6< 6< אכ 6< א< א< < א< 2 2 < < א א< אכ אכ אכ אכ כ אכ א< אכ 6< א< < < < 2 2 א< א< א< א א< א< אכ אכ 1 רחס הזוצ\ ?חס סז טסץ 85 חסס5 85 החסקס טסץ 1165 6056 5ץְפעשןח ' <> >< > >< >< >< >< 2 >< >< 6< 2 >< >< 6< 6< >< 6< 6 >< >< 26 2 >< >< 2 6< >< 26 2 >< >< 2 < >< < 6 >< >< < 6 >< 6< 2 >< >< 26 א >< אכ 26 6< >< 26 6< >< >< 26 6 1 החטאס!ו-טחו 61056 50 0ח= בוודאי שמת לב כי פעולתה של שגרת 1168=ח008 מסתכמת בטעינת הקוב אל תוך תיבת הטקסט בחלון הפעיל על ידי שימוש במאפיין זזס860/6. ניתן להשתמש בשיטה זו מכיון שהתפריט הפעיל תמיד יהיה התפריט השייך לטופס הפעיל. תוכל להניח שכל פעולה אשר תתבצע בשגרות התפריט תתיחס לטופס הפעיל מפני שהדרך היחידה לפתוח קוב היא דרך התפריט. טופס הצאצא כעת, לאחר שהבנת מהו תחוס האחריות של טופס האב, הבה ונראה מה תפקידו של טופס הצאצא בסדר הפעולות. כפי שצוין קודס לכן, טפסי צאצא אחראיס על קריאה לשגרות 68060ז0צוססחו/\ (-65070/60 שוסטחו/\\ של טופס האב. תוכנית 17.9 מדגימה כיצד נעשית פעולה גו מתוך שגרות 080] חזס" ו-080!|ח₪ חזסת. בנוסף, טופס הצאצא קובע את הכותרת ההתחלתית שלו לפי המאפיין +חטס6שוספחוש\0ווח6 של טופס האב. למרות ששיטה זו טובה לדוגמה שהובאה כאן, תוכל לכתוב קוד אשר יהפוך את כותרת הטופס למורכבת יותר. מה יקרה לדעתך במצב בו כאשר פתוחים על המסך שלושה חלונות, תסגור את החלון השני ותיצור חלון נוסף! כיצד ניתן להימנע מהבעיה! 8 סדנת לימוד 6.0 8\ תוכנית 17.9: ק8/. קקה1כו\! שימוש בטופס הצאצא כדי לכתוב קוד מסוים עבור כל צאצא. >>> 6 >< >< 26 >< 26 >< 2 >< 6 < < כ < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< 6 6< < 26 < 26 >< 26 < 2 >< < 26 < 26 < 2 >< 26 >< < 6< < 26 < 26 < 26 >< 6 126 60 1 8 סח חס 65וחח66+ 8516 5006 78005ז5הסוח6 - חח כ וזה6זפו ' .06/6 6!טסח5 צוסחושש ' >>> 6 >< >< 26 >< 26 >< 2 >< 2 >< 6< < 6< 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< א 6< 6 26 < 26 >< 26 < 2 6< < 26 < 26 < 26 >< 2 >< < 6< < 26 < 26 >< 26 < א 126 +סווקאם חסטסס >>> > >< >< 26 >< 26 >< 2 >< 2 < < < < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< 6 6< 6 26 < 26 >< 26 < 2 >< < 26 < 26 < 2 >< 26 >< 6 6< < 26 < 26 < 26 < א 126 הסוס6חט 68060)/\סחו/\ 6 ||63 ה !טוסח5 6 ,6768160 15 הזס+ צוסח 3 הסח/צ\' 5 חו 60% צשוססחוצ\ 66 65ח6רח6ז6חו הסוחצו) ההזסז +הסזהכ 1כו!] 66 הז ' רס חס א ה00015ח0150 סז הסוק68 65 56% 3!50 0!טוסח5 16 .(6856 ' .5וסחוצ ס!וחס ' >><><>< > 6 >< >< 26 >< 26 >< 2 >< 2 < 6< < < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< א 6< < 26 < 26 >< 26 < 2 6< < 26 < 26 < 2 >< 26 >< < 6< < 26 < 26 < 26 < א 126 ()1.080 חחזזס- 50 סזפּעוזוק 0 ססחו/\. הזה קזפ ו ><6< 62666 6 6 >< א< < < < 2 2 < א אכ אכ אכ כ כ כ 6< 6< אכ 6< א< א< < << < < < א א< אכ אכ אכ אכ כ 6< א< 6< 6< א< 2 < < א< 2 א< < א< א א< א< אכ אכ 1 ה !1819 8 85ח זו +טכ ,5אזסצו פוחד ' ><>< >< 6 >< >< 26 >< 2 >< 2 >< < 6< < 26 < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 26 >< א >< < 26 < 26 >< 26 >< 2 >< < 26 < 26 < 26 < 2 < א 6< < א< < א< < אכ 1 +חטס)ששססחו\וס!וח). הוה קז 8 " - " 8 הסו0ק68 = חסוק68 50 0חם ;אאא אכ 66 6 >< >< 6 6< א< 26 >< < < < < < < < א< אכ אכ אכ < 6< אכ 6< 6< אכ 6< < < << 2 < < < 2 אל אכ אכ אכ אכ כ אכ אכ 6< 6< אכ 26 א< 26 א< א< << א< 12% .החזס1 6+ ]0 68זהּ %ח616 6חל 1!5 5עְב/ש!3 0288 6זט5 שאה ' %<א;<><>< >< א >< >< >< < 6 >< < 2 >< >< 2 6< >< 6< 2 >< >< 6< 2 >< >< 2 6< >< 6< 6 >< >< 26 6 >< < 2 >< >< א< 2 >< >< 2 6 >< 6< 2 6< >< 26 6< >< 6< 2 6< >< א< 2 >< א< 12 ()₪65126 רחזס=] סמ5 סזְּעוזוק 56367600 ,ר00ו/\568|6 ,0 ,0 6עסו!. )סאד טפ 0ח= ;אאא אכ 66 >> >< 6 6< א< א< << 2 < ל < < < א< אכ אכ אכ < 6< אכ 6< אכ א< < < א< 2 א< 2 < < < < א א< אכ אכ אכ כ כ אכ אכ א< אכ 26 א< א< 2 < << 2 12% 0 סחוס 5 צאוססחועט 5וח6 +68 צוסחא 6ח6זבכ 11 6 6% | ' >>> 6 6 >< 26 >< 26 >< 2 >< א >< 6< =< < 26 < 2 >< 2 >< 6 6< < 26 < 26 >< 2 >< 6 6< < 26 < 26 >< 26 >< 2 6< < 26 < 26 < 2 >< 26 >< 6 6< < אכ < 26 < 26 < א 126 (1060061 5 |66ח08)הסוח(\ החזס- סט5 סספּעווק 0 אוססחו\.+חסזהקזסוו 50 0חם פרט קטן נוסף שבוודאי הבחנת בו בקוד וה הוא שגרת ₪6526 וחזס]. שיגרה זו מוודאת שפקדי תיבת הטקסט מכסים תמיד את השטח המוקצה לפרטי הלקוח בטופס. וכור ששיגרה זו פועלת על פקד מכל סוג שהוא. תפיסה נוספת אשר הוצגה קודס לכן היא העובדה שעל טפסי הצאצא להשתמש במידת האפשר, בשמות שגרות של תפריט האב. תוכנית 17.10 מכילה את הקוד המטפל בכל התפריטיס של תוכנית |חח.כ וזח6זסוא. פרק 17: יישומים בעלי ממשק מרובה מסמכים | 489 תוכנית 17.10: ק8/. קקה1סו! טיפול בתפריט היישום. %<א<>;א > >< >< >< 6 >< >< 2 >< 2 >< א< >< 6< < >< < >< 6 >< 2 >< 2 >< א< >< 2 6< 6< < < < >< 6< >< 2 >< 2 >< א< >< 2 >< < 6< 6< 2 >< 2 >< 2 >< 2 >< א< >< 2 6< אכ 1 ,חס 6 +הסזהכ 1 66 סש 06068 5 הטרח 6ון= סוס 6 ססחוס ' 5 !ו חר 65 הכ 06 החוו|68 טם 6006 66הסווכט0 סוסטבּ 0!טסח5 סעצ' .השע 6106 ' >< >< >< 6 6 >< >< 2 א< >< < < 6< >< < א 6< >< < 2 >< < < 26 < < < א< >< < 2 א< >< < א< א< 6< < א< 6< >< < 2 < < < א 6< < א א< >< < 2 א< >< < א אכ 6< 6< א< 26 כ 1 (10500067 45 א1006)א16 5רח6160ון= חר 5 ססבּעווק 106% 1166 05ח100סוו= וחרח.+ח6ז3 קז 50 0חם 6<><>; 6 6 >< >< < א< >< < 2 6< >< < א 6< >< < 2 >< < < 26 6< < < א< >< < 2 א< >< < א א< 6< 6 א< 6< < < 2 < >< 6< א 6< < < א< >< < < אכ >< < א א< < 6< א< א< אכ 1 0טסח5 6006 66 50 ,5זס+ 0!ו₪ 66 סף סטףוחט 15 טחסרח פהסטקס שחד ' .006 2/5 563806 זס סז 0!וח6 שו חן 6 ' 6<><>; 6 אק >< >< < א< >< < 2 6< >< < א 6< >< < 2 >< < < 26 < < < א< 6< < 2 א< >< < < 6< 6< < א< 6< < < << >< < א 6< < ל א< >< < < אכ >< < א אכ < 6< א< 26 1 (ז10%606 5 א06ח66)1ו! 51665חסקסטחרח פטפ סווסנוק <> > אא 2626 6 6 26 6< < א< < 26 אל < כ 26 < ל כ 2% < אל אכ כ 2 אל אכ < 26 ל א< < א< אל א< א< 2 א< אל אכ 2% < ל אכ אכ 26 א א< 2 26 א< א< 2 א< א< א 1 .05 זס? 5600 %'מסכ ד >>> >< > 6 >< >< >< א 6< >< < א< >< < < א< >< < א א< >< < 2 26 < < א< 6< < < א< < < < א< >< < א< אכ >< < א א< < < 2 6< < 6< א< 6< < א א< < < א אכ 1 6% ₪056 זסזזם חס 6<><א > >< >< >< 6 >< 2 >< 2 >< 26 < < < < 6 >< 2 >< 2 >< א< >< א< >< 6< < < 6 >< 26 >< 2 >< א< >< 6< >< < 6< 6< < >< א >< א< >< 2 >< א< 6< 6< < >< >< 6< אכ 1 0 660 66 5רח00ו טוחסרח |!3 06ח51) ססופווס זסוס6 6 צוסחס ' >>> >< > 6 >< >< >< א 6< >< < א< >< >< < אכ >< >< א אכ >< < < 26 < < א< 6< >< < א< < < < א< >< < 2 6< >< < א א< < < 2 א< < < א< א< < א< א< < < א אכ 1 זסו60ש0ח60/0.5.%ח6זו3קזכו >>> 666 626 6 כ 26 6< < א< < 6< אל < < 2 < ל < 2% 2 אל אכ כ 2 אל אכ < 26 ל א< 2 א< אל א < 2 אל ל כ 2% 2 אל אכ כ א< אל אכ כ 26 א< א< 2 26 א< א 1 6% הסח ,680661 56|66000 56 6 + ' 6<><א > >< >< >< 6 >< 2 >< 2 >< 26 < < < >< 6 >< 2 >< 2 >< א< >< א< >< 6< < < 6 >< 2 >< 2 >< א< >< 26 >< < 6< 6< < >< א >< א< >< 2 >< א< < 6< < >< 6< 6< אכ 1 50 +א= הסח ך |066ח60168 = זזם +1 >>> 26262666 6 כ 26 6< < א< < 26 אל < אכ 2 < ל כ 2 < אל אכ 2 2 אל אכ < 6< ל < 2 א< אל אל א< 2 אל ל אכ 2% א< אל אכ 2 א< אל א< כ א< א< א< 2 א אק א 1 0 6 חס ס6הזוסס 6ט|ה/ סז חס 08560 זסוס6 6 56% ספושוסת6 ' 6<><א > >< >< >< 6 >< 2 >< 2 >< 26 < < < =< 6 >< 2 >< 2 >< א< >< א< < 6< < < 6 >< 2 >< 2 >< א< >< 6< < < 6< 6< < >< 6 >< א< >< 2 >< א< 6< א< < >< 6< 6< אכ 1 106% 6856 50|666 ...-זס|88660' 1 6856 זסוס60!0.6.+ח6יזהק1כ1\ = זסו60א886. %הכ+אד זסו600זס-]' 2 6856 זסוס60!0.6.%ח6יוה ₪11 = זס|660זסת. %הכ6אד 6חם 50 0חם %<א<>;<א > > >< >< 6 >< א >< 2 >< 2 >< < >< 6< < >< < < 6 >< 2 >< א< >< א< >< 2 >< 6< < < < >< 6< >< 2 >< 2 >< א< >< אכ >< < 6< 6< 2 >< 6< >< 2 >< 2 >< א< 6< 2 6< אכ 1 6 ח68 טסץ ,ץוהסקסז טחסוח צוסוסחושט טסץ 01 65א6סחו זטסץ 56% טסץ זז' 5 טחסרח צוסוסחועט ער 56 866 60 |687660 85צ\ 1 .6006 506 )ו6פוטוסץ ' .0 06ח8זו 6+ זס1 65טן8/ 0|6ו55סכ 606 0+ %ח8|6עוטס6 6זסע 665וסחו ' %<א<>;<א > אק >< >< 6 >< 6 >< 2 >< א< >< א< >< 6< < >< < >< 6 >< 2 >< 2 >< א< >< 2 < 6< < < < >< 6< >< 2 >< 2 >< א< >< אכ >< < 6< 6< 2 >< א< >< 2 >< 2 >< א< >< 26 6< אכ 1 (06061ח1 5/ א06ח6>)1ו1 5רח106/וססחו/\\וחרח טט5 ססבּעווק א06ח1 06ח8זזה %חסז3קזסו טט5 0חם 0 סדנת לימוד 6.0 8\ התפריט הראשון הוא תפריט 1!6=. תפריט זה והה לתפריט הראשון בטופס האב ולכן תוכל פשוט לקרוא לשגרת 6166 6106005!וחטחוח בטופס האב כדי לבצע את הפעולות הרגילות בתפריט. התפריט השני הוא תפריט פחסטקס אשר מופיע בטופס הצאצא בלבד. לתפריט זה תוכל לכתוב קוד בשגרות טופס הצאצא. הפוך את השגרות הללו לציבוריות (סו|פטק) כדי לאפשר לפקדי סרגל הכלים הנמצאים בטופס האב גישה אליהן. בנוסף, השתמש בפקד 08ס|8סחסו 60 הנמצא בטופס האב כדי להציג את תיבת הדו-שיח יוסוסס. טיפ: אם אחד או יותר מפריטי התפריט בטופס הצאצא דורש מעל ל-12 שורות קוד (בלי להתחשב בהצהרות חופ, הערות ושורות רווחים), עליך להעביר את הקוד למודול (8!ט00א) משותף או לטופס האב. דבר זה מונע מהקוד לצרוך יותר מדי זיכרון פנוי בכל פעם שנוסף טופס חדש. לבסוף, קיים תפריט צוססחו/\ אשר מתייחס לטפסי הצאצא בלבד (למרות שמתפקידו של טופס האב לטפל בתפריט זה). על ידי תכנון מערך פקדי תפריטיס בצורה נבונה, תוכל לכתוב קוד לתפריט זה אשר יכיל שורת קוד בודדת. הערה: הקוד המלא נמצא בשני קבצים: 6.0%!וח16ס!ו! |-4ט.)חסזהק1סו\, | בתיקיה ח6!6%0א15וא. טיפ: תוכל להוריד פרויקט נוסף מאתר ח8!!וח86ו אשר עושה שימוש מלא בכל השיטות לתכנות בסביבת 1ס!א שנלמדו בפרק זה. זהו עורך טקסט 1סוא הנקרא "ז0זו60 +%6% זסוא". יישום זה דומה לפנקס הרשימות של פווססחו/), למעט העובדה שהוא מאפשר פתיחה של מספר מסמכים בו-זמנית. תוכל לפתוח את הפרויקט מתוך 6 |אט8ו/\. הקוד מכיל הערות המסבירות את אופן פעולתו. מכאן... פרק וה היווה מבוא ליצירת יישומי 1סוא בעזרת 88516 |808ו/. תוכל לקבל מידע נוסף אודות חלק מהנושאים אשר נדונו בפרק זּה, בכל אחד מן הפרקים הבאים: > כדי לרענו את ידיעותיך בנושא יצירת טפסים, עייו בפרק 3, אבני היסוד של 6 | 5ו/. + כדי להעמיק את היכרותך בנושא יצירת תוכניות המכילות מסדי נתונים (כמו התוכנית שהוצגה בפרק זה) עיין בפרק 26, שימוש באובייקטי גישה לנתונים (סגס). פרק 17: יישומים בעלי ממשק מרובה מסמכים | 491 8 תכנון ממשק נכון פרק 18: תכנון ממשק נכון | 493 בפרק וזה, תלמד על חלק התוכנית שאותו כולס רואיס: ממשק המשתמש. ישנס מפתחיס המתייחסיס לממשק המשתמש כאל חלק שולי, מאמיניס כי כתיבת הקוד היא האתגר האמיתי ביצירת התוכנית ומקדישיס לו את רוב המאמצ. האמת היא, שיש לשים לב לא פחות לגופניס שבהס משתמשים, צורת התצוגה ומהירות העבודה של התוכנית. המשתמשים אינס יכוליס לראות את הקוד, ומצד שני ממשק המשתמש (לטוב או לרע) נמצא תמיד מול עיניהם. מערכת ההפעלה מציעה אפשרויות רבות לבניית ממשק אשר יעזור למשתמש לבצע את עבודתו בקלות רבה יותר. פרק אה מתאר שורת הנחיות ודוגמאות שיעזרו לך להפיק את המירב מאפשרויות אלו. תכנון טפסים יעילים טפסים מהוויס למעשה אבני בניין בתוך ממשק המשתמש. למרות שדרך עיצוב הטופס בסביבת 8856 |1508/\ חינה פשוטה, לא קל לעצב ממשק המתוכנן היטב. תכנון טוב של טופס איננו מתבטא בהוספה אקראית של פקדים ושגרות אירוע. כדי ליצור טופס מעוצב היטב, עליך להבין את מהות הטופס, מה השימושים שלו, מתי ישתמשו בו והקשר שלו לשאר חלקי התוכנית. בנוסף, תוכל להכיל כמה טפסיסם פתוחיס ביישוס שלך כשכל אחד מהם מוצג בזמן הנכון. ישנס משתמשים הרגילים להשתמש ביכולת ריבוי המשימות הקיימת במערכת ההפעלה בזמן שאחרים מעדיפיםס להשתמש ביישוס אחד כל פעם. זכור נקודה או כאשר אתה מעצב את ממשק המשתמש (60)866שח1 7ז50ש). עליך להשתמש בגמישות המוצעת למפתח על ידי מערכת ההפעלה כדי שכל משתמש, בכל רמת כישורים, יוכל להשתמש ביישוס בצורה יעילה. שמירה על טפסים מסודרים ויפים ככל שתוסיף פקדים לטופס, כך חשוב יותר לשמור שהם יהיו מסודרים. הבט בטופס המוצג בתרשים 18.1. טופס זה נראה כאילו הפקדיס הוצבו בטופס בצורה לא מאורגנת. אין להס תוויות, הס לא מסודרים וגודלס שונה וה מזה. גישה עדיפה לסידור טופס מוצגת בתרשים 18.2. שים לב לכך שנוספו מסגרות, שורות ותוויות לפקדים המסודרים בטופס. שתי הדוגמאות מציגות יישומים אשר יכוליםס לעבוד בצורה טובה, אולס נוח יותר לעבוד עס הטופס השני בגלל הצורה החיצונית שלו. 6 |אפו\ מספקת כמה פקדים מצוינים שיוכלו לעזור לך ליצור טופס מאורגן. אחד מהפקדיס האלה הוא פקד 0ו1305₪, הנראה בתרשים 18.3, אשר בעזרתו ניתן לשנות תכונות פקדים כך שרק כמה מהם יוצגו בו זמנית. בצורה זו, תוכל להסתיר אפשרויות מתקדמות מעיני המשתמש הרגיל ולהשאיר אותן זמינות במידת הצורך. הערה: הפקד 780060 דומה לפקד קו18050. ההבדל העיקרי ביניהם הוא שפקד סוד יכול להכיל פקדים אחרים. ראה: "פקד סושפסגּד", פרק 12. 4 סדנת לימוד 6.0 8\ |< |ם]- | ]חנ ז50!! 89 66 .₪ | וטופ ווחזש] 550 6 [ ו 0]) 6066 ה הזוס +-- ] ו | סופ 5 שח 684 -] - .| הסווקח5 תרשים 18.1: טופס מבולגן עלול למנוע מהמשתמש לאתר את | 6% המידע הדרוש |< |םן= | חנ ז50!] וש 6]ה8ז:) ₪ הווה חחזסת! 36 ₪ ] 6 הסט קוזס0 5 - 56 [ח311] 016 חס :5ע )טסה חב ו0סוס עס 5 [ | א [ 355 וחזווהס) 8 קשח 686 - תרשים 18.2: מסגרות ופקדי תוויות עוזרים לסדר את הטופס בצורה טובה יותר 6ם | 5וסופ5ווחזס"] שהַברזב ו [<]םן = 5 וו :4חו] א 10 פחסוום )0‏ שישו 8וםם או | חב | בו | חסו!הסוס | 8 שוחב ו 0 [= | ו | 50865 פו! | שוסתפואם תרשים 18.3: השתמש בפקד > הו 00% [=:0:,5, ₪) פסצוום זבה ובס | = סופד כדי לשמור על הטופס | 6 וס טגופ סטט\סת|. ] בגודל סביר פרק 18: תכנון ממשק נכון | 495 כדי להימנע מלהציף את הטופס ביותר מדי פקדים, עליך לתכנן אותו בהתאסם למטרתו בתוכנית. קח לדוגמה את הטופס המוצג בתרשיס 18.3. ניתן לכלול את כל הפקדיס בטופס בהגדרה "יאפשרויות תוכנית'י, אולס נוח יותר כאשר כל קטגוריה בהגדרה אפשרויות נמצא במקטע אחר של פקד 0ו8305₪ד. אס תגיע למסקנה שעליך להשתמש בטופס נפרד, ודא שאתה מציב עליו פקדיס בצורה הגיונית. בנוסף, הקפד לקבוע את מאפייני הטופס המדובר כך שהוא יתנהג בהתאם למה שהוא מיועד לו בתוכנית. לדוגמה, אין צורך במתן אפשרות לשנות גודל טופס מודאלי, או להציגו בשורת המשימות של פווסטחו\\. ראה: "מבט חוזר על מאפייני הטופס", פרק 3. שים לב לטפסי קליטת נתונים טפסי קליטת נתוניס הינם טפסים מסוג מיוחד. הם אמורים לאפשר למשתמשים לעבוד בקצב שלהם, לא בקצב שהמפתח קבע. המפתח לתכנות נכון בטפסים אלה הוא היגיוו פשוט: אס על המשתמש להצין 10000 רשומות לבסיס הנתונים, הדבר האחרון שהוא ירצה לעשות זה להשיב על שאלת כן/לא מיותרת עבור כל רשומה... הסעיף הקודס מטפל בהפרדה והסתרה של פקדים מסוימים. אולסם, טופס קליטת נתוניס אמור לנצל את השימוש בשטח הטופס עד למקסימוס מפני שהסתרה והצגה של פקדיס גורמת להאטת התהליך. אחת מהמטרות העיקריות בתכנון טופס קליטת נתוניס היא גורס המהירות. כדי לגרוס לתהליך מהיר יותר של קליטת נתוניסם, עבוד לפי ההנחיות הבאות : > ככלל, הוסף מקשי קיצור. לעולם אל תדרוש שימוש בעכבר (כלל וה טוב עבור כל הטפסיס בתוכנית, לא רק לטפסי קליטת נתונים). שמור על מבנה הטופס כך שיתאים לסדר הפעולות שהמשתמש מבצע. במילים אחרות, אל תכריח את המשתמש לקפוץ קפיצות מיותרות בין חלק אחד לשני כדי להזין מידע רציף. + אל תדרוש מהמשתמש לבצע פעולות מיותרות. במיליס אחרות, אס שדות 2 עד 10 דורשיס ערך מספרי רק בתנאי ששדה 1 מכיל ערך שכזה, אין צורך לאלצ את המשתמש לעבור בין כל השדות. מצד שני, אל תגרוס לטפסיס שאתה מעצב להתנהג בצורה עצמאית מדי. אס הטופס יתנהג בצורה שונה עבור כל שילוב אפשרי של שדות, אתה עלול להאט בכך את פעולת המשתמש. ** השתמש ברמזים שקל לראות אבל שלא יהוו מכשול כדי להגיב על פעולות המשתמש. הצורה שבה עורך הקוד של 88516 |8ט8ו\ מתקן את האות הראשונה של קבועיס ומשתניס מהווה דוגמה טובה לכך. + הצב, במידת האפשר, פונקציות הוספה ועריכה בטופס משותף כך שהמשתמש לא יחויב ללמוד שיטות שונות כדי להגיע לאותו מידע. 6 סדנת לימוד 6.0 8\ דוגמה טובה לטופס קליטת נתוניס מוצגת בתרשיס 18.4. שיס לב לכך שכאשר מוזניס נתוניס שגוייס, השדה שבו הוזן המידע מודגש ומוצג הסבר בשורת המצב. |< ]ם]- | 8 וו4 = .₪ \אם הר | זחו חס בוחזסחו| .סו / וו | | מספזסין [ 5 וח הוה 6 1.86 ו ן 1 9 בי [- 6 םוק אב 4 וט ד .חס ₪318 שחו >) קשכסב. !שו שחס הקפום 7 :זסזז= / תרשים 18.4: הנה דוגמה לטופס קליטת נתונים טוב המאפשר עבודה קלה ונוחה השתמש בפקד הנכון כדי לבצע את המשימה 6 |8ט8ו/\ מספקת כמה פקדים גמישים הניתנים להצבה בטופס. עם ואת, וזכור שישנס פקדים העובדים טוב יותר מפקדים אחריס במצבים מסוימים. עליך להשתמש במטרה שלשמה קיים הטופס כקו מנחה בבחירת הפקדים המתאימים. לדוגמה, ניתן להשתמש בפקד א15880! ובפקד א6000080% כדי לבחור אפשרות מתוך רשימת אפשרויות. ההבדל ביניהס הוא בכך שפקד א0080%ו607 מאפשר לחסוך בשטח הטופס על ידי הסתרת רשימת האפשרויות עד לרגע שבו המשתמש זקוק לה, כמתואר בתרשים 18.5. ב חן זםחו-] 6 חנו65] .₪ 6 [5 681 2) 01686 חסו68ו = בי 1100516 , 056 פוטב זוסחפת חססחוו/\ ,רפס ₪ חב /" 1 והזש 3 ,6616" )חוז= סו 6זו-פופטוסם 3 ז הו וס] 503108 תרשים 18.5: כמות השטח הפנוי בטופס עלולה להשפיע על החלטתך להציב פקדים מסוג מסוים פרק 18: תכנון ממשק נכון | 497 בתרשים 18.5, ניתן להשתמש בפקדי תיבות רשימות (א980ו1) באותה מידה, אולם שימוש בתיבות מסוג 80% 60000 מתאים יותר מפני שבכך נחסך שטח מיותר של הטופס תוך מילוי המשימה במלואה. ראה: "פקד אספסטוס6", פרק 4. פקדים של ספקים חיצוניים פקדיס של ספקים חיצונייס שימושייס ביותר, אולס אין להשתמש בהס אלא אס הדבר נחו>. שימוש בפקד פנימי של 8856 |508ו/ לעומת שימוש בפקד שהגיע ממקור חיצוני מציע את היתרונות הבאיסם : > רוב הסיכוייס הס שהפקד ייתמך על ידי גרסאות עתידיות של 88516 |1508/\. + הפצת הפקד למשתמשים נעשית בצורה קלה יותר. > פקדים פנימיים רבים, כגון |ס%ח60 חסוחוח0ס6 פצוססחו//, מספקים למשתמש ממשק שהוא כבר רגיל לעבוד איתו. ריבוי טפסים במידה וממשק המשתמש מכיל כמה טפסים, יש להחליט החלטה חשובה בקשר לשימוש בממשק בעל טופס *חיד (671866לח1 %חסוחט6סכ 6ְוַפַָחו5 - 501) או בממשק מרובה טפסים (061866ח1 65חסוחטססכ 6וקטוטוא - זסוא). יישומים בעלי ממשק זסוו, המתואריס בפרק 17, יישומים בעלי ממשק מרובה מסמכבים, מטפלים בנושא ריבוי הטפסים על ידי הכלת כל טפסי היישוס בתוך טופס אב. ראה: "מבוא ליישומי זסוא", פרק 17. טפסים ביישומי 501 מופיעים כחלונות עצמאייס לגמרי. בשני סוגי היישומים, 1סוו ו-501, הקשר של המשתמש עס הטפסים גורס להפעלת פונקציות רבות בתוכנית, על ידי התרחשות אירועי פקדיס וטפסים. אס קיימיס מספר טפסים, עליך לארגן את קוד התוכנית שידאג לכך שהמשתמש לא יוכל להפריע למהלך התקין של פעולת התוכנית. לדוגמה, יש לדאוג לכך שלא יוצג טופס המכיל מידע שלא מיועד עדיין להצגה. כדוגמה לבעיה אפשרית בשימוש בטכניקת ריבוי טפסים, הבט בשני הטפסיס המוצגיס בתרשיס 18.6. 8 סדנת לימוד 6.0 8\ |< |פ)=\ [ וז 50 ור 010508 - ןסו מ ו שוסטהוצצ 804-105 סכ חבס פטס חנו הפפ )החזפת הססזק א 38 ₪65 | ₪ ?2 םי ₪ | ₪ וו < | = > | ₪ ₪ ₪ | ₪ שו | מ י 5 + ]| = = 3" | ₪ ו | || % 5|4% ₪5 | = % ₪ ₪ | סה 519106 ססעסוקתו = א 605 8ב 0 :סו פסזים וסוום פד 6 חב חח 1 00| אמ וז וק *) שחו ו ₪ ו ה | ,חס - 11524 ב ,וזו - 21145 ו .דה 0 תרשים 18.6: טפסים שהקוד מתייחס אליהם כטפסים עצמאיים בזמן שקיים ביניהם קשר, עלולים ליצור בעיות לא צפויות בדוגמה המוצגת בתרשיס 18.6, משתמשיס בטופס חןא!!וחז1 כדי לאחזר מידע מתוך בסיס הנתוניסם. אס המשתמש אינו יודע את מספר הלקוח, ניתן ללחו על לחצן 6ח= הנמצא ליד השדה כדי להציג את הטופס השני, 66ץ10קוח= חב 6חו=. טופס זה מוצג כאשר הוא מכיל ערך 10 קייס ומחוּיר את הערך הרצוי לטופס הראשי. במבט ראשון, קל להבין את הקוד המבצע את ההעברה בין הטפסים. תפקיד לחצן החיפוש בטופס הראשון הוא בסך הכל להציג את הטופס השני (טופס החיפוש): ()א6ו61 ה056870ח6 500 צ\סח5. ההות סט 0ח= לאחר שבוצעה פונקציית החיפוש, דואג הטופס השני להציב את הערך הסופי בתיבת הטקסט שנמצאת בטופס הראשון. לאחר מכן הטופס מוחק את עצמו מהנזיכרון: ()6166 6008 50 5568050 = 12 חוה ו וח 6 ספסוח\ 50 0חם למרות העובדה שהקוד המוצג כאן יעשה את העבודה נאמנה, קיימות בו מספר בעיות עיצוב בסיסיות. קודס כל, הקוד מתייחס לטופס ה6ז568ז1 כאל טופס עצמאי לגמרי. המשתמש יוכל לחזור לטופס חו3ּ\\ז בלי לסגור את טופס ה6ז568וחז), בין אס בכוונה ובין אס לא, ולגרוס בכך לטופס יתוס להישאר פתוח. אס טופס ה6ז568וח17 ינסה לגשת פרק 18: תכנון ממשק נכון | 499 לטופס חו3ּ!!וחז1 אחרי שהטופס השני נמחק מהזיכרון, יגרוס הדבר לשגיאת מערכת. הבעיה השנייה בצורת ארגון השגרות הוא בכך שהקוד בנוי בצורה קשיחה המיועדת לשני טפסים מסוימים, ולכן יהיה קשה לעשות שימוש בטופס ה6ז568וח1 בחלקיס אחריס של היישוס. תוכל לפתור את שתי הבעיות על ידי הצגת טופס 1568760 בצורה מודאלית (₪0081ו). טפסיס מודאליים, כפי שזכור לך, שומרים על מיקוד היישום עד לרגע שבו הס מוסתריסם. במיליס אחרות, לא תוכל לעבור מטופס מודאלי לטופס אחר לפני שהטופס המודאלי נסגר. ראה: "מבט חוזר על מאפייני הטופס", פרק 3. הצגת טופס 177568760 בצורה מודאלית מונעת מהמשתמש מלעבור בחזרה לטופס הראשי ללא סגירת הטופס הנוכחי קודסם לכן. שיטה זו גם עוצרת את הקוד הפועל בטפסיס אחריס בזמן שהטופס מוצג. תוכל לנצל יכולת גו לטובתך. ראה את פונקציית החיפוש המחזירה את הערך המבוקש לשיגרה שקראה לה ולא לטופס מסוים : 500 45 ()6ט!0\/3ו|506%\/9 הסססחט= סוס צוסח5. ח6זה56רח 556805 1560 = 6ט|0\/3ו|ה\5061 וח הסוח \ חסוסח= 50 כעת תוכל לקרוא לשיגרה המתוארת כאן מתוך טופס חו3ּ\!וח17 או מכל טופס אחר, כדי להציג את טופס 177568760 ולקבל ערך תקין לחיפוש: ()66ו61 ה056876ח6 5 ()6ט|0\/8ו|5661\/8 = אס .חוב וח 50 0חם טיפ: אם הפרויקט שאתה כותב גדול, השתמש במודלים, תת-שגרות ואפילו ספריות 1 כדי להפריד בין ה"קרביים" של התוכנית לממשק המשתמש, ובכך תהפוך אותה לנוחה יותר לכתיבה. 0 סדנת לימוד 6.0 8\ הבדלי צורת ממשק במחשבי המשתמשים יש לנהוג משנה והירות כאשר מסתכלים על התוכנית מנקודת המבט של ממשק המשתמש בזמן כתיבת תוכנית המיועדת לפעול על מחשב שאינו מוכר לך. תוכניות הכתובות תחת 8856 |808ו/\ יכולות לפעול בסביבת 95 פוססחו/\, 98 פאוססחוצ\, או זא פשססחוצ\ (ועדייו לא הזכרנו את 65 פאוססחו\\). כל אחת ממערכות הפעלה אלו שונה מן השנייה וכל מחשב הפועל תחתן נראה אחרת. הערה: אם תרצה שהתוכנית תבחין בסוג מערכת ההפעלה אשר בה היא מופעלת, בדוק את פונקציית המערכת (471) א=חסופז\060 או את הפקד העצמאי 0ח5051. ניתן למצוא הוראות שימוש בשגרות 1קג בפרק 20, גישה ל-1ק4 של פ5עשססחו:ש\. בנוסף, מערכת ההפעלה משאירה מקוס רב להתאמתה בצורה אישית על ידי המשתמש. אחד ההבדלים הבולטיס ביותר הוא בדרך כלל רמת ההפרדה (חסטגו!₪650) של המסך. אס תגיע ללוח הבקרה של פווסטחו/), תבתחין שקיימות כמה אפשרויות לשינוי התצוגה. כמפתח והבעלים המאושרים של מסך בגודל 21 אינטש, אני משתמש בהפרדה של 1024א1280 שמאפשרת לי תצוגת פרטים רבים על המסך. המשתמש הממוצע, לעומת זאת, נוהג להשתמש בהפרדה נמוכה יותר, כגון 640%480. הדרך הקלה ביותר למנוע בעיות תאימות עס לקוחות אלה היא לתכנן את כל היישוס בהפרדה של 640%480. המשתמשים בעלי מסך הפועל בהפרדה זו יראו את היישום על פני כל שטח המסך בזמן שלמשתמשיס שלהם הפרדת מסך גבוהה יותר יהיה שטח נוסף של שולחן העבודה הפנוי ליישומיס אחרים. אולס מה יקרה אם המשתמש יבחר לשנות את גודל הטופס ביישוס שלך בעזרת העכבר! במידה ולא תכתוב קוד הבנוי לטפל באירוע מסוג וה, משתמשיס שלהס הפרדת מסך גבוהה יותר מהממוצע עלוליס לקבל תוצאות לא נעימות לעין, כמו הטופס המוצג בתרשיס 18.7. [=וםן= | 0 עסו ,008 8:00 ישן סח 6 ו שם 7 6 שק | פס -ן א ב תרשים 18.7: אם לא תכתוב קוד שיטפל בשינוי גודל הטופס על ידי המשתמש, הוא עלול לתפוס שטח מיותר רב פרק 18: תכנון ממשק נכון | 501 בנוסף, המשתמש יכול להקטין את הטופס ולגרוס בכך להסתרת חלק מהפקדים. אס הטופס שלך אינו מכיל הרבה מרכיבים, תוכל להוסיף קוד לשגרת 26ו₪65 כדי לשחרר אותו מתלות במימדי מסך מסוימיס. ניתן לעשות זאת על ידי בדיקת מאפייני +ח₪4610 ו-הז0ו\ של כל פקד ולהשוות אותס לגובה ורוחב הטופס. תוכל להוסיף קוד בקלות אשר ישמור על מיקומס היחסי של הפקדים כאשר המשתמש משנה את גודל הטופס. הקוד המתואר כאן משנה את גודל תיבת רשימה (א1800)) ושני לחצני פקודה כך שגודלס ישתנה באופן יחסי לגודל הטופס: ()₪65126 רחזזס-] 50 בטוק סטפ 6וא= הפחד 1365 => שחסו6ר.6ו\ זז 5 - 00%ו6.]16] = 00%ו6ר. הוה 156 0 - 60ו//.16] = ה06ו/\\. חוה ו 0 + 160% חוהי50! = קס ד. סוחס סו אכ רח6 - ה6סו/\. חוה 50| = 64 |. חס סקס .60 = מס ד.08661ח6 0 -- 00ו/. 6068066 - 6 |.06ו0ח6 = 6 |. 6068661 50 0חם טיפ: ל כדי ליצור טופס טוב יותר, שנה את גודל הגופן בפקדים בהתאם לגודל הטופס. שיס לב לכך ששורת הקוד הראשונה בשגרת ₪65126 גורמת לסיוס השיגרה אס גובה הטופס קטן מדי כדי לא לגרוס ליצירת שגיאה במידה ומתקבל ערך שלילי. הערה: תוכל להשתמש בפקדים נפרדים המסופקים על ידי חברות שונות כדי לגרום לכך שהיישומים שלך לא יהיו תלויים בהפרדת המסך. צורת התאמה אישית נוספת אשר יכולה להשפיע על התוכנית במידה רבה היא ההתאמה האזורית המוגדרת בלוח הבקרה ומוצגת בתרשיס 18.8. מסך וה מאפשר למשתמש לקבוע את צורת הצגת המטבע, התאריך, ואלמנטים נוספיס במערכת ההפעלה. אס אתה משתמש בהגדרות אלו בתוכניות שלך, ודא שהמשתנים, שדות בסיסי הנתוניס, ופונקציות החישוב מתייחסים להן. ראה: "תוצאות תהליך העיצוב", פרק 9. 2 סדנת לימוד 6.0 8\ |<|?| וז 005וו59 |תפוםטה | 36 פחוך [ עספזוו ובו | ושפוחווו! | 08 5 הטוספ = [- 1-36 הב סט6זג) | :6 בו 061 זב 6ון 3 35 זסזכ )| 616160 5 זב 6ן וסוס סטם ב הסה בן 5 חב ו 6 וס 5 :6|קוח53 506 |זסח 5 :6 16 !זסו5. 306 9 - 38/6 הז ] == ירם חמיעור 11 בר אר 1338 | :536 33/5 סי [* ה בוב בוב :56 0806 חס תרשים 18.8: ודא שהתוכנית שלך ערוכה לטיפול בדרך שבה המשתמש הגדיר את ההתאמה האזורית שלו עמידה בדרישות הלקוח למשתמשים יש בדרך כלל ציפיות מסוימות מהדרך שבה מתנהגות תוכניות הפועלות בסביבת פווספחו)\. חלק מהציפיות הגיוניות וחלקן לא. לרוב, דרישות אלו נובעות מדוגמאות אחרות שהמשתמש נתקל בהן בעבר ביישומיס אחרים. טבעי הדבר שהוא יצפה מתוכניות המבוססות על 88516 |508\ להתנהג באותה הצורה בדיוק. לדוגמה, למרות שלתוכנית שלך יהיה לחצן יציאה 0ואם), תוכל לסמוך על כך שחלק מהמשתמשים יעדיפו ללחו על לחצן הסגירה הנמצא בצד ימין למעלה של החלון. אס שכחת להוסיף קוד לשגרת 086!ח(! וחזס] כך שתדע לטפל במצב זה, היישוס ימשיך לפעול בניגוד לרצונך. הסעיפיס הבאיס מתאריס כמה דרכי פעולה שאתה יכול להיות בטוח שהמשתמשים מצפים להן. פרק 18: תכנון ממשק נכון | 503 תיבת הרשימה (א₪0פ 115%) הרבה משתמשיס מצפים מתיבות אלו להתנהג בדרך מסוימת. נניח שתיבה כזו מוצבת בתיבת דו-שיח ומכילה פריט אחד בלבד. חלק מהמשתמשים יעדיפו ללחו לחיצה כפולה על הפריט עצמו כדי לבחור אותו, בזמן שאחריס יסמנו אותו ויקישו על מקש זסזחם או שילחצו על לחצן א0. ניתן לכלול דרכים חלופיות אלו בקלות בתוכנית שלך. כל שצריך לעשות הוא לזכור להוסיף קוד לשגרת 66ו|₪0!6 של תיבת הרשימה. טיפ: בדוגמה המתוארת כאן, אשר בה המשתמש בוחר פריטים מתוך תיבת הרשימה, ניתן להשתמש בלחיצה בודדת או בלחיצה כפולה כדי לבצע את המשימה. ישנם משתמשים שלא יודעים מתי הם אמורים ללחוץ לחיצה אחת ומתי נדרשת לחיצה כפולה. ניתן לזהות משתמשים אלה בקלות בזכות העובדה שהם נוטים ללחוץ לחיצה כפולה על כל דבר שקיים בטופס: קישורים, לחצני פקודה, ואפילו תפריטים. תוכל ללמד אותם לתקן את דרך פעולתם על ידי שימוש בסמן שעון החול ומתן הוראות שמגדירות איזה סוג לחיצה יש ללחוץ בכל מקרה ספציפי. ראה: "תיבת הרשימה ", פרק 4. מאפיין אחר של תיבת הרשימה הקייס בתוכניות מסחריות היא היכולת להשתמש במקשי קיצור במקלדת כדי יילקפוציי לפריט מסויס ברשימה. תיבת הרשימה מקבלת כברירת מחדל רק תו אחד. תוכל להוסיף בקלות אפשרות להקשה מקוצרת של שס הפריט לתיבה כדי להגיע אליו בצורה מהירה. הדרך לעשות זאת היא לאגור את סדרת המקשים שהוקשו משגרת 627655 בתוך מחרוזת, ולהעביר את הסמן לפריט המתאיסם ברשימה, כפי שמוצג בתוכנית 18.1. קוד וּה גסם מספק את האפשרות של הוספת פקד זפוחוד המאפשר לבחור את הפריט המבוקש לפני סיוס הקשת שמו המלא. תוכנית 18.1: ק8/.א15180! - הוספת האפשרות לחיפוש פריט בעזרת המקלדת. זוסו|קא= הסטקס 0חוזז5 50876 סחדי 0חוזז5 45 ח76ה5156 51 חחום 6 ססחו 03060! חחוס זס 6 |' 0חו50 5 זסחס חסחסזזט50 חחוס 60 סמ 060בס! 66ץ %סח 60 |' פַחו50 45 זסס החס-טו5\\3 וחוס 6 "סווטוט" ₪ 6!קרח58 סחחדי 6 858 סווטופט וחוס ()1.080 וחזס= 500 סספּעווק "" = ז0ה0 הס-5\/10 "" = 600[7 %ח6זז) " .. 15| 06 80חו080 |" = חס6300. ס0הּס וופו ("ט סרח סוופוט\6/\: 0" )9856 הק = סוו|טופפ0 56% 5 סד = 60!טהחם. 080 וח 50 0ח= 4 סדנת לימוד 6.0 8\ (ז0000ח1 5 8650 ,וס 00 5 50%!) 500% 1ח6זה50 הסטסחט= 5 05 חפה וחוס לחז 5 חס [ה6זה6פח וחוס 5 6|טפסחח חחוס 500% |.55%| = 005ח56876ח (5556860 51)ח6. 1 = חס 1ה56876ח "" = ]000 8ס-5\\/80 ץםא 685065 חס 656% חס ד 86% ץ6אפע = 66750 זז 568700005 = 0 (1 - ח6 1ח56876ח ,ה5656870 68%)51 1 = 5050876 51 סד 0 < ח6 |ח6וה56ח +[ + 0 6 צ\שא שד 25 | דזק ה 6' (((1ו56/ץ79)96ח456)1(6356%))0/ = |ו6656 ...דצ אפרחד 6' סד פפסגס!ו צואס 15 הזהס סאה א 55שחק טסץ ;זי חס ד (ז66 | ח6 56050 < וספ ץ6א חגא 0 = חס |ה6זה6פח )זז 1 - 500% 50%.1! = א06ח50 |.50%| ([7)]66/501ח) = 6001 |ס-5\\310 חס חססס6חט- זוא סחם 5 56 סד חםדדם | ופא ססגי החד ("56)"2\/ => 46750 6חג (" ")56 =< 6050 זז ((ו050ץ9)66זח6 .8 ה5%56870 51 = 5056876 51 + סחם 6 5 50 צה |וקפזס' ה5056876 51 = ה6.6300ח6זפוטו 4 דסא | דג 61 |64-=ח' ( 5556816 51)ח6.] = חס 1ה56870ח 6 5 550 סד אשד ₪67 ₪5 הק 60 - 556 = |קואזס 500% 50%.1! > 05ק00ז563ח 6ווח\ סס , (568760005ח)15 |.26856%)1.600%)150%\ ,ה5056870 51)ר 5000 = )|טפסחח (((ח6 |ח6זה56ח\ חסחד 0 => )וטפסחח ]1 5 = א06ח50 50.1 0 = 15500 ]568700 חסססחט- זואם פרק 18: תכנון ממשק נכון | 505 0 1 + 568700005 = 568760005 קסס | ד 0 סאם סד פעסוא אשוחד סאטס= דסא פאצ\ אשד =זי 1 - 50%.1150000%! = 06%ח501 50%.1! 0 = א5%00! 5681601 הסטסחט= 6חם (ז0600ח1 45 [(50ץ6א )055זק > ה5556870! סט5 סספּעווק סטפ זוא= חסחך 13 = |וו50הץ66 )1 (1ו8650 , |0זחס660ע60ה. 6])א 5000 וה56876 = |ו50 סט 0ח5 זסוחו ד 030 וט סט5 ס6להעוזק 58 5 5501 חחוס 06067ח1 35 קוח דח הזוס 5 5 הזוס דט ההק |ג =החד אז מ דדם | דאשא שרוד סד =עסוא'י = = ]6607 |זח6זוו) 56| "4" = ז60 הסט הסח "" = ז600 שחסזזט6 +[ (1 + (ז600 ח6זזט)56 )6 חםןאזד שרוד קסד5 אפרוד ס=סגס | אששם םגה פוושד 'ל =זי חסחך "2" < ז6%0 שחסזזט6 +[ 6 = 8060ח=. 080 |זרחף " 600705 " .8 (150000 1.ה050:)!5%56870 = 08060 וטו 6 וו פע = ז 0560 506 |. 5 טפ וא + 50 אסם 57| שחד סד 560805 פסה סאג 855 דהס שחחד צמסטסי 8 60 הסט .8" 6א1] 6הב\] 6זסחצ 5זסחפווסטק וחסז- שוחב ד60ם |פ" = .5501 "סוחהּ\] ץכ זס0זס *" (66010561)550(1 6 0.סו|פו9פ0 = 5 56% =5.50ז +סא 6ווחצ\ סס (("6רח16!05)"]\3. )6507 וח00166\. ה5056376| כ ב וכו מסס | 6 "... 6060705 " .8 %ח5%00 1.ח76ה5050! 8 " חַחו1.080" = 08060 וטו 6 סדנת לימוד 6.0 8\ 5 ...ו 6חסעם סכ דה אס 6א1דג/\ -1 55 וסמטסו ץג וספזס' חסחדך "" = ז600 [וס-0ו5\\3 +[ | = ז 560 סו]. ח6 50 סטפ זוא 6 5 = 000ו1005670]. ח50706 (((ז6066 [זס-5\/810)חוז 45607 ,ה505680| )1500 568761 = כוחס דח + 0חם 50 0חם תפריטים יעילים חלק חשוב נוסף בעיצוב הטופס הוא ליצור תפריטים יעילים ומובנים. הנה כמה הנחיות חשובות לתהליך העיצוב: + + השתמש במערכת הנפוצה של תפריטי יישומים במערכת הפעלה פטוסשח!\\: ,₪16 שסוצ ,₪615 וכדומה. + קב> אפשרויות בתפריטים בצורה הגיונית ומובנת. * השתמש במפרידים בתפריט נפתת (טחסח הש0ס6-קסזס) כדי לקבצ פריטים השייכיס לקבוצה מסוימת. + הימנע מהצגת אפשרויות מיותרות. > הימנע משימוש באפשרויות המוצגות על שורת התפריט שאינן מכילות תפריט. > וכור להשתמש בשלוש נקודות (...) כדי לסמן פריטים בתפריט אשר גורמיס להופעת תיבת דו-שיח. + השתמש בקיצורי דרך ובמקשי קיצור סטנדרטיים ככל שניתן. > הצב את האפשרויות הנפוצות בתפריט על גבי סרגל כלים. צעדיס אלה הקשוריס לשימוש בעורך התפריטיס וביצירת תפריט נדוניס בפרק 6, שליטה נוספת למשתמש: תפריטים וסרגלי כלים. ראה: "יצירת תפריטים ", פרק 6. פרק 18: תכנון ממשק נכון | 507 טיפול במספר מופעים פעילים של היישום תוכניות מבוססות פאוס6חו/\ רבות מופעלות כאשר המשתמש לוחצ על קיצור הדרך שלהס לחיצה כפולה או בוחר אותן מתפריט. כאשר יש למשתמש עשר תוכניות פתוחות, הוא יכול לעבור ביניהן על ידי שימוש בשורת המשימות (ז88 185%) או על ידי שימוש במקשי הקיצור 185+:|8. למרות ואת, הרבה משתמשים מעדיפים ללחוצ לחיצה כפולה על סמל קיצור הדרך פעס נוספת אפילו אס התוכנית נטענה כבר לוּיכרון. כמה מקיצורי הדרך, כגון סמל המחשב שלי הקייס במערכת 95 פוסטחו\\, גורמיס להצגת החלון הקייםס כבר בויכרון, סמלים וקיצורי דרך אחריס גורמיס ליצירת מופע חדש של היישוס בזיכרון. לדוגמה, תוכל לפתוח כמה מופעים של מעבד התמליליס סזסו\ על ידי בחירת הסמל המתאים בתפריט התחל, אולס לחיצה כפולה על סמל השייך למסמך 6זס/\ מפעילה את העותק הפעיל בזיכרון ומשתמשת בו. כדי להמשיך ולסבך את העניין, סרגל הכליס של 000666 670506 בודק אס יש עותק פעיל של סזס/\ ומציג אותו במקוס ליצור מופע חדש. אס מספק קיצור דרך ליישוס על שולחן העבודה או על סרגל הכליס, המשתמש יצפה שהוא יפעיל את העותק הפעיל בויכרון במקוס ליצור מופע חדש. דבר וה נכון במיוחד אס המשתמש מילא טופס מסוים ומזער אותו לאחר מכן בשורת המשימות. במצב וה הוא עלול ללחוץ לחיצה כפולה על קיצור הדרך ולצפות לכך שהטופס הקודם יופיע, אולס אם לא דאגת לכתוב קוד המטפל במצב מעין זה, יופיע מופע חדש של היישוס והמשתמש ייראה טופס ריק. אפשור יצירת מספר מופעים של היישוס בזיכרון יכולה להיות רצויה עבור חלק מהיישומיס, אולס אס לא תתחשב באפשרות זו בזמן כתיבת התוכנית אתה עלול לגרוס לשגיאות. לדוגמה, מספר מופעיםס של התוכנית עלולים לנסות ולכתוב מידע לאותו בסיס הנתוניס באותו ומן. למזלנו הטוב, מניעת האפשרות ליצור מופעיס נוספיס של התוכנה בזיכרון קלה לביצוע. שורות הקוד הבאות בשגרת 1080 חזס= או חופ'] 50 יעשו את העבודה: חס סט ד = 66חהז5ח1/סזק. סא זז "!פַהוהחטז ץ680זוה הסספסווסקה" אס 0פ!ו 0חם + 0חם שורות הקוד המתוארות כאן בודקות את מאפיין 558066ח6/1זק של אובייקט היישוס ומפסיקות את פעולת התוכנית אס קייס מופע נוסף. למרות שהקוד מונע טעויות והתנגשויות תוכנה, הוא אינו עוזר למשתמש מפני שהוא צריך עדיין למצוא את המופע הפעיל בצורה ידנית. תוכל לגרוס לתוכנית שלך להציג את המופע הקודם לפני סגירת המופע החדש בעזרת קריאה לכמה שגרות 1ק4. תוכנית 18.2 מכילה שיגרה פשוטה המציגה את המופע הקודם של התוכנה. 8 סדנת לימוד 6.0 8\ תוכנית 18.2: ק8/. ד5א1/\= אק - טיפול במופעים נוספים של התוכנה. זוסו|קאם החסטקס | | )"ה ץשססחו\סתו=" 185 "5032" סו | שססחו/\סחו- הסססחט-] 6זה|ססכ 6סהטוזק חס | 5 (0חו50 5 שה \צוססחו/\\ק! ו\ץ8 ,חַח50 5 35514306וכו = |8\ץ8 ,חס ] 5 סח/\ח |3/ץ) "532" סו | אוססחוץשוסח5 הסוסס6חט- 6זב|ססכ 6סהטוזוק 08 ] 5 (8חס 1 5 שוסח05וח6ח = (חחס | 45 סח/\ח |3\ץ8) "32ז6פט" סו1 אשוססחו/\ הטסזס6זס-560 הסס6חט- 6זבססכ 6סהטוזוק 8ס| 5 9 = ₪₪510₪5 /\5 5ח60 ססהעווק ()1.080 וחזזס= 500 סספּעווק 0חו50 5 5106 וחוס פס ] ₪5 סחשח חוחוס 8חס ] 35 |560/3! הזוס חס ד 66ח5%ה1עסזק. סקסה זז חסו0ק16.68] = 516 "ץסס6שוסח" = 6וך. סקס "ץ60אוסח" = חס0ק6.63ו (06 51 ,סחוחפ!|טצטע)ששססהו/שסחו= = סחצות חסחד 0 <> בחצוח ]1 (0₪5 557 5 , השח )אוססחו/\/וסת5 = |560/8ן (0חהעשח)שססחו// 0 ה טסזס60זס-566 = |560/8ן 0 0סחם 0 סט 0ח5 בקוד המתואר, שונו שס היישוס ומאפיין ח00ק69 שלו כך ששגרת [קה, אוססחו/שסחו , לא תוכל למצוא אותו. אחר נקראו שלוש שגרות 21 נוספות כדי למצוא את החלון השייך ליישוס הקודס, לשחזר אותו ולהביא אותו לקידמה. ניתן לקבל מידע נוסף על שגרות 871 של פשססחו/\ בפרק 20, גישה ל-121 של פשוסצחושו. הערה: השיטה המתוארת כאן לטיפול בכמה מופעים של אותו יישום מתייחסים לפרויקט 5 רגיל. הטיפול בספריות 011 606% מתואר בפרק 16, מחלקות: שימוש חוזר ברכיבים. ראה: "קביעת מאפיין בַחו6ח8ז5ח1", פרק 16. פרק 18: תכנון ממשק נכון | 509 מהירות פעולה מדומה מהירות מדומה משמעה מציאות. אני מתייחס כאן לדרך שבה נקודת המבט של המשתמש על התוכנית יכולה להשפיע על חיבתו לתוכנית או סלידתו ממנה. מהירות פעולת היישום הינה דוגמה ראשית לכך. גם אם כתבת את הקוד המהיר ביותר שניתן לכתוב תחת 88566 |1508/, אין הדבר משנה אס המשתמש חושב שהתוכנית איטית. מפתחי 88516 |הטפו/ נוטיס להתגונן כאשר המשתמשים מתלונניס על בעיות מהירות מפני יישהמשתמשים לא יודעיס מה התוכנית עושה באמתיי. תוכל להשתמש בכמה טריקיס כדי לגרוס לכך שהתוכנית תיראה מהירה יותר למשתמש. המפתח למהירות מדומה של פעולת התוכנה הוא בכך שמשהו חייב לקרות כאשר המשתמש בוחר סמל. הוא יהיה נכון יותר לחכות אס הוא סבור שהמחשב עובד בצורה המהירה ביותר. אתחול פאוסנחו/\ הוא דוגמה טובה לכך. העניין נמשך זמן רב בדרך כלל. מצד שני, כל הצלילים, שינויי התצוגה והרעשים המגיעיס מהכונן מעסיקיס את המשתמש מספיק ומן כדי שזמן האתחול ייראה לו סביר. הטכניקות המתוארות בסעיפים הבאים יציעו לך דרכיס להפוך את התוכניות שלך ליימהירות'י יותר. זמן טעינת התוכנית כאשר התוכנית מתחילה לפעול, תהיינה לה בוודאי כמה פעולות אתחול חיוניות כגון פתיחת בסיס נתוניסם הנמצא ברשת. שגרת חו8ו! פט5 היא מקוס מצוין להצבת כל קוד האתחול הדרוש בזמן טעינת התוכנית. אם לתוכנית יש מספר טפסים בלבד (שניים עד חמישה), תוכל לטעון את כולס משגרת חו8!! פט5 כך שהם יופיעו במהירות כאשר יהיה צורך להציגם. תהליך טעינת כל הטפסים יגרוס להאטת ביצועי התוכנית בזמן טעינתה לוּיכרון, אך מהירותה לאחר מכן תהיה גבוהה יותר. שגרת 1080 יוצרת את הטפסים בוּיכרון, אולס הס נשאריס מוסתריס מהמשתמש עד להפעלת שיטת שוסח5. מצד שני, טכניקה זו עלולה לגרוס לזמן טעינה ארוך מאוד של התוכנית, כך שהצגת מסך פתיחה (ח560766 ה50!85) בזמן זה יכולה להוות רעיון טוב מאוד. מסך מעין זה (ראה תרשים 18.9) מציג מידע אודות התוכנית והאדס (או קבוצת האנשים) שכתב אותה וכן מראה למשתמש שמתרחשת פעולה מסוימת. ץח 551816 58 פ'טסם 10605610 5 161!4601ו 0% 1 סק 0 חהסופז6צ 7 זו עס סוח! 008% 868 6 חוס51ץי5 1.0 ו/\ 635 תרשים 18.9: מסך הפתיחה מספק למשתמש משהו להתבונן בו בזמן טעינת התוכנית 0 סדנת לימוד 6.0 8\ טיפ: אם אתה מעדכן שם תווית במסך פתיחה או ב- ח66ז50 0₪05ו5, ודא שתתבצע קריאה לשגרת 05/6085 או לשגרת ח₪6765 של התווית כדי שתהליך אתחול התוכנית לא ימנע מהתווית מלהתעדכן. שתף את המשתמש בהתקדמות התוכנית במצב אשר בו היישוס נראה כאילו הוא מבצע פעולה כלשהי, המשתמשיסם נוטיס להיות סלחניים יותר אם עליהסם לחכות זמן ממושך. דרך אחת לשתף אותם בתהליך היא להציג פקד מד התקדמות (65588זטָסזק) בטופס. אס התוכנית מעדכנת רשומות בבסיס נתונים, תוכל להשתמש בסרגל כזה כדי להציג את מספר הרשומות אשר עודכנו. כדי לעשות זאת, עליך להוסיף שורת קוד או שתיים אשר תדאגנה לעדכון מד ההתקדמות בכל פעסם שהתוכנית תעבור לרשומה הבאה. ראה: "הוספת מד התקדמות לתוכנית ", פרק 12. לעיתים, האפשרות של שימוש במד התקדמות אינה סבירה. לדוגמה, ביצוע פקודת ץ6000!ו= של 8856 |הטפו\ עלול לקחת זמן מה בהתחשבות בגודל הקוב המועתק, אולס /8600!ו= היא פקודה עצמאית ולפיכך אין לך שוס מקוס אשר בו תוכל להכניס את הקוד הדואג לעדכון מד ההתקדמות. במקרה מעין וּה, תוכל להשתמש בסרטון וידאו כתחליף נוח. לפני שאתה מפעיל את העתקת הקוב, הצג סרטון וידאו בעזרת פקד האנימציה. 95 פ5שספחו/\ משתמשת בטריק זה בזמן העתקת קבצים וריקון סל המיחזור. המשתמשים רואים סרטון וידאו וסבוריס שהסרטון מקושר לתהליך העתקת הקוב בזמן שלמעשה זהו תהליך המתבצע בנפרד מתהליך העתקת הקוב. ראה: "שימוש בפקד אנימציה", פרק 12. פרק 18: תכנון ממשק נכון | 511 מכאן... למרות שאף צעד שתנקוט אינו יכול להבטיח ממשק משתמש מושלם, ממשק גרוע יכול להבטיח בוודאות שאף אחד לא ירצה להשתמש בתוכנית. למרות זאת, הקריטריון להגדרת ממשק משתמש כייטוביי ימשיך להשתנות תמידית עם עדכון דרכי העבודה במחשב. קח לדוגמה את תהליך כיוונון השעון במכשיר וידאו. מכשירי וידאו ישניס היו מתוכנתיס בעזרת לחצנים ומפסקים, אולס שיטה זו הוחלפה במהרה על ידי תצוגת מסך. כעת אות רדיו אלחוטי הופך את התהליך כולו לאוטומטי בדגמיס מסוימים. כמו בדוגמת מכשיר הוידאו, ממשק המשתמש שלך ישתנה עם הזמן ככל שהתקן בתעשיית התוכנה קובע סטנדרטיס חדשים וככל שתלמד איך לעמוד בדרישות בצורה טובה יותר. לקבלת מידע נוסף בנושאים הנדוניס בפרק זה, קרא את הפרקיס הבאים : > אס תרצה ללמוד את ההבדלים בין הפקדיס הזמינים לך, ראה פרק 4 שימוש בפקדי ברירת המחדל של 6ן₪35 |בּטפו/. * לקבלת מידע נוסף על יצירת תפריטיס ואלמנטיס אחרים בממשק המשתמש, ראה פרק 6 מתן שליטה נוספת למשתמש: תפריטים וסרגלי כלים. + כדי לקבל מידע נוסף על יצירת רכיבי 468% בעזרתמודולי מחלקה, ראה פרק 16 מחלקות: שימוש חוזר ברכיבים. + כדי להבין איך לפתח יישום 1ס!א, ראה פרק 17 יישומים בעלי ממשק מרובה מסמכים. > כדי ללמוד את נושא עיצוב ממשק המשתמש בצורה מפורטת יותר, ראה פרק 19 שימוש במרביבי התכנון הוויזואלי. 12 סדנת לימוד 6.0 8\ 19 שימוש במרכיבי התכנון הוויזואלי פרק 19: שימוש במרכיבי התכנון הוויזואלי | 513 בפרק 18, תכנון ממשק נכון, למדת כיצד לעצב את המרכיב הוויוואלי של התוכנית כדי לספק ממשק שימושי ואסתטי. פרק וה ממשיך לדון באותו נושא, ומציג בפניך חלק ממרכיבי העיצוב בהס תוכל להשתמש, כדי להעניק לתוכניתך חזות מקצועית. שימוש בגרפיקה ממשק משתמש טיפוסי של יישוס מורכב מתפריטים, תוויות, תיבות טקסט, לחצני פקודה ואולי גס מספר פקדים מיוחדיס לנתוניס הייחודייס לאותה תוכנית. אולס ללא שימוש בגרפיקה, ממשק המשתמש גס שהוא שימושי, יכול להיות משעמס למדי ולא אינטואיטיבי. גרפיקה יכולה לשפר את ממשק המשתמש בדרכים הבאות : + הדגשת מידע מסויס על המסך. + יצירת מבט שונה על הנתונים, לדוגמה שימוש בגרף. + יצירת קשר אינטואיטיבי יותר עס פונקציות התוכנה. נושא העיצוב והשימוש בגרפיקה רחב ומורכב. לכן ברור כי פרק זה אינו יכול לכסות נושא זה במלואו. עס וּאת, הוא יספק לך מספיק מידע שיאפשר ליצור ממשק משתמש מושך יותר מבחינה ויוואלית. ב- 8856 |508ו% באפשרותך להשתמש בגרפיקה בשתי דרכים עיקריות: פקדים ושיטות. לדוגמה אתה יכול לצייר קו על טופס על ידי הצבת פקד 6חו1 על הטופס, או באמצעות שימוש בשיטת 6חז]. הערה: ממשק פיתוח היישום (1ק88) של פוסחו/\ מכיל גם הוא פונקציות רבות הקשורות לגרפיקה. ראה פרק 20 גישה ל-4₪1 של פשסשחו/ש, לפרטים לגבי השימוש בפונקציות אלו. פקדי גרפיקה עובדים בדיוק כמו כל ייפקד מותאסיי אחר, יש להם שגרות ומאפיינים, ואפשר לציירס במהלך העיצוב בעזרת העכבר. שיטות גרפיקה הן פונקציות אשר אפשר לקרוא להס מתוך 8856 |1508\ במהלך פעולת היישוס. למרות שאתה יכול לחשוב על פקדי גרפיקה כעל אובייקטים המונחים על גבי הטופס, שיטות גרפיקה לעומתס מציירות על הטופס עצמו. פקדי גרפיקה ארגז הכליס של 88516 |1508/\ כולל מספר פקדי גרפיקה. חלק מפקדים אלה, כגון פקד ו (קו) הס פקדיס פשוטים המיועדים לפעול כהרחבות ויזואליות בפני עצמס. אחרים, כגון פקד אספפזטשסום (תיבת תמונה) כוללים מיגוון מאפייניס ושיטות כדי לאפשר תפקוד נרחב יותר. כל אחד מפקדי הגרפיקה של 8856 |808ו/ יתואר בסעיפיס הבאיס. 4 סדנת לימוד 6.0 8\ פקד 6חוו1 ופקד 6מְב503 פקדי 6ח1] (קו) ו-6ס8ח5 (צורה) מספקים את האמצעי הפשוט ביותר להוספת אלמנטיס גרפייס לטופס. אתה יכול לצייר את הפקדיס על גבי הטופס בזמן העיצוב, ולהניח אותס במקוס בו אתה וקוק להם. במהלך פעולת התוכנית, ניתן להסתיר או להזיו פקדיס אלה. בעזרת הגדרת ערכי המאפייניס הנכוניס בקוד שלך, הינך יכול לשנות את צבעס. כפי שניתן לנחש על פי שמו, פקד 6חו1 יוצר קו על גבי הטופס. אתה יכול לשלוט בעובי הקו, סגנונו, צבעו ומיקוס נקודות הקצה שלו באמצעות מאפייני הפקד. לדוגמה, התחל פרויקט 5אם 0870ח5098 ומקס פקד 118 על הטופס. לאחר מכן, הכנס את הקוד הבא בשגרת אירוע ₪65/26 (שנה גודל) של הטופס: ()405126] וחזס=] 500 ססבּעווק 5 0 00 (0,0) 5'ואמס= ג' 60 זהם |-השקק פד אז שאי 2 / %ח0ו1.5636|706וחזס-] = 1ץ. 61חו | 0 = 1א.61חו | וו /\568|6. 1 רחס = 2א.61חו | 1 ] = 2+.61חו | 50 0ח= הקוד בשגרת אירוע ₪656 מכוון את גודלו ומיקומו של הקו כך שהוא נשאר קו אופקי במרכו הטופס. כברירת מחדל, יוצר פקד 6חו1 קו רציף, אך אתה יכול ליצור קו מקווקו או קו בסגנונות אחרים על ידי הגדרת מאפיין 807061506 (סגנון גבול). תרשיסם 19.1 מראה מספר פקדי 6חו1 מצוירים על טופס, תוך שימוש בסגנונות שוניס ואפשרויות שונות במאפיין 80706150/|6 של פקד 6ח11. [>1ם). ‏ ש|פחזהא = |סז!וחט:) שחו ] .= 65 5 חווטו זזה 535 8 ך ]הזד 0 2 0-ה 8 3 --7-7 7-77 :2 4 הדדדדדררר----- 00000 3.000 4 39 - 5 כ ההודה7 00 0608מ. --------------- 24 ] 1-4‏ 5014 108106 - [ = 5696 זסטזס₪ = חוטו/א\ זסטזסם > ה תרשים 19.1: פקד 6חו] מאפשר לך למקם קווים בסגנונות שונים על טופס פרק 19: שימוש במרכיבי התכנון הוויזואלי | 515 הערה: למאפיין 80706756 אין כל השפעה כאשר ערך המאפיין ח0ז0ו/ז06זס80 גדול מהערך 1. פקד 50806 מספק אמצעי פשוט נוסף למיקום אלמנטים גרפיים על גבי טופס. ניתן להשתמש בפקד 50806 כדי ליצור כל אחת מששת הצורות המוצגות בתרשים 19.2. בדומה לשימוש בפקד 6חו1, אתה יכול להיעזר במאפיין 80106750/66 לשינוי סגנון הקו המשמש לציור הצורה. 606 שהתטסר] - 4 56 ב6התטסר - 5 עשפ קמ | 6 ססות - 0 תתו 6 [ [| 2-08 ו שוסו - 3 0 | (| תרשים 19.2: אתה יכול לשנות את מאפיין 50806 של פקד 5086 כדי ליצור כל אחת מהצורות המוצגות הערה: למרות שפקד 586 הממוקם מאחורי קבוצת פקדים עשוי להיראות כאילו הוא "אורז" פקדים אחרים בתוכו, הוא אינו יכול לפעול כמכולה לפקדים אלה. למרות שניתן להגדיר את פקד 50806 כך שיופיע במספר צורות שונות, הוא אינו משתמש בנקודות ציון מתמטיות כפי שעושה פקד 6חו1. במקוס ואת אתה מגדיר את מאפייני הגובה 0ח46/9) והרוחב (חז0ו//) כדי לקבוע את גודל הצורה. 6 סדנת לימוד 6.0 8\ תמונות ודמויות דרך נוספת להוספת גרפיקה לממשק המשתמש היא למקם תמונות על הטופס. ניתן לטעון תמונות אלו לתוך פקדי 10896 (תמונה) ו-א680זטט6וש או לטופס עצמו. מספר מקורות אפשריים לתמונות הינס ציוריס אשר יצרת באמצעות תוכנת ציור או תמונות מסרט צילום וחוח35 אשר הסבת לקבצי מחשב על ידי שימוש בסורק. סוגי הקבצים שבאפשרותך להשתמש בהם מפורטים בטבלה 19.1. טבלה 19.1: סוגי קבצים גרפיים המתאימים לעבודה ב- 8856 |1808\ סוג הקובץ ||( קב תבות של ממ 000 5 | ( 08 1606 6 קובץ מפת סיביות ללא תלות בהתקן = (16%811!6! 5או00חו/\ 660חה8חחם) קובץ גרפי כללי מורחב של פוספחו/\ קבצי 056נ, הנקראים על שם קטסז6 5זז6קאם 6וחק8זסס6סחק +חוסנ קבוצת מומחי הצילום המאוחדת, דומים לקבצי +61 אך משתמשים בדחיסה להקטנת גודל. משמשים בצורה נרחבת בדפי 60/\ 6. | תבנית לחילופי נתונים גרפיים (+ח חס 86ח608ז6שח1 6וחקפּז6) סוג קובץ גרפי אשר פותח לראשונה על ידי 60568 ואשר משמש כיום בדפי 0 מאפיין 6זטם6וק לפקדי א0ס68זט6וק, 36ח1, ולטופס יש מאפיין בשם 6זנטסום אשר ניתן להגדירו בזמן העיצוב או בזמן פעולת היישוס. טעינת קובצ תמונה בזמן העיצוב היא פעולה פשוטה. נסה דוגמה פשוטה של מיקוס תמונה על טופס, כפי שמוצג להלן: 1 התחל פרויקט חדש, ופתח את חלון 00611165 (מאפייניס) של הטופס. 2 לח על הלחצן בונה (שעליו 3 נקודות) בקצה חימני של המאפיין 6זשסוס. כדי להעלות את תיבת הדו-שיח 16606 1086 (טען תמונה), המוצגת בתרשים 19.3. 3 בחר קובצ מתוך תיבת הדו-שיח 16076פ 1086. התמונה הנבחרת תופיע על גבי הטופס. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 517 הערה: קבצים אשר נטענים בשלב העיצוב מאוחסנים ביחד עם הטופס שלך, דבר העשוי להגדיל את נפח התוכנית ולהאריך את משך זמן טעינת הטופס. |<|?. זו 1080 ש] |=₪ ₪ 0000000 %8מב] :חן 100% | |[מסרוב )1 = 5 פזטזסו || | = :סקע! 01 שו | קופס תרשים 19.3: כדי למקם תמונה על טופס, בפקדי אספסזטשסוק או 1806 בשלב העיצוב, השתמש בתיבת הדו-שיח 6זנשסוק 1080. ניתן גם לטעון תמונות במהלך פעולת התוכנית בומן שהתוכנית פועלת ניתן להעביר תמונות מפקד אחד למשנהו על ידי הצבת מאפיין 6זנססוק, או על ידי טעינת התמונה מקובץ התואס לאחד הסוגיס המפורטיס בטבלה 1. כדי להגדיר את מאפיין שזשסום כך שיטען קובצ גרפי, השתמש בשיטת 08006 1. דוגמת הקוד הבאה מדגימה כיצד לטעון תמונות לטופס, לפקד 10896 או לפקד א680זושום במהלך פעולת התוכנית : 5 8חו80ס | )0 6|קוהאם ("קום.1קץ]\:" )וק 080 | = 6זטססוק. 1וחזס= ("כ)קן. ה [ם]]הק\:")6 סק 030 | = 6זנססוק. 161 6ז6וק. 13061 = 6זנססוק. 61ססוק ("")6 080100 .] = 6זנססוק. 61זטססוק | 030 16076 )""( "קןזם.16קצץו \:6" = 6זטסוק. 1 חזסו 56% שיס לב כי העברת מחרוזת ריקה לפקד 6ז60ו10800 מנקה את התמונה הנוכתית. ל- 88516 |1808\ יש גס פקודת 58/6766 (שמור תמונה) המשמשת לשמירת תמונה מתוך מאפיין שזושסוק לקובצ בדיסק. עס ואת קיימות מספר הגבלות על סוגי הקבציס אשר ניתן לשמור. למרות שפונקציית 1080766 עובדת עס קבצי =01 ו-106, פונקציית 6ז58/671600 אינה תומכת בשמירה לקבצים מסוגים אלה. תמונות הנשמרות מתוך פקד 1386 נשמרות תמיד כקובצ קואם. לרשימת ההגבלות המלאה על סוגי הקבצים, חפש את הפונקציה 58/6166 באינדקס העזרה (א06ח0/1ו46). 8 סדנת לימוד 6.0 8\ טעינת תמונות לטופס תמונה הנטענת לתוך טופס, מתנהגת בצורה סטטית יחסית, בדומה לטפט הרקע של 5וססחו/\. התמונה מופיעה בפינה השמאלית עליונה של הטופס, ואינה מוגדלת בצורה כלשהי כדי להתאיסם לגודל הטופס. אס התמונה קטנה מגודל הטופס, נשאר מקוס ריק מתחתיה ולימינה. אס התמונה גדולה מהטופס, יוצג רק אותו חלק ממנה הניתן להצגה לפי גודל הטופס, למרות שכל התמונה נטענה. כל שינוי בגודל הטופס ישפיע על החלק היחסי של התמונה אשר יוצג בתוכו. למעט פקדי |1806 (תווית) ו-50806, התמונה אינה נראית מבעד לרקע הפקדיס הנמצאיס על הטופס. פקדי |1888 ו-50806 מאפשריס לתמונה להיראות דרכס, אס מאפיין 8865/66 (סגנון רקע) של הפקד מוגדר זח6זהּקפח8זד (שקוף). תרשים 19.4 מראה פקדים הממוקמים על טופס המכיל תמונה. שים לב כיצד תמונת הרקע נראית מבעד לפקד [306! שמעל תיבת הטקסט. טיפ: לא ניתן לשנות גודל תמונה המונחת ישירות על טופס. אם ברצונך לשנות את גודלה, עליך לשנות את קובץ הגרפיקה המקורי על ידי שימוש בתוכנה גרפית היתרון העיקרי להצבת התמונה ישירות על טופס הוא ששיטה וו משתמשת בפחות משאבי מערכת מאשר מיקוס התמונה בפקד ש6זטססוק או 1₪806. יתרון נוסף להצבתה על הטופס, הוא שאפשר להשתמש בשיטות ציור כדי לכתוב הערות על התמונה. |<|םן. ח6ז50 ח!-חטו5 05ו6 זס-] פזבּא!ו50 .₪ 6 +0 5 ו 1 ו תרשים 19.4: מספר פקדים הממוקמים על טופס, אינם מאפשרים לתמונה ברקע להיראות דרכם פרק 19: שימוש במרכיבי התכנון הוויזואלי | 519 לדוגמה, אתה יכול להציג תמונה של מוצר מסויס ואז על ידי שימוש בשיטת שחוזק לכתוב את המחיר או כל נתון רלוונטי אחר על התמונה. יכולת זו קיימת גס באמצעות שימוש בפקד אספסזט60וק אך לא עס פקד 886ח1. טיפ: מיקום תמונה ישירות על הטופס היא דרך מצוינת ליצור טקסטורה או רקע לשאר האובייקטים המוצגים על הטופס. עס זאת, הצבת התמונה ישירות על הטופס גוררת עמה מספר חסרונות, כגון: <* לא ניתן להסתיר את התמונה, אפשר רק לטעון או להסיר אותה לחלוטין. > אין אפשרות לשלוט על מיקומה על הטופס. + אי אפשר למקם יותר מתמונה אחת באותו הזמן על הטופס. + לא ניתן לשנות את גודלה, היא ממוקמת על הטופס בגודלה המקורי כפי שנשמר בקוב הגרפי בדיסק. * ניתן להתגבר על מגרעות אלו על ידי שימוש בפקדי 6זטשסו ו-6פָח]. פקד 86בּוח1 שימוש בפקד 10806 לצורך הצגת תמונות מספק מסגרת לתמונה, המאפשרת למקס אותה בכל מקוס על הטופס. יתרון נוסף הוא שפקד 10896 מסוגל לשנות את גודל התמונות בנוסף להצגתן. מאפיין 5666 (מְתַּח) קובע האס גודל הפקד ישונה כך שיתאים לגודל התמונה, או שגודל התמונה ישונה כך שיתאיס לגודל הפקד. אס מאפיין ח506% מוגדר 3|56= (ברירת המחדל), גודל הפקד מוגדר מחדש באופן אוטומטי כך שיתאים לגודל התמונה שבחרת. אם מאפיין ח5₪600 מוגדר פטזד, גודל התמונה מוגדר מחדש כך שתתאים לגבולות הפקד כפי שהוא מופיע על הטופס. ניתן לבחון מאפיין וה בזמן העיצוב על ידי יצירת פקד 10896 והגדרת תמונה שתוצג על ידי פקד זה, הגדרת מאפיין 5066 לערך 6טזד, ואז שינוי גודל הפקד. תרשים 19.5 מראה את אותה תמונה כפי שהיא מוצגת על ידי מספר פקדי 10806. הפקד אשר מאפיין ח5₪6₪ שלו מוגדר 8156 מציג את התמונה בגודלה המקורי, ואילו שני הפקדיס האחריס בהס מוגדר ערך המאפיין ח5₪600 כ-6טזד מציגים מספר תופעות העשויות להתרחש כתוצאה משינוי גודל הפקדים. טיפ: בטעינת מספר תמונות לפקד 10806 אחד, רצוי כי תגדיר את מאפיין 566 של הפקד כ-6טזז. אם לא תעשה זאת, ישתנה גודל הפקד בכל פעם שתוצג תמונה שונה. אם הצורה בה מוצגת התמונה אינה מתאימה בשל עיוות מימדיה, שקול להשתמש בפקד א680זוט6וק במקום בפקד 6ִהַ3ח1. ייתכן כי במקרים מסוימים - כגון הצגת תצלומים של אנשים - עדיף להציג תמונה חלקית מאשר תמונה שלמה אך מעוותת. 0 סדנת לימוד 6.0 8\ < |ם]. ‏ ופזוחס:) סטבּחו! .א 5 6 7 .56 = סז 361 פו עוזסקסז 511600 >'וסזוחס) 6ההח! פו ד 6 סו תרשים 19.5: מאפיין 566 של פקד 17896 מאפשר לשנות גודל תמונה פקד אס8סוטזסוק למרות שפקד אספפזו6וק משתמש ביותר משאבי מערכת מאשר פקד 1806, יש לו מספר תכונות נוספות שלא קיימות בפקד 10806. הראשונה היא יכולתו של פקד וה לשמש כמכולה לפקדים אחרים, תכונה המאפשרת להתייחס לפקדים המצויריס בתוכו כאל קבוצה. בנוסף, ניתן להשתמש בשיטות ציור (לדוגמה 6חו] ו-)חוזק) כדי לצייר על תיבת התמונה. כדי להשתמש בפקד כמכולה, ראשית הצב את הפקד על הטופס. לאחר מכן, בחר פקד מסויס מארגז הכלים וצייר אותו בתוך גבולות תיבת התמונה. כאשר תזיו את תיבת התמונה או תשנה את מאפיין פ|פופו\ שלה, הדבר ישפיע גם על הפקדים הכלולים בה. ההבדל המשמעותי ביותר בין פקד 10806 ופקד אסם6זנט6וק הוא שפקד אספספזטססוס אינו מאפשר לשנות את גודל התמונה. כברירת מחדל, מציג פקד אספפזטשסום רק את אותו חלק מהתמונה אשר נכנס לגבולות הפקד. אס התמונה גדולה יותר מגודל הפקד, החלק השמאלי העליון של התמונה מוצג. אס התמונה קטנה מגודל הפקד, מושאר רווח ריק מסביב לשולי התמונה. בין אס התמונה מוצגת או לא, הרי שהיא נטענת בשלמותה לתוך הפקד, וזמינה להצגה באס גודל הפקד משתנה. הגדרת הערך 6טזד במאפיין 4605126 (גודל אוטומטי) משנה את צורת פעולתו של הפקד, כך שהוא ישנה את גודלו כדי להתאים לגודל התמונה הנוכתחית. בדומה לשימוש בפקד 10806, הפינה השמאלית העליונה מעוגנת במקומה, ושינוי גודל הפקד מתבצע לכיוון ימין ומטה. עס זאת, אין לבלבל בין מאפיין ופסוה של פקד א680ז60וק לבין מאפיין 5066 של פקד 6 פקד א680זטשסוק שומר תמיד על יחס הצלעות המקורי של התמונה המוצגת, ללא תלות במימדי הפקד. תרשיס 19.6 מראה אותה תמונה, מוצגת באמצעות שני פקדי אס6זטשסוק, אחד עס מאפיין 26ו5סוה המוגדר 8156 והאחר עס מאפיין 56ספט המוגדר 6טזד. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 521 [< ום)=. 1 80 6זווסו .₪ שזך = 28 05וום. 68 = 26ו05)גום. 8 = 28ו105וום. תרשים 19.6: מאפיין 6קַפסזטה מגדיר האם גודל פקד אס8פזש6וק משתנה כדי להתאים לגודל התמונה המוצגת. שים לב כי גודל התמונה עצמה אינו משתנה הדרך הפשוטה ביותר להבין כיצד פועל מאפיין 26056 היא ליצור יישוס פשוט לניסיון. ראשית, צור פרויקט סטנדרטי עס תיבת רשימה 816 ועס פקד אספ6זוססוס. לאחר מכן הכנס את הקוד הבא לטופס: ()080) וחזס=] 500 סספּעווק סז = 526ססט. 61זססוק "פ\וססחו/\\:6" = חאהק. 61וו= "קוזם.*" = הזסאהק. 1סון= 50 0חם ()66ו| 61| 50 סספּעווק (6רחה חש 1161 8 "\" .8 האהק. 61 )08016076 .1 = 6זנססוק. 61נססוק 50 0ח= בעוד אתה לוח על שס קוב בתיבת הרשימה 6|6, שיס לב כיצד גודל תיבת התמונה מתאים עצמו לגודל התמונה שנטענה. לעיתים קרובות, מאפיין כוּה יהיה בלתי רצוי שכן תיבת התמונה עלולה להסתיר פקדיס אחרים. במקרה כזה ניתן להשתמש בפקד 6חז או לחילופין להציג את התמונה על טופס נפרד. שיטות גרפיקה השימוש בפקדים אינו הדרך היחידה להוספת גרפיקה ליישומים. 8856 |%1508 מספקת גס מספר שיטות אשר יכולות לשמש לציור על טופס או בתוך פקד אספשזטטסוס. ניתן להשתמש בשיטות אלו גם עס אובייקט זסשחוזק (מדפסת) כדי לשלוח את הפלט אל המדפסת. אם משתמשיס בשיטה ללא הגדרת אובייקט מסוים, פלט השיטה נשלח לטופס אשר נמצא במיקוד באותו זמן. כדי ליצור סוגים רביס של אובייקטיס גרפייס ניתן להשתמש בשיטות הבאות: + 6ח1] - שיטה וו מציירת קו או תיבה. + 666 - שיטה זו מציירת מעגל או אליפסה. 9%, + 05% - שיטה וו ממקמת נקודה בודדת על אובייקט היעד. 2 סדנת לימוד 6.0 8\ + %חוסק - שיטה זו מחזירה צבע של נקודה מסוימת. + 6זטש6ולזחוהק - שיטה זו מציירת תמונה המאוחסנת בפקד אחר, על אובייקט היעד. + 65 - שיטה וו מנקה את אזור הפלט של אובייקט היעד. + >חות - שיטה וו ממקמת טקסט על אובייקט היעד. באפשרותך להשתמש בכל אחת מהשיטות הללו, כדי לצייר על אובייקט. לפני שנתאר כל אחת מהשיטות, חשוב לציין כי מאפיינים מסוימיס של האובייקט עליו אנו מצייריס, משפיעים על הדרך בה עובדות שיטות אלו. טבלה 19.2 מאפייני ציור המשפיעים על צורת הופעתה של גרפיקה שם המאפיין תפקיד 6הזס | מגדיר כיצד משפיעים צבעי הציור והצבעים שכבר קיימים על האובייקט זה על זה ץז | מגדיר תבנית ציור אמוס | וזו)\אוהזסם | מגדיר רוחב גבול של קווים ועיגולים זסוס6!ו= | מגדיר צבע המשמש למילוי מלבנים או עיגולים וו | מגדיר תבנית המשמשת למילוי מלבנים או עיגולים זס|600ס= | קובע את הצבע הראשי המשמש לציור בעזרת שיטות גרפיקה, אם לא הוגדר כל צבע במהלך הקריאה לשיטה 608 סטוה | קובע האם פלט השיטות הגרפיות מעודכן אוטומטית כאשר החלון מוסתר (רלוונטי רק לגבי וחזס= ו-א680זט6וק קווים ומעגלים ניתן להשתמש בשיטה 6חז1 לציור קוויס ותיבות. כדי לצייר קו, ציין את נקודות ההתחלה והסיום של הקו ביחס למערכת צירים אשר ראשיתה בפינה השמאלית העליונה. לדוגמה, קטע הקוד הבא מצייר קו ירוק מהפינה השמאלית העליונה של הטופס ועד לפינה הימנית התחתונה: 6פחו5 5 2ץ ,6פַחו5 5 2א חחוס ה0ו/\508|6. 1 וחזס-] = 2א 5. 1 וס = 2ץ חססזססטץ, (2ץ ,2א)-(0 ,0) 6חו 1 אס תשמיט את נקודת ההתחלה של הקו, המיקוס הנוכחי יהווה את נקודת ההתחלה. המיקוס הנוכתי מוגדר כנקודת הסיוס של הקו האחרון שצויר, ניתן להגדיר את המיקוס הנוכחי באמצעות שימוש במאפייני חסזזט ו-שחשזוטס של האובייקט. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 523 לדוגמה, הקוד הבא משמש לציור משולש על טופס. שיס לב שקבוצת הקואורדינטות הראשונה מושמטת בכל קריאה לשיטה 6חו]ן. סטפ סזפּעווק 0 = >סחסזזוו6. 1 רחוס 0 = סחסזזוו6. 1 וחוס= 0 ,(750 ,2000)- שחו | סטופטעט ,(1250 ,2000)- שחו | (750 ,1500)- שחו | 50 0חם בהצהרה האחרונה בקטע קוד זה, השמטנו את פרמטר צבע הקו. אם לא מוגדר כל צבע, הקו יצויר בצבע המופיע במאפיין זס|660זס] של האובייקט. אתה יכול להוסיף את הפרמטרים 8 או =8 אחרי פרמטר הצבע, כדי לצייר תיבות, ותיבות עס מילוי (בהתאמה). לדוגמה הפקודות הבאות מציירות שתי תיבות על טופס : 8 ,6טוהפע ,(1800 ,500)-(850 ,100) 6ח1 = ,,(2450 ,900)- 6ח 1 כאשר אתה מצייר תיבה, הקואורדינטות המועברות לשיטה 6חו1 מייצגות את הפינה השמאלית העליונה והפינה הימנית התחתונה של התיבה. גס לשיטה 617616 פרמטרים אפשרייס רביס. תחביר השיטה בצורתו הפשוטה הוא: ₪ (ץ,א) 666 הפקודה מציירת מעגל ברדיוס 8 ואשר מרכזו נמצא בנקודה המצוינת על ידי +,א. בדומה לשיטה 8ח11, הדוגמה והצבע המשמשים לגבול המעגל ולמילוי, נקבעים על-פי ההגדרות של מאפייני האובייקט. להלן התחביר המלא של שיטת 66זו6 : [350664 ,600 5070 ,זסוס6] ,80105 , (ץ,א) [5660] 6|6זו66%.0נטס הארגומנטיס 5881 ו-0ח6 משמשיס לציור קשת במקוס מעגל שלס. הערכים 5091 ו-0ח6 הס זוויות מעל האופק ומבוטאיס כרדיאניס (כדי לבצע המרה של ערך זווית ממעלות לרדיאנים, יש לחלק את ערך הזווית במספר 180). טווח הערכיס של 5911 ו-0ח6 הוא מ- 2ח- עד 2ח. אס תשתמש בערכיס שליליים עבור 50971 ו-0ח6, יצוירו הקווים ממרכו המעגל אל שני קצות הקשת. הקוד בדוגמה הבאה מייצר גזרה אשר נעה סביב מרכז המעגל בדומה למסך מכיים : ()א6ו|0 וחזס=] 500 סספּעווק 9 = 1 6005 5 = 805125 60750 זז 5 זז ,106067 5 ץ 1006 5 א הזוס 56 5 3000 ,016חו5 5 +ל5סזבּ הזוס 1 5 +הטס6ח וחוס החזס? 6חץ +ס 0016 6 חו 6ו6זו6 8 צופזס' 2 / ח6.568|6\\/!0%] = א 4 סדנת לימוד 6.0 8\ 2 / +00%ו6.568/676] = ץ 7-ו ח6קץקס60פע = 6ססוצוהזס.6ו חח 5 פע = 6וס5ווו. 6 ז,(ץ ,א) 6סזוס.6ז 6זה 803 0חוקססצו5 6 שפזס' חסקזסאפע = 6ססוצוהזס.6 0 = זסוסס!וו=.16 סו|ספפע = 6!ס5!!ו. 6 0 סד 0 = +%חטסשח זס= 60% = 370506 5 + זהטס60ח = הסוב 0 - 870000 = 3760000 הסחחד 360 < סחססזהבּ +[ הסח .8 " 8% 0חוה50 0607605 " ₪ 65125 ₪ " ]0 6זה" = הסטק₪6.63 0 / 1ק * 0חססזה- ,180 / 1ק * ה50סזה- , 7 ,(ץ ,א) סוסזוס פסחסצםסכ 0 / 1ק * 0חססזה- ,180 / 1ק * ה50סזה- , ₪7 ,(ץ ,א) סוסזוס +חטס6ח )אס "חספ" = חהסק6.68ו] סט ₪0 השיטה זחווק למרות שבדרך כלל אין מקשרים בין שיטת אוזס לגרפיקה, שיטה זו היא שיטה גרפית שכן היא יימציירת" את הטקסט על האובייקט כמו כל שיטה גרפית אחרת. ניתן להשתמש בשיטת >חוזק בשיתוף עס שיטות גרפיקה אחרות כדי ליצור תרשימיס או ציורים, או כדי להוסיף הערות לתמונות קיימות. שיטת זחוזם כשלעצמה היא פשוטה ביותר. דוגמת הקוד הבאה מציגה שורת טקסט אחת במיקוס הנוכחי של הטופס: ".605% שחו!-6חס 8 5 פוחד" +חוזק פלט השיטה זחוזס נשלט על ידי מאפייני האובייקט עליו מצויר הטקסט , והס: > 6%ח6זזט0 - מאפיין ה קובע את המיקוס האופקי של נקודת תחילת הטקסט. אחסזוטוס - מאפיין ה קובע את המיקוס האנכי של נקודת תחילת הטקסט. + %חס= - מאפיין זה קובע את סוג וסגנון הגופן המשמש לכתיבת הטקסט. + 600|08ז0= - מאפיין ה קובע את צבע הטקסט. + 60%ז508ח8ז חס= - כאשר הטקסט מצויר על גבי טופס או תמונה, קובע מאפיין זה האס הרקע מאחורי הטקסט נראה מבעד לרווחיסם בטקסט. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 525 אתה יכול להתנסות בשימוש עם שיטת >חוזס ושיטות גרפיקה אחרות על ידי שימוש בחלון 1601806 (מיידי) של 88516 |808ו/. בצע את הפעולות הבאות: 1 צור פרויקט חדש, והוסף פקד אס658זטפסום. 2 | הגדר את מאפיין 860 60 של הטופס ושל תיבת הציור כ-6שטיוד. 3 | הפעל את הפרויקט ואז הקש 863% +!ושס. 4 הקלד פקודות המשתמשות בשיטות גרפיקה בחלון 816ו60וחוח1. חלון 6ז6018חחוח1 נגיש על ידי 6₪1+6 או מתפריט וסו/: "ץסרו" +חוזכ. סז "צוס)ז" לחוזק. 61זנ סוס השיטה 56% ניתן להשתמש בשיטת -056% כדי לצייר נקודה בודדת בצבע המוגדר על ידי מאפיין זס|660זס", על הטופס. גודל הנקודה תלוי בערך המאפיין חזסו/\אופזס. ככל שערך הסו)\\שהזס גדול יותר, כך יהיה גודל הנקודה גדול יותר. שיטת 0560 מציירת את הנקודה במיקוס המוגדר על ידי הארגומנטיס שניתנים לשיטה. הקוד הבא מצייר 100 נקודות במקומות אקראייס על הטופס הנוכתי: זז 5 ץ ,000067ח1 5 א ,ה06ססח1 5 1 הזוס 5 = ח06ו\\עשהז.16] 0 00 1 = 1 זס= ץ 30 א ההס0ח8ז 60056 סאח * (1 + ה00ו//6.563|6)%ח1 = א סאח * (1 + 0 00ו6ח6.5636)ח1 = ץ (ץ ,א) 56%ק | אסא השיטה 6ושם6וקזחובּק השיטה 6זגשסוקזחו8ק פועלת בדיוק כפי שמרמז שמה. היא ייצובעת'י תמונה מאובייקט אחד על אובייקט אחר. על ידי כיוון נכון של הארגומנטיס וש6ואו\ ו-6100%ח עבור אובייקטי המקור והיעד, באפשרותך להגדיל או להקטין את גודל תמונת המקור. קטע הקוד הבא צובע חלק מתמונה מתוך פקד אס8זוטסוק על טופס : 0 ,500 ,0 ,0 ,750 ,750 ,50 ,50 ,6ז6וק.66ו650וכ 6זטססוקסחוהק. חח שורת קוד זו לוקחת חלק מתמונה מפקד אספסזטשוק בשס 6סזטס5סוס, מגדילה וממקמת אותו על הטופס +065וח6. לשיטת 6זטססוקזחוק מספר ארגומנטיס : + 6ז6וק 6סזט50 - תמונת המקור, זוהי התמונה אשר חלקה או כולה מצוירת בייאזור היעד'' (חסופ₪6 זספָזד) על גבי אובייקט היעד. 6 סדנת לימוד 6.0 8\ + ץ 6ח8 א 86%ַז3ד - שני הערכיס המספריים מגדיריס את קואורדינטת הפינה השמאלית עליונה של אזור היעד. בדוגמה הקודמת הציור מתבצע על טופס %חז, במרחק 50 יחידות מהקצה השמאלי ו-50 יחידות מהקצה העליון. ** 526 6%פזד -הפרמטר מגדיר רוחב וגובה של אזור היעד. אס הגודל שונה מגודל תמונת או אזור המקור, התמונה תימתח או תתכווצ כדי להתאים לאזור היעד. + ץ 0ח8 א 06זט50 - ווג המספריס השלישי בפקודה מגדיר את הפינה השמאלית העליונה של אזור המקור, כלומר החלק של התמונה המועתקת. 526 5006 - פרמטר זה מגדיר את גובה ורוחב אזור המקור. שלושת הארגומנטיס הראשוניס הס אלה התיונייס לפעולת השיטה ש6זטססוקזחובּק, שאר הארגומנטיס הינם אופציונליים. אם מגדיריס רק את שלושת הארגומנטיס הראשוניס, כל תמונת המקור תועתק לאזור היעד בגודל מלא. להלן מספר שימושים אפשריים לשיטת 6זטססוק6חו8ק לצורך יצירת גרפיקה: > לספק פונקציית הגדלה כדי לבחון מקרוב אזור מסויס של תמונה. היכולת שימושית לצורך יישוס ייהצג לפני הדפסה'' (ש6וע6זק +חוזק) בתוכנית שלך. + להעתיק או למחוק אזור מסויס של תמונה. > להזיו תכולת פקד א680%זו6₪וק לאובייקט זססחוזק, לדוגמה, כדי למקס לוגו של חברה על גבי דוח. כדי לראות דוגמה המשתמשת בשיטת 6זטססוקצחוהק ובמספר שיטות אחרות שהוצגו עד כה, ראה את תרשים 19.7 (זו תמונת דוגמה מיישוס, היישוס או הקוד אינס מצורפיס לספר). יישוס זה יילוכדיי מידע על שמות שיריס ומבצעיהם, מתוך שידורי לווין של שירותי מוסיקה טלוויזיונייס. היישוס פועל בצורה הבאה: 1 קוד המוקלד לתוך פקד זפוחוד מפעיל את התקן לכידת הווידאו 'יץְסְפחפ'י, אשר לוכד את התמונה המוצגת על מסך טלוויויה. תוצר לכידת הווידאו מאוחסן במאפיין 6זנשסוק של פקד עְסְסְ8ח5. 2 שיטת 6ז6₪0וקזחו? משמשת להעתקת חלקו התחתון של המסך, אשר בו מוצגיס נתוני השיר, מתוך פקד עְסִַח5 לפקד אספסזנטסוק (אשר תוכנן כך שיהיה גדול יותר מפקד עְסְטִַח5) הנמצא בצידו הימני של הטופס. 3 התהליך חוזר על עצמו מספר פעמיס כך שבתוך פקד אספזטטסוק נוצרת תמונה משולבת המכילה את כל המידע. 4 היישוס מוסיף את ערך מונה הקלטת לפקד אספפזוש6וק באמצעות שיטת שחוזס, והתמונה נשמרת בדיסק באמצעות שיטת 6ז58/60600. התהליך כולו חוזר על עצמו כעבור מספר דקות עבור השיר הבא. 5 קבצי הגרפיקה שהתקבלו מספקיס אמצעי לאיתור שיריס על הקלטת. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 527 4 :ז6)חטס:) | 7% 9:28:56 4/5/97 :6ח= | ₪ 1:28:56 4/5/97 :וזהו5 ₪ 146% 4/5/97 1:43:58 41 1 // זסחבּו\ סא :פוזו בוםטאו-0 :עם שסו סצ :6 90 !|!!כ) :זזכ) ס %ם ו תרשים 19.7: ניתן להשתמש בשיטת פזשסוקזחו3ק כדי לשלב מספר תמונות לתוך תמונה אחת שיטות גרפיקה אחרות שתי שיטות נוספות שהוזכרו בסעיף הקודס שיטות גרפיקה, הן 615 ו-+חוספ. שיטת 5 (ראשי תיבות של 56766 6163 בדומה לפקודת 005 בעלת שס זהה) מוחקת את כל האובייקטיס הגרפיים שצוירו באמצעות שיטות גרפיקה על טופס או על פקד א680זנסוק. שיטת זחוסש מחזירה צבע נקודה מסוימת בתבנית 68א, כפי שניתן לראות בדוגמה הבאה: ()080) וחזס= 500 סספּעווק אסם 60 8 עשפזס' 6 = צו8ז60 ססטה. 6 ,60מסע ,(500 ,500)-(0 ,0) שחו !1 50 0חם = ,0!6ח51 5 9 ,06001ח1 5 1%8ח5 ,1056067 5 הסאטט )השס 6פטסו\ וחזס= פט5 סהעחוק (6פַחו5 ₪5 ץצ חסחד סשמסעט = (צ ,אחוסק זז "אס שוש חו 15 (" 8 צ ₪ " ," 8 א 8 ") זחוסס סד" אסם טפ 6 "א0ם 6 חס >סח 5 זחוסק שד" אס 5 + 0חם 50 0ח= הקוד בשגרת האירוע חאוסס6פטסו! משתמש בשיטת זחוסק כדי לבדוק האס המיקוס של מצביע העכבר בזאמן שהמשתמש לת על לחצן העכבר נמצא בתוך התיבה האדומה שצוירה בזמן שהטופס נטען. לסיכום, על אף שסקירה מפורטת של אפשרויות 851 גרפי הוא מעבר להיקפו של פרק זה, כדאי שתשים לב כי מספר קריאות אל פונקציות 871 גרפיות מאפשרות לך לבצע 8 סדנת לימוד 6.0 8\ דבריס ששיטות גרפיקה רגילות לא מאפשרות. לדוגמה, פקד 115/16 (תצוגת רשימה) אשר פועל כמו החלונית הימנית של זסזס|קאם 5שוססחו/ץ. במצב תצוגה זסס6ח (דוח) (או מצב |₪0689 בתוכנת זסזס!סאם), סימון אובייקט מסויס מהרשימה, מסמן רק את העמודה השמאלית, עובדה המקשה על קריאת שורה שלמה לכל אורכה. לעומת זאת, ניתן להשתמש בקריאות 1ק גרפי כדי לצייר קוויס משלך לאורך כל העמודות. הדוגמה בתוכנית 19.1 משתמשת במספר קריאות 51 כדי לבצע משימה זו. תוכנית 19.1: [קה/\החכ - שימוש ב-1קה - גרפי להרחבת יכולות פקד 6₪ו/115%. 09 ] 5 (8חס ]1 5 סחצוח |83/ץ) "5032" פ! | 0606 הסססחט- 6זבּ|ססכ 6סהטוזוק | 06 |3/\ץ8 ,חס ]1 25 חח |3\ץ8) "32זספט" סו ] ₪6!695006 הסטסחט- 6זב|ססכ סספטוזק 8חס ! 5 (פַחס | 5 ,חס ] 5 א |3/\ץ8 ,חס ] 5 06ח |3/ץ8) "60132" טו1 ס דסחו | הסססחט- 6זבּ|ססכ 6ספטוזוק 9 ! 5 (סחס | 5 ץ |3\ץם ,חס ] 5 א |8/ש5 ,חס | 5 06ח |3/\ץ8) "40132" סו | אםס דעס הסססחט- 6זבּ|ססכ 6שסהטוזוק 8חס | ₪5 (זק\ ד\001ק 45 +הוססק! ,חס | 5 ץצ וב\ץם 1ח\ דאז סק 6קץד ססהטוזק 98 ₪5 א 08 5 ץ 6מץד סחם ()1]080 וחזס-] 500 סספּעווק 600 15| 8 סז 5רח0סו 100 8005 6006 פוחודי רח6ז50! | 5 קוחם ד(פס וחוס זז 5 | וס 3 = 16.568!61006/] 50/61 ].6] וטו +סססעטן = וסו/\. "1חוחט!|ס0" ,,680015.00רוהרחטוס6. "2חהרח!|ס" ,005.00 68רוהרחטוס6. 0 סך 1 = | זס] (1 8 " 156" , ,)50706005.00 | = קוחם ד(סס 56% מס ד קוח6 ד[טס ,8 " קסד" = (5)1ח106סט5. קותם דנטס ו 1 )אסא וטו\\ 0ח= סט 0ח₪ פרק 19: שימוש במרכיבי התכנון הוויזואלי | 529 (הח506! |. סו 0601 35 166 |3/\ץם )אסו[ח106 1צוסו/150 1 50 ססהטוזק בח ] 5 06ח חחוס הדסק 5 אסחוסק וחוס טחס ] ₪5 |560/3! הזוס 1 5 %הטוסרוח וחוס 8חס ]| 5 סוחס דו וחוס 6 5 שוסקסזכ 568!61006 5'וחזס1 סחדי ץוז6קסזכ אזסעו 60 פוחץ 107 פ|סאוכ 0+ ז56' ("א")00ו6א6 ד.16] = 6חטוסח 1צוסו/150 | הסו\ ה (סחצוח. )67026 = 06 (0סחוסכ ,סקס ד. 16 ,0 ,06ח)אםס דשטסו] = מוחסדו (קס ד. 16670 , חססו/\. ,06ח)ס ד6ח11 = קוחסדו (0סחוסס ‏ 00%6ו6רוח + סס ד. 16 ,0 ,06ח)אםס דסטסו = מוחסדו טוח + קס ד. 156 , הססו/\. ,06ח)ס ד6חו1 = מוחסדו (06ח , סחעוח. )61685626 = קוחסדו וטו\\ 0ח= סט 0ח= הקוד בתוכנית 19.1 מדגיס את אחד העקרונות הבסיסיים בשימוש בקריאות אל זַקג גרפי: הקשר ההתקן 0א06ח60 606וצ6כ). הקשר התקן יכול לשמש קריאות אחרות אל 1 גרפי, כדי לצייר על אובייקטיס. הדוגמה משתמשת בקריאה 6606 כדי לקבל את הקשר ההתקן של פקד 6ו/115%, ואז היא מבצעת קריאה אל סזפחו! כדי לצייר על פקד צוסו/50ו]. עבודה עם טקסט וגופנים כמעט כל תוכנית שתכתוב ב- 8856 |%1508 תדרוש ממך להשתמש בטקסט. בפרקים קודמים למדת על הצגת טקסט בתוויות ובתיבות טקסט. כמו כן למדת על פונקציות מחרוזת, המשמשות לעיבוד טקסט ברמת קוד התוכנית. פרק וה :רתיב בנושא השימוש בטקסט וייראה לך כיצד להציג טקסט בצורה האינטואיטיבית ביותר עבור משתמשי התוכניות שלך. 0 סדנת לימוד 6.0 8\ התנהגות תיבת טקסט בפרק 4, שימוש בפקדי ברירת המחדל של 83516 [ב8₪3ו/, הוצגה בפניך תיבת הטקסט. אתה כבר יודע כי מאפיין 16% משמש לאחסון ואחזור מידע. בנוסף למאפייניס הרגיליס שנדונו בפרק זה, יש מספר מאפיינים נוספיםס ההופכים את פקד א80)אסך (תיבת טקסט) לגמיש אף יותר: + 106660 (נעול) - מאפיין גה מונע מהמשתמש להקליד נתוניס לתיבת הטקסט. >> 0%%ח6 |אהּ!\ (אורך מקסימלי) - מאפיין זה מגביל את מספר התוויס שתיבת הטקסט מקבלת. + ]2855070608 (תו סיסמה) - מאפיין וה גורס לתיבת הטקסט להסתיר את המידע המוקלד על ידי המשתמש. + תִחִחַח56!!6 (אורך בחירה), 561588 (תחילת בחירה), 56116% (טקסט נבחר) - מאפייניס אלה מאפשריס למשתמש לשנות רק את החלק המסומן של הטקסט. נעילת גישה למשתמשים ראשית, נדון במאפיין 106%60, אשר מאפשר לך להשתמש בתיבת טקסט לצורכי תצוגה בלבד. השאלה המתבקשת היא, מדוע לעשות כך במקוס להשתמש בפקד |1806 לצורך התצוגה! התשובה היא, שלמרות שתיבת טקסט יינעולהיי אינה מאפשרת למשתמש להכניס מידע, היא מאפשרת לו לגלול, לבחור ולהעתיק קטעי טקסט. כמובן שקוד היישוס עצמו יכול תמיד לשנות את תוכן תיבת הטקסט, בין אס היא נעולה או לא. כדי לנעול תיבת טקסט, פשוט הגדר את מאפיין 106660 של התיבה 6טזד, כפי שניתן לראות בדוגמה הבאהח: אסם דא ד = 5161 ג 6%5ס |' 6 = 00660 ).650 60 "!וח 60 680% טסץ" = 6% 650.7 60 אס סרד אז אספ דאשד צמם/ם 10665' 600 ₪5 |סשחס6נסס חחוס 5 חן [סשח600[טס ₪86 זס= 6 ד = 00660 ].|0יח00[60 חס 0% ד 15 |סשח60[פס ז60מץד זז וסשחס6(טס )אסו מנקודת מבט ממשק המשתמש, מאפיין 106%60 מאפשר לך להשתמש באותו מסך לשם הכנסת וחיפוש נתונים. נעילת תיבת טקסט מונעת מאנשים בלתי מוסמכים לשנות מידע, כפי שמוצג בתרשים 19.8. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 531 |< |ם =. עזזסקסז] 60אסס.| .₪ "3 3 5 מחך | .סז 0) 561 5! עוזסקסזק 60אסס | 5'אס0ם )א ד פוחך בחוו || 58/60 זב וסשמס=) עבּ!קפום תרשים 19.8: השימוש במאפיין 106%60 מונע עריכה בלתי מכוונת של טקסט. שים לב כי בתפריט המשנה (הנבנה אוטומטית על ידי פשססחוו)) רק האפשרות צְ600 זמינה, אם תיבת הטקסט נעולה הערה: אין לבלבל בין מאפיין 106660 למאפיין ומח (פעיל). מאפיין 106660 אינו יוצר את אפקט זטס-60ץ8ז (סימון באפור) (כלומר התיבה פעילה ונגישה אך אי אפשר לערוך את תוכנה). בנוסף, מאפיין 106660 מאפשר לבחור ולהעתיק טקסט מתוך התיבה, בעוד מאפיין ס6טהח5 אינו מאפשר זאת. מאפיין ה0%ח6 ואבו כאשר אתה מעצב טופס להזנת נתונים, אחת מהמשימות אשר אתה חייב לבצע היא בדיקת תקפות הנתונים (חסו080ו!\ פּזהכ). סוג אחד של בדיקת תקפות הנתוניס הוא הבטחת התאמתו של המידע המוקלד לגודל השדה המיועד בבסיס הנתוניס. למרות שבדיקה כזו יכולה להתבצע בקוד עצמו על ידי שימוש בפונקציה ח16, ניתן לחימנע מהצורך בקוד הנוסף על ידי שימוש במאפיין חזסַח6 |א8\ של פקד אסם)אפד. מאפייו הִזפַח6!א3ו מאפשר להגדיר את מספר התוויס המקסימלי שניתן להכניס לתיבת טקסט, ללא קשר לגודל התיבה על הטופס. מאפיין זַבּ06יוס/ש55בּק אס אתה משתמש בתיבת טקסט כחלק מתהליך כניסה לרשת (חו109) תרצה בוודאי להסתיר את הסיסמאות המוקלדות על ידי המשתמשים. כדי לבצע זאת, פשוט הכנס תו כלשהוא למאפיין ז8ח006זסשש855ק של תיבת הטקסט. מאפיין וה משנה את התנהגות תצוגת תיבת הטקסט, כך שהתו שהגדרת כי הוא ז070603צ\7855 מוצג בתיבה במקוס התוויס במאפיין 0א6ד. ייתכן כי ראית אפקט זה פעמיס רבות כאשר ביצעת חופָס1 אל 5\וססחו\\. שים לב כי מאפיין 6%ד עדיין מכיל את התווים המקוריים שהוקלדו, וקוד התוכנית רואה את הטקסט ה"אמיתייי. למרות שניתן להשתמש בכל תו למטרה זו, נהוג להשתמש בתו הכוכבית (*) להסתרת טקסט. 2 סדנת לימוד 6.0 8\ עריכה בתיבת טקסט תיבת טקסט סטנדרטית מאפשרת למשתמש לסמן טקסט באמצעות העכבר, על ידי הקשת א1%ח601+5, או הוזות הסמן באמצעות החיצים. אז, יכול קוד התוכנית לעבד את הטקסט הנבחר באמצעות מאפייני 5616, חזחַח56|16 ו-56!508. ניתן להשתמש במאפייניס אלה מתוך התוכנית, כדי לעבוד עס קטעי טקסט שנבחרו. הבט בדוגמה המוצגת בתרשים 19.9. במקרה זה מאפיין 6% 5611 יכיל רק את המללים 'יופשס 60קוחטן 59 +82! סחז'י. מאפיין חז0ַח6 56/1 יכיל את הערך השלס 25, שהוא אורכה של מחרוזת תוויס זו. ומאפיין 56158 יכיל את הערך 20, כלומר הטקסט הנבחר מתחיל בתו מספר 20 שבתיבת הטקסט. |< ום) = ]6 ז החועקס:) .₪ אס] האוסזם אסוגום סד :80% 15% ססזגוספ .000 32| 6\]) זס/יס בוסםוחוון :80% 168% ססזגו50 תרשים 19.9: המשתמש יכול להעתיק טקסט מתיבה אחת, ולהדביקו בתוך תיבה אחרת בנוסף על בדיקת איה חלק מהטקסט נבחר, ניתן גסם להגדיר את ערכי מאפייניס אלה מתוך הקוד וכך לשנות את התחוס הנבחר. בכל פעם שמגדירים את ערך המאפיין + יש להגדיר גם את מאפיין חזפַח6 ]|56 כדי לבחור מספר תוויס. כדי לסמן את שלושת התוויס הראשוניס, ניתן להשתמש בקטע הקוד הבא : 0 = 050.56|5093 )אס 3 = 601 ]|65%.56 דאס ניתן לשנות את ערך המאפיין 600% 561 מספר פעמים. פעולה זו גורמת לקטע הנבחר לגדול או לקטון, וכן לעדכון אוטומטי של מאפיין 5616%. הגדרת ערך המאפיין + !58 מתוך הקוד גורמת לקטע הטקסט הנבחר הנוכחי להיות מוחלף על ידי מחרוזת התווים החדשה, לדוגמה: ".816 חהורהססחו ס%חס 66קוחטן" = 656 656.56 [6)ס אחד השימושיס למאפיינים אלה הוא סימון כל תכולת תיבת הטקסט. נניח לדוגמה כי מוצגות מספר תיבות טקסט בו-זמנית, והמשתמש אמור לערוך את תוכנן. נרצה לגרוס לכך שבומן שהמשתמש מקיש פד כדי לעבור בין התיבות, תסומן כל תכולת תיבת הטקסט, כך שהמשתמש יוכל להקליד את הקלט מבלי למחוק את הטקסט שמופיע בתיבה. בדוגמה הבאה מיושם רעיון זה בשגרת האירוע 601-0605 של תיבת טקסט: ()207-06005) 0656|66 0 5 סספּעווק 0 = 50|666.50|5004)% (0א6 00150!601.7)ח6 1 = 600 ]|56|666.56-א 50 0חם פרק 19: שימוש במרכיבי התכנון הוויזואלי | 533 ניתן ליישס מאפיין זו גם על ידי שימוש בפקודת 066/5ח56 (שלח מקשים) כדי לשלות את צירוף המקשיס הנדרש לסימון כל תכולת תיבת הטקסט: ()207-06005) 0656|66 0 5 סספּעווק ("7סא=++7םו0ס+") 5600665 50 0חם עבודה עם גופנים וצבעים למרות שתמונות וציוריס מוסיפים רושס ויוואלי ניכר ליישומים שלך, עיקר רוב התוכניות יהיה כנראה שדות הטקסט להכנסת והצגת נתונים. לעיתים הוספת תמונה לצורך הדגשת טקסט מסוים אינה אפשרית ואף אינה מועילה. במקוס ואת יש להשתמש בגופנים ובצבעים הנכונים כדי ליצור את הרושס הרצוי. אובייקט +חס-] אס השתמשת במעבד תמלילים בעבר, אתה מכיר בוודאי את המושג גופן (טחס)). במהלך העיצוב ניתן להגדיר גופניסם לפקדיס ולטפסים על ידי שימוש בחלון המאפיינים. לאחר הגדרת גופן לשימוש הטופס, ישמש גופן זה להצגת כל הפקדיס שיצוירו על הטופס. ייתכן כי אתה ווכר מפרקיס קודמים, כי מאפיין חס" של אובייקט הוא למעשה אובייקט בעצמו בעל מאפיינים משלו. להלן מאפייני האובייקט %חס] המשמשים לשליטה על צורת הופעת הגופניס בתוכנית : + שוח8א (שס) - מאפיין שס לאחד הגופניס המותקניס במערכת, לדוגמה: 'י|פּוזה'יי או !יחה חס שצוס\\! 65חחודיי. + 806 (מודגש) - מאפיין 6/₪8|56טזד אשר שולט באפקט ההדגשה של הגופן. אותיות בעלות מאפיין וה נראות כהות ועבות יותר מאותיות רגילות. + 6ו|168 (נטוי) - מאפיין 8|56]/פטזד אשר קובע האס האותיות נטויות. * 6חו06ח (קו תחתי) - מאפיין 9|56/פטזד הקובע האס הטקסט מופיע עם קו תחתון מתחת לכל תו. * 5026 (גודל) - מאפיין זה שולט בגודל הגופן, ערך המאפיין מוגדר בנקודות טחוסק). נקודה אחת שווה ל-1/72 אינטש, כלומר אותיות בגודל 72 נקודות הן בגובה אינטש אחד בערך. + ת8ַטסזח501660 (קו חוצה) - מאפיין 8|568=/פטזד הקובע האס יצויר קו דק במרכו הטקסט לכל אורכו. > תַחִחָופ/\ (עובי) - שולט בעובי הקו המשמש לכתיבת הטקסט. שני הערכיס האפשרייס למאפיין אה הס 400 ו-700, המשמשים לכתיבת טקסט רגיל ומודגש בהתאמה. 5 3 (סט תוויסם) - קובע איזו קבוצת תוויס תשמש לכתיבה (0870ח509, 5 0סבַחסאאם, 656ח8כה1). מאפיין גה מוסבר ביתר פירוט בקובצ ס|6ח. 4 סדנת לימוד 6.0 8\ %, > כפי שכבר שמת לב בוודאי, כדי להגדיר את השימוש בגופן מסוים עליך לדעת את שמו. ייתכן כי במערכות שונות יותקנו גופניסם שוניס. לאובייקטיס ח50766 (מסך) ו-זסזחוזק יש אוספי חס" המפרטים את סוגי הגופנים הקיימים. ניתן לכתוב תוכנית פשוטה אשר תבנה רשימת כל הגופנים המותקניס במערכת. התחל פרויקט חדש, והקלד את הקוד הבא לשגרת האירוע 616% של הטופס. לאחר הפעלת התוכנית, לחיצה שמאלית על העכבר תגרוס להדפסת שמות כל הגופניס המותקניס על גבי הטופס: זז 5 %הטס6ח חחוס ד = 6078 סוה 6 1 - +טסחס-. 50766 סד 0 = %הטס6ח וס (ח )5 חס=. 56766 = שוחב\\.שחס=. 6 (חהטס)ח)פחס=. ח50766 שחוזק. 16 %חטסשח )אסא כמו כן, שיס לב כי רוב הגופניס מכיליס יותר תוויס מאלה שניתן להפיק באמצעות המקלדת. לדוגמה, גופן 56 5805 5 מכיל תוויסם מיוחדיסם להצגת שברים ואותיות מוטעמות. ניתן להציג תוויסם אלה על ידי שימוש בפונקציית %זח6. הקוד הבא מציג את כל 256 התוויס הקיימיס (כאשר רביס מהס אינס ניתניס להצגה כלל) על הטופס: זז 5 | וס 5 סך 0 = | וס ;" " ;(9)1זח6 %חוזק. 16 %חוזק.6\ הסחד הל0ו/.6] =< >סחסזט6.סו +[ | אסא הוספת צבע טופס המעוצב בעזרת רכיביס אפוריס בלבד נוטה להיות משעמם. ניתן להקצות צבעיס לטופס ולפקדיס בקלות על ידי שימוש במאפיינים זס|660זס= ו-זס|ס60אס888. כדי להגדיר מאפייניס אלה בזמן העיצוב, ניתן להשתמש ברשימת הצבעים (פו! זסוס6) או בלות הצבעיסם (28|6%6 זס|ס6). כדי לראות את רשימת הצבעים, פתח את חלון המאפייניס של טופס או פקד כלשהו, ולחץ על המאפיין זס|660זס=] או זס|886%60. רשימת הצבעיס מוצגת בתרשיס 19.10. שיס לב כי רשימת הצבעיס מורכבת משני חלקים : 08|6066 (לוח) ו- 556 (מערכת). 6 מאפשר לך לבחור צבעים ספציפיים, בעוד 5506 מציג בפניך את הצבעיס בסכימת הצבעים הנוכחית של פווססחו\\. אס תשתמש בצבעי ₪ח5/506, כל שינוי שתבצע בהגדרת צבעי פאוססחו/\ בלוח הבקרה, שְ8!ספום (תצוגה), יתבטא גס בצבעי התוכנית שלך. יש לקחת לתשומת לב עובדה זו, כאשר שוקליס הפצת תוכנה. לוח הצבעיס, המוצג בתרשיס 19.11, מאפשר לך לשנות את צבעי הקידמה והרקע באותו זמן. כדי לראות את לוח הצבעים, סמן פקד או טופס ואז לתצ על וסוסס 6 מתוך תפריט עסו/. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 535 | ד הזזס= זט | 390 | חכ 6 נה ₪ | ₪ 6% זבם חוד ₪66 ך זז 6-מ ם סה טשוססבתז ך 50366)זס/\ חס ב6וופקה ₪] הנכ ₪ 15% +חםוולסותו [] וי-וי | תרשים 19.10: ניתן להגדיר את מאפייני זסו660זס= |-זסו886%60 מרשימת הצבעים 6] ) סחוזסם תרשים 19.11: תיבת לוח הצבעים היא אמצעי נוסף לשינוי צבעים בזמן העיצוב שנה צבעיםס בזמן העיצוב, והבט בערכי המאפייניס זס|660זס= ו-זס|ו60א886%. תוכל לראות שהערכיס הס למעשה מספרים. לדוגמה צבע כחול מוצג על ידי המספר 8 בבסיס הקסדצימלי או 16711680 בבסיס דצימלי. ב- 8856 |8ש8ו\ מוגדריס גס מספר קבועיס מובניס לצבעיס מסוימים, ראה טבלה 19.3. כדי להגדיר צבעיס של אובייקטיס בתוכנית שלך מתוך הקוד, פשוט הצב את המספרים הנכוניס במאפייני זסו660זס= ו-זס|0ס6א286 כפי שמדגיס קטע הקוד הבא: צוס||6פע = זס|660זוס=. 1 הזוס ספ = זס|60א1.586 הזוס הערה: קיימים גם קבועים לצבעי ח566ץ5. לדוגמה, הפקודה הבאה מגדירה את צבע הטופס לצבע שולחן העבודה של פאוסבחו/ו: קספש = זס|ו286660. 1 הזוס 6 סדנת לימוד 6.0 8\ טבלה 19.3: קבועי הצבעים המובנים ב- 8856 |1508\ 00008 אאש ה ה \וס||פצ | 65535 חס | 16711935 סשוח/וסע | 16777215 הסיבה שקבועי הצבעים מיוצגיס על ידי מספריס לא רגילים אלה, היא שכל מספר מייצג את רמות שלושת צבעי היסוד: אדום, ירוק וכחול המרכיביס את הצבע הסופי. כדי ליצור צבע מותאם, ובידיעה מהי רמת כל אחד מצבעי היסוד בצבע זה, היעזר בפונקציה ₪68 כדי לחשב את ערך הצבע. ערך כל צבע יסוד נע בין 0 ל-255. לדוגמה, קטע הקוד הבא מחשב את ערך הצבע האפור (רמות שוות של אדום, ירוק וכחול): פחס | 5 זסוססעשסאזן חחוס (192 ,192 ,₪08)192 = זסוס6צוסאן זס|סשע6\!| = וס|ס6א86פ. 1 וס הערה: דרך פשוטה לבדוק את ערכו של צבע מסוים לצורך שימוש בקוד היא לבחור צבע זה מתוך רשימת הצבעים ולראות מהו הערך המספרי המוצג בחלון המאפיינים. פונקציית צבע שימושית נוספת היא זס|60). בגרסאות ישנות יותר של 885|6, כמו 86 ו-0/885|6 ב- 85-005, צבעים היו מיוצגים על ידי מספרים שלמיס עוקבים. פונקציית זסו0860 מחזירה את ערך ₪08 בבסיס הקסדצימלי של צבע מסויס. יכולת זו שימושית אס ברצונך לייצר צבעיס אקראיים, כמוצג בדוגמה הבאה: ()א6ו|0 וחזס= 500 סספּעווק פס ] 45 זסוס86! חחוס 1 5 זסוס6שח1ח חחוס 5 30 0 ח66ש00 זסטרטח וה00ח8ז 60056 (0ח₪ * %16ח1 = זסו|ס%6ח1ח (זס|ס66ח1ח)זסו800 0 = זסוס686ו זס|60 ]| = זס|60א286. 6 50 0ח₪ פרק 19: שימוש במרכיבי התכנון הוויזואלי | 537 אס מקלידיס קוד זגה לשגרת אירוע 61666 של טופס, תגרוס כל לחיצת עכבר על גבי טופס וה לשינוי צבע הרקע שלו. גופנים, צבעים ופקד א80+%א6₪ 416 תיבת הטקסט טובה מאוד לשימושים כלליים, אך פקד א6016080ו₪ מאפשר יתר שליטה על הדרך בה מוצג טקסט. העוצמה של פקד א80)א6 זח6וח, אשר הוצג כבר בפרק 6 שליטה נוספת למשתמש: תפריטים וסרגלי כלים, נובעת מיכולתו להציג מספר פורמטים וצבעיס שוניס באותו אזור טקסט. שימוש אפשרי אחד לפקד וה הוא הצגת מידע מפורט מתוך בסיס נתוניס בתבנית מסודרת, כפי שניתן לראות בתוכנית המוצגת בתרשים 19.12. כאשר משתמש לוח על שמו של אחד העובדים, תוארו ומידע אחר הקשור אליו מוצג בתיבת הטקסט העשירה בצידו הימני של הטופס. למרות שהמידע מוצג בתבנית מהודרת, ניתן להשיג תוצאה זו בהשקעת תכנות מינימלית. הצעד הראשון הוא יצירת תבנית לתצוגה המפורטת הרצויה באמצעות מעבד תמלילים כמו 86ק6זס/\ או 6זס/\ 050%ז6]. עצב את המסמך באותה צורה בה היית רוצה שהנתונים שלך יוצגו, אך אל תקליד כל נתון לתוך הקובצ אלא השאר יישומרי מקוס'י במקומות בהם יוכנסו הנתוניס. דוגמה לתבנית כזו ניתן לראות בתרשיסם 19.12. שיס לב כי התו % משמש לעטיפת כל שומרי המקוס כדי לא לבלבלס עס נתוניס ממשיים. [< ]םן. | 6ופחזהא אס8!אס 7 חסוה ₪ 6|] 6 סז 30060 בו שו" 6וב|קוחם ד תת - - דד זו 602010 7 8110 מ 10 דפס פפמווגום 08 סז ומ פס תרשים 19.12: יש ליצור את התבנית המעוצבת מסוג ₪1 פעם אחת בלבד, ולאחר מכן ניתן להשתמש בה בקלות להצגת נתונים 8 סדנת לימוד 6.0 8\ כדי להציג נתוניס בתיבת הטקסט העשיר, עליך לטעון את התבנית ולמצוא ולהחליף את כל שומרי המקום. דוגמת הקוד הבאה משתמשת בפונקציה המוגדרת על ידי המשתמש בשם 806|6 ₪601 אשר מוצאת שומרי מקוס ומחליפה אותם עם נתונים : (50700 5 5\/8]06 ,1060061 5 6005160 ד 5 "א" .8 5610 .8 "+" סחו=.10ח1+ 5/6 = 66 10.5617ח01+ טט5 0חם (660ו|0 עְב!150כ 60 טפ סזפּעווק ("זז.סזחו\" .8 הזהּק.קקה) 006 |.0וח1+ "סו ההחם" ,"םוה" 610 דח סה "טח 60" ,"דקש" 806!0 ד 6 "הז" ,"= ודד" 66 ד 60 טפ 0חם למרות שהקוד בדוגמה זו הוא פשוט, אתה יכול להרחיב אותו בקלות לכדי כלי עיצוב רב עוצמה. שיטת ₪0 של תיבת טקסט עשיר מאפשרת לך לבצע החלפה של קודיס מוגדריס משלך בתבנית =זח, במקוס לבחור ולעצב כל פיסת טקסט נפרדת באמצעות קוד 88586 |1508/. מכאן... למרות שלא ניתן להציע סדרת צעדיס בדוקה אשר תבטיח פיתוח ממשק משתמש מוצלח, חשוב לדעת כי ממשק משתמש גרוע יגרוס לכך שאיש לא ירצה להשתמש בתוכניות שתכתוב. עם זאת, בקצב המהיר בו מתפתח עולס המחשוב, הגדרת ממשק משתמש טוב תמשיך להשתנות. ניקח כדוגמה את תהליך כיוונון השעון של מכשיר וידאו. כיוונוו שעוניס של מכשירי וידאו ישניס נעשה באמצעות לחצנים ומפסקים, אך שיטה זו הוחלפה במהירות בשיטה מתקדמת יותר של תצוגה על מסך הטלוויזיה. כיום, שידוריס אלחוטייס הופכיס את כל התהליך לאוטומטי לחלוטין בדגמיס מסוימים. כמו מכשיר הווידאו, ממשק המשתמש לתוכניות 8856 |8טפו\ שלך יתפתח במשך הזמן, בעוד תעשיית התוכנה תקבע סטנדרטים חדשים, ואתה תלמד כיצד לעמוד בצפיות המשתמשיסם שלך. כדי ללמוד עוד על ההיבטיס הוויוואלייס של עיצוב ממשק משתמש, עיין בפרקיס הבאיס: % > כדי ללמוד על פקדים המשמשים לעיצוב תוכניות 8856 |1508/, ראה פרק 4 - שימוש בפקדי ברירת המחדל של 83516 ו[ה50ו/ ופרק 12 - הפקדים המשותפים של 1160501%]. + לטיפים כלליים לגבי עיצוב הממשק, ראה פרק 18 - תכנון ממשק נכון. + כדי ללמוד כיצד לעצב יישוס לשימוש ב-טסאו, ראה פרק 31 - מסמכי 6%ע26₪. פרק 19: שימוש במרכיבי התכנון הוויזואלי | 539 חלק 5 נושאים מתקדמים בתכנות בי : 50 8 שו >ן/\ של = פרק 20: גישה ל-471 של פשסשחועצ פרק 21: עבודה עם קבצים פרק 22: שימוש ב-015 לשליטה על יישומים אחרים פרק 23: ארגז הכלים של המומחה 1 20 גישה ל-201 של 5שסשחו/\ פרק 20: גישה ל-1קג של פווסשחוצ\ | 543 1ם\ (ממשק פיתוח היישום - 06718366ח1 פַחווחהההזףסזק הסספסו!סק\) של פוססחו/\ הוא קבוצת פונקציות שמערכת ההפעלה פוססחו/\ חושפת בפני המשתמש. ניתן לקרוא לפונקציות אלו, אשר מהוות למעשה חלק ממערכת ההפעלה פוספחו/ו, מתוך |א8טפו\ 6 כדי לבצע משימות אשר לא ניתן לבצען בקוד ₪856 |1508\ סטנדרטי. לדוגמה, לא קיימת פונקציית 8856 1508 המבצעת אתחול ₪60000) למחשב. עס זאת ניתן לבצע פעולה וו באמצעות שימוש בפונקציית 871 של פאוסטחו\\. ניתן לחשוב על רבות מהפונקציות הכלולות ב- 8856 |808ו/\ כעל ‏ "עטיפות'י לפונקציות מתוך 1ק8 של 5וס0חו/\. השימוש בפונקציות מתוך 1 של פוספחו/\ הוא מסובך יותר מאשר כתיבת פונקציות מותאמות אישית על ידי המשתמש. לכן נהוג לכתוב עטיפות לפונקציות 1ק בהן רוציס להשתמש, ולקרוא להן באמצעות פונקציות אלו. למרות שלא ניתן לראות בפרק וה מדריך מעמיק לנושא זה, הוא מעניק בסיס איתן להכרת השימושיס המצוייס לפונקציות [קג. הבנת 201 של פשסשחו/ש\ מנקודת מבטו של מפתח 88566 |1508/, ניתן לחשוב על פונקציות 01 כעל פונקציות 6 |8טפו/ 'ינורמליות'י. יש להן פרמטרים לקלט ולפלט, ולפעמים הן מחזירות ערך לתוכנית שקראה להן. אך פונקציות 1קה הן פונקציות שעברו תהליך הידור, ומאוחסנות בקבציס נפרדיס הנקראיס ספריות קישור דינמיות - 11 (6חו] 6וחזהחץס ץזבזסו)). כדי להשתמש בפונקציות אלו עליך להוסיף מספר שורות קוד המגדירות את הפונקציה החיצונית עבור 885166 |1508/. במיליס אחרות, כדי להשתמש בפונקציית 1קה עליך להכריז (6ז266|8) עליה תחילה. הכרזות 801 מוכנסות באזור 80005ז66!9 |878ח6 (הכרזות כלליות) של מודול. ממש כפי שמכריוים על משתנים, יש להכריז על פונקציות ]ה כדי שקוד התוכנית יוכל להשתמש בהן. וכפי שמשתנה שהוכרז מספק קישור לאזור בזיכרון בו מאוחסן ערכו, פונקציית 871 שהוכרזה מספקת קישור לקובצ 11פ חיצוני. הערה: המקום הרגיל להכרזות 71 הוא במודול, אך ניתן להוסיף הכרזות אלו גם לטפסים ולמחלקות על ידי הוספת מילת המפתח 6ופעוזק (פרטי) לפני ההכרזה. פקודת ₪260|876 כוללת רשימה של כל הפרמטריס שמקבלת פונקציית 1קה עליה מכריזים, קובץ 11ם בו נמצאת הפונקציה, וסוגי הנתוניס המוחזרים על ידי הפונקציה. שלא כמו פונקציות 8856 |8טפו\ רגילות, הכרזת פונקציית 1ק4 לא כוללת כל קוד. במקוס זאת, פקודת ההכרזה כוללת הפניה לקובצ 11ם המכיל את הפונקציה. מבנה זה מתואר בתרשים 20.1. 4 סדנת לימוד 6.0 8\ | | 01 פופ וחבזט טז] 28510 |הטפו | , | זח 51810 הסוזהזהו 00 וקה 8 390ם |הטפו/ תרשים 20.1: פונקציות 871 מאוחסנות בקבצי 11ם של מערכת ההפעלה. הכרזת [ַקג מאפשרת לקוד 8856 והט5ו/ "לראות" פונקציות אלו הערה: הצהרות 2668876 רבות כוללות פרמטר בשם 858ו|4. הכינוי (85ו|4) מגדיר את שמה "האמיתי" של פונקציית 1קג כפי שהוא מאוחסן בקובץ 11ם, שם זה יכול להיות שונה מהשם בו אתה מעוניין לקרוא לפונקציה זו בתוכנית שלך. לדוגמה, ₪11 בשם 6708/32 כולל פונקציה בשם חסקס| , אך שם זה אינו קביל כשם פונקציה ב- 8856 |8טפוש. במקרה כזה הדרך הנכונה לבצע הכרזת 1קג היא: ,500 5 6וחב\\רסהקכן! |3\ץ8) "הסקס! " 85| "32|סחזסא" ט | הססס!| הסססחט- 6זבוססס חס ] 5 (6חס ] ₪5 6שוז/080ו |וה\ץם 6 |508ו/\ רואה את הפונקציה בשס חססקס! אך היא יודעת על פי פרמטר 85ו|8 שנכלל בפקודת 66!876 להעביר כל קריאה המתבצעת לפונקציה זו, לפונקציה אחרת בשס חסקס! הנמצאת בתוך 11ם בשס 66706|32. הבה נדגיס את השימוש בפונקציית 1ק באמצעות הדוגמה שהבאנו בהקדמה לפרק זה, אתחול המערכת. ראשית, התחל פרויקט םאם 0870ח5090 חדש, והוסף מודול חדש על ידי לחיצה על 1006 800 מתוך תפריט 60[סזס. לאחר מכן, עבור לאזור ההגדרות של המודול, והקלד את פקודת 0668876 הבאה בשורה אחת : = ,חס ] 5 05ה|ט |8/\ץ8) "50732" סו | אפטוססחו//ואם הסססחט- 6זהוססס בח ] 35 (פחס | 45 567/60סחשוס |השעץם הערה: שים לב לקו התחתון (" " 6ז00ס5ז06חט) המופיע בסוף השורה הראשונה. ניתן לחלק פקודת 6ז066!38 למספר שורות, על ידי שימוש ב"תו המשכיות השורה" ( ). שיס לב כי הפקודה 6ז60!8ש מכילה את שס הפונקציה (אשפטוסטחו/ואם), את שס ה-11פ בו נמצאת הפונקציה (56732ט), ואת רשימת הפרמטריס שהפונקציה מקבלת. לאחר הקלדת קטע קוד זה, ניתן לקרוא לפונקציה אשפוססחו/\זואם מתוך קוד |808ו\ 6 בדומה לקריאה לפונקציית 8516 [808ו/ רגילה. פרק 20: גישה ל-1קה של פווססחוש\ | 545 יש לזכור, כי לפני הקריאה לפונקציה צריך להגדיר ערכים חוקיים לשני הפרמטרים לפונקציה. הקבועים הבאים הס ערכיס אפשריים עבור הפרמטר הראשון, 895!ש: 4 = 0₪65= א//ם 6005 סשווטטוק 0 = 10200 א//ם 6005 סשווטגוק 2 = ד₪5800 א//ם 60056 סווטגוק 1 = אעצסס 5 אצ\ם 60050 סוופטוק אס תבחן את הקבועים שהוגדרו בקטע הקוד הקודם, ייתכן כי תשים לב שהס מתאימים לאופציות העומדות לרשותך כשאתה סוגר את פווסחו/\. כל אחד מהקבועים המועברים לפרמטר 885!שט גורס לפונקציה לפעול בצורה שונה, בדומה למאפיין פפָ3!= של פקד 8|00ו הסוח ס6. הפרמטר השני, 0567/60 אוס, הוא פרמטר טיפוסי לפונקציות 401 רבות. והו פרמטר שמור אשר לא נועד לשימוש, לכן ניתן להגדיר את ערכו 0. הערה: קבועים המשמשים עם פונקציות 1קה, מתנהגים כמו קבוע' 8856 |ה150/ רגילים. כדי להקל על קריאת הקוד, מומלץ למקם את הקבועים המשמשים את פונקציות 1קא באותו מודול בו מוכרזות הפונקציות. לאחר הכרזת הפונקציה והגדרת הקבועים, ביצוע הקריאה מתוך הקוד הוא תהליך פשוט למדי. לדוגמה, הקלד את שורות הקוד הבאות לשגרת 1080 חחזס" כדי לאתחל את המחשב: פחס ] 5 |60/3ה5! הזוס (0 ,ד₪₪800 אש/ם)אםפטססחו//וא= = |3/זסחו הפעלת קטע קוד זה תגרוס למערכת ההפעלה פווסטחו/\ להתחיל כיבוי של המערכת, ולשאול את המשתמש האס ברצונו לשמור קבציס פתוחיס. 1 של פצוסחוצ\ ב- ₪356 ובּטפוצ ]זה של פווספחו\\ נקרא לפעמיסם 471 32חו/, כאשר המספר 32 מתייחס לשימוש בפונקציות 32818. 1קה שהכיל פונקציות 1688%, שימש בגירסה 3.11 של פווספחו//\ ובגרסאות קודמות של 8856 |88/. למרות שמערכות ההפעלה 95 פווספחו/\ ו- דא 5שס6חו/\ מספקות תאימות לאחור עבור יישומיסם אשר עברו הידור עס קריאות לפונקציות זו168, לא ניתן להכריז על פונקציות 1686 מתוך 6.0 88516 |1508/. חשוב לוּכור נקודה וו כאשר מבצעיס שדרוג של פרויקטים ישנים. 6 סדנת לימוד 6.0 8\ זסעוסול זק הכרזות פונקציות 81, הקבועים וסוגי הפרמטרים שהן מקבלות, רשומיס בקובץ בשם דאד.זקה32ּאזא\. קובץ זה מותקן בתיקיה בשם 1קהא1ש\ תחת התיקיה בה הותקנה 6 |8שפו\. כדי להשתמש בפונקציית 451 בתוכנית שלך, פשוט העתק והדבק את המידע הדרוש לך מתוך קוב זּה. בנוסף לקוד, תמצא בקובץ וה גם הערות שיעורו לך להבין את תפקיד הפונקציות השונות. ערכת הפיתוח של 8856 |1508\ כוללת כלי בשם זסווסוש אשד 1קה (מציג טקסט זסה), אשר נועד להאיצ את פעולת הוספת פונקציות 1קג. כלי גּה, המוצג בתרשיס 20.2, מארגן את פונקציות 471 של פווסחו/\ בסדר אלפביתי, ומאפשר למפתח להעתיק מספר פונקציות 41 ללות. כדי להשתמש ב- זסצוסו/\ [קה, לח על הסמל זפוסו\ 6%ד 1קג בקבוצת התוכניות 6 |]|808ו/. | לאחר מכן, לחץ על ₪6 76 1080 מתוך תפריט 6=, ובחר דאדזק32אז/\ (שיס לב כי ניתנת לך האפשרות להמיר את קוב הטקסט דאד1ק32א]/\ לקובצ בסיס נתוניסם לשס טעינה מהירה יותר). לאחר ש- זפשוסו/ [קה מעבד את קובצ הטקסט, מוצגת בפניך רשימה של הכרזות 871 בתיבת 5 6!סבּווה/\. תרשים 20.2: זסאוסו/ [קה מאפשר לך להעתיק כל שילוב סוגים, הכרזות וקבועים נסה ואת בעצמך על ידי העתקת פונקציית 660015%76650866 ללות. הדרך המהירה ביותר לאתר פונקציה מסוימת היא להקליד את האותיות הראשונות של שמה, וכך יילקפוציי ישירות למיקומה ברשימה. לפני שנמשיך, שים לב ליכולת חדשה של זסוסו/ 1קג : האפשרות לבחור הכרזות סווטטק (ציבוריות) או ש6ופטוזק (פרטיות). מה שעושה אפשרות זו למעשה, היא להוסיף את המיליס 6ז8ע₪71 או 6ו|פטפ להכרזות. באפשרותך עדייןו לערוך את הכרזות הפונקציות במועד מאוחר יותר. הכרות פונקציית 801 כציבורית מאפשרת למקם אותה בקוד של מודול מסוים, ולקרוא לה מתוך טפסים או מודוליס אחרים באותו פרויקט. מצד שני, אס ברצונך למקם הכרות פונקציית 1קג בקוד של טופס, יש להגדיר אותה כפרטית. מאחר והדוגמה שלנו משתמשת בטופס, לח על הלחצן ספּעוזס. פרק 20: גישה ל-1קה של פווססחוש\ | 547 לחץ לחיצה כפולה על 66:015%576650866 ותוכל לראות כי הפונקציה מופיעה בתיבת 5 56!60660 (פריטייס נבחרים). שים לב כי ניתן ללחוצ לחיצות כפולות על פונקציות נוספות כדי להוסיפן לתיבת 1:65 56!60100. ניתן להציג את הקבועיס והסוגיס בהס 1 משתמש, על ידי סימון התיבה הנפתחת 6סץד זקה, למרות שבאחריותך לדעת אילו קבועים שייכים לפונקציות הנבחרות. לאחר שסיימת לעיין ברשימת הפונקציות, לחץ על לחצן שְ600. פעולה זו ממקמת את כל הפריטיס שנבחרו בלותח. אחר, התחל פרויקט 88516 |8טפו\ חדש מסוג 5אם 55870870 והוסף מודול חדש. פתח את חלון הקוד של המודול החדש, ולח על 78506 מתוך תפריט 50. ההכרזה לפונקציית 215%76650866+06% תופיע בחלון הקוד: "70650866א260215)" 85| "6|32ח67א" פ! | 76650866א60215) הסמט6חט= 6זב סכ 6ספּעווק ,00 ] 5 005007 67ק5606075כ|! ,0חו5 5 סותהּאחזהלסססמכ| וב\ץם) = ,חס ] 5 0176600050075זסטוהטצזכ! ,6חס.] 5 ז0ז566ז60500ץ0פו סח ] 5 (8חס.] 5 6001056015 סרחטוצ1|הס6 דכו עכשיו שהתוכנית כוללת את ההכרזה, ניתן לקרוא לפונקציית 66%215%=76650866 מתוך קוד התוכנית. הוסף לחצן פקודה לטופס, והוסף קוד לשגרת אירוע 60/66 של לחצן זה כדי לקרוא לפונקציה 76650866-66%015%, כפי שמוצג בדוגמה הבאה: ()66ו01 1 0חהה 60 500 סספּעווק חס ] 5 5660070|005%! הזוס חס ] 5 605007566ץ8| וחוס סחס | 5 660105%ז=! הזוס הח ] 35 +5ט01|מסס דו הזוס חס | 45 הזס6ה5! הזוס = 660|050ה] ,605067566ץ2] ,5660070056 ,"\:" )6650866 60156 = הזטססחן (50ט!68|6ס דו ₪ " = 6 סעוזס חס 01050015 66" 15000 50 0חם הדוגמה הקודמת קוראת לפונקציה 76650866:א66%015 עס הפרמטרים המתאימים, ומציגה את אחד הערכיס המוחזריס בתיבת הודעה. עס ואת דוגמה זו אינה שימושית במיוחד, סביר להניח כי תהיה מעוניין להציג את מספר הבתיס החופשיים במקוס את מספר האשכולות (5065ט!6). כמו כן, אס אתה מתכוון להשתמש בפונקציה זו מספר פעמים בתוכניתך, תידרש להקליד קוד רב נוסף כדי לקבל בכל פעם את תוצאות הפונקציה. בסעיף הבא נפתור את שתי הבעיות הללו על ידי יצירת פונקציית ייעטיפה"י. 8 סדנת לימוד 6.0 8\ יצירת פונקציית עטיפה לעיתים קרובות יוצריס מפתחים פונקציית עטיפה (זססספז/)) מסביב לקריאת זקג אחת או יותר. פונקציית עטיפה היא פונקציית 88516 |טפו/ רגילה, המטפלת בקריאות שמבצעת התוכנית שלך לפונקציות 1ק. למרות שהשימוש בפונקציה מסוג זה נשמע כצעד מיותר, אחד מהשימושיס של פונקציה זו הוא לבטל את הצורך בפעולות נוספות הקשורות בקריאה לפונקציות 1ק\. לדוגמה, נניח שאתה כותב תוכנית התקנה ומעוניין לבדוק את גודל שטח האחסון הפנוי על גבי דיסק קשיח מסוים. פונקציית זק 6 מהצירה מידע אודות השטח הפנוי בדיסק, אך לא במבנה לו הינך זקוק. פונקציה פשוטה המוגדרת על ידי המפתח בשס 065ץ660זח|00, המוצגת בתוכנית 1, קוראת לאותה פונקציית 1ק המשמשת לבדיקת המקוס הפנוי בדיסק, אך מחזירה רק את המידע הנחוצ. תוכנית 20.1: קם/. קהח/וזקה - פונקציית העטיפה מחזירה רק מידע נחוץ לתוכנית. "6001507665" 85| "6|32חזסא" ס! | 76650866- 600156 הסחס6חטת 6זהוססס ,חס | 45 ז070|0500ק5600075כ[! ,0חוז5 5 סוהּא\חסה?סססמכ| וב\ץם) ,חס ] 5 01-600050075זסטרהטצזכ! ,סח | 45 ז56600ז6506ץ0כו 9 ] 5 (0חס | 5 001050015 זסטרחטצ|ה60 דכו 6סטסכ 5 (8חו5 5 ה605)5030ץ600ח|00 הסטסס6חט= 8חו5 5 6עוזכ5 וחוס חס | 85 הזס6ה5! הזוס 5 ז6ק 560075 = 1!' | 8חס] 5 1! חחוס זז זק 5ב = 2!' | חחס] 5 2! חחוס 5 6 01 וסוט = 13' | פחס] ₪5 13 חזוס 5 0 זסטרחטא |פססד = 14 פחס| 5 4 חזוס רה וחהסז 67| סעח0 066" "\:" ₪ (1 ,הז0)508 | = 506 (4| ,3| ,2| ,1! ,6/וז76650866)50- 662156 = הזנססחן 3 * 2| * 1| = %065ץ7000ח|00 חסססחט= 0חם כפי שניתן לראות מקטע הקוד הקודם, הפונקציה 6650866/-א661015 מחצירה ארבעה ערכים. אס היית קורא לפונקציה זו מספר פעמיס בתוכניתך, היית נאלצ להוסיף ארבע פקודות חחוש לכל אחת מהקריאות, ולדעת מהו תפקיד כל אחד מארבעת הפרמטריםס שמקבלת הפונקציה. לעומת זאת, השימוש בפונקציה %65ץ668ז001, אשר מבצעת את כל הפעולות הדרושות באופן אוטומטי, הוא פשוט הרבה יותר: חסחד 5ם דצ ₪015 > (חאהק. מק )005ץ660זהוטט זז "!508066 15% הפטסחם %סא :זסזו=" א0ס 5 =ז 0 פרק 20: גישה ל-1קה של פווססחוש\ | 549 פונקציות עטיפה יכולות לשמש גס כדי לחסוך פעולות עיבוד מחרוזות הנדרשות על ידי פונקציות 471 רבות. פונקציות 4-1 המחזירות מחרוזות למשתמש, דורשות שיספקו להן כפרמטר את אורך המחרוזת וכן שהמחרוזת עצמה המועברת לפונקציה תמולא בתווי רווח (50866). דוגמה לשימוש בפונקציית עטיפה אשר מבצעת פעולות אלו ניתן לראות בפרק 21 עבודה עם קבצים. ראה "השימוש בקבצי 1א1 ב- 8856 |ט6ו/" בפרק 21. יצירת מחלקת עטיפה בהתאס לרוח תכנות מונחה-עצמים, ניתן לקחת את רעיון פונקציית העטיפה צעד אחד קדימה וליצור מחלקת עטיפה. אתה יכול להשתמש במחלקת הדוגמה ס)ח1זסזטקו 60, כדי לשנות את שס המחשב כפי שהוא מוגדר במערכת ההפעלה. ניתן לשנות את שס המחשב בצורה ידנית על ידי שימוש בלוח הבקרה, ביישומון אזסצא60\ (רשת), כפי שמוצג בתרשיס 20.3. |> |?. )א | סוחס 8 | בסו | הפווהזוםוחס זו וס ]13601 סל הסווההזזס]חו הַמואוכווס] פ!! 55 פאוסחו\ | | פ] פוו) זס] הבח 3 שקע) 06386 .>זסיאו!פחו 16 חס זס)גוקוחסס | דה +וסח5 3 חב , חו זבשסכב3 [וואו ]ו קטוסזם>זטיי שח , זסווקוח טס ]קוח 176 ]0 הוסולקו650 350 191318 | :חב זסזווקוחס) קן ובוא ההש קוסזםאזס"א ה 00| וס :המסוק 50 | בו תרשים 20.3: קריאות 1קג במחלקת ס)חזזסזטקוח 60 יכולות לקבוע את שם המחשב שתי פונקציות 1ק משמשות לאחזור וקביעת שס המחשב: 6ח8אזסטקו 6060 ו-7\806+טקה560. המחלקה שתיצור תעטוף את שתי הפונקציות הללו, ותהפוך אותן למאפיין אחד אשר בו יהיה קל יותר להשתמש מתוך 88566 |1508/. תוכנית 20.2 מציגה את הקוד למחלקה 0)ח1זססטטוח0ס6, אשר כוללת מאפיין אחד ואירוע אחד. 0 סדנת לימוד 6.0 8\ תוכנית 20.2: קם/.ם=ון4אקוו60 - מחלקת 0ח1זססטקוהס6 קובעת את שם המחשב תחת 5וסחוש\, הקוד צריך להימצא בתוך מודול מחלקת'י - 1006 6855. וקא הסטקס ץו6 0 40605560 החסר +חה/ +'חס0 6צו - שהעוזק סזה 5ה800ז066!3 [קג/ 6656 ססטסאז' "רהס טקוהס-60" 85| "6132חז6א" פ! | סוההאססטקותס-60 הסססחט- 6זה|ססכ ססבעחוק 8חס ] 5 (0חס ] 45 26ופח ,8חו50 5 וסהטטכ1 |בּ\ץט) "קרח 56060" 85| "6132חזסא" 0 | 6וחהאסזטוקה 5600 הססס6חט= 6זב סכ 6ספּטווק בח ] 45 (0חו50 5 סותבּ\זססטקההס6ס1 וב\ץם) ()60000%66060 +חסעם סווטגוק 0חו50 5 ()6וחהּ\זסזוקוחס6 06% עשזספסזק 6ווטגוק 58 5 536 הוחו טחס ] ₪5 |560/3! הזוס 10 35 פסקו וחזוס 5 הסוחעא ,05ח507 ה0%6ח6|-60א 6זוטס6ז ץ||8ז6ח06 פ'זק תי זס ,5!טח ,508665 הטוע וחרט סחז!!ה-6זכ' 5 * 8חו50 5 5306 חחוס קה 6ר0 ||63 ץ||68ת' ( 2558 ,5806 )6רח )600016 = |3/ססן 50 ,סע +'חסו0 זו הס 0 5הזנס6 [קה שו ]זי סוק א הסחד 0 = |1560\/3 וז 6 ]0 0ח6 6וש חס ,(0)%זח ,6ס86זהח6 ||טח 38 פוט 6וחבס טקור סש .6 סקר 60 %6 סהוהזטס6ז 6זס061 6 6עסוח6ז סף 660ח שצו 50 ,0חוח5' ((0)%זח6 ,6וח57)51%3ח1 = פסקו (1 - 05ק] ,06ח6109)51\3 1 = 6וחבּ\וס)טקוחס6 זסקסזק סחם (0חו57 5 6הה )5146 0/3 )סה \סטקותס6 66 | עשוסססזק 6ווסטק חס ] 5 |560/3! הזוס ( רה ]516% )6 רה סוק ותס560 = |ב/ססחן 8 | זסקסזק סחם בדוגמה שהובאה לעיל, הסיבה ליצירת אירוע ₪6000%66060 היא כפולה: ראשית, למרות שניתן לאמת את השס החדש של המחשב על ידי בדיקה בלוח הבקרה, פונקציית 88₪06ז0זקוח66)00 תמשיך להתזיר את השס הקודס עד לביצוע אתחול. פרק 20: גישה ל-1קה של פווססחוש\ | 551 שנית, אס המחשב מחובר לרשת, יש צורך לאתחל את המחשב כדי לרשום את שמו החדש ברשת. בכל מקרה, נעשה שימוש באירוע מותאס אישית, כדי שהתוכנית שמבצעת את הקריאה תבצע את הפעולות הנדרשות. דוגמה לקטע קוד שנועד לבחון את פעולתה של מחלקת 0ח0671ק60, מוצגת בתוכנית 20.3. תוכנית 20.3: ק8/.שו אק 60 - בדיקת מחלקת 0ח1זסזקוחס6 מתוך טופס. סז רחס 5 6החב3\ק 61560 פ)הסעםרטו/\\ הזוס (710+0619550ס)וק 65000 ד 50 58 5 536 הוחו 5 6 )0 66ח5%0ח! /\סח 8 076866 חס קר 60 וס = 6וח3\ק 6560 56% סוחפח זססטקוחסס 6ר6 שְהוקפוסי 6 קר .36 קר 61560 = 536 586 6 " :15 חחח זסס קר 60 +חהסזט6 שחד" אס8 וו הח סט קר 60 צו6ח 8 56% (" חח טורח 60 ששח זססחם" )אס0)טסח1 = 536 516 = 6ה טרס רבקו 150 ספ 0ח5 () 6000066060 שאר 61500 50 סספּעווק "61006 60800065 6 36 0ם 600% 60 660ח טסץצ" אס8 ₪5 טפ סחם מחלקת 0/ח1ז6)טוחס6 היא דוגמה טובה לשימוש ביכולות של 8856 |508ו\ כשפת תכנות מונחה-עצמים. בנוסף על כך שמחלקה זו הופכת את השימוש בפונקציית 86 \זסזטקוחס6 לפשוטה יותר, ניתן להשתמש בה במספר פרויקטים לאחר שנוצרה בפעם הראשונה. כן, ניתן להוסיף מאפייניס ושגרות אירוע למחלקה זו על פי הצורך. 2 סדנת לימוד 6.0 8\ קריאות ₪1 שימושיות הדרך הטובה ביותר ללמוד אודות 71 של פווססחו/\ היא להתנסות בשימוש בו. אס תסתכל בקובצ דא1.7ק324א1%)\ תראה שקייס מספר גדול למדי של פונקציות [קה. הסעיפים הבאים יציגו בפניך את הפונקציות המעניינות ביותר. קריאות 71 "מהנות" שתי פונקציות 1ק4 הבאות שתכיר, הן פשוטות לשימוש ומהנות. הפונקציה הראשונה, 0|3/5000ח5, מאפשרת לנגן קובצ קול בתבנית /ג/)\. באמצעות כרטיס קול. פונקציה זו מקבלת שני פרמטרים: שס הקובצ, ודגליס (1895=) הקובעים את הדרך בה מנוגן הקוב. תוכנית 20.4: ק8/.סושס/גש/\ש ניגון קובץ צהצ\. | |3/ץ) "ה 0סחט50ץב|ק0ח5" 5בו| "!ו . ה ותחוצו" סו | 6הטס5ץה|ק0ח5 הסססחט- 6זב|ססכ 6סהטוזק חס ] 5 (סחס !1 5 05| והש ,500 5 6ההצ0 הט 250פכו ץ ₪605 66 זס זא1. א חו 5| שהחפח ' 0 = 5 ]ג 5 ז5ח60 סווספוק ץופטסחסזח6חץ5ה עְבוכ ' 1 = 5%6 סאפ 5%ח60 סוופוק 06900) ץ|פטסחסזהסחץ5 ץ8וס ' 0 = 56 כא\5 ז5ח60 סוופוק ץפט 5! זסטר1ס 66 )| זאו ל'חסם ' 0 = 0/2 0ף5 6פחס6 סווסטק 0 50| 0ח5 %א6ח |סחט הטספ 66 קססו ' 8 = 1005 סאפ 5%ח60 סווספוק ()000606חש50 טפ פחס | ₪5 |560/3! הזוס (6\צ5 סאפ ,"עה /ש.₪5 וזח הנשו \5ססאז/\\:6" )הטסוק 0ח5 = 60/8 | + 5%6 0א5 + 15| סא5 ,"5505" )הט ס5ץבק סח5 = |3/סחו (האשוסא סא5 ,6006 60150 66 חן 5060!ו! סז 05חט50 וח5/500 +0 5סרחהח 81185 סחדי 5/5005 זס+ ה5686 והסרש סח ס' 50 0ח5 כל הקבועים המתחילים בקידומת 5% רשומים בקובצ הטקסט של 1קג בצירוף הערות. שני הקבועים החשובים הם 6א5%ג 5% ו-6א+5 פא5, אשר קובעים האס התוכנית תמתין עד לסיום נגינת הקוב\ לפני שתמשיך לבצע את שאר הקוד. פונקציית 471 אחרת בשס 860075100 וח5/5%6, יכולה לשמש כדי לקבוע את דוגמת הרקע של פאוססחו/\. השתמשתי בפונקציה וו ובמצלמת ללכידת וידאו כדי ליצור ייחלון משרד וירטואלייי במקוס עבודתי. דוגמה המשתמשת | בפונקציה 0 3 55% מוצגת בתוכנית 20.5. פרק 20: גישה ל-1קה של פווססחוש\ | 553 תוכנית 20.5: ק86605900./8 - פונקציית 10ח6151ז06ה878 556 יכולה לקבוע את הרקע של שולחן העבודה של פוססחו/\. 1 = = |ז-זא1ם דה סק 501 55ח600 סווסטק 2 = 551065 -501 60055 סוופטק 0 = הםקהק | |ה/\א5סכ ז55 -501 5%ח600 סווסטק "55650" 85| "56732" פ! | 40ח51ז60רחהזה 5506 הסטסחט-] 6זהוססכ = החהזהקסכ] |3/\ץ8 ,8ַחס] 5 ההזבקטו |\ץם ,סחס | 5מ הסטסאט |בש\ץם) 8חס ] 85 (פחס ! 5 וחזחוששט ו3\ץ8 ,ץחה 5 ()ז6ק8ק[!!3//\ז6!68 טפ פחס ] ₪5 |560/3! הזוס = ,"(6חס\1)" ,08 ,מםקהק | |ה/\א5םכ 557 -10)501ח5 5/5660 = |60/8מן (65אה16אזאז כ א -זק5 זס = ו-זאזם דהחק :501 טט5 0חם (0חו5 5 6ון- 8 590)זסק הק ||560\\/3 5 טחס ] ₪5 |560/3! הזוס ,50086 ,08 ,5םקהק | |ה/\א5סכ 551 -10)501ח5 הזה 5506 = |6%/3חו (65אה10זאזאז 55 -1ק5 זס = וחזאזם דמחקט ;501 סט 50 הפונקציות זסְסףּק!|56%\//8 ו-זסְסְהּק!|687\/8ו0 גורמות למפת הסיביות המשמשת כרקע שולחן העבודה של פווספחו/\ להשתנות באופן מיידי. הקבוע המועבר כפרמטר האחרון לפונקציה, למרות שאינו הכרחי לפעולתה, גורס לשינוייס הנעשים, להופיע גס בלות הבקרה. אס תמשיך לעיין בקובצ\ הטקסט של [קג, תוכל לראות שניתן לשלוט במאפייני תצוגה נוספים על ידי שימוש בפונקציה 0וח6%6151חחהּזהק וח55%6. איתור ושליטה על חלונות אחרים ניתן לשלוט בצורת התנהגות חלון, ולקבל מידע על חלונות אחריס באמצעות מספר קריאות 1ק8. רוב קריאות 1ק8 אלו משתמשות במזהה ייחודי של חלון (שספחו/\ 6) כדי לאהות את החלון איתו אתה מעוניין לעבוד. מזהה ייחודי של חלון הוא מספר ייחודי המוקצה לכל חלון פתוח במערכת. בתוכניות 88566 |8שפו/ ניתן לקבל את המזהה הייחודי של חלון טופס כלשהו, מתוך מאפיין 6ח\\ח של הטופס. עס זאת, אס תרצה לפנות לחלונות מחוצ לתוכנית 8856 |508ו/ שלך, תהיה חייב להשתמש בקריאת 1 אשר תחזיר את המזהה הייחודי של החלון המבוקש. הערה: בסעיף זה נחרוג מהרגלנו להוסיף את האות | כקידומת למשתנים ארוכים (פַחס!). המזהה הייחודי של חלון הוא תמיד מסוג פַחסו, והכרזות 71 מתייחסות אליו בדרך כלל בשם בחצ\ח (קיצור שססחו/\ 0ף 0|6ח48). 4 סדנת לימוד 6.0 8\ איתור מזהה ייחודי של חלון כדי למצוא את המזהה הייחודי לחלון מסויס ניתן להשתמש בפונקציית [ק4 אוססחו/\0חו=. פונקציה זו מקבלת שני פרמטרים: שס החלון (פוחפּא שוססחו/צ) ואת שס מחלקת החלון (פוח8א\ 01855 צוססחו\\). אפשר להעביר לפונקציה וו אחד משני פרמטרים אלה, או את שניהם, והפונקציה תחזיר את המזהה הייחודי של החלון, או אפס אס לא קייס חלון מתאיס. לדוגמה, הפעל את היישוס 6080פס\\ (פנקס הרשימות) ותוכל לראות כי הכותרת של חלון התוכנית היא 066080 - 60ששח. כדי למצוא את המזהה הייחודי לחלון זה ניתן לקרוא לפונקציית וססחו/ש0חו= בצורה הבאה: ("0080לס\ - 60 סח" , חוס5!וטצסע)צוססחו\סהו-=] = סהקסססוסחעטת שיס לב כי בדוגמה זו אנו מעביריס לפונקציה רק את שס החלון, ומעביריס מחרוות ריקה כערך לפרמטר שס מחלקת החלון. אולס נניח כי שמרת או פתחת קובצ מתוך 46.. כותרת החלון של 80ק6זסא\ תשתנה כדי להציג את שס הקוב החדש, במקרה כוה, שורת הקוד הקודמת לא תחזיר את המזהה הייחודי לחלון 000280 שכן כעת כבר לא קייס חלון פתוח שכותרתו היא '₪0%0080 - 60שטחיי. עס ואת, במקרה אנו יודעיסם כי שס המחלקה של חלון 06080 הוא חַססטסא, לכן אפשר לקרוא לפונקציה בצורה שונה: (0חוספ!|טאזטע , "הטסו" )וס סחו/\סחו=] = סהק6ססוחעשת טיפ: שמות המחלקות של פצוסטחו/\ אינם תמיד כה ברורים. לדוגמה, שמה של אחת ממחלקות הטפסים המוקדמות של 8856 |508/\ היה חזס"זססהטחד. עם זאת, תוכנת "ריגול" אחר מחלקות פאוסטחו/), כדוגמת התוכנה המצורפת אל ++6 |עפו\ מסייעת רבות בתהליך מציאת השמות. שורת הקוד הקודמת מסוגלת למצוא את המזהה הייחודי של החלון 80ק6זסא\ ללא קשר עס כותרת החלון. דוגמה זו עובדת כיאות במקרה שקייס רק חלון 016280 אחד, אך מה קורה אם קיימים מספר עותקיס של חלון זה בו ומנית! התשובה לכך טמונה במספר קריאות 31 נוספות: שספחו/\66% (קבל חלון), 6 דאוסחחו//660 (קבל טקסט חלון), וכן 80/06!855חו/\661 (קבל מחלקת חלון). בדומה לפונקציה שוססחו/שחו=, משמשת הפונקציה אוסשחו/\660 לאיתור המזהיס הייחודייסם לחלונות. אך במקוס לאתר את התלון המבוקש על פי שמו, מוצאת שש00חו//666 את החלון בהתבסס על יחסו לחלונות אחריסם. ניתן להשתמש בפונקציה ו00חו/\66 כחלק מלולאה, כדי לעיין ברשימת החלונות הקיימיס כפי שמוצג בתוכנית 6. הקוד בתוכנית זו סופר את מספר המופעיס של חלון 66080סא, ומדפיס כותרת של כל חלון. פרק 20: גישה ל-1קה של פווססחוש\ | 555 תוכנית 20.6: ק8/.סא1ז=א1/\ - איתור כל החלונות של 80ק6>ס\. 0 = ד155חסאז//\ )0 5%ח60 סווסטק 1 = ז5ג |סא/ש //6 5%ח60 סשווטטק 2 = דאם)סא/ש] //6 5%ח60 שווטטק 3 = /םהקסא/ש //6 605% ס6ווטטוק 4 = ₪ם\/0 /\6 605% שווטוק 5 = כ 611 )0 6005 סווסטק 5 = 1% /\0 605% סווטגוק = (0חס ] 5 טוח | \ץ ,הַחס | 5 סחצרן |83/ץ) "32זספט" פו 1 אוססחו//60 הסססחט- 6זהוססס 8סן 5 | 0!355%3006כ] |8/\ץ) "מצוססחו/\תו=" 85| "32זספט" סו | אוסוסחוש\סחו= הסטסחטת 6זהוססס 08 ] 5 (0חו50 5 6ההאשטססהוששכ! ו3\ץ8 ,8חו50 5 = החשש |8/\ץ) "36 \6001355)" 185 "50732" פו | 06ח600|855\8 הסחסס6חטת 6זהוססס 9 ] 5 (0ַחס | 45 +הטס-)אבוזח |\ץם ,0חו5 5 6הה355%ו6ק! וה\ץם ,פחס | 5 | חח |8/ץ) "באס דאוססחו/06%" 5הו| "032" סו | +6% האוססחו/\ז6 הסחס6חטת 6זהוססס חס ] 5 (8חס.] 5 ה6ס [ה\ץ ,חס ! ₪5 פחהוחפכ! והּ\ץם ,פַחס | 5 ()/שס0חו/0חו-650 ד 5 0 = 5125 | דד אב 600% חס | 45 זחה6זטו)סח/\ח הזוס חן 5 %הטססו הזוס 0חו5 5 501855 חחוס 59 5 ה563000 וחוס טח ] ₪5 |560/3! הזוס 0 = +חטסס0ן ( חוד ח5!וטאזסע , "סהקססוז")/שססתו/סחו= = 6חה6זט)סח/\\ח 0 <> %חסזחט6סחצ/ח 6ווחצ\ סס צוססחו/\ +ח6זוט6 6 +0 6ההח 61355 606 06%' (1 + 5125 דא ד 50806%)1% = 561855 (5125 ךאש ד 28 ,561355 ,הזוח )36 \600|855 = |6/3| 630 6חוזכן ,60% %ה6וח6זסחו הסח הסלס 15 צוססחו\\ סוט ]זי הסחד (0)%זח0 .8 "0קססס\]" = (8)501855חחוזד + 1 + +60 = 6חטססו (1 + 5125 דא ך 50806%)12% = ח0ס0קה56 (5125 דאש ד ו חהסקה56 סז חח )זא הששססחו/\60) = |8/ס56ן (460\/3| ,ח60%)568000 | +חחחק. פטססס + 0חם (דאם\סאעש] השוחת )ששססחו/\6כ) = זה6ט)סח/\ת קסס | הטסו 6 " :5/שססחועט 14066080 הסקס +0 זססוחטאז" +חוזס. פטססס 50 0חם 6 סדנת לימוד 6.0 8\ ם אזהרה: יש להבין את תפקיד תו ווטא בקריאות 1קג. בתוכנית 20.6, שתי הפונקציות 86 6%0!355) |-זא6 דששס0חו//\ז66, ממקמות ערך ווטא בסוף המחרוזת המוחזרת. מסיבה זו הוספנו |וטא בסוף המילה 66080סא במשפט 1, כך שהשוואת המחרוזות תתבצע כראוי. פונקציית וחוזד (קצוץ) מסירה תווי רווח, אך לא את תו ווטא\ המסיים את המחרוזת. דרך נוספת לפתור בעיה זו היא להשתמש בערך שמחזירה הפונקציה 6ח6610|355\8 עם פונקציית 1694 כפי שמודגם בשורת הקוד: ... חח ד "060080" = (|560\/3]! ,501855)%א6] + בכל אופן, קרוב לוודאי שבעיה זו תחייב אותך לכתוב פונקציה מהירה, להסרת תווי רווח ותווי ווטא מיותריס ממחרוזות. השימוש במזהה הייחודי של החלון אם כן עכשיו, לאחר שהצלחנו לבסוף להשיג את המזהה הייחודי של החלון, מה בעצס ניתן לעשות איתו! התשובה היא, די הרבה. ראשית ניתן לשלוט במצבו של החלון באמצעות שימוש בפונקציית 1קג שוססחו/\אוסח5 : (סם2זזאזוז 5 5 , סהקסססצ העות )אוססחו\צוסת5 = |560/3ו ניתן גס להשתמש בקריאות 471 0]1655806ח56 ו-005%%1655806, כדי לשלוח הודעות 5וס6חו/\ לחלון מסוים. לדוגמה, שורת הקוד הבאה תגרוס לחלון 06080 להיסגר כאילו סיימת את התוכנית מתוך מנהל המשימות של פושספחוצ\: (08 ,08 ,610055 | ,06080ס4ס חצ )01655806ח56 = |ב/ססחו שורת קוד זו גורמת למערכת ההפעלה לשלוח הודעת 61055 אצ לחלון שצוין כפרמטר הראשון לפונקציה. ברגע קבלת ההודעה, 06080 תסיים פעולתה, ייתכן שלאחר שתשאל את המשתמש באם רצונו לשמור מסמך פתוח. תחביר קריאת 6 שווה לזה של 0]!655806ה56, וההבדל ביניהן הוא שהפונקציה 706 פועלת בצורה א-סינכרונית, כלומר היא אינה ממתינה עד שההודעה שנשלחה תעובד על ידי החלון המקבל לפני שתמשיך בביצוע התוכנית. שים לב כי בדוגמה שהוצגה לעיל, שני הפרמטריס האחרוניס הם אפס, שכן פרמטריס אלה הס ייחודייסם להודעות מסוימות, ואילו הודעת 61055 א/\ אינה משתמשת בהס. לדוגמה, אס תשתמש בהודעת 634% מצ\ כדי לשלוח תו לחלון מסויס, ישמשו שני פרמטריס אלה לקביעת התו אותו יש לשלוח. זכור כי ניתן לשלוח מאות הודעות שונות. פרק 20: גישה ל-1קה של פווססחוש\ | 557 ם אזהרה: למרות שהדוגמאות המוצגות כאן בטוחות יחסית כאשר משתמשים בהן עם תוכנת 80קזסא, תוכניות אחרות עלולות להגיב בצורה בלתי רצויה ולגרום לשגיאות. לקבלת התוצאות הטובות ביותר במהלך השימוש בקריאות 1קג עם חלונות אחרים: 1 קרא והבן את תיעוד פונקציית [קה ו/או הודעת פשסטחו/\ בהן אתה משתמש, 2 ודא כי אתה עובד עם החלון הנכון, 3 הכן עצמך לביצוע אתחולים רבים, 4 דאג לשמור את תוכניתך לפני הרצת בדיקה. המתנה לסיום פעולת תוכנית לעיתיס ייתכן כי תבטרך להפעיל תוכניות אחרות מתוך 8856 |08פו/. לצורך כך קיימת פונקציה מובנית ב- 8856 |1508\ בשס |/5₪6, השימוש בפונקציה זו מתואר בפרק 21, עבודה עם קבצים. ראה "שימוש בפונקציה ||5₪6 להפעלת תוכניות נוספות" בפרק 21. עס ואת, החיסרון הקייס בשימוש בפונקציה ||506 הוא שהיא אינה ממתינה לסיוס התוכנית שהופעלה, לפני ביצוע שורת הקוד הבאה: !!!ואמס/ע\ דסא 5פספ 5זחדי ("ז03. )ה ץ]]")||6ח5 = |0₪60/3 "66| 60 ₪16 ה8860" אס 5 קטע קוד וה אינו מבצע את המצופה ממנו. תיבת ההודעה מופיעה ברגע שפקודת ||506 מבוצעת, בין אס ביצועו של קובצ האצווה הסתיים או לא. בעולס 1688 של 1 פשטססחו\\ ו- 3.0 88516 |1508/, היה אפשר לעקוף בעיה זו בקלות בעזרת מספר שורות קוד ושתי קריאות 841. אך בעולס %ו328, הדבריס מסובכיס הרבה יותר. כיסוי מעמיק של תהליכים והליכי משנה במערכת 328%, ידרוש בוודאי חצי ספר. במקוס להיכנס לכל הפרטיס האלה, נציג בקצרה פונקציה אשר תבצע משימה זו, ראה תוכנית 7. תוכנית 20.7: ק8/. ד1ש\ | |5₪ המתנה לסיום פעולת תוכנית לפי שיטת 0%פסזסוו. 0-אזק דה 5 6קץד ססהטוזק 8ַחס | ₪5 00 58 5 6507/60הכו 8חו50 5 000א65ספו 0חו50 ₪5 6שודסז חס ]| 5 אצום 8 סדנת לימוד 6.0 8\ חס ] 5 צאום טחס | 5 26ו5אא\ 8חס | 5 26ו5 או 08 ] 45 5זהה-חטס6אצום 08 ] 5 5זהח-תט0ס6 ץאוס 8חס | 5 שסטמחה!ו!ן או חס ] 5 305|= או 5 צוססתו/\ סח 5/6025 09| 5 6567/602חק 8חס | 5 +0ח5001ח בח !| 5 50000000 8ַחס | 45 זס7זו500 6מץד סחם אסזדהו סא 06555ק 6קץד סספטוזק 8חס | 5 5פסססזקח חס | 5 680זח דח פחס | 5 כ66551סזקאוט 8חס | 45 68010זח דאוט 6מץד סחם | |8/ש2) "6|32חז6א" ו | 0!600(66%חו5זס-0וה/\\ הססס6חט-] 6זבּ|ססכ 6סהטוזק חס ] 5 (6חס | 5 05ח6600פווווויזאוס |3/\ץ₪ ,סַחס | 5 6|סההחח 5 6הה חס הסו!קכ1 |3\ץ8) "6132חז6א" פו | 67680007000554 הסס6חט= 6זב !סכ 6ספּטווק ,00 ] 5 0000005 6055סזקכ1 |3/\ץ ,508 35 שחו וסחההוהוהס6כ1 ועט ,פחס! | |3/\ץ8 ,חס ] 5 0165ח8 הת |8/ש5 ,חַחס | 5 5ססטטו ה הסוח דס1 |וה\ץם₪ = |8/ץ8 ,סח | 5 +חסרההסזוטחה=ק1 |3/\ץ8 ,חס 1 5 305 חס הסזאוט ,0:%זק(\ ד 57 ₪5 0זח1ק5630ק1 ,חס ₪5 ץזסס66זוססח6הנוססז חס | 85 (אס1דה/אס-1 06555ק 5 הסטהווסח66551סוזטסז הח ]1 5 (6חס | 5 60נטח |3/ץ2) "6132חז6א" פו | 0/6ח0568ו6 הססס6חט= 6זב סכ 6ספּטווק 8 = 6155 ד 10אק |הואסא 5%5ח60 סספּעווק 8- = = ז1\1-\1 605% סספעווק (06%ו|0רח0)6ח 6660 טטפ סווסגוק אסזדה 1-0 06555 ₪5 6סזס הזוס סק ד 5 5 508 חחוס :זו 50 0- זק!\ ד 51 6חז 26ווהטוחדי (508)ח0 ]1 = 500.00 :חס 8סו!קקב3 506|!60 6 ז םזס' = ,6155 ד 10ק |הויס\ ,18 ,08 ,08 ,6%חוו0ח6 ,6708000706655)08 = 008ז (00זכ ,591% ,08 ,08 :הפוח 60 הספּסו!קקהּ 506160 66 זס+ זוה" (= ד1101\1 ,06655זקח .שק 660[ 0!60הופזס-טו3/\ = 006 (006655זקח.06ז)610567800!6 = 608ז טט5 סחם פרק 20: גישה ל-1קה של פווססחוש\ | 559 באמצעות שימוש בפונקציית 66000א₪ מתוכנית 20.7, ניתן לשכתב את הדוגמה מתחילת סעיף זה בצורה הבאה: סםסאם דא1 85 5אאסצ\ 5זחדי ".+08 ץ]" 60000אם "66| 60 ₪16 8800" אס 5 שים לב כי ביצוע משימה זו דורש שימוש במספר לא קטן של הכרזות 1ק, אך פונקציית 66600א₪ מפשטת תהליך זה. קריאות חוזרות ומחלקות משנה קריאות 1ק מאפשרות לך לעבוד עם מערכת ההפעלה פווססחו/\ ברמה נמוכה יותר ממה שמאפשר קוד 8856 |508/ סטנדרטי. בכתיבת תוכניות ב- 8856 |אטפוצ, אתה בעצס משתמש בקוד 8856 |508/\ כמעטפת לקריאות 1קה של פווססחו/\. למרות שרוב התוכניות שתכתוב לא תדרושנה שימוש בקריאות 471 מסובכות, לעיתים יעלה הצורך להשתמש בקריאות 1קג, אס המשימה אותה אתה מנסה לבצע לא יושמה ישירות ב- 6 |8ש15/. תחוס אחד בו אתה עשוי להודקק לקריאות 401 הוא עיבוד הודעות 5וססחו/), בהן ניתן לטפל באמצעות קריאות חוזרות (69||₪8665) ומחלקות משנה (0חו5606!855). טכניקות אלו מתוארות בסעיפים הבאיס. קריאות חוזרות קריאה חוזרת, היא פונקציה בתוכנית שלך אשר נקראת על ידי פאוספחו/צ. ראה לדוגמה את ההכרזה על פונקציית 1 בשס פ\וספחו/\וחטתם : = 35 הח8זהק | ,ְסחס | 25 6הטתוהטתסכן] |3\ץם) "32ז6פט" פו | פאוססחו/\רטחם הסטסחטת 6זהוססס חס ] 5 (עח שיס לב כי הפרמטר הראשון לפונקציה פוססחו\\וחטחם הוא מצביע לפונקציה. הפונקציה שאליה מצביע פרמטר וּה, אמורה להיכתב בתוך מודול 8856 |1508/, והיא פונקציית הקריאה החוזרת שלך. פונקציית פשססחו/\חטחם עוברת על רשימת המשימות של פווססחו/), ומבצעת את פונקציית הקריאה החוזרת שלך עבור כל פריט ברשימה זו. כדי להעביר מצביע אל פווספחו/\וחטחם, יש להשתמש במילת המפתת ובשס הקריאה החוזרת, כפי שמוצג בדוגמה הבאה: ( 123458 ,6חט-]68!!2864/יו] 5010076550 שססחו/\\רהטח= = |560/8ן ביצוע שורת קוד זו (פעס אחת בלבד) גורס ל-פאוס0חו/\ותטחם לקרוא לפונקציה 6חט-א63|!836ץ פעס אחר פעם עבור כל חלון ברשימת המשימות. כאשר 5וססחו/\\ותטח= קוראת לפונקציה 6חט-68|!886%ץ1), היא מעבירה לה שני פרמטרים: הראשון הוא מזהה ייחודי לחלון, והשני הוא הפרמטר השני שהועבר במקור אל 5שססחו/\והטח=. (הפרמטר השני יכול לשמש את פונקציית הקריאה החוזרת שלך בכל דרך שתמצא לנכון, בדומה לפרמטר ההודעה של פונקציית 011655806ח56). מסיבה זו קריאות חוזרות נכתבות במיוחד עבור פונקציות 1קה אשר קוראות להן. במיליס 0 סדנת לימוד 6.0 8\ אחרות, פונקציית קריאה חוזרת עבור הפונקציה פשספחו/\וחטחם חייבת להיות מוכרזת על פי כללים מסוימים. פונקציה כזו חייבת לקבל שני פרמטריסם ולהחציר ערך מסוג 094!. הערך שמחזירה פונקציה וו משמש לעצירת הפונקציה פאוססחו/\וחטחם, לפני שהיא מסיימת לספור את כל החלונות הפעילים. תוכנית 20.8 מציגה גירסה פשוטה של הפונקציה 6חט-א68|!886ץ1, הניתנת לשימוש עס הפונקציה 5שסבחו/\וחטחם. במקרה זה, ערך הפרמטר השני מייצג שס טופס. בכל פעס שמתבצעת קריאה לפונקציה 6חט-א68|!886ץ1, היא מדפיסה נתונים אודות המזהה הייחודי של החלון שהועבר אליה כפרמטר הראשון, על גבי הטופס. תוכנית 20.8: ק846%./8 ]64 - הדגמת פונקציית קריאה חוזרת. = 5 החהזהק!| ,0חס] 5 6חט ותטהסכן! |3\ץ) "5632" סו 1 5וססחו/\וחטח= הססס6חטת 6זהוססס חס ] 5 (עח 08 ] 5 (הזס-] 5 החהזהק! ,חַחס | 35 הח |3\ץ6)2חט-א68||!586שו הסטס6חט= 509 5( 10ח51 וחוס זזש 8 15 החזששססחו/\506' דסחו /\26) סחה 5600|355\876) זסז' (0חה/צשח)10ח1ץ/שססתו/\5026 = סזח51 50 8 0ב דט .8 סחעטח .8 "= חח" שחוזק. ותהזבקן 5000 0ף 5אוססחו/\רהוח= 680565 3156 סהוחזססח' אוססחוצו 66 הפטסזרט בהוטסוח' סד = 6חט-א886!|ה6ץוז חסטס6חט= 0ח= ()080668||0806/ח1 50 הסט 0חה חר 60 5'רזס+ 06 ההסז] |68|!60 15 6006 פוחודי פחס ] ₪5 |560/3! הזוס רס (1 חס ,6חט-8||]2866ץ1] 00765501 )5אוססחו/\רהטח= = |560/3! סט 0ח5 ניתן לראות דוגמה לפעולתה של תוכנית זו בתרשיס 20.4. פרק 20: גישה ל-1קה של פווססחוש\ - 561 |< ]ם]ן. | 60 2 36% 3!]0:) .₪ - 02 100105 :0!858) חוור 2 190605 :21888 0 25=\רווור! 2 05ן00! :01855 2== חוור בו 6אפך ב הםו!וסס 0/1061 :1855 8 = חוור סו א ד ב הקוקז 40ב רחס -1500 :51359 8 6חואור] 2 5005 :01855 4=חואור] 02 5כן]00! :0!889) 4 31=ברואור] 2 0005 :85| 8 תות 3990 :1389 2 [=טחואורן 72 5קן]00! :185% 8 הוור 3 1855 יו 1 02 100005 :01868 8 חן 3 1555 2 [2=טחוויותן 2 90085 :01855 8 = האור 702 100108 :0!858) 0=חואור! [= שב ז 1 |598 :1855 4 =רואור] תרשים 20.4: הפונקציה פוספחו/ש\וחטח= מעבירה לפונקציית הקריאה החוזרת שלך את המזההים הייחודיים של כל החלונות שנמצאים ברשימת המשימות מחלקות משנה עתה, לאחר שסקרנו את נושא הפונקציות החוזרות, נראה רעיון דומה הנקרא מחלקות משנה (0ח50006!8551). כדי להבין רעיון וּה, יש להביןו ראשית את עיקרון הטופס הסטנדרטי של 8856 |1508/. ניתן לחשוב על טופס כעל סוג מיוחד (או מחלקה) של חלון. סוג זה של חלון תוכנת ‏ "ליירטיי אירועיס מסוימים, כגון אירוע 6עסו6פוסו₪ז (תנועת עכבר). טופס 88516 [8טפו/ 'ייודעיי שעליו להפעיל את שגרת האירוע 6טס6פטסו₪ז מכיון שהוא תוכנת לעשות כך. אך מה קורה עס כל הודעות פוספחוש\ שמהן הטופס מתעלסם! ומה אם אתה מעונין לשנות את הדרך בה פאוססחו/\ מטפלת בהודעות קיימות! כדי ליירט ולהגיב לאירועים, עליך לשנות את הדרך בה מחלקת הטופס מטפלת באירועים. ניתן לעשות כן באמצעות טכניקה שנקראת יצירת מחלקות משנה, אשר בגרסאות 8856 |ה508\ שקדמו לגירסה 5.0, ניתן היה ליישס רק באמצעות פקדיס מותאמים אישית. עס ואת, עתה כשניתן להשתמש בפונקציות קריאה חוזרת, ניתן להשתמש בפונקציית 1ק\ חס |צוססחו/\560 עס פונקציית קריאה חוזרת, כדי ליירט הודעות פשססחו/\. יצירת מטפל באירועים (0!67ח1!3] +חסעם) עם מחלקות משנה ניתן לראות דוגמה טובה לשימוש במחלקות משנה במאמר העברת מצביעי פונקציות לפרוצדורות ‏ ₪11 וספריות סוגים (300 65זט660סזק ₪11 0+ 5זססחוסש הסטסחטת פַחִוַ55בק 5 6כץד), אשר כלול בקבצי העזרה של פאוסטחו/). הקוד לדוגמה זו מופיע ברשימות 20.9 ו-20.10, ומייד אחריהן הסבריס מפורטים. הערה: זכור לשמור את עבודתך לעיתים קרובות כאשר אתה משתמש בפונקציות זקה. 2 סדנת לימוד 6.0 8\ תוכנית 20.9: ק455./8 5801 - דוגמה לשימוש בתת-מחלקות "הססזק/ששססחו//]|68" 85| "50732" סו | 6סזק/שססחועש!|68 הסססחט- 6זהוססס ,חס ] 5 5 |3\ץ8 ,חס | 25 סחעטח |3\ץ8 ,סח | 5ה 6חט-סח//עסזקכ| וב\ץם) חס ] 5 (8חס ! 5 ההבזבּק| |3\ץם ,חס ! 5 הבּזהקצו |ב\ץם = חצוח |3/\ץ8) "החחס |שוססחו//560" 5הו1ם "32זספט" טו1 פחס וצוססחו//560 הסססחט- 6זהוססס 9 ] 5 (8ַחס | 5 סחס [צו06146 |ה/\ץ ,חס 5 אססחזח |הצץם ,פחס | 5 4- = 06אקסא/\ .6\/1 5%ח60 |הטסו₪ 8חס | 45 6סזקסח/\\ששזסס! סוופוק חס ] 5 /ורוף סוופטק ,חס | 5 הבקע | ,חס !1 5 ספוט ו3/\ץ ,חס 5 צוח ו3/\ץ6)8סזקאוססחו\ הסס6חט= חס ] 5 (8חס.] 5 החבּזהק| |'\ץ רחהזהק! ,רחהזהקצו ,ספוט ,שוח ;" :116558006" 6חוזק. פטס (החהזהק! ,ההזה קצו ,ספוט ,שח ,6סזק סה/)ע6זקכ|)6סזקעשססתו/||68 = 6סזקשצוססחו\\ חסססחט- סחם ()0ס1 טטפ סווטגוק 200765501 ,06הקסאצ\ וש , ר8)9חס וצוססחוש/560 = 6סזקסח/ע6זספו (06זקץטססחו\\ 5 0חם ()6)ססתח!\ סטפ סווטגוק הח ! 35 קוחש הזוס (06זקסח/שע6זקכן! , 6הקסצע\ 6 ,רוט )חס |ואוססחו/\560 = קותסל טט5 0חם למרות שהקוד בתוכנית 20.9 משמש ליירוט הודעות הנשלחות לטופס, קיים חוק כללי לפונקציות קריאה חוזרת שמכתיב כי מיקוס פונקציות אלו הוא בתוך מודול, ולכן יש להקליד קטע קוד גה כחלק ממודול ולא כקוד של הטופס. חלקו השני של הקוד הנדרש ליישוס דוגמה זו, אשר אותו יש להקליד כקוד של הטופס, מוצג בתוכנית 20.10. תוכנית 20.10: 455./80 50801 - קוד רמת-הטופס לדוגמת מחלקות המשנה ()6ו1 >ססרוסוח6 500 סספּעווק אס 50 0חם ()66ו|6 >ססחת(\0ח6 50 סספּעווק אססחחנ\ סט 0ח= ()1]080 וחזס-] 500 סספּעווק סחצוח.6\ = \\חף 50 0חם פרק 20: גישה ל-1קה של פווססחו\\ - 563 כדי לעבור על פעילות הקוד המוצג ברשימות אלו צעד-אחר-צעד, נתחיל עס תת-השיגרה 300% בתוכנית 20.9. ₪3400% מעבירה את כתובתה של פונקציית הקריאה החוזרת 6סזקוספחו/\ לקריאת 271 פחס |שס6חו//560. פונקציית פחס |עשספחו//506 מגדירה כי 6סוקצוססחו/\ היא מטפלת ההודעות (0/8ח8 ₪1655806) של הטופס, ובכך מחליפה את מטפלת ההודעות של 8856 |1508/. הכתובת של שגרת הטיפול בהודעות שהוגדרה על ידי 8856 |אטפו/, מוחזרת על ידי הפונקציה ומאוחסנת במשתנה 6 זה עסוסק!. תת-שגרת א>ססחח\ קוראת לפונקציה פַחס !אוססחו//\56% ומעבירה לה כפרמטר את הערך המאוחסן במשתנה 6סזקנח/)עפזסק! כדי להחזיר את השליטה על אירועים המגיעיס לטופס לידי שגרת הטיפול המקורית. תת-שגרות 300% ו-אססחח\ פועלות כמעין מתג אשר קובע לאיזו שיגרת טיפול בהודעות תישלחנה כל הודעות 5וס0חו/\ המיועדות לטופס. לאחר ביצוע קריאה לשיגרה אססח, מנותבות כל הודעות 5וססחו\\ לפונקציה 6סזקצוססחו\\. 6 שוססחו\ מקבלת ארבעה פרמטריס: המזהה הייחודי של חלון הטופס, ושלושת הפרמטריס המשויכיס לכל הודעה. שורת הקוד הראשונה של שגרת 6סזקצוססחו)\ פשוט מדפיסה נתוניס אלה בחלון 608816וחוח1. השורה השנייה קוראת לפונקציית 1ק בשס 6זקאוססחו//!|68. פונקציה זו מעבירה את נתוני ההודעה לשגרת הטיפול בהודעות הסטנדרטית, אשר כתובתה מאוחסנת במשתנה 6סזקסח//ע6זסטו. אס כך, מבחינה מעשית, שגרת טיפול ההודעות שבנינו לא עושה דבר, מלבד להדפיס את ההודעה ולקרוא לשגרת הטיפול הסטנדרטית, אשר היתה נקראת לטפל בהודעה בכל מקרה. דוגמה לפלט תוכנית זו ניתן לראות בתרשים 20.5. בי 4 !'פעתךץ בגא דאמעטע מטסח פבטססא פט מאך !'פעעתךץ בגא דאמטםש מטסח פבטססא פט מאך !'פעת1ץ בגא דאתעטש מטסח פבטססעא פט מאך !'פעפתדץ בגה דאחטם מטסח פבטסח פט מחך !ופעעתךץ בגה דאחטם מטסא פבטססא פט שאך !פעעתךץ בגה דאחטם מטסא פבטסא פט שאך !ועתתךץ סגה דאחטש מטסא פפטסא פט שאך !ועתתךץ בגה דאאעש מעטסא פבטססא פטץ שאך 5576: 6 32 18 33 635400: 6 38 108 (3 35400: 6 48 108 "83 655005: 6 12 0 2 2 65580: 6 112 0 2 63980: 6 2 6 33 655806: 6 112 0 2 635800: 6 12 0 170 630800: 6 2 14 "3 639800: 6 2 4 "3 635800: 6 2 4 3 635800: 6 2 4 "3 635800: 6 2 14 "33 ' , תרשים 20.5: תוכנית לדוגמה, המשתמשת בטכניקות מחלקות משנה כדי להתקין את שגרת הטיפול בהודעות שלה כדי לוודא שהתוכנית שכתבנו באמת מיירטת הודעות, עלינו לגרוס לפונקציה סז אוססחו\ לבצע פעולה מיוחדת, כמו למשל להדפיס הודעה. חזור לדוגמת אירוע 6 סו. הקלד את שורת הקוד הבאה בשגרת האירוע 6עסוספטסוז של הטופס: "1501 5הה דאם/₪ עסו =פטסוא פע שד" זחחק. טטסס 4 סדנת לימוד 6.0 8\ הפעל את תוכנית הדוגמה שנית, ושיס לב כי חלון 6018%6וחוח1 מציג את הפלט של פקודת זחוזק זו וכן את הפלט של פקודת זחוזק הנמצאת בשיגרה 6סזקשוספחו/\. עס זאת, על ידי שינוי הפונקציה 6סזקצוססחו/צ, ניתן "לכבות'" את אירוע 6טסוזספטסו של 6 | ו\: ,חס | 5 ההק הש ,חס 5 ספוט ו3/\ץ ,חס 5 וח ו/\ץ6)8סזקאוססחו\ הסס6חט= חס ] 5 (8חס.] 5 החבּזהק| |'\ץם רחהזהק! ,רחהזהקצו ,ספוט ,שוח ;" :16558006" 6חוזק. פטס ששח ,06קוסח//\ע6ק כ!)6סוקעשססחו//]681 = 6סקצוססחו/\ הסח ד 512 <> טפאט וז (רחהזהק| ,רחהזהקצו ,50 (.6| 6+ [ק\ 66 חו םסוא 5\ס אצ 15 הסוחצצ אסח 200 15 512 |הווססכ)' חסססחט= סחם מכאן... פרק זה בוודאי אינו מהווה מדריך שלס לנושא 861. מטרת הפרק היא להציג בפניך מספר נושאיס הקשורים לשימוש בפונקציות 1קה של פוספחו\\. זכור כי [ק8 של 5וס0חו/\ אינו ממשק פיתוח היישומים היחיד הקיים. ניתן לרכוש ספריות ₪11 מיצרן צד שלישי המבצעות מיגוון רחב של פונקציות, כגון יצירת קבצי :21 (דחיסת קבציסם) או יצירת דוחות מותאמיס לצורכי המשתמש וכדומה. במקרה כזה, התיעוד והצהרות 636 המתאימות יהיו כלוליס עס המוצר. התיעוד של 1ק\ פאוססחו\\ ב- 885 |ה80ו/\ לוקה בחסר. כדי להשתמש בפונקציות [קג אלו בצורה יעילה, קרוב לוודאי שתהיה חייב למצוא מקור אחר למידע רלוונטי. המדריך הסטנדרטי ל-1ק8 למפתתי 8856 |אטפו\ הוא ספרו של דניאל אפלמן 1 32חו]/% 6+ %0 ₪106 5וסוחוחבּזףסיוק 3516 |בּט5ו/ - ההחס!קקה |סוחהס, המכסה נושא וה בצורה מעמיקה ויסודית. מקור נוסף הוא זסקס|6/6 %ספסזסוו₪ 6חו|ח) אזסצססא, אליו ניתן להגיע באתר : ו05010.60₪ו16וח. ה 5רח / / :קססת. לפרטים נוספים אודות המידע הנמצא בפרק זה, עיין בפרקים הבאים : + כדי ללמוד אודות קריאות 1קה הקשורות לגרפיקה, עיין בסעיף שיטות גרפיקה אחרות בפרק 19 שימוש במרכיבי התכנון הוויזואלי. + לשימוש בקריאות 471 כדי לגשת לקבצי 1א1, ראה פרק 21 עבודה עם קבצים. * כדי לראות כיצד קריאות 41 יכולות לשנות את הדרך בה מוצגות מפות סיביות על המסך, עיין בפרק 13 עבודה עם מערכי פקדים. פרק 20: גישה ל-1קה של פווססחוש\ | 565 21 עבודה עם קבצים פרק 21: עבודה עם קבצים | 567 ללא תלות בשפת התכנות בה תשתמש אתה עשוי להידרש במוקדם או במאוחר לכתוב קוד שיינהל מגעיס עם קבצי מערכת ההפעלה. לדוגמה, ייתכן שתידרש להעתיק קבציס או להפעיל תוכנית אחרת. פעולות כאלו תוכל לבצע באופן אינטראקטיבי על ידי שימוש בסייר פאוססחו/\ או בחלון שורת הפקודה של 05כ, אך במהלך הפרק גס תיווכח שתוכל לבצע פעולות כאלו בקלות, על ידי שימוש בקוד 856 |1508/. שימוש נוסף בקבציס הוא אחסון ואחזור מידע. בפרקיס אחריס למדת כיצד להשתמש במסדי נתוניס לאחסון מידע. אך במקרים מסוימיסם מנגנון ניהול מסד הנתוניס של 6 |508ו\ עלול להיות מורכב מדי לצרכיך, או שאופן הפעולה שלו עלול שלא להתאים. לדוגמה, ייתכן שתרצה לנהל קובצ יומן (16= 608 פשוט, או לעבד קוב טקסט פשוט מופרד באמצעות פסיק (660ווחו|8-06וחוחס6). בפרק זה נבחן כמה דרכיס שתאפשרנה לך לאחסן נתוניס תוך שימוש בקבצי טקסט משלושה סוגיס: קבצים סדרת*ים (65!= |08ח56006), קבצים לגישה אקראלת (65!₪ 260655 ההססחהּם) וקבצי אתחול (1!65= חסוסהלו|הטוחז - זא1). פונקציות טיפול בקבצים ב- 83516 [בּש15\ קבציס הס יחידות הארגון הבסיסיות של מערכת ההפעלה. קיימיס סוגיס רביס של קבציס, החל מקבצים שנוצרו על ידי המשתמש, משחקים וכלה בפקודות מערכת ההפעלה. בסעיף זה נדון בחלק מהפונקציות שמשמשות לעבודה עס קבציס במסגרת תוכניות הכתובות ב- 88566 |08פו\. בפרק 30 שימוש ב-)]וז6פפ/ נדון בשיטה נוספת לגישה אל קבצים, אשר מיושמת באמצעות ממשק המבוסס על אובייקט 00% 1!655060= (אובייקט של מערכת הקבצים - סוג אובייקט זה היה בעבר מרכיב של שפת 856106 אך כיוס הוא נגיש גם מ- 8856 |808ו/, החל מגירסה 6). הפונקציות שתידונה בסעיף זה הן פונקציות שכלולות ב- 88566 |1508/ זמן כה רב, עד שהן נחשבות לפונקציות 'ימסורתיות'י של השפה. ראה, "גישה למערכת הקבצים", פרק 30. פונקציה זוסם לאיתור קבצים והצגת רשימות קבצים הפונקציה צזום היא פונקציה מועילה בעת עבודה עס קבצים. אופן פעולת הפונקציה דומה לוה של הפקודה זום שמוקלדת בשורת הפקודה של 5ס. הפונקציה %זוס משמשת להצגת רשימת קבציס אשר תואמיס להגדרה של שס קובץ או של נתיב (חז8ק). הנתיב המשמש לפנייה אל הפקודה עשוי לכלול שס תיקיה, שס קוב ספציפי או את שני הדבריס גס יחד. לדוגמה, הביטוי ז0:\*.84 הוא נתיב הגישה אל כל הקבציס המאוחסניס בספריית השורש של כונן 6 ששמס כולל את הסיומת זַג8. תחביר הפונקציה צזוס הוא: ([0005ו30710 , ][תזהק)זוש = זהצפחו50 8 סדנת לימוד 6.0 8\ איתור קבצים אחד השימושיס של הפונקציה %זופ הוא לשס בדיקה האס קובצ מסויס קיים. אס תנסה לפתוח קובצ שאינו קיים או לבצע גישה אל קובצ שאינו קיים, תתרחש שגיאה. תוכל למנוע שגיאות כאלו על ידי כך שתשתמש במשפט צזוס כדי לוודא שהקובצ קיים, לפני שתנסה לפתוח אותו, כמו בדוגמה הבאה: חסחד " " = ("דאך.ם ו צוז\:6")זוס זז "[חו303 ₪ 2!6856 . סחטס1 סח 85 6|₪ סד" אס 5 0 אס הקובצ המבוקש קיים, הפונקציה פזום מחזירה את שס הקוב ללא הנתיב המלא אליו ואס לא מאותר קובץ התואס לביטוי הכלול בקריאה לפונקציה מוחזרת מחרוזת ריקה. אס הקוב אכן קיים, תוחזר המחרוזת 4ט.8!6ח. תוכל גם לפשט את הפעולה על ידי כתיבת פונקציה גנרית (כללית) שתחזיר ערך 6טזד אס הקובצ אכן קיים: ח800|68 05 (0חו50 ₪5 6!ו5)ספואש6וום הסטססחטת 6וופטק 6 = 15655א6!ן=0 ₪156 06 = פואש6!וט תסחך " " <> (6וו-5)צזום זז חסוססחט- סחם הפונקציה תוכל לשמש לבדיקת קיוס קובצ ששמו יועבר אליה, כמו בדוגמה הבאה: 0חו50 5 505076 וחוס (" :6החהּח ₪6 606 זסשחם")פאסטשנוקח1 = 5056716 הסח ד (6|ו505)5\0567וא סוו-ט +סא +[ ".חוה30 7 06856 .6156 זסח 0065 ₪16 סד" אס8 ₪50 סחם 0 + קטע הקוד שהוצג בדוגמה יסיים את פעולת התוכנית אס הקוב הרצוי לא יאותר, כדי למנוע שגיאות שעלולות להתעורר בשלבים מאוחרים יותר. דרך נוספת למנוע את הבעיה היא לבקש מהמשתמש להזין שם קוב>, עד שהוא יזין שס קוב חוקי. הצגת רשימות קבצים ותיקיות הפונקציה %זופ משמשת גס להחזרה של רשימת הקבצים הכלוליס בנתיב נתון. אס תשתמש במשפט זוס, כל שמות הקבציס הרלוונטיים יוצגו על המסך, אך עקב העובדה שהפונקציה זום מיועדת להחזציר רק מחרוזת אחת, תידרש להשתמש בלולאה ולאחזר שס קובצ יחיד בכל מחזור לולאה (תוכל גס להציג את רשימת הקבצים על ידי שימוש בפקד תיבת רשימה א80 11% - שהוא אחד מפקדי ברירת המחדל של 8856 |8פו/, שנסקרו בפירוט בפרק 4). נניח שבתיקיה 1414ס\:6 מאוחסנים מספר סוגי קבצים עס סיומת 85 (סיומת המציינת קבצי מפת סיביות). הנתיב בו תשתמש כדי לאחזר את שמות הקבצים האלה על ידי שימוש בפונקציה זוס יהיה קוא8.*\ד4ס\:6. תוכל להשתמש בקטע הקוד הבא כדי לאחור את שמות הקבצים ולהציג אותם במסגרת תיבת רשימה. פרק 21: עבודה עם קבצים | 569 5090 5 54006 וחום ("קואם. *\8ס8כ \:6")צזוש = 6ון-1א56 " " <> 6|ו-0א566 סווחצ\ סס 566 וח56.00106 [6זס6ו5! זו = 566 קסס | בדוגמת הקוד האחרונה ראית שהנתיב לקובצ נכלל רק בקריאה הראשונה לפונקציה %זופם, הקריאות הבאות לפונקציה התבצעו ללא שימוש בארגומנטים, כדי לצייו שיש להשתמש בנתיב שפורט בקריאה הקודמת. כאשר לא מאותרים יותר קבצים התואמיס לתנאי החיפוש, 4זוסם מחזירה מחרוזת ריקה ולולאת 6ווח/\ מסתיימת. מ אזהרה: בעת שימוש בפונקציה %זוס במסגרת לולאה, צא מהלולאה מייד לאחר שמוחזרת מחרוזת ריקה. אם תנסה לבצע קריאה נוספת, יתרחש מצב שגיאה הפרמטר האופציונלי השני של הפונקציה זום משמש להעברת תנאים נוספים, שתוכל להתבסס עליהסם בעת בחירת קבצים. לדוגמה, השימוש בקבוע ץזס66זוספע יגרוס לכך שברשימה תוחזרנה רק תיקיות משנה הכלולות בנתיב הנתון. השימוש בקבוע שחט|ס\פע יגרוס לכך שתוחזר תווית אמצעי אחסון ((1306 6וחטוסש) של הדיסק הנתון. הקבועיס שבהם ניתן להשתמש במסגרת הקריאה לפונקציה מפורטיס בטבלה 21.1 (תוכל גם להציג רשימת תיקיות על ידי שימוש בפקד א80 115% ץזסזס6זוס). טבלה 21.1: קבועים ששולטים על אופן הפעולה של הפונקציה %זום | שחסאט| 0 | שךגחותממל 0 הי ה סוחט|ס/פע ה הצג את תווית אמצעי האחסון וסט הצג תיקיות משנה ברשימת הקבצים ץ|ח6800אע הצג קבצים לקריאה בלבד ברשימת הקבצים הערה: תוכל להשתמש בכמה קבועים במסגרת פנייה לפונקציה %זום. לדוגמה, שורת הקוד הבאה תאתר את הקובץ 5צ10.5 שהוא קובץ מערכת (5459060), נסתר (ח4006) לקריאה בלבד (ץ|חס-₪680), במחשב המריץ 95 פצוססחוש\: (ץ|ח68000 טע רפע ה06סוהופע , "5צ5. 6:\10")זוס +חחח. פטטסס 0 סדנת לימוד 6.0 8\ זכור שהקבוע ח46וחפצ מתייחס לתכונות (פספטסוזו)) הקוב ולא לאפשרות של סייר 5סחו/\ המשמשת להצגת קבציס נסתרים. את תכונות הקוב תוכל להציג על ידי לחיצה ימנית על שם הקובצ ובתחירה בפקודה ₪65ז6קסזש מתוך התפריט המקוצר שיוצג, כמתואר בתרשים 21.1, או על ידי שימוש בפקודה 18 דד של 5ספ. |<|?. ב בי | הסופוס שי | ₪68 1 בי ן 3 חסווהסווקק ה :עד 8 וטג 5 [03ופו/\ ]וספסזסו/85%!ו= הההזפסזק 0% | :הסוס | פסועם 1,880,064 , (פפזעם 880,064, ד) האופל. ךר 6 06.5 = :סבה 145-005 יום חמיעוי 25 ירני 1998 ו יום חמיעוי 25 ירני 1998 ו יום רביעי 10 מרץ 1999 00 תרשים 21.1: תכונות קבצים (6= חסטטת -] :וזו ה 5טפוזאה) שמוצגות בסייר פשססחו/\ יכולות לקבוע האם הפונקציה %זוס תחזיר שם קובץ מסוים העט דן פונקציות המבצעות פעולות על קבצים בדומה לפונקציה צזום, גם רוב הפונקציות האחרות של 88516 |5088ו/ לביצוע פעולות על קבציס הן פשוטות לשימוש כמו הפקודות המקבילות ב-05, אך השימוש בהן כרוך במספר הגבלות. הפונקציות מפורטות בטבלה 21.2. טבלה 21.2: תקציר הפונקציות של 8856 |1808/ לביצוע פעולות על קבצים בסעיפים הבאים נפרט על מספר פונקציות שפורטו בטבלה. פרק 21: עבודה עם קבצים | 571 העתקת קבצים המשפט ץ₪1!6600 מוגבל בכך שהוא אינו מאפשר להשתמש בתווי חיפוש כללייםס לצורך הגדרת מספר קבציס בבת-אחת. הוא מאפשר להעתיק קבציס במחשב מקומי או ברשת, כמתואר בדוגמאות הבאות: :הח 65 חַחופַחההּח6 6!וחעע ₪16 3 60165 שחו פחוצוסווס+ 6חד ' "דאד. ז5ם ד\ג דהס\:6" ,"אס צוסא 6 \5זהסותט6סכ ץו]\:כ" ץְסס66ו= :1 5066 6 וס הסה סח 3 ₪056 פסחו! פחועשסווס+ די 0חו5₪ 5 5065% וחוס 509 5 55006 חחוס "5 |א. 006+98ם 06001165 \ 56/6 וח\\" = 55006 "5 |א. ז65ם\\ דה כ\:6" = 506% ,550706 ץ6000וו= משפט 16600 גורס לדריסת קוב היעד, אלא אם כן הוא מוגדר לקריאה בלבד או שהוא פתוח על ידי יישוס אחר. הערה: בעת העתקת קבצים ברשת או באמצעות התקשרות בחיוג, כדאי להשתמש בפקודה זסזו= חס ל"לכידת" מצבי שגיאה. לדוגמה, מצבים שבהם הרשת אינה תקינה או שבהם משתמשים אחרים נעלו קבצים, עלולים לגרום לתוכנית שלך "לעוף" באופן בלתי צפוי. כדאי שתכלול בתוכנית שלך קטעי קוד ללכידת מצב השגיאה ולהצגת תיבת דו-שיח שתאפשר למשתמש לבחור האם לנסות לבצע שוב את הפעולה, כפי שתואר בפרק 10. ראה, "שימוש בפקודה זסזזם חס", פרק 10. טיפ: בעת ביצוע פעולה האורכת יותר משניות בודדות כדאי שתציג קובץ 1/ג, כפי שמערכת ההפעלה פושסטחוש\ נוהגת. יכולת זו תוארה בפרק 12. מחיקת קבצים 6 ואטפוש גס מאפשרת לך למחוק קבצים על ידי שימוש במשפט וווא. משפט וו₪ מאפשר להשתמש בתווי חיפוש כלליים לצורך הגדרת פעולה על קבציס מרובים, כמו בדוגמה הבאה: "606.*\זוסעצוסצז\:פ" | 2 סדנת לימוד 6.0 8\ שינוי שמות קבצים אופן פעולת המשפט 86 של 8856 |הטפו\ דומה לזה של הפקודה שואהאפח של 05פ. אך פעולה זו פועלת רק על קובץ אחד ברגע נתון: 6 85 0/008776 שוחה במשפט פַחחאּ\ ניתן להשתמש גס באופן הדומה לשימוש בפקודה םצס\ של 05, כדי לאחסן את הקוב בנתיב שונה מזה של הקוב המקורי: ץ סוס וח 3 60 6|₪ 66 סטסן ' "זוסצוסצ\\:פ" זוסאוח "דאך.2 ד5ם ד\זוסצוס\ז\:ס" 45 "דאד.1 ד5ם ד\ק6560 \פאוססהו/עצ\:6" סוחפצז בקטע הקוד האחרון הבחנת בוודאי במשפט זוסאוח, שמשמו משתמע שהוא משמש ליצירת תיקיה חדשה. המשפטים זוסאוח ו-זוסוחז משמשים לשם יצירת תיקיות חדשות וגריעת תיקיות קיימות, כפי שעושות פקודות 005 המקבילות להם, פוא ו-סף. הגדרת התיקיה הפעילה בכל הדוגמאות שהובאו עד כה, הנתיב אל הקוב כלל מציין כונן ותיקיה. אך אס התנסית בעבודה עס 05 סביר להניח שזכור לך שבכל רגע נתון אתה 'יממוקס" בספריה מסוימת. לדוגמה, לאחר שתקליד 5/וססאז/צ\ 65 יתאפשר לך לבצע פעולות על קבציס המאוחסניס בתיקיה פששססאז/\ מבלי להידרש לציין את הביטוי 5\וססאז/ו\:6 במסגרת הנתיב שבו תשתמש לצורך פנייה אל קבצים. המושג ספריה פעילה (ץזס60זוכ %ח6חט6) תקף גם בעת עבודה ב- 8856 [1508/. השימוש במשפטים זוסח6 ו-6צוזסח6 מאפשר לך לעבור בין תיקיות של דיסק מסוים ובין דיסקים, תוך הימנעות מהצורך לציין את הנתיב של הקבצים עבור כל פעולה בנפרד : 6 8 6הה8ח6ז סחה 6עוזס סח ץז0ל66וו0 0651760 6 ס+ 6ַחח6' "2656600 \פשססתו/\\:6" זוסחס ":6" סטוזסחס "דא .2 5 ד" 5 "ךאד. דפם ד" שוחו סו +ה6טס 06 חו 3/016 שססוכ' ":ס" 6עווסחס "הדמס\:ס" זוסחס "דהס.ה דהמסס וס" וו ביצוע פעולות מחיקת קבציס במצביםס בהס לא ידוע לך מהי התיקיה הפעילה, כרוך בסיכון מסוים. למרבה המצל, 8856 |150/\ מציעה לך פונקציה שתחזיר לך את שס התיקיה הפעילה, צזופזטס. תחביר הפונקציה צזופזטס הוא: ([6עלוק ] )פזוסזטוס = "מ/סח507 פרק 21: עבודה עם קבצים | 573 הערה: אם תרצה לברר מי הדיסק הפעיל, תוכל להשתמש בפונקציה 160% באופן הבא: (1 ,( )%זושזט6%)0 1 = 6007 |6עחס5 שימוש בפונקציה |ו56 להפעלת תוכניות נוספות מדי פעם תידרש להפעיל תוכנית אחרת הפועלת בסביבת פוססחו/\ על ידי שימוש בקוד 6 |8פו/. לדוגמה, תוכל להשתמש ב- 8856 |1508 לשס תזמון פעולות כגון העברת קבצים או מחיקת קבצים. תוכל לבצע פעולות אלו על ידי בדיקת השעה המוגדרת במערכת והפעלת תוכנית משנית מתאימה בשעה היעודה. את התוכניות האחרות תוכל להפעיל על ידי שימוש במשפט |ו506. תחביר משפט |ו8ח5 הוא : ([50//6//ס0ח/// ,‏ 280008778 )!5061 = זבה\סופטסס קטע הקוד הבא ישתמש במשפט |508 כדי להפעיל את היישוס 86קסזסא (פנקס הרשימות) שיציג קוב\ בשס דאד.ם\ופגםא : 6סטסכ 5 35610 ד חחוס (0005-|8 רתסא ,"א 6806 ז\: כ 0הכסססז")|ו6ח5 = 5610 דט הפרמטר הראשון של הפונקציה ||5₪8 הוא הפקודה שאותה יש להפעיל והפרמטר השני (האופציונלי) הוא סגנון החלון שבמסגרתו יוצג היישוס. הקבוע 0605:|ףחחזסצופע שבדוגמה מורה ל-פשס6חו/\ להפעיל את התוכנית בחלון רגיל שיקבל את מוקד הקלט. קבוע זה מגדיר שתי תכונות של החלון, סגנון (6/ש5) וסוג מוקד (פ5טסס=). סגנון מגדיר את אופן הצגת החלון ((החוסא, 260וחוא8ו, 260ווחו!וא או ח006ו). פרמטר המוקד מגדיר אם היישוס יהפוך ליישוס בקידמה (0חטסזפ6זס] - ברגע נתון רק יישוס פעיל אחד יכול להיות במוקד הקלט). סגנון ברירת המחדל של החלון הוא חלון ממוזער שיוצג במוקד הקלט. השימוש בסגנון ברירת המחדל יגרוס לכך שחלון היישוס שיופעל על ידי משפט |ו506 לא יסתיר חלון של יישוס אחר, אך הוא יופעל במוקד הקלט. קל להפעיל יישומים נוספיםס על ידי שימוש במשפט ||588. אס יהיה עליך להפעיל תוכנית שתידרש להמתין לסיוס פעולתה כדי שהקוד שלך יוכל להמשיך לפעול, תידרש לכתוב קוד שיהיה קצת יותר מורכב ויכלול מספר קריאות ל-1ק\ פאוססחו//. דוגמה של אופן פעולה כזּה הובאה בפרק 20 גישה ל-01 של פוססחו/ש. ראה, "המתנה לסיום פעולת תוכנית", פרק 20. 4 סדנת לימוד 6.0 8\ איתור קבצים תוך התייחסות ליישום שלך בעבודה עס קבצים ב- 8856 |1508/\ לא מומלצ לקדד שמות קבצים ותיקיות בקידוד קשיח. יישומיס מסחריים, כדוגמת 01866, מאפשריס להחליף את תיקיית ההתקנה המהווה ברירת מחדל, לכל תיקיה הקיימת בדיסק שלך. גס אס תתקין את היישוס שלך בתיקיה בעלת שם ייקפרינייי כגון \123אאנ\:ם, הוא יצליח לאתר את הקבציס שיידרשו לו לצורך פעולתו (כגון קבצי תבנית וקבצי תמונה שוניס) ולפעול כרגיל. היישוס שלך גס יהיה מוצלח יותר ומקצועי יותר אם תפתח אותו באופן שיאפשר לו לפעול כשהוא מאוחסן בכל דיסק או בכל תיקיה שהמשתמש יבחר. אם ההתקנה שלך תכלול קבציס פרט לקוב\ 55 (קובצ הביצוע) של היישוס, תוכל לכלול ביישוס מעט קוד שיאפשר לתוכנית לאתר את הקבציס באופן שקוף למשתמש. בתרשיס 21.2 מוצג מסך לבחירת תקליטורים. תוכנית זו מאפשרת למשתמש לבחור את התקליטור שיושמע, באמצעות לחיצה על תמונתו. התוכנית מיועדת לפעול מכונן תקליטוריס, כך שנתיב הגישה לקובץ הביצוע עשוי להיות 5אם.5שאטד\5פאטד\:ס (בהנחה שהכונן שלך הוא כונן \:ם). גסם התמונות של עטיפות התקליטוריס והנתוניס הכלוליס במסד הנתוניס של התוכנית מאוחסניס בתיקיה 5פאטד\ של התקליטור. 0 - 00 בוספחוזוגוות 43 00 106 חס 610% ,50 8 עפוס סד שּ ₪ - - << שמסא . חסוום 8 18 855זכן חב 8הַבחזו 4 שם | ה ו 5 בי בי -||ש\ )!2 ]5 1-4 7 תרשים 21.2: כאשר התוכנית שלך תפעל ממקום בלתי ידוע, כגון כונן רשת ממופה או כונן תקליטורים, תוכל להשתמש במאפיין חזהּק.מקה כדי לאתר את קבצי העזר שיידרשו אס תרצה שהתוכנית תוכל תמיד לאתר את התמונות הדרושות לה, ללא תלות באות המציינת את כונן התקליטוריסם המותקן במערכת, תוכל להיעזר במאפיין ח08% (נתיב) של אובייקט מס (כלומר בביטוי חז8ק. סס\), כפי שנעשה בדוגמה הבאה: 6 החהסכ0' ("ס0רח.5רטס|ה\" 8 הזהק. כ )30856 הק 0 = טס 560 חח 080 [' ("-01. 1661 \" ,8 ההק )ווק 080 ]1 = 61זססוק 56% מאפיין חז8ק.פק\ יחזיר את שס התיקיה שבה פועל היישום. בדוגמה הקודמת, ערך המאפיין היה 5פאז\:ס או כל שס תיקיה אחר שבה הותקן קוב 5אם.5פאטד. פרק 21: עבודה עם קבצים | 575 הערה: אם אתה עובד בסביבת הפיתוח המשולבת של 88566 |08ו\ וכבר שמרת את הפרויקט, המאפיין חִז8ק.סכה יכיל את הנתיב לתיקיית הפרויקט שלך (התיקיה בה מאוחסן קובץ 87\ של הפרויקט). אם טרם שמרת את הפרויקט, חזּק.מקה יכיל את התיקיה שבה מותקנת 88516 |508!/\. בוודאי שמת לב שבדוגמאות הקודמות הוספנו לוכסן הפוך (\) לפני שס הקובצ. המאפיין חזהק.ס0ה אינו מכיל את הלוכסן המסיים את שם הנתיב, פרט למקריס בהס הוא מחזיר את תיקיית השורש של דיסק. תוכל להסתייע בפונקציה פַָחִפָו₪ כדי לוודא אס שס הנתיב שהוחזר מכיל לוכסן סיוס או לא : החהזססז 6 חו 30| 6פט זס1 (6וסההזפּע 6וופטוק 3 ס+ 355(160) הזהקסכ 5 6605 ההק קה = חזהקקקה5 "\" ,8 ה)הקסק\5 = תהקסכ\5 הסר6 "\" <> (1 ,הזהקסק5)ח0ו₪ + :הח זטסזק 606 הו זזה |" 58 5 הסוזה6ס 501 חחוס "66.0 הח" .8 הזה 5 = הסספסס 5081 יש מפתחים שנוהגיס להשתמש במשפט זוסח6 כדי להפוך את התיקיה ששמה מאוחסן במאפיין 475.08 לתיקיה הפעילה, בתחילת התוכנית. אני נמנע מלהשתמש במשפט זה מפני שהשימוש בו עלול להשפיע על תוכניות אחרות הפועלות בסביבת פווססחוצ\. טיפ: אם היישום שלך נעזר בקבצים רבים המאוחסנים בתיקיות שונות, כדאי שתצעד צעד נוסף קדימה ותשמור את מיקומי הקבצים בקובץ 1א1 או במסד נתונים (עיין בסעיף "הבנת קבצי 1א1" בהמשך הפרק). עבודה עם קבצי טקסט במקריס מסוימים תידרש לאחסן נתוניס ולאחזר נתוניס, אך מבלי להידרש לעוצמה של מסד נתוניס (וזאת מבלי להתייחס לקוד הנוסף, קבצי הגדרת התצורה וקבצי העזר שנדרשיס לשס עבודה עס מסד נתוניס). במקריס כאלה, קבצי טקסט (65= %א6ד) יהוו את הפתרון הרצוי. בסעיף וה תלמד על הסוג הפשוט ביותר של קובצ טקסט קוב\ סדרתי בעל מבנה חופשלי (6!=₪ %א6ד |808ח5606 החזס)-66=). מבנה סדרתי הוא מבנה שבו הגישה אל בתיס בקוב> נעשית על-פי סדר הופעתס בקובצ, מבלי להידרש לעבור אל מקוס מסוים בקוב\. מבנה חופשי פירושו שמבנה הקוב לא הוגדר מראש, והשליטה על מבנה הקובצ נתונה במלואה בידי המשתמש. 6 סדנת לימוד 6.0 8\ קבצי טקסט סדרתיים נניח שאתה עובד עס טופס שמאפשר למשתמש לבחור שם של איש מכירות, כמו וה המוצג בתרשיס 21.3. אתה תידרש לטעון את שמות אנשי המכירות אל תוך תיבת רשימה, כדי לאפשר למשתמשיס לבחור מתוכה שם. את הפעולה של טעינת השמות לתיבת הרשימה תוכל לבצע על ידי שימוש בסדרת משפטי 40010060 במסגרת שגרת 06 חזס" של הטופס. אך לא כדאי לך לנהוג כך מפני שנתונים אלה יקודדו בקידוד קשיח. בכל פעס שיחול שינוי ברשימת אנשי המכירות של החברה תידרש להדר את התוכנית מחדש. פתרון נוח יותר לבעיה הוא שימוש בקובצץ טקסט שיכיל את שמות אנשי המכירות. התוכנית תקרא את תוכן קובץ הטקסט ותכניסו לתיבת הרשימה. |<וםן. ו תרשים 21.3: תיבת הרשימה מאוכלסת בתוכנו של קובץ הטקסט תוכל ליצור את הקוב עצמו על ידי שימוש בעורך טקסט כדוגמת 60886זסא, תוך רישוס שמו של כל איש מכירות בשורה נפרדת, כמתואר בתרשים 21.4. |< 1ם) =. שור - )א).16ק60 ₪ 0 ה0זה56 08ם 6ות ו חש 5 650 חבּם-הבּם טְסחובּם סחגם "וסחסוז 6 ובו %ובּם 3 | תרשים 21.4: פשוט מאוד לערוך נתונים המאוחסנים בקבצי טקסט סדרתיים פרק 21: עבודה עם קבצים | 577 התהליך המיושס לצורך כך הוא פשוט וכל אחד יכול לערוך את הקוב, גס מי שאין בידו תוכנה לעבודה עס מסדי נתונים. לדוגמה, המזכירה תוכל לנהל את הקוב\ שיישמר בשרת והיישוס יוכל להעתיק את הגירסה העדכנית של הקובצ כאשר הוא יאותחל. אם אתה בלאו הכי משתמש במסד נתונים, תוכל לאחסן את השמות בטבלה, אך תוכל גס להשתמש בקובצ טקסט פשוט לשס אחסון הטבלה. הערה: המושג של קבצים משותפים ברשת מתייחס גם לקבצי מסדי נתונים, וכן לכל קובץ אחר העשוי להועיל למישהו מבין המשתמשים ברשת. קריאה מקובץ טקסט סדרתי כעת, כאשר ידוע לך עד כמה קל ליצור קבצי טקסט סדרתיים, תוכל לכתוב קוד שיקרא נתוניס מקובצ כזה. אחת הדרכים הפשוטות לעיבוד קוב טקסט סדרתי היא על ידי קריאת כל שורה בנפרד. הפעולות הדרושות לשס קריאה מהקובצ המכיל את שמות אנשי המכירות הן פשוטות מאוד: 1 פתח את הקוב\ לקריאה. 2 קרא שורה מהקוב\ ואחסן אותה במשתנה. 3 צרף את תוכן המשתנה לתיבת הרשימה. 4 בצע את צעדיס 2 ו-3 עבור כל שורה בקוב\. 5. סגור את הקוב. הקוד שישמש למילוי תיבת הרשימה, שיידון בסעיפים הבאים, מוצג בתרשיס 21.1. תוכנית 21.1: ק8/. | 1151711 - מילוי תיבת רשימה מקובץ טקסט. ()א15500 ]|| 500 5080 5 קוחם 51 וחוס 506 1 5 זטסח1 זס "דאך.= וקסםק\ג דהס\:6" הסקס (1)-0ם %סא 6שווח/\\ סס קוח6 57 ,1+ זטסח1 שחו | רחס 51 0166 606 50| קסס | 1 0|056 טט5 0חם לפני שתוכל לכתוב או לקרוא נתוניס מהקובצ, תידרש לפתוח את הקובצ על ידי משפט ח6קס. משפט זה יקשר את השס הפיסי של הקוב עם מספר קוב (ססוחטא 6וו₪). מספר הקוב הוא ערך מספרי שלס המשמש לזיהוי הקוב\ בקוד 8856 |1508/\: 1 5 זטמח1 זס- "דאד.ם וקסםק\ דכ\:6" חסקס 8 סדנת לימוד 6.0 8\ הערה: בקטע הקוד שהוצג כאן, מספר הקובץ הוא 1. אך אם תפתח ותסגור קבצים רבים במהלך פעולת התוכנית, לא כדאי שתשתמש במספר מפורש. כדאי שתשתמש בפונקציה 7666 שתחזיר את מספר הקובץ הפנוי הבא. כמו בדוגמה הבאה: זז 5 6!וחח חחוס 6זת = שוחה 6|וח+ 5 זטסח1 זסז " דאד.= וה צוז\:6" הססס לאחר שתסיים להשתמש בקוב, כדאי שתסגור אותו באמצעות משפט 61056 (ראה תוכנית 21.1) כדי לפנות את מספר הקוב לשימוש על ידי קבצים אחרים. בנוסף לכך שהיא מקשרת בין מספר הקובץ לשם הקובץ, משפט ח6ס0 גם מורה ל- 8856 |1508\ מהו האופן בו אתה מתכוון להשתמש בקוב מסוים (משפט ח6קס תומך באפשרויות רבות, שמידע אודותיהן תוכל למצוא בקוב העזרה). טיפ: לפני שתפתח קובץ לקריאה, כדאי שתיעזר בפונקציה %זוס כדי לוודא שהוא קיים. מילת המפתח +טמח1 מציינת שהקובץ נפתח לקריאה סדרתית, אופן פתיחה אשר מאפשר לעבור על-פני הרשומות, על-פי סדר הופעתן בקובץ, תוך תנועה קדימה. פעולת הקריאה מעבירה את מצביע הקוב אל הרשומה הבאה, באופן אוטומטי. קטע הקוד שהוצג בתוכנית 21.1 משתמש במשפט )טסח1 6חו1 הכלול בלולאת 6!וחצ\ 6 לצורך קריאת הנתונים. משפט זטסח1 6חו]1 הראשון יקרא את השורה הראשונה בקובצ, משפט +טמח] 8חו1 השני יקרא את השורה השנייה של הקוב וכך הלאה. השורות בקובצ\ מופרדות על ידי סימני 6חו] 0 6חם (סוף שורה). סימן 6חו] +0 0ח5 בסביבת פטוססחוצ\ מורכב מתו החזרת גררה (חזש6 806ו77ז68) משולב עס תו הזנת שורה (660= 6חז)). תחביר משפט זטסח1 6חו] הוא : 6 6006 3 %ווסח1 שחו | כאשר "8007006 מכיל את מספר הקובצ הפתוח ו-90/80876ה0/ הוא משתנה מחרוזת או משתנה מסוג 6חאוז3\. אס תנסה לקרוא יותר שורות מכפי שקיימות בקובץ, תתרחש שגיאה, על-כן כדאי שתיעזר בפונקציה 50 (₪6 +0 חש - סוף קוב) כדי לבדוק אם הגעת לסוף הקוב>, בטרס תבצע ניסיון נוסף לקריאה מהקוב\. לאחר שתפתח את הקובצ יתאפשר לך לבחור מבין כמה שיטות לקריאה לצורך קריאה מתוכו. בדוגמה שלנו שמו של איש המכירות הוא הנתון היחיד הכלול בכל שורה, כך שלא תידרש לבצע פעולות נוספות לצורך עיבוד משתנה המחרוזת. אך במקריס מסוימיס תרצה שכל פעולת קריאה לא תקרא שורה שלמה, או יותר מנתון אחד מכל שורה. במקריס כאלה יהיה עליך להשתמש במשפט אשטסח1 או בפונקציה זטסחז. פרק 21: עבודה עם קבצים | 579 משפט +טסח1 מיועד לקריאת נתוניס המופרדים בתוויס מסוימים. לדוגמה, השורה הבאה הלקוחה מתוך קוב טקסט מכילה שלושה פריטי מידע נפרדים: מחרוזת, מספר ותאריך. הנתונים מופרדים בפסיקים, בגרשיים ובתווי %. 1998-01-01%א ,100 ,"650" שורת הקוד הבאה תקרא כל אחד מהנתונים שהוצגו בשורה הקודמת אל תוך משתנה מהסוג המתאיס: 000 בשוחו מכ/סח507 ,1 % וטסחז זכור שהפונקציה + 6שסח1 מחפשת את תווי ההפרדה האלה, כך שיהיה עליך להקפיד שמבנה משפט + זטסח1 יתאיס למבנה הקוב. הפונקציה +טסח1 היא אמצעי נוסף לקריאת נתוניס. הפונקציה +וסח1 מאפשרת להגדיר את מספר התוויס שייקראו מהקוב\, כפי שנעשה בדוגמה הבאה: 1 ז6סוחוח 6!₪ וחסז] פזְססֶ6הזהה6 1/6 6805ב (5,%1)טקח1 = 5 כעת נשווה את האופניס בהס ניתן להשתמש בשיטות השונות שהוצגו כדי לעבד שורה מסוימת בקוב: "0ַח50 0055 3 15 פוחד" :| חן 6268060 סחו! פהוצשסווס1 6+ 5ב ₪16 זטס 6וח55ת' 590 5 5 וחוס 5 ,41 זטסח1 שחו | 5 פחוט|סח! ,8חו50 6זוס חס ₪6 פחובסחסס 6 ' 5 ,1+ זטסח1 5 מ סחוצ\ 8חו507 6 5חוב%חס6 5' (5,%1)טסח1 = 5 (5וח ד") 5זסז6070 5 זז ₪6 פהוהזח 00 6 ' כתיבה בקובץ טקסט סדרתי קוב יומן (₪ 6/08) הוא אחד מאופני השימוש הנפוציס בקבצי טקסט סדרתיים. אני משתמש ב- חסטפסו!מק\ זס|0ו5660 שמפעיל תוכניות ומבצע עדכוניסם במסד נתונים ואני ממעט להשתמש במחשב שעליו פועל חסוטפסו|סכ\ ז560600|0, אך אני נוהג להתחבר אל המחשב הזה דרך הרשת ולעיין בקובץ היומן כדי לוודא אילו עדכוניס הושלמו עד כה. טיפ: קבצי טקסט סדרתיים מאפשרים ליצור קבצי אצווה (65!= ח8806), תסריטי קד (%5קוז56 קד=) וכן סוגים נוספים של קבצי טקסט בעלי מבנה פשוט, באופן ממוכן. 0 סדנת לימוד 6.0 8\ תוכנית 21.2 מציגה תת-שיגרה בשסם 10918 שאותה תוכל לצרף לתוכנית שלך לצורך ניהול קוב יומן של הודעות שגיאה. תת-השיגרה תרשוס את הודעות השגיאה בקובצ היומן, כאשר כל הודעה מלווה בתאריך. תוכנית 21.2: ק8/. דא7₪1ק06! - שימוש בקובץ פלט סדרתי לבניית יומן יישום. (00ו50₪ 5 511655306)חוזק טס 1 טפ לחז 5 6!וחח וס ןת = 6!|חח 6וח א 5 60זהח5 ההסססג זס " דאד.8ס הזסחם\" ,8 הסהק. סקסה הססס 6 ₪ " - " ,8 ("55:החרח: חח 00-רחרח" , אוסצ])פ6ה רוס ,6!ו הח +חוזק 6ווחחא 6|056 טט5 סחם לתת-שיגרה זו תוכל לקרוא מתוך שיגרה לטיפול בשגיאות, או כדי להודיע על התרחשות אירוע מסויס במסגרת התוכנית : ".60ח6ס ץ]|(506065500 85/ 8680856 סחדד" 6חוזקטס | תוכל לעייןו בקובץ היומן בעּרת עורך טקסט, כמתואר בתרשים 21.5. |< ום). ‏ סוסא - זא1 .םס וזסוו ₪ ]| 56308 206 6|] . פ=זההז5 א0ז]ז68 |קקה - . 146 = א10ז168 |וקקם . פ=זההז5 א10ז68ז|קק - . ₪016 68108 |קק - . פםזה8ז5 108ז168 |קקה תרשים 21.5: תוכל לאפשר ליישום לנהל קובץ יומן על ידי הוספת שורות קוד מעטות הסעיף הקודם השתמש במילת המפתח זטסח1 כדי לפתוח את הקוב לקריאה (ראה תוכנית 21.1). כתיבת נתוניס מתבצעת על ידי פתיחת הקוב לכתיבה סדרתית, אך במקוס להשתמש במילת המפתח זטסזטס יהיה עליך להשתמש במילת המפתח סחסססה. מצא את ההבדליס בין שתי שורות הקוד הבאות: 6חס צ\סח 3 6708005 זס 6| 61508 חב 0+ 3005 - 06סרח סהססכת' 1 395 השקה זסז "דא ד.פס |זסיחם" הססס חס הו זס)חו 61508 ץחה 678565 ,6 עשסח 3 0768005 5ץבּצו|הּ - 6ססו! +טססטסי 1 88 6טסט זס+ "ךא ד.8ס וזסזם" הסקס אופן העבודה 0ח6סס4 גורס לכך שהנתוניס שמוספים לקוב> מוספים לאחר הנתונים הקיימים בו. והו אופן הפעולה המתאים ביותר לניהול קבצי יומן, מפני שבעת ניהול קבציס כאלה תרצה שנתוניס חדשים יתווספו לקוב\ הקיים. פתיחת קובץ תוך שימוש פרק 21: עבודה עם קבצים | 581 באופן העבודה %טסזטס יגרוס לכך שנתוניסם הקיימים בקובצ יימחקו. שני אופני הפעולה האלה גורמיס לכך שמשפט חסקס ייצור קובץ חדש, אס לא קייס קובצ עס השס הכלול בו. לאחר שתפתח קובא לכתיבה, תוכל להשתמש בכמה משפטים שוניס לצורך כתיבת הנתוניס בו. המשפטיס אשחוזק ו-64שוז/), שיתוארו בסעיף הבא, יאפשרו לך לעצב את הנתוניס שתכתוב בקובצ באופניס שוניס. שימוש במשפטים %חווק ו-6פוו]\ אופן פעולת משפט %סחוזק דומה מאוד לזה של השיטה זחוזק שתוארה בפרק 20, גישה ל-01 של פשסשחו/, פרט לכך שבמקוס שפלט משפט יופנה אל אובייקט המוצג על גבי המסך, הוא מופנה אל קובצץ פתות. למעט במקריס שבהס נעשה שימוש בנקודה-פסיק או בתו הפרדה אחר בסוף השורה, מוסף תו מעבר שורה לאחר כל פריט שמודפס. תחביר משפט אטחוזק הוא : 60055005 ,השח6/// זחווק משפט אחר, משפט +טוז/\ עובד כמו משפט א>חוזק, אך מוסיף מפרידיס ותווי הפרדה באופן אוטומטי. תחביר משפט אפטוז/\ הוא: 60705505 ,60007 בטוז\\ %ז\ הוא משפט המיועד לפעול בשילוב עס המשפט +)טסח1 שתואר בסעיף ''קריאה מקבצי טקסט סדרתייסיי. להלן מובאות מספר דוגמאות של שימוש בשני המשפטים, שהקוב שנוצר על ידי השימוש בהס מוצג בתרשים 21.6. "0וז/\\ חב %שחוזק 01 6|כקרחהא6 חב 15 פוחד" ,41 6חחחק "חהחזם" ,"זס!ו5" ,41 )חווק "ההוזש" ,"זסוו5" ,1 ססוז/\ ;".0000"; (2*3;506)5 ,"?ץ|ו6" ,1 זחווק ;1/1/1998,1000*5 ,"פסה" ,1 סטוז/\ "סע" 8 + 1הססע ₪1 שחווק |<ום])= = 63 )ס] - )א).6!קחזבּא ז6וו-] ₪ 6 ו0ז 568‏ 208 שו 8 ששחה 5%8ה1ץ +0 16קהבּא6 חב 15 15הד ח13ום 3110 "ה8713", "51107" ,0, 885085005005815-8%. 5, "6 ב:'". ₪006 6 תרשים 21.6: משפט אפחוזק מאפשר שליטה טובה יותר על מבנה הקלט שיוצג ואילו משפט 64טוז\ מקל על אחזור הנתונים על ידי שימוש בתווים מפרידים 12 סדנת לימוד 6.0 8\ קבצים לגישה אקראית - הגדרת מבני קבצים לקבציס סדרתיים אין מבנה מסודר כלשהו. למעשה, ניתן לומר שמבנה הקבציס הסדרתייס מוגדר על ידי הקוד שקורא את הקוב ולא על ידי הקובצ עצמו. בסעיף הקודס למדת שעובדה זו מהווה גורס מועיל מבחינת קריאות הקבצים, אך היא מגבילה את מבחר הפונקציות שבהן יכולים מפתחיס להשתמש לצורך קריאה מהקוב>. לדוגמה, ‏ 8856 |1508/\ אינה כוללת פונקציה שמאפשרת לדלג אל רשומה מסוימת בקוב סדרתי, מפני שהיא אינה מכירה את מבנה הקוב. אחת הדרכים שבהן ניתן להגדיר מבנה מסויס עבור קובצ היא על ידי אחסון מבני רשומות (₪66070 5 ) שהוגדרו על ידי המפתח, במקוס אחסון של מחרוזות פשוטות. השימוש במבניס כאלה מאפשר לפתוח את הקוב תוך שימוש במצב אקראי (006 וחססחפּם), שאינו מגביל את המשתמש לגישה סדרתית. יצירת סוג רשומה סוגי רשומות מותאמים אישית (65ץד 0ז₪660 הסז5ט6) הס למעשה סוגי נתוניס המוגדרים על ידי המשתמש (65קץד ₪888 660ח)06-ז50). הגדרת סוגי נתוניס המוגדריס על ידי המשתמש מתבצעת באמצעות משפט 6מץד. הצהרות על סוגי נתוניס כלולות בקטע 5ח00ו260|3780 |8ז8ח66 (ההצהרות הכלליות) של חלון הקוד. קטע הקוד הבא ישתמש במשפט 6סץד לצורך הצהרה על סוג הנתוניס 66ץס|קוחם : 6של ססות 6קיד ססהטוזק ז%600ח1 5 כ1סוח= 0 * 8חו50 5 6וחהּ\ | 0 * 8חו50 45 סוחבּצ= 0 * 8חו5₪ 85 6חוד 6מץד סחם ניתן לבצע גישה אל נתוניס מהסוג המותאס אישית על ידי שימוש בתו נקודה טספ חסז6סא\) כמו בדוגמה הבאה: ססלסוקוח= 5 1קוחם וחוס "306" = סשותהחח. 1קוחם "הורח5" = 6וחפּח |. 1קוח= "זסאסט|ק הסאסות6" = 6וך. 1קוחם "12345" = ס1מוחם. 1קוחם הגישה לשדות סוג נתונים מותאס אישית דומה לגישה למאפייני אובייקט, שתוארה בפרק 4, שימוש בפקדי ברירת המחדל של 83516 |בּשפו/. פרק 21: עבודה עם קבצים | 583 פתיחת קובץ לגישה אקראית ההבדל העיקרי בין פתיחת קובצ סדרתי לבין פתיחת קוב לגישה אקראית, הוא שבעת פתיחת קוב לגישה אקראית תידרש לכלול במשפט ח6ק0 הגדרה של אורך הרשומה. את אורך הרשומה של סוג שהוגדר על ידי המשתמש ניתן לברר על ידי שימוש בפונקציה ח6] על נתון מהסוג הרצוי, כמו בדוגמה הבאה: 6לסוקוחם 5 1קוח6 וחוס (01וח6)ח6 | = ח6 | 41 35 ההססח3ה זסז "דה ס-אזקוים\:ס" הסקס שורת קוד זו פותחת את הקובצ דג.סתאזקוים לגישה אקראית. קטע =ח6| של משפט ח6ק0 מורה ל- 8856 |1508/\ להניח שפעולות הקריאה והכתיבה הבאות שתתבצענה על הקוב הזה, תתייחסנה לרשומות הזהות באורכן למבנה 1קחס. הוספת רשומות בעזרת משפט שטק לאחר שתפתח קוב לגישה אקראית, תוכל להשתמש במשפט זט לשס אחסון רשומות בקבציס. תחביר משפט שח הוא כדלקמן: 6 ח0!6 88 , [ז טר 66 ,ססר ח6! +ווק קטע הקוד הבא ישתמש במשפט זט במסגרת לולאת זס"] לצורך כתיבת חמש רשומות מסוג 66ץסוקוח= בקוב\ 1+ : 5 170 = | זסח ("6רח3\] 35% | זס%חם")%א0ט)6טסח1 = 6ובּ\ |.1קוחס ("6רח3\] 56ו=] זס6חם")%א00)טקח1 = סופת 1קוחס ("06וד")%א0פ6טסח1 = 6חוד.1קוחס | = 10קוח=.1קוחס 1וחס ,1א סק | אסא ממשפט טק הושמט הפרמטר האופציונלי זפוחטח66ז שמגדיר את המקוס בקובצ שבו תיכתב הרשומה החדשה. במקרים בהם לא נתונה הגדרה עבור פרמטר זה, הרשומה החדשה נכתבת במקוס שאליו מכוון מצביע הקובצ. אחזור רשומות בעזרת משפט 666 משפט 660 ישמש אותך לאחזור רשומות מקוב\ אקראי. משפט 660 יכול לשמש לקריאת נתונים בתזרה לתוך רשומה מהסוג שהגדרת, כפי שניתן לראות בדוגמה הבאה שתקרא את רשומה מספר 4 לתוך המשתנה 601 ותציג את הערך המאוחסן בשדה פטוד של הרשומה: 1וחס ,4 ,21 0060 6 8 " 5ן 06 66ץסוקוח=" אס 50 4 סדנת לימוד 6.0 8\ תחביר משפט 66% דומה לגה של משפט שטק : 006% 606 |] 06 , 0/6 אס תשמיט את הפרמטר זספוטח66ז מהקריאה למשפט 66, משפט 6% יפעל כמו משפט זטסח1 6חו1, כלומר הוא יקרא את שורות הקלט בהתאם לסדר הופעתן בקוב\. שימוש במשפט 566% לגישה אקראית תוכל להשתמש במשפט 5666 כדי לעבור בין רשומות בקוב>. משפט 566% מקבל שני פרמטרים, מספר הקוב ומספר הרשומה, כמו בדוגמה הבאה: 5666 41, 3 שורת קוד זו תגרוס לכך שמשפט זט או 661 הבא שיבוצע יתייחס לרשומה מספר 3. קבצי 1א1 קבצי 1א1 משמשיסם לאחסון נתוני תוכניות והגדרות משתמשים. כעיקרון, קובצ ַאז הוא קובצ טקסט בעל מבנה פשוט, אשר מאפשר לך לשמור נתוניסם מסוימיס ולאתחזר אותס. הסיומת 1א1 היא קיצור של אתחול (ח08|2800וח1). אחסון נתוניס בקבצי זא1 מונע את הצורך לקדד אותס בקידוד קשיח במסגרת התוכנית שלך. כך מתאפשר לך לשנות ערכי פרמטרים מבלי להידרש להדר שוב את התוכנית. בסעיפיס הבאיס נסקור כמה שימושיס אפשרייס של קבצי 1א1 ונתאר את הפעולות הדרושות לשס שימוש בהס במסגרת תוכנית. הבנת קבצי זא מבנה קבצי 1א1 הוא פשוט. ניתן לעיין בהס ולבצע שינוייס על ידי שימוש בעורך טקסט כלשהו, כגון 0%6080. בתרשים 21.7 מוצג קוב 1א1 לדוגמה. [< וםן. \ 0 - וחו-ח516ע5 ₪ 60 568008 ₪06 6|] [0-ו503ץ6] =011. 031-0ע%6 ח1ם.13%862א=ה1ם. 0608051 ספא ₪310031 %+167050!! וס עָפא-181/182 6ַ"ְ03ה5%3=קט5 .900030 6 553003-6=ט-ו0. ₪56סח 35060%=188 ,6 1 5846 10016 5ש-ו01=ט:ו0. עָ13ק015 [ה%10ק065001. 500%] 6 5%30036=ט-ו0. 505%60 תרשים 21.7: קבצי זא1 יכולים לשמש לאחסון הגדרות ונתונים אחרים באופן מסודר [חה3865] 5"( [אט. 500650 , 50 שסחט*=0₪56ח 00016606 901068 שקט*=060166 90103 [אעט*=6-ו003ע9> %4, 60ט*-ש013ק015 פרק 21: עבודה עם קבצים | 585 שלושת המרכיביס של קבצי 1א1 נקראיס מקטעים (5660005), מפתחות (66/5) וערכים (65ט!8/) (בטרמינולוגיה של 6070504 כל מקטע נקרא גס חסספסו|סקא - יישום, זכר לימיס שבהס כל יישוס אחסן את ההגדרות שלו בקובצ 1א1.א1/\). מרכיבי קובצ 11 יפורטו בטבלה 21.3. טבלה 21.3: מרכיבי קובץ זאז מרכיב תיאור שם התחום בסוגריים מרובעים ([]) תחתיו מקובצת סדרת מפתחות וערכים ץ6א | מחרוזת ייחודית. לאחר המפתח יוצבו סימן שווה (=) וערך. מפתח נדרש להיות ייחודי במקטע בו הוא כלול 6 | הנתונים הממשיים שקשורים למפתח מסוים בקובץ זא1. מקטע ומפתח משמשים יחד לשם קריאה או כתיבת ערך סדר הופעת המקטעיס בקובצ אינו חשוב, משוס ששילוב שס מקטע ושס מפתת מצביע (או לפחות אמור להצביע) על ערך יחיד. בקבצי 1א1 נקודה פסיק (;) מסמנת הערה, מערכת ההפעלה מתעלמת ממפתחות ומערכים שמופיעים לאחר נקודה פסיק. לדוגמה: [5600005] 8 5-0 \\:ק= חס80סס ופפ פסוי. ז5ם ד\6005\:= הסוס ופס; בדוגמה זו קל מאוד לעבור משימוש במסד נתונים מקומי המשמש לצורך תהליך הפיתוח, לשימוש במסד הנתוניס האמיתי של היישוס. עליך רק להפוך את השורה שמצביעה על מסד הנתוניס שאינך מעוניין להשתמש בו להערה. שימוש בקבצי 181 ב- 83516 |בּטפו\ אחת הסיבות שבעטיין קבצי 1א1 נחשביס לפשוטים לשימוש היא שהסם חוסכים ממך את הצורך להתייחס לפעולות הבאות: יצירת קובץ, פתיחת קוב ואיתור השורה הרצויה בקוב. לפני שתוכל להשתמש בקוב> 1א1 תידרש להצהיר על שתי פונקציות של 01 פאוססחו/\ ולכתוב פונקציות מעטפת (חסטס6חט= זסססאּז/\) עבורן (מידע נוסף אודות פונקציות הכלולות ב- 01 פשוספחו/\ תוכל למצוא בפרק 20 גישה ל-1קה של 5שססחו//. הוסף לתוכנית שלך מודול חדש והוסף את הקוד הכלול בתוכנית 21.3 לקטע 260|3780005 |678ח66 שלו. טיפ: כדאי לך לבנות ספריית פונקציות מועילות כגון אלו במודול נפרד (שתוכל לקרוא לו 885.צדתדט, או שם דומה), שבו תוכל להשתמש בקלות כחלק מכמה פרויקטים. 6 סדנת לימוד 6.0 8\ תוכנית 21.3: ק1%1-65./8 - שימוש בקבצי 1א1 במסגרת תוכנית. 5\ ד סכ זקג' "60780650" 85| "32ו6הסא" טו 1 0חהו650ו קוה עקז6כ) הסטס6חט= 6זה!ססכ | |8/ש2 ,שח 5 6וב\ש6אכ! והש ,0חו7ז5 35 שו הּצהססהסווססהכ| וב\ץם) | 5 26ו5ח |3/ץ8 ,50 5 0חו050סחזוס6חק! ו\ץ ,חַח50 5 שוטפוסספו פחס | 5 (0חו50 5 6הההּסווכ| ועט ,פחס! = 85| "66132" 1 0ח650!ו סקס 8עק6טוח/\ הסססחט- 6זהוססס |3/\ץ8 ,500 5 6ב חסוהסוומכ מכ | " הח 65וסזקססהעהקססוו\" = (0ח501 5 שוחב)זסווחכ! ו3/\ץ8 ,ץחה 5 סחהוטפכ!| וש ,חגא 35 6הההץסאכו 8 5 | :]50630 ,0חו5 5 /5%6 ,חַחו50 5 ח556600 ,500 5 6ו506011)5101 הסססחטת 6וופטק 59 5 (8חו50 5 6 * 5018 5 סוחס 51 וחוס 1 5 הזח !וח וחוס (50866%)256 = קוחס 51 (6ו-51\1 ,255 ,קוח6 51 ,5061901 ,56 ,ה00556600ח650ו סק 66 = הזחח6 וח (010ח6 1ח ,כרח6 6%)51] = 5060141 חסססחט- סח = 5 6ט|5/8 ,0חו50 5 566 ,0חו50 5 ח5566000 ,8חו50 5 6ון-51)זצס6וזעצ סט5 6ווסטק (9חוז5 חן 5 ח הזוס 5090 5 קוחם 51 וחוס 6 = וח 51 5 ו 5ז8600זהח6 -] 6/1 עחה 06ב|ססח' (6ט|5\8)ח | סד 1 = ח זס= = חסחד +!סע = (1 ,ח ,6ט|5/8)ף0ו זס זספט = (1 ,ח ,6טו5/8)ףסוו )1 "" = (ח ,6ט|08)5/8ו! ח %א6א (6!ו-51141 ,רחש 51 ,ץ566 ,ה00556600ח6507!ו סק טסה עוקספחש\ = ח טט5 סחם לאחר שתוסיף ליישוס את הקוד המובא בתוכנית 21.3, תוכל להשתמש בפונקציה 51 ובתת-שיגרה 6181פוזאו לשס כתיבה וקריאה נוחה של קבצי 1א1 מהס ואליהס. קטע הקוד הבא ידגים לך כיצד לאחזר הגדרות מקובצ 1א1 לצורך שימוש בעת אתחול תוכנית. פרק 21: עבודה עם קבצים | 587 תוכנית 21.4: ק65./8א-1א1 - שימוש בקבצי 1א1 לאחסון הגדרות של תוכניות. ()החהזססזקטוח1 50 508 5 6!ו-511 וחוס 58 5 50507\86 וחוס זז 5 +הטס6ח חחוס זז 5 | וס 6 1 6 01 הסו680ס| 6+ 6זסז6' "זא קקה ץו\" 8 חזפק. סק = 6וחז5 6 זא 6+ החסיוז שוחפּח 56 6ר 6680 ("?" ,"06ח05071%3\" ,"5601005" ,6!ן-5060101)51%1 = 6וחה\ 50 \5 חס ך "?" = 6רח8\ז5\050 +[ 6ח )שח זס1 586 סחה 6 זס? 356 - %ח656זכן 85/ש סרחפּח וספ סא' (":6856!ן 6חחפח וטס זס%ח" )א0ט)קח1 = 6וחה\500507 56786 \5 , "15036" ,"05חו560" ,1=!6צ51 זצזטסוז\ + 0חם ההז ה056ח6 35%] 5015 6 561666 סחה ₪16 141 רתס 15| אסט סטרחס6 קט וו" ((0 ,'"+חטס6" , "פחסוס56" ,6ו1)5181₪ו50601ח61 = %הטס6ח סח סך 1 = | זס ("?" ,| 8 "חסוס6ה" ,"פחסו60" ,6וו-5141) 5 006 ה ות | אסא ((500 1. ה רחש , "הסו560 |" , "5חסוסשת" ,6ו-1)51%1 506 = א ד. הסה טותס טט5 0חם קטע הקוד המובא בתוכנית 21.4 בודק תחילה בקובצ 1א1 לצורך איתור שס משתמש. על ידי הגדרת התו יי כערך ברירת מחדל עבור שס המשתמש, תוכל לבדוק האס בקובצ כלול כבר שס משתמש ואס לא, תוכל להציב בקשה מהמשתמש להגדיר אותו. היכולת להשתמש בערך ברירת מחדל עבור הפרמטר היא חשובה מאוד, מפני שניתן להשתמש בה גס בעת התייחסות אל קוב שאינו קיים. הקטע הבא של דוגמת הקוד משמש לקריאת מספר האצוריס מקובצ [א1 וייעזור בערך שייקרא כדי להציב כל אזור בתיבה משולבת. השורה האחרונה של הקטע מציבה במאפיין הטקסט של התיבה המשולבת ערך שנקרא מקובצ 1א1 תוך שימוש בפריט הראשון של הרשימה כערך ברירת מחדל. 8 סדנת לימוד 6.0 8\ הערה: זכור כי 1א]פוזאו היא תת שיגרה, כך שאין להשתמש בסוגריים במסגרת הקריאה אליה. הפעלת התוכנית שלך תוך שימוש בקבצי 1א1, באופן שהודגם בתוכנית 21.4, יאפשר לך לבצע שינוייס קליס בתוכנית, במהירות וביעילות מבלי שתידרש להדר אותה שוב. מכאן... בפרק וה למדת על כמה מבין הפונקציות לטיפול בקבציס המובנות ב- 88516 |1808/ וכן למדת כיצד להשתמש בקבצי 1א1 במסגרת יישומים. בעת עבודה ב- 8856 |1508\ תוכל להעתיק, למחוק, לשנות שמות קבציס ואף לאחסן בהם נתוניס תוך שימוש במיגוון מבני אחסון. לשיטות שתוארו בפרק זה אין אומנס עוצמה רבה כפי שיש למנגנוני ניהול מסדי נתוניס, אך הן מותאמות היטב לביצוע מטלות פשוטות שאינן כרוכות בתקורה רבה. מידע נוסף אודות נושאיס שנדונו בפרק זה, תוכל למצוא גם בפרקים הבאים : + אם תרצה ללמוד עוד אודות שיטות מתקדמות לאחסון נתונים תוכל לעיין בפרק 4 יסודות מסד הנתונים. + מידע נוסף אודות פונקציות 471 פשסטחו\\ תוכל למצוא בפרק 20 גישה ל-1ק של 5ס)חו/\. * | מידע נוסף אודות גישה לקבצים מתוך דפדפן 60/\ תוכל למצוא בפרק 30 שימוש ב-%ק1ז856/. פרק 21: עבודה עם קבצים | 589 22 שימוש ב-= 01 לשליטה על יישומים אחרים פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 591 =|ס, שפירושו קישור והטבעת אובייקטים, הוכנס כאמצעי לשילוב מוצריס ממשפחת 6 )116705016 יישומיס תומכי 015 מאפשריס למשתמש להפעיל יישוס אחד מתוך אחר ללא צורך לצאת מהיישוס המקורי ולעזוב את הממשק שלו. 01606 16050 היא דוגמה מצוינת של קבוצת תוכניות עצמאיות המשתמשות בטכנולוגיית 015 לעבוד יחד. מאפיין זה הופך קבוצת יישומים ליותר מאשר חבילת תוכנות ארוזות יחדיו. לדוגמה, על ידי שימוש בטכנולוגיית 015 ניתן לשבצ גיליון 5%66 במסמך 6זס\\. משתמש העובד עס מסמך 6זסש\ יכול לערוך גיליון בפשטות על ידי לחיצה כפולה עליו. פעולה זו תפתח את תכונות העריכה של |₪668 בזמן העבודה בתוכנית 6זס/ו. היתרונות למשתמש הס בכך שניתן לערוך מסמכיס שוניס מתוך ממשק אחיד וקבוע. היתרון למפתחיס הוא שיישומי ‏ 0160 מכיליס קבוצה גדולה של אובייקטי 015 (או 6%ע16) הנגישיס למשתמשים מתוך תוכניות 8856 |1508/. כאשר משתמשיס באובייקטי 015 של 07666 מתוך 8856 |508ו/, למעשה יישולטיס מרחוק''י על חזוסש\ או |66א5. פירוש הדבר הוא שהתוכנה חייבת להיות מותקנת במחשב המשתמש והיישום מתנהג השינויים נעשים מתוכו. היישום עולה ובהתאסם לצורת כתיבת קוד 88516 |1508/, המשתמש יכול לצפות או לתקשר עס היישוס. מסיבות אלו אוטומציית 015 יכולה להיות איטית אך שימושית בנסיבות מסוימות. להלן מספר יתרונות לשימוש באוטומציית 015: + תצוגת דוחות מקצועיים באמצעות סזס\\ ו-|5%69 ניתן להדפיס דוחות מקצועיים ומרשימים. על ידי שליטה מרחוק על 6זס\\ ו-₪606 מ- 8856 |פטפו/, ניתן בקלות להדפיס דוחות תוך ניצול תכונות העריכה המתקדמות של תוכנות אלו. <* יצירה אוטומטית של מסמכים ניתן ליצור גליונות עבודה ומסמכים על ידי שימוש בקוד 8856 |808ו/. לדוגמה, ניתן לרכז כל שבוע הצעות עבודה מתוך מאגר נתוניס, ולשלוח אותס למועמדיס המתאימים באמצעות ווה-6. + שליפת מידע ניתן לשלוף מידע מתוך גיליון אלקטרוני באמצעות אובייקטי 015 ולאחסנו במאגר נתוניס. בפרק זה נבחן מספר דרכיס להשתמש בתוכנות 6זס\\ ו-|₪%66 מתוך 8856 |15808/. למרות שהדוגמאות מכילות קוד 8856 |1508/ סטנדרטי, קח לתשומת לבך כי יישומי 6 מכילים למעשה קוד 8856 [508ו בתוכס ומרבית הקודים שמתועדים כאן ניתן לשלב כקוד גפצ בתוך מסמך או גיליון. 12 סדנת לימוד 6.0 8\ עבודה עם אובייקטי 6יוס/ש\ היכולת לשלוט במרכיב 6זס)\ 1167050 מתוכנית 88516 |1508/\ יכולה להוות ערך מוסף משמעותי ליישום. המשתמשים יעריכו את היכולת לערוך מסמך 6זס/\ ללא צורך לצאת מתוכנה מסוימת. בפרק וה תלמד כיצד להוסיף יכולות זסו\ לתוכנית. ספריית האובייקטים של זסשצ כדי להשתמש באובייקטי סזס)\ מתוך 8856 |8ט8/, תוכנת סזסש\ חייבת להיות מותקנת במחשב שלך. לאחר ההתקנה ספריית האובייקטים של 6זס\\ אמורה להופיע בתיבת הדו-שיח 066ח₪61676 8856 |הטפו\ כמתואר בתרשיס 22.1. 1 [ |<| וז סב המ 6 - 0 עז זפ | 066 זס5זם .50 5ס5טיסוו | | 0 ץז זפו! 66[ זסהַהַטפסם -501-ד פל ס5פשוז ם עוו500ח55ם 6.0 885 |הטפו/י +]ספסיטוי 1 ] 6פוסזם עווו50ח06= חס 63!קקה זס] 835% |הטפו/\ ']ס5סיסוו ךר 1 תרשים 22.1: כדי להשתמש ב ו ₪ ור באובייקטי 68 בב- 88516 |1508/, ₪ ו "זב זסו.) +66 . 1 6וסו)3קוחט. וי מ הוסף ייחוס לספריית האובייקטים של -- ץזהז | 6סעד 1.0 א105% חס ] . זז | סיד 1.0 0₪62156, . סזסש\ (ייחוס סזסצ\ מתוך 7 66 זב זט 1 0050 8.0 זסו\ %]ספסזסו -ן מוצג כאן ( וס 0197001508 := :ח106300 5 מסספפוח!\/ח5וופַח= = הבה 1 כדי להוסיף ייחוס, בחר ₪6)6760665 מתוך תפריט 66%[סזפ, וסמן ליד 670506ו₪ סזס\ ץזהזטו | +66[פ0. לאחר יצירת הייחוס לספריית האובייקטיםס של שזס/ץ, הקש 2- או בחר ששז/, 506ש870 00[66% כדי לראות את האובייקטים אשר שזסש\ מקצה לתוכנית כמתואר בתרשים 22.2. וו 1 זט זר בי 4 9 טסזמ930 | 5 <00808ו> 9 ו פאווסזם. פון חוטנא ₪5 ₪ זפ סז 8 פחוטמא ₪ נווטפ ו טא ₪ מו *"'ה תרשים 22.2: זספוסזם 606[ט0 הוא 3 ו סו סונא 5 סו ו ונ 5 | כלי יעיל לגילוי פעולות שניתן לבצע 5-0 טנ 5 1 5 - 1 1 1 | עם שזסש\ ו-|66א5₪ מתוך 8856 |הטפו\ |= 35|[ וסט 5 ה סע 01 טחוס בסעיפים הבאים תלמד כיצד לתמרן את זס\\ 0504י6וא מתוך 8856 |509ו/\ על ידי שימוש בספריית האובייקטים של זס\\. פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 593 יצירת יישומים ואובייקטי מסמכים שני אובייקטיס חשוביס ביותר בתוכנת 6זס/\\ שיש להכיר הם: חסטפסווסקה.6זס/צ ו-+חסותטססכ. 6זס)\, המאפשריס גישה מיידית ליישוס פזסו\ ומסמכיו. להפעלת 6זס\\ מקוד 8856 ,/1508|‏ יש ליצור מופע חדש של חסשספסוו|ססה. 6זס\\ כפי שתעשה עם כל אובייקט אחר: םס1108%10סקת.26סח פב סעסחאכרסס תנק מ1108%10סקת.ס2סח טסא = בעסחרסס 566 שיס לב כי כאן משתמשיס בקישור מוקדם באמצעות הצהרת 56%, המקלה על תכנות באמצעות אובייקטיס כמתואר בפרק 16 מחלקות: שימוש חוזר ברכיבים. ראה "הצהרה ושימוש באובייקטים" בפרק 16. שתי השורות לעיל מפעילות את שזס/\ על המחשב שלך. לאחר מכן 6זסו\ מופיעה ברשימת המשימות אבל נשארת בלתי נראית עד אשר תשנה את המאפיין 6|פופוצ לערך ד כמתואר בדוגמה הבאה: סמעץ = 181016ט.2סאךרסס כמו כן, אפשר ליצור אובייקטים מסוג זחסוחטססק.סזסש\ מתוך אובייקט היישוס. האובייקט ח800סו|סס\. 0זס/\ מכיל אוסף פחסוחטססס. וזכור מפרק 13 כי ניתן להשתמש בשיטה 00 מתוך אוסף כדי להוסיף אובייקטיס חדשים. כעת ביכולתך לנסות דוגמה פשוטה. תחילה צור פרויקט חדש ₪85 50000810 והוסף ייחוס לספריית האובייקטיס של סזס)\ כפי שתואר קודס לכן. לאחר מכן הוסף שני לחצני פקודה +605%8 ו-60061056, והכנס את הקוד מתוך תוכנית 22.1 בטופס. תוכנית 22.1: ק8/.= |קואהאפסהס/\ - שימוש ב-סזסצ\ מתוך 8856 |1808/. חססהסווססה. סזס/\ 25 סזסשו[טס חחזוס ()א6ו0 53% 0רח6 50 ססבּעווק %חסותטססק. סזס/\\ 5 6סס[פס חחוס 6 6 6אהח חב סוס צה0ס ' חסוסהסו|ססה. סזס/\\ צוסא] = סזס\\[סס 56% סד = 6!טופו/. סזס/\\[פס 006 ששח 8 0076865 ' ורטסק פס = 6סס[פס 565 006% 36006 שר זו שאה ' .ןטס 4 סדנת לימוד 6.0 8\ חר סכ 6 סש זאסש 506 ₪00 ' "+ 506 5 5וח ד" ז56%0ח1. ח566600. צ\ססחו/\ 606 ה. הסח פסווססה.6ססןסס 156 5616600 וס סח 606 הס פסווססה.6ססןסס ")א סרח 506 5 5וח ד" ז567/.0ח1. 566600 צוססחו/\ 606 . הסח פסווססה.6ססןסס 156 5616600 צ\סח 66 הס פסווססה.6ססןטס 6 000 %א6ף חסו56!660 6אהטן ' סד = 0|0ם.זחסת. ח0סו56|660. ששססחו/ 606 6ססןפס 6% ז56|60ח) ' = 0 56|600. סוחס 60 6סס[טס 50 0חם ()61166 6061056 500 סספּעווק 05 חַחוצ53 זטסרטוצו סזס\\ 56סו0 ' 6 סוט סזס/\\[סס 6 00166 6500 ' פחותזס\! = סזס/\\[סס 56% סט 0ח5 כאשר אתה מפעיל את התוכנית הקודמת ולוחץ על פקד +05%8ח6 נוצר מסמך זסש\ חדש. בשגרת האירוע 66% משתמשים באובייקט ח56!6000 של המסמך כדי להכניס טקסט ולהדגישו. הערה: בתוכנית 22.1 משתמשים במשתנה טופס לאובייקט חססהסווססה.סזסש\ כדי לאפשר התייחסות מתוך מספר תת-שגרות. בתוכנית 22.1 יצרת אובייקט מסמך מתוך אובייקט היישוס. כמו כן ביכולתך ליצור אובייקט מסמך ישירות כמתואר בדוגמה הבאח: סרוטס זסש\ 5 6ססנטס חחוס %חסרחטססכ. 0 זס/\ צוס\] = 6סס[פס 56 "!ס||6" זא6 דסקץ ד. 5616600 תועסה 6סס[טס הקוד הקודס יוצר מסמך 6זס)\ חדש אבל בניגוד לקוד שבתוכנית 22.1 הוא משתמש במאפיין קייס של 6זס\\. במיליס אחרות, אס המשתמש כבר פתח את 6זסש\, נוצר מסמך חדש ביישוס הפתוח הקייס של שזסו\. מנגד, הדוגמה הראשונה יוצרת מסמך חדש של 6זסצ\ בכל מקרה. פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 595 כאשר סיימת עם המסמך או אובייקט היישוס, ביכולתך לסגור את המסמך על ידי שיטת 61056 ואת סזסו\ על ידי שימוש בשיטת זוט0: 6 0[006.6056 6-ו סוס ערך הפרמטר האופציונלי 8/56] מורה לתוכנת 6זס/\ לא לשמור שינויים. השמטת ערך זה גורמת לתוכנת סזס)\ לשאול את המשתמש במקרה והמסמך לא נשמר. בהתאם ליישוס שלך ייתכן שתרצה לאפשר למשתמש לערוך את המסמך. במקרה וה פשוט השמט את השיטות זוטף ו-6!056. שמירה, פתיחה והדפסה של מסמכים לאחר יצירת מסמך 6זס/\ ב-8856 |1508/\ ניתן להשתמש בשיטות 58/6 ו-58/645 של אובייקט המסמך כדי לשמור אותו בכונן. קודם לכן יש להשתמש בשיטה 58645 כדי לציין את שס הקוב\. "6.06סכץ]\ רתס ד\:6" 6.58/65סס[טס לשיטה 586 אין ערכיס. היא נועדה לשמור מסמך לאחר שצוין שמו. 00206.6 חהו) 8|56=] = 6.58/60סס[טס ]1 ניתן להשתמש במאפיין 58/60 כדי לבדוק אס המסמך נשמר מאז שבוצעו בו שינויים. הערה: אם תשתמש בשיטה 586 ללא 58/65 אזי 6זסש\ יבקש את שם הקובץ. כדי לפתוח מסמך קיים, צור שיגרה של אובייקט חסחפסו|סס\. טזוסש\, והשתמש בהצהרה % ביחד עס ח6ק0 מתוך האוסף +חסוחטססס. ("06.אחט?\ 6 ד\:6") ה6.06חסרטססס. 0 זס/\ןפס = 6סס[טס 56 בשורת הקוד הקודמת, אס הקוב 6סכ.אחגו( לא קייס, 6זס/\ תציג הודעת שגיאה. ניתן לטפל במצב זה מתוך 8856 |808ו/ על ידי שימוש בהצהרה זסזופחס, ובדיקת אובייקט המסמך כדי לראות האם המסמך פתוח. שח ₪056 זסזום חס ("6.06חט2\ 6 ד\:6") ה06.חסרטסס. סנס = 6סס[טס 56 ("]546005510 0% 85/\ ה6כ ")0 50 הפחד פהוחתזסצ! 15 6ססנטס +ז כדי להדפיס מתוך שזס)\ השתמש בשיטה זטסשחוזק ו-שוסועסזק)חוזק. השורה הבאה גורמת לתוכנית זס/\ להדפיס מסמך: חק ןס 6 סדנת לימוד 6.0 8\ אס אתה יוצר דוח ב-6זס/\ ייתכן שתרצה להשתמש בשיטה שסועסזקשחוזק כדי לאפשר למשתמש לראות את המסמך ולהחליט האם להדפיסו. עבודה עם טקסט בתוכנית 22.1 השתמשת בשיטות 50+007ח1, זו חהק8ז80ה?+50ה1 כדי להוסיף טקסט למסמך סזס\\. אולס קיימות עוד דרכיס רבות לעבוד עס טקסט בתוך 6זס/ו. לדוגמה, אפשר להשתמש באוסף 065ז0)\ כדי לאחזר מילה אחת בכל פעם. הדוגמה הבאה מוסיפה את המילים לאובייקט ז+חסוחט6ס.6זס/\ בתיבת רשימה. 05.00 זס/\.6ס[פס 60 1 = זס/\ח זס= ד (0 סח )05 זס/\.6ס פס .8 " 5" ,8" סזס/\" בח05.0016זס50! 0זס\\ח +אס)] כמו-כן ניתן להחליף מילים בתוך מסמך על ידי הצבת ערך למאפיין 6% אבל יש לזכור כי החלפת מילה במספר מילים תשנה את סך המילים במסמך. הערה: האובייקט %הסחטססכ.0זס/\ מכיל גם אוספים של 0600665ח56 (משפטים) ו-378018005ק (פסקאות). דרך קלה להכניס טקסט במיקוס מסויםס היא על ידי שימוש בסימניות. בתוכנת 60זס\ 116705066 ניתן למקס את הסמן במיקוס ספציפי ולבחור 091%ח8009 מתוך תפריט + כדי ליצור סימניות. מתוך הקוד ניתן להשתמש באוסף 68זהוחאססם כדי לזהות את הסימניות. ("ד00. !6 דש \ מ ד \:כ) 6.00 חס טססס.0זס/\\ןטס = 6סס[פס 56% "חזורח5 הסנ" = 6 86.7ח8ף. ("סהבצ]") 5אזהּההאססט.6סס[טס "5 )טס 123" = 60 86.7 ("055 0 ה") 5אזהההאססם.6סס[טס "4.6 הו5\ דהכ\:כ" 6.58/635סס[פס בדוגמה זו יצרת מסמך חדש מתוך תבנית לקוח, הוספת נתונים ואת מיקוס הסימניות, ושמרת את המסמך לקוב> חדש. שים לב כי הקוד מניח כי תבנית המסמך 86|סוח6ד/וא מכילה סימניות מוגדרות מראש. פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 597 תכונות שימושיות נוספות אם אתה רוצה ליצור דוח באמצעות שזסוו\, עליך לקרוא לשיטות ולהגדיר תכונות שתשלוטנה על יבירת הדוח. דרך אחת ליצור דוח שייראה מסודר היא על ידי הוספת טבלאות לאוסף 180165 כמתואר בקוד הבא : 6 ד.0זס/\ 5 שוסב דנסס וחוס (2 ,10 ,06ח06.₪8כ(00) 00ה.30|65 ד.006[פס = 6|ס ד[סס 56% "ס||36]" = 6 ד.06ח1(.8 ,1)וו6.66וסב דוס "ץ||סם" = 6 ד.06ח8ח. (1,2)וו6.66וסב דוס וסט (2)פחרחט!|ס6.6וסה ד[סס הקוד הקודם מכניס טבלה של עשר שורות ושתי עמודות במסמך ומוסיף טקסט. לבסוף, השיטה *וחספטה מופעלת כדי להתאיס את רוחב העמודות לרוחב הטקסט בעמודה. מאפיין מעניין נוסף הוא היכולת להוסיף משתניס משלך למסמך פתוח. מאפיין וה שימושי למשל אם קיימיס מספר מסמכים פתוחים ויש צורך לזהותם. כדי להוסיף משתנה, צור שס והשתמש בשיטה 400 באוסף 81180!65/\. "8675309" ,"ס[םםצס |קואם" 65.00|ספוז3ּ/\.6ססן[סס תוכל להשתמש במשתנה שלך כדי לזהות את המסמך סכ זסשןט 0 ח1 קוחם ז6סכ[טס ה86ם זס= חסחד "8675309" = ("כזםם 0 |[קו\ם") 65וטה3ּ/. קוח6 ז6סכנטס +ז קוחש [06[פס = 6סס[טס 566 + 0חם קוחס ז6סכ[פס )אסו] כדי שהקוד שתואר יעבוד, עליך להציב את הערך של 6ספ[פס ל-פחווחססא אס השתמשת בו קודס. 36 וס/\ בסעיפים הקודמים למדת כיצד להשתמש בספריית האובייקטים של סזס/\ ספסלסוו. השתמשת בקישור מוקדם, פירוש הדבר שמשתנים הוכרזו תחילה כסוג מסוים ולא כאובייקט מסוים כללי יותר. אולס אס שמרת יישומים ישניס יותר של 8856 |1508 ייתכן כי תמצא ספריה שונה - ספריית 6ו0885ז0//. יישומיס המשתמשים באובייקט זה, מצהיריס בדרך כלל עליו כקשר מאוחר כפי שמופיע בדוגמה הבאה: 0 5 סזס/ןפס וחוס ("28516. 0זס/\\") 67681600[66 = חזסשו[טס 56% 8 סדנת לימוד 6.0 8\ גס הפקודות שונות במקצת: סו סזס ןס 5 סוס\\[טס 4 26ו5זחס=. סזס/\\ןפס "ד ₪10 6ה0ס5" +6פח1. סזס\\[סס 2 26ו5זחס=. סזס/\\ןפס 18 סוס ןס "אד ז78||6ח5 506" +ז56ח1. סזס/\\ןפס שימוש בקוד לפי הדוגמה הקודמת בהחלט אינה שיטה רצויה לגשת ל-6זס/\ מ- 88516 |1508/\, אולס ציינו ואת כדי למנוע בלבול במקרה ותיתקל בקוד ישן יותר. עבודה עם |6סא= באמצעות הטכניקות לשליטה ב-6זס/\ 1167050 ניתן לשלוט גס ב-|066א₪ מתוך יישומי 6 |08ו. כמו 6זסש\ גס ל-|₪668 יש ספריית אובייקטים משלה אשר יש לייחסה בתוך פרויקט 8856 |%1608. על ידי שימוש באוטומציית 015 עם |5%6 אפשר ליצור דוחות מסודריס כמו אה המתואר בתרשים 22.3. העימוד והעיצוב של הדוח נעשה בתוכנת |68א5 ובאמצעות 88516 |1808/ הוזנו הנתונים. 1 []58] 80081 - סא 140105016 א *ם נָתונים מלון ערה 9 86 בש + זל = 0 ד ד = 1 |דו"ח מנירות 2 |רבעון אחרון - 1998 3 4 |אזור סה"כ תציב שנה קודמת 5% |מזרה ‏ 23 15 20 6 |מערב | 45 45 0 7 צפון 66 0 8 8 |דרום := :> 40 5 - תרשים 22.3: דוח זה המכיל 11 ור - גרף ועמודות מספרים קשה 0 . | ה . מאוד ליצירה באמצעות פקודות 5 [פגה ומס | | - 0 0 ההדפסה המובנות ב- חן דרום צפון מערב | מזרתח , 2 2 כ 6 |808ו אש 41 141 / גיליוך1 .( אוליוך? \( היליון5. \\ ו ₪ / מוכך [ בי | יצירת אובייקטי |66א5 כדי להפעיל תבנית |66א= השתמש באובייקטים 00%פ6זס\\ ו-660ח5אזס/\. הקוד הבא מפעיל את |68א5 ויוצר חוברת עבודה חדשה המכילה גיליון אחד. חסספסו|ססה. |06א= ₪5 |ססאש[פס חחוס חסופסו!קסה. |06א= צוס\ = |ססאש[סס 56% סד = 6ופופו/. ו6סאש[טס 1= אסססאזס//שש6\ח5066151. וססאםןטס 0 ס/\. ו6סאש[טס פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 599 הצבת ערכים של תאים וטווחים כדי להציב ערך ייחודי של תא בגיליוו אפשר להשתמש באוסף 69/8 מהמאפיין ₪886 של האובייקט ז65066אזס/\: ה ו66א= [פס וטו\\ "10" = 6ט|3/. (1,2) 061!5. "20" = 6ט|3/\. (2,2) 061!5. "(81:82) הטפ" = 6ט|3/\. (3,2) 061|5. "סד" = ("3ה") 06ח3. וטו\\ 0ח= הערה: 6 עובד גם עם תחום שמות של תא אחד או יותר. = זס|ס6.זחסת. ( "6 חן" 66.3 65 עו6ה. וססאש טס שים לב כי השתמשנו בהצהרת חסו/\ כדי לא לחזור על שס האובייקט. ב-|66א5 ייתכן שתמצא כי האובייקט שאליו עליך לפנות, נמצא מספר שלביס עמוק באוסף. סד = 0|סם.)חס=. (6)2,4ח8א. ("סו|סוסק" )66 ח5. (1 )5 ססטאזסש\. ו6סאש[טס למרות שגישה וזו עלולה להיות מבלבלת היא דרך טובה לארגן מספר גדול של מחלקות. כאשר אתה מפתח ב-|66א5 וב-0זס\\ אפשר להשתמש במספר שיטות כדי להפעיל את האוסף בצורה קלה יותר: % צור אובייקט משתנה בינייס. + השתמש בתו נקודה (ח00זסא 0%כ) כפי שתואר בשורת הקוד האחרונה. * השתמש בהצהרת חוו\\ כדי להימנע מהקלדת יתר. שימוש בפקד המכולה 5 01 פקד המכולה 015 מאפשר לך להטמיע או לקשר בין אובייקטי 015 ביישוס שלך. בסעיפים הקודמים למדת כיצד להשתמש באובייקט 015 לשלוט על יישוס אחר. שימוש בפקד המכולה 015 שונה בכך שאובייקט חיצוני מופיע ביישום שלך כטופס ולא כיישוס נפרד. במיליס אחרות, אפשר ליצור טופס עס פקדים, תוויות ופקד 015 המכיל מסמך 6זס/\. אפשר ליצור את האובייקט המוטבע בזמן העיצוב או בזמן ההפעלה, כל עוד פקד 015 הוכנס לטופס. יצירת אובייקט מוטבע בזמן העיצוב כדוגמה, צור אובייקט מוטבע של תוכנת הציור ח5טזטזחו3ק של פאוססחו/\. תחילה הפעל פרויקט חדש מסוג 5%5 5090870 וגרור את הפקד המכיל 015 לטופס. ברגע שגררת את הפקד, תיבת הדו-שיח 56100[66ח1 תופיע כמתואר בתרשיס 22.64. 0 סדנת לימוד 6.0 8\ |<]? | !זס5ח! הר | 06 קפסת 5 וחווד סז 01686 7+ 0 6 חזסז) 16816 5 ]608611 1460 : וס 6ב חסס| 85 עפוספום. =[ 5 חס !06!ס וטו 6 א - וסט זט אס 01686 6 ו זגוסע טוח )סשןפס 6זווזסום] מפגחטוחובי] אוסח ב 565 וט ₪ תרשים 22.4: 56100[600ח1 מאפשרת לציין את אובייקט יוטבע בזמן העיצוב תיבת הדו-שיח :1056700160 מכילה רשימה של כל האובייקטים שניתן להשתמש בהס באמצעות פקד 015. אס לא תבחר אובייקט, פקד 015 ייצור מסגרת לאובייקט שניתן ליצור בוּמן ההפעלה. לדוגמה, בחר בתוכנת חפטזמסחו3ק ולתצ על אס. מצב אובייקט לאחר שבחרת בסוג אובייקט מסוים ולחצת על א0, סרגל הכלים והתפריטים של 6 |808ו/\ משתנים. שינוי וה התרחש כיון שאובייקט 015 המוכל בפקד הופעל. כאשר האובייקט מופעל אפשר לתקשר איתו. בפרויקט לדוגמה, כיון שיצרת אובייקט מסוג תמונה של חפטטשחו:, אתה יכול לצייר בתוך המסגרת ולבצע את כל הפעולות כמו בהפעלה רגילה של התוכנה. צייר מספר קוויס ונטרל את פעולת האובייקט על ידי לחיצה מחוץ לפקד שעל הטופס. שים לב כי עדיין תוכל לראות את הציור במסגרת האובייקט הלא פעיל אבל הסביבה של 8856 |1508/\ חזרה למצב העבודה הרגיל. כאשר אובייקט אינו פעיל אפשר לתקשר איתו. המאפיין שזסססזסץ8!ספוס של פקד 015 מגדיר האס האובייקט יוצגו כסמל או יוצג תוכנו (במקרה זה הציור). הפעל את התוכנית על ידי הקשת 5= ושיס לב כי התנהגות האובייקט נותרה ללא שינוי. לחיצה כפולה על האובייקט מפעילה את חפטזטזחוהק כך שניתן לערוך את האובייקט כמתואר בתרשים 22.5. שמירה והטבעה של אובייקט לקובץ כעת תוכל להוסיף יכולת של שמירה וטעינה לאותו יישוס. הוסף שני לחצני פקודה 60586 ו-01.080וח6 לטופס והכנס את הקוד הבא : ()66ו| 58/6 0ח6 50 סספּעווק 1 8( ץזפחופ זס "דהס. ז6:\08₪0" חסקס 1 6|חס 58/6 1= 01 1 6|056 50 0חם () 1166 080 601 500 סספּעווק 1 85 עזבחום זס "דהס. ז6:\08₪0" חסקס 1 6וןוחסז-₪680. 1= 01 1 6|056 50 0חם פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 601 [<ום).. [חזס ]₪ 16|0 פחסווק 0 36| אוסוש ו תרשים 22.5: שים לב כי פקודת התפריט 6ו= של אובייקט פעיל לא מופיעה בצורה אוטומטית כיון ששמירת הקובץ נתונה לשיקול דעתו של המפתח שיס לב כי על אף השימוש בשיטת פקד 015 לשמירה וטעינה של קוב, עדיין מוטלת עליך פעולת טעינת הקוב באמצעות המשפט ח6ק0. אפשר לבחון את הקוד על ידי שמירת הציור, שינויו במקצת וטעינה מחודשת של הקוב לתוך הפקד. יצירת אובייקט מוטבע בזמן ריצה בדוגמה הקודמת, יצרת אובייקט מוטבע של חפטזטטחו8ק בזמן עיצוב. אפשר גס ליצור פקד 015 ריק בומן העיצוב ולטעון אובייקט בזמן ההפעלה. כדי ליצור פקד 015 ריק, פשוט בחר |68066 כאשר תיבת הדו-שיח 1056109160 מופיעה או לח\ לחיצה ימנית על הפקד ובחר 0066 60060 6!616ם אס אחד כזה כבר קיים. צור אובייקט מוטבע בזמן ההרצה על ידי שימוש בשיטת פקד 015: 67080050060. שיטה זו דורשת שני ערכים: מסמך מקור ושס המחלקה של האובייקט. את ערך שם אובייקט המקור ניתן להשאיר ריק אם מעוניניס ליצור אובייקט ריק. שורת הקוד הבאה יוצרת תמונה של חפטזטזחו8? בפקד 01 בשם 015₪1: "6זנחסוק.+חוהק" ," " 076806060 1= 01 שיס לב כי עליך לצייןו את שס המחלקה כדי ליצור את האובייקט. ניתן לראות רשימת מחלקות תקפות על ידי לחיצה על הסוגריים (...) בחלון המאפייניס של עצוסקסזק 61855 שבפקד ₪ )01. 2 סדנת לימוד 6.0 8\ יצירת אובייקט מקושר פקד 015 גס מסוגל ליצור אובייקטיסם מקושרים. אובייקט שכזה, מקושר לקוב\ חיצוני ולא מוטבע בקובצ עצמו. כאשר מפעילים אובייקט מקושר, חלון היישוס מופיע כדי שנוכל לערוך את האובייקט. ליצירת מסמך מקושר, עליך לציין את שס מסמך המקור. עבור אובייקט מסוג תמונה של תפטזסזחו8ק עליך לצייו את מיקומו של קובצ מסוג תמונת מפת סיביות (כהחחשום) כמתואר בתרשים 22.6. |<|?. !ז56ח! / ופ 6806 7+ | 06 6 ו 5 הגופ ]טסו 185% חזבזפסז\: | 6 וחסזן 016816 6 = | חססן| 35 עבופאם -] 0 -ן סח +ספןסס חב 35 6!ן] 6 )0 65ה6וחס6 6 5615ח! בחופטו ]| 301/16 שבח גוסץ 13 50 ומסוווססם וס 3 1 | 0163160 וראו הזב זטסזם 6 ₪3 תרשים 22.6: ליצירת אובייקט מקושר בזמן העיצוב בחר בשם הקובץ וסמן את תיבת הבחירה אחו] כמו כן תוכל ליצור אובייקט מקושר בומן ההרצה על ידי שימוש בשיטה %חו6768061 כמתואר בדוגמה הבאה: "קז 6קח5חוק \5שוססחו//\:0" אחו [6809ז0. ₪1 ןס כאשר הינך משתמש באובייקט מקושר, שינוי קובצ האובייקט ישתקף ביישוס שלך. כמו כן, אס תעדכן אובייקט המקושר ליישום, השינויים יתבצעו גס בקובצ המקור. האופן בו האובייקט מתעדכן מבוקר באמצעות המאפיין ח000ק%60ז08ק היכול לקבל את הערכיס הבאיס : שם משתנה תאור 6חססטה= |ספע | האובייקט מעודכן אוטומטית כאשר משנים את קובץ המקור ח26סז-= |סטע | האובייקט מעודכן כאשר קובץ המקור נשמר מיישום המקור הטח8\\= |\ספץ | האובייקט מעודכן כאשר מתבצעת קריאה לשיטה 0806 בדוגמה שבקטע הקודס, שינוי המאפיין 0806000005 מגדיר מתי ישתקפו בפקד 015 השינוייס שבוצעו בתמונה. פרק 22: שימוש ב-015 לשליטה על יישומים אחרים 603 מכאן... בפרק וה למדת להשתמש בפקד 015 לשליטה על יישומיסם אחריס ולהטביע אובייקטיס בתוכנית. למרות שהתמקדנו ביישומים מסוימים, וכור כי ייתכן שברשותך יישומיס שלא פותחו על ידי 1670504 אבל ספריית הסוגיס שלהם עשויה להיות מותקנת במערכת שלך. הרחבה של החומר הנדון בפרק זה תמצא בפרקיס הבאיס: * ללימוד נוסף על מחלקות ואוספיס ראה פרק 16: מחלקות: שימוש חוזר ברכיבים. + להביןו כיצד תוכל לכלול נתונים בדוחות שלך ראה פרק 24 יסודות מסד הנתונים. 4 סדנת לימוד 6.0 8\ 23 ארגז הכלים של המומחה פרק 23: ארגז הכלים של המומחה | 605 פרק וה נועד לאנשים שלומדים מדוגמאות. בעקבות המהדורה הקודמת, רבים מהקוראים ביקשו יותר דוגמאות. לאור פנייתס הוכנסו לפרק וה מספר רב של פרויקטים בנוייסם באמצעות 8856 |1508/. בנוסף, הפרויקטים בפרק וה מאחדים יישומיס מעשייס מפרקים אחרים. לאחר שתתנסו מעט בעבודה עס 8856 |1508/\, נסו חלק מהם - רובס מהנים מאוד. שיחה מזוהה שיחה מזוהה (כ1 ז68|!8) הינו שירות הניתן על ידי חברות הטלפוניס ומאפשר לך לראות את שס המטלפן או מספרו. המידע מועבר בין הצלצוליס כך שתוכל לראות את פרטי המטלפן לפני הרמת השפופרת. בעידן זה של שיחות טלמרקטינג לא מוזמנות, שיחה מזוהה היא המצאה גדולה, אבל, יש גס מלכוד. כדי לסנן שיחות, עליך להימצא ליד הצג כאשר הטלפון מצלצל - אלא אס תכתוב יישוס 8856 |80 כמתואר בסעיף זה (ראה תרשים 23.1). יישוס וה מדמה תצוגת שיחה מזוהה בתוספת אחת - צליל. כאשר הטלפון מצלצל, היישוס משמיע צליל שמוצמד למספר מסוים. לדוגמה, תוכל לגרוס לכרטיס הקול שלך לצעוק ייאל תענה!!יי כאשר אנשי טלמרקטינג עושיס את הסבב שלהם. למרות שיישוס זה מאוד ממוקד, בזמן בנייתו תלמד כיצד לתקשר עס המודס מתוך 6 ו|8טפו/, טכניקה שניתן להשליך גס לתחומיס אחרים. [<זם = ו וגח אפאההש - ווה -* | 2/2 |[ ק 09:31 05/25 :6וחוד] | 901-555-1213 :זססוחווו זו תרשים 23.1: היישום "שיחה מזוהה" מתריע על ידי הפעלת קובץ שמע דרישות לשימוש בקובץ לדוגמה היות ותוכנה וו מתקשרת עם "יהעולס האמיתייי, יש למלא אחר מספר דרישות בסיסיות כדי להשתמש בה. % > עליך להירשס לשירות שיחה מזוהה. % > ברשותך צריך להיות מודס מחובר לקו טלפון, ותומך בשירות שיחה מזוהה. % > עליך לדעת את הפקודות שיגרמו למודס להציג את המידע. 6 סדנת לימוד 6.0 8\ לפני שתכתוב קוד 8856 |1508/, יש לזהות את הפקודות הדרושות לשימוש בשיחה מזוהה ולבדוק אותן בתוכנית מסוף כמו |חווחזס דופסץ. לדוגמה, הקלדת הפקודה 1+זה תגרוס למודס שלי להפעיל את תצוגת השיחה המזוהה ולאחר שהטלפון יצלצל יציג את המידע בהפעלת (ח0סו5655) המסוף כמתואר: זז 7 = שזס 5 = >וזדך 2 = הפא \הזחם ףם |51 = משטחא 6 הערה: התצורה וההגדרה של שיחה מזוהה עשויות להשתנות ממודם למודם. ליתר דיוק מודם 150% מחזיר את המידע באופן שונה לגמרי. תוכל לשנות בקלות את היישום ולהתאימו למודם שלך, אך היכרות עם תצורת השיחה המזוהה שלו יכולה להועיל. לאחר שבדקת כיצד לקבל את המידע על השיחה המזוהה מהמודם, בעזרת תוכנית עור, השלב הבא הוא כתיבת יישוס 88516 |1508\ המדבר עס המודם, מקבל מידע ופועל בהתאם. היישוס המודגס בסעיף זה, מבצע פקודת הפעלה לתצוגת השיחה המזוהה ולאחר מכן גורס למודס לבדוק בצורה מחזורית מידע על זהות המטלפן. אם מידע כלשהו מופיע, היישוסם ישמיע קוב טפאו (קול) מתאיס. לב התוכנית הוא הפקד 560% שהוא המרכיב המאפשר לתקשר עס המודס מתוך 8356 |1508/\. טכניקות 83516 |בּטפו בהן נשתמש בנוסף לסקירה הדנה בפקד |ו560%, התוכנית מצרפת נושאיס שכוסו בפרקיס אחריסם של הספר. קבצי 1א1, פקד זסחוז, קריאות 1ק8. כדי להשלים דוגמה זו בהצלחה, עליך להבין היטב כל אחד מרעיונות אלה. השמעת צליל שימוש בקריאת 401 נועד להשמיע צליל באמצעות כרטיס הקול. דוגמה ספציפית זו מכוסה בפרק 20: גישה ל-1ק של פשסשחוע\. גש לפרק וה אס הינך צריך עזרה בשימוש בקריאת 1קג, 0ַחטס5ץ3|קסח5. ראה "קריאות 421 שימושיות" בפרק 20. פרק 23: ארגז הכלים של המומחה | 607 שימוש בפרקי זמן (%61/3!5ח1) פקד זסוחוד המכוסה בפרק 4: שימוש בפקדי ברירת המחדל של 83516 15031 משמש לעדכון תהליך בדיקת המידע עבור שיחה מזוהה. בתוכנית הדוגמה, האירוע זסחוד מקודד בשורה בודדה כמתואר: ()זסרחוד חוהוזזרחץ 500 סספּעווק וו68זס-666 50 0ח= ו(6ז606%]0 היא פונקציה מותאמת לבדיקת מידע חדש המתקבל מהמודם. ראה "פקדים למטרות מיוחדות" בפרק 4. קובץ קונפיגורצית 1א1₪ בקובצ 1א1 מידע על כל צלצול וגם על הנתיב בו נמצא כל קוב\ צפש שתרצה להשמיע למטלפן מסוים. כמובן שתוכל לשמור נתוניס אלה במאגר נתוניס או קובצ אחר, אבל בחרתי בקוב 1א1 כיון שאינו בזבזני וקל לעריכה. דוגמה לקובצ 1א1 מתוארת כאן: [|8ז6ח6] 3 = אסקח 60 "6010=1א "= 0ח50אוחז 3=%חטס6ו|68 שא >זס)\\ + הס = דפ(וסצז צג ושסצזא\ סשזסוק 2677 30 6|08\= 5םוזה? =6מ=זק ! ז6/ש5חה %'חסם ,631 58165 8 15 פוחד = 06 וסאח6שד הס וצהד רחשו הו סהסחכ זהוטוו66=צזד ,15הקושו [05ח50] העט 280 \ עאצו\:0== סק צהק עהּ)\\. סוו6ר \טהצו\:₪= ד5 סז צג ופצו \ ]68|!1[ כ 03:05 6=05/25וחוך 0 זחוא כ א צפא\25 |=6חגּו [2!ו68] כ 09:31 6=05/25וחוך 2------זסטוחוא 65 165 דך\= אק =6החּו] ]68/3[ כ 12:43 6=05/26וחוך 2-- טוא 5 1 =6וחבו 8 סדנת לימוד 6.0 8\ קובץ 11 מחולק לתת-סעיפים: + [65ח500] - סעיף וה מכיל את הנתיב לקבצי טאוו המתאימים לשם כל מטלפו. > ["=5חא] - סעיף גה מכיל כינויים עבור שס כל מטלפן. + [64114%] - התוכנית יוצרת מקטע חדש לכל שיחה שהתקבלה. > [41חםא6] - סעיף וה מכיל את המספר העדכני של השיחות [6411] שהתקבלו ואת פרטי האתחול. התוכנית משתמשת בפונקציות 566118150109 ו-0ח181501טוזאו המתוארות בפרק 21: עבודה עם קבצים לשליטה על קבצי זא1. ראה "הבנת קבצי 1א1" בפרק 21. התחלת התוכנית הסעיף הבא יתמקד בחומר חדש הקשור לפקד התקשורת. השלס את הצעדיס הבאים : 1 התחל פרויקט חדש מסוג 5א= 0870ח5/98. 2 הוסף מודול לפרויקט. 3 הוסף את הקוד המופיע בפרק 21, הנחיות לגישה לקבצי זא1. 4 הוסף קוד לקריאות 401 עבור ₪6ט00/8/50ח5 מפרק 20. 5 גרור פקד מפואזד לטופס בשם החוש וקבע את מרווח הזמן ל-900. 6. הפוך את חו8פט5 לאובייקט 59700 של הפרויקט. 7 התחל ביצירת קוב 1א1, בהתבסס על הדוגמה מהסעיף הקודם. : 0ז0% 5הסוז63והטוהוחס הגדרת פקד התקשורת (!0ז%ח60 . 6) הפקד הח 1560 מאפשר ל- 8856 |1508/ לשלוח ולקבל מידע דרך יציאת תקשורת טורית או מודס המוכר כיציאת וח0ס6, בדומה מאוד לתוכנת ההדמיה של המסוף. לפני שתוכל להשתמש בפקד, עליך להוסיפו לארגז הכלים. כדי לבצע זאת, לחצ על הלחצן הימני באזור ריק של ארגז הכליס ובחר 66חפחסקוח0ס6 מתוך התפריט. מתיבת הדו-שיח 5 חקו 60 סמן ליד 6.0 |סח0ס6 60 10705086 ולחצ 06. הפקד אמור להופיע בארגז הכלים. לאחר מכן גרור את הפקד לטופס. שים לב כי הוא תמיד מופיע כסמל ולא משנה כמה גדול תנסה לציירו. כדי להתאיס את הפקד 15607 לשימוש במודם, עליך להגדיר את המאפיינים. + + סקוחוחס6 - מספר שלם המייצג את יציאת 60% אליה מחובר המודם. למשל 2 עבור 60₪2. + 5 - מחרוזת המגדירה את קצב התקשורת והגדרת הזוגיות (שוזפּק ). פרק 23: ארגז הכלים של המומחה | 609 שני מאפיינים אלה ניתן להגדיר בכל זמן, בתחילת התוכנית באירוע 1080 או בשיגרה חו8ו\פט5. אס המודס מחובר אל 60703 ההצהרות תיראנה כך: 3 = +הסקו 1.00 חר 1500 1 וס "9600,\,8,1" = 05חו1.560 ה רה0ס156\. 1 רחוס גם אם תגדיר את המאפיינים בזמן עיצוב התוכנית, עדיין יהיה עליך לבצע מספר פעולות. בתחילת התוכנית: אתחול פקד התקשורת ושליחת פקודות למודס להפעלת תצוגת השיחה המזוהה. השיגרה המלאה חופוזפט5 מוצגת בתוכנית 23.1. תוכנית 23.1: 87/.ס1 | |64 שגרת אתחול לתוכנית שיחה מזוהה 0חו8\ פט5 זז 5 +סקו סח חחוס 508 5( 6ח51 וחוכ 5090 5 קוח6 51 וחוס חה68|ססם 5 05600 וחוס "זא סז | |הש\" 8 הזהק.קקה = 511866 (("2" ,"+סקוח60" ,"]678ה06)" ,5060150700)05181816)%ח61 = אסקוהס6ח ("610=1א זב" ,"חחו165ח1" ,"[ח6ש" ,9)5181816ה5060\1507 = 6וחז5 חוב רת רסו סק 60% פד קט ז65י +סקו סח = +וסקותרח 1.60 הר ס5]. "1 "=" "= 05ח5601. 1 ו ר15007]. 0 = ח6 טסח1. 1 חר 0ס50!!. 6 ד5 דזאז פוזד סא55 סאג אסנד60פאא 60 שד אפקס ' סד = ח6ס0וסק. 1 ו ר1500]. (8)13זח0 + %ח51 = )טכ 1.0 וח 0ס56!. 550055 אשססו!] 08 556005 צום- ג האצ\' 0 = סוחס דח 6 = 5000 6 = 05000 0חג 32000 > קוח6 דח 6ווח\ סס 1 + קוח דח = קותחס דחה החד 2 =< +הטס600זס ה סח 1 הר 0ס5ז. + סז 1 50 = סוחס 51 ד = 05000 הסחד 0 = (0וח51 ,סוחס ז50)5ח1 זז + 0חם קסס | סא= אפחד א0 צמ5 דיאסנזס אשפסוא פחד -ז' חסחד 0 = ("א0" ,סוחס 50)51ח1 זז = ,הפע + אספע ".0 השאו 6הסק65ז %סח 010 והסססוז" אסם 50 "זסזח= 26ו|הטוחז" 0 + 0חם 0 סדנת לימוד 6.0 8\ 6חסעם סכ קאז 6אזאזהו א החש | ' סח 1 חר 1560!. = קוחס ]5 אשד 6אז | סק שד דח 6 ' שד = השוחת חוהוזרת. וזו\\ 0ח= םוד 5ב | אמסא אסזצדה אסא חם | |6 ץה וקפזס ' (("0" ,"+חט681!600" ,"[68ח6" ,0)51181816ח%506011507ח61 = +הטס6ח %חטס6ח לפו וץְהוקפוס ששסח5. חופ ו וח סט 0ח5 הקוד המתואר בתוכנית 23.1 מבצע רק את אתחול התוכנית ומדגיסם כיצד לשלוח ולקבל פקודות מהמודסם. הפקודות נשלחות למודס באמצעות המאפיין זטסזטס של הפקד חחח 60 5 (שיס לב כי מתוסף חז ₪6 68771846 בדיוק כאילו הקלדת אותו). במיליס אחרות, אם תרצה לחייג מספר באמצעות פקודות דסזה, פשוט הוסף את הפקודה למאפיין זטסזטס. בתוכנית 23.1 מנצליס מאפיין וה כדי לשלוח מחרוזת עדכון מקובצ 1א1 למודס. אם תיזכר בתהליך שליחת פקודות למודם, תיווכח כי המודם מגיב בהודעת מצב כמו 0%, הודעת מידע כמו: זהות המתקשר, או הגדרת ז601500. פקד וחוח60 15 לוכד הודעות אלו ושומר אותן במאגר מסוים. הינך משתמש במאפיין זוסח1 של הפקד כדי למשוך את המידע מהמאגר לתוכנית בדרך כלל על ידי הכנסתו למשתנה. בתוכנית 1 בודקים את המאפיין זפווטפזטקח1 כדי לגלות אס קיים מידע המתכה במאגר. אס אכן קייס מידע כזה, תוכל למשוך אותו באמצעות הפונקציה 156 ולבדוק האס המודס הגיב למחרוזת האתחול. הערה: המאפיין ח6 שטסח1 שולט על מספר התווים הנמסרים על ידי המאגר כאשר ניגשים למאפיין. הצבת הערך 0 כפי שנעשה כאן גורמת לכל תא במחרוזת להיות מוחזר. אס המודס מגיב 06, הצלחת לתקשר איתו והינך יכול להתחיל בתהליך בדיקת המידע של השיחה המזוהה. כדי לעשות כן עליך לשנות את המאפיין 8966ח5 של פקד חוד לערך 6טזד, ובכך להתחיל את התהליך. הנושא האחרון שנשאר בפונקציות חוג\ הוא הצגת פרטי המתקשר האחרון (השמור בקובץ 1א1 בטופס). השיגרה 18/115%מ15ם פשוט קוראת את הערכים מתוך [+* 6411] בקובצ 1א1, ומשנה את התוויות בטופס. פרק 23: ארגז הכלים של המומחה | 611 בדיקת השיחות השגרות החשובות בדוגמת השיחה המזצוהה הן ||0168-66%ח6 ו-61008%8פוז\ המוצגות בתוכנית 23.2. ||63ז6060%]0 מטפלת במידע המתקבל מהמודם בעוד 661008%וז)\ מאחסנת את פרטי השיחה המצוהה לקובצ זא1. תוכנית 23.2: ק10./8 6411 שיגרה המתרגמת את הנתונים מ- |ס 60 הוח 60 15. ()||63זס-60606% 5₪0 חן 5 %הטס6ע6זקח וחוס פס 5( | וחוס 500 5 6וו=5 וחום הוה וח וטו\\ החד 2 =< )הזש וח1. 1 רהרחס5וו. + דסק 60 סח דטקאז ז65 סאג השוזד קס ז6 ' 6 = 0ס6|סהחם. חוברחס. טח 1 ור 150 = קותס 5 ,סו השח 8ח50 ||8רח5 8 15 אטסחו ] ' 51008 :1100 זו 6 06 6פון טורח + ' החד 10 > (סוח6 ד5)ח6 | + 6 זך = 60|סהחם. הוה זרחס. סטפ זוא + 0חם = = זא1 סד ס-א1 ספג ,חפ דוס6 611 פאס זס' +חטס6ח = %חהטס6ע6זקח (קוח6 51) 868 6610טו/\ דא צםשהד סאעטס= פאצ\ הדמ סצ -ז' הפחד +הטס6ע6זקה = 6חטססח +1 0 שוס\ 8 " %ח56 8% סא" = ס6ותהּ\זססופו. סטם זאש + 0 ,וזמס- שרוד אס אסזנדה סא חם | 64 צה |קפזס ' 5 0 ₪ 607 ג ₪ 1 סאטס5 מחד צא וק ' +חטסשח 55 וץהוספוס ("השטסח>ת(\" , "סרחהא;ז" ,+הטס6ח ₪ "ו|68" ,5110|6 )5615 = קוח 5 ("?" ,כרח6 51 ,"5065" ,0)51%1816ה001501 56 = 5-6 חסרוך "?" <> 5-6 +1 (%6ץ5 5% ,6ו0)5חט50ץ3ק סח = | (%6ץ5 5% ,6ו0)5חהט50ץ3ק סח = | + 0 + 0 12 סדנת לימוד 6.0 8\ ד 60 | 60 פהד אסא קאז בח דש צאה חם וס ' סח 1 חר 150 = קוח 5 | |64 דשא 0₪- אשווזד דח ז55ק ' סד = 60|טהחם. חופווח). וחו\ 60ח= טפ 0חם (8ח51 45 זטסח610368)51שוז/\\ 5 58 35 סהב\5 חחום 509 25 זסטוחט\5 וחום 9חו5 35 6חחו51 הזוס 58 ₪5 50306 חחוס 58 5 ח0ו55660 הזוס 6 ד דטקאז מהוד ואסא= אסנדהאהס-א1ז 0 65שזק ה6ם 55ההקי (33.6 |הא\601 ג 15 שאזוז) ואשפסוא סד אשפסוא סח צחגע | נזצ\ פזחדי "?" = זססוחט\5 חסחד ("= 56ם1!" ,006ח51)פח1 זז "= 56ם]]" ,006ח105)51 = וס דח (7 + קוח6 דח ,וכח10)51] = 536 "ד\=5 ספוא סא" = זססוחט5 6 "= חםן\)" ,6ט0ח57)51ח1 = וס דח (10 ,7 + קוח6 דח ,6טסח0)51ו = זסטותט\5 הפחד 0 <> קותס דה זז "= ₪\\\ז" ,6טסח5)51ח1 = וס דח (7 + קוח6 דח ,006כח0)51ו1] = 6וח5\3 הפחד 0 <> קוחס דה זז "= ₪ דכ" ,6טסח57)51ח1 = וס דח (4 ,7 + קוח דח ,6טסח0)51ו₪ = 50866 הפחד 0 <> קוחס דה ו "= ₪ו1ד" ,06ח5₪)51ח1 = וס דח (4 ,7 + קוח דח ,6טסח0)51ו₪1 = 6וחו51 הפחד 0 <> כוחס דה זז = 8 "-" 8 (3 ,4 ,ססוחטא0%)51ו] 8 "-" 8 (3 ,ססותטא\160%)5 = קוח ז5 (4 ,זססותטצ₪100%9)51 רחס 51 = זסטוחטו5 + 0חם טפ זוא החסה ך "?" = זסטוחט\5 + = = זא1 שד סד אסצדהווחס-א1 = דחי 1 + %הטס6ח = %חטס6ח (00ט00ח)650 ,"%הט68]!00" ,"[8ז6חה66" ,6ו51010 0ח150ז6ח\ + סח 8 "ו|68" = ח556600 ("3/0 החוח: חח 00/וחרח" ,וס )הס , "חוד" ,ח556600 ,511816 0חו150אובסז/\ 5 ,"זסטרהטצ]" ,ח556600 ,514186 8חו1501\זבסז/\ 6ח5\8 ,"6רח3\]" ,ח556600 ,51141816 8ח1501ווזבסז/\ טפ 0חם פרק 23: ארגז הכלים של המומחה | 613 הסיבה שנחוצות הרבה קריאות 54ח1 נובעת מכך שבזמן קבלת המידע באמצעות פקד החוח 60 ₪15, הוא מגיע כמחרוזת אחת עס חז ₪6 68771806 ו- ₪660 116 בתוכה. שים לב כי ₪066100808/\ שולחת מידע לקוב\ 1א1 והמידע נקרא בחזרה בשדות נפרדים, על ידי פונקציית ||6060%=0168. בניית שומר מסך באמצעות 83516 ובּש5ו\ 5סח/\ מגיעה עס תוכנית שומר מסך המופעלת בצורה אוטומטית לאחר פרק ומן של חוסר פעילות. הרעיון העומד מאחורי שומר המסך היא שהמסך יייישמריי מקבלת מידע קבוע וייצריבת'י נתוניס. צריבה זו היתה בעיה נקודתית במסופי טקסט בלבד שעליהס ישב תפריט קבוע למשך שעות. מאותה סיבה קיימת אוהרה בספרי ההדרכה של טלוויויות בפני שימוש במשחקי וידאו. ניתן להגדיר שומר מסך מתוך הכרטיסיה ז6ש58 ח50766 של תיבת הדו שיח שְּ|ספום 5 סז (מאפייניס תצוגה), כמתואר בתרשיס 23.2. |<|? | 5וזפטטז"] עה!קפו | 85 | ספא | 5/0606 | םה | 5 וספ | ההטוסום סבה 5 506 -ן ,זס!ומסוח זגוסץ זס] 5601005 זסואוסק 51085... | בח זגוס ו ע511ע1 זב תוס 5 תרשים 23.2: תוכל לכתוב תוכנית 8856 |%1508 המתנהגת כשומר מסך שומרי מסך הפכו לאומנות ממש: מכתובית מטיילת ועד לאובייקטיס תלת-מימדייס שבתוכס אפשר להציג תמונה נבחרת. אולםס, אס תרצה להיות באמת יצירתי תוכל ליצור שומר מסך משלך. ב- 8856 1508 משימה זו פשוטה מאוד. שומר המסך נכתב בדיוק כתוכנית רגילה אבל תכנון האירועיס נעשה בצורה שונה. לדוגמה, תזוזת עכבר תפסיק את התוכנית. בסעיף הבאה, ניצור שומר מסך פשוט. 4 סדנת לימוד 6.0 8\ הגדרת הטופס הראשי (ווזוס-]חוב₪3]) התחל פרויקט 5א070.5ח508 ושנה את מאפייני הטפסים כדלקמן: 1. קבע את מאפיין 5086ששסחחו/\ לערך 260ווחואהו\. 2 קבע את 0675%/6זסם לערך שחסוו. 3 קבע את זס|886%60 לצבע שחור. כידוע, שומר המסך מפסיק את פעולתו כאשר המשתמש מציז את העכבר או מקיש על מקש כלשהו. הוסף הצהרת 6ח₪ לאלרועי 6ש0סו6פטסו! ו-65זקץ6א בטופס. חן 5 + ס60פוסוזח חחוס (06067ח1 35 |ו6650) 655 ץ6>) וחזס= 500 ססהעווק 0חם טפ 0חם = ,51006 5 א ,100006 5 51% ,106606 25 הסאטם) סעסוזספוסו] וחזס- 5 ססהטווק (6ו9ח51 ₪5 ץצ 1 + 0הט660פטס\ח = %חט0ס66פטסווח 0 החד 5 < +הטס66פוסוזח +[ טט5 0חם שיס לב כי משתמשים במונה כך שהתוכנית אינה מפסיקה את פעולתה באירוע 6שסן56וסו הראשון. הינך וקוק למונה גה כיוו שמערכת ההפעלה שולחת מספר אירועי 6שס\ספטסוא בעת האתחול. הוספת אנימציה הפעל את תוכנית שומר המסך בסביבת הפיתוח של 8856 |8טפו\ ותראה מסך ריק עד אשר תקיש על מקש או תויו את העכבר. שומר מסך זה אינו מרגש במיוחד. הוא וקוק לאנימציה שניתן להוסיפה באמצעות פקדי זסוחוד ו-6פָ108. על פקד וסוחוד למדת בפרק 4. המשך והוסף אנימציה. לשומר המסך שלי, יצרתי אנימציה של מרדף מכוניות כמתואר בתרשים 23.3. [חוזס-) הנב אחז - זס ב פהססז50 .5 5 תרשים 23.3: טופס שומר המסך מוצג בתצוגת העיצוב עם כל מרכיבי האנימציה פרק 23: ארגז הכלים של המומחה | 615 ראה "יצירת אנימציה פשוטה" בפרק 4. הקוד לסוג ה של אנימציה פשוט מאוד. ודא רק הוספת משפט 6ח6עםסס כך שהאירוע 6 לוכל להתבצע. ז סח 5 זה ,66007ח1 5 67% חחוס ()1]080 וחזס-] 500 סספּעווק 0 חס ד 66ח63פה1[ע6ק. סקסה זז 6 ]חר 666000 0 + וחסו/\.6] = 687% 0 = ץג טט5 סחם () זסוחוד חוהוזזוחץ 500 סזפּעווק 5 + 687% = 687% 3 + 687 = 7ב 60 חס החד 1000 - ז600706 | > 63% ץז ץז = מס ד.זה06חז 6% = 1068-1606 0 + 687% = מס ד.60חסזט טוח 0 - 68% = 66 ].ס6חסזט טוח[ 6חסעםסס טח כמו-כן שיס לב כי התוכנית מסתיימת באירוע 1086 אס מרכיב אחר מופיע. קוד זה חשוב מאוד היות ו-5אוססחו/\\ מעלה לפעמיס מספר מופעים של שומר המסך. התקשרות עם פ>צוסשחו/ש כעת משהושלם שומר המסך נותר רק להוסיף מספר שורות כך שהתוכנית תעבוד כמו שצריך לפעול שומר מסך. כידוע לך הכרטיסיה שומר מסך בתיבת הדו-שיח ופוס 5 מאפשרת להגדיר ולראות בתצוגה מקדימה את שומר המסך. בכל מקרה כזה, 5אוס0חו/\ שולחת שורת פקודות שונה לתוכנית שלך. הוסף את הפונקציה 6 ]ח ה ו 66%00ח0 לטופס שלך כך שיתנהג כמו שצריך. () 6חו 01ח08 00666601 טפ 500 5 שחו 5001 וחוכ ((0ח8 0 6356%)0-0 1)%רחוז ד = 6חו 56001 5/5 56₪55% ג 45 6אזאאוח' הסח "" = שחו 50001 זכ "5/" = שחו 50001 ץז 50 זוא 0 + 6 סדנת לימוד 6.0 8\ םססו (60-16) קט 55 אז 6אעצאז ואי חסחך "6/ " =6חו 50001 +[ "8806/ג + ה56766 8 ה60" א580וו 0סחם =ז 0 םססוא /שם1/שחק אז 6אזצאזוח' הסוחד " כ/ " = (2 ,שחו 60500001 | זז ((6,3חו 001ח09)50ו1)|ה/\ הזו 60160 06 ח63 וס+6חהּובפ' 0חם 0 טפ 0חם לבסוף, כל שנותר הוא להדר את התוכנית, לשנות את סיומת 6א6 לסיומת 508 ולהעתיק את התוכנית לתיקיה של פוססחו/)\. אזי היא אמורה להופיע בצורה אוטומטית ברשימת שומרי המסך הנגישיס מתוך כרטיסיית שומר המסך של תיבת הדו-שיח 5סווסקסזק שְה|ספוס. תוכנית ייצוא טבלאות משרת .5091 למסד נתונים של 466655 חברות גדולות נוטות להתבסס על סוגיס שוניס של מאגרי מידע, כשקנה המידה נע ממאגר נתוניס על 6וחפזחחו8ו\ ועד למאגר נתוניס של משתמש בודד על מחשב 6ק. יישומיס חדשים הדורשים גישה לבסיסי נתונים מופיעיס בתדירות גבוהה ויוצריס מערכת מסובכת של תלות הדדית. לדוגמה, יועצ יכול להיות מועסק בכתיבת יישוס המצריך קריאת נתונים קיימיס מבסיס נתוניס ז 566‏ 501. באמצעות 86ס0, ניתן בפשטות לאפשר ליישוס היועצ להתחבר למאגר הנתוניס, אולס במצביס מסוימיס מצב זה עלול לגרום לבעיה. + הממונה על ז6/ז 56‏ 501 צריך להוסיף מידע נוסף על התחברות היישוס החדש. + ביצועי ז567/6 501 יכולים להיפגע כתוצאה מריבוי היישומיס. > שינוי טבלאות ב- ז0/ז50 .501 עלול להביא לצורך בשינוי קוד היישוס, מה שעלול להיות מסובך לאחר עזיבת היועצ. תשובה פשוטה לבעיות אלו היא יצירת קוב ייצוא על בסיס אוטומטי, ובו תיעזר התוכנית החדשה. מסד נתוניס של 460655 הוא פורמט אידיאלי לקובץ ייצוא זה היות והתוכנה יכולה להשתמש בו בדיוק כמו ב- 561/81 .501. פרק 23: ארגז הכלים של המומחה | 617 בניית התוכנית לדוגמה במקרה ולא שמת לב, אני אוהב להתבסס על קבצי 1א1 ולכך יש סיבה. אפשר להפוך את התוכנית לשימושית יותר, דבר שישתקף בדוגמה זו היות וקבצי 1א1 מכילים את המידע הדרוש לתוכנית לביצוע פעולת הייצוא. אפשר להדר את התוכנית פעם אחת, ולהשתמש בקבצי 1א1 שונים לפעולות ייצוא שונות. הדבר נעשה בשורת פקודה ומבוצע בצורה הבאה: 1אז.םואם = \ הכ \:6 = אה טופסו 0זססץסוקותת \ הכ \:6 = אפסו קבצי 1א1 עצמס מכילים מידע לצורך התחברות התוכנית ל- ז6א56 501 ויצירת טבלאות 266655. לדוגמה, נתוניס בקובצ מצייניס את מיקוס מסד הנתוניס של 60655 (מסד הנתוניס המיועד) ואת מחרוזת ההתחברות לשרת 501 (מסד הנתוניס המקורי. פס דהסחר\6 ופ וק \חם/\חם5צץו \\=6!וחפס "סכ 501ץז]=5כ :חועז08= :60 = :סז = 05 דה :6 0"= 60 ה 00 501 בהמשך, הקטע [189!65] מציין את שס ומספר הטבלאות שתרצה ליצור. [30!65ד] 8654 סזחוזח =|(3!6150 ד סזחוזח= כ 61! ד סזחוזח =3!6111%1 ד כל טבלה מכילה קטע המציין את המספר וסוג השדות בטבלה. לדוגמה, קטע ס!חוזח יכול להיראות כך: [סוחוזח] 6052 "0 ץסוקוח="=6רח1%3 = = 6=20081סץד1 = "סרחה" =021%3076= ךאש [=6כץ 027 02520=0=] בומן ההפעלה, התוכנית משתמשת בלולאת זס" לסרוק כל קטע בקוב\ 1א1 בזגמן שהוא זקוק למידע על השדה. לדוגמה, לטבלה סוחוזח המיוצרת על ידי התוכנית, יש שני שדות : 6610ץסוסוח= מסוג 6|טטסכ ו-6וחּא\ מסוג 6%ד בעל 40 תוויס. 8 סדנת לימוד 6.0 8\ הבנת התוכנית לדוגמה לתוכנית הייצוא של 501 יש מספר פונקציות כלליות ללא ממשק משתמש אמיתי, (מלבד הצגת התקדמות התוכנית על המסך). הפונקציות החשובות הן: + 068|7||]6 ]676806 - יוצרת את קובצ מסד הנתונים (8פ)א). + 80|6 6768061 - יוצרת טבלה ריקה במסד הנתוניס. ** 67780|6)פח8זד - מעבירה את הנתוניס מ- 6/ז 58‏ 501 לטבלה החדשה במסד הנתוניס. + חו8!! - מפקחת על תהליך התקדמות התוכנית. פונקציות אלו מוצגות בתוכנית 23.3. בתוכנית יש הסבר על מה שקורה בזמן הפעלתה. תוכנית 23.3: ק8/. 5012081 - העברת נתונים מ- ז8\ז56 .501 לתוכנת 66655. :ו לח סקז (60055\/) 08680856 חס80 תפסכ 6 858 |068 01 חחוס (ז507/6 .5001 15]) 08100856 06זטס' 6 8 005001 וחוס 6 חס 0050 סס הסְבק' 58 45 ה30ק|063 501 חחוס שו 1א1 סש הזבּק' 9חו5 5 511286 וחוס ()חו8\ 5 50 0066 זס/ו56 601 509 35 60חח560 חחוס זט 0ף 80165 + וסטותוא' לחז 5 30165 דח וחוס 6 הס טס זז סט 00" | ]0606ח1 5 6וטב דסח חזוס 6 501 ₪6 01 סוחבּא' 58 5 30|6 55017 וחוס 6 460655 שר 0% 6החבּ\ז' 58 5 6וטב דטס51 חזוס [ח0וז566] ₪6 זאזי 59 5 ה556600 חחוס 6 חס חטז 06 ח68 05 חר 00" | ז06060ח1 5 סחהההוהס6ח וחוס (06%ח] 676806 .1.6) 08130856 06055' 59 5 סחהורח500 הזוס שוחא = ות [אז דשס' "וחו. ד סקא 501\" .8 הסהק.קסה = ה6הקז5 ו 60 = 51012860 הסח "" <> (% חורה 00)פ וד זז = = זא1 שרוד ואסא סא סגשחקי ("00ח.50ם" , "!ןפ" ,"|8ה6)" ,ה00511786 51507 = ח0הק|ה06 50891 (";0086" ,"66 ה 00 5021" ,"|ה חס" ,ה80ק00511חו15 506 = 50060 (("0" ,"30165 ד" ,"30!65 ד" ,ה0051%1080חו50601507)ח6 = 65|ס3 דח 5/5 501 סד ז56צא60 סאג אחס- צוסחפ' שסח31.5/\רחי "... 507/06 .5001 60 8ח660ההס6" = זוב/שוטו.זוה/\וחי פרק 23: ארגז הכלים של המומחה | 619 םס םחו 6010 זסום חס (660 500 ,שד ,56| ,"035 הק = 00501 566 = |1= פכוא ₪ 653 סד אסנד6אט; | [א6' "...6 פס 8ח680ז0" = זובּ/שוטו.זוהּ/\וחי ס6חס/םסס 60806] 068||6 חס = = הסוא צ\פא שהד א1 ₪5 ופד = דה= 6 5 סד 1 = 30|6 דוטסח זס= 8 306 טח 8 "68!6" ,"680!65" ,ה80ק0)511חו506\157 = 3016 ד5501 ("6חסח" ," 6001" 8 0|6ה טח 8 "9016" ,"680|65" ,הז0)51178ח50610150 = 6|סב דטסוז5 ("סחסח" ,"שסון" | ,"זא" 8 36 טח 8 "6806" ,"5ס!680" ,ה8%ק00571 50615 = ח0סו55000 ("6חסח" 6 5 ₪ " חחוו5)6ח8זד" = הבּ/\/וטו.ו וח ח0ו5566 ,3016 ד 5 ,06ב ד |(550 3016 דו6ו5חהוד 6 דסח )אס ץצ א -1 ד אס פסצזה ו ס6 או ,סם ד6₪ 855% 5 55ה8ה דהפ פחדי 0 = 0חהוחוחס6ח "" = 0ח8 500 "?" <> 0חהווח560 6ווח\\ סס חור 500 6ט60אם. !068 001 הפחד 0 <> סחהההוהסשה זז 1 + 6חהו הסח = 6חהההוהס6ח 8 "חר 00" ,"|678ח06" ,ה80ק0)0511הו5061507 = חר 50 ("?" ,סחההחוחס)ח קסס | סאש סאג אששספ 6אז דואם/ם 055 |6' "... 0חו660 חה00פוכ" = +וב/שוטו.זוה/\\וחי 6 6 ארח הסוח \ 6חסצםסס 60 :זסחם חוה ו .וח פע = סוס 56ס!]. ח56766 זסזזם 8 " :" 8 זזם 8 " זסחזם - הוה" 50והשפטוז\ 0 50 0חם 0 סדנת לימוד 6.0 8\ (0חו5₪ 5 ח556600 ,0חו57 5 3016 ד|51.068 ,50 35 30|6 ד6)5501ו30 ד5167חהזד 5 6 06055 חה 0ל ז6/ו56 .50(1 וחסי 0868 5ז506חה הסטסחט פוחדי ]50 5 50 הזוס 6 60055 5 6ו0ב ד הזוס טס ' 1 5 קוח דח וחוס 5 |" לח 35 פסוסוחח וחוס : 1 35 +הטס6ח הוחו 500 601 8ַחו50 5 .5501 וחוס 5090 5 קוחם 51 וחוס :זסזזם זאד 6010 זסזום חס סד = 0!6ופו/\. 6550871טסק.זוה/\\וחי 0 = +חטס6ח 0 = הו 6550871טסק.סוהּ/\\וחי ,5-5 80!6+ .50(1 8 ז510ח8 ז61006 ח68 זס5 סחדי .065 6וקו!גורח פהוטוסטחו זט 3 01 0500 סח זס' 6 כ 5605 ה הסוח ץע 65חורת06607 %ה06ח55300 1 זאסח פוחחדי 6 זס "90|6+ החסזז * ז56!66" 6007 -%ח5590006 .6001 .5000006 .5001 60ח06-ז0פט' ("" ,"501" ,ח556600 ,הז3ק50601150100)5181 = .5501 חסחד "" = .5501 1 | ,80!6 55011 .8 " החסז (*))חט60 56|666" )6607056 הסק0. 00501 = קוח06פז +56 (ץ הכוזה א ס- 0 ,050% 653 (((6!05)0ו=. 566 .8 "0 ")וח )61% = אבּ\. 1ז65508זססזק.זו3\\רח 6 6חס/עםסכ 6 2 = סוחס דח ("" ,רחס דח .8 "5001" ,הסו55660 , הז8)51%178הו11507 506 = קוחס ]5 "" <> סוח6 57 סווח/\ סם קוח 51 8 .550 = .5501 חסחד "" <> סוחס ך5 )1 1 + קוח דח = קותס דה ("" ,רחס דח .8 ".5001" ,הסו55660 , הז8)51%173חו7 5060115 = קוחס [5 קסס | זה 655זףסזכן חס שט|אע ץזהטוטזהּ 56' 2000 = אבו 1ז05508זססזס.זו3\\וח + 0חם פרק 23: ארגז הכלים של המומחה | 621 6 השס ץ||8ס6תי חסחד "" = 5501 +1 = ,80!6 5501 .8 " חס * 561666" )66070560 הסק0. 0050 = קוספ +56 (ץ הכוזה א ס- 0 ,050% 653 6 80500% 000065 , [(6607056)550 6 0. 00501 = קות500ז 56% (חסטסזח 23557 5001 + ץוהס0זהאהס- וס + 0חם 6 |1.068 הסכס' (6 00006 ,3016 0687 056%)51 6607 ח6ק0631.0 001 = 16טה 8 56% 1 - %ח6|05.000ו=. קות6ל5ז = 05!סו=ח 0 66 ז56חהזדי -0ם. 506 +סא סווח/\ סס 0 6|טה דה 5 סך 0 = קוח6 דח זס= (ח6 דח )16105=. 560 = (סוח6 דח )1605 .סוסב דה קוח6 דח זאסצ] עסו רחסל 1 + %הטססח = %חטס6ח סח = 6טןה/\. 71ז65508זססזק .זה /\\רחי 6 קסס | 6 6 סטפ זוא :סז דד זסחם 8 " :" ₪ זזם 8" זסם- דד" 50והםפטוז\ 0חם טט5 סחם (0ח5071 25 511156600 ,8ח501 45 6הה)סוסב 57 ,606וסב ד 5 |טז ]6 )6וסה 6768061 פופ 6 00055 ח3 חן 90!6ל 60 ח3 6708005 הסטסחו\ פוחדי 5 + זססוח\]' 6606ח1 45 פסו6ו=ח הזוס 5 + שְהזוה' 6!0ו עוס\] 25 ()0= הזוס 0 תוס 07 00% 1006061 5 סוסו=טוסח הזוס 5090 5 קוחם 51 וחוס 2 סדנת לימוד 6.0 8\ :סז 6 0 60 זסזחם חס (("0" ,"1605" , ח511156600 ,ה8)51%1280ה50601%1507)ח61 = פסופוח סטפ לוא הסחד 0 = 05!סוחח ]1 (6!05וח סד 0)1= וספ 36 \30|61 51 = שוחה\. וס 5 סד 1 = חוטשה זס= 8 "₪0" ,ה510156600 ,ה0511730 561507 = הפצ (סוסו= טוח )= (6|0ו וח 8 "הכם" , "סחהּאז" ,8 סוסו=טשח = ,"6קץד" 8 6!0ו טח .86 "0" ,ה518156600 ,ה80ק0051%1הו50601150 = קותחס ]5 ("דאשד" קוח 51 6856 56|666 "₪ |00(8כ" 6856 0006 = 6קץד. (60ו )0 "סןא=)\" 6856 סרח006 = 6קץד. (60ו7ט6ח)0= ץוחס 84/5/' שד = ו00ח6 |סזס2עוסו|. ווח )= "= דצ" 6856 0 = 6קץד.(60ו607ח)0= "= ךז" 6856 1 = 6קץד. (60ו )0 "= זכ" 6856 6 = 6קץד. (60ו0ח)0= 6 = ₪060 (60ו )0 6% 56| 6856 ]ד = 6סעץד. (60וזוח)0= = ,ה80ק0)511חו5026010150)%ח61 = 26ו5. (0ו6ן=זטח)0= (("50" ,"5126" .8 6|0ו- טח 8 "0" ,156600 6 ד = 00ח6 |סזס2עוסו|. (0ו6ן=זטח)0= 6% ס6חם (6|0ו טח )= סהסססה.פסוסו=. וס ות טח אס סטפ זוא סז ד זסזום 8 " :" 8 זזם 8" זסחם- 67" 50השסטוז\ 0חם סטפ זוא טט5 סחם פרק 23: ארגז הכלים של המומחה | 623 (0768%6|.068|!60 5 ]6 6 כ 6 6768005 6זט660סזס פוחדי ]סד צוס\ ₪5 ()16ס3 דחוהו וחוס 5090 5 קוחם 51 וחוס 5 30165 דח הזוס 5 3016 דושח הזוס 58 5 30|6 55017 וחוס 58 35 6|סב דפס1י5 חחוס 59 45 ח556000 וחוס זסזזם 651 0 601 זסזזם חס ]063 5081 |ווא הסחד (ה86ק|068 5081)פואשסוום זז ((8זה3006 01 ,הז8ק|068 856)5081 6768000830 = |008 001 56% (("0" ,"30!65 ד" ,"65| ד" ,הז8ק0051%1 650601507 = סוסה דח (30!65 דח סך 6)1|ס3 דחוהו וחוססא 5 סד 1 = 30|6 דזטסח זס= 8 806 טח 8 "680!6" ,"680!65" ,ה80ק0)511חו506\15 = 3016 ד5501 ("6חסח" ," 6001" 8 0|6ה דח 8 "9016" ,"680165" , הז0)51%173ח506101507 = 6|סב דטסו5 ("סחסח" ,"שסון" | ,"זא" 8 36 טח 8 "6806" ,"5ס!680" ,5061505186 = ח0סו55600 ("6חסח" ח556000 ,6!טב דטכ51 , (3!6 דזטח )שוב דחו3ו\ 3016 6708001 (80!6 דח )3016 דחו18] סהשסכה.60615וטב ד. |068 ופ 6 טח זאו סטפ זוא :סז 65 זסזזם 8 " :" ₪ זזם 8 " זסהם- 61" 50השסטוז\ 0חם טט5 0חם (0חו50 5 150)511655806ח סטז/\\ ס 5 סספּעווק 0 זו 5ססעט הסו6ח 615 ,זשסס זסזיום חב ס|טסח' 6 066856 עְפעט פוש 6 610 1 .שו 141 זסרטסחפּ' 6 8 חס 06655זכ 560600160 8 35 פחטז חזהזססזס' םחה זס ששחה 60 6זסר 06 !סע 6חס סח 50 ,6הוח6הוח' ץ|פטסטחו 60 086 החהזססזכן 8/\ 0ח5000 3 15 6זסחדד .ססופוםי .6 וסוס 6 הסוצ\ 6רח 5סחְהכ 300 וחו.זסזו= 606 66685 9חו5 ₪5 [1זסזז=5 וחוס ("וחו.זסזזוס" ,"זאזסים" ,"|68חה06" , ה80ק9)5111הו50601150 = זא1וסזו55 6 ,"1655806" , "זסזח=" ,55701 8ח1507זסס וו "סטזד" ,"זזש" , "זסזחם" ,זצסזו55 8חו1507סס וח 50 0חם 4 סדנת לימוד 6.0 8\ (5ש6ח ,%/6א ,%ססג ,0)1%1%חו150\זסטחצו 500 % וחוכ 9חו50 5 סו 51 וחוס "" = מוח51 (58%/ו6ח)ח6 | סד 1 = %! זס= = <> (1 ,1% ,50%ו6ח)0%וו סח (9)13זח6 <> (1 ,1% ,%חפשוסח)פטווא זז הסחד (10)%זת6 (1 ,1% ,5%/ש6ח)0%ו1י] 8 קוח51 = קוח 51 6 " " 8 קוח51 = קוח]5 + 0 % אסא (11% ,קרח 5 ,66% ,0%ק 00 65 סז סה שק 60 /\\ = 1% 50 0חם 0חוש5 5 (06% ,67%> ,ג ,0)01%1%חו0150 506 הסטס6חט= 6 * 8חו50 45 סח 51 וחוס לחז 45 ח וחוסם זז 5 | וחוס 5 = ח (1 + ח)50866% = סח ]5 (1\1% ,ח ,קוח ד5 ,116% ,66% ,00% ח650ו 6/0 = | (| ,קוח [16%)5 = 8חו50601\150 חסוססחט- סחם ח800|68 5 (0חו50 45 ה5)5780וא=6!וחט הססס6חט= 1 5 א חחוסם 6|ןסזת = א ₪506 זסזיום חס א 45 +טסח1 זס= ה5786 חסקס הסח 0 = זחם + 6 = 56!א=6וו 56 6 = פוא 6!ן + 0חם א 6|056 חסט6חט= 6ח= הפונקציה 6768%61.068|"6 מקבלת שסם קובצ מהפקודה = וספ 1[ַא1% ומשתמשת בפונקציה 0768%608080856 של 8856 |הטפו\ ליצירת קוב חדש (וריק) מסוג 8פוא. פרק 23: ארגז הכלים של המומחה | 625 בהמשך התוכנית משתמשת בלולאות זס" לקריאת תוכן הטבלאות קטע [55 |8ד] וקריאה בצורה מחזורית לשיגרה 806 68061ז6. שיגרה זו, בתורה, סורקת בצורה מחזורית את הקטע 8065ח9!6+ בקוב> 181, ויוצרת שדות בטבלה החדשה. לאחר יצירת טבלה, השיגרה 50677806ההוד מטפלת בהעברת הנתוניסם מטבלת זז 501 לאחת הטבלאות החדשות. השיגרה יוצרת תחילה רשימת נתוניס מטבלת 501 ואז סורקת כל שדה ברשימת הנתונים, ומעבירה את הנתוניס לטבלה החדשה. בזמן התהליך, המשתמש רואה מד התקדמות, כמתואר בתרשיסם 23.4, כדי להראות שמשהו מתרחש. \-2 5 . . . או 0!6956 , 0ַחו080 1 הפו תרשים 23.4: תוכנית ייצוא הנתונים מציגה מד התקדמות בעת פעולתה :קה של פשוססחו/צ ליצירת תמונות שקופות אחד הרכיבים של 471 32חו/\ הוא 601 (ממשק משתמש גרפי). כיון שפונקציות 51 אלו מורכבות מאוד, בלתי יציבות, ונוטות ליצור שגיאות =ק6, 1670504 הוציאה את רובן מתוך 8856 |פטפוצ. למרות שנטישת 1[סה מגינה מפני מורכבות ומייצבת את התוכנית, היא מגבילה מאוד את היכולת לעשות דברים יימגניביםיי שמשתמשים רביס מצפיס להם. 4 8856 |1508/\ פתרה את הבעיה במידה מסוימת על ידי הכנסת יכולות חדשות כמו הפונקציה 6זטשסוק)חוק והפקד 17896115% אבל אלה עדיין לא הספיקו. פירוש הדבר שמתי שהוא בעתיד הקרוב תמצאו עצמכס קוראיס לפונקציות 41 601 מתוך היישוס שלכם. כדי להדגיס את השימוש בפונקציות 401 601 נכתוב פונקציה יימגניבהיי בשס %חו%098ח50376חפד. הערה: גרסת השיגרה זחו8קזחסזהקפחוד אותה רואים בפרק זה, הינה גרסת 32חו/\ של הקוד :|10חו8ק%ח6ז8ק5ח8זד (שנכתב על ידי מייק בונד) שהופיע במקור בתוך ‏ 160506 8 60060856|ווסחא - מאמר מספר 094961. גירסה זו עברה שינויים רבים ומכילה מספר רב של הערות חדשות. חח קחד המוצגת בתוכנית 23.4 מתוכננת לטפל בתמונת מפת סיביות כבסמל, כאשר מציביס אותה של המשטח. אפשר לעצב חלק של הסמל להיות שקוף אבל לא ניתן לעשות זאת עס תמונת מפת סיביות. כדי להשלים פעולה מסובכת זו עליך ליצור סדרת תמונות מפת סיביות זמניות ולעשות שינוייס רק בזיכרון. למרות שתפיסה אבסטרקטית זו יכולה להיות מסובכת, ההערות מסייעות להבין מה קורה בכל שלב. 6 סדנת לימוד 6.0 8\ תוכנית 23.4: דאד.\ק5א\חד קוד עבור השיגרה %חו8?)ח6זה8 קחד <> >> > > >< >< < ל ל < < א< < < אכ 6< אכ אכ אכ אכ אכ אק 26 אל אל אל אל ל אל ל אל < < א א< אכ אכ < אכ אכ אכ אכ אכ אכ אל אל אל אכ אל אל אל ל ל אל ל < א< < א< < אכ כ 2 אכ אכ 126 זסו60א286 51806 6ל פחופט 51806 הסטוף 3 חס קהחטופ 8 זחובק' וטוט 06זט650ו 606 חס 5זהסקכ3 וסו8]185600ח! 6זסת עס עס' 6 > > > >< >< < >< 2 >< < >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< =< 6 < >< >< < >< 6< =< >< >< >< >< >< >< >< >< >< >< >< >< >< אכ אכ ,500606 5 265066 ,020[660) 5 0[065 )והז קחד 500 (8חס | 5 זס|ס5%6\חח! |\ץ ,סַחס1 5 צפח! ,פחס1 5 אפחו 6%<א<>; > 6 >< 6 אכ >< >< < 26 6< >< < 6 2 26 >< < 6 26 26 6< >< < 6 אכ < >< < 6 2 26 >< < 6 26 6< >< < < 2 26 6< < < 26 26 < < < 6 א א< < < 6 26 אכ >< < < א אכ 1 חו3|קא6 30 060316 605! 50 ,80|65וזבע +0 הסחטטס 8 565 500 פוחד ' .. . 30/8006 ח! וחסוט ' >< >< > >< > >< > 6< >< >< ל ל >< < < ל 6< 6< <‏ ל >< < < ל < >< < < ל < < < ל < 6< >< < ל < >< א< < < א< >< < ל ל אכ א< 6< ל א< >< < אל א< אכ < אק ל א< 2 1 הטוס 6006 חס ] 5 606ז85ח! וחזוס הזוס 5066 )0 602" פחס] 5 606ע858חו חחוס הסוס 135%] 6והסזהססהסוז' חס | 5 35%06\ופח! וחוס הטוס 135%!] +0 10/6156 סההסזהססהסון' 8חס | 35 6סעח1פח! וחוס 5 0חט0ז2300 .8 5006 +0 הסטהחוטרח ס6' 8חס | 25 6ססוקצוסצופח! וחוס סוס 5066 606 +0 הסקו656ס' קהן ד₪1 5 6סווספקוחט חחוס 860000 .8 5066 +0 חסטפחוטר ס6' חס ]| 45 קוח0ס|טפסחח וחוס סוט 5066 )0 60 8חס | 5 קר 586 חוחוס קה וסוס 35%] סהחסזוהססהסון' בחס | 35 קרח565בוזח וחוס הטוס 135%!] +0 56ז6שח1 סרהסזהססהסון' 8חס | 35 קותפטח1ח וחוס 6 5066 חו קהחסופ ע6זכן 5סוסרו' חס | 5 קוחפעסזק6זפח וחוס 6 58/60 חן קהוחטום צסזס 05וסרז' | חס ]! 5 קותםעסזקסעהפח וחוס 6 00500800 חו קהחטוס סז 5וסרז' | חס ]| 5 קותםעסזקספססה וחוס 6 358 ₪06 חן קהוחטום עשזכ 05וסרז' | פחס | 25 קותםעסזק5בוח וחוס 6 856 60דוסעחו חו קהחסופ ע6זכ 5סוסר' 8חס | 35 קותפעס6זקטח1ח וחוס 6 וףּחוחוזס ₪6 05!ס4]' .8085631610068ח! חזוס 6 5006 חס זס|0סא36פ |החוףחזס פסוסרו' 8ז80860|0ח! וחוס ><><6; >< 6< 6 < < < < כ < 6< 26 א ל < < < < א< < כ א< א< א< א 2 < < א< כ < 6< אכ אכ א א< אל < א < < כ אכ אכ אכ א< א< < < א< < כ < אכ א< א א< אל א< א< א< אכ 12% 1 פצוססחו/\\ זס+ פ|סאוכ %0 568|61006 66 ' >< >< > >> > >< 6< >< < ל ל >< < < ל 6< >< < ל ל =< < < א >< >< < 6 ל < < א< ל << < < ל < =< א< < < א< >< < ל א< אכ < 6< ל א< >< < אל א< אכ < < ל אל 26 1% 86 = 800568|611006ח! וע = 00[065%.508|61006 >< >< >> 6 > 6< >< >< ל ל >< >< < ל א< >< < ל ל >< < < א >< >< >< < ל ל < < ל << < < ל < >< א< < >< א< < < ל < אכ א< 6 < א< >< >< ל א< אכ < אק ל אל 26 1% ( 66.00 זט 50קרח) הו\ זו 06% 60 קהחחוט 06זטס5 6 080 ' (60חט. 66 זט 50 רח) 60% סחהבּ ' >> >><>:<6<א< 26262666 62626 6 אק אל אל אל ל < ל אל < < א< א< אכ אכ כ אכ אכ אכ אכ אכ א< אל אכ אל 2 אל אל אל < אל א < א< אכ אכ אכ אכ אכ אכ אכ אכ אכ אל אל אל אל אל א ל 12% 6 ות , (66זוס5רחפ)ח6 | ,105066 6600166 %> > >< >>> > > >; >< >< >< >< >< =< >< >< >< >< >< >< >< =< >< >< >< >< >< >< >< >< >< >< >< >< >< >< 6< =< < >< 6< >< 6< >< >< >< >< >< >< >< >< >< >< >< >< >< 6 >< 6< >< 6 >< 6 12% סק והז 66 !סח 60 (6'5) 66%65חה60 060106 06 קר 60 076806 ' 50 פוחז 0 560 פ5קהחחוט ' ><>< > >> > >< 26 >< >< ל < >< >< < ל 6< >< < ל ל =< < < ל < >< >< < << < אק א < 26 < < ל < >< א< < << >< < ל < אכ < < ל א< >< >< אל < 26 < < ל א< 26 1 פרק 23: ארגז הכלים של המומחה 277 (080!600)00[065%.006 67680600 = 606זפפחו (006.+065 [0 0 )06 6768066006 = 058/606חו (6ו65%.00 0 )06 6768666016 = 85606 ופטחו (01606)000265%.006 6768666008 = 6סעח1פח| (6768060008001600)00[065%.006 = 6ססשוקצוסצופחו >> >>>:<6<א< 26262666 62626 6 אק אק אל אל ל ל ל אל < < אכ < אכ אכ כ אכ אכ אכ אכ אכ א< א אל אל אל אל אל א< < א< א < א< אכ אכ אכ אכ אכ אכ אכ אכ אכ אל אל אל אל אל ל ל 12% 5 וס 35-1613060 שר זס? 85 וחסוס 6ההסה6סחסוח 076806 ' >< >< >> > >< 26 >< >< ל < >< >< < ל 6< >< < א ל כ < < ל >< >< < < ל < < אק ל < א< < < ל < >< א< < << >< < ל < >< < < ל א< < >< אל < אכ < אק א א< 26 1 ,1 ,1 61006 .66 זט סרח ,06.00 סקר )ו 676806 = קרת350 ות (08 |3\ץם ,1 ,1 60060 .66 סרח ,06.0 סקר )0 676806 = קותטטחזה (08 |3\ץם ><>< >>> > >< 26 >< >< ל < >< >< < ל 6< >< >< א << < < ל >< >< >< < ל < < < א < 6< < ל ל < כ < < < א< >< < ל < 26 א< < ל א< אכ < ל א< אכ כ < אל א< 26 1% ץ60 כ 0866 66 30 >| פס |הח 606 זס+ 5קהחסופ זסוס6 07686 ' הטוס 5006 6וש 01 ' >< >> >> >< >< 6< >< >< ל אל >< < < ל 6< >< < ל ל כ < א< ל >< >< < < ל < < < א < א< < < ל =< >< א< < < א< >< < ל < אכ א< 6 < א< >< >< ל א< אכ < < א אל 26 12 ,06.00 סרח 650.06[ )הרו סטוה קר 67686660 = קוחס|טפסחת 600 וחט.66 וס קחזפ ,00 .סרח ,065%.006[ )וסוט קר 67680660 = קוה0 5/6 600 וחם.66זטס50קוחפ >> >>>:<6<א< << 262626 62626 6 אק אק אל אל ל < ל אל 2 < א< א< אכ אכ < אכ אכ אכ אכ אכ אל א< אל אל אל אל אל אל < אל א א א< אכ אכ אכ אכ אכ אכ אכ אכ אכ אכ אל אל אל אל אל ל 12% (6) 6%זח00 06106 6 ססחו קהחוחום 66166 ' >< >> >> > >< 26 >< >< ל 2 >< < < ל 6< >< < א ל =< < < ל >< >< < < ל < < אק ל < 26 < < ל < >< < < >< 6< >< < ל < >< < < ל א< < >< ל < אכ < אק א אל >< 1 (650066וכ ,,057606ח|)56!66000[660 = קוחפעסזק6ופת (כרח 58/6 ,858/606ח|)56166000[66 = קוח ע6זק6/הפת (קרח350וזח ,0135606ח|)0[66 5616660 = קותפטסזקא5הת (מותפעח1ח ,6כ/ח01ח!)56!66500[66 = מותפעסזקשחזה (כ ]50 ,סקס ח!0[60 5616600 = כותפעסוק )פסה ><>< א >> > >< < >< >< ל אל =< < < ל < >< < ל ל < >< < < < >< < ל אל =< >< < ל < 6< כ אק ל אכ >< < ל < 26 אכ אק ל א< >< < ל ל >< אכ ל ל א< >< 6< ל אל 26 אכ זסה! 65606 0ף כקהוחסוס 5066 +0 קט086% 8 66הּו ' 12% 6 <> 2 <> <6 <> <6 <> <> <> <> <> <> <> <> <> <> <> <> <> <6 <= 6 <> < <= <6 <> <> <> <> <> <> <> <> <> <> <> <> <= <> <= <> <> <> <> <> <> <> <> <> <> <> <> <> ;> > > >>> <> >>> ,857606ח! 61006 .66 ס5קרחפ ,ר00ו/\ותט.66זטס5קרחם ,0 ,0 ,606השפחו זופזוט ץצ ,0 ,0 %> > >< >< א > >; >< >< >< >< >< >< >< >< >< =< >< >< >< >< >< >< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6< =< >< >< א >< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< א >< 6 12% 0 50166 +0 600 |0חטוסז 08660 66 0חו5600 עץ0 85% 6+ 076866 ' הח 6 ס6חו קהוחסום 603% סחו"וסזום הסר> ,זסוס6 +הסזהקפחהט ' ' 064166 00% %>>א<>;<א<>; > > >; >< < >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< 6 >< < >< < >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< 2 >< 6 12% (זס|60א35פח!| ,606זפח!)זסו56%0660 = זסוס86ווספחו = ,857606ח! 61006 .66 זוס5קרתט ,הססו/\רחס.66זטספוחפ ,0 ,0 ,06>פהווסחו זופזוט ץצ ,0 ,0 %>> :2626266666 62626 6 >< א אל אל ל < ל ל < ל אכ < אכ אכ אכ אכ אכ אכ אכ אכ אל א אל אל 2 אל ל אל ל אל א< א אכ א< אכ אכ אכ אכ אכ אכ אכ אכ אל אל אל אל א< < ל 12% +60 06166 6 חו זס|ס866פ |החוסחס 6 6זס656ק ד >> >< >>> > >< < >< < >< >< >< >< >< >< >< >< >< >< >< >< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6 =< < >< < >< < >< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< א >< 6 12 זסו060ו801ח! ,606ז95ח! זסוס56%966 8 סדנת לימוד 6.0 8\ >> :2626266666 62626 א אק א אל אל ל ל < אל < אל אכ א< א< אכ כ אכ אכ אכ אכ אכ אק א אל אל אל ל אל אל < אל א א א< א< אכ כ אכ אכ אכ אכ אכ אכ אל אל אל אל אל א ל 12% 6חו 60 6חה 5066 6+ רטוש כ סו 85% 6 01 56זסעחו חהּ 076805 ' 086000 שחל הזוע זו ' 6 >> >< א > >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< < =< >< >< >< >< >< >< >< >< >< >< >< >< >< =< 6 =< < >< א >< 6< >< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< 6 >< 6< 12% ,18580060 61006 .66 זוס5קרתט , הלסו//\רתט.66זטס5קוחפ ,0 ,0 ,6סעהזפחו זופזוט ץ6000ז%5ס\סט ,0 ,0 ><>< > >> > >< 26 >< >< ל ל >< >< < ל 6< >< < ל ל < < < ל >< >< >< < ל ל < < ל < 26 < < << >< < < < א< >< < ל < 26 א< < ל א< < א< אל א< אכ < אק ל א< >< 1 60% 06/1606 6ז סוכ סח 6 ס+ קה וסוס סהטסז0א086 66 צְסס6 ' קה וס 3536 |ח 6 סההסזס הופסם סט ' ><>< >< >> > >< 26 >< >< ל < >< >< < ל 6< >< < א ל < < < ל >< >< >< < ל < < < א א< 26 >< < ל < >< < < << >< < ל < >< < 6 < א< >< < אל < אכ < אק ל אל 2 1% 600 ח66.0ז50קרחפ ,הססו/\וחט.6סזטס5קרחם ,0 ,0 ,6ססוקעע6צסח! +וטזום ץ66000ז5טצ ,צפח! ,אפח! ,06ח.656ס[סס >< >< >< >< > > >< 6< >< >< ל < >< >< < ל 6< >< >< א ל < < < ל >< >< >< < ל ל < < ל אל 26 >< < 2 < >< < < >< א< >< < ל א< 26 < ל ל א< אכ < ל א< 26 < אק אל א< 2 1% 6 0 600% 060106 6|טפסז סח רסו קהוחסוס 35% 6ר0 סאה ' 6% 6 פהטחוהק עס סהטסז2360 6 חן 6606 וס טס 6ואססס ב ' וס 5066 66 ]0 הסוצזסק +ה6 37 50ח3-הסה 6 זסו 68זבּ ' %> > >< >>> >; >< < >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6 >< >< < >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< 6 >< 6< >< 6 >< 6 12% 600 66.0זוס5כרחפ ,ה0ו//\וחט.66זוס5קרחט ,0 ,0 ,6ססוקצוסצוסחו זופזוט 0ח\6ז5טט ,0 ,0 ,5%06ה\ופח| >> >>>:<6<א< 26262666 62626 6 >< אק אל אל ל < < ל < ל א< א< אכ אכ < אכ אכ אכ אכ אכ א< א< אכ אל 2 אל ל אל < א< א ל א< א< כ כ כ אכ אכ אכ אכ אכ אכ אל אל אל אל א < 1% 5ופ 6 0 חזגט ס% קהחטוט 5006 6ז חוטש 85% 56זסעחו סול סאזא ' 6 הוה יפ הסוס 5006 ]0 68זהּ +חס הקפהה הזו 3455001060 ' >< >< > >> > >< 26 >< >< ל < >< >< < ל 6< >< >< א >< כ < < ל < >< < < ל < < אק א < א< < < 2 < >< א< < << >< < ל < >< < 6 ל א< < א< ל א< אכ < אק 6 א< 2 1 6000 66.0זוס5קרחפ ,ר00ו/\וחפ.66זוס5קרחפ ,0 ,0 ,6סס6זפפחו זופזוט 0ח\6זפפט ,0 ,0 ,6סעחת1פח| %>> :2626266666 62626 6 >< א אל אל ל < ל אל < ל אכ א< כ אכ < אכ אכ אכ אכ אכ אל אכ אל אל 2 ל ל אל ל אל א< < א< אכ א< כ אכ אכ אכ אכ אכ אכ אכ אל אל אל ל א < 1% זס|ס6 185% 606 6!366ז ס6 קהחחום 5066 606 השועו !סז 66 סא ' זס|ס6 סהטסוז0א080 66 רטוש ' %> >> >>> >; >< < >< >< >< >< >< >< >< >< >< >< >< >< >< =< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6 >< < >< 6< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< 6< >< 2 >< 6 12% 600 66.0זוס50כרחפ ,ה0ו/\וחט.66זוס5קרחט ,0 ,0 ,6ססוקצוסצוסחו זופזוט 6% וטע ,0 ,0 ,606זפפח| >>> :2626266666 62626 6 >< אק אל אל ל < ל ל < אל אכ < אכ אכ < אכ אכ אכ אכ אכ א< 2 אל אל 2 אל < אל ל א< א ל א< א< כ כ אכ אכ אכ אכ אכ אכ אכ אל אל אל ל א ל 1% 6 5006 חס כהוחטוס +ה6זה50ח3ז 606 זחופָק ' %> > >< >< א > >; >< =< >< >< >< >< >< >< >< >< >< >< >< >< < >< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6 =< < >< 6 < 6 >< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< < >< 6 12% = ,ה0ו/\וח66.0זנוס5קרחפ , צפח! ,אפח! ,6סח.זפסכנסס זופזום ץ6000ז5פש ,0 ,0 ,66וק וצח %ח0ו6הותם.66זטס5סוחםפ >> >><>:<6<א< 26262666 62626 6 >< אל אל אל ל < ל ל < ל א< < אכ אכ כ אכ אכ אכ אכ אכ אל אק אל אל א< ל אל א< < אל א < א< אכ כ אכ אכ אכ אכ אכ אכ אכ אל אל אל אל אל אל ל 12% וחוכ +0 2866 05606 ד >> א<>;< >< > >; >< >< >< >< >< >< >< < >< >< >< >< >< >< < =< >< < >< >< >< >< >< >< >< >< >< >< >< >< 6 < א >< 6 < 6< =< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< 6< >< 6 >< 6 12% 6000 66.0זווס5קרחפ ,ה00ו/\וחפ.66זוס5קרחפ ,0 ,0 ,6כס6זפפחו זופזוט ץ6000ז5פש ,0 ,0 ,58/606ח| >> :2626266666 662626 >< א אל אל ל < אל אל < אל אכ < אכ אכ כ אכ אכ אכ אכ אכ א< אכ אכ אל 2 אל אל ל < אל א < א< אכ א< כ אכ אכ אכ אכ אכ אכ אל אל אל אל אל < ל 12% 5 |חושוזס זו6רץ+ 5616608 0 6605[טס |החוסחס 6 6זס656 ד %>>א< >>> > > > >< < >< >< >< >< >< >< >< >< >< >< < >< >< < >< >< >< >< >< >< >< >< >< >< >< >< 6< =< < >< 6 >< 6< >< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< < >< 6 12% וטק 56 ,957606ח| 56!6600[66 5/6 ,058/606ח! 56|66600[66 והזח ,606וקצשס\פח!| 5616660166 קרח 13566 ,0185%606ח! 66600[66ו56 פרק 23: ארגז הכלים של המומחה 29 קרתםע6זקטח1ח ,6כעח1ח! 56!66000[66 >< >< >> > >< 26 >< >< ל < >< >< < ל 6< >< >< < ל כ < < ל < >< >< < ל < < אק א < א< < < 2 < >< א< < ל א< >< < ל < >< < 6< ל א< >< < ל א< אכ < אק א אל 2 1 00 5ור) 0 6768060 65007065 הח500ץ5 66זה ' >> >< >;<א< > >; >< >< >< >< >< >< >< >< >< >< >< >< >< >< < =< >< >< >< >< >< >< >< >< >< >< >< >< >< =< 6 < >< >< < >< 6< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< 6< >< 2 >< 6 12% 53/6 60600[66ו6כ 3568 660600166 קוחפעח1 660600166 חח 660600160 56| 60606ו6כ 6 06 סכ 6סעחזח! 6006ו6כ 6 6006וסכ סוק עוס\ח! 60606וסכ >< >< > >> > >< 6 >< >< ל 2 >< >< < ל 6< >< >< < ל =< < < ל < >< >< < ל < < אק ל < 6< >< < ל < >< < < >< 6< >< < ל < >< < 6< ל א< א< >< ל < 26 < < א אל 26 1% 6 |החוףוזס 165 0+ 568|611006 606 656065 ד %6> > >< >;< >< > >; >< >< >< >< >< >< >< >< >< >< >< >< >< >< >< =< >< =< >< >< >< >< >< >< >< >< >< >< >< >< 6 >< 6< >< 6 >< 6 >< >< >< >< >< >< >< >< >< >< >< >< >< 6< >< 6< >< א >< 6 12% 6 = 00[065%.508|61006 50 06חם מסיבות פשטות החסרתי את הצהרות 1קה מתוכנית 23.4 ויכולתי לפרוס על גבי עמודיס רבים את ההסבריסם על המתרחש בכל צעד של חו3?זח6זה8קפההזד. לא אעשה את היות וקטע זה מכיל את אותן הערות שעשיתי ברשימתי. כמו-כן לעקוב אחר תוכנית זו, עלול להיות קשה יותר אס היא מחולקת למקטעים רביס יותר. לאחר שתקרא את ההערות בקטע וה, אני ממליצ לעקוב אחר פרויקט ו8ק%ח6ז8קפחהד שאפשר להורידו מאתר של 5'חוו!!והז86] בכתובת ס)חו/וחסס.ססוח. אואואו. הקריאה תסייע לך להבין מה קורה בכל שלב. למרות שקשה לעקוב אחרי שיגרה כמו 6007810%8ז58ח8זד השימוש בה קל מאוד. תוכנית 23.5 טוענת קוב מפת סיביות מקוב\ מקור וצובעת אותו בפינה השמאלית העליונה על ידי שימוש 6חן8קזח6זה8קפחּוד. בהמשך, היא צובעת את התמונה על ידי 6 6וקלחוהק. המשתנה האחרון חה885160766 |1808/\ מורה ל-0ו3ק+ח6זהקפחהזד להחליף כל סיבית בתמונה שהיא ירוקה בצבע הרקע של הטופס. התוצאה מוצגת בתרשיס 5. 0 סדנת לימוד 6.0 8\ תוכנית 23.5: דאד.8ק5א החד - שימוש בשיגרה זחוףקזחסזהק5חפּודך. ><><6;< > א > << >< 6 6< >< < >< < א< >< 2 6< < 6< < א >< < א< < א< 6< < 6< < << < 26 < 2 6< < 26 < << < א< < 2 6< < 26 < א< < < א< < 2 6< < 26 < א< א< א< א< < א< %< < א< 1 35 0351 56 60 עשס 8005 507הסרח6כ - הזה הזד ' .6 05006 3 החסיו קה ופ 8 חחו5 +ח|6?8חסזהקפחהיוד : %<><א<6< 6 >< 6 6< 6< >< < < < 6< 6< 2 2 < א< < < 6< < < < כ < < < < 6< 6< 2 2 < אכ א< < 26 < 2 %< כ < א< < < 6< 6< 2 2 2 א< א< א< 26 2% < < כ א< א< א< %< %< 2% 2 26 א< אכ 1 זוסו|קא= הסטקס 6666 6 >< 26 << >< >< 6< < 6< 6< < 2 < א< א< < 6< < %< כ כ < א< < < א< 6< 2 2 < א< א< < 26 < < 2 < < א< < < 6< < 2 2 2 א< א< א< 26 2 2 כ כ א< א< א< %< %< 6< 2 26 2% אכ 1 הוה 0ח3 ₪16 05006 3 החסז קה וסוס 3 סחו0הסו| עם שוחה 5001606 8 0605 ' .זס|60 856 8 35 ץז חחופ עס וחזסן 6 חס 0 ח6זה8ק5חה יט ' %<><א<6 א >< 6 6< 6< 6< < 6< < 6< 6< < 2 2 א< < < 6< < < < < < < < < 6< 6< 2 2 2 א< א< < 26 26 2 < כ < < < < 6< < 2 < 2 א< א < 6< 2 2 < < < א< א< %< %< 26 2 26 א< אכ 1 ()א6ו1 רח58ח3ז הוה 60 50 סספּעווק (7)זסו0860 ,0 ,0 ,(0 ,103 )65606 הס | ,6 שחו3ק6ח6 זה קפחפוד 50 0ח= |<1ם], | ]חסזק5ה3ּו] ₪ תרשים 23.5: זחוף<לחסזהּס5חבּזד חייבת להופיע בישומי המולטימדיה שלכם נסה להחליף את קובץ המקור של פרויקט זה בקובץ משלך והרגש כיצד עובדת זה 3זד. כמו-כן נסה להשתמש במסכות צבע ובתמונות שונות. מהיוס לעולם לא תצטרך לכתוב יישוס שנראה נחות יותר משוס שאינו משתמש בתמונות שקופות. מכאן... בפרק זה ראית מיגוון פרויקטים. אס תודקק למידע נוסף על הנושאים שנדונו, פנה לפרקיס הבאים: ** | ללמוד על קריאות 4-1 ראה פרק 20. ** | למידע על קבצי 11 פנה לפרק 21. פרק 23: ארגז הכלים של המומחה | 631 חלק 6 6 | ופו/ ומסדי נתונים .% +< 4 % / 7% 4 7% 4% 9% +< פרק 24 פרק 25: פרק 26: פרק 27: פרק 28: פרק 29: ]ןז 6 : יסודות מסד הנתונים פקד הנתונים ופקדי איגוד נתונים שימוש באובייקטי גישה לנתונים (40פ) גישה לאובייקטי נתונים מרוחקים (ספא) גישה לאובייקטי נתונים באמצעות פקדי 6%ע6% (סס) יצירת דוחות 3 24 יסודות מסד הנתונים פרק 24: יסודות מסד הנתונים | 635 ניתן לומר בביטחון שכל תוכנת מחשב יישומית עובדת עס נתונים ((ּ088) מסוג כלשהו. הנתוניס האלה מאוחסניס לרוב במסד נתונים (28%80856) או בכמה מסדי נתוניס. 6 |508/\ מאפשרת לך ליצור תוכנות חזקות לניהול מידע, תוך השקעה של מעט תכנון ומאמא. המרכיב החשוב ביותר בעיצוב מסדי נתוניס הוא הגדרת מבנה הנתוניס. מסד נתוניס שלא עוצב נכון עלול להעמיד מכשולים גס בפני פיתוח תוכניות מתקדמות מאוד. מאידך, שימוש במסד נתוניס שעוצב כראוי יכול להקל מאוד על חיי המפתח. יצירת מבנה נתונים (6ז60ט507 הּזכ) מאורגן היטב דורשת ממך ללמוד את אופן ביצוע שתי משימות. ראשית, עליך ללמוד כיצד לעצב מסדי נתוניס. בשלב העיצוב, עליך להחליט אילו סוגי נתוניס ייכללו במסד הנתוניסם, ואיך הס יאורגנו במסגרתו. אחר כך, תידרש ללמוד כיצד לתרגם את העיצוב שלך למסד נתוניסם ממשי. תוכל לבצע פעולה זאת במיגוון דרכים. בפרק וה נבחן שיקוליס שוניס הקשוריס לעיצוב מסדי נתוניס, ומבניס של מסדי נתוניס. את המושגיס שתלמד בפרק זה תוכל ליישס על מסדי נתוניס מכל הסוגים, ולא רק על מסדי נתונים שתבנה במסגרת יישומיס ב- 88586 |1508/. עיצוב מסד נתונים בדומה לפעולות אחרות, גס בניית מסד נתוניס מתחילה בשלב העיצוב. כפי שלא היית מתחיל לבנות בית מבלי לתכנן אותו קודם, או שלא היית מבשל תבשיל לאניני טעס מבלי לעיין במרשם, כך לא כדאי שתתחיל בבניית מסד נתוניס מבלי לעצב אותו. כפי שקורה בביצוע פרויקטים מסוגיס אחרים, גס בעת בניית מסדי נתוניס השקעה בתכנון ועיצוב היא שלב ראשון בביצוע פרויקט מוצלת. בעת עיצוב יישוס לניהול מסד נתוניס (חסו690ו|פק 89856ז8כ) תידרש, בנוסף לתכנות שגרות התוכנית באופן שיאפשר לך להשיג ביצועיס אופטימליים, גם להקדיש תשומת לב למבנה הלוגי והפיסי בו יאוחסן המידע, אליו מתייחסת התוכנית. תהליך עיצוב נכון של מסד נתוניס מאפשר לך להשיג את היעדיס הבאיס: > לקצר ככל האפשר את זמני החיפוש הדרושיס לשס איתור רשומות מסוימות. + לאחסן מידע באופן יעיל ביותר, כדי למנוע ממסד הנתונים לגדול למימדים מוגזמים. > להקל על ביצוע פעולות לעדכון מידע. * להקנות למסד הנתוניס מבנה גמיש, כדי לאפשר הוספת פונקציות חדשות העשויות להידרש לתוכנית. 6 סדנת לימוד 6.0 8\ יעדי עיצוב בעת הגדרת עיצוב מסד הנתוניס, תידרש להתייחס למספר יעדיס שוניס. עליך לשאוף להשיג כמה שיותר יעדים, אך במקריס מסוימיס השגת יעד מסויס תמנע השגת יעד אחר כלשהו. יעדי העיצוב העיקריים הם: + מניעת אחסון נתונים מיותרים. > אפשרות לאיתור מהיר של כל רשומה (₪66070). > הגדרת מבנה שיקל על הכנסת שיפוריס במסד הנתוניס. + שמירה על ניהחול נוח של מסד הנתונים בכל שלב. פעולות חשובות בעיצוב מסד נתונים יצירת מסד נתוניס טוב כרוכה בביצוע שבע הפעולות המפורטות להלן: > הגדרת מבנה היישוס. > הגדרת הנתוניס הדרושים לצורך פעולת היישוס. > ארגון הנתוניס בטבלאות (180!65). + הגדרת מערכת הקשרים (105ח5ח0סו₪6!80) בין הטבלאות. * הגדרת אינדקסים (65א06ח1) וכללי אימות (65!₪₪ חסטבּסווצ) עבור הנתוניס. + יצירה ואחסון שאילתות (665ט0) הדרושות ליישוס. > בחינת תהליך העיצוב. כעת, נסקור בקצרה את שתי הפעולות הראשונות שצוינו ברשימה. ראשית נסקור את פעולת העיצוב היישוס. בעת הגדרת מבנה היישוס, תידרש תחילה להגדיר את הפעולות שעל היישוס לבצע. לדוגמה, אס אתה מנהל את רשימת של מועדון חבריסם, יהיה עליך לנהל רשימת מספרי הטלפון ורשימת כתובות למשלוח דואר. כאשר אתה מגדיר את הפעולות שתבוצענה על ידי היישום, עליך להגדיר מפרט פונקציונלי (ח5066116800 [החסח6חט=) שלו. כאשר אתה מפתח יישוסם, סביר להניח כי ברורות לך המשימות אשר אותו יישוס אמור לבצע, אך למרות זאת כדאי שתכתוב מפרט מסודר של היישום. המפרט הכתוב יסייע לך בהתמקדות בפעולות שאתה מעוניין כי התוכנית תבצע, יסייע להגיע להסכמה מול הגורמים עבורס מיועדת התוכנית ויועיל גס בהגדרת לוחות ומניס לביצוע הפרויקט. שיחות עס הגורמיס שעבורס מיועד היישוס הן הדרך הטובה לקבלת רקע על המשימות אותן הוא מיועד לבצע. ראשית, יהיה עליך לברר האס כבר עומדת לרשותם מערכת ישנה, אותה הס מעונייניס להחליף והאם יש דוחות מסוימיס שהס מעונייניס להפיק. בשלב הבא כדאי לשאול שאלות רבות ככל האפשר אשר תסייענה לך להבין מהן המשימות אותן מייעד הלקוח ליישוס. פרק 24: יסודות מסד הנתונים | 637 לאחר הגדרת המפרט הפונקציונלי, אפשר להתחיל בהגדרת הנתוניסם הדרושים. בעת יצירת יישוס לניהול מועדון חבריס, הידיעה שעליך להפיק רשימות כתובות ומספרי טלפון מכוונת אותך לכלול במסד הנתוניס כתובת כל חבר ומספר הטלפון שלו. הידיעה כי מיון דואר על פי מספרי מיקוד תסייע להאצת העברתו אל החבריס ואף תאפשר ליהנות מתעריפיםס מיוחדים של דיוור מהיר, תעודד אותך להגדיר אינדקס או שאילתה אשר ימיינו את רשימת הכתובות על-פי מיקוד. דוגמה ו מאפשרת לך לראות שעיצוב נכון של היישוס לא רק מגדיר עבורך את המידע שיידרש לך, אלא גס מרכיביס אחריס של היישוס. ארגון המידע הגדרת אופן אחסון המידע במסד הנתוניס היא אחת הפעולות החשובות ביותר בעיצוב מסד נתוניס באיכות גבוהה. עיצוב נכון של מסד נתוניסם כרוך באחסון הנתוניס באופן המקל על אחזור (₪6016/6) הנתונים ועל תחזוקת מסד הנתונים. הנתוניס המאוחסניס במסד נתוניס מאוחסניס בטבלה (180!6) או במספר טבלאות. ביישומיס רביס של ניהול מסדי נתונים ניתן להגיע לניהול מידע יעיל, על ידי אחסון הנתוניסם במספר טבלאות שונות והגדרת קשרים (פ05וח5ח0ס56!80) בין אותן טבלאות. בסעיפיס הבאיס תלמד כיצד לקבוע אילו סוגי נתוניס ישויכו לכל טבלה במסד הנתוניס. טבלאות כנושאים טבלה (189!6) היא אוסף נתוניס אשר מתייחסים לנושא מסוים. תוכל לקבוע האס כדאי לאחסן פריט מידע מסויס בטבלה מסוימת על ידי כך שתתייחס לנושא העיקרי של הטבלה. לדוגמה, אס מועדון מסויס מעוניין לנהל מעקב אחר מידע הקשור בחברי המועדון ובעובדי המועדון, הנהלת המועדון עשויה להתפתות לאחסן את המידע הנוגע לחברי המועדון והמידע הנוגע לעובדי המועדון באותה טבלה (זאת מפני שחבריס ועובדיס הס אנשים). אך כדאי שנתייחס לרגע לסוגי הנתוניס שתידרש לאחסן עבור כל אחת מהקבוצות. לשתי הקבוצות אומנס נדרשים נתונים כגון שמות, כתובות ומספרי תעודת והות. אך לקבוצת העובדים יידרשו גם נתונים על ניכויי מס ועל הגדרת התפקיד. אם תכלול החברים והעובדיס בטבלה אחת, תיצור מצב שבו יהיו שדות ריקיס ברשומות החברים. תידרש גם להוסיף לטבלה שדה שיאפשר להבדיל בין עובדיס לבין חברים. כבר ברור שאחסון משותף של נתוני העובדים והחבריס בטבלה אחת יגרוס לבובוז רב. האחסון המשותף גם יגרוס להאטה בביצוע פעולות המתייחסות לעיבוד הרשומות הנוגעות למגזר אחד בלבד, ואת מכיון שהתוכנית תידרש לדלג על קבוצה שלמה של רשומות הכלולות במסד הנתוניס. בתרשיס 24.1 מוצגת טבלה בה מאוחסנים נתוני עובדיס וחבריס. בתרשיס 24.2 ניתן לראות את הצמצוס במספר השדות הכלוליס בטבלה, המתאפשר על ידי אחסון נתוני החבריס בטבלה נפרדת. תשומת לב לנושא אליו מתייחסת הטבלה מאפשרת לך לקבוע בקלות רבה יותר האס פריט מידע מסויס צריך להיכלל בטבלה זו או אחרת. אס הכללתו של אותו פריט תגרוס לניפוח מיותר של הטבלה, סביר להניח כי מקומו בטבלה אחרת. 8 סדנת לימוד 6.0 8\ 0 7 הזוית 5 ת"א שו הרב-קוק 15 | באר-שבע. ישראל 2 גנ 0 ש"ת ההסתדרות 32 חיפה ישראל 2 מנכ"ל ע"פי חוזה האנות 20 ראשל"צ | ישראל ויונגוןף 124 | וונ"א שו אל נ 5 אוו אי ונש 35 ש"ו רשומה: !?| 5 6 ]| + | 44 ]+ + מתןר 6 תרשים 24.1: אחסון נתוני העובדים ונתוני החברים ביחד, בטבלה אחת, גורם לבזבוז רב וט לנמשו | שפצהאה | הממח | ער | מהחה ‏ | ההקר הזוית 6 ת"א הרב-קוק 13 באר-שבע ההסתדרות 32 | חיפה תרשים 24.2: אחסון נתוני החברים בטבלה נפרדת מאפשר לכלול בה רק את השדות הרלוונטיים לחברים והוא יעיל הרבה יותר נרמול נתונים נרמול נתונים (ח2800ו|הוחזסא\ 8ז8כ) הוא תהליך גריעת מידע מיותר ממסד נתוניס. באופן תיאורטי, נרמול נתוניס אופטימלי יוצר מצב בו כל פריט מידע מופיע פעם אחת בלבד במסד הנתוניס בו הוא מאוחסן. באופן מעשי, קשה להגיע לתוצאות אלו אך יש לשאוף אליהן. לשס הדגמת הנושא, נתייחס למערכת טיפול בהזמנות לקוחות. הנתוניס המענייניס אותך בכל הומנה הס: מספר פריט (סחוחסם1), תיאור הפריט (חסטסו650כ), מספר הזמנה (0חז06ז0), תאריך הזמנה (28060 ז06ז0), שס הלקות המצמין (6וח8 185% ו-9%זו= 6וחהּ\), כתובתו (1007655) ומספר הטלפון שלו (6חסחק). אס תאחסן את כל המידע הזה בטבלה אחת, הטבלה תיראה כמו זו המוצגת בתרשים 24.3: דג חרב ₪ פרות ים 11 דג חרב 102 צדפות 12 צדפות 153 פרות 'ם 104 רשומה:| ?]| + 7 ]| + ]14)++ מתוך 7 תרשים 24.3: נתונים שלא עברו תהליך נורמליזציה גורמים לטבלאות גדולות ולא יעילות פרק 24: יסודות מסד הנתונים | 639 ניתן לראות כי נתוניס רביס הכלוליסם בטבלה חוזריס על עצמס. העובדה שנתוניס חוזריס על עצמס יוצרת שתי בעיות. הבעיה הראשונה היא בזבוז שטח אחסון והיא נובעת מהעובדה שאותם נתוניס מאוחסניס בזיכרון כמה פעמים. הבעיה השנייה נוגעת לאמינות (86ז1600) ועדכניות ((שח6זוטס) המידע. לדוגמה, אס מספר הטלפון של לקוח כלשהו השתנה, תידרש לשנות את המספר בכל הרשומות המתייחסות לאותו לקוח, כאשר תמיד קיימת אפשרות שתדלג בטעות על רשומה כלשהי. בתרשים 24.3 ניתן לראות כי מספר הטלפון של מאיר קינן עודכן ברשומה האחרונה, אך לא עודכן בשתי הרשומות הראשונות. כך שאם עובד כלשהו יעיין באחת משתי הרשומות הראשונות, יוצג לפניו מספר טלפון לא עדכני. אחסון נתוני הלקוחות בטבלה אחת ונתוני ההזמנות בטבלה אחרת, הינה דרך טובה יותר לטיפול במידע המוצג בדוגמה לעיל. תוכל להגדיר מזהה ייחודי עבור כל לקות ולכלול את המזהה בטבלת ההזמנות, כדי לוהות את הלקות. שיטה זו מניבה שתי טבלאות נפרדות, בעלות מבנה המוצג בתרשים 24.4. מבנה זה, מאפשר לך לרכז את כל נתוני הלקוח במקוס מסוים, כך שכדי לשנות נתון כלשהו, לדוגמה מספר טלפון חדש, יהא עליך לגשת למקוס אחד בלבד. תוכל ליישס תהליך דומה גם עבור נתוני הפריטיס שנמכרו (50!0 16605) ונתוני ההזמנות (ח08000זזסזח1 ז06זס). אומנס מדובר ביצירת ארבע טבלאות שונות, אך תוך ייעול משמעותי של תהליכי העבודה ועיבוד הנתוניס. שיטה זו מבטיחה את אמינות המידע ומאפשרת לבצע שינוי פעס אחת ובמקוס אחד בלבד. מבנה נתוניס מסוג זה מוצג בתרשיס 24.5. במסגרת המבנה בן ארבע הטבלאות, טבלאות 07065 ו-5וח6ז1 640 מיועדות לקשר בין לקוחות לפריטיס אותס הזמינו. הטבלה 0706760 פוח6סוז כוללת רשומה אחת עבור כל פריט שנכלל בהזמנה נתונה. הטבלה 070615 מקשרת את הפריטיס עס תאריך ההזמנה ועס הלקוח שביצע את ההזמנה. |<ום]. ומוי ₪ | מס הזמנה | תאריך הזמנה | | מס לקוה ‏ | 7 05 0 רשומה:| ו*ן 5 1 ]| 4 |4ו|%4+ מתוך 3 תרשים 24.4: נרמול הנתונים בטבלאות הלקוחות וההזמנות מונע מצבים של מידע מיותר 0 סדנת לימוד 6.0 8\ [<זםן - נ ו 1 650 ו וזו שחסחט תרשים 24.5: נרמול אופטימלי של הטבלאות מאפשר להגיע לרמת יעילות גבוהה ביותר העברת מידע מטבלה אחת לאחרת דורשת ממך ביצוע פעולות מעקב אחר קשרים (05ק₪6!3000501) בין טבלאות. את הפעולות האלו תוכל לבצע בעזרת מפתח (נְ6א) נתוניס. לדוגמה, לטבלה 0875ח65%0 שדה בשס 605%80. גס בטבלה 065וס שדה בשס ס\5%ו6. הטבלאות מקושרות (%60ח11) ביניהן באמצעות שדות אלה. אס התוכנית תידרש לאתר מידע הנוגע ללקוח אשר ביצע הזמנה מסוימת, היא תוכל לאתר את הרשומה הרלוונטית בקלות, תוך שימוש בשדה המשותף 0א6₪05%%. טבלאות צאצא וטבלאות בדיקת מידע ניתן לבצע נרמול נתוניס גס על ידי יצירת טבלאות המכונות טבלאות צאצא. טבלת צאצא (ש!ס8ד 6ווח06) היא טבלה בה כל הפריטיס חולקיס ביניהס נתון משותף כלשהו, המאוחסן בטבלה אחרת. רשימת בני אותה משפחה היא דוגמה אפשרית ופשוטה לטבלת צאצא. בני המשפחה חולקים שס משפחה משותף, כתובת משותפת ומספר טלפון משותף, אך לכל אחד מבני המשפחה יש שס פרטי שונה. הטבלה המכילה את המידע המשותף קרויה טבלת אב (180!6 זחשזהק) ואילו הטבלה המכילה את השמות הפרטייס של בני המשפחה היא טבלת הצאצא. בתרשים 24.6 מוצגות טבלת אב וטבלת הצאצא הקשורה אליה. טבלת בדיקת מידע (6!פ8ד קטאסס1) היא דרך נוספת לאחסון מידע בצורה יעילה, תוך שיפור אמינותן של פונקציות להזנת מידע. טבלת בדיקת מידע משמשת לרוב לאחסון פריטי מידע העוניס על חוק אימות מסוים (לדוגמה, קיצורי שמות עריס או מדינות). כאשר משתמש מזין פריט מידע מסוג שהוגדר עבור טבלת בדיקת המידע, התוכנית מעיינת בטבלה כדי לוודא כי הערך שהוזן על ידי המשתמש אכן כלול בטבלה. טבלאות בדיקת מידע יכולות לשמש גס במסגרת פעולות לנרמול מידע. אס אתה מנהל רשימת נמענים ארוכה, הרי סביר כי רשומות רבות בה תכלנה ערכיס זהים בשדות העיר והמדינה. במקרה זה, תוכל להשתמש בטבלת המיקוד כדי לאחסן עיר ומדינה על-פי מיקוד (זכור שמספר מיקוד מסויס תואם לצמד אחד של עיר ומדינה). כדי שתוכל להשתמש בטבלת המיקוד ביעילות, יהיה עליך לבנות את טבלת הכתובות כך שתכיל רק שדות מיקוד, ללא שמות העיר והמדינה בהן מצויה הכתובת. בעת הונת הנתוניס תוכל להורות לתוכנית לבדוק כל מספר מיקוד שתזין, כדי לוודא שהוא חוקי. פרק 24: יסודות מסד הנתונים | 641 שם משפחה נכתובת מיקוד טלפון 1 פלד דיזינגוף 124 ת"א וו 7 2 וקנין האבות 20 ראשל"צ 5 5 3 קינן ההסתדרות 32 | חיפה 7 0 רשומה:] !+ | 4% | 4 | 4+ מתוך 4 אוו מס משפחה שם פרטי יום-הולדת מו יוסי 1 0 תומר 74 0 דפנה 75 0 מירב 8 2 יקיר 2207 2 נעמה ו מו2 דני 2003 אוב הילה 1079 וב אורית 74 3 ליאת 5ננ 4 רשומה:| !+ 17% [ 4 ]4 + מתוך 11 תרשים 24.6: השימוש בטבלאות אב ובטבלאות צאצא הוא דרך לנרמול נתונים כללים לארגון טבלאות אומנס, לא קיימים כללים מוחלטים המגדירים אילו סוגי נתוניס צריכיס לחיכלל באילו טבלאות, אך להלן מספר קוויס מנחיס אשר מומלצ כי תיישס אותס בעת עיצוב מסדי נתוניס בתוכניותיך: הגדר נושא מסויס עבור כל טבלה והקפד כי כל המידע המאוחסן בטבלה אכן מתייחס לנושא המשותף שהגדרת. אס מספר רשומות באותה טבלה נותרו ריקות במכוון, פצל את הטבלה לשתי טבלאות דומות (וּכור את הדוגמה של נתוני העובדיס והחברים). אם מידע מסוים חוזר על עצמו במספר רשומות, העבר מידע וה לטבלה אחרת והגדר קשר בין הטבלאות. תופעה של שדות אשר חוזרים על עצמם היא אינדיקציה לצורך בטבלת צאצא. לדוגמה, אס הטבלה שלך כוללת שדות כגון 1061, 1:62 ו-1:603, העבר את נתוני הפריטיס אל טבלת צאצא, שתקושר אל טבלת האב. היעזר בטבלאות בדיקת מידע לצורך צמצוס נפח המידע והגברת אמינות הפעולות להזנת הנתוניס. אל תאחסן בטבלאות פריטי מידע שניתן לחשב אותס תוך שימוש בערכיס אחריס הכלולים בטבלה. הערה: זכור שהכללים שהובאו כאן אינם "תורה מסיני", וייתכנו מצבים בהם תידרשנה סטיות מהם. 2 סדנת לימוד 6.0 8\ שיקולי ביצועים אחת הסיבות השכיחות לסטייה מהכללים שפורטו כאן היא כדי לאפשר שיפור בביצועים. לדוגמה, אם לצורך חישוב סך המכירות הכולל שבוצע על ידי איש מכירות מסוים תידרש לסכם אלפי רשומות, כדאי שתכלול בטבלה שדה שיכיל את סך המכירות, ויתעדכן בכל פעם שאותו איש מכירות יבצע מכירה. הוספת שדה כזה תמנע צורך לבצע חישובים רבים בכל פעם שיש להציג דוח. זו פעולה אשר תאיץ את יצירת הדוח באופן ניכר. אך עליך לוודא שהעדכון שדה סך המכירות יתבצע באופן עקבי ואמין. הצורך בפתיחת מספר גדול של טבלאות בו-זמנית היא סיבה נוספת לסטייה מהכללים שפורטו כאן. עקב העובדה שלכל טבלה נדרשים זיכרון ומשאבי מערכת יקרים, מצב בו הרבה טבלאות תהינה פתוחות ברגע נתון, עלול להאט מאוד את פעולת היישום שלך. סטייה מהכללים אלה תגרום לשתי תופעות נלוות. ראשית, הגדלת מסד הנתונים כתוצאה מצורך באחסון נתונים מיותרים. שנית, יייתכן מצב בו רשומות מסוימות תכלולנה נתונים לא אמינים, משום ששינוי רשומה מסוימת לא יוביל בהכרח לעדכון כל הרשומות בהן כלול הנתון ששונה. שיפור ביצועי היישום כרוך בדרך כלל בוויתור על יעילות אחסון. עבור כל מסד נתונים שתעצב, תידרש למצוא מהו האיזון האופטימלי בין ביצועים ויעילות אחסון. שימוש באינדקסים בדרך כלל, מאוחסנות הרשומות במסד הנתוניס על פי סדר הזנתן. סדר זה מכונה סדר פיסי (ז0706 |חּ6ו5שחק) או סדר טבעל* (06ז0 |הזנסאא) של הרשומות. אולס, במקריס רביס תרצה לעיין בנתוניס בסדר שונה מסדר הזנתסם. כלומר, תרצה להגדיר עבורס סדר לוגי (ז06ז0 |100163). תהליך איתור רשומה כלשהי בטבלה המסודרת בסדר פיסי עלול לגזול זמן רב. אינדקס (א06ח1) מקל על חיפוש נתוניס בטבלה. אינדקס הוא טבלה מיוחדת של המערכת המכילה ערך מפתח (שנגזר לרוב מערך שדה מסויס או מספר שדות) עבור כל רשומה הכלולה בטבלה. האינדקס עצמו מאוחסן בסדר לוגי מיוחד ומכיל גם מצביעיס המראים למנגנון מסד הנתוניס היכן ממוקמת הרשומה הפיסית. אינדקס כזה מזכיר במידה מסוימת אינדקס של ספר. אינדקס של ספר מאפשר לך לאתר מילים ונושאים, מפני שהוא כולל מצביעיס (מספרי עמודים), אשר מורים לך היכן תוכל למצוא את המידע הרלוונטי. מדוע כדאי להשתמש באינדקס מבנה האינדקס מאפשר להיעזר בו לביצוע פעולות מהירות לאיתור ואחזור מידע. אס הגדרת אינדקס אלפביתי עבור טבלה המכילה שמות, תוכל לאחזר רשומה המכילה שס מסויס באמצעות חיפוש באינדקס. כדי להבין את התועלת של שימוש באינדקס, נסה לתאר לעצמך ספר טלפונים, שהמנוייס רשומים בו על-פי הסדר בו התחברו לחברת הטלפוניס. אס הו ספר טלפונים של עיר גדולה, איתור מספר מסויס עלול לדרוש ומן רב, מפני שתידרש לעיין בכל שורה ושורה בספר. פרק 24: יסודות מסד הנתונים | 643 לטבלה מסוימת עשוייס להיות מקושריס כמה אינדקסים, אשר יקושרו אליה כדי שניתן יהיה לארגן את המידע הכלול בה במספר אופנים. לדוגמה, את רשימת העובדיס של החברה תוכל למיין על-פי שמות משפחה של העובדים, על-פי גיל העובדים, על-פי ותק בחברה או על-פי דרגות שכר. כל אינדקס יקל על חיפוש אותה סדרת נתונים. מ אזהרה: האפשרות לחפש מידע בחתכים שונים עשויה להיות מאוד רצויה עבורך, אך ניהול מספר אינדקסים במקביל עלול לפגום ברמת הביצועים, שכן כל שינוי החל בנתונים מחייב עדכון של כל אינדקס בנפרד. שוב תידרש לבצע ניתוח עלות-תועלת של פעולה באופנים שונים. הערה: תוכל להציג נתונים בטבלה בסדר שונה גם על ידי מיון שלהם, או על ידי שימוש במשפט 501: צם הפסחס. מנוע 501 אומנם אינו משתמש באינדקסים באופן ישיר, אך קיום אינדקסים מאיץ את הביצוע פעולות המיון אשר מבוצעות תוך שימוש במשפט צם הפכחס. מידע נוסף על נושא זה תוכל למצוא בנספח 3 תקציר פקודות 501. ראה: "הגדרת תנאי המיון", נספח 3. ביטויי מפתח יחיד האינדקס הנפו ביותר הוא אינדקס מפתח יחיד (א06ח1 ש66א 6וחַחו5), אשר מתבסס על שדה יחיד בטבלה. דוגמאות אינדקסיס כאלה הס מספר תעודת זהות, מיקוד, מספר עובד או שס משפחה. אס כלולות בטבלה מספר רשומות המכילות ערך והה בשדה האינדקס, הן תוצגנה בסדר הפיסי שלהן בתצוגה שנבנתה על בסיס האינדקס. בתרשים 24.7 מוצגת הטבלה 865 פעם, בצורתה המקורית, על פי הסדר הפיסי שלה ופעס כשהיא ממוינת על פי שדה 6וחפּא 85% 1. [=זםן ו ₪ּ [< וט ו 5 שם פרטי שם משפחה שם פרטי שם משפחה ד |שקב כהן ד-| |רית ולדמן > |משה גולדשטיין מ דני באום מאיר קינן > |-פנה זרגרי ב קיר וקנין = |הילה מ כאלי סי פלד | ₪1 פלד = |תומר בלוך שקב כהן 7 דפנה זרגרי הס -- יקיר וקנין הביס ₪ הלוגי : >< |מירב רובינשטיין ו = |לאת גפן |נעמה זהבי |מאץ 7 | דבי באום = |מירב רובינשטיין | | הילה במיכאלי - |משה גולדשטיין = |אורית ולרמן |נעמה זהבי ---| |"את גכּן --| | תומר בלוך 4 + רשומה:]1 | + 14 + |צו 4+ מתון : רשמה:] א ] 14% ]| + 4144 + מתוךו שם פרטי לא מסודר תרשים 24.7: סדר פיסי וסדר לוגי עשויים להיות שונים. סדר לוגי תלוי באינדקס 4 סדנת לימוד 6.0 8\ ביטויי מפתחות מרובים אינדקסיס המבוססים על מפתח יחיד מאפשריס אומנס להציג מידע כשהוא מסודר בסדר מסויס, אך לעיתיס נדרש למיין את מידע יותר בקפדנות. זאת ניתן לעשות על ידי שימוש באינדקס מרובה מפתחות (א06ח1 /6א-6!מטוטוא). שס האינדקס מעיד על כך שמדובר באינדקס המבוסס על מספר שדות המאוחסנים בטבלה. השימוש בשס משפחה ובשס פרטי למיון רשימות אנשיס הוא דוגמה שכיחה לשימוש באינדקס מרובה מפתחות. בתרשיס 24.8 תוכל לראות כיצד השימוש בשס פרטי כבמפתח מיון, לצד שס משפחה, ישנה את הסדר בו תוצגנה הרשומות בטבלה. בדומה לאינדקסיס המבוססיס על מפתח יחיד, גם באינדקסים מרובי מפתחות, רשומות אשר ערכי האינדקסיס שלהן זהים, תןצגנה בסדר הפיסי של שם פרטי שם משפחה ך-| |אקב כהן > |משה גולדשטיין = |מאיר קינן קיר וקבין | פלד = |תומר בלוך -- > |דפנה זרגרי ו || מירב רובינשטיין > |נעמה זהבי ₪ דבי באום = |הילה ממיכוגלי = |אורית ולרמן = |לאת גכּן 4 14 [ + | 4+ מ שם ב3רטי לא מסודר הן (כלומר סדר הזנתן לתוכנית). שם משפחה - | |ארית ולדמן מו דני באום > |-פנה זרגרי |הילה מ כאלי ₪ יוסי פלד שקב כהן ₪ יקיר וקגין = |לאת גפן |מאץ ו = |מירב רובינשטיין > |משה גולדשטיין |נעמה זהבי ---| |תומר בלוך ₪ רשומה:| ו | 1% ]ו + |14]+ + מתורן תרשים 24.8: שימוש באינדקס מרובה מפתחות מעדן את הסדר הלוגי של הרשומות שם פרטי שם משפחה באום בלוןך רלור בליך גולדשטיין גפן ו?דמן ודרין זהבי זרגרי כה| מיכאלי פלד קנן רבינשטיין |< וםן. יו | סידור על פי השדה הלאנכון עליל לגרום לתוצאות לא -צזיות רשומה:| ו* | * 16 | + | 14]:> ניתוך | תרשים 24.9: הגדרה לא נכונה של סדר השדות באינדקס, תוביל לתוצאות בלתי רצויות פרק 24: יסודות מסד הנתונים 5 מ אזהרה: ייתכן שהדבר ייראה לך מובן מאליו, אך חשוב לחזור ולהזכיר שהסדר בו תגדיר את השדות באינדקס מרובה מפתחות ישפיע השפעה מכרעת על הסדר בו תוצגנה הרשומות. לדוגמה, מיון טבלה לפי שדה פוחהּא 5%זו₪ תחילה, אחר לפי שדה 6חג\ 135% יוביל לתוצאות שונות ממיון אותה טבלה לפי שדה פוח8\! 185% תחילה, ואחר לפי שדה 6חח8א זפזו]. תרשים 24.9 מציג את התוצאות (הבלתי רצויות) של מיון הטבלה שהוצגה בתרשים 24,7 על פי אינדקס 6וח8\ 6/135%וח8 )5זו=. שימוש בשאילתות בעת נרמול מידע, נהוג לאחסן פריטי מידע הקשוריס גה לוה בטבלאות שונות. אך כאשר אתה נדרש לגשת למידע, אתה מעוניין לראות מידע המאוחסן בטבלאות שונות כאשר הוא מוצג במקוס אחד. כדי שהדבר יהיה אפשרי, עליך להרכיב מערך רשומות (₪66070560) שיכלול בתוכו מידע הכלול בטבלאות שונות. אתה יכול ליצור מערך רשומות מטבלאות שונות על ידי שימוש במשפט 501 שבו יצוינו השדות הרצוייס לך, מיקוס אותס שדות והקשריס הקיימיס בין הטבלאות. דרך אחת בה ניתן להשתמש במשפט 501 היא על ידי שילובו בשיטה ₪6607056%ח6ק0 של האובייקט ספּספּזהס, אשר יוצרת את מערך הרשומות. אך תוכל לאחסן את משפט ‏ 501 גס כשאילתה (עופטס) במסגרת מסד הנתונים עצמו. לשימוש בשאילתות מאוחסנות יש מספר יתרונות: > האחסון במסד הנתוניס מקל על השימוש במשפט במספר מקומות בתוכנית שלך, או לחילופין בתוכניות שונות. > קל יותר לבצע שינוייס במשפט 501 המאוחסן במקוס אחד. + שאילתות מאוחסנות פועלות מהר יותר משאילתות הכלולות בקוד התוכנית. + אחסון השאילתה במסגרת מסד הנתוניס מקל על התאמת היישום שלך לפעולה בסביבת שרת/לקות (זפ/ז56/+חפון6). ראה: "תקציר פקודות 501", נספח 3. 6 סדנת לימוד 6.0 8\ יישום התכנון הצעד הראשון במימוש מסד הנתוניס שתכננת הוא יצירת מסד הנתוניס עצמו. אחד מהשיקוליס אליהס אתה נידרש להתייחס הוא סוג מסד הנתוניס בו תשתמש. סביבת מסד הנתוניס הטבעית של 88566 |508ו/\ היא 6חופַחם 8680856 26% 0פסזסווא. מסדי נתוניס מבוססי ‏ 36 מכוניסם במקרים רבים, מסדי נתונים מבוססי 400655, ואת משוס שתוכנת 406655 לניהול מסדי נתוניס מבוססת על מנגנון 36%. ב- 8856 |1508/\ מוצעות לך ארבע שיטות שונות ליצירת מסדי נתוניס מבוססי 265. בעת בניית היישוס שלך תוכל לבחור אחת מהן: + יצירת מסד הנתונים על ידי תכנות, תוך שימוש באובייקטי גישה לנתונים - סאפ (20[6609) 460655 28%8). > שימוש ביישוס זסְהַהַח3ּ\] 2868 |908ו/\ המסופק כחלק מ- 8856 |1508/\. + שימוש בתוכנת 06055. > שימוש בתוכנות לניהול מסדי נתוניס מתוצרת יצרניס אחריס. יצירת מסד נתוניס באמצעות תכנות, תוך שימוש בכלי 02[666 466655 ₪868 מעניקה לתוכנית שלך שליטה מלאה על אופן היווצרותו ומבנהו של מסד הנתוניס. נושא וה יידון בפרק 26 שימוש באובייקטי גישה לנתונים - סהפ. שאר השיטות ליצירת מסדי נתוניס מפורטות להלן ותידונה בסעיפיס הבאיס : <* וסהַהּה3!] 28% |1508\. השימוש בתוספת (ח1 00): זסהַהַחבּ!) הזה |508/\, מאפשר לך ליצור מסדי נתוניסם וליצור, לשנות ולמחוק טבלאות, אינדקסיס וקשריס בין טבלאות המוגדריס במסגרת מסדי נתונים. ** 266655 11070506%/. 460055 היא ככל הנראה הכלי השכיח ביותר ליצירת מסדי נתוניס מבוססי 26%. יתרונה של 460055 הוא בכך שהיא מאפשרת לך להגדיר אינדקסיס וקשרים בין טבלאות בשיטת גרור ושחרר (קסזכ 6חה חזס). + תוכנות לניהול מסדי נתונים מתוצרת יצרנים אחרים. כיוס מוצעות תוכנות רבות לניהול מסדי נתוניס, מסחריות או חופשיות, מבוססות 26, או מבוססות נועיס אחרים. חלק מהן ייעודיות ואחרות רב-תכליתיות, כגון זַסְחַבּח13! הזכ |1508/\. פרק 24: יסודות מסד הנתונים | 647 זסהּחבּו! בּזבּכ ובּטפו\ היישוס זִסהַבּח8ּ] 818 |1508/, אשר מסופק יחד עס 8856 |08פו/, מציע לך כלי אינטראקטיבי ליצירה ושינוי מסדי נתונים. את היישוס ניתן להפעיל על ידי בחירה בפקודה זספַבּח3 בּז33כ [ב3ּ150/\ מתפריט 5ח₪006-1 של 28516 |ה8טפו/ש. הערה: היישום זסְסָ8ח3! 88 וה50ו/\ מסוגל לנהל מסדי נתונים מהסוגים הבאים: 460655 (260), 0885₪, סזקאס=, אססַּזהק, 0086 וקבצי טקסט. אך במסגרת יישומים הנכתבים ב- 6 |8טפו/, הוא משמש לרוב לניהול מסדי נתונים מבוססי (260) 066655. טיפ: סחוי 2868 |8ש5ו הוא גם אחד מיישומי הדוגמה של 8856 |הטפוצ. עיון בפרויקט זה יילמד אותך דברים רבים על יצירת מסדי נתונים ב- 8856 |1508/. יצירת קובץ מסד הנתונים יצירת קוב מסד הנתונים (18= 8%80856כ) היא הצעד הראשון בתהליך יצירת מסד הנתוניס. קובצ מסד הנתוניס יהווה את המסגרת הפיסית שבתחומה תבוצענה שאר פעולות הבניה. כדי ליצור קוב\ מסד נתוניס באמצעות זססְּח3ּ\!] 0818 |1508/, בצע את הפעולות הבאות: 1. הפעל את הפקודה ש6א מתפריט 6וו=. הפקודה תציג לפניך תפריט משנה ממנו תוכל לבחור את סוג הקובצ שתיצור. 2 לצורך דוגמה זו, צור מסד נתונים מסוג (26%) 860655, על ידי בחירת האפשרות 5 )11670504 מהתפריט. פעולה זו תגרוס לפתיחת תפריט משנה המאפשר לך לבחור את גרסת :36 בה ישתמש מסד הנתונים שתיצור. 3 אס אתה מתכוון לחלוק נתוניס עס משתמשי א.3 פאוססחו/\, בחר בגירסה 2.0, אחרת בחר בגירסה 7.0. תרשיס 24.10 מציג את התפריט הראשי ותפריטי המשנה בהס תשתמש כדי ליצור מסד נתוניס. לאחר בחירת סוג מסד הנתוניס שלך, תוצג בפניך תיבת הדו-שיח 56|66% 86 0 03+32856 266655 11670501%/. תיבה דו-שיח זו מאפשרת לך לבחור שס ומיקוס (תיקיית אחסון) עבור מסד הנתונים. 4 הגדר שס עבור מסד הנתוניס ובחר את התיקיה בה אתה מעוניין לאחסנו. לאחר מכן, לח על לחצן 586. פעולה זו תעביר אותך למצב עיצוב (₪006 ח6519), המתואר בתרשים 24.11. 8 סדנת לימוד 6.0 8\ ו | + ...0818856 חס ם. ...08 2.0 חסופזס/\ 58 וא 7.0 הסופזס/\ , 8 ב + יא סק זסקוח| : ל ו וו 5 5 ד ו , ...408 חס ...08 זוהקסת. טוח בהואו 3021 םש \ טוםגו! 5 ופ +ס פסיזסו 55| ] הזב זסס וק \:0 1. א תרשים 24.10: התפריטים השונים מאפשרים לבחור סוג וגירסה עבור מסד הנתונים שלך זה חי] 2868 |אטפו\ מציג את המידע הכלול במסד הנתוניס במבנה עץ. תצוגה זו מאפשרת לצפות בנוחות בטבלאות ושאילתות הכלולות במסד הנתוניס. צורה זו של הצגת המידע מאפשרת גם לצפות בנתוניס ברמת פירוט גבוהה יותר, תוך הצגת שדות ואינדקסיס. אס תרצה, תוכל להציג עד לרמת הפירוט הנמוכה ביותר כדי לראות מאפייני שדה. [<]םן- | וח 50010090 | הפו 5011 סו .1165 הוהזטסז\ :הוה 0 גו שח 6 שוסטחוצ עו 6 5 5 | 8 ₪ ₪ | ₪ פה בשו חס / 0 חספ | יי תרשים 24.11: חלון 88858ז₪8 של היישום זססַבּח18! הזכ |ש5\ מאפשר לך גישה אל פונקציות לעיצוב טבלאות, שדות ואינדקסים הוספת טבלה חדשה לאחר יצירת מסד הנתוניס, תוכל ליצור במסגרתו טבלאות. ליצירת טבלה חדשה, לתצ לחיצה ימנית על נקודה כלשהי בחלון 58%89856 ובחר מהתפריט שיוצג את הפקודה וח1%6 עשו6א, כדי להציג את תיבת הדו-שיח 55606 16פב3ד אשר מוצגת בתרשיס 2. תיבת דו-שיח זו תציג בפניך מידע אודות הטבלה עצמה וכן אודות השדות והאינדקסיס המוגדריס במסגרתה. תיבת הדו-שיח כוללת גס לחצניס המאפשריס לך להוסיף או לגרוע שדות ואינדקסים. כדי להוסיף שדה לטבלה, לח על הלחצן 2400 . פעולה זו תגרוס להצגת תיבת הדו-שיח 16!4= 4066 המוצגת בתרשים 24.13. פרק 24: יסודות מסד הנתונים | 649 |< | שזטז)סטזו5 6!פב3 ד :זב סופד מו וס :עד 4 א\- [1--| ומק הסנא ה 443)] : טחוס הובחט וסזס2 ויוסוה- =[ סוטטסה =] ----כ +חספו5סלוםחום זט ה 00 :5 זחסו 8103" .דוו :חס 103 ] וס | וו ששסחסה 8 ו חך הטופזס -] שטףוחנו. -] זו -ן זמ ] ופה -ן --0000--- הר אשש6 ה 16% 8 5 6ףם בוונום תרשים 24.12: תיבת הדו-שיח 6זנ6₪ט57 6|פ3ד מאפשרת לך להגדיר שם עבור טבלה א סו] 2/00 חת 35 הזכ :חב ₪א ₪₪הר :6% דחססבּבו| שי :שד 6 3 | ; ס|ט,חססבבו!ב בי .ףוה 50 :זט את 7 | שוחססבוזב/\ 6 חלסחט.\סזס2ואס||ם . שי | 8 הטספה -] תרשים 24.13: בתיבת הדו-שיח 66 006 תוכל להגדיר מאפייני שדות בטבלה כדי להמשיך בבניית מסד הנתוניס לדוגמה שלנו, הגדר תחילה שס עבור הטבלה בתיבת הטקסט פוחבּא שפד ולאחר מכן בצע את הפעולות הבאות עבור כל שדה שתרצה להוסיף: 4 2 3 4 5 לח על הלחצן ₪16|6 466 בתיבת הדו-שיח 5665076 6|טבּד. בחר את סוג הנתון שיאוחסן בשדה מהרשימה הנפתחת 6קץד. הגדר את גודל השדה (אס תידרש לעשות זאת). הגדר פרמטריס אופציונליים כדוגמת חוקי אימות. לחץ על הלחצן 0 כדי לצרף את השדה לטבלה. לאחר שתוסיף את כל השדות הדרושיס לטבלה שלך, לחץ על הלחצן 61056 בתיבת הדו-שיח 16!6= 66, כדי לשוב אל תיבת הדו-שיח 56506 6!טבּד. 0 סדנת לימוד 6.0 8\ אם תרצה לגרוע שדה מהטבלה, בחר את שס השדה מרשימת השדות של תיבת הדו-שיח ולחץ על הלחצן 16|6=₪ 6עסוחסא. כאשר תהיה מרוצה מהשדות הכלוליס בטבלה, לח על הלחצן 6פַבּד שד שווט8, כדי ליצור את הטבלה. שינוי שדות לאחר שתגדיר שדות בטבלה, תוכל לשנות את מאפייניהס באמצעות תיבת הדו-שיח 56 6!פ3ד הנגישה בלתיצה ימנית על שדה ובחירת הפקודה ח698ם מהתפריט המקוצר שיופיע. לשינוי המאפייניס, בחר את שס השדה מרשימת השדות. מאפייני השדה, אותס תוכל לשנות, יוצגו בתיבת הדו-שיח בצורת טקסט פעלל (סְסוסַּחם) או תיבות סימון פעילות. שאר המאפייניס יוצגו בצורת פקדים מנוטרליס. טיפ: את הגדרות מאפייני השדות ניתן לערוך גם מהחלון 8182856 של מז |8טפו\ זסְחָהּחהויז. תידרש להרחיב את תצוגת מסד הנתונים, כך שמאפייני השדות יוצגו, וללחוץ לחיצה ימנית על המאפיין שאת ההגדרה שלו אתה מעוניין לשנות. תוכל לבחור את הפקודה 0₪%= מהתפריט שיוצג כדי לשנות את הגדרת המאפיין. הערה: ב- 8856 |1508/ לא ניתן לערוך או למחוק שדה שהוא חלק מאינדקס או מקשר. אם תרצה למחוק שדה כזה, יהיה עליך קודם למחוק את האינדקס או את הקשר ורק אחר כך תוכל לבצע שינויים בשדה. הוספת אינדקס לטבלה בתיבת הדו-שית 5006076 7806 תוכל גס להוסיף, לשנות ולגרוע אינדקסיס המוגדריס בטבלה. כל האינדקסים המוגדריס מוצגים בתיבת הרשימה 115% אסח1, המוצגת בחלק התחתון של תיבת הדו-שיח, כמתואר בתרשים 24.14. |<) שוטוסטזו5 ופה ד 0 בד בו :בו ו בו - נ ב - תנונות 7 ₪1 הג ה : 6 סחוי לשנות הזח חש וסטוה ש] 5 סה -ן || :;חסטופס|ב חס 7000000040] ) אאאדתסטפטומט -0000707070700] 0 =שגמחסטבשמל :זט | | סוס שסחסם ו חמ [ הו 1 106% ו מ קן ו לן א6 חק ות 0 ל אינדקטים ב ו 6 50606 >חוום 6 תרשים 24.14: ניתן לערוך ולגרוע אינדקסים על ידי תיבת הדו-שיח 6זט6ט50 6|פפד פרק 24: יסודות מסד הנתונים | 651 להוספת אינדקס חדש, לח על הלחצן א06ח1 800. תוצג תיבת הדו-שיח 06%ח1 400 המוצגת בתרשים 24.15. בתיבה זו, הגדר תחילה שס עבור האינדקס ואחר בחר את השדות שייכללו באינדקס, על ידי לחיצה עליהם בתיבה 11% ₪6!0. כל שדה שתלתחצ עליו יצורף לרשימת השדות הכלולים באינדקס, שהשדות יוצגו בה לפי הסדר בו נבחרו. כברירת מחדל, כל השדות ממויניס בסדר עולה. לשינוי סדר המיון של שדה לסדר יורד, הוסף סימן מינוס (-) לפני שס השדה ברשימת השדות הכלוליס באינדקס. |<. 5 0 אפשח! ₪0 ו :שחזב ו עזב וז ש] [ ן : -05|סן ] 06=60ח! "ו י 5 660 5 זסרום! ‏ ] = | :וו 6|סב |ו3/8 תרשים 24.15: תיבת הדו-שיח א06ח1 00 מהווה עזר ויזואלי להגדרת אינדקסים לאחר שהגדרת את השדות הנכללים באינדקס, תוכל להגדיר את האינדקס כאינדקט ייחודי (06%ח1 6טשוח) או כאינדקס ראש* (א06ח1 ץזהּחוזק) - אך ואת רק אס טרס הוגדר אינדקס ראשי עבור אותה טבלה. פעולה זו מתבצעת על ידי בחירת תיבת הסימון המתאימה מתוך תיבת הדו-שיח. כאשר תסיים להגדיר את האינדקס על-פי הדרישות שלך, שמור אותו על ידי לחיצה על הלחצן 0%. האינדקס שיצרת וה עתה יתווסף לרשימת האינדקסים המוצגת בתיבת הדו-שית 6ז6₪ט50 6!פפד. כל שיהיה עליך לעשות כדי לגרוע אינדקס הוא לבחור את הפריט שלו ברשימת האינדקסיס וללחוץ על הלחצן 106% 6עסוח6א. חזרה לחלון העיצוב של 83516 וַבּ150\ סגירת החלון של זְסְפַהַח3ּ!! 868 [ב150/\ או לחילופין בחירה בפקודה פואם מתפריט 16 תחזרנה אותך אל חלון העיצוב של 88566 |508ו/ (ניתן גם לעבור הלוך ושוב בין זסחָהחגּוי] זה |1508\ לבין סביבת הפיתוח של 8856 |1508/). משוס ש-9ז8כ |88ו\ זחוא הוא יישוס שלם, ייתכן שתרצה להדר אותו ולהוסיף קיצור דרך לקוב> 5א₪ שלו בשולחן העבודה או לתפריט התחלה. פעולה זו תחסוך את הצורך לטעון את 6 |508ו/\ בכל פעסם שתרצה להשתמש ב-זסחָּח3ּ!! 88 |8טפו/\. 2 סדנת לימוד 6.0 8\ הצגה ושינוי מבני טבלאות לאחר שיצרת טבלה, תוכל להציג את המבנה שלה ואף לשנות פרטיס מסוימיס במבנה. לחץ לחיצה ימנית על שס הטבלה בחלון 08%88856 ובחר את הפקודה חַו065 מהתפריט שיוצג לפניך. תראה כי על המסך מופיעה תיבת הדו-שיח 50606 6!ספד, עמה עבדת בסעיפיס הקודמים. תיבה וו תאפשר לך לעיין במבני השדות והאינדקסים אשר מרכיבים את הטבלה. לאחר יצירת הטבלה, אין אפשרות לשנות את סוג המידע המאוחסן בשדה או את גודל השדה מתוך ז806ח18! 0808 |568ו/. אולס עדיין מצויה בידך היכולת להוסיף, לגרוע או לשנות שדות בטבלה. תוכל גס לשנות מאפייניס מסוימיס של שדות. בדומה לשדות, לא תוכל לשנות גסם את מבנה האינדקסיס המוגדריס בטבלה מתוך 08088 |808ו\ זסחהח!, אך תוכל להוסיף, לגרוע, ולשנות שמות אינדקסיס. שינוי או מחיקת טבלאות לחיצה ימנית על שס טבלה בחלון ₪8098856 מאפשרת לשנות שס או למחוק את הטבלה. בחירה בפקודה 8₪06ח₪6 מהתפריט המקוצר תגרוס להצגת שס הטבלה בתיבת עריכה. תוכל פשוט להקליד את השס החדש בתיבה ולהקיש זסזחם. אס תחליט שלא לשנות את שס, הקש 556. בחירה בפקודה 06!606 תגרום להצגת תיבת דו-שיח שבה תתבקש לאשר את מחיקת הטבלה. לחיצה על 65+, תגרוס למחיקת הטבלה ממסד הנתונים. פעולה זו היא בלתי הפיכה. העתקת טבלה אס תרצה ליצור עותק של טבלה, בחר את הפקודה 6זט66ט57 ץ600 מהתפריט המקוצר שיוצג לפניך בעקבות לחיצה ימנית על שס הטבלה בחלון פפפּפ8ּאְ8. בחר את שס הטבלה שברצונך להעתיק מתיבת הדו-שיח 576006 שְקְ00. שס מסד הנתוניס הפעיל יוצג בתיבה 28182856 06%ז3ד. אס תרצה להעתיק את הטבלה אל מסד נתוניס אחר יהיה עליך להקליד את שמו בתיבה זו. כברירת מחדל, תיבת הסימון ץ0ְ60 65 מסומנת. אם אינך מעונייו שהטבלה החדשה תכיל אותס אינדקסים שהגדרת עבור הטבלה המקורית, תוכל לבטל את סימון התיבה. תיבת הסימון 888 צְקְ60, שכברירת מחדל אינה מסומנת, מאפשרת לך להעתיק את הרשומות הכלולות בטבלה אל הטבלה החדשה. אס תותיר את תיבת הסימון הזו כשהיא בלתי מסומנת, לטבלה החדשה יהיה מבנה זהה לזה של הטבלה המקורית אך היא לא תכיל נתוניס כלשהס. לאחר שתבחר את האפשרויות הרצויות לך, לח על 0% כדי ליצור את הטבלה החדשה. פרק 24: יסודות מסד הנתונים | 653 יצירת מסד נתונים בעזרת כלים אחרים סחי 818 [508ו/ אינו כמובן האמצעי היחיד ליצירת מסדי נתוניס. הוא בסך הכל יישוס לדוגמה המסופק יחד עס 8856 |5088/ אשר מבצע עבורך פעולה מועילה מאוד. אך כיוס מוצעיס לך כליס נוספיס רביס המאפשרים לך ולמשתמשי היישומיס שלך ליצור ולנהל מסדי נתוניס. שימוש ב-₪466655 5 1670506)6%0%] היא אחת האפשרויות המוצעות לך ככלי ליצירת מסדי נתוניס מבוססי 26%. 866655 מהווה ממשק ויוואלי נוח ליצירת טבלאות, אינדקסים, שאילתות וקשריס בין טבלאות. אך זוהי אפשרות העומדת לרשותך רק אס רכשת עותק של התוכנה. 8856 |1508\ מסוגלת לעבוד עס כל גרסאות 160655, אך אס תרצה לנצל יכולות של ניהול מסדי נתונים בני 32 סיביות, תידרש להשתמש ב-95 8066055 או בגירסה חדישה יותר. תוכנות לעיצוב מסדי נתונים מתוצרת יצרנים אחרים בנוסף ל-זסְטָּח3ּ1!] 2808 |508!/ ו-460055 גס יצרניס רביס אחריס מציעיס תוכנות אשר תאפשרנה ליצור ולנהל מסדי נתונים מבוססי -36. חלק מתוכנות אלו מציע יכולות מתקדמות בתחומי עיצוב המידע. יכולות אלו תסייענה לך לקבוע אילו נתוניס ייכללו באילו טבלאות ולהגדיר את מערכת הקשריס בין הטבלאות. לאחר שתסיים לעצב את מסד הנתונים, התוכנה תחולל את המסד עבורך באופן אוטומטי. אך כדאי להיות והיר במה שקשור לבחירת תוכנות מתוצרת יצרנים אחרים. חלקן מיועדות למטרות ממוקדות מאוד ואילו אחרות רב-גוניות יותר. 460655 חזקה יותר מרוב התוכנות הרב-תכליתיות לניהול מסדי נתוניס המוצעות על ידי יצרניס אחרים, אך אס יש לך צורך ממוקד אשר מטופל בצורה טובה יותר על ידי תוכנה אחרת, אל תפסול אותה על הסף. בטרס תרכוש כלי, כדאי לך לבחור כלי שהמפיצ שלו יאפשר לך לבחון אותו בטרס תרכוש אותו. יתרונות התוכנה הייעודית בפרק זה למדת כי זִסִחַח13 0818 |1508/\ ו-₪06655 יכולים ליצור, לשנות ולמלא מסדי נתוניס בנתוניס. לכן, ייתכן שתשאל את עצמך, יימדוע בכלל כדאי לי להשקיע מאמצ בתכנות היישוס שליייי התשובה לשאלה זו היא שבמקרים רביס כלל לא תידרש להשקיע מאמצ כזה. אס יש לך שליטה ישירה על מסד הנתוניס (כלומר אס אתה המשתמש היחיד של המסד או שאתה יכול לגשת אליו בכל עת), ייתכן שכלל לא תידרש להשתמש בפקודות כדי לבצע בו שינוייס. אולס, אס היישוס שלך מופצ למשתמשים רבים, במסגרת ארגון מסוים או בתפוצה רחבה יותר - הרי שהשימוש בתוכנית לניהול מסד הנתוניס מציע לך מספר יתרונות. אחד היתרונות הוא בתחוס אתחול ראשוני של מסד הנתוניס. אס השגרות לאתחול 4 סדנת לימוד 6.0 8\ מסד הנתונים הן חלק מהתוכנית, לא תידרש לכלול עותק ריק של מסד הנתונים במסגרת עותקי ההפצה של התוכנית. השמטת העותק הריק של מסד הנתוניס תסייע לצמצס את מספר הדיסקטים או התקליטורים שיידרשו לצורך הפצת חיישום, פעולה אשר תקטין את הסיכוי להשמטת קבצים חיוניים מעותקי ההפצה. המשתמש גם עלול למחוק בטעות את קוב מסד הנתונים, מצב אשר יאלצ אותו ליצור קוב\ חדש. יתרון נוסף של שימוש בתוכנית, קשור בתחוס הפצת עדכונים עבור היישום. הכללת השינוייס בתוכנית תאפשר למשתמש פשוט להריץ את התוכנית כדי לבצע את העדכוניס הדרושיס בתוכנה או במבנה מסד הנתונים. המשתמש לא יידרש לטעון נתוניסם אל תוך קוב ריק. ביצוע העדכון באתר הלקות יאפשר לך גם לעקוב אחר שינוייס במבנה מסד הנתונים שבוצעו על ידי משתמשי קצה. שיקוליס הקשוריס בביצועיס הס סיבה נוספת המעודדת הכללת פקודות ליצירת מסד הנתוניס ולתחזוקתו במסגרת התוכנית. מבחינת ביצועים, רצוי לעיתיס ליצור טבלה זמנית לשס האצת פעולת התוכנית או לשס אחסון תוצאות ביניים. טבלה אשר תימחק עס סיום פעולת התוכנית. ייתכן גם שתרצה ליצור אינדקס זמני, לשס הגדרת סוג מיון מסויס או לשס האצת פעולות חיפוש. מכאן... בפרק וה למדת אודות עיצוב ויצירה של מסדי נתוניס שישמשו במסגרת יישומיס. אולס, כדי שיתאפשר לך להשתמש במסד הנתונים, תידרש לכתוב יישום לגישה אל מסד הנתונים (הסו63ו!קק\ 66655( ספהַּהְזבכ). בנושא זה נעסוק בפרקיס הבאים. מידע נוסף תוכל למצוא בפרקיס המפורטים להלן: > מידע אודות השימוש בכלי |סשחס6 0808 (פקד הנתונים) של 8856 |1508/ בשילוב עס פקדים אחרים, לשס יצירה מהירה של יישומים שיעבדו עס מסדי נתונים, תוכל למצוא בפרק 25 פקד הנתונים ופקדי איגוד נתונים. מידע על שיטות תכנות מתקדמות יותר תוכל למצוא בפרק 26 שימוש באובייקטי גישה לנתונים (40), ובפרק 27 גישה לאובייקטי נתונים מרוחקים (סספא). > דיון בשיטה החדישה ביותר לעבודה עס מסדי נתונים, המוצעת כיום על ידי 0% יובא בפרק 28 גישה לאובייקטי נתונים באמצעות פקדי אס6עוזס. פרק 24: יסודות מסד הנתונים | 655 25 פקד הנתונים ופקדי איגוד נתונים פרק 25: פקד הנתונים ופקדי איגוד נתונים | 657 6 |08ו\ מיועדת לאפשר למפתחים ליצור יישומיס המיועדיס לסביבת פצוססחו/ו, במהירות ובקלות. פשטות השימוש בסביבת הפיתוח תקפה גם בעת פיתוח יישומיס לניהול מסדי נתונים. אס יש לך מסד נתונים קייס שאתה מעוניין להשתמש בו, 6 | מאפשרת לך לפתח יישוס שלם לניהול מידע, תוך השקעה מינימלית בתכנות. עליך רק לשמוט מספר פקדים על הטופס ולהגדיר מאפיינים אחדיס עבורס. 6 |טפו/\ מקלה עליך את הפיתוח גס בכך שהיא יוצרת עבורך טפסי הזנת מידע, באופן אוטומטי. מרכיבי סביבת הפיתוח, המאפשרים לך ליהנות מיכולות אלו, הס פקד הנתונים (9ז₪ס (₪0ח60) ופקדי איגוד נתונים (%0|5ח60 6ַחטסם-ּאהכ). כליס אלה מאפשרים לך ליצור מיגוון רחב של יישומיס. אך בטרס תפתח צפיות גבוהות מדי, עליך לדעת שככל שהיישומיס שתפתח יהיו מתקדמים יותר, כך יגדל נפת התכנות שתצטרך לבצע בעצמך ותקטן מידת הסיוע שיוכלו להעניק לך כלי הפיתוח של 8856 |1808/. אולס, אס הינך חדש בתחוס התכנות ב- 8856 [508ו/, כליס אלה יהוו עבורך נקודת התחלה טובה בפיתוח יישומיס לעבודה מול מסדי נתוניסם ויאפשרו לך ליצור אב-טיפוסיסם של יישומים במהירות ובקלות. פקד הנתונים פקד הנתוניס הוא אמצעי הסיוע העיקרי שמציעה לך 8856 |508ו/ לפיתוח יישומיס המיועדים לעבוד מול מסדי נתונים. פקד הנתוניס הוא אחד הפקדיס הכלוליס בארגז הכלים (אסט|0ס1) של 8856 |1508. כדי להוסיף פקד נתוניס ליישוס שלך, עליך לבצע ארבע פעולות פשוטות : 1. בחר את פקד הנתוניס בארגז הכליס. 2 שרטט את הפקד על הטופס. 3 הגדר את מאפיין סְחִהַאףפהַּ8ּזהכ של הפקד. 4 הגדר את מאפיין 660050016 של הפקד. הערה: ארבע הפעולות אלו הן המינימום הנדרש לשם הוספת פקד הנתונים ליישום המבצע גישה למסד נתונים. מנגנון 3 מאפשר לך להשתמש במספר סוגים של מסדי נתונים (הסוגים הנתמכים על ידי המנגנון מפורטים במסגרת מאפיין 66חח60). אם תרצה לבצע גישה אל מסדי נתונים שאינם נתמכים על ידי 260, כגון ז9ז56 .501, תידרש להגדיר מאפיינים נוספים. ראה: פקד נוסף לניהול מידע, הפקד |סשח60 818 6%שו6ה, מתואר בפרק 28, "גישה לאובייקטי נתונים באמצעות פקדי א6עושסח". 8 סדנת לימוד 6.0 8\ מהו פקד הנתונים פקד הנתונים מהווה, למעשה, קישור בין נתוניס שבמסד הנתוניס שלך, לבין פקדי איגוד נתונים (065ח60 6חט80 הְסְהכ) אשר משמשים להצגת הנתונים. בעת הגדרת מאפייני פקד הנתונים, הינך מורה לפקד לאיזה מסד נתונים עליו להתקשר ולאיוה חלק של אותו מסד נתוניס עליו ליצור גישה. פקד הנתוניס מעביר את הנתוניס אל התוכנית שלך בצורת מערך רשומות 566070500). מערך רשומות הוא אוסף רשומות במסד הנתונים. כברירת מחדל, פקד הנתונים יוצר מערכי רשומות מסוג ז6פחץ (קבוצת רשומות דינמית). מערכים אלה מכילים נתוניס המאוחסניס באחת או יותר מהטבלאות במסד הנתוניס שלך. הערה: ניתן להשתמש במספר סוגים של מערכי רשומות. זַסְפַחץ (מערך רשומות דינמי) הוא אוסף רשומות המשתנה באופן דינמי עם כל שינוי בנתונים שבמסד הנתונים עליו הוא מבוסס. סוג נוסף הוא מערך רשומות מסוג זסחַ305ח5 ("תצלום"), המכיל תמונה סטטית של הנתונים, כלומר, מציג את הנתונים בהתאם לתמונת המצב בזמן בניית המערך, מבלי לשקף שינויים המתחוללים במסד הנתונים באופן שוטף. בנוסף להפיכת הנתוניס זמיניס עבור התוכנית שלך, פקד הנתוניס גם מקנה לך יכולות לניווט בין רשומות. הלחצניס המוצגיס בתרשים 25.1 מאפשריס למשתמש לעבור לרשומה ראשונה במערך הרשומות, לרשומה אחרונה, לרשומה קודמת, או לרשומה הבאה. הצורה בה מעוצבים הלחצנים מבהירה יפה את ייעודם והם דומיס ללחצניס שבמכשיריס להשמעת תקליטוריס או ללחצניס במכשירי וידאו. |> וט =. [חזס ]₪ עבור לרשומה האחרונה עבור לרומה הבאה חזור לרשומה הקודמת חזור לרשומה הראשונה תרשים 25.1: לחצנים הדומים לאלה שבמכשירי וידאו מציעים למשתמשים בפקד הנתונים יכולות לניווט בין רשומות מערך הרשומות, אותו ייצור פקד הנתונים, ייקבע על סמך הגדרות המאפייניס 86 |-₪60070500706 של הפקד. אס הגדרת את המאפייניס האלה בעת עיצוב היישוס, מערך הרשומות ייווצר במהלך טעינת הטופס בו כלול פקד הנתונים. ברוב המקרים, מערך הרשומות יישאר פעיל עד למחיקת הטופס מן הזיכרון ואז ייעלם. פרק 25: פקד הנתונים ופקדי איגוד נתונים | 659 הערה: מערך הרשומות אינו מכיל נתונים, אלא מהווה אובייקט לוגי המייצג (או מצביע על) נתונים שבמסד נתונים פיסי. לאחר היעלמות מערך הרשומות או סגירתו, הנתונים הפיסיים נותרים ללא שינוי בטבלאות שבמסד הנתונים אליו התייחס המערך. הוספת פקד נתונים לטופס הצעד הראשון בשימוש בפקד הנתוניס הוא הוספתו לטופס היישוס. בחר את פקד הנתוניס בארגז הכליס. מקס אותו במקוס הרצוי לך על הטופס והגדר עבורו את הגודל הרצוי. לאחר שתמקם אותו ותגדיר את גודלו, תוכל להגדיר את המאפייניס 6וחה\ ו-הסק68. מאפיין 486 מגדיר את שס הפקד, אשר ישמש אחר כך כמזהה הפקד מול פקדי איגוד נתוניס. שס ברירת המחדל אותו מקצה 8856 |508ו\ לפקד הנתוניס הראשון שמתווסף לטופס, הוא 1אה. אם ברצונך להעניק לפקד שם אחר, סמן את מאפיין סוחגּ\ בחלון המאפייניס של הפקד והקלד את השם הרצוי לך. מאפיין חסו0ק68 מגדיר את הטקסט שיוצג על הפקד. סביר להניח שתרצה להתאיס את הכיתוב שעל הפקד לנתוניס שאליהס הוא מספק גישה. ערך ברירת המחדל של מאפיין ח00ק63 והה לערך ברירת המחדל של מאפיין 6וחגּ\. את הגדרת המאפיין ניתן לשנות באותו אופן בו שינית את הגדרת מאפיין 6וחהּא. פרק וה יערוך דיון בפקד הנתוניס תוך היצמדות ליישוס דוגמה, דבר אשר יאפשר לבצע פעולות שונות תוך כדי מהלך הלימוד. ניצור יישוס פשוט אשר יציג את שמות הסופריס שבקוב> מסד הנתונים 10.28 8181, המצורף אל 88516 |1808/\ כמסד נתוניס לדוגמה. התחל את פרויקט הדוגמה בתור פרויקט מסוג 5אם 50900870 והוסף פקד נתוניס לטופס. הגדר את מאפיין 6וחפא כ-חן003%8 ואת מאפיין חסטק68 כ-פוסחסטה. ודא גס כי גודל הפקד מספיק כדי להציג את הכיתוב ללא קטיעה. תרשיס 25.2 מציג את הטופס לאחר הוספת הפקד. תרשים 25.2: שרטט את פקד הנתונים על הטופס והגדר עבורו כיתוב מתאים 0 סדנת לימוד 6.0 8\ טיפ: ניתן גם לכלול בתוכנית שלך קוד אשר יגרום לכיתוב על פקד הנתונים להשתנות בהתאם לנתון המאוחסן ברשומה הפעילה, כגון שם אדם. שני המאפיינים ההכרחיים לאחר שתמקם את פקד הנתונים על הטופס, תידרש להגדיר קישור בינו לבין מסד הנתונים. את הקישור תגדיר על ידי הצבת ערכים לכמה ממאפייני הפקד. אומנס, קיימיסם מספר מאפיינים המשפיעים על אופן הקישור של פקד הנתוניס למסדי נתוניס, עס זאת, כשמדובר במסדי נתוניס מבוססי 260, עליך להתייחס לשני מאפיינים בלבד: 818085686 ו-706ו₪6607050. הצבת ערכיס במאפיינים אלה מורה לפקד לאיוה מסד נתונים עליו להתקשר וגורמת לו להגדיר מערך רשומות המאפשר גישה לנתונים, לקריאה ולכתיבה. הערה: מאפיין פַחהּ\סִ5הּמַזכ שונה ממאפיין שחאא, אותו היכרת זה מכבר. מאפיין 86 מגדיר את שם הפקד ומשמש לזיהויו במסגרת הקוד. מאפיין 6ַחהּספה888ּזה, לעומת זאת, מגדיר את הנתיב למסד הנתונים הפיסי, אליו ניתן לגשת באמצעות הפקד. בחירת מסד נתונים פקדי 0808 ניתנים לשימוש בשילוב עם מיגוון רחב של מסדי נתונים מסוגים שוניס. אולס, אנו נתמקד בשילוב פקדיס אלה בעבודה מול מסדי נתוניסם מבוססי 266 בלבד. בעת עבודה עם מסדי נתונים מסוג זה, מאפיין 6ח08182850\\8 מכיל את שם קוב מסד הנתונים. להצבת שס קוב> במאפיין, בחר את מאפיין 6ח89ּ\\80856ז08 בחלון המאפיינים של הפקד והקלד את נתיב הגישה המפורט אל הקובצ. > |5 ₪ [+ 8 = | :חן אפ | פ סח במוש] סטוח.סוופום | :סבה פוו- | 8 | 5 (סטח."] 3)858568 ₪ | :6סע) וס פסוו= | סוס תרשים 25.3: תוכל להזין שם קובץ מסד נתונים בשורת המאפיין ההזה או על ידי בחירת הקובץ מתיבת הדו-ש'ח 8190856486 פרק 25: פקד הנתונים ופקדי איגוד נתונים | 661 הדרך הפשוטה ביותר לאיתור הקוב היא על ידי חיפושו באופן ידני. לאיתור הקוב\, לחץ על הלחצן עליו מופיעות שלוש נקודות (...) הממוקס מימין לשורת המאפיין 85036 0זהכ. פעולה זו גורמת להצגת תיבת הדו-שיח חַחִהָּ%ַ6ְ5הּ8ּזהכ, המוצגת בתרשיס 25.3. מצא את הקוב הרצוי ולח על 06. הנתיב ושס הקוב יוצבו במאפיין 033035036 באופן אוטומטי. ם אזהרה: חיפוש קובץ באמצעות תיבת הדו-שיח הנפתחת משורת המאפיין, תציב בשורה נתיב מפורט לקובץ, לדוגמה, 8כ51112.1!וד\5וא |\פזהסץוא\:6. הצבת ערך כזה עלולה לגרום לכך שבזמן ריצה התוכנית תחפש את מסד הנתונים באותו מקום בדיסק. כדאי שתאפשר גמישות מסוימת בהגדרת המקום בו מאוחסן הקובץ. מסיבה זו כדאי שתגדיר את מאפיין הזכ מבלי להשתמש בשם נתיב (לדוגמה, 8כו!א.5112ד), מצב אשר יגרום לתוכנית לחפש את הקובץ בתיקיה הפעילה. אחר תוכל להגדיר נתיב יחסי תוך התייחסות לתיקיה הפעילה (8כ.51112!ד\5ו!1\). תוכל גם להגדיר את המאפיין מקוד התוכנית, תוך שימוש בקלט או בפרמטרים המוגדרים בעת אתחול התוכנית, כמו בדוגמה הבאה: 58 5 הסוסה6ס 501 חחוס "ססוי. פסץו\" .6 הזהק.קקה = הסטהסס 5081 06300 521 = חחִּא\ספהטַהּאהק. 1 הכ בחירת מערך רשומות בתוס הגדרת מאפיין 6חִּ808556\4כ, תוכל להגדיר את המידע אשר אתה מעוניין לאחזר ממסד הנתוניס, תוך שימוש במאפיין 66זט050ז660א. אס אתה מעוניין כי הפקד יעבוד מול טבלה אחת במסד הנתוניס, תוכל להציב במאפיין את שס הטבלה או לבחור את הטבלה מרשימת הטבלאות המוצגת בתרשים 25.4. אס תרצה לעבוד רק עס נתוניס מסוימיסם מתוך טבלה אחת או מספר טבלאות, תוכל להציב במאפיין 166ט₪6607050 משפט ‏ 501 (00806ח18 זט 560060 - שפת שאילתות מובנית). כדי לעשות זאת, תוכל להציב במאפיין אובייקט פעזפטס הכלול במסד הנתוניס ומכיל את משפט 501 או לחילופין, להציב משפט 501 חוקי. תוכל להשתמש בכל משפט 501 המגדיר מערך רשומות (תוכל אף לכלול במשפט כוה פונקציות משלך). אם החלטת להשתמש באובייקט ז6סץזוסטס, עליך לוודא כי הוא אכן מוגדר ומאוחסן במסד הנתונים. טיפ: 5 אם תרצה לוודא שמשפטי 501 אכן פועלים כנדרש, תוכל לבדוק אותם על ידי שימוש ב- 80800 0808 |08פו/ ולהציב אותם במאפיין 66זטס050ז660ה על ידי חיתוך והדבקה. ראה: "החלקים השונים של משפטי 501", נספח 3. 12 סדנת לימוד 6.0 8\ זוב 00380 - 5שוסקסז 2 33 חו01313 | > | ב 420 1200 | (פחסו) ח56160סזין ]0630 - 0 טחוס 56טויין 6 6ב סחוי שחסוא - 0 6סויזססזס= 01 0 5חסוק )| 6 בח - 1 5זסח ו רשימת טבלאות ואובייקטי ]6סץוסטס ופוח 3657 עו חלו תרשים 25.4: תוכל לבחור את הערך שיוצב במאפיין 66זט050ז₪660 מתוך רשימת טבלאות ואובייקטי ]06ץזפטס המוגדרים במסד הנתונים היכרות עם פקד איגוד נתונים בוּאת השלמת את תהליך קישור הפקד למסד הנתונים והגדרת מערך רשומות שישמש אותו. אולס, כדי שתוכל להשתמש בנתונים, עליך לבצע פעולה נוספת: הגדרת פקדי איגוד נתונים (₪0|5ח60 סחטסם-זהכ). ב- ₪856 |הטפו/, פקדי איגוד נתוניס הס פקדיס המוגדריס באופן הגורס להס לפעול בשילוב עס פקד הנתוניס לשס יצירת יישומים של ניהול מסדי נתונים. לפיכך, ניתן לומר שהפקדים יימקושרים''י לנתוניס המאוחסניס במסד הנתונים. רוב פקדי איגוד הנתוניס הם פקדים רגילים, הכולליסם מספר מאפייניס נוספיסם המאפשרים להס לבצע פעולות גישה לנתוניס. חלק מהפקדים המותאמים אשית (065ח60 15500ו0) של 88516 |08פו\ מיועדים במיוחד לשס עבודה עם פקדי הּזהכ. חלק מהפקדים העשויים לשמש כפקדי איגוד נתוניס כבר מוכריס לך: | 186 - תווית 6660808 - תיבת סימון פרק 25: פקד הנתונים ופקדי איגוד נתונים | 663 מה עושים הפקדים האלה כל פקד איגוד נתוניסם מקושר לפקד הנתונים או יותר נכון, לשדה מסוים במערך הרשומות המקושר לפקד. פקד איגוד הנתונים מציג באופן אוטומטי את הנתוניס המאוחסניס באותו שדה ברשומה הפעילה. כאשר המשתמש עובר לרשומה אחרת, על ידי שימוש בלחצני הניווט של הפקד הנתונים, הנתוניס המוצגים בפקד איגוד הנתוניס מתעדכנים, כדי שישקפו את המידע המאוחסן ברשימה הנוכחית. אך פקדי איגוד הנתוניס אינס מוגבליס להצגת הנתוניס המאוחסניס ברשימה בלבד, רובס יכוליס גס לשמש לצורך שינוי הנתוניס. שינוי הנתוניס דורש מהמשתמש לערוך את תוכן הפקד. הנתוניס המאותחסניס במסד הנתוניס מעודכניס באופן אוטומטי בעקבות כל שינוי בתוכן פקד איגוד הנתוניס או כתוצאה מסגירת הטופס. הערה: עקב העובדה שפקדי |1856 (תווית) אינם כוללים קטע הניתן לעריכה, המידע המוצג במסגרת התווית אינו ניתן לשינוי. גם פקדים המצויים במצב נעילה, או במצבים אחרים המונעים עריכת נתונים, לא מאפשרים למשתמשים לערוך נתונים המוצגים בהם. כל סוג פקד איגוד נתוניס משמש לעריכה ו/או הצגת נתונים מסוגים שונים. פקדי איגוד נתוניסם מאפשרים לך לטפל במחרוזות, מספרים, תאריכים, ערכים לוגיים ואפילו בתמונות ובתזכירים. טבלה 25.1 תפרט את חמשת הסוגים הבסיסיים של פקדי איגוד נתוניס ואת סוגי הנתוניס שהס משמשים לטיפול בהם. הטבלה גם תפרט את מאפיין הפקד שבו מאוחסניס הנתוניס הרלוונטיים. טבלה 25.1: הפקדים המשמשים לטיפול בנתונים מסוגים שונים | שמהפקד | = סויגתנים | מאפיןהפקד > 80%א67066 |1.00168, 8156 /סטזד 4 סדנת לימוד 6.0 8\ הוספת פקדים לטפסים להוספת פקד איגוד נתוניס לטופס, בחר את הפקד בארגו הכלים ושרטט אותו על הטופס. תרשים 25.5 יציג תיבת טקסט שהוספה לטופס המכיל את פקד הנתונים. שים לב שמאפיין 6300 של פקד הנתונים שונה גם הוא. [חזס].% תיבת טקסט מופמדת נתונים תרשים 25.5: שרטט פקדי איגוד נתונים על טופס, כפי שהיית משרטט כל פקד אחר טיפ: אם תחזיק את מקש !60 לחוץ, בזמן שתלחץ על פקד בארגז הכלים, תוכל להוסיף לטופס שלך כמה מופעים של הפקד. כך לא תידרש ללחוץ פעמים רבות על הלחצנים הכלולים בארגז הכלים. כאשר תסיים להוסיף את מופעים הדרושים לך, לחץ על כלי מצביע העכבר בארגז הכלים. מובן מאליו שלא מספיק לשרטט את הפקד כדי לקשר אותו למסד הנתונים. תחילה תידרש להגדיר שני מאפיינים נוספים. שימוש בפקד איגוד נתונים להצגת מידע כדי שיתאפשר לפקד איגוד נתוניס לעבוד עס הנתוניס המאוחסניס במערך רשומות, תידרש לקשר את הפקד לפקד הנתונים המייצג את אותו מערך רשומות (זכור שכבר למדת כיצד מקשריס פקד נתוניס לנתוניס) ואל שדה מסויס במערך הרשומות. תחילה יהיה עליך להגדיר את מאפיין שזט950ז8כ של פקד איגוד הנתונים. הגדרת מאפיין וה מקשרת בין פקד האיגוד (פקד א6%]80ד - תיבת הטקסט במקרה שלנו) לבין פקד הנתוניס. לאחר מכן יהיה עליך להגדיר את מאפיין 0819660 של פקד האיגוד, המקשר בינו לבין שדה מערך הרשומות שיוצג במסגרתו. כאשר תמשיך בעבודה על היישוס לדוגמה 818110, שביצירתו התחלנו קודס לכן, תלמד אודות אופני הפעולה של פקדי איגוד שוניס. פרק 25: פקד הנתונים ופקדי איגוד נתונים | 665 הגדרת מאפיין סְסזְס5בּזבּ כדי להגדיר את מאפיין 66זטספפּז8כ, בחר אותו בחלון המאפייניס של הפקד. לחי על הח הנפתח המוצג מימין לשורת המאפיין, כדי להציג רשימת פקדי נתונים המוצגיס על הטופס הפעיל. הגדר את מאפיין 895066 על ידי בחירת אחד הפקדים המוצגיס ברשימה. תרשים 25.6 מתאר ביצוע פעולה זו. טיפ: במקום לפתוח את הרשימה, תוכל ללחוץ לחיצה כפולה על שורת המאפיין 6 זט ס5ה, כדי להציג את פקדי הנתונים הזמינים לשימוש. - 16:80 1)א6ד | | ב 6הַחו5 60או= - 1 וס 6 חסו83ו|15653ה-) רשימת פקדי נתונים המוצגים על טופס היישום הטחם\י] - 0 שטזד ]561 5305 5] וו | 455 0 סוד 100 שחסא - 0 תרשים 25.6: מאפיין פְזטספפּז₪ מגדיר את הקישור בין פקד המאפשר ביצוע פעולות על נתונים, לבין פקד הנתונים הגדרת מאפיין הַסו-בּזה3ּ מאפיין 06זנו0ס₪8095 אומנס מורה לפקד האיגוד מיהו פקד הנתונים ממנו הוא אמור לקבל את הנתונים, אך עליך עדיין להגדיר לפקד האיגוד מהו הנתון שעליו לאתחזר. תוכל להגדיר ואת על ידי מאפיין ₪3198|0 של פקד האיגוד. מאפיין זה מורה לפקד הנתוניס איה מבין השדות שבמערך הרשומות יטופל על ידי אותו פקד איגוד. כדי להגדיר את מאפיין 8"0ז8ם של הפקד, בחר מאפיין וה בחלון המאפיינים של הפקד, לח על הח הנפתח המוצג מימין לשורת המאפיין ובחר את אחד הפריטיס שברשימה. הרשימה תכלול את כל השדות הזמיניס שבמערך הרשומות שהוגדר במסגרת מאפיין 6זטספטהכ (ראה תרשים 25.7). 6 סדנת לימוד 6.0 8\ 1 - וקסוק - 6% 61)אסד | | בו 6החו5 השאו - 1 56 זסביזסם שוז חסו030ו|ה/565ב- הבס רשימת השדות זס 3:3 זט תויזה 3 (שחסא]ץ הנחב - 0 שד ]5 5ח53 85 ו | 155 0 שטזד 100 6חסא - 0 תרשים 25.7: הגדר את מאפיין 868660 של פקד איגוד הנתונים, מתוך רשימת השדות המוגדרים במסגרת פקד הנתונים שנבחר טיפ: 5 במקום להשתמש ברשימה הנפתחת, תוכל ללחוץ לחיצה כפולה על שורת המאפיין הַסו"ִ8ּזהכ, כדי להציג את השדות הזמינים לשימוש. ש אזהרה: לא יתאפשר לך לבחור הגדרה עבור מאפיין הח8ּזהכ, עד שתגדיר את מאפיין 6 ס5הס. יצירת יישום פשוט בתחילת הפרק התחלת בבנייה ניסיונית של יישוס קטן, המיועד לאפשר לך להציג את שמות הסופריס שבמסד הנתוניס ₪0 8181 ולשנותס. כעת תמשיך בבניית היישוס. הגדרת הטופס לאחר שכבר הגדרת פקד נתוניס וקישרת אותו למסד הנתוניס 818150 תוך שימוש במאפיין 0818085686 שלו, תוכל להגדיר את מאפיין 6600500166 של הפקד. בחר את הטבלה פזסוזטה מרשימת הטבלאות המוצגת בחלון המאפייניס של הפקד. בתוס פעולה זו פקד הנתונים יהיה מוכן לשימוש. השלב הבא בתהליך יצירת טופס הגישה לנתוניס הוא הוספת פקדי איגוד נתונים. כדי לפשט את הדוגמה, בחר בתיבת טקסט כדי להציג כל אחד מהשדות. הוסף לטופס פקד 1 בלתי מקושר שיתאר מהו הנתון המוצג בכל אחת מתיבות הטקסט. לבניית פרק 25: פקד הנתונים ופקדי איגוד נתונים | 667 יישוס הדוגמה יידרשו שלושה פקדי א6%)80ד ושלושה פקדי |1886. הגדר את מאפיין 6זטס5זהס של כל תיבות הטקסט כ-חן008%8, שהוא שס פקד הנתוניס שהוספת לטופס. יהיה עליך גם להגדיר את מאפיין וזכ של כל אחת מתיבות הטקסט. זכור כי מאפיין 8191660 משמש לצורך קישור כל אחת מתיבות הטקסט לשדה מסוים במסד הנתוניס. טבלה 25.2 מפרטת את הגדרות המאפיין וזכ עבור כל אחת מתיבות הטקסט ואת הגדרת המאפיין ח00ק63 של הפקד |1886 התואס לכל אחת מהתיבות. בטבלה מוצגיס שמות ברירת המחדל של פקדי תיבת הטקסט. טבלה 25.2: הגדרות 288160 ו-ח0ו0ק68 של הפקדים שבטופס הגישה לנתונים | יי ח0סוזק63 של הפקד התואם בתוס הוספת פקדי האיגוד והגדרת מאפייניהם, הטופס שלך ייראה כמו וה המוצג בתרשים 25.8. 1 זסת])נו3: פחו. 0! וו .₪ :חזסם זפ ו :םן זסחזווה | פפו 8 1 | הז , 10/0005 | 4 || תרשים 25.8: ניתן ליצור טופס פשוט להזנת נתונים תוך שימוש בפקד הנתונים ובפקדי אס)א6ד המוצמדים אליו בעת שימוש בפקד נתונים רגיל, אין אפשרות להגדיר את מאפיין 6זטס5 0808 בזמן ריצה. אפשרות זו קיימת בעת שימוש בפקד |סזוחס6 ₪808 400 (המתואר בפרק 28, גישה לאובייקטי נתוניס באמצעות פקדי א6עו6%ה). ראה: סעיף "שימוש ב-|0ח60 0818 ססם", פרק 28. 8 סדנת לימוד 6.0 8\ ניווטט במסד הנתונים כעת, לאחר שיצרת את טופס הזנת הנתונים, תוכל לנסות אותו, על ידי הפעלת התוכנית. כאשר התוכנית תתחיל לפעול, הטופס ייטען וסביר להניח שהנתוניס שברשומה הראשונה יוצגו בתיבות הטקסט. כעת תוכל לראות כיצד ניתן להיעזר בפקד הנתוניס לצורך ניווט בין הרשומות המאוחסנות במסד הנתונים. תוכל לעבור אל הרשומה הראשונה במסד הנתונים, אל הרשומה האחרונה בו, אל הרשומה הקודמת או אל הרשומה הבאה פשוט על ידי לחיצה על הלחצן המתאיס בפקד. תוכנית פשוטה וו תאפשר לך גם לעדכן ולערוך את מסד הנתונים. נסה להקליד שנת לידה בשדה חזס8 ז68ץ ולעבור אל רשומה אחרת. פעולה זו גורמת לשינוי הנתוניס ברשומה הפיסית המאוחסנת במסד הנתוניס המקושר אל הפקד. שינוי וה יישמר גם אס תכבה את המחשב. רשומות אקראיות אם תעיין במסד הנתוניס תיווכח כי הרשומות הכלולות בו מסודרות בסדר אקראי לכאורה ולא בסדר האלף-בית. אך אל תיבהל, לא שגית בהגדרת הטופס, הרשומות מוצגות לפניך בהתאס לסדר הפיסי של הטבלה, כלומר לפי הסדר שבו הן הוזנו. כדי לגרוס להצגת הרשומות על פי סדר האלף-בית, הצב את המחרוזת שלהלן במאפיין 06 של פקד הנתוניס : סה דה צם הםסחהס 5הסרד דה וזסחת * ז0ם |55 המחרוזת שהצבת במאפיין 280950 היא דוגמה למשפט 501. שימוש בקוד בשילוב עם פקד הנתונים היישומיס שתיצור במציאות יהיו דינמיים יותר מיישוס הדוגמה שיצרת וה עתה. לפיכך, חשוב כי תבין שעדיף להגדיר משפטי 501 ופריטי מידע לא קבועיס אחרים תוך שימוש בקוד. למרבה המזל, פקד הנתונים מאפשר לך להיעזר בקוד לצורך ביצוע פעולות על רוב סוגי האובייקטיס עליהס הוא מתבסס. כדי להמחיש זאת, נמשיך בפרויקט הדוגמה. הוסף לטופס שני פקדי הסט 6ח8וח וח 60 (לחצני פקודה) שתגדיר עבורס את השמות ז00ט0501 6 (-ז08 שז0501ח6. הוסף את קטעי הקוד שלהלן לשגרות האירוע 016% של שני הפקדים: ( )אוו זסחטו+זס50 0רח6 50 סספּעווק "זסוזטהּ צם 0055 פזסתזט3ּ סת * 07 |55" = 6000500706 הבו ה6765. חו18י0+81 סט 0ח5 ( )016 6050/68 50 סספּעווק "56שכ [חזסם זב63ץ] צם חס פזסחסטוהּ את * 0 55" = 606 66070500₪ח. הוהוהט ה65ז67. חו0+818 סט 0ח5 פרק 25: פקד הנתונים ופקדי איגוד נתונים | 669 הפעל את התוכנית. כעת תוכל לשנות את הסדר בו ממוינות הרשומות על ידי לחיצה על אחד משני הלחצנים. כך תוכל לראות כי הגדרת המאפיין 66ז050זס₪66, במסגרת התוכנית, מאפשרת לך גמישות רבה יותר מכפי שתוכל להשיג על ידי הגדרת המאפיין בעת עיצוב היישוס. הערה: השימוש בקוד מאפשר לך לשלוט על היבטים נוספים של פקדי פּזהכ. לדוגמה, כעת לא תידרש להגדיר קישורים בין פקדים לבין נתונים כדי שיתאפשר לך להציג את הנתונים תוך שימוש בפקדים. תוכל להיעזר בקוד כדי לגשת למאפיין 6607056 של פקד הנתוניםבאופן ישיר: ("ז סו )6|05ו- .66070561 חו3 011 ₪ "5 זסרסטה +חסזזטו" אס וו ראה: פרק 26, "שימוש באובייקטי גישה לנתונים (0גכ)" כיצד לבצע גישה למסד הנתונים תוך שימוש בקוד בלבד. הוספה וגריעת רשומות בוודאי נוכחת כבר כי נוח להשתמש בפקד הנתוניס. אולס, חסרות לו מספר תכונות בעלות חשיבות רבה במסגרת יישומיס לניהול מסדי נתונים, כגון יכולת להוסיף ולגרוע רשומות. במצב הנוכחי, יישוס הדוגמה מאפשר לך לערוך רשומות קיימות אך לא להוסיף חדשות למסד הנתונים. כדי לאפשר יכולת זו יהיה עליך לערוך מספר שינוייס ביישוס. הוסף לטופס יישוס הדוגמה שני פקדי חסאטם 6080 והגדר עבורס את השמות 06 וכן 006|866וח6. הוסף את קטעי הקוד המובאיס בתוכנית 25.1 לשגרת אירוע 0166 של כל אחד מהלחצנים, כדי להקנות להס את היכולות המתאימות: תוכנית 25.1: קפ/.= |קא1054 8181 - הוספת שיפורים ליישום הדוגמה. ( )א0ו1 6000866 500 סספּעווק 00056.0 הו סט 0ח5 ( )0106 06|566 60 500 סספּעווק 00056.6 הו הסח ד +6607056%.=0א. חוה1מז₪ )סא +[ עס .66070561 הו 6 |60070561.\0/6ח. חו3 091 + 0 סט 50 0 סדנת לימוד 6.0 8\ בפרק 26 תלמד כי בעת הוספת רשומה חדשה או עריכת רשומה קיימת, 8856 |8טפו\ עוברת בין מספר שלבי פעולה: 1 ₪66 (הוספה). בעת הוספת רשומה חדשה, נוצרת רשומה ריקה במאגר העתקה (ז6)וטם ץ600), שהוא מקום בו נערכות רשומות לפני שהן מוספות למסד הנתונים. לאחר מכן תוכל לערוך את הרשומה החדשה. 2 066 5618 (מצב עריכה). בזמן ביצוע פעולות לשינוי המידע המאוחסן ברשומה, אתה עובד במצב עריכה של 8856 |1508/. בעת עבודה במצב עריכה, הרשומה כבר הועתקה אל מאגר ההעתקה וייתכן שהיא כבר שונתה על ידי התוכנית, אך היא טרס עודכנה במסד הנתוניס המקושר לתוכנית. 3 63%6קש (עדכון). לאחר שתסיים לערוך את ערכי השדות, מאגר ההעתקה יועבר למסד הנתוניס, עקב שינוי ברשומה הפעילה או עקב הפעלת השיטה 68%6קש. ניתן לראות כי בתוכנית הדוגמה 25.1 לא נכללת פקודה כלשהי להפעלת השיטה 6 (פקדי ₪808 מבצעים פעולות ₪008%6, באופן אוטומטי בעקבות מעבר אל רשומה אחרת או סגירת טופס). הערה: את השיטות ]אסא פטס! ו-85 ופצס הוספת ללחצן המחיקה כדי לכפות מעבר לרשומה חדשה. לאחר שרשומה נגרעת ממסד הנתונים, לא מתאפשרת גישה אליה, אך היא מוצגת על המסך עד שמבוצעת פעולה למעבר אל רשומה אחרת. אם לא היית כופה פעולת מעבר לרשומה אחרת והיית מנסה לגשת לרשומה שנגרעה, היתה נגרמת שגיאה. כעת ייראה הטופס שלך כמו וה המוצג בתרשים 25.9. בנוסף להרחבת היכולות המוצעות על ידי לחצני פקד הנתוניס, באפשרותך גס להחליף לחצנים אלה. הגדר את מאפיין 6|פופו\ של פקד הנתוניס כ-8/56 והוסף לטופס לחצני פקודה חדשיס אשר יבצעו פעולות כגון +א6\6עסוא ופעולות ניווט אחרות המבוצעות על ידי פקדי הּזכ. | וםן=. 1 וטוטה סח וו וחום .= :חמזסם זטצי וו :ם] זסחוטום ]₪-78 1 68 )14| 4 | 100005 | | 0 | 0 8 | תרשים 25.9: ניתן להוסיף יכולות חדשות לטפסי הזנת נתונים על ידי | זסוווה 50 [868 בו הקצאת פקודות תוכנית ללחצני פקודה פרק 25: פקד הנתונים ופקדי איגוד נתונים | 671 יצירת טפסים באופן אוטומטי פקדי איגוד נתוניס מאפשריס ליצור טפסים להזנת נתונים, בהשקעת מאמצ מינימלי. למעשה אתה יכול ליצור טפסיס כאלה באופן פשוט עוד יותר על ידי שימוש ב- הס 46 חוזס (\\חם - אשף טפסי הנתונים). צ\ם הוא אחד התוספות (5חו-00) המצורפות ל- 88516 |1508/. השימוש בו יאפשר לבחור מסד נתונים ומקור רשומות. לאחר מכן האשף ייצור טופס הזנת נתונים, באופן אוטומטי. סביר להניח שהטופס שהאשף ייצור לא יהיה בדיוק הטופס הרצוי לך, אך תוכל לשנות את עיצוב הטופס בקלות ולשמור את השינוייס שביצעת. השימוש בכלי /\זפ הוא דרך טובה מאוד ליצירה מהירה של הטפסיס הדרושים לאב-טיפוס או ליישוס פשוט. הגדרת 6ז23ו/\ וח'וס: באב כדאי לחזור ולהזכיר ש-/\ם הוא האחד התוספות המצורפות ל- 8856 |1508/. אולס, בעת הצגת תפריט 5חו-400, הפריט 0זה2ו\\ וס 0808 6 8/ אינו מופיע. עליך להודיע לסביבת הפיתוח של 8856 |8טפו\ כי אתה מעוניין בגישה לכלי עיצוב הטפסים (וחזס= 65006כ). תוכל לעשות זאת על ידי הפעלת הפקודה זִסְהַח8! חו-800 מתפריט 5ו-00/. פקודה זו גורמת להופעת תיבת הדו-שיח זססְהּחַ18! חו-00 המוצגת בתרשיס 0. |< | זסהַהּחב3ּ)₪ ח!-008 - זסושיבו86 1.030 5 6וסבווב יה זבקו/\ )הפרתעס!ק6 0 חב 6ב אסב | | זב2ו/\ 6סב]וטזה| |זו-) אסצווסם 6 ם/ר בזהקו/\ הסוזבזטווא סס0 >ששווסם 6 ם/ר !סט חן-30 6 םר וטו קה 6 םע בזהקו/\ הסווהסווקקה 6 ם/ר עווז(! זסטווגום 01355 6 ם/ר 8 ובוא הזז 0313 6 ם/י בזםקו/\ וספןפ 0 313 6 8/\ בזבקו/\ 6ב עוהסקסזק 6 ם/ר זסזום = 650006 6 8 33 6ו|קוח6 ד 6 ₪/ר ב 400 0156--- | סוס ב 86 1080 -ן זי בזבקו/\ חזזס ] 2313 6 סו5בם |בטפו/ר קז13פ חס 1086 -][ 6 | הרוחס -][ ₪ תרשים 25.10: זְסִסָבח3! חו-00 (מנהל התוספות) מאפשר לך להוסיף יכולות לסביבת העיצוב של 88516 |808ו\ כדי לגשת ל-\\ח, עליך להאיר את הפריט 6ז231ו/\ וחיוס] הזכ 6 8 ברשימה וללחוצ על תיבת הסימון 0010306660 1038666. המילה 108060 תוצג בטור הימני של רשימת התוספות. כעת לחף על לחצן 06 ובזאת סיימת את פעולת ההוספה. כאשר תציג את תפריט 5חו-00, הפריט שוח יוצג. בחירה בפריט וה תפתח את תיבת הדו-שית הס006ח1 של האשף המוצגת בתרשיס 25.11. מסך זה מכיל מעט מידע על האשף ומאפשר לך לטעון אפשרויות שהגדרת במהלך עבודתך הקודמת עס האשף. 2 סדנת לימוד 6.0 8\ |<. חסווסטסזוח] - 230 חוזס] 313 ₪ 5סשןס0 חפואו הזזס] 3 06306 נוסץי קוסת [וו וקו חחזזס= 363 שחד .50066 0363 60066 וס |068| 8 0 הטוס ?565057 זנוסץ 03| 0 לחפאו נוסץ' 0 וו)סזם )הח הזסז=ן תרשים 25.11: 20ו/\ חס ההכ יוצר עבורך טפסי הזנת נתונים באופן אוטומטי לחיצה על לחצן 6% של טופס הפתיחה תעביר אותך אל מסך 6ץד 6פּס88ּז08 (סוג מסד נתוניס) של האשף. מסך זה, המוצג בתרשים 25.12, מאפשר לך לבחור את סוג מסד הנתונים אליו תוכל לגשת באמצעות הטופס. לבחירת סוג, לחץ על שס הסוג הרצוי ברשימה, ולאחר מכן לחצ על לחצן 6% כדי להמשיך ביצירת הטופס. אם אתה עוקב אחר הדוגמה המוצגת בפרק זה, ודא שבחרת את הפריט 66655 ולת )6א6א. |<. ץז 33180356 - 230 חוזס] 313 6 .50| ה החסץ] ]החזזס] 03530356 3 561606 (-086)ם סוחס תרשים 25.12: תוכל לבחור ליצור טפסים תוך שימוש בסוגים נפוצים של מסדי נתונים לאחר שתבחר את סוג מסד הנתוניס הרצוי לך, יהיה עליך לבחור את מסד הנתוניס עצמו ואת מקור הרשומות (6זט50 0ז₪660) עמס תעבוד. את מסד הנתוניס ומקור הרשומות תבחר באמצעות מסך 08180856 של 2870ו/\ חס בזאם. אם תבחר באפשרות 6 (שועו660חהח60 8856 808 ח6ק0 - ממשק הקישוריות הפתוחה של 0%פסשסו!!), תתבקש להגדיר את כל ההגדרות הדרושות לשס התקשרות למקור נתוניס המיישס את ממשק 0086 (ראה תרשים 25.13). אס תבחר באפשרות 66655, אשר מאפשרת לך פרק 25: פקד הנתונים ופקדי איגוד נתונים | 673 להשתמש במסד הנתוניס 50 8181, תתבקש להזין שס קובצ מסד נתוניס (ראה תרשיס 4). לצורך הדוגמה שלנו יהיה עליך להיעזר בלחצן 87086 כדי לאתר את קובצ\ מסד הנתוניס 8פ1ו.₪0 8181, המאוחסן בתיקיה הראשית של 8856 |1808/. חסוזהחוזט)ח] 601החס:) - הזב23ו/ע\ הוזס] 313 ₪ סו 3חחזס"חו הסוס סשהחס6 6 6טושיסזם 308 666חחס) 086 5 (שו וט :כ .הח ופט 000004 ור :סוס 0000 ור :58 [+ ] :זסצוזם ה | 6 - 6זב2ו/\ חוזס-] 313 ₪ . 6 43630356 3 561601 50 חסססוום שפאופזם 6ח8 >סון :ב 356 בה סטח. סווטום\898/ \סוטט50 |הטפו/' ס5סיסוזי\65וו= חזב'וססזק\:) ן | 2 כ[ ] ₪ | | | | ₪ תרשים 25.14: בעת שימוש במסד נתונים של 66655, תידרש להגדיר רק את שם קובץ מסד הנתונים ואת נתיב הגישה אליו 4 סדנת לימוד 6.0 8\ גישה למקור הנתונים לאחר בחירת מסד הנתוניס, עבור למסך וחזס] של האשף (תרשיס 25.15). מסך זה יאפשר להגדיר שם עבור הטופס ולבחור את האופן בו יוצגו הנתונים. חזזס] - 6זה2ו א הוזס-] 33 ₪ תרשים 25.15: המסך חח זס] יאפשר לך לבחור את מבנה הטופס הרצוי לך יוצעו לך חמישה סוגי טפסים, מביניהס תוכל לבחור: + ₪6606 8!6ח51. טופס כזה יאפשר לך לערוך את הנתוניס שבמערך הרשומות, רשומה אחר רשומה. זה הסוג הנפוץ לטפסים להזנת נתונים. + 676 (ס6ַחִ5ּזהכ). טופס כזה יאפשר לערוך מספר רשומות בבת-אחת. טופס כזה דומה למבט מערך רשומות ב-60655 או גיליון של |66א5. + ||ן20%8 /₪185%67. מאפשר לערוך את הנתוניס שברשומת אב יחידה עס הנתוניס שברשומות הצאצא שלה. לדוגמה, בטופס כזה ניתן להשתמש לצורך הצגת נתוניס של הזמנה לצד נתוני הפריטים שבה. << 0116א11!6] 85א. אפשרות זו מציגה טופס בעל מבנה רשת (6) תוך שימוש בפקד חדש מסוג 6016 |63וח6זהזסות. + *זהּח6 65. מציג תרשיס המבוסס על הנתוניס הרלוונטייס. הבחירה בסוג טופס מסוים תשפיע לא רק על חזות הטופס, אלא גס על בחירת הרשומות שתוצגנה במסגרתו. בעת שימוש בטופס מסוג 666070 6ופַחו5 או 610, תידרש לבחור מקור רשומות אחד. בעת שימוש בטופס מסוג |ו068/ז18500 תידרש לבחור שני מקורות רשומות. אך לא תידרש להתייחס לנושא זה מפני שהאשף ידריך אותך בביצוע הפעולות הדרושות. הרי לשס כך נועדו אשפיס. פרק 25: פקד הנתונים ופקדי איגוד נתונים | 675 מ אזהרה: אם תיצור טופס מסוג |ו0683/זפז35!\, תידרש תחילה להגדיר קשר בין הטבלאות שתבחר. מידע הקשר ישמש לשם שמירה על סינכרוניזציה של הנתונים שיוצגו. לצורך פרויקט הדוגמה, הגדר את שס הטופס כ-6%1 זוח1 ואת המבנה כ-606. בחירת סוג האיגוד פקד הנתוניס הרגיל, אשר מצוי בשוק מזה ומן רב, נעזר באובייקטים מסוג ((080) 00[66 ₪06655 8ַז₪8. אך סוג אובייקט זה מצוי בסוף דרכו והוא יוחלף על ידי אובייקטיס מסוג (400) 00[66 0808 6%עוו6. עדות לכך ניתן למצוא בעובדה שהאשף של 6 8856 |8ט5ו\ תומך אך ורק ביצירת טפסיס הנעזריס באובייקטי ססג. תיבת ההגדרה מִמִעְדַפַחו0חו8 (סוג איגוד) שבמסך וחזס] מאפשרת ליצור טפסי הזנת נתוניס משלושה סוגיס : + !0ז600% 03% ססג. הגדרה זו תיצור טופס ובו פקדיס מסוג 808 0ג. + 6066 800. הגדרה ו תאפשר גישה למסד הנתונים רק על ידי שימוש בקוד. + 61855. הגדרה ואת נעזרת במודול מחלקה (|1006! 61855) לצורך גישה לנתונים. כל השיטות האלו נעזרות באובייקטים חדישים מסוג 091666 2868 א6עוז6. לצורך פרויקט הדוגמה שלנו, בחר בסוג האיגוד 6006 ספג. בחירת שדות בעזרת 6יוב3ּ2ו/\ וח'וס: בּזְבּס לאחר שתבחר את מסד הנתונים ואת סוג הטופס הרצוי, לח על 6א כדי להציג את מסך 50706 66070 של האשף, המוצג בתרשים 25.16. מסך וה הוא אמצעי ידידותי המסייע בבחירת הטבלה או השאילתה שעליהס יתבססו הטופס והשדות שבמסגרתו. [<] 6ז 50 60010!] - ₪זה2ו/ חוזס] 033 ₪ 0 19/05 806 56/86% ח6? חב 50706 16607 ב 50160 חזזס] 506 חס זב6קקה. 0 | 8 ותו ] :05| 50100800 :5 6|סב !ה ווה גו 5 ₪ 4 :8 507% 50 חוחטוס) ות [ 8 | ₪ ₪ תרשים 25.16: בחר את מקור הרשומות ואת השדות שיוצגו בטופס 6 סדנת לימוד 6.0 8\ כדי להגדיר את השדות שיוצגו בטופס יהיה עליך לבצע את הפעולות הבאות: 1. בחר את מקור הרשומות (טבלה או שאילתה) מהתיבה המשולבת. 2 בחר את השדות שייכללו בטופס על ידי לחיצה על שמות השדות ברשימה 5 פוַסבּווְבע (שדות זמיניס לבחירה). תוכל ללחו לחיצה כפולה על שדה כדי לבחור אותו או להאיר שדה וללחוצ על לחצן הבחירה (<). 33 סדר את השדות בסדר הרצוי לך על ידי שינוי סדר הפריטיס הכלולים ברשימה 5 561660066 (שדות שנבחרו). תוכל לשנות את סדר השדות על ידי הארת שס שדה ולחיצה על לחצן ההעלאה או ההורדה (פעולה זו היא אופציונלית). 4 בחר את העמודה שלפיה ימוין מערך הרשומות, על ידי בחירת העמודה בתיבה המשולבת 501% סד חוחט!60 (פעולה זו היא אופציונלית). 5. לח על הלחצן +א6א כדי לעבור אל המסך הבא. לצורך יישוס הדוגמה, בחר את הטבלה 840%00:5 מהרשימה הנפתחת. בצע את הפעולות שתוארו כאן כדי לצרף לטופס את השדות זוסח+טג ו-חזזספ זובּסץ. בחירת פקדים לאחר שתבחר את כל השדות שאתה מעוניין להציג בטופס, תידרש לבצע מספר פעולות בחירה נוספות - אשר תגדרנה את חזות הטופס. תוצגנה לפניך מספר תיבות דו-שיח, בהתאס לסוג הטופס שהגדרת במסך חזס". אחת מתיבות דו-שיח אלו תאפשר לך לבחור לחצנים שאתה מעוניין שיוצגו על הטופס. זוהי תיבת הדו-שיח |סיוחס6 ח0וז56166 של אשף צ\חפ המוצגת בתרשים 25.17. טבלה 25.3 תפרט את הלחצנים שאותס תוכל להציג על טפסים להזנת נתונים. חלק מלחצניס אלה לא יהיה זמין לבחירה בעת שימוש בסוגיס מסוימיס של טפסים. לאחר שתגדיר את ההגדרות בתיבות הדו-שיח הקשורות לעיצוב הטופס, לחצ על הלחצן 6% ותוצע לך אפשרות לשמור את ההגדרות כ-₪708]6 (פרופיל). את הפרופיל הזה תוכל לטעון אחר כך מבלי שתידרש לבצע את כל הפעולות הקודמות. | < | חסוז56!60 |סזוחס:) - 6זה23ו/ הז ] 0303 ₪ זט 56 חס 1366 50 005 חס 650760 6חש 506% וס חס 6|פופ/ם: | ]8 5000 חססטום ₪36 ] | אס ב תרשים 25.17: תוכל לבחור כמה הסנו וסוס >[ הק לחצני פקודה שיוצגו על הטופס חססטטם 056 ₪[ פרק 25: פקד הנתונים ופקדי איגוד נתונים | 677 טבלה 25.3: פקדי לחצן פקודה הזמינים לשימוש והפעולות המבוצעות על-ידם 60765 | גורם לפקד הנתונים לבצע שוב את השאילתה ששימשה ליצירתו. פעולה זו דרושה רק בסביבה מרובת משתמשים 6 | סוגר את טופס הזנת הנתונים ופורק אותו מהזיכרון 8 צשוסח5 | אם בחרת את הטופס 60 טִססַחַ55ּזהכ) ואת סוג האיגוד םס ססה (0חס6 | |סשחס6, בחירה באפשרות זו תוסיף לטופס לחצן אשר יאפשר למשתמש להציג את פקד |סשחסס פזהם ססג הינך עומד לפני ביצוע השלב האחרון של אשף ש\חת, יצירתו הממשית של הטופס. לחצ על לחצן חפוחו= כדי להתחיל בתהליך היצירה. כעת תוכל לנוח לרגע בזמן שהאשף מבצע את פעולתו. עס סיוס פעולת האשף, התוכנית שלך תכלול טופס הזנת נתוניס חדש. כדי שתוכל להשתמש בטופס, כל שנותר לך הוא להשיב על מספר שאלות ולבצע פעולות בחירה אחדות. תרשימים 25.18 עד 25.20 יציגו לפניך כמה סוגי טפסים, אותס תוכל ליצור בעזרת האשף שוסס. 5וסחוטה .₪ 6 ,חסזב ה הגו ,חסזב ה חב ,35 085, 1. |8החסו4 ,עסססם 130 ,0900 ב בכ ,8 זו ,06 33ב ,6150 וזב ,ה50וסס ה ו א , עהזס סב חא ,עסהזסס ה סו בב ו מ + 1 בזסססת תרשים 25.18: טופס רגיל זה, מסוג 0706 נוצר בעזרת 0ז23ו\\ וחזס- 803 8 סדנת לימוד 6.0 8\ פזסח)וטוה .₪ זה זסחוטו3 | ₪! טוה 36 ,חסזבה | 14437 םחו 9955 = ח3 ,36 | 11165 .4 .4085 :10143 (086ו ,עספה | 3293 ור 3‏ ,וזסגו0 פה | 25 31 060 .46 | 3887 = 0 \6םא 1106 333 ,30050 | 10001 ב|סז3] ,30650 | 10002 הוחא , עהופהזסטה | 10237 חא ,עוסהזסס | 15636 .5 ,41ו0פפזום ה .5044 566 ,וגוססטווםה ‏ 1749 >\חחאב \] ,פוסחופ ב .824 >חחק3 ,פגוסחוה, 8704 .3 חז53 ,פצוסזוסס .3‏ 10388 ,זה 12572 וא הח תרשים 25.19: טופס מסוג 00א6!= אלגנטי יותר, גם נוצר בעזרת 0ז28ו\\ וחזס- בהז |<1ם)- | וסנו .ז] 3 , .51 4208 א ד פס הש דנופו0 הווא מו ה דוק א 1 ואו 3 פו/\ ]|0פזגוס ץ' 60 ד | = | תרשים 25.20: גם טופס זה, שהוא מסוג |וג060/ז135%6], נוצר בעזרת 6זב3ּלו\\ חחזס הזה מכאן... בפרק וה למדת להשתמש בפקד הנתוניס ובפקדי איגוד נתוניסם לצורך יצירה מהירה של יישוס לטיפול במסד נתוניס, הפועל על מסד נתוניס קיים. תוכל למצוא מידע נוסף לגבי נושאים רלוונטייס במקומות הבאיס: פרק 25: פקד הנתונים ופקדי איגוד נתונים | 679 %, + מידע אודות עיצוב מסדי נתוניס ונורמליוביה של מסדי נתוניס תוכל למצוא בפרק 24 יסודות מסד הנתונים. > מידע אודות אופניס מתקדמים יותר לקישור תוכניות למסדי נתוניס תוכל למצוא בפרק 26 שימוש באובייקטי גישה לנתונים (540), פרק 27 - גישה לאובייקטי נתונים מרוחקים (ססא), ובפרק 28 גישה לאובייקטי נתונים באמצעות פקדי אסעוץ6\. + | מידע אודות יצירה של דוחות על-סמך נתוניס המאוחסנים במסדי נתוניס תמצא בפרק 29, יצירת דוחות. 0 סדנת לימוד 6.0 8\ שימוש באובייקטי גישה לנתונים (0הפ) מה בפרק? מבוא ל-0אפ הגדרת פרויקט הכולל אובייקטי סאפ פתיחת מסד נתונים קיים בחירת סוג מערך הרשומות שבו תשתמש הצבת המידע על המסך הגדרת מיקום מצביע הרשומות שימוש במסננים, אינדקסים ומיונים התייחסות לתוכניות המשנות רשומות מרובות הבנת פקודות תכנות נוספות מבוא לעיבוד טרנזקציות פרק 26: שימוש באובייקטי גישה לנתונים (סגכ) | 681 בפרק 25 פקד הנתונים ופקדי קישור נתונים למדת כיצד לפתח יישוס לניהול מסד נתוניסם במהירות, על ידי שימוש בפקד נתוניס ובפקדי איגוד נתונים (0חטסם-8ז8 5 0)) הנתמכים על ידי 8856 |808ו/\. בפרק למדת שניתן ליצור טופס הזנת נתוניס כמעט מושלם פשוט על ידי הגדרת כמה מאפיינים. טפסי הזנת נתוניסם המבוססיס על פקדי נתוניס הס כמעט מושלמים מפני שפקדי נתונים אינס יכוליס לבצע פעולות מסוימות הנדרשות לשס עבודה עס מסדי נתוניס, אלא אס כן מצרפים אליהס קטעי קוד. פעולות אלו כוללות הוספת רשומות למסדי נתונים, גריעת רשומות ממסדי נתוניס ואיתור רשומות מסוימות. פעולות אלו תחשופנה אותך לנושא כתיבת קוד במסגרת יישומים לניהול מסדי נתוניס. אך תוכל גם לפתח יישומיס כאלה אך ורק על ידי תכנות, ללא שימוש בפקדי נתוניסם. כאשר תשתמש רק בפקודות תוכנית, יהיה עליך להיעזר באובייקטי גישה לנתוניס - (040) 00[666 460655 הּז8ס. בפרק זה תלמד כיצד ניתן להיעזר באובייקטי גישה לנתוניס של 8856 |1508/ ליצירת יישוס שלס ויציב לניהול נתונים. אובייקטי גישה לנתוניס משמשים כמייצגים פנימייסם של נתונים פיסיים (ז08 |ףּסופעְחק), כלומר נתוניס המאוחסניס בסוגיס מסויימים של מסדי נתונים או מנגנוני ניהול נתוניס. ניתן להתייחס לאובייקטי הגישה לנתוניס כלמשתניסם מסוג מיוחד. אך 'משתנים"י אלה מייצגים פריטי מידע המאוחסניס מחנץ לתוכנית ולא בוּיכרון המחשב בעת שהתוכנית פועלת. מבוא ל-80 שימוש באובייקטי גישה לנתונים ובפקודות התוכנית הקשורות בעבודה עמס מורכב יותר משימוש בפקדי נתוניס ובפקדי איגוד נתוניס, אך הוא מציע גמישות תכנותית רבה. אובייקטי גישה לנתוניס והפקודות הנלוות אליהס מהוויס גם את הבסיס לרוב הפעולות הקשורות בשימוש בפקדי נתוניס ובפקדי קישור נתונים, כך שהס יסייעו בהבנת מושגיס הקשוריס בשימוש בפקדיםס כאלה. בפרק 25 למדת שגם בעת שימוש בפקדי נתוניס, תידרש לכתוב קוד לשס הרחבת מיגוון היכולות של פקדיס כאלה. לשס המחשת נקודות הדמיון וההבדלים הקיימים בין אובייקטי גישה לנתוניס לבין פקדי נתונים, תלמד בפרק זה כיצד לבנות טופס הזנת נתונים שיעבוד עם מסד נתוני הדוגמה 08וא.818110 (אשר מסופק יחד עם 8856 |1508/). טופס הזנת הנתוניס שתבנה במהלך לימוד הפרק מתואר בתרשים 26.1. אחת הסיבות העיקריות שבעטיין כדאי להשתמש בפקודות תוכנית היא שפקודות אלו מקנות לך רמה גבוהה יותר של גמישות מכפי שיתאפשר לך להשיג על ידי שימוש בפקד הנתוניס. תוכל לבצע פעולות לווידוא תקפות הנתוניס (ח0800ו|8\ 8ז8) שתהיינה מורכבות יותר מפעולות דומות שתבוצענה תוך הסתמכות על כללים המוגדריס במסגרת מסד הנתונים, מפני שפקודות תוכנית לא ניגשות למסד הנתוניס באופן ישיר. תוכל גס לבטל פעולות עריכת נתונים מבלי שתידרש לבצע טרנזקציות (5ח58600ח8זד). במיליס אחרות ניתן לומר שהתוכנית שלך תוכל לבדוק את הנתוניס שיוזנו לפני שיתבצע ניסיון להוספת הנתונים למסד הנתוניס. פקודות תוכנית מהוות גם אמצעי 12 סדנת לימוד 6.0 8\ יעיל לביצוע פעולות קלט וחיפוש, שאינן דורשות אינטראקציה עס המשתמש. דוגמאות לפעולות אלו הן קבלת נתוניס ממכשירי מדידה אוטומטיים, באמצעות מודסם או חיפוש מחירי פריטיס בטבלה. פקודות תוכנית מאפשרות לך גס לבצע פעולות עיבוד טרנזאקציות (0חו06655זק הס ס586חהזד). |<ום). | 6|קחובּא 00 .= 5-4-קַס8ַבַָּ-חַ] ‏ :158 6 טסב ב :[ו| 8256ב | = פווד 5 6סת8סו זבס/ר | שזסססת או בוסססת וזו | בזסססח 1.35 [806 ששו --- זס] 56810 כ תרשים 26.1: תוכל לבנות את טופס הזנת הנתונים המוצג כאן על ידי ביצוע הוראות שתובאנה במהלך הפרק הגדרת פרויקט הכולל אובייקטי 40 בטרס יתאפשר להוסיף לפרויקט יכולות כלשהן לניהול מסדי נתונים (פרט ליכולות הנתמכות על ידי פקדי נתונים ופקדי איגוד נתוניס), תידרש לקשר את התוכנית לאחד מסוגי הספריות 00[6606 66655( בּזהכ. להגדרת ההפניה (06ח₪606076) לספריה יהיה עליך להפעיל את הפקודה ₪6)6760665 מהתפריט 0166 ולבחור מתיבת הדו-שיח ₪61660665 (שבכותרת שלה יוצג גם שס הפרויקט) את אחד הסוגים עזפּזטו | 40 160050 (ראה תרשים 26.2). הערה: 6 |8טפו/\ יכולה לכלול שני סוגי ספריות 0 236% ביישומים. סוגי הספריות החיצוניות הם 3.51 40 16050 ו- 2.5/3.51 0ב -50סזסוו. אם אתה מתכנן שכל יישומי הלקוח שלך יהיו בני 32 סיביות ושתיעזר רק בגרסת 32 סיביות, מנגנון 36 (אשר נתמך רק על ידי 95/97 460655), בחר בספריית 3.51 0גכ. אם תידרש לבצע חילופי מידע עם מערכות בנות 16 סיביות או עם יישומים המבוססים על 2 66655, יהיה עליך להשתמש בספריית התאימות 2.5/3.51 סס. פרק 26: שימוש באובייקטי גישה לנתונים (סגכ) | 683 | | 1 - 0160065ו6 6 שופ ב!ו שי | 06 2 זפחהו65) ה[-₪3₪ +/ספטטוויז | 0. 10518005 6חח65 חטו66החס-) + זספטודויז | | 650060 חסול החסה 50סיסוו | = | | ו בזס/ 1 ט הפב קרחכ> 13.51 5. 2 00 6הספססווי ה | סו | 00 1 כ כ כל 5 ויו + > עזבזם! | 20306 3זה0 ז]ספסשסוו] 0160 הוחו 358 6ספטסווי | | סוק 0 זתפחחט זויח= 868 ])ס5טוסוווי | | | בשי 0 1 19065 פופו הז +הפוחחפ זועית= 0363 = וספטטווי | | | + 0 3065 105% השח ווח 0368 +]ספטיסוו= | | זב זו 96% הַהו360 חס 03% +הספסיטוויז | = ור זפת050 :סקפ 0363 +)ספטסוויז | | 0 זח0650 ₪900 0353 +)ספסיסוו] ₪ ב 100015055 ₪6 זט 53 >]ספפיזסו] | , זב זפ | 665[ 0 51 3 00 >%וספטיסיוויז 5 5050 = סיס \55 = הלקו = :1680 53 הביטחה 1 תרשים 26.2: הוספת הפניה לספריית 40 הופכת את אובייקטי סמ זמינים לתוכנית בעת פעולת תוכנית, מסד נתוניס נפתח כחלק מהפעלה (החס56550) עס מנגנון מסד נתונים (פַחופַח= 856מ8זהכ). ב- 88516 |808ו/\ מנגנון מסד הנתוניס מיוצג על ידי אובייקט מסוג 6חופַח85כ. הפעלה מוגדרת על ידי יצירת אובייקטי 50866אזס/\ המוגדריס במסגרת אובייקט 6חוחַחפפכ. במסגרת אובייקט 6ַחוּפַחפפכ ניתן להגדיר אובייקט 6 אחד, או יותר. כברירת מחדל, הוספת הפניה לספריית סג יוצרת במסגרתו באופן אוטומטי אובייקט 6חופַח85כ ואובייקט 90866אזסצ\ אשר זוכה לכינוי (076508005)0/\ (השס הזה נובע מכך שזהו האובייקט הראשון הכלול באוסף האובייקטיס 508665אזס/\ - שבמסגרתו מיושמת מניית אובייקטים מ-0). אובייקטי ברירת המחדל האלה יספיקו לך לצורך ביצוע רוב הפרויקטים המבוססים על אובייקטי סמס. לאחר שתגדיר הפניה לספריית 40 תוכל לפתוח את מסד הנתוניס על ידי שימוש בשיטה 08180856ח6ק0 אובייקט 50866אזס/\. סדרת המושגיס שהובאה כאן עלולה לגרוס לבלבול מסוים, מפני שמשתמע ממנה שיצירת אובייקט 08190856 מתבצעת על ידי פתיחת ₪8%00856 קיים. השיטה 28082856ח6ק0 שייכת לאובייקט מסוג 6 אך בעת פנייה אליה מניחים שנעשה שימוש באובייקט 680806זס/\ המהווה ברירת מחדל - (6808665)0ז6.//0חופַח85 ולכן ניתן להשמיט את שס האובייקט המשמש לשם פנייה לשיטה. כך שבהנחה שהפרויקט מכיל רק אובייקט אחד מסוג 50866אזס/\, שתי שורות הקוד הבאות הן והות: (". 10 181" )390356 הק 0. (508065)0אזס/\.6חוטחם כ = 056 007 56% (". 10 0181" )080356 חק 0 = 05% 001 56% במהלך פרק זה נבנה יישום לדוגמה שיתבסס על מסד הנתוניס 818110.%08, המסופק עס 88516 |1508\. התחל את יצירת היישוס על ידי ביצוע הפעולות הבאות: 1 הפעל את 88516 |808ו/ וצור פרויקט חדש מסוג 5א5 55800370. 2 שנה את שס הטופס 1חזס לשס 65% ד0\וחיז1 ושמור את הפרויקט. 4 סדנת לימוד 6.0 8\ 3 הוסף לפרויקט הפניה לספריית ₪20 המתאימה, על ידי בחירת הפקודה 65 מהתפריט 66%5[סז, תוצג לפניך תיבת הדו-שיח ₪6]:/60665 36 66[סזק (הביטוי 60%8₪06[סזק יוחלף על ידי השס שתגדיר עבור הפרויקט שלך, ראה תרשים 26.2). 4 סמן ליד הפריט ץזפּזטו1 +02[166 3.51 00 +ספסיסווא. 5 לח על 0% כדי לסגור את תיבת הדו-שיח. לאחר שתשלים ביצוע פעולות אלו הפרויקט שלך יכיל הפניה לספריית 406655 85 %5, אשר תאפשר לך להשתמש באובייקטי 40פ במסגרת הפרויקט. פתיחת מסד נתונים קיים הצעד הראשון בכתיבת יישומיס רביס המנהלים מסדי נתוניס הוא התקשרות למסד הנתוניס שבו מעוניניס להשתמש. אס מסד היישוס שלך יפנה למסד נתוניס קיים, יהיה עליך להגדיר במסגרת התוכנית אובייקט מסוג 6פַפ8ּזה8כ, ולהיעזר בו לצורך הגדרת קישור למסד נתוניס קייס. בכך, אתה למעשה ייפותח את מסד הנתוניסיי לצורך שימוש התוכנית שלך. רוב הסוגיס האחריס של אובייקטי גישה לנתונים 'ינובעיס" מתוך אובייקטיס מסוג ס855ּפ88זכ. תוכל להתייחס לאובייקט מסוג 08190856 כאל האופן בו מיוצג מסד נתונים פיסי כלשהו במסגרת התוכנית שלך ולא כלמסד הנתוניס עצמו. אובייקט 08190856 הכלול בתוכנית שלך הוא למעשה חלון למסד הנתונים. המשך את בניית יישוס הדוגמה, על ידי ביצוע הפעולות המפורטות להלן, שבמסגרתן תשתמש בשיטה 08%80856ח6ק0 לשס יצירת אובייקט מסוג 08680856 וקישורו למסד הנתוניס 18110.8 : 1 בקטע 2666780005 |78ז8ח66 (הצהרות כלליות) של הטופס, הוסף את שורת הקוד הבאה, שתיצור משתנה ברמת טופס מסוג 0001666 88808556 : 6 5 +05 ₪0 וחוש 2 הוסף את שורות הקוד הבאות לשגרת האירוע 1080 של הטופס. קטע הקוד הזה, אשר יתבצע בעת טעינת הטופס, ייצור אובייקט 08189856 בשס :60165 על ידי פתיחת מסד הנתוניס 8ס1א.10 8181 : 58 5 הסוזהסס 501 חחוס "טסרח. סווטוט\898/\סו5600 |1508/ 50סזסוו]\65!ו= החהפזססזק\:6" = חסטסס ן₪ס5 (ח0ו0680 08080856)5001 ח6קכ0) = 05% 001 56% פקודות אלו תפתחנה מסד נתונים מסוג ‏ 26% עס ברירות המחדל 0808 66ן/080ז 5 |(- 406055 8760ח5. תחביר השיטה 08088856ח6ק0 מאפשר לך להגדיר שהגישה למסד הנתוניס תותר רק למשתמש אחד ברגע נתון או רק לצורך קריאה (מצב שלא יאפשר לבצע פעולות עדכון). בעת התקשרות למסד נתוניס שאינו מסד נתוניס של 5, ליתאפשר לך להגדיר את סוג מסד הנתונים. פרק 26: שימוש באובייקטי גישה לנתונים (סגכפ) | 685 באופן העבודה ץ|ח₪680-0 (לקריאה בלבד) תשתמש כאשר תרצה להתיר רק חיפוש רשומות (תוכל לכלול ביישומים שלך טבלאות כגון טבלאות מיקוד, שתהיה מעוניין שמשתמשים יוכלו לעיין בהן, אך לא יוכלו לבצע בהן שינוייס). כדי לפתוח מסד נתוניס לקריאה בלבד, יהיה עליך לשנות את פקודת 565 באופן המתואר להלן. הפרמטר הראשון לאחר שס מסד הנתוניס יגדיר האס הגישה למסד הנתוניס תותר רק למשתמש יחיד ברגע נתון והשני מציין האס הגישה היא לקריאה בלבד: (6טד ,8!56= ,"פס 05 6:\21060" )335 חק 0 = 65 דט 56% פתיחת מסד הנתוניס רק מקשרת את התוכנית שלך למסד הנתונים עצמו אך אינה מקנה למשתמש גישה לנתוניסם עצמס. אס תרצה לאפשר למשתמש גישה לנתוניס, תידרש לפתות אובייקט מסוג מערך רשומות (₪6607050), שיקושר לנתוניס המאוחסנים בטבלת מסד הנתונים או בכמה טבלאות בו. בחירת סוג מערך הרשומות בו תשתמש כאשר אתה יוצר אובייקט מערך רשומות, לפתיחת מערך רשומות במסגרת התוכנית, תוכל להגדירו כך שישמש לגישה לטבלה שלמה, לשדות מסוימיס בטבלה, לרשומות מסוימות בטבלה, או לשילוב כלשהו של רשומות ושדות הלקוחיס מכמה טבלאות. 6 |8שפו\ תומכת בשלושה סוגים של מערכי רשומות : סוג המערך סוג הנתונים שבמערך הרשומות כל הרשומות בטבלה פיסית שבמסד הנתונים %פהחעק | סדרת מצביעים המאפשרים גישה לשדות ולרשומות שבטבלה או בכמה טבלאות שבמסד הנתונים 5% | עותקים לקריאה בלבד של הנתונים שבטבלה או בכמה טבלאות. הם מאוחסנים בזיכרון הערה: במהלך פרק זה נתייחס למושגים 180!6, זספהחץכ ו-סחִ5כְ8ח5, אך חשוב שתזכור שכל המושגים האלה הם סוגים של מערכי רשומות, שניתן לגשת אליהם רק על ידי שימוש באובייקטים מסוג ₪6600560. כך שכל החש הוא למעשה מערך רשומות מסוג זספהּחץכ (₪6601056% ז6סְפהחץ2), כל 6!פ3ד הוא מערך רשומות מסוג 1806 (₪6601056% 6|טפד) וכל הוא מערך רשומות מסוג זַסִחַ5כְ8ח5 (₪66070566 זסְחַ5כַבח5). גרסאות קודמות של 6 |508ו/\ תמכו באובייקטים מהסוגים 6טַב1, ץכ ו->חַ5כַהח5 אשר אינם נתמכים עוד. הסעיפיסם הבאיסם יתארו את הסוגיס השוניס של מערכי רשומות תוך התייחסות ליתרונות ולחסרונות של כל סוג והדגמת פקודות המשמשות לשם גישה למערכי רשומות. 6 סדנת לימוד 6.0 8\ שימוש ב-6וטבּד 6סהּד (מערך רשומות מסוג 1896) הוא קישור ישיר לאחת הטבלאות שבמסד נתוניס. עקב העובדה שכל הנתוניס מאוחסניס בטבלאות, השימוש במערך רשומות מסוג 6|פפדך מהווה את אופן הקישור הישיר ביותר לנתוניס. מערכי רשומות מסוג 1806 הס גס היחידיס התומכים באינדקסים, כך שפעולות חיפוש אחר רשומה מסוימת במערך רשומות מסוג 189!6 תתבצענה מהר יותר מפעולות חיפוש במערכי רשומות מסוג חח או 80500%ח5. בעת שימוש במערכי רשומות מסוג 1806, פעולות פנייה לנתונים ושינוי נתוניס מתייחסות לטבלה אחת ברגע נתון, תוך התייחסות לרשומה אחת ברגע נתון. אופן פעולה וה מאפשר רמת שליטה גבוהה על הפעולות שתבוצענה על הנתוניס. אך הוא אינו מאפשר לבצע פעולות המשנות רשומות בכמה טבלאות, בבת-אחת, כפי שניתן לעשות באמצעות שאילתות פעולה (65וז6ט) חסטסה). יתרונות השימוש במערכי רשומות מסוג 6!טבּד השימוש במערכי רשומות מסוג 1896 מאפשר להשיג מספר יתרונות : * תוכל להיעזר וליצור אינדקסיס כדי לשנות את סדר הצגת הרשומות במהלך פעולת התוכנית. + תוכל לבצע פעולות לחיפוש רשומות מסוימות, במהירות, על ידי שימוש באינדקס המתאים ובפקודה 566%. + שינוייס בטבלה שיבוצעו על ידי משתמשים העובדים במקביל אליך או על ידי יישומים שונים, יבואו לידי ביטוי מייד ולא תידרש לבצע פעולות לרענון הטבלה, כדי שייראו. חסרונות השימוש במערכי רשומות מסוג 6!טבּד מובן שהשימוש במערכי רשומות מסוג 9968 מלווה גס בחסרונות מסוימיס: >+. לא ניתן להגדיר מסנניס (5זפ6וו=) שיגבילו השפעה של פעולות מסוימות רק לרשומות העונות על קריטריוניס מסוימיס. > לא ניתן להיעזר בפקודה 6חו= בעת שימוש במערכי רשומות מסוג 80!6ד. הפקודה 6% תאתר רק את הרשומה הראשונה העונה על קריטריון מסויס כך שבעת הצורך בעיבוד סדרת רשומות, אתה כמפתח תידרש לכתוב קוד שיבצע את הפעולות הרלוונטיות על הרשומות הנוספות. ברוב המקריס תוכל להתגבר על מגבלות אלו בעזרת תכנות, אך רוב הפתרונות שאותס תידרש ליישס לא יהיו אלגנטייםס. בעת הדיון בפעולות למעבר על פני מערכי רשומות ולאיתור רשומות מסוימות במערכי רשומות נתייחס לפתרונות אפשריים לבעיות אלו. נושאיס אלה יידונו בהמשך הפרק. ראה, "הגדרת מיקומו מצביע הרשומות" בהמשך פרק זה. פרק 26: שימוש באובייקטי גישה לנתונים (סגס) | 687 פתיחת 6!טבּד לשימוש לפתיחת מערך רשומות מסוג 189!6, יהיה עליך להגדיר אובייקט ₪66070560 ולפנות לשיטה 6866070560ק0 של אובייקט ס0888855. ההגדרה שהמערך שייפתת יהיה מסוג 6 תתבצע על ידי שימוש בקבוע 0800601806 בפרמטריס של השיטה. בצע את הפעולות המפורטות להלן, כדי ליצור מערך רשומות מסוג 6|ס9ד בשס 51165 במסגרת היישוס לדוגמה: 1 הוסף את ההצהרה ₪86600566 35 507₪65ז וחום לקטע |8ז06ה006 865 של הטופס. 2 הוסף את שורת הקוד הבאה לשגרת האירוע 1086 של הטופס: (306 דה6כ0 ,"65 650.00 00 = 065 501 56% פקודה וו תפתח טבלה חדשה במסד נתוני 26, תוך שימוש באפשרויות ברירת המחדל שהן גישה משותפת וגישה לקריאה/כתיבה. תוכל לכלול במסגרת הפנייה לשיטה פרמטריס אופציונליים, כדי לפתוח את הטבלה באופן שיאפשר גישה אליה רק למשתמש יחיד ברגע נתון, או באופן שיאפשר גישה אליה לקריאה בלבד. הפרמטריס האופציונלייס האלה יפורטו בטבלה 26.1. הערה: בכל מקרה בו כוללים שם טבלה קיימת במסגרת השיטה ₪66070568ח6ק0, המנגנון יוצר מערך רשומות מסוג 180/6, כברירת מחדל. טבלה 26.1: אפשרויות המשנות את אופן הגישה לטבלה אפשרות פעולה מבוצעת הסט | מונעת ממשתמשים אחרים לכתוב לטבלה, בעת שהיא בשימושך 0 | מונעת ממשתמשים אחרים לקרוא מטבלה כשהיא בשימושך ץוח00₪6800 | מונעת ממך לבצע שינויים בטבלה שימוש ב-56%5בּחץפ חס (מערך רשומות דינמי) הוא אוסף נתוניס בטבלה או בכמה טבלאות. נתוניס אלה מורכביס משדות נבחריס מאותן טבלאות, אשר ברוב המקריס מוצגים על-פי סדר מסוים ולאחר שסוננו בהתאס לתנאים מסוימיס. מערך מסוג שפַחץ פונה לרשומות שהיו קיימות בטבלה בעת יצירתו. מערכים מסוג זִספּחץ ניתניס לעדכון, כך שכל השינוייסם שמשתמשים יבצעו עליהם, יאוחסנו ויעודכנו. אך הפעולות לא תשתקפנה לאחר שמערך הרשומות כבר נוצר. עקב כך, השימוש במערכי רשומות מסוג % עס במסגרת סוגים מסוימים של סביבות מרובות משתמשים אינו כה יעיל. 8 סדנת לימוד 6.0 8\ יתרונות השימוש במערכי רשומות מסוג הצ להלן יפורטו כמה מהיתרונות המוצעים על ידי מערכי רשומות מסוג זספחץכ : + מערכי רשומות מסוג א+6פחץ₪ מאפשרים לשלב בין נתוניס מטבלאות שונות. > מערכי רשומות כאלה מאפשריס לך להיעזר בשיטה 06חו= לשסם איתור ועיבוד כל הרשומות העונות על קריטריוניס מסוימיס. + | מערכי רשומות מסוג ז856ּחץ₪ מאפשרים לך להגביל את מספר הרשומות, או את מספר השדות שיאוחזרו ממסד הנתוניס לתוך מערך הרשומות. > מערכי רשומות מסוג א856חץ0 מאפשריס להיעזר במסננים ובמאפייניס להגדרת סדר מיון לשם שינוי אופן תצוגת הנתוניס. מגבלות מערכי רשומות מסוג 56%ב3ּחץ למערכי רשומות מסוג א6פחץכ יש גם מגבלות : + > לא ניתן להשתמש באינדקסיס בשילוב עס פוספּחשְכ, כך שלא ניתן לשנות את הסדר בו תוצגנה הרשומות שבמערך רשומות מסוג זספּחץכ על ידי שינוי אינדקס או על ידי יצירת אינדקס חדש. + מערכי רשומות מסוג אפּחץ0 לא יישקפו באופן אוטומטי פעולות להוספה או גריעת רשומות שתבוצענה על ידי משתמשים או יישומים אחרים. כדי להציג שינוייס כאלה, תידרש לרענן את מערך הרשומות או ליצור אותו מחדש. הגדרת מערך רשומות מסוג 56%בּחץ כדי להגדיר מערך רשומות מסוג זספַחץ, יהיה עליך להגדיר אובייקט ₪66070566 באמצעות משפט חוכ וליצור את מערך הרשומות על ידי שימוש בשיטה ובקבוע 8560חץ0ח6ק000. בעת יצירת אפּחַעְכ, משפט 501 מהווה חלק חשוב מהפנייה לשיטה. משפט זה מגדיר את הרשומות שבמערך, את תנאי הסינון ואת תנאי הצירוף המשמשיס לשס קישור בין נתוניס שבטבלאות שונות. קטע הקוד הבא ידגיס כיצד ליצור שחש על ידי שימוש במשפט 501 שיבחר רק רשומות מסוימות וימיין אותן בסדר מוגדר. הפקודות שבדוגמה תאפשרנה גישה לאותס נתוניס שאליהס ביצעת גישה בדוגמה הקודמת, אך ההבדל בין הדוגמאות הוא בסוג מערך הרשומות שנוצר במסגרתן. 6 28 פסע וס 5 מע חחוס 8ַחו5₪ 5( .5501 וחוס ("ס סח סווטוט")80856 הסק0 = פס 56% "6 צם םכח 'ם' => 6 םהםהש\ ₪065 זסת * ז0ם |שפ" = .5501 (8560 חש 00006 , (66070566)550 ח6ק0.פ סש = פחץו] 56 פרק 26: שימוש באובייקטי גישה לנתונים (סגכפ) | 689 אס תרצה לכלול בתוך אפחץ0 את כל הרשומות בטבלה מסוימת אך מבלי למיין אותן בסדר מסוים, תוכל להשמיט את משפט 501 ולהשתמש רק בשס הטבלה: 56% 511065 = 007 650.06 08000856)" 65"( הערה: כדאי שתכלול משפט 501, אם ייתכן שבעתיד תרצה לשנות את הקריטריונים שישמשו לבחירת רשומות. בעת יצירת מערך רשומות מסוג זספחץ תוכל להיעזר בכל משפט 501 חוקי אשר כולל ביצוע פעולה לבחירת רשומות. תוכל גס להגדיר אפשרויות לאופןו פעולת המערך. אפשרויות אלו תפורטנה בטבלה 26.2. טבלה 26.2: אפשרויות המשנות את אופן הגישה למערך רשומות מסוג זפאח אפשרות פעולה מבוצעת 6 ץח | מונעת ממשתמשים אחרים לכתוב למערך כשהוא בשימושך וח006800 | מונעת ממך לבצע שינויים בטבלה ץוה00ח06ק\00 | מאפשרת להוסיף רשומות חדשות לטבלה אך מונעת ממך לעיין ברשומות קיימות או לשנות אותן חסטסזח 78551 00501 | מעבירה את משפט ‏ 501 שישמש ליצירת מערך הרשומות ל- ]56706 0086 לדוגמה, קטע הקוד הבא יראה לך כיצד ליצור מערך רשומות מסוג זספּחץ0 שיאפשר למשתמשים לקרוא רשומות בלבד: 560 ץח ,"65 0 * 607ם [55 6056 חק 65.0 007 = 511065 56% (ץוח6800 0 ראה, "שימוש במשפטי ד60= |55", נספח 3. הערה: זז 086 הוא מנגנון מסד נתונים, כדוגמת 56/8 501 או 806זס, אשר תואם לתקן (0086) שושו0860ח60 28680856 ח6ק0ס. שרת כזה אמור לעבד את השאילתות אצלו ולהחזיר את תוצאות העיבוד ליישום הלקוח. מנהלי התקן (פופצוזסם) ממשק 0086 אשר נכתבים לרוב על ידי יצרני מנגנון מסד הנתונים מטפלים ביצירת הקישור בין 6 |8טפוש\ לבין שרת מסד הנתונים. יתרונו של 0086 הוא בכך שהוא מאפשר להתקשר לנתונים המאוחסנים בשרתי מסד נתונים מבלי להידרש להכיר את אופני הפעולה הפנימיים של אותם שרתים. 0 סדנת לימוד 6.0 8\ ניתן גס ליצור %פחץ0 מתוך ש6פחץ2 אחר. אחת הסיבות שבעטיה תרצה לבצע פעולה כזו היא כדי שתוכל להשתמש במאפיינים זטטוו= ו-50% של מערך הרשומות הראשון לצורך הגדרת מסנן וסדר מיון הרשומות שתיכללנה במערך הרשומות השני. על ידי יצירת אובייקט זסִפַחץכ שני אתה יוצר תת-קבוצה של הרשומות שבמערך הרשומות הראשון. ברוב המקרים, מערך הרשומות השני יהיה קטן בהרבה מהראשון, מצב אשר יאפשר לעבד את הרשומות בו מהר יותר. קטע הקוד הבא ייצור מערך רשומות מסוג %פפחע מטבלת 5:07675ט6, לצורך יצירת רשימת לקוחות המתגורריס בכל רחבי ארצות הברית. ממערך זה ניצור מערך רשומות שני שיכיל רק לקוחות המתגורריס במדינת טנסי אשר ימוין על-פי מיקוד, לצורך עיבוד עתידי: 6" 5 אהו הזוס 5 50500075 חחום 385 )1 5 וחוס (ח0ו0680 |206008088856)508) = 6%אז003 56% 006560 ,"005505 .או = 50050015 56% "אד = 5500" = ז00]ן.5005%00015ז "217" = 5005600015.501ז 56% 5 \56 = 50500 5.0 חק‎ 660756) 56 ייתכן שתתהה מדוע לא תוכל ליצור את מערך הרשומות השני, שהרשומות המאוחסנות בו הן הדרושות לך, ישירות מהטבלאות המקוריות. התשובה היא שתוכל לעשות זאת במצביס בהסם תידרשנה ליישוס שלך רק הרשומות המאוחסנות בטבלה השנייה. אך לשס הדגמה נתייחס למערכת לניהול רשימת חברים בגוף מסוים, שבמסגרתה תרצה שתהיה לך גישה לרשימת החבריס המלאה (אשר תיווצר על ידי יצירת מערך %ִפהּחץכ ראשון). אך תרצה גם שהמערכת תאפשר לך ליצור רשימת כתובות למשלוח דואר לחבריס המתגורריס באזור מסוים (רשימה אשר תיווצר על ידי יצירת מערך זַספַחץ שני). העובדה כי המערך הראשון מכיל מצביעים לרשומות שבמערך השני תאיץ את יצירתו באופן ניכר, בהשוואה למצב יצירת 856%חץ מאפס. שימוש ב-זסַַ5כְַב53 משס הסוג 5035 (תמונת הבזק), משתמע שמערך רשומות כזה הוא צילוס מסד הנתוניס בנקודת זמן נתונה. מערך רשומות מסוג זַסח5כְח5 דומה למערך מסוג עס בכך שהוא נוצר מטבלת בסיס באמצעות שימוש במשפט 501, מאובייקט טס ממערך רשומות מסוג 056% או ממערך רשומות אחר מסוג 50805001. מערך 80500%ח5 שונה ממערך זַפפהַחץ0 בכך שהוא אינו ניתן לעדכון. שורת הקוד שתוצג להלן תדגיס יצירת מערך רשומות מסוג וה: (000006050805000 , (6607056)550 ה6ק0. סע = פחץו] 56 כעיקרון, כדאי להשתמש במערכי 58500 לעיבוד מידע שאינו רגיש לזמן, כלומר לעיבוד מידע שבעת התייחסות אליו אין משמעות לשינוייס שבוצעו ברשומות לאחר יצירת המערך. אופן השימוש העיקרי במערכי 580500 הוא לשס יצירת דוחות ומסכי הצגת נתוניס שהמידע המוצג במסגרתס הוא סטטי. פרק 26: שימוש באובייקטי גישה לנתונים (סגכ) | 691 יתרונות השימוש במערכי רשומות מסוג זסחַ5כְַ53 מערכי רשומות מסוג 508050% מקניס לך את היתרונות הבאים : > למזג נתוניס הלקוחיס מטבלאות שונות. + שימוש בפקודות 0חו= לאיתור רשומות. + יצירת המערך והניווט בו מהירים יותר מאשר בעת שימוש ב-זספַחץְ0, מפני ש-80500%ח5 מורכב מעותקים של הנתונים במקוס ממצביעים לנתונים. חסרונות השימוש במערכי רשומות מסוג זסוַ55כְב5₪3 החיסרון העיקרי בשימוש במערך רשומות מסוג 80500%ח5 הוא שהמערך אינו ניתן לעדכון. חיסרון נוסף, בעת השימוש בו לא ניתן לחיעזר באינדקסיס לשינוי סדר הצגת הרשומות או לשס איתור רשומות מסוימות. י אזהרה: כדאי שתקפיד שמערכי רשומות מסוג זַסִחִ5כְַַח5 יכילו מספר רשומות קטן, זאת כדי למנוע בעיות זיכרון פנוי. הגדרת מערך רשומות מסוג *סַחַ5כְ5₪3 ניתן ליצור מערך רשומות מסוג ז00ַ5ק8ח5 על ידי הגדרת אובייקט -₪660705% תוך שימוש במשפט חום וקריאה לשיטה 8660/056%ה6ק0 תוך שימוש בקבוע 0 לשס הגדרת הרשומות שתיכללנה במערך הרשומות. גם בעת יצירת מערך זה תוכל לכלול בקריאה לשיטה פרמטרים אופציונלייס. פרמטריס אלה יפורטו בטבלה 26.3. טבלה 26.3: אפשרויות המשנות את אופן הגישה למערך רשומות מסוג זסחַ5כְח5 חכ | מונעת מאחרים לכתוב ל-זסחִ5כְַ8ח5, כשהוא בשימושך ץוח00זאוזס-00 | מאפשרת לגלול קדימה בלבד, בעת הצגת 5080500 חףָטסזח 28557 00501 | מעבירה את משפט 501 שישמש ליצירת מערך הרשומות ל- ז6\ז56 0086 לשם עיבוד 12 סדנת לימוד 6.0 8\ שימוש במערך רשומות מסוג ץ!חס-6זבּערוס-] מערך רשומות מסוג ץ|חס-0זאוזס= הוא סוג מיוחד של מערך רשומות מסוג 5080500%, אשר מאפשר גלילה קדימה בלבד בעת עיון ברשומות הכלולות בו. כלומר שלא ניתן להשתמש בשיטות %זוח6ץס!], 5טסועסזקסטסו₪ ו-0חו=₪ בעת עבודה עם מערכי רשומות מסוג זה. יתרונו הוא שהוא מהיר יותר ממערך רשומות מסוג 80500%ח5, אך במערכי רשומות מסוג וה ניתן להשתמש רק במצביס שבהס יידרש מעבר אחד בלבד על מערך הרשומות, למשל במסגרת יצירת דוחות. כדי להגדיר מערך ץוחס-6ז8ווזס= יהיה עליך להשתמש בשיטה 86607056%ח6ק0 שתכלול בקריאה אליה את הקבוע ץ|ח00ז8ז0ח6ק400, כמתואר בשורה הבאה: (ץ|חכ זה ס- חק 000 , 660560550 ה6קס. סכיא = פחץו] 56 הצבת מידע על המסך נניח שיצרת טופס להזנת נתונים תוך שימוש בפקד נתונים ובפקדי איגוד. אס תרצה להציג נתוניס על גבי הטופס, תידרש בסך הכל לשרטט פקדי איגוד נתוניס ולהגדיר שדות שהנתוניס הכלוליס בהם יוצגו במסגרת הפקדיס האלה. התצוגה תתבצע באופן אוטומטי. אס תשתמש באובייקטי גישה לנתונים, התהליך יהיה מורכב יותר, במעט. תידרש עדיין להשתמש בפקדים (כגון אס0ם)א6 ך, א6066%80 וכדומה) לשס הצגת המידע, אך תידרש להגדיר את השדות שמהס יילקחו הנתוניס שיוצגו, עבור כל רשומה ורשומה, על ידי הגדרה מאפייני הפקדים. לדוגמה, יהיה עליך להציב את תוכן השדה במאפיין א6ד של פקד א0ם)א6ד או במאפיין ח00ק68 של פקד |1806. כאשר משתמשים בפקדים באופן כוה, הס מכוניס לרוב פקדים בלתי מאוגדים (₪0|5ח60 6חטסט-חש). אחד היתרונות בשימוש בפקדיס אלה הוא שבעת יישוס אופן פעולה כזה ניתן להשתמש בכל סוגי הפקדים לשס הצגת המידע ולא רק בפקדי איגוד נתוניס שיועדו מראש לשימוש בשילוב עס פקד פְּפ. גישה לנתונים המאוחסנים בשדות מסד הנתונים למידע המאוחסן בשדות מסד הנתונים ניתן לגשת על ידי שימוש באוסף (חסטססו|60), 5 של אובייקט ₪6607056%, באחד מכמה אופנים. לדוגמה, כל אחד מהמבניס התחביריים שיפורטו להלן יכול לשמש לאחזור הערך המאוחסן בשדה בשם 6ופו=פוחד לתוך מערך רשומות בשסם 151655 והצגת הערך בתיבת טקסט ששמה 61א6ד: * ניתן להשתמש במספר הסידורי של השדה, במסגרת האוסף ₪6!066. לדוגמה, המשפט (5165%.16/05)0] = %א601.76ד יציג את תוכן השדה 0שתפוחד בתיבת הטקסט 61א6ד, ואת בהנחה ש-6|שוחפוחד הוא השדה הראשון באוסף 6]05ו=. * ניתן להסתייע בשם השדה כדי לאחזר את ערכו מתוך האוסף ₪6!65: ("6|0ו15ח 16|05)"7-].%א6 5 = %א6ך.1)אסד. פרק 26: שימוש באובייקטי גישה לנתונים (סגס) | 693 ניתן לנצל את העובדה כי ₪6!05 הוא האוסף המהווה ברירת מחדל בעת שימוש באובייקט 6607056 : ("6|0ו15ח ")65% 5" = 6אך.1+א6דך לחילופין, ניתן להשתמש גס בגירסה מקוצרת של השיטה הקודמת שהוצגה: 0 6507 5 = %א6 ד.%1א6ד. הערה: אם שם השדה כולל בתוכו רווחים, תוכל להקיף את השם כולו בסוגריים מרובעים, כמו בדוגמה הבאה: [6וחּח ₪6!0 ז6פחסו] 650 [5ז = 6%%ך.1+א6ד הצגת נתונים ביישום הדוגמה כעת תוכל לשפר את יישוס הדוגמה ולגרוס לו להציג את הנתוניס המאוחסנים במסד הנתוניס. אס ביצעת את ההוראות עד כה, התוכנית שלך תיצור אובייקטי 889856 (-₪66070561 על ידי כך שהיא תפתח את מסד הנתוניס 818110.08 ואת הטבלה פ6שודך שבו. המשך בפיתוח היישוס על ידי כתיבת שגרות שתצגנה את הנתוניס המאוחסניס בשדות 158%, 006 ו-60ח5ו!פטק זי של הרשומה הפעילה, שאותן תכתוב על ידי ביצוע הפעולות שתפורטנה להלן: 1 2 הוסף לטופס שלושה פקדי א080א6ד וקרא להס 0₪0158%, 0007106 ו-זהס/))ס. הוסף פקדי |1886 שייוהו את פקדי 80%)א6ד. הגדר את המאפיין ח₪0ק68 של כל פקד |1806 בהתאם לייעודו: :158 <* :סוד >< ז68ץ % לאחר הוספת פקדי אסם])א6ד ו-|806! טופס היישוס ייראה כבתרשים 26.3. תרשים 26.3: שימוש בפקדים בלתי מאוגדים בשילוב עם אובייקטי גישה לנתונים לשם הצגת נתונים המאוחסנים במסד נתונים 4 סדנת לימוד 6.0 8\ 4. הקלד את קוד 6ז0ו0660זק 5 581-06606 המובא להלן, בחלון הקוד של הטופס 5% דה סוחז: ( )6|05וח/שסח5 50 6 = זא .6 ןא = א דך. 150 [60ח5ו!ס טק 68 ]!11065 5 = אס ך. 08 0 50 0ח= 5 הוסף את שורות הקוד המובאות להלן לסוף שגרת האירוע 1080 של הטופס: .065 פז 5 5 ||68 הערה: עקב העובדה שהמאפיין %א6ד הוא מאפיין ברירת המחדל של פקד תיבת טקסט, לא הכרחי לכלול את שמו בשורת הקוד המציבה בו ערך. אך מומלץ לכלול את שם המאפיין בשורת ההצבה, לשם שמירה על קריאות הקוד. שינוי מיקום מצביע הרשומות משוס שמסד נתונים המכיל רק רשומה אחת אינו דבר מועיל במיוחד, מנגנון מסד הנתוניס נדרש לכלול אמצעי כלשהו המאפשר מעבר בין הרשומות שבמערך. 6 |ו508/\ מציעה שש טכניקות לביצוע פעולות אלו: טכניקה תיאור 5 6שטס\ | מעבירות את מצביע הרשומות (ז6וחוסק 0ז₪660) מהרשומה הנוכחית לרשומה אחרת במערך 5 סחו | מאתרות את הרשומה הבאה העונה על תנאי החיפוש. פועלות על מערכי רשומות מסוג חכ ו-ז0ח805ח5 06 566% | מאתרת את הרשומה הראשונה העונה על תנאי מסוים שזסקסזק 500% | מזהה מיקום רשומה מסוימת חסחו5סק6ט!550 | מעבירה את מצביע הרשומות למקום מסוים במערך ח00ו060%205ז6ק | מעבירה את מצביע הרשומות לרשומה הקרובה ביותר לשיעור הנתון מתוך גודלו הכולל של מערך הרשומות לכל אחת מטכניקות אלו יש יתרונות וחסרונות, שיפורטו בסעיפיס הבאיס. פרק 26: שימוש באובייקטי גישה לנתונים (סגכפ) | 695 שימוש בשיטת 6עסוא בקבוצת השיטות 6שטסוא חמש שיטות שבהן ניתן להשתמש לצורך עבודה עס כל סוגי מערכי הרשומות הנתמכים על ידי 8856 |1508\: מעבירה את המצביע מהרשומה הנוכחית לרשומה הראשונה )עסו | מעבירה את מצביע הרשומות מהרשומה הנוכחית לרשומה הבאה (זו שאחריה). אם לא קיימת רשומה כלשהי לאחר הנוכחית, יופעל הדגל (=0ם) ₪6 )6 0חם ולא תהיה רשומה נוכחית 5 | מעבירה את מצביע הרשומות מהרשומה הנוכחית לרשומה הקודמת לה. אם לא קיימת רשומה כזו, יופעל הדגל 01 פַהוחחו860 (=80) ₪6 ולא תהיה רשומה נוכחית 5% | | מעבירה את מצביע הרשומות מהרשומה הנוכחית לרשומה האחרונה במערך ח סו | מעבירה את המצביע ח רשומות קדימה מהרשומה הנוכחית (אם ערך ח חיובי), או ח רשומות אחורה מהרשומה הנוכחית (אם ערך ח שלילי). אם פעולת ההעברה תעביר את מצביע הרשומות מעבר לגבולות המערך (=50 או 80) תתרחש שגיאה. ניתן להעביר פרמטר נוסף שיהווה נקודת התחלה ממנה תחל הספירה פקודות אלו תעברנה את מצביע הרשומות לרשומה הרצויה, תוך התייחסות לסדר בו ממוין כעת מערך הרשומות. סדר המיון הנוכחי של מערך רשומות הוא הסדר הפיסי שלו, למעט מקריס שבהם הופעל אינדקס על מערך רשומות מסוג 98066 או שבפקודת יצירת מערך מסוג ז6פחץ2 או זסחַ5כְ8ח5 נכללה הגדרת סדר מיון מסויס. כעת הוסף לפרויקט קוד שידגיםס שימוש בשיטות 8%זוח6טס!א, 5טסועסזקסטסוא, 6 סטסו₪ ו-85% |6עס!!, על ידי ביצוע הפעולות המפורטות להלן: ראה, "הגדרת האינדקס הנוכחי בטבלה" בהמשך הפרק. 1 הוסף לטופס ארבעה פקדי חסטטם 6חהה 60 וקרא להס 60=1755, 5טוסוע6זק0ות6, 6% ו-85% 601 2 הגדר את המאפיין ח0ק63 של כל אחד מהלחצנים כמפורט להלן: 0 ספות 9 0 )אסא >* 0 פטסועסזק -*%* % | 0 6 סדנת לימוד 6.0 8\ בתרשיסם 26.4 תוכל לראות כיצד ייראה טופס היישוס לאחר הוספת הלחצנים : |< |םן. | 6פחההּא= ₪040 /. | מ | י-יי| מסססה אח] יי : : | ססות 1.395 : : 2 : | פטוסואיפזקן : תרשים 26.4: הוסף לטופס לחצני פקודה שיאפשרו למשתמש לנווט במערך הרשומות 3 הוסף את שורות הקוד שלהלן לשגרת האירוע 0166 של הלחצן 5%זו0 חס : זז 6עס]. 1065 5 5 ||68 4 הוסף את שורות הקוד שלהלן לשגרת האירוע 6166 של הלחצן פטסוט6זק סוחס : 5 סו 165 5 5 ||68 5 הוסף את שורות הקוד שלהלן לשגרת האירוע 016% של הלחצן 606% : +א6\סעסו]. 1065 5 5 ||68 6. הוסף את שורות הקוד שלהלן לשגרת האירוע 016% של הלחצן 35% 01חס : 35% |6/ס1065.]1 5 5 סח |ו68 כאשר תפעיל את הפרויקט, יוצגו ארבעה לחצני פקודה שיאפשרו לנווט במערך. השיטה האחרונה שפורטה בקבוצת שיטות 6טסוא, ח 6שסוא, מאפשרת להעביר את המצביע לרשומה שאינה בהכרח סמוכה לרשימה הנוכחית. המשתנה ח יכיל את מספר הרשומות להעברת המצביע. המשתנה יכול להכיל ערכים חיובייס או ערכים שלילייס, ערכיס חיובייס משמשים כדי לנוע קדימה, וערכים שליליים לשס תנועה אחורה. להלן דוגמה לשימוש בשיטה להזות המצביע שתי רשומות קדימה מהרשומה הנוכחית : 2 6ש1065.])0 51 פרק 26: שימוש באובייקטי גישה לנתונים (סאכפ) | 697 שימוש במאפיין אזבּוה)סס במצבים מסוימים תרצה שתהיה לך אפשרות לשוב לרשומה מסוימת לאחר הזות מצביע הרשומה, או לאחר הוספת רשומות חדשות למערך. תוכל לעשות ואת על ידי שימוש במאפיין 8006081 של אובייקט ₪66070560. המאפיין אזוח800% מכיל את ערך משתנה מחרוזת התואסם לרשומה ושערכו הוא ייחודי עבור כל רשומה שבמערך. כדי שיתאפשר להשתמש במאפיין אזפחאססם תידרש בסך הכל ליצור משתנה מחרוזת יישיזכוריי את ערך המאפיין אזפוחאססם של אובייקט ₪660705%0, לפני שתזיו את המצביע. כאשר תרצה להחזיר את המצביע לרשומה המקורית, יהיה עליך להציב את ערך אותו משתנה במאפיין %ז8וח800%. בסעיף הבא נדגים ביצוע פעולה כזאת תוך שימוש בסדרת שיטות 0חום. ם אזהרה: אם תעבוד עם מסד נתונים מסוג השונה ממסד 36%, תידרש לבדוק את הערך המוצב במאפיין 800%087%80|6 של אובייקט ז₪6607056 שבו תשתמש, כדי לוודא שסוג מסד הנתונים שבו תבחר להשתמש תומך בשימוש ב-68זו)סס8. שימוש בשיטה 6ו= השיטות מסדרת 6ַחו= ניתנות לשימוש רק בעת עבודה עס מערכי רשומות מהסוגיס %חץ ו-80500%ח5 (עקב העובדה שיישוס הדוגמה נוצר תוך שימוש במערך רשומות מסוג 180|6 לא יתאפשר להשתמש במסגרתו בשיטות כאלו במסגרתו). שיטות 0חו= משמשות לאיתור רשומות אשר עונות על קריטריוניס מסוימיס. את הקריטריוניס מנסחיס תוך שימוש במבנה המשמש משפטי 6זסח/\ בשפת .501, למעט שימוש במילת המפתח שזסח/\. ארבע שיטות 0חו= המוגדרות ב- 58566 |808ו/ הן: ןהו | מאתרת את הרשומה הראשונה העונה על סדרת הקריטריונים המפורטת בפקודה, תוך התחלת החיפוש מתחילת מערך הרשומות +א0\6חו= | מאתרת את הרשומה הבאה במערך העונה על הקריטריונים המפורטים בפקודה תוך תנועה מעלה מהרשומה הנוכחיתהרשומות 5 | מאתרת את הרשומה הבאה במערך העונה על הקריטריונים תוך תנועה מטה מהרשומה הנוכחית % ו | מאתרת את הרשומה האחרונה במסד הנתונים העונה על הקריטריונים, תוך התחלת החיפוש מהרשומה האחרונה במערך לאחר שתשתמש בשיטת 6חו= כלשהי, תידרש לבדוק את ערך המאפיין חסזו!סא. אס המאפיין יכיל ערך שטזד סימן שלא אותרה רשומה שעונה על הקריטריוניס שהוגדרו. אס המאפיין יכיל ערך 86=, תדע שהרשומה שעליה יצביע המצביע עונה על הקריטריוניס שהוגדרו בפקודת החיפוש. 8 סדנת לימוד 6.0 8\ טיפ: ייתכן שתרצה להגדיר 800%081% עבור הרשומה הנוכחית בטרם תפעיל את אחת משיטות 6ַחו=. אם תעשה כך, תוכל לשוב לרשומה זו, אם הפקודה לא תאתר רשומה כלשהי העונה על סדרת הקריטריונים שהוגדרה. שיטות 0ַחו= פועלות על ידי כך שהן סורקות כל רשומה בנפרד, כדי לאתר רשומות העונות על מערך הקריטריוניסם שהוגדר. נקודת התחלת החיפוש והכיוון בו יתבצע תלוייס בשיטה שבה תבחר להשתמש. ביצוע פעולת החיפוש עלול להימשך זמן רב, כתלות בגודל מסד הנתוניס ובשיטה שבה תבחר להשתמש. מנגנון 2% יוכל לבצע אופטימיוציה של פעולת החיפוש, אס ביטויי החיפוש שהוגדרו כלוליס באינדקס כלשהו. אס אתה מתכוון לבצע פעולות חיפוש רבות על טבלה מסוימת, כדאי שתגדיר אינדקס או אינדקסיס שיתבססו על שדות הכלוליס באותה טבלה. אם שיטת 8" תצליח בפעולתה, המצביע יועבר לרשומה חדשה. אס פעולתה תיכשל, מאפיין הפסא של אובייקט 866070566 יוגדר 6טזד והמצביע יישאר על הרשומה שעליה הצביע בטרס ביצוע הפעולה. אחד האופניס שבהס תוכל להסתייע במאפיין הזוס הוא על ידי כתיבת משפט 1 שיבדוק את הערך המוצב במאפיין. בתוכנית 26.1 יוצג לפניך שימוש בשיטה זפזוחסחו= לאיתור רשומות, תוך שימוש במערך קריטריוניס שיוגדר על ידי המשתמש. תוכנית 26.1: קפש. 5 ד0מכ - שימוש בשיטה 065%ח= לחיפוש רשומה ()66ו|0 5%זו=]סחו-0רח6 50 סספּעווק 9חו50 45 8ח6סוז50 וחוס 508 5 586316 וחוס 0חו5 החססוז6 06 סווטס' "*" ,8 +אם דחו .8 "*' 6או| סז" = החססו56 5 סח 6856 חן שזסעש 6/ 6זסחע זסס וה6רח6קי' הזחא 65.00 ] 5 = >זה 5% חן 6+ 6זטס6אם 58 ז5זו= 0תו-.065 5 5 חס 00666 הסרד ה8%6 65.40 5 + "!0חהטסז סח 60070" 1580 6000 6000 85%! סף הזנססז ,160 ]זי 5% = אזהוחא65.000ו ךז 0 + 5 6% שר || 55 ספ ₪0 פרק 26: שימוש באובייקטי גישה לנתונים (סגפ) | 699 טיפ: במקרים רבים, יצירה חוזרת של מערך רשומות מסוג זפּחִשכ שתבוצע תוך התבססות על מערכת קריטריוני חיפוש תהיה מהירה יותר משימוש בפעולת 60 לעיבוד כל הרשומות התואמות לאותה מערכת קריטריונים. תוכל גם ליצור ממערך רשומות מקורי מערך רשומות משני, מסונן, תוך שימוש בקריטריוני החיפוש כבמסנן. השיטה בה הפעולה תבוצע במהירות הגבוהה ביותר, תלויה בגורמים כגון כמות הנתונים הכוללת, גודל רשומה וגורמים נוספים. נסה לבצע פעולות שונות על הנתונים שלך, כדי לוודא מהי הפעולה הכדאית במצב נתון. השגיאה 0חו5 630% במקריס בהס תשתמש במשתנים כערכי ייחוס להשוואה, ייתכן שתיתקל בהודעות שגיאה בנוסח 1660 6ח81 +00ח68 בעת הרצת התוכנית. במצביס בהס השדה והמשתנה שביניהס תתבצע ההשוואה יכילו ערכי טקסט, תוכל להקיף את שס המשתנה בגרשיים, כמתואר בקטע הקוד הבא : 58 5 5 0חו57 ,0ַחו50 ₪5 00%חוח5 חחוס "החפ" = 05₪חו"5 "" 8 5סחו .8" ' = 8500806 1" = 0076חו5 זוסחו= 5%זו=סחו=] .65% 5 למען שמירה על קריאות הקוד, תוכל גם להגדיר קבוע שבו תציב את תו הגרש ולהשתמש בקבוע זה במסגרת הקוד שלך. באותו אופן תוכל גס לתחוס משתני תאריך בתווי %, כדי לאפשר השוואת ערכיס המאוחסניס בהס עס ערכיס המאוחסניס בשדות מסוג שם. לא תידרש להוסיף תוויס כלשהס כדי לאפשר השוואת מספריס. הגדרת האינדקס הנוכחי בטבלה ניתן להשתמש באינדקס בשילוב עס טבלה כדי להגדיר סדר מסויס עבור הרשומות בטבלה, או כדי לאפשר עבודה עס השיטה 566% לשס איתור מהיר של רשומות מסוימות. כדי שאינדקס יהיה אפקטיבי, תידרש להציב במאפיין א06ח1 של הטבלה שס אינדקס כלשהו שהוגדר עבור טבלה זו. שורת הקוד הבאה מגדירה אינדקס נוכת?ל: "א0ח61רחה3\]" = 06%ח65%.1 5 חובה להציב במאפיין שס אינדקס קייסם אשר כלול באוסף מסוג אינדקס של טבלה נתונה. אם תציב במאפיין שם אינדקס שאינו קיים, תתרחש שגיאה. מידע על יצירת אינדקסיס חדשים תוכל למצוא בסעיף יייצירת אינדקס חדשיי שיובא בהמשך הפרק. הערה: יצירת אינדק0 לא תשנה את סדר אחסון הרשומות בפועל, רק את הסדר שבו הן תאוחזרנה מהטבלה ואת הסדר שבו הן תיסרקנה במסגרת פעולות החיפוש. 0 סדנת לימוד 6.0 8\ שימוש בשיטה 5666 שיטת 566% היא הדרך המהירה ביותר לאיתור רשומה מסוימת בטבלה, אך שיטה זו היא גס המוגבלת ביותר להגדרת מיקוס במסגרת מערך הרשומות. 9%, + השיטה 566% ניתנת לשימוש רק בעת עבודה עם מערכי רשומות מסוג 6|טפד, לא ניתן להשתמש בה לעבודה עס מערכי רשומות מהסוגים 6%פ5חץ0 או +0ח50805. + בשיטה 566% ניתן להשתמש רק במצבים בהסם קייס א06ח1 פעיל. הפרמטרים של השיטה חייביס להתאיס לערכי שדות האינדקס בו הס משתמשים. * השיטה תאתר רק את השדה הראשון שיתאים לערך מסוים של האינדקס. פניות נוספות לשיטה לא תאתרנה רשומות נוספות המתאימות לערך הרצוי. אופן פעולת השיטה 566% פנייה לשיטה 566% מורכבת מקריאה לשיטה, מאופרטור השוואה (חספוז8קח ס6 זז ס) ומערכיס עבור שדות המפתח של הרשומה. אופרטור ההשוואה שבפניה לשיטה יכול להיות אחד מבין האופרטוריסם הבאיס: <, <=, =, >=, > או <>. ערכי המפתח שישמשו לצורך השוואה, נדרשיס להיות מאותס סוגים הכלולים באינדקס השולט על פעולת ההשוואה. אומנס אין הכרח לכלול בביטוי ערכי מפתח כמספר השדות הכלולים באינדקס, אך תידרש לכלול ערך מפתח בעבור כל שדה שבו תרצה לבצע חיפוש. חובה לפרט את ערכי השדות בהתאם לסדר בו השדות פורטו בהגדרת האינדקס וכאשר הם מופרדיס וה מזה בפסיקים. תוכנית 26.2 תציג שתי דוגמאות לשימוש בשיטה 5666. החלק הראשון ידגיס את השיטה תוך שימוש באינדקס המבוסס על שדה יחיד. החלק השני יציג שימוש באינדקס המבוסס על שני שדות. תוכנית 26.2: ק8/. 5 ד0כ שימוש בשיטה 566% לאיתור רשומה מסוימת בטבלה 5 50268|075 ,28%80856 5 05% ד00 הזוס ("פכ]א. דא ד \:6" )56 חק 0 = 656 007 56% (86 דה ,"685 05 65.00 00 = 5068|675ז 56 ><626<6 > >< 6< 6< 6< 26 26 26 2 א< אכ < 26 26 26 א< א אכ 1 * סז ח= |השכ א 6556186 *' >< >< > 6 6< >< < 6< < 26 >< 2 >< < א< < א< 6< 2 26 א< אכ 1 .60 68610 6 חס 08560 5 א6וסחו א06חז1 שווד ' א6סחו 10 6 סז א06חו 600705605 6וז 66% ' "11006" = א06ח5068|675.1ז 4 חססוחטח 068|67 זס1 אסס\ ' 4 ,"=" א5068|675.506ז ס6הוזקסיוקקה 35 655806 "סחטס= +סז" זס הסטהוזסזחו ץהוקפוס ' הסח ד ה1366ס.5068|675ז +[ "סחטס- סו" אס 50 6 !5068675 8 " ," .8 35306 |!5068|075ז אס0ם 5 + 0חם פרק 26: שימוש באובייקטי גישה לנתונים (סגכ) | 701 %><% 6262666 >< >< כ 26 26 26 א< א< אכ אכ 26 אל 26 א< אק אכ 1 *שןאה\ חם |מסכ ג 5556186 *י %>>% 66262666 >< >< 6< 26 26 26 א< א< א < 26 26 26 א< א אכ 1 6 חס 08560 15 א6סחו א06ח1סוחבּ\] שד ' .65 6רח50\3זו=] 6חה 6וח8\ז5ב | ' % ו שבח 6 %0 א06ח! 600705605 6+ 66% ' "א 0ח61וחהּ\]" = 5068|015.1006%ז "50 הּזהטזהם" סח ז068|6 זסו אסס|' "הזהטזהם" ,"הפה" ,"=" א5068|675.506%ז ס6זהוזקסוקקה 35 655806 "סחטס- )סז" זס הסטההזסזחו ץהוקפוס ' השח ד ה1806ס).5068|675ז + "סחטס- 6ס)ז" אס 50 6 הזו !5068|675ז 8 " ," .8 35306 |!5068|075ז אס 5 + 0 קייסם אופן פעולה אחד של השיטה 566% שלפני השימוש בו תידרש לבצע פעולות הכנה קפדניות. בעת שימוש באופרטורים המשווים =, =<, < או <> במסגרת שיטה 566%, החיפוש מתחיל ברשומה הראשונה הכלולה באינדקס הנוכחי ומתבצע תוך סריקת הרשומות לצורך איתור הרשומה הראשונה התואמת לערך החיפוש הרצוי. אס הפנייה לשיטה כוללת את האופרטור > או =>, פעולת החיפוש תתחיל ברשומה האחרונה של הטבלה ותתבצע תוך סריקה אחורה. אם האינדקס מכיל ערך ייחודי עבור כל רשומה, הסדר בו יתבצע החיפוש לא יהווה בעיה כלשהי. אך אס יש בשדות המפתח המפורטיס בביטוי החיפוש ערכיס החוזריס על-עצמם, הרשומה שתאותר תלויה באופרטור ההשוואה שבביטוי החיפוש ובסדר בו ממוין האינדקס. בתרשים 26.5 תוצג טבלה שמוינה תחילה על-פי שמות משפחה ואחר על-פי שמות פרטייס. הטבלה השמאלית בתרשים מוינה בסדר עולה ואילו הטבלה הימנית בתרשים מוינה בסדר יורד. בטבלה 4 תפורטנה פעולות 566% שונות שניתן לבצע על טבלה זו. קוזפדוסט קפא | שם תומך מקבל |> | |< זט - ו פּּ א הנמומ ' רשמה:] וע] + ד ]|+ |4ו|%4 ב 3 רשומה;ן ו* גל אסף פ אירים סדר עולה נירית רויטל שירי אייל מרב אודי רינת אילג בטע מני רוני דרור ענבל ד ניר ניר אורן יסמין ניב שני שרון שלי קטרין ליאור אפרים |= סדר יורד יהודית |א]: רַ-\ ְֶאאשא! תרשים 26.5: ההבדלים בשימוש בסדר עולה במסגרת אינדקס לשימוש בסדר יורד 2 סדנת לימוד 6.0 8\ טבלה 26.4: השפעות השימוש באופרטורים משווים שונים ובסדרי מיון שונים של אינדקסים במסגרת פעולות 566% שימוש באופרטורים >, <, =< וכן => בשילוב עם אינדקס הממוין בסדר יורד דורש והירות והקפדה. האופרטורים < וכן =< מאתרים רשומות שמקומן באינדקס הוא לאחר ערך המפתח הנתון בביטוי ההשוואה. ווהי הסיבה שבעטיה השימוש בביטוי החיפוש "4 ,5" ,"=<" בשילוב עס אינדקס הממוין בסדר יורד, מחזיר את הרשומה המכילה את השס 6וע8 ,0100חח56. גם האופרטורים > וכן => פועלים באופן דומה. מהדוגמה שהובאה כאן הבנת בוודאי שיש להקפיד על בחירת האופרטור הנכון וסוג האינדקס הנכון שישמשו במסגרת פעולת 566%, כדי להבטיח שהפעולה תניב את התוצאות הרצויות לך. כפי שאירע בעת שימוש בסדרת השיטות 6חוח, גס בעת שימוש בשיטה 566%, הצלחה באיתור רשומה התואמת לתנאי החיפוש, מעבירה את מצביע הרשומות לאותה רשומה. אס לא מאותרת רשומה התואמת לאותם תנאים, מוצב במאפיין חסגוזסא של אובייקט ₪660705% ערך 53156 ומיקוס מצביע הרשומות אינו משתנה. הוספת פעולת 566% ליישום הדוגמה כעת תוכל לשפר את פרויקט הדוגמה על ידי כך שתוסיף לו יכולת לביצוע פעולות %. היות ואינך מעוניין שהמשתמשיסם יידרשו להקליד כותר ספר בשלמותו, כדי שיתאפשר להס לבצע חיפוש, תוכל להשתמש באופרטור =< כאופרטור ההשוואה שעליו תתבסס פעולת 566%. השימוש באופרטור וה ידרוש ממך לבדוק את תוכן הרשומה הנוכחית, גם במקרים בהס יוצב במאפיין !סא ערך 856" וזאת כדי לוודא שהרשומה אכן תואמת לתנאי החיפוש. בצע כעת את הפעולות הבאות : 1 הוסף לטופס פקד א6)00ד וקרא לו ח00656876. 2 הוסף לטופס פקד |1806 שייוהה את תיבת הטקסט והגדר את מאפיין חסוק63 שלו: זס=] ח56876. 3 הוסף פקד חסט8 0ַחההוח60, הגדר את שמו 6₪0566% והגדר את מאפיין חסק68 שלו: ח56810. בתרשיס 26.6 תוכל לראות כיצד יייראה הטופס לאחר הוספת הפקדים. פרק 26: שימוש באובייקטי גישה לנתונים (סאס) | 703 תרשים 26.6: הלחצן 56808 מאפשר למשתמש להגדיר תנאי חיפוש 4. הוסף את שורות הקוד לשגרת האירוע 666 6ח8וחוחס6 של הלחצן 0566%ח6 : 0חו50 5 55666 ,חהפוזה/\ 35 6זהר59% חחוס "סוד" = א06ח65.1 5 6ז 65.00 5 = 506 (0א0. ח0856)0%156870(\ = 5566% 6% ,"=<" א065.506 1 5 הסח ד ה65.14018%6 5 + "!ח1860] סצ]" אס 50 5% = אה והא65.000ו] 5 6 חסת ך א5566% <> (((55668)ח6 | ,6 06517 [5ז)6 |)6356 זז "חר סא" אס 50 59% = אזהוח511065.200%ז 0 0 5-5 המאפיינים הסוזו05ק+66%ו6ק ו-הסוזו5סק 66ט501 פרט למאפיין אז8וח0%ס8, לאובייקט ₪66070566 יש שני מאפיינים נוספיסם המשמשיס להגדרת מיקוס המצביע והס המאפייניס ח05|00ק+ח06ז6ק ו-חהסוו5סק6ט|ספטה. המאפיין ח00ו05ק:ח66ז6ק מגדיר מיקוס יחסי של רשומה במערך. על ידי הצבת ערך שבין 0 ל-100 במאפיין, תגרוס למצביע להצביע על הרשומה הקרובה ביותר לאותו מקוס בקוב>. הצבת ערך שאינו בתחוס שבין 0 ל-100 תגרוס לשגיאה. במאפיין ח067660%005|00 ניתן להשתמש לעבודה עס מערכי רשומות מכל שלושת הסוגים. מאפיין חס05!0ק%6ט0501 מאפשר להעביר את מצביע הרשומות לרשומה מסוימת. הערכיס שהוא יכול לקבל נעיס בין 0 שייצג את הרשומה הראשונה, לבין ערך הקטן ב-1 ממספר הרשומות. הצבת ערך אחר, תגרוס לשגיאה. כך שכדאי לכלול בדיקות לאיתור שגיאות בקטעי קוד. מאפיין חסטופסק6ט!|50פ מוגדר רק לאובייקטי 6% מסוג 6%פהחץכ ו-30500%ח5. קטע הקוד הבא מדגיס שימוש במאפייניסם הסטו05ק%ה6766ק ו-ה0חו05סק6לט|050ה. שיס לב שמבוצעת בדיקת תקינות הערך המייצג את המיקוס שאליו אתה מעוניין לעבור, הבדיקה מיועדת למנוע שגיאות. 4 סדנת לימוד 6.0 8\ 0 חסחופסק %ה66זסק 6+ 60 סטסון' 0 = 10% חסחד 100 < 1% +[ 0 = ₪ הסחך 0 > 1% )1 = חס ו5סקח66זסק. הכוס 0 חסוופסק 30501006 6+ 60 סטסוז' טס 600 ץאוס = 05| הסח ד +הטס660706 .05 ד5ז < טאו + 0 = 05| חסחחד 0 > פטגו זז 5 = חסטן5סק6סט|ספסה. חס עסו שימוש במסננים, אינדקסים ומיונים 5 65א06%ח1 ו-50715 הס מאפייניס של אובייקט ₪6607056%. ניתן להגדיר את המאפייניס האלה בעזרת פקודת הצבה כמו זו: "רא חפ = 6וח350\\93 1" = זבסון=.65% 5 מסננים, אינדקסים ומיונים מאפשרים לך להגדיר תחוס רשומות שיעובד ואת הסדר שבו תעובדנה הרשומות הכלולות בתחוס. המאפיין זספוו= (מאפיין הסינון, הזמין לשימוש רק בעת עבודה עס מערכי רשומות מהסוגים 6פּחץכ ו-805000ח5) מצמצס את מספר הרשומות שאליהן תתייחס פעולת העיבוד על ידי הגדרת קריטריוניס שרק רשומות העומדות בהן תטופלנה, לדוגמה, רק רשומות ששמות המשפחה הכלולים בהן מתחילים באות 6. 1806%65 (הזצמיניס לשימוש רק עס מערכי רשומות מסוג 136), ו-65זס50 (הזמינים לשימוש רק עס מערכי רשומות מהסוגיס ז6פחץכ ו-6סחַ5כְ8ח5) מגדיריסם את סדר הצגת הרשומות במערך הרשומות, תוך התבססות על שדה או על שדות הכלולים באותו מערך רשומות. בעת השימוש ב-50766 וב-65א06ח1 ניתן גם להגדיר אס המיון יתבצע בסדר עולה או בסדר יורד. הגדרת המאפיין זסזוו- המאפיין זסטווז זמין לשימוש אך ורק בעת עבודה עס מערכי רשומות מהסוגים ש6פ85ּחץ ו-5080500%. אומנס התיאורים שיובאו בסעיף ה יתייחסו למערכי רשומות מסוג %חעֶם, אך כל המידע שיובא יהיה נכון גם עבור מערכי רשומות מסוג 0%ח50805. הגדרת המאפיין זטווח לא תשפיע על מערך הרשומות שאתו אתה עובד כעת, אלא תשמש לסינון רשומות שתועתקנה למערך רשומות אחר, שייווצר מהראשון. תחביר הגדרת המאפיין וו והה לזה של משפט 6זסח/\ ב-501, פרט לכך שההגדרה אינה כוללת את מילת המפתח פזסח\. משפט הבחירה שבהגדרת המאפיין יכול להיות פשוט כגון 'אד' = 588 או מורכב מכמה תנאיס כגון 'חזוהח5' = 35008706 | סאג 'חה' = 50006. ניתן לכלול בהגדרה גס ביטוייס כגון '*5' 5א16! 8500806]|, שישמש לאיתור כל הרשומות שבהס שמות המשפחה מתחילים באות 5. בסעיף ייהגדרת מערך רשומות מסוג ש6פּחץפ:י, יש דוגמה לשימוש במאפיין זפטוו= לצורך יצירת מערך רשומות חדש. פרק 26: שימוש באובייקטי גישה לנתונים (סגפ) | 705 את התנאים שבביטויי זטוו= ניתן להגדיר גס באופן גמיש, באמצעות הכללת פונקציות. לדוגמה, לאיתור כל מדינות ארצות הברית, שהאות השנייה בקיצור שמן היא 1, תוכל להשתמש בפונקציה 0וא באופן הבא : "']' = (110)5006,2,1]" = ז00|ו.05% 5 השימוש בפונקציות אומנם מקנה לך גמישות, אך הוא גורס לחוסר יעילות בסינון הרשומות. את הסינון ניתן לבצע באופן יעיל יותר על ידי הכללת תנאי הסינון בשאילתה שתשמש ליצירת מערך הרשומות. מידע נוסף אודות מסננים הגדרת המאפיין זפטוו] של מערך רשומות מסוג חש לא תשפיע על מערך הרשומות שעליו אתה עובד כעת, אלא רק על מערכי רשומות שייגזרו ממנו. האופן היחיד שבו ניתן יילסנןיי רשומות במערך רשומות קיים, הוא באמצעות שימוש בשיטות 0חו= למעבר על פני הרשומות הכלולות בו. על ידי הצבת תנאי הסינון בתנאי החיפוש של שיטת 0חו=, תוכל לעבד רק את הרשומות הרצויות לך. במצביס שבהס תרצה לעבוד רק עס זספחץ יימסונן'י, כדאי שתבצע את הסינון על ידי הכללת משפט 501 מתאיס במסגרת הקריאה לשיטה 66070586 8ח006 שתשמש ליצירת מערך הרשומות. הגדרת המאפיין +ו50 בדומה למאפיין זסזוו] גם המאפיין 501 זמין לשימוש רק בעת עבודה עס מערכי רשומות מהסוגים זַספחץ0 ו-0%ח805ח5. גס המידע שיובא בסעיף זה יתייחס רק למערכי רשומות מסוג 6פּחץ0 אך יהיה תקף גס עבור אחִ5ס88ח5. ניתן להגדיר את המאפיין +50 על ידי ציון שדות וסדר מיון (0ח/0ח4566 - עולה או 0חו0ח06506 - יורד) שייושס על השדות שעל-פיהם ימוין מערך הרשומות. תוכל להשתמש לשם כך בכל שדה הכלול במערך הרשומות או בכל שילוב שדות הכלוליס במערך הרשומות. תנאי 0% דומה במהותו לקטע ץ8 אפסח0 הכלול במשפטי 501. אופן השימוש במאפיין 5011 במסגרת יצירת מערכי רשומות דומה מאוד לאופן השימוש במאפיין זסזוו=, שתואר בסעיף הקודס. לדוגמה, שורת הקוד הבאה תגדיר שמערך הרשומות ימוין תחילה על-פי שס משפחה ואחר על-פי תאריך לידה: "008-ו ,351036 1" = 65.50% 5ז 0 אזהרה: זכור שבעת הגדרת מפתח מיון המבוסס על כמה שדות, יש חשיבות לסדר בו יפורטו השדות. פעולת מיון שתבוצע תחילה על-פי שם פרטי ואחר כך על-פי שם משפחה תניב תוצאות שונות מפעולת מיון שתבוצע תחילה על-פי שם משפחה ואחר כך על-פי שם פרטי. ניתן ליצור מערך רשומות ממוין, באופן יעיל יותר, על ידי הכללת קטע 8 מפסמס במשפט 501 שישמש ליצירת מערך הרשומות. 6 סדנת לימוד 6.0 8\ יצירת אינדקס חדש בסעיף ייהגדרת האינדקס הנוכחי טבלהיי למדת כיצד להגדיר את האינדקס שישמש במסגרת פעולת חיפוש. אס האינדקס שבו תרצה להשתמש אינו קיים עדיין, תוכל להגדיר אותו על ידי כתיבת שורות קוד מעטות. תחילה, יהיה עליך להיעזר בשיטה א06ח67080601 של אובייקט 6!ט8ד כדי ליצור אובייקט א06ח1 חדש. לאחר מכן יהיה עליך להוסיף לאינדקס שדות, על ידי שימוש בשיטה סחסססג, כמו בדוגמה הבאה: 106% 5 1א10 חחוס 0 5 ₪01 חחוס ("0006 כ[2")א676861006. וס ד\\6\ = 1א10 56% ("0ן6|0)"2ן676866. 101 = 01|= 56% 1 סחססק \05וסו=. נא קטע הקוד שהוצג כאן הגדיר אינדקס בשס '6006 0ן2יי. כדי שיתאפשר לך להשתמש באינדקס הזה נדרשת להוסיף אותו לאוסף 06%65ח1 של הטבלה ולהציב את שס האינדקס במאפיין א06ח1 של אובייקט 6טפד: 11 סחססס\. 65א6סח1. וס האוסז "606 כ[2" = א6סח1. וט דצוסצ אס לתוכנית שלך דרוש אינדקס מדוע שלא תגדיר אותו במסגרת עיצוב היישוס, כך שלא תידרש לדאוג להגדיר אותו בזמן ריצה! ישנן כמה סיבות שבעטיין לא כדאי לך לנהוג כך: + למנגנון מסד הנתונים נדרש ומן לשס עדכון האינדקס לאחר ביצוע פעולות להוספה, גריעה או שינוי רשומות. במצב בו מוגדרים אינדקסים רבים, התהליך הוה עלול לדרוש ומן רב. כך שייתכן שיהיה לך כדאי ליצור אינדקס רק כאשר הוא יידרש לך. וכור גס שאינדקסים צורכים משאבי דיסק, כך שהגדרת אינדקסים מיותרים עלולה לגרוס לכך שליישום שלך יידרשו יותר משאבים מכפי שעומדיס לרשותו. > אתה מוגבל ל-32 אינדקסיס לכל היותר במסגרת כל טבלה. ווהי כמות גדולה, אך אס יידרשו לך יותר מ-32 אינדקסיס לצורך טיפול בטבלה מסוימת, תידרש ליצור חלק מהס רק כאשר הם יידרשו, ולגרוע אותס עס סיוס פעולתס. * ייתכן שתצליח לחזות מראש את כל האופניס שבהסם היישוס שלך יידרש להציג נתוניסם. אס תכלול ביישוס שלך אמצעי שיאפשר הגדרת אינדקסיס בזמן ריצה, תקנה למשתמשים ביישוס גמישות רבה. מבין הסיבות שפירטנו כעת, זו האוכה לרוב למשקל הרב ביותר היא השפעת הצורך בעדכון אינדקסים רבים על ביצועי היישוס. כדי שיתאפשר לך להחליט מה עדיף, הגדרת אינדקס בעת עיצוב היישום, או יצירת האינדקס רק כאשר הוא נדרש, כדאי שתפתת את היישוס בשני האופניס, ותבדוק את ביצועי שתי הגרסאות. פרק 26: שימוש באובייקטי גישה לנתונים (סאספ) | 707 הערה: אומנם מומלץ להגביל את מספר האינדקסים הכלולים בטבלה, משיקולי שמירה על עדכניות, אך מאידך גם מומלץ להגדיר אינדקס לכל שדה המשמש בשכיחות גבוהה במסגרת שאילתות 501. זאת מפני שמנגנון 36% (החל מגירסה 2.0 שלו) מיישם שיטה לאופטימיזציית שאילתות אשר מסתמכת על כל האינדקסים הזמינים לשימוש באותו רגע. תוכניות המשנות רשומות מרובות תוכניותמסוימות, או פונקציות הכלולות בתוכניות, מיועדות לאתר פריט מידע מסויס במסד נתוניס. אך רוב התוכניות והפונקציות מיועדות לבצע פעולות על רשומות מרובות כקבוצה. יש שתי שיטות עיקריות לעבודה עס רשומות מרובות: לולאות קבוצת פקודות שלה מבנה תחבירי מאחד הסוגים הבאים: 6!וח/\...סס, |סחנ...סכ או 6אס6א...זס=. הפקודות מבוצעות שוב ושוב, עד שמתקיים תנאי היציאה מהלולאה משפטי 501 פקודות הכתובות ב-501 (פפָאּטַפַח 1 ופט 60זטס6ט 5 - שפת שאילתות מובנית), אשר מורות למנגנון מסד הנתונים לעבד רשומות. שפת 501 תתואר בפירוט בנספח 3 שימוש בלולאות לולאות מהסוגיס 6!וח)\...0 ו- %א6א...זס] הן בשימוש שכיח של רוב התוכניות. העקרונות המשמשיסם לעבודה עס לולאות כאלו תקפים גס בעת עבודה עס מערכי רשומות. כלומר שלולאת 6וח//...₪0 מתבצעת כל עוד תנאי מסויס מתקייםס עבור מספר נתון רשומות. אופן נוסף המיושס לצורך עבודה עם רשומות מרובות יוצר לולאות מרומזות (0005 1 60ו!0חז1). לרוב התוכנות אשר מבצעות פעולות להזנה ולהצגת נתוניס יש בטפסיס שלהס לחצני פקודה המאפשריס לעבור לרשומה הבאה או הקודמת. לחיצות חוזרות ונשנות על הלחצניס האלה גורמות לביצוע לולאות כאלו, על ידי הפעלה חוזרת ונשנית של אירועי 6צסוא. בעת הגדרת לולאות כאלו נידרש להקדיש מחשבה מיוחדת לטיפול במקריס מיוחדים כגון טיפול ברשומה הראשונה במערך הרשומות, ברשומה האחרונה או טיפול במקרה בו מערך הרשומות ריק. הבעיה שאתה נדרש להתמודד איתה במסגרת המקריסם האלה היא שניסיון למעבר אחורה מהרשומה הראשונה, או למעבר קדימה מהרשומה האחרונה או לתנועה כלשהי במערך רשומות ריק, יגרוס לשגיאה. אך למרבה המטל, מנגנון 3% מציע לך סיוע מסוים לטיפול במקריס כאלה. אובייקט ₪66070560 כולל מספר מאפייניס אשר יתריעו בפניך על קיוס תנאיס אלה. המאפיינים האלה יתוארו בסעיף הבא. תוכל להסתייע בארבעה מאפייניסם חשוביסם של אובייקט 66070566 במסגרת ביצוע פעולות לטיפול במערכי רשומות המכילים רשומות מרובות. טבלה 26.5 תפרט מעט אודות המאפייניס האלה. 8 סדנת לימוד 6.0 8\ טבלה 26.5: מאפיינים המשמשים לבקרה על לולאות לעיבוד רשומות תיאור 80 | הדגל 6ון=-0-פחוחחו860 (תחילת קובץ), אשר מציין מצב בו מצביע הרשומות ממוקם לפני הרשומה הראשונה (מצב בו 6זד="80) או לא (מצב בו 6זז=-₪0 הדגל 6וו"-0-01ח5 (סוף קובץ) אשר מציין מצב בו מצביע הרשומות ממוקם לאחר הרשומה האחרונה (6טזד=-50) או לא (50==]8/56 ₪600 | מכיל את מספר הרשומות שבמערך הרשומות שבוצעה אליהן גישה. המספר המאוחסן במאפיין מציין את מספר הרשומות שבמערך הרשומות רק בעקבות ביצוע גישה לרשומה האחרונה במערך הרשומות (למשל על ידי ביצוע פעולת 85% |6וסוז), אלא אם כן מערך הרשומות הנדון הוא מסוג 6\פפדך מציין שפעולת החיפוש האחרונה שבוצעה תוך שימוש ב-0חו= או 6% לא הצליחה לאתר רשומה התואמת לתנאי החיפוש תוכל להיעזר במאפייניס האלה לצורך סיום פעולת הלולאות או לצורך מניעת מצבי שגיאה. נתייחס כעת לטופס הזנת הנתוניס שהוצג בתרשים 26.3. כדי למנוע התרחשות שגיאה בעקבות לחיצה על הלחצן ₪66010 +א6א, כלול בתוכנית קטע קוד אשר יאפשר את המעבר רק בתנאי שמצביע הרשומות אינו מצביע על סוף הקובא. קטע הקוד הבא יתייחס לאפשרות כזו: הסח 65.50 5 +סא +[ עס 065 5 הסח 65.50 5 + |6/עס\₪.65 ] פז + 0 + 0חם לחילופין, תוכל לנטרל את הלחצן 6%0א עס ההגעה לסוף הקוב. ניתן ליישס את אותן שיטות גס עבור הלחצן פטסוששזק, אך תוך התייחסות לדגל =80. ייתכן גס שתרצה לבדוק את הערך המאוחסן במאפיין 1חט060ז660ח, כדי שבמצב שבו מערך הרשומות מכיל 0 רשומות, רק הלחצן 866070 ₪00 יהיה פעיל. הערה: לאחר ביצוע פעולת )אס\פשטסוא, ייתכן שמצביע הרשומות מצביע על סוף הקובץ (=50). במצב כזה, לא קיימת רשומה נוכחית. כך שאם מצביע הרשומות אכן מצביע על סוף הקובץ, כדאי להשתמש בשיטה 88% |פעסו כדי להבטיח שמצביע הרשומות יצביע על הרשומה האחרונה במערך הרשומות. פרק 26: שימוש באובייקטי גישה לנתונים (סגפ) | 709 שימוש במשפטי 5091 בנוסף לשימוש בלולאות לשסם עיבוד רשומות, תוכל להיעזר במשפטי 501 לשס ביצוע מספר פעולות המתייחסות לכמה רשומות בעת ובעונה אחת. הסעיפים הבאים ידונו בשני סוגיס עיקרייס של פונקציות כאלו: > שאילתות חלשוב (067₪65 ח800|טש!68) אשר מספקות נתונים מצטבריםס על קבוצות רשומות. + שאילתות פעולה (65ו6ט) חס60ה) שמוסיפות, גורעות או משנות קבוצות רשומות הכלולות במערך הרשומות. מידע מפורט יותר אודות שפת 501 תוכל למצוא בנספח 3 תקציר שפת 501. שאילתות חישוב שאילתות חישוב מאפשרות לחשב ערכיס מצטברים המתייחסיס לקבוצת רשומות, כגון: ממוצעים, ערכי מקסימוס ומינימוס ומספרי רשומות. שאילתות כאלו פועלות על ידי ביצוע פונקציה חישובית של 501. ניתן גס להגדיר פילטר שישמש לסינון, על ידי שימוש במבנה =₪5שח/\ סטנדרטי. בשאילתות כאלו תוכל להיעזר למשל כדי לחשב סך מכירות שבוצעו על ידי אנשי מכירות באזור מסוים, או שווי כולל של המלאי המצוי ברשותך נכון לתאריך מסויס (זאת כמובן בתנאי שהנתוניס מצוייסם בטבלאות הבסיס). נניח שמסד הנתוניס שלך כולל טבלה המכילה נתוניס אודות מכירת דגים. קטע הקוד המשמש לשסם התייחסות לכל רשומה מאפשר לברר את סך המכירה ואת סוג הדג שנמכר במסגרתה. נתייחס כעת לקטע הקוד הבא: "1001 = 1500006 = םרו/\ 5058!65ו= וחסי |בזס דסחה 5 ([ססוזק ])ז(ו5 ד0ם 51" = .5501 ( 0005605501 חק 0. 005 = |068 ]5 56% ("]ז0 [0ח08)")|בסס 5 8 " = |בס ד ההז" אס0 וו המפתח להבנת הדוגמה הוא הפונקציה 50% אשר מסכמת את הערכים שבשדה 6סוזק של כל אחת מהרשומות. מערך הרשומות שיוחזר על ידי הפונקציה יכיל שדה יחיד בשס |08 679001 אשר יכיל את הערך המחושב. כוללת כמה פונקציות נוספות, פרט לפונקציה %ש5, אשר מחזירות ערכיס מחושבים. לדוגמה, משפט 501 שלהלן, יחזיר את הערך המינימלי שבשדה 6סוזם של הקוב\, את הערך המקסימלי שבשדה זה ואת ממוצע הערכים המאוחסניס בשדה הזה. | החסזת 6סוקאב] 45 (66ק)או ,6סהסףָעה ₪5 (66חק)0/\ ,שסוזקחויז 5 (ססוזק)אזוא ז0ם 55 5 שאילתת חישוב זו תיצור מערך ז6פּחץ שיכיל רשומה יחידה שבה תשמרנה תוצאות החישוביס. שימוש בשאילתת חישוב עשוי לחסוך שורות רבות, שתידרשנה לשס ביצוע פעולה והה. בנוסף, שאילתות מתבצעות מהר יותר מקטעי קוד המשמשים לביצוע אותן פעולות, מפני שחישוביהס מבוצעים על ידי מנגנון מסד הנתוניס במקוס על ידי קוד 88516 |1508/\. 0 סדנת לימוד 6.0 8\ שאילתות פעולה שאילתות פעולה פועלות על מערך הרשומות באופן ישיר, לצורך הוספה, גריעה או שינוי קבוצת רשומות במערך. בדומה לשאילתות חישוב, גם הן מבצעות פעולות שבדרך אחרת תידרשנה שורות קוד רבות. להלן יפורטו כמה סוגי שאילתות פעולה: %, > עדבון ערכי שדות ברשומות - פקודת =זהסקט בשפת 501 יכולה לשמש לשם שינוי ערכיס בשדות מרוביס וברשומות מרובות, כמו בדוגמה הבאה: 1 =0006ח5!- 6ז6ח/\ 6*2סוזק =6סוזק 551 58|65ח5ו= = דה סק המשפט המוצג בדוגמה יכפיל פי שנייס את הערך המאוחסן בשדה ₪06ק של רשומות שהערך בשדה קוד דג שווה ל-1001. > גריעת רשומות - הפקודה 5דם !םס מאפשרת לך לגרוע רשומות מטבלה. 0 < ססוזק 0 11001 =006ח5ו= 6זסח/\ 5058/65 וחסז- דש וסס בעת שימוש בפקודה =זם |פפ יש להיוהר, מפני שאס תשמיט בטעות את התנאי 6זסח/\ מהמשפט, תגרוס למחיקת כל הרשומות שבמערך הרשומות. + הוספת רשומות - הפקודה 1\%5581 מאפשרת לך להגדיר ערכי שדות עבור רשומה חדשה. בשורת הקוד הבאה, ערכי השדות החדשים שנכללו בקטע ()פפטוצ3\ של המשפט, פורטו על-פי סדר הופעת השדות בטבלת היעד: (19.95 ,1002 )65ט]8/\ 5058!65ו= דא1 דא=פאז אס יש שדה מסוג זספחטאססטוה, אין לכלול עבורו ערך בפקודת ד₪=פא1. תוכל לבצע שאילתת פעולה, על ידי הכללת משפט .501 כפרמטר השיטה 5066016 של אובייקט סִפהּפַ8ּז08, כמו בדוגמה הבאה: "(299.00 ,8|065)1003/\ 58|65ח5!= 0 ד 1455" סזטס6אם. חפו פס אס השאילתה שלך מיועדת לביצוע חוזר ונשנה, או שהיא כוללת פרמטרים, ייתכן שתרצה ליצור אובייקט ]067/06 שיכיל את משפט 501: טס 5 ץז0 וס וחוס ("58|65ח5-] 0 שד וספ" , "זס הפטסץו "ץז 0-5 = / סא 56% 6 66אם. ץז סצוס (" טס" 6 60וסס. הפו סט שיס לב לעובדה ששאילתות פעולה אינן מחזירות רשומות, כך שלא תידרש לכלול אובייקטי 66070561 במסגרת הקוד שלך. את הפעולות המבוצעות על ידי שאילתות פעולה ניתן לבצע גס באמצעות אחזור מערך רשומות ממסד הנתונים, ושימוש בשיטות כגון ש40086 ו-6!606, אך ברוב המקריס שאילתות פעולה מבצעות פעולות כאלו באופן יעיל יותר, מפני שהן מבוצעות על ידי מנגנוו מסד הנתוניס. פרק 26: שימוש באובייקטי גישה לנתונים (סגכ) | 711 הבנת פקודות תכנות נוספות עד כה למדת בפרק וה כיצד לאתר רשומות מסוימות, וכיצד לעבור על פני קבוצות רשומות. אך רוב התוכניות תדרושנה ממך להוסיף, לשנות ולגרוע רשומות. הפקודות שאותן נסקור בסעיף וה תקפות רק לגבי מערכיס מסוגי 80!6ד ו-66פחץ0 (זאת מפני שכפי שבוודאי וכור לך, מערכי רשומות מסוג 5080500 אינס ניתנים לעדכון). הוספת רשומות להוספת רשומות חדשות למערך, תיעזר בשיטה ו00%6. השיטה אינה מוסיפה למעשה את הרשומה למערך, אלא רק מפנה את מאגר ההעתקה (66טם צְכ0ס) כדי לאפשר את קליטת המידע הכלול ברשומה החדשה. לאחר שהשיטה הופעלה, התוכנית תוכל להציב ערכיס בשדות הרשומה, על ידי כך שתתייחס אליהס כלמשתנים. לבסוף, יהיה עליך להשתמש בשיטה 00868 כדי להוסיף את הרשומה שבה הוצבו הערכיס למסד הנתונים באופן פיסי. אופן פעולה ה יודגס בקטע הקוד הבא : זט 600 ₪6 חן 6600 שוסח 8 6זהססזק' 5.0 זז 5 660705 ששח 606 366|וססק' "ץ0856" = 6511503006 5ז "65חס(" = 850\3706 ]6501 5ז קט החוש פסְַחַ8ה6 6 "סעהס"י 6 ם אזהרה: עקב העובדה שהשיטה ‏ 00%6₪ מאחסנת נתונים במאגר ההעתקה, שימוש חוזר בשיטה או הזזת מצביע הרשומות תוך שימוש בשיטות 6אסוא או ₪0 (בטרם בוצעה פנייה לשיטה 08%6ק0) מפנה את המאגר. כך שביצוע פעולות כאלו מוחק את כל הנתונים שהוזנו עבור הרשומה החדשה. עריכת רשומות השיטה 50 משמשת לביצוע שינוייס ברשומה, באופן דומה להוספת רשומה. גס שיטה זו מאחסנת עותק של הרשומה הקיימת במאגר ההעתקה, כדי לאפשר ביצוע שינוייס בתוכן הרשומה. בדומה לשיטה 00%6₪ג, גס תוצאות פעולת ₪016 נכנסות לתוקף רק לאחר ביצוע פעולת 086קש. כדי לאפשר עריכת רשומות במסגרת יישום, תידרש להציע למשתמשים אמצעי שיאפשר להס לאתר את הרשומה שהס מעוניניס לערוך. תוכל להשתמש לשס כך בשיטות השונות שתוארו בפרק וה. לאחר שתאתר את הרשומה הרצויה (ולאחר שתהפוך אותה לרשומה הנוכחית), יהיה עליך להפעיל את שיטת 08ם. לאחר מכן תוכל להציב ערכיס חדשים בשדות הרשומה (כאשר סביר להניח שהערכיס החדשים יתקבלו 2 סדנת לימוד 6.0 8\ מהמשתמשים) ולבסוף תידרש להפעיל את השיטה 08%66כ[\. אופן פעולה זה יודגס במסגרת קטע הקוד הבא : בורו .לוא = 36 ו 650 5 6% 306.7 3500 0 = 350306 6501 5 6 ם אזהרה: עקב העובדה שהשיטה 5018 מאחסנת נתונים במאגר ההעתקה, שימוש חוזר בשיטה או הזזת מצביע הרשומות תוך שימוש בשיטות 6טסוז או 0חו= (בטרם בוצעה פנייה לשיטה 000886) מנקה את המאגר. כך שביצוע פעולות כאלו מוחק את כל הנתונים שהוזנו עבור הרשומה החדשה. עדכון רשומות בשני הסעיפיס האחרוניס ראית שכדי לבצע שינויים ברשומות, נידרש להשתמש בשיטה 000806 בשילוב עס השיטות ₪006 ו-0%ם. השיטה 008066 כותבת את הנתוניס המאוחסניס במאגר ההעתקה, במערך הרשומות. בדומה לשיטה 8006 גס השיטה 08%6קש מוסיפה למערך הרשומות, רשומה ריקה שבה נרשמיס הנתוניס. בעת עבודה בסביבות מרובות משתמשים, השיטה 000806 היא גס זו שמבטלת את מצבי הנעילה שנגרמו על ידי ביצוע פעולות 400 ו-50% המצויות כעת במצב המתנה. הערה: במצבים בהם תיעזר בפקדי נתונים לשם עבודה עם מערכי רשומות, לא תידרש להשתמש בשיטה 0866ק0. השיטה מופעלת באופן אוטומטי בכל פעם שמבוצע מעבר לרשומה אחרת במערך הרשומות. גריעת רשומות גריעת רשומה ממערך רשומות, דורש שימוש בשיטה 6|666ם. הפעלה השיטה 061666 בעקבות איתור רשומה והפיכתה לרשומה הנוכחית גורעת את הרשומה מהטבלה, באופן קבוע. השיטה תגרע את הרשומה ממערך הרשומות ותציב ערך וווא (ערך ריק) במצביע הרשומה. אופן השימוש בשיטה 0666 מודגם על ידי שורת הקוד הבאה: בורו ם אזהרה: לאחר שתגרע רשומה מטבלה, היא תיעלם ללא אזהרה כלשהי. תוכל לשחזר אותה רק אם השתמשת בפקודה 05ח8ז1ַהו860 בטרם המחיקה. כך תוכל להשתמש ב-₪0|!₪8866 כדי לבטל את הטרנזקציה. אם לא השתמשת ב-5ח778חו860, תוכל לשחזר את הרשומה על ידי יצירה מחדש, תוך שימוש ב-או001\6. פרק 26: שימוש באובייקטי גישה לנתונים (סאכ) | 713 הערה: פעולות גריעה ושינוי רשומות מבוצעות מבלי שהמשתמש מתבקש לאשר את ביצוען. אם תרצה שהתוכנית תבקש מהמשתמש אישורים לביצוע פעולות כאלו, תידרש לכתוב את הקוד הדרוש לשם כך בעצמך. הדרך הפשוטה ביותר לעשות זאת היא על ידי שימוש בפונקציה א480%פא. השימוש בפונקציה זו יאפשר לך להזהיר את המשתמשים מפני הפעולה העומדת להיות מבוצעת ולבקש מהם לאשר את ביצועה. מבוא לעיבוד טרנזקציות עיבוד טרנזקציות (0ח|06655זק ה58600ה8זד) מאפשר לך להתייחס לסדרת פעולות לשינוי, הוספה וגריעת רשומות כליישות אחת. זוהי יכולת מועילה במצביס בהם שינוי מסויס האמור להתבצע במסד הנתוניס תלוי בשינוייס אחריס, ושאתה מעוניין לוודא שכל השינויים בוצעו כנדרש, לפני שיהפכו לקבועים. נניח שיש לך יישוס המטפל בנקודות מכירה, אשר מעדכן את נתוני המלאי בעקבות ביצוע מכירות. בכל מקרה הזנת פריט במסגרת טרנזקציית המכירות, מבוצע שינוי במסד נתוני המלאי. אך אתה מעוניין שהשינוייס בנתוני המלאי יישמרו רק עבור פעולות מכירה שהושלמו. במידה שפעולת המכירה לא תושלסם, תרצה להחזיר את מסד נתוני המלאי למצבו ההתחלתי. עיבוד טרנזקציות היא פונקציה של האובייקט 6808066זס/ו, כלומר שהיא תשפיע על כל מסדי הנתונים שיהיו פתוחיס בעת ביצועה. 6 |808\ מציעה לך שלוש שיטות המאפשרות ביצוע פעולות לעיבוד טרנזקציות. שיטות אלו מבצעות את הפעולות שתפורטנה מייד: 5 וט | מתחילה טרנזקציה ומגדירה את המצב ההתחלתי של מסד הנתונים 886%!|ס₪ | מחזירה את מסד הנתונים למצב בו היה בטרם ביצוע פקודת 5חפז דחוט6. ביצוע הפעולה מבטל את כל השינויים שבוצעו מאז פקודת פ5חִ8ַזדַחו860 האחרונה שבוצעה 5חז 60 | שומרת את כל השינויים במסד הנתונים שבוצעו מאז פקודת 605 האחרונה שניתנה. לאחר מתן פקודת 5ח8ז וח 60 לא ניתן לבטל פעולות שבוצעו במסגרת הטרנזקציה תוכנית 26.3 תציג דוגמה לשימוש בפקודות 7805דחו860, ₪0!!886 ו-5ח8ז וו 60 במסגרת תוכנית. השימוש בטרנזקציה נעשה כדי לאפשר ביטול הזמנה כל עוד לא הושלם העיבוד שלה. 4 סדנת לימוד 6.0 8\ תוכנית 26.3: דאד. ז546א\אחד - שימוש בעיבוד טרנזקציות כדי לאפשר התייחסות לשינויים שבוצעו במסד נתונים כלמקשה אחת 85 דחו0/5.260ו0 ><>< א > > > >< < >< >< 6 ל < >< ל א < 6< >< >< ל ל < אל < א< א< >< < ל < 26 < < ל א< >< < א ל אכ < ₪< 6 2 12 ח0ו%7305860 58165 6005 ז50טו וח קססו וחזסזזשק ' ><>< > > >< >< >< 2 6< >< ל < >< < ל < 6< >< < ל ל < א< < < א< >< < א א< אכ < < ל א< >< < < ל אכ < 6< 6 אל 12 5 שססטווח/\ סס ><< א > >< >< >< < >< >< 6 ל < >< < ל < 6< >< < ל < אכ < < < א< >< < ל א< אכ < < ל א< >< >< < ל 26 < ₪< 6 א< 12 החזס? החסז /0 חה ו 58165 30 זסטרח טח 60| 006% ' 58650 סחרח106 +טסחז ' ץזסזהסעחו חו זססוטח הוחו סחז ' ><>< א > > >< >< < >< >< ל < >< < א < 6< >< >< ל ל כ א< < < 6< >< < ל א< >< < < ל א< >< >< אק ל 26 < < א א< 12 סחרח10 ,8 " = ההטח106" +5זו= סתו=.שחך 6 >< > > >< >< 6 >< < >< 2 >< 2 >< < >< < >< < >< < >< < >< 12 חהטף ץזססהסשחו סזהסקט ' 666 א אק >< >< 6 >< >< >< < ל א< >< < < ל 26 < < 6 אל 12% אחז 59650 - ("שטחהטס")עחז = ("שטסחבפטס")שחז 6 שח ססס | ><> > 6 >< >< < < 6< >< < ל א< >< < ל < כ < א< ל א< >< < < >< 26 >< < ל אל >< >< < ל 26 < ₪< א א< 12% 6 6 6806615 זס 6565!רח60 זסשו6 זספט ' ><> > 6 >< >< 6 >< 6< < ל ל אל >< < ל < 26 < < ל א< >< < < < 26 < < ל א< >< >< 6< ל 26 < 6< 6 אל 12 הסח ד 586070 ]1 5חז דורח רח00. סו 6 66ם!!ס.5)שסוס + 0חם פרק 26: שימוש באובייקטי גישה לנתונים (סגפ) | 715 מכאן... פרק זה הציג בפניך את נושא אובייקטי גישה לנתוניס, המהוויס אמצעי לעבודה עס מסדי נתוניסם מתוך 88516 |1508/\. הבנה של טכנולוגיית 0הפ תקנה לך יסוד טוב להבנת טכנולוגיות אחרות לגישה לנתוניס כגון 800 ו-400. הדרך הטובה ביותר ללמוד דבריס נוספיס אודות טכנולוגיית 40 היא על ידי ניסיון ליישס את התכניס שנלמדו בפרק זה, תוך שימוש במסדי הנתוניס לדוגמה שסופקו יחד עס 8856 |808ו/\, כדוגמת 10 למשתמשים בלתי מנוסיס הייתי ממליץ לשמור עותקי גיבוי של מסדי הנתוניס האלה, כדי שלא יחששו לבצע פעולות במסגרתם. חלק מהנושאיס שהוזכרו בפרק וה מוצגיס בפירוט רב יותר בחלקיס אחריס בספר זה. כדאי שתעיין בפרקיס הבאים : + +: % +: תמצית המושגיס הבסיסייס הקשוריס בעבודה עס מסדי נתוניסם תוכל למצוא בפרק 24 יסודות מסד הנתונים. אס תרצה ללמוד אודות ממשקי גישה לנתוניס המיועדים לשימוש במסגרת מסדי נתוניס בנוייס במבנה שרת/לקות, עיין בפרק 27 גישה לאובייקטי נתונים מרוחקים (00א). מידע נוסף אודות שיטת הגישה לנתוניס שתתפוס את מקוס 00ג ו-₪00 תוכל למצוא בפרק 28 גישה לאובייקטי נתונים באמצעות פקדי אס6עוז10. שפת 501 תתואר בפירוט נרחב יותר בנספח 3 תקציר פקודות ‏ 501. 6 סדנת לימוד 6.0 8\ 27 גישה לאובייקטי נתונים מרוחקים (₪00) פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 717 בדיון שלנו בנושא הגישה למסדי נתוניס התמקדנו עד כה במסדי נתוניס המבוססיס על מחשבי 66. כלומר התייחסנו למסדי נתוניס כגון 1606655, סזוקאס=, 08856 ו-אסה8זפס. אך 8856 |08 היא גם כלי טוב מאוד ליצירת יישומי חזית (05חם-זחסז=) נוספיס המיועדים לפעול בסביבות שרת/לקות (6/ז56/זחסו!0). יישומי חזית משמשיס לשס גישה למסדי נתונים המאוחסניס בשרתיס כגון ז6\ז56 .501 או 866ז0. רוב הפעולות הקשורות לפיתוח יישומי חזית, כגון עיצוב טפסיס וכתיבת קוד לעיבוד מידע - תחיינה זהות בעת פיתוח מסדי נתונים מבוססי 56, ובמסגרת כתיבת יישומי שרת/לקות. ההבדל העיקרי בין שני סוגי היישומים הוא בתחוס ההתקשרות לנתונים. פרק זה ייראה לך כיצד לאפשר לתוכניות הכתובות ב- 88566 |אטפו\ גישה קלה לנתוניס המאוחסניס במחשביס מרוחקים, על ידי שימוש באובייקטי גישה לנתוניס מרוחקיס (ססף5). במהלך הפרק תלמד שהוספת ‏ 00[666 28%8 6006 ליימאגריי כלי הפיתות שלך תוכל להקל עליך את העבודה עס נתוניס המאוחסניס במחשבים מרוחקים. תפיסות לגבי גישה למסדי נתונים בטרס נשקיע עצמנו בנושא הגדרת יישומיס שיבצעו גישה למסדי נתוניס בעלי מבנה שרת/לקוח, נבחן את הבדליס בפילוסופיות של שני סוגי מסדי הנתוניס. בעולס מסדי הנתוניס המבוססיס על מחשבי 6פ, הגישה לנתוניס מתבצעת תוך שימוש במנגנון מסד נתונים (חְחוּפַחם 6ִפהטמז8כ), המהווה חלק מהיישוס. ב- 8856 |1508 מנוע 36% מהווה חלק מהיישוס ומנהל את מסד הנתונים. כאשר משתמש נותן הוראות המיועדות לאחזר נתוניס ממסד הנתוניס, הן מתורגמות על ידי המנגנון, והעיבוד מתבצע על המחשב המקומי. המנגנון נותר על המחשב שלך, הן אס מסד הנתוניס הוא מקומי והן אס הוא מרוחק. היישוס הוא שמכיל את הלוגיקה המאפשרת לו גישה ישירה לקבצי המידע של מסד הנתוניםס. יישומי שרת/לקוח פועלים באופן שונה. היישוס מעביר דרישה לקבלת מידע, לרוב בצורת משפט ‏ 501. הדרישה מועברת לשרת מסד הנתוניס (ז5067/6 8%00856כ), אשר מעבד אותה ומחזיר את תוצאות העיבוד. אוהי פעולת שרת/לקוח אמיתית, שבמסגרתה השרת הוא שמעבד את הדרישה. למערכות שרת/לקוח יש מספר יתרונות על פני שימוש משותף במסד נתונים. ראשית, הלוגיקה שלהם מתנהלת באתר מרכזי, המקל על תחזוקתם. לדוגמה, נניח שיש לך מערכת המבצעת חישובי מס קניה תוך הסתמכות על כלליס שהוגדרו על ידי חברתך. במערכת שרת/לקוח, הלוגיקה החישובית תהיה מאוחסנת בשרת מסד הנתוניס. האחסון המרכזי מאפשר לבצע את כל השינויים הדרושיס במקוס אחד, מבלי להידרש לשכתב יישומי לקוח. יתרונות נוספיס של שיטת שרת/לקוח הס היכולת לבזר עיבוד והיכולת להפריד בין הלוגיקה העסקית לבין ממשק המשתמש. 8 סדנת לימוד 6.0 8\ עבודה עם 0086 אחת השיטות המיושמות על ידי 88566 |1508/\ לתקשורת עס מסדי נתוניס המתנהליס בשיטת שרת/לקוח קרויה 6070860006 6ִ5הּטבּ₪3 ח6ק0 - 0086 (קישוריות פתוחה למסדי נתוניס). 0086 היא רכיב בארכיטקטורת 05/\ - ח6ק0 פשסטחעע 66 וח5%6ץ5 (ארכיטקטורת מערכות פתוחות מבוססת פאוססחו//). מנגנון 6 מספק את אוסף הפונקציות %671806ח1 ַחווהההבזססזק הסחספסו!קקא - 1סה (ממשק תכנות יישומים), המקל על המפתח להתקשר למסדי נתוניס מסוגיס שוניס. 0086 מאפשר לך להשתמש באותה סדרת פקודות לשס גישה לנתוניס המאוחסניס בשרתי מסדי נתוניס מסוגים שונים, כגון ז56\6 .501, 07866 או 8856ז0)ח1 וזאת על-אף ההבדלים באופני אחסון הנתוניס המיושמיס במסגרת מערכות אלו. פונקציות 0086 גס מאפשרות לך גישה למספר סוגים שוניס של מסדי נתוניס מבוססי 6ס. הבנת מנהלי התקן 0086 מנהלי התקן 086 (פזפעוזם 0086) הס קבצי 11ם המכילים פונקציות המאפשרות להתקשר למסדי נתוניס שוניס. לכל סוג מסד נתוניס מוצע מנהל התקן נפרד. מנהלי ההתקן המיועדים לשימוש עם מסדי נתונים סטנדרטיים, כגון מסדי נתוניס מבוססי 6 או ז6/ז56 .501 מסופקים עם 8856 |אטפוצ. מנהלי התקן למסדי נתוניס אחריס מסופקים על ידי היצרניס של שרתי מסדי הנתונים. הערה: אם תשתמש ב-0086 ביישום שתפתח, יהיה עליך להקפיד להפיץ את מנהלי ההתקן הדרושים יחד עם היישומים. אם בחרת את האופציה 0086 6015000006 בהתקנת 88566 |08פו/, סביר להניח שנוצרה תיקיית משנה בשם 0086 בתיקיית |8טפו\ 6. אופציה זו גורמת לתוכנית ההתקנה של 8856 |5088ו/\ להתקין את מנהלי ההתקן של 6, עדיין יהיה עליך להתקין מקורות נתונים (665ז500 הז08) בנפרד. ל-0086 שני סוגי מנהלי ההתקן : 5116-7106 או זסוד-ש!טוא. הסוג הראשון משמש להתקשרות למסד נתוניס מבוסס 6 המאוחסן על מחשב מקומי או על שרת קבציס. הסוג השני משמש להתקשרות למסדי נתוניס הפועליס בשיטת שרת/לקוח, בה מתבצע עיבוד משפטי 501 על ידי השרת ולא על ידי המחשב המקומי. כל מנהל התקן של 0086 מכיל מערכת פונקציות בסיסית, הידועה כ- |6ש6!-6016 65 (יכולות רמת הליבה). יכולות אלו כוללות : * תמיכה בהתקשרות למסדי נתוניס + | הכנה ועיבוד משפטי 501. > עיבוד טרנזקציות. + החזרת התוצאות של פעולות העיבוד. > יידוע יישומים על שגיאות. פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 719 הגדרת מקורות הנתונים של 0586 בטרס תוכל להשתמש ב-0086 להתקשרות למסד נתוניס, תידרש לוודא שני דברים : + שבמערכת שלך מותקניס מנהלי התקן של 0086. + שהגדרת מקור נתונים (66זטס5 8ז8כ) של 086. את שתי הפעולות תוכל לבצע בעזרת היישום זססַבּח8ּ] 0086. את הפעולה השנייה תוכל לבצע גס מקוד תוכנית, תוך שימוש באובייקטי גישה לנתונים. אּכור שמנהל התקן 0086 משמש לשס התקשרות למסד נתוניס מסוג מסוים, כגון ז 56/8‏ 501. מקור נתוניסם של 0086 הוא תצורה המוגדרת עבור מנהל התקן 0086, המשמשת לגישה למסד נתונים ספציפי, כגון מסד נתוניס להנהלת חשבונות החברה שלך. הערה: במערכות ההפעלה 95 8ושס6חו/\ |- 98 פווסחו/\,| תמצא את היישום ז ויו 0086 בלוח הבקרה, ניתן לגשת אליו על ידי בחירה בהגדרות מתפריט התחלה. הסמל שאותו אתה מחפש מסומן בתווית 0086 %ופ-32. ייתכן שתמצא גם את הסמל המסומן בתווית 86פ0, אם מותקנים אצלך יישומים ישנים בני זו168. הערה: כדי להבטיח שכל הקוראים יוכלו להיעזר במידע המובא בפרק זה, השתמשנו במנהל ההתקן| 460655 0086 במסגרת כל הדוגמאות שבפרק. 460655 הוא אומנם מסד נתונים מבוסס 6<, אך את השיטות לגישה אליו ניתן ליישם גם לגבי פנייה למסדי נתונים הפועלים על שרתים. חשוב שתזכור שהתקשרות לקובץ 466655.0028 תוך שימוש ב-0086 שונה מהתקשרות ישירה תוך שימוש במנגנון 266. גישה למנהלי ההתקן של 0086 להתקנת מקורות הנתוניס של 0086 במערכת שלך, תידרש להשתמש ביישוס 0086 5 הוח 50706 0818 פאוססחו/)\. את היישוס תמצא בלוח הבקרה כמוצג בתרשיס 1. תיבת הדו-שיח וסז3ּו5%וחווח6ה 0086 אס תיבות הדו-שיח שיוצגו לפניך בעקבות לחיצה על הסמל 0086 6וט-32 תהיינה שונות מאלו הנראות בתרשימים, אל תיבהל. בדומה לרוב מוצריה, 0%פ5סז6ו שיווקה גם כמה גרסאות שונות של 0086. 0086 נכלל במוצרים שונים ביניהם 078066 ו- 8856 |1508/. ייתכן שהגירסה המותקנת אצלך היא העדכנית ביותר אך ייתכן גס שלא (הגירסה תלויה באפשרויות שבחרת במסגרת ההתקנה). גרסאות ישנות יותר אינן כוללות תיבות דו-שיח הבנויות מכרטיסיות. במקרה הצורך, זכור כי 0086 סופק יחד עס 88516 |8טפוש, כדי לאפשר לך לעדכן את ההתקנות שברשותך. 0 סדנת לימוד 6.0 8\ |< |ם])=. [ וי | | טעב | ₪0 אוש 08 6ום | 55 | 8 5 | 9 | סו 66 יו 6 עס זגו סט הזה חס 0 [+ [6חב [סזוחסם) =[ בי ] 7 ו % צ פפזנוס50 0818 086 :₪ 2 5 3 ג 0006 08/06 | 46 00 הפס הזת (4 ₪ ה . בי עבוספום שחו 16/1 2 | פתסופז// |פזס חו 5הַחו560 6ח+ 056 0 |6ח3= [0ח0 4 7 ₪ זטסץ 26ו|675008ם 4 : 8 רחס אב טח וב = סע ]טוה ! ב ו 0 66 חב 56|60% 5 אוסועצ - חסקו6507 וז בוט6חזוז1 1 6ח10] 50% ססו] 5 |03וחח60ד ₪ ג -) > / 5 1 / טוקס עו ₪ [0)]8פןפס 25 תרשים 27.1: ליישום ז0ז508וחוח0א 500766 הזכ 0086 ניתן לגשת על ידי לחיצה על הסמל 0086 זופ 32 שבלוח הבקרה כאשר תפתח את היישוס זסְסָּחג8וי! 0086, תוצג לפניך תיבת הדו-שיח ₪808 0086 401150780 06זטס5, המוצגת בתרשים 27.2. תיבת דו-שית וו כוללת כמה כרטיסיות המאפשרות לך להוסיף מקורות נתונים ומנהלי התקן נוספים. ייתכן ששמת לב לכך שכותרות שלוש הכרטיסיות הראשונות בתיבת הדו-שיח מסתיימות ב-א5. א5פ הס ראשי תיבות 6וח8\ 66זנוס5 0868 (שם מקור נתונים). א5ם הוא המפתח המשמש את התוכנית שלך לשם גיהוי מקור נתוני 0086. 0086 מטפל עבורך בקישור א05 למנהל ההתקן, השרת וקוב\ מסד הנתונים. ] |?|<| | פה [ החווסס )ההכ [ ההוסבזד [ פופאוו | 25 != [ 054 חסופעפ | זו יי 5 0303 1050 []פם.*] זסצוז ₪ 356 00 !)ס5סזסו] | בו : [15א."] זסעוז כ |06א = ))ס5סזסו] 8 |ססאם | .6זםו חס [ופב."] זפצוזם פזקאסת ]וספסזסו] 5 סזקאס [פ₪ח.*] זסצוז כ 400655 ]/ספסזסו4> | 03030396 97 000655 145 [פש.* 46)."] זסשוזכ 6 1 ))ס5סזסו! ו א ך תרשים 27.2: תיבת הדו-שיח 06זט50 הזכ 0 )סשחחסס 0! אוסח] וגוספב הסוב וחזס/חו 510165 6סזווס5 ₪818 056 0086 תה הווחה מאפשרת ,גוס סז ס|פופוי עוחס 5| ססזגוס5 0313 ז1!56 3 | .זסטועיסזק 0313 60)ב3סוטחו סו חוה הח [ת8זזגוס 06 חס 1560 56 עוחס 03 טחב ל הגדיר את מקורות הנתונים פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 721 מקורות הנתוניס של 0086 נחלקים לשלושה סוגים : ז056, וח506ץ5 ו-₪16. מטרת כל סוגי אפס והה - אספקת מידע על מקור נתוניס מסויס - אך ישנס הבדליס בנסיבות ובעיתוי שבהס מתאפשר לך להשתמש בכל אחד מהסוגים : + 5% 5060ש5, ישיס יותר בסביבת דא פאוססחו/\ מאשר ב- 95/98 פוססחו/\, ואינו מקושר לפרופיל משתמש ספציפי. מכך משתמע שלאחר הגדרת פרופיל כוה מתאפשר לכל התוכניות והשירותים הפועלים על אותו מחשב, לגשת אליו. לדוגמה, אס אתה משתמש ז6/ז56 הסה זס+ח1 6%ח%67ח1 לצורך התקשרות למסד נתוניסם, סביר להניח שתגדיר עבור מסד נתוניס זה א5 מסוג וח506ש5. + 58 ₪6 מאחסן את נתוני אפס בקובצ טקסט. קובצ טקסט זה הוא קובצ זא1 המכיל נתוניס על מנהל ההתקן של מסד הנתוניס ועל מיקוס מסד הנתוניסם. קוב\ אפס אינו מקושר עס מחשב מסוים, כך שניתן לאחסן אותו בדיסק רשת. > 05% 05608 הוא הסוג שסביר להניח שתרבה בשימוש בו. נתוני אפ ז56ש מאוחסניס ברישוס המערכת במחשב המקומי. במערכת דא פאוססחו\\ כל ז56 אפס מקושר עס פרופיל משתמש מסוים ואינו מוכר מחו לאותו פרופיל. שלוש הכרטיסיות הנותרות בתיבת הדו-שיח ז5300!חווח0\ 50706 0086 משמשות לצרכים אינפורמטיביים ולניפוי שגיאות. בכרטיסיה פזסווזס 0086, המוצגת בתרשים 3, מוצגת רשימת מנהלי התקן 0086 המותקנים במערכת שלך. הכרטיסיה האחרונה, +ש0פ1, דומה לכרטיסיה פזפטוזם 0086. בכרטיסיה מפורטים מספרי גרסאות הקבצים המשמשים את 0086 עצמו. שתי הכרטיסיות עשויות לסייע לך בבדיקה אס אצל משתמשי היישום שלך מותקנים מנהלי ההתקנים הדרושים. לפני שנעבור הלאה כדאי שנתייחס לכרטיסיה פַחוספזד המוצגת בתרשים 27.4. כרטיסיה זו מאפשרת לך לעקוב אחר קריאות למנהלי ההתקן של 0086 אשר מבוצעות על ידי זְסְח8) 0086. זכור כי 0086 הוא אמצעי המאפשר לך להתקשר למסדי נתונים שונים תוך שימוש בסדרת פונקציות 871 משותפות. הכרטיסיה פַחוס8זד תאפשר לך לבצע מעקב אחר קריאות כאלו. סביר להניח כי לא תרבה בביצוע פעולות מעקב כאלו, אך הן עדיין בחזקת דבר שכדאי לדעת על קיומו. |<|? יי | [ ו | פזווססט סוחס | פחוסמוד | פוסוזם | 5% סו [אפס ה | 8% זו :הח5/5%6 זגוסע חס 518]!6חו שזב ]הח) פזסאוזם חופסם. 6 חס זסקזס-) )50סזסו] 3.51.171300 = (פסוח> זפשוז 00655 זוס5סזסו1 חסו)הזסקזס +0פסזסו4 | 3.51.171300 [)ס4."] זפעוז 38356 50/1סזסו1 4 חסו)הזסקזס=) +]0פסזסו = 3.51.171300 [5א."] זפשוז |פסאם ))ספסזסוא1 חסוהזסקזס=) !)0פסזסו | 3.51.171300 []ס4.*) זסצוזם סזקאס= ))ספסזסו1 3 4500 הסו)בזסקזסם !ספסזסוו\ = 2.573.232700 6 זס) 0086 )50זסו1 ח 0 זסקזס ]0פסזסו = 3.51.171300 [שפס.> ;6אז.*] זפוז ]6 ד וספסזסו1 .8019732 = חסו)הזסקזס=) )50סזסו! 9 זז 501 תרשים 27.3: הכרטיסיה 0086 ו 4 1 / ו ו החסז] סוה הזזס!חזו 61 0 5הח3זססזק 30160 ח6--8 0 0 פשוסוןב זפצוזם 0086 חב 5 סוחס מודיעה א לו מנה ל ה תק 5610 5 זסעיחם 106 156 , פזסעחם צוסח [18פחו 1 .68סזגוס5 בו פסם מותקנים במערכת חח וטס 2 סדנת לימוד 6.0 8\ |<|?| ו | ]וספ | פזוססק פחוחסכו [ טחוסהז 1 פזסאחם [אפס 6 | 5506 [ 058 056 - - 6 0 חס | ץ|החב. סו5100 |הטופו/\ זזםזס | ששס הַחוסבז 1 51811 ]01 308 ] הסופום ₪ 7-7 == )ב ] שוו] ב1,08 =ן .0ב זוספס | וספ | | ...011 )5660 | ...0086 -פחסו!הסווקקה זגוסץ הַחופצופ06 חו גוסץ בוב סו זס |ההספזסק |הסקקוופ עם 456 | 0 990 פו ]| .5]חסעיס החוטב סוטגו51 |3ופו/\ 6365 זס2קעובחב סוט 5 |בגופו/ר .פחסו)הסו!קקב זגוסע זס!וחסחח חב סגופסם ז] פזטעוזם 0085 9 635 06 וס 5טס| פוהפזס 10 גופע פשסו|3 פַהוסבזו ופסם 0 | בג | וק |[ | 6 תרשים 27.4: הכרטיסיה 8ַחו80זד זס+8 5וחוחז0 0086 היא כלי עזר לניפוי שגיאות יצירת מקור נתונים 0086 בעזרת זסְאָבּהבּו₪ 0086 כדי שיתאפשר לך להגדיר מקור נתונים לצורך שימוש בו במסגרת יישוס, תידרש לדעת באיוה מנהל התקן יהיה עליך להשתמש ואיזו תצורה יהיה עליך להגדיר עבור מנהל התקן זה. לדוגמה, תידרש לדעת את שס קוב\ ז6/ז 56‏ 501 או 8סוא שבו מאוחסניס הנתוניס. תידרש גם להגדיר שס ייחודי שיזהה את מקור הנתונים. נגדיר מקור נתוניס לדוגמה כעת. עבור לכרטיסיה 5% ז056 ולח על הלחצן 00א, כדי ליצור מקור נתוניס חדש. תוצג לפניך תיבת הדו-שיח 66זט50 מאה ₪6 670806 המוצגת בתרשים 27.5. בתיבת דו-שיח ראשונה זו תבחר את מנהל התקן 0086 שישמש אותך לצורך גישה לנתונים. לאחר שתבחר מנהל התקן ותלתצ על הלחצן חפוחו=, תוצג לפניך תיבת דו-שיח כמו זו הנראית בתרשיס 27.6 שתאפשר לך להגדיר מסד נתוניס מסוג המשמש לעבודה עס מנהל ההתקן שבחרת בתיבת הדו-שיח הקודמת. בתיבת דו-שיח זו הגן שס בתיבת הטקסט 6וח8) 66זט50 פּזְהכ. השס שתזין ישמש את היישוס שלך לצורך פנייה לאותו מקור נתוניס. תוכל גס להזין ח656000 (תיאור) עבור מקור הנתוניס. לסיוס לחץ 06. לאחר שתגדיר את השם, תידרש להגדיר באיזה קוב\ מסד נתונים או באיזה שרת מסד נתוניס תרצה להשתמש בשילוב עס התוכנית שלך. כדי לבחור זפעוז 60655, לח על הלחצן -56!66 שבתיבת הדו-שיח. תוצג לפניך תיבת הדו-שיח 08182856 56160 (שהיא למעשה תיבת דו-שיח לפתיחת קובץ). נסה את התיבה על ידי בחירת קוב פפו המאוחסן במחשב שלך. תרשיס 27.7 מתאר מקור נתוניס בשס אפפץו\ כשהוא מקושר למסד הנתוניס 818110 שמסופק יחד עם 8856 |1508/\. פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 723 6זף 0313 א 216816 .6סזוו0פ 0813 ב קוו 56 0! וחבאו גופע הסוחצ זס] זסצוזם ב 5660 [ | מספשט| ה שחבא | זסוזבזסקזס-) +)ספסזסו! ‏ 3.51.171300 = זסו!3זסקזס-) וספסזסוא) ‏ 3.51.171300 סו ]סקס 50/1סזסו | 3.51.171300 [15א.") זפשוז כ [6סא= )ס5סזסון זו זסקזס= 080/1זסו | 3.51.171300 [ופה."] זפעוזק פזקואס= )ס5סזסו1 זסו)3זסקזס=) וספסזסו4) = 2.573.232700 06בז0 זס!) 0086 )ספסזסון זסו8זסקזס= )/50סזסו] | 3.51.171300 [שפס.> ;6)") זפשוזם 61 ד ספסוסוו זסוזבזסקזס=) 1ו50זסו 3 וי | | קט56 97 200655 ))ספ5סזטוא 6 סם ₪ [ | 36 6סזוו50 818 | ו | 6 | 8 | קוסו 6 | יא 8 030 .הפס ובו ו | .שפצ | -אפם | | -פם | | -869, 6 פע -ן 030066 פס ₪ 6 0 <<פחסווקם. [ תרשים 27.6: תיבת הדו-שיח 56000 תאפשר להגדיר נתונים הדרושים לשם התקשרות למקור נתונים 0086 |א | קט56 97 200655 ))ספסזטוא 6 סם | 6 אפסעוי] :136 506 38 | 6קחחהב 5 3905 ₪ ומ/\] ו 8 | וס 8 סו ₪988 /א.. | ...0030 | .זוהקסת | וו | חב 6 9 -ן | 6 30896 2 חס ₪ 6 6 <<פחסוזקם. [ תרשים 27.7: תיבת הדו-שיח 56002 97 460655 50%סזסוא 0086 תאפשר לך לבחור את קובץ 8ס!\ שאיתו תעבוד 4 סדנת לימוד 6.0 8\ זכור שתיבות הדו-שיח המשמשות להגדרת מקורות נתוניס תלויות בסוג מנהל ההתקן שבחרת. אך עדיין תידרש להגדיר שס למקור הנתוניס ואת מקוס אחסון הנתוניס. תרשים 27.8 יציג את תיבת הדו-שיח המשמשת לעבודה עם ז6/ז56 .501 0פ5סזסוו]. 50 501 0] 6סזט50 0313 אסא 8 16816 יישקו 0 96 חבס גוסץ 031 6סזוס5 0-31 חב 6ובפזס גוסץ קוסח !ואו קוו פוח ד .5616 .571 0! ]סטהתסס 5 ?וספ 363 6 0] זז ס! 96 ס! וחבאאי גוס סט סובה ובר ]ן :6חבוא ?וס 0313 6] 065006 ס! וחפאאי וסע סט אוסו בי ?0 ]60החסס 0! )חבש גוסע 0 זסץזס5 .501 הסוח | % ב תרשים 27.8: תיבת הדו-ש'יח ז6/ז56 .501 506סזסווי! דורשת לציין שרת הכרטיסיות להגדרת 05% מאפשרות גם להגדיר תצורות עבור מקורות נתוניס של 6 ולהסיר מקורות נתוניס שהתקנת. כדי לשנות הגדרת מקור נתונים, בחר אותו ולחץ על הלחצן 6זטףוחס6. תוצג לפניך אותה תיבת דו-שיח שבה נעזרת בעת הגדרת מקור הנתוניס. למחיקת מקור נתוניס, בחר אותו ולח על הלחצן 6/סוח₪6. שימוש באובייקטי 0 להגדרת מקור נתונים הגדרת מקור נתוניס אינה חייבת להתבצע אינטראקטיבית. ייתכנו מצביס, למשל התקנת יישומיס, שתרצה להוסיף מקור נתוניס תוך שימוש בקוד. תוכל להשתמש בשיטה ₪601500708082856 של האובייקט סַחופַחשפכ. תחביר השיטה הוא : 5 ,5160 ,01/67 ,006 0856 6015007008 6חופחם טס טבלה 27.1: הפרמטרים של ש'טה ₪601500/08%80856 פרמטר הגדרה 06 | מחרוזת הניתנת להגדרה על ידי המשתמש, מציינת שם מקור נתונים (לדוגמה, "80856זהסץוו") וח | ביטוי מחרוזת המציין את שם מנהל ההתקן המותקן במערכת, כפי שהוא מוצג בכרטיסיה פזפטוזסם 0086 (לדוגמה, = |0846) %ח6וו5 | ערך פטזד בפרמטר מציין שהפרמטר הבא (פסטטפוז3) מכיל את כל נתוני הקישור. 18/56 מציג את תיבת הדו-שיח קו56₪ של מנהל ההתקן המתאים, ומורה למערכת להתעלם מתכונות הפרמטר פסטטפוזטבּ 65 | מכיל את כל נתוני הקישור הדרושים לשם שימוש במנהל התקן 0086. אם בפרמטר %ח51!6 מוצב 8|56], המערכת מתעלמת מפרמטר זה פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 725 קטע הקוד הבא ידגים שימוש בשיטה ₪691500708080856 לצורך קישור למסד נתוני 5. לפני השימוש ב- 020[666) 60655( 088 זכור להוסיף לפרויקט שלך את ההפניה הדרושה לשם כך. 59 ₪5 סוה5 חחוס 58 5 זסעוזס5 חחוס "10.00 |18ם\6/\:כש= ספ" = 5000 "(ססוח.*) זסשוזכ 66655 50סזסוו" = וסעהוס5 טסו 5 ,6טזד ,זסעוזס5 ,"הפשו" 08580856 6015007 6חופח= טס לאחר שתפעיל קטע קוד זה, חזור לתיבת הדו-שיח ז0ז508וחוהח0 06זט0ס5 מזהכ, כדי לוודא שנוסף לו א5ש חדש מסוג ז56ש. הערה: ניתן לבצע רישום 02[606 28% 600% גם על ידי שימוש בשיטה 6זט00601550708%050ז של אובייקט 6חופַחם ס0ז. שיס לב לכך שבעת שימוש במנהל ההתקן של 860655, הפרמטר 080 מציין את שס קובץ מסד הנתוניסם. אם תרצה לוודא אילו פרמטרים דרושיס למנהל התקן מסויס של 6, תוכל להגדיר חיבור תוך שימוש ביישוס סח 0086 ולעיין בהגדרות החיבור המופיעות ברישום המערכת. את ההגדרות תוכל לאתר תחת הפריט 1 86\0 6\50876\0|טה)6ק\055₪5 צפאה (תוכל להשתמש בכלי העזר ספא לעיוןו ברישוס המערכת). בעת הגדרת מספר פרמטרים עבור השיטה 6, הפרד בין הפרמטרים באמצעות פסיקים. אובייקטי נתונים מרוחקים 5 160655 08% (00 - אובייקטי גישה לנתוניס) הס שכבה הפועלת מעל 0086 1ה. לפני פיתוח 09[666 2808 56006 (₪0 - אובייקטי גישה לנתוניס מרוחקים), מפתחי 88516 |8טפו\ רביס נהגו לדלג על שכבה זו ולבצע קריאות ישירות ל- 1קג 86ס0. הסיבה שבעטיה בוצעו הקריאות הישירות היתה כמובן רצון להאיץ את פעולת התוכניות. אך השימוש בקריאות ל-1ק4 הוא פחות נוח משימוש ב- 4060055 מז 65. 20[6065) 28% 0%6ח₪6 פתרו את בעיית אי הנוחות על ידי כך שהן סיפקו ממשק לפניה ל-871 אשר התבסס על פעולות מוכרות כגון הגדרת מאפיינים וקריאה לשיטות. האפשרות להשתמש במאפיינים ובשיטות (אשר משמשיס במסגרת כל התוכניות הכתובות ב- 8856 |1508/), הקלה על מפתחיסם להבין וליישס מושגיס הקשוריס בגישה למסדי נתוניס מבוססי 0086. 6 סדנת לימוד 6.0 8\ השוואה בין ₪00 ו-0אפ (₪00) 001666 28%8 ₪600%6 דומיס מאוד לאובייקטי (40) 00[606 466655 פאס שתוארו בפרק 26 שימוש באובייקטי גישה לנתונים (40פ). הדמיון הקיים בין טכנולוגיות אלו לא רק מקל על מפתחיס להבין את טכנולוגיית 800 אלא גם מקל מאוד על הסבת תוכניות המסתמכות על מסדי נתונים מבוססי 56 לפעולה בסביבת שרת/לקוח. למעשה, לאחר יצירת החיבור למסד הנתונים, אותן שורות קוד ששימשו לגישה לנתוניס בעת שימוש 0סא, תוכלנה לשמש גס לגישה לנתוניס תוך שימוש ב-800. לשס המחשת הדמיון הקיים בין הטכנולוגיות, טבלה 27.2 תפרט כמה סוגי אובייקטיס המוגדריס במסגרת ₪20 ואת סוגי האובייקטים המקביליס להס המוגדריס במסגרת סמס. בנוסף לכך, האובייקט 008650/06ז תומך בכמה סוגיס של סדרות רשומות מוחזרות, אשר דומיס לסוגיס של מערכי רשומות שנתמכים על ידי אובייקט 866070560. טבלה 3 תפרט את נקודות הדמיון בתחוס הזה. טבלה 27.2: אובייקטים של טכנולוגיית ₪00 ומקביליהם בטכנולוגיית 80 אובייקט בטכנולוגיית ספא אובייקט בטכנולוגיית 580 6חוח= 00 6חוףח8ס סו חהסזועטח= 00 6 הסו0 חח 000 6 6 וז ד בי 0 וי וס וק 00 רבק פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 727 טבלה 27.3: סוגי אובייקט 00₪650|06%ז וסוגים מקבילים של אובייקט ז₪6607056 ו %אפפחעָס | אוסף רשומות בר-עדכון, שהתנועה בו אינה מוגבלת 6 5% | סידרה שאינה ניתנת לעדכון רשומות, שהיו קיימות בעת יצירת מערך הרשומות. סדרת רשומות זו לא תשקף פעולות עדכון שתבוצענה על ידי משתמשים אחרים ץוחס-6זהצזס= ץוחס-6זהאוזס= | דומה לסדרת תוצאות סטטית (₪650|0565 5580₪6) או למערך רשומות מסוג זְסחִ5כְַ8ח5 שניתן לנוע בו רק קדימה. זהו סוג ברירת מחדל של אובייקט ₪ שיס לב לכך שטכנולוגיית ₪20 אינה תומכת בסוג כלשהו של אובייקט 00₪650/0560ז שמחזיר 180!6. ואת היות ואובייקטי גישה לנתוניס מרוחקים נוהגים להיעזר במשפטי 1 לשם אחזור נתוניס מטבלה או מכמה טבלאות. את סדר הרשומות באובייקט 6% ,:,: יש להגדיר על ידי הכללת קטע ץ8 006 במסגרת משפט ‏ 501 שישמש ליצירת סדרת הרשומות. כמו כן, היות ולא קיימת במסגרתה מהות המקבילה ל-18!6, ₪00 גס אינו תומך באינדקסיםס. כפי שניתן היה לצפות עקב הדמיון באובייקטים, קיימות שיטות המוגדרות לגבי ₪50 אשר דומות לשיטות המוגדרות לגבי סהפ. שיטות אלו והאובייקטיס שבמסגרתן הן מוגדרות יפורטו בטבלה 27.4. טבלה 27.4: שיטות של אובייקט ססח ושיטות מקבילות של אובייקט סס +סו הסוח 007686 6 8 סדנת לימוד 6.0 8\ השיטות שתפורטנה להלן משותפות לאובייקט 008650/06%6ז ולאובייקט ₪6607056 : + 10086 - מוסיפה שורה (רשומה) חדשה לקבוצת רשומות. + 26!606 - גורעת את השורה (הרשומה) הנוכחית מקבוצת רשומות. + ₪08 - מכינה את השורה הנוכחית לשינוי בנתוניס הב בה. + 86זוח6עס!! - עוברת לשורה הראשונה בקבוצת רשומות. + 85% |6עס!! - עוברת לשורה האחרונה בקבוצת רשומות. + )א6)\סטסו\ - עוברת לשורה הבאה בקבוצת רשומות. * | 5גוסוע6זק6שס1! - עוברת לשורה הקודמת בקבוצת רשומות. + 6 - מעבירה את השינויים שבוצעו ברשומה בתוך מאגר ההעתקה לרשומה עצמה. מאגר ההעתקה הוא מקוס בויכרון שבו שמוריס הערכיס המאוחסנים ברשומה שעמה עובדיס כעת. גישה למסד נתונים תוך שימוש ב-₪50 לשס המחשה נוספת של הדמיון הרב הקייס בין 0כ₪ ל-40כ נשתמש בקטעי הקוד שיובאו בתוכנית 27.1 ובתוכנית 27.2 לשס ביצוע אותה פעולה על-מסד הנתוניס 0ז|8ט. ההבדל בין שני קטעי הקוד הוא באובייקטיס ובשיטות שישמשו ליצירת הרשומות שתוחזרנה במסגרתם. לאחר יצירת אובייקט ₪660705%0 או אובייקט %, השורות הנותרות בקטע הקוד תשמשנה להדפסת ערך בשדה הראשון כל רשומה. את מקור הנתוניסם, אפסץוא, שאליו מתייחסת דוגמת השימוש ב-ססא, יצרנו קודס לכן, בעזרת זסְסְּח3ּ\] 0086. הערה: כדי שיתאפשר לך להשתמש באובייקטי גישה לנתונים מרוחקים, תידרש להוסיף לפרויקט שלך הפניה ל- 00[6% 0818 ₪60066 0פסזסווא, על ידי שימוש בתפריט 606נ[סזק 5 תוכנית 27.1: דאד .= |קוז054ח - גישה לנתונים שבמקור נתוני 0086 תוך שימוש בשיטות ₪50 חסו66 חח סז 5 00 הזוס 5 סז ₪5 5 הזוס 8חו5 5 .5501 חחוס ("צ5ץ ")סח סח (5)0חסרת הסזועח= סז 6חופחם סז = 00 56 "65ו ד החסז- * 5666" = .5501 (06560ה06כ00 , 5005605501 ה6ק 00.0 = 5 56 זו 5.0 פרק 27: גישה לאובייקטי נתונים מרוחקים (סכא) | 729 5.50 0% 6ווח/\ ספ (5)0חרחט!0000ז.5ז זחוזק עסו 5 קססן 86 006 תוכנית 27.2: דאד .= |קז054 - גישה לנתונים שבמקור נתוני 0086 תוך שימוש בשיטות סאס 6 858 600 הזוס 5 5 הזוס 8חו50 5 .5501 וחוס ("8סן.10 |056)"818 3 הק . (508665)0אזס/.6חופח כ = 00 56% "65| החסי=] * 56/6066" = .5501 (8560 חש 00006 , |(6607056%)550 0.0060 = 5 56% זו 6עסו.5ז 5.50 +סא 6ווח/\ סס (5.=16!05)0ז זחוזק 6 עסו.5ז קססן 86 006 ביצוע פעולות במסגרת מסד הנתונים באופן אסינכרוני הוא נושא נוסף שייתכן שתרצה ללמוד באמצעות שימוש ב-00ף8. במהלך ביצוע פעולות באופן אסינכרוני, השליטה על המערכת מוחזרת ליישוס שלך לפני השלמת הפעולה שבמסגרת מסד הנתונים, כמו בדוגמה הבאה: [16:606]. (5)0 6 חסזוטח 00 6חופחם סז = 00 56% (6וט0ח=6הץ05 ,,,, "אע "סקס 6 ד = 0ח660חח60ו00.501 6ווח/\ "... 8ח660חהחס6" שחוזק חס הקבוע 89!6ח65חש035ז מגדיר פעולה אסינכרונית. לולאת 6!וח/\ ₪0 תמשיך בפעולתה עד שהחיבור יווצר ובמאפיין 8ח660חח501!60 יוצב ערך 56ו8=. 0 סדנת לימוד 6.0 8\ שימוש בפקד 0%6023%3ו46 אס תרצה אמצעי מהיר יותר ליצירת יישומיס, תוך שימוש במקור נתוניס של 6 תוכל להשתמש בפקד |סשחס6 8ז08 ₪606 (₪006 - פקד הגישה לנתוניס מרוחקים). פקד ₪06 דורש ממך להגדיר עבורו כמה מאפיינים ולאחר מכן הוא מטפל עבורך בכל מה שנדרש לשם יצירת חיבורים למקורות נתוניסם של 86סס0. כך הופך הפקד את ביצוע השיטות על אובייקטי 0 לאוטומטי באותו אופן בו פקד 088 הופך את הביצוע השיטות לגבי 00[666₪ 460655 מַזְהכ לאוטומטי. לאחר שתגדיר את פקד |0שח60 2808 סח תוכל להיעזר בפקדי איגוד להצגת הנתוניס שייכללו ב-₪650/0560 שיווצר על ידי פקד הּ8. את הפקדיס המאוגדים תגדיר כשס שהגדרת אותס לעבודה עס פקד הנתונים, ראה פרק 25 פקד הנתונים ופקדי איגוד נתונים, פרט לכך שכעת המאפיין 66זנוספטטהכ של הפקד המאוגד יצביע על פקד מסוג 0608%8ו₪6. לאחר שהפקדיס המאוגדים יוגדרו, הס יתעדכנו לאחר כל גישה לשורה בקבוצת הרשומות, שתבוצע על ידי פקד 608%8ז600. השוואה בין ₪06 לפקד הנתונים באחד הסעיפים הקודמיס השוונו בין 00[605 2808 ₪600006 לבין 406055 808 5. כעת נתייחס לנקודות הדמיון הקיימות בין פקד הנתוניס לבין 2808 ₪60016 |סשחס6. כפי שניתן לצפות, למאפייניס רביס של |ס₪0ח0ס6 288 ₪606 יש מקביליס בקרב המאפייניס המוגדרים עבור פקד הנתונים. מאפיינים אלה ואופני פעולתס יפורטו בטבלה 27.5. טבלה 27.5: השוואה בין מאפייני פקד 0888 ₪006 לבין מאפייני פקד הס ח600- 80 806000 | בודק האם הדגל שמציין את תחילת הקובץ מסומן עקב הפעלת השיטה 5זקעסו], כאשר מצביע הרשומות מצביע על הרשומה הראשונה בקובץ 60506086 סחהּ\ם5ה0זה0 | מציין באיזה מסד נתונים כלולים הנתונים הסול6- ₪0 ח50-600 | בודק האם הדגל המציין את סוף הקובץ מסומן עקב הפעלת השיטה )אס)\סעס!ו, כאשר מצביע הרשומות מצביע על הרשומה האחרונה בקובץ 6506 86 | מגדיר את סוג קבוצת הנתונים (28956%) שהפקד ייצור > 6 | מכיל את משפט 501 אשר מגדיר את הנתונים שאותם יש לאחזר פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 731 הגדרת פקד ₪06 הגדרת פקד ₪26 דומה מאוד להגדרת פקד הנתונים. לפני שיתאפשר לך להשתמש בפקד ₪06 תידרש להוסיף את הפקד לפרויקט שלך. עשה זאת בעזרת תיבת הדו-שיח 5 סק 60, שאותה תציג על ידי בחירה בפקודה 15ח6חסקוח 60 מתפריט 660%[סוס. לאחר שתסגור את תיבת הדו-שיח, הפקד יתווסף לארגו הכליס שלך. הערה: פקד ₪06 זמין לבחירה רק במסגרת גרסת 56חכזסזח= 88516 |הטפו/. ייתכן גם שבחרת לבצע התקנה מותאמת אישית של גרסת 6פוזקזטזח=, שבמסגרתה בחרת שלא להתקין את פקד ₪6000608%8. אם נהגת כך, הפקד 2808 ₪6₪0%6 לא יוצג בתיבת הדו-שיח 66חפחסטוח 60 ותידרש להתקין שוב קטע זה. בצע את הפעולות הבאות כדי להגדיר את פקד 818 6016 : 1 שרטט פקד ₪6₪00%608%8 על גבי טופס. 2 הצב במאפייניס 86\ ו-ח00ק63 של הפקד ערכים שיהיו בעלי משמעות עבורך. 3 הגדר את המאפיין 6ח60\8זנו86950ם של הפקד. את ערך המאפיין תוכל להצין באמצעות הקלדה או על ידי בתחירתו מהרשימה הנפתחת. 4 הצב במאפיין !50 של הפקד משפט 501 חוקי, אשר יגדיר את הנתוניס הדרושיס לך. בסעיף 3, ציינו שתוכל לבחור ערך עבור המאפיין סזטספ₪ מתוך רשימה נפתחת. הרשימה הנפתחת שתוצג לפניך תכיל את שמות כל מקורות הנתוניס של 0086 שהוגדרו במערכת שלך. בתרשים 27.9 תוכל לראות דוגמת רשומה כצו. 1 - 5סווסקסזק | 6פחפו 1 ו] | | ב ו 1 שחסן הוה פע - 0 03008 - 1 058 155 סז - 0 1פחפו 0 - 5 05 5 שא סשיו ]501 5805 85] תרשים 27.9: בעת הגדרת מאפיי] סוחא\סזְספהּאהכ, יתאפשר לך לבחור ערך עבור המאפיין מתוך רשימת מקורות הנתונים המותקנים במערכת 2 סדנת לימוד 6.0 8\ לאחר שתגדיר פקד ₪670%608%8 תוכל לקשר אליו פקדי איגוד נתוניס, על ידי הגדרת המאפיין סְזטס85זכ של הפקדים. בתרשים 27.10 תוכל לראות שהרשימה הנפתחת בשורת הגדרת המאפיין, מכילה את שמות כל פקדי 0888 ₪6006 ו-0808 שבטופס הנוכחי. לאחר שתגדיר את מאפיין סְסזְספפּזהכ, תוכל לבחור את הגדרת המאפיין 0 מתוך רשימה, כפי שעשית בעת קישור הפקדים לפקד פּזהם. 1 ך - )וקסוק . 16080 1)א6ד | > | בגו 1 ץור 6% - 0 פב-ן1 00058 6חו5 שאו - 1 סז ח1300ו31 3565 ]501 5305 85] 50 א סוד חס0ו656|66טורן תרשים 27.10: הרשימה הנפתחת בשורת המאפיין 66זוס5פזה₪ מכילה את כל פקדי הגישה לנתונים, מסוג 0808 ומסוג 0818 6סחח6א, הזמינים לבחירה מכאן... פרק וה הקנה לך הבנה בסיסית של המושג יישומי שרת/לקות (ז6עז56/%ח6ו|6 5ווטט)). הפרק גם המחיש לך כיצד אובייקטי 0888 606 ופקדי 2818 ₪6000%6 יכולים להקל עליך את הגישה למסדי נתוניס המבוססים על 0086. מסדי נתוניס כאלה כלוליס בתוכניות רבות הפועלות בשיטת שרת/לקוח. מידע נוסף אודות נושאיס שנדונו בפרק זה תוכל למצוא בפרקיס הבאיסם: > מידע אודות מושגי יסוד בתחוס מסדי הנתוניס תוכל למצוא בפרק 24 יסודות מסד הנתונים. + מידע אודות כלי הגישה לנתוניס שיחליפו בעתיד את טכנולוגיות 0 ו-₪50 תוכל למצוא בפרק 28 גישה לאובייקטי נתונים באמצעות פקדי א6ע₪6. > מידע נוסף אודות שפת ‏ 501 תוכל למצוא בנספח 3 תקציר פקודות ‏ 501. פרק 27: גישה לאובייקטי נתונים מרוחקים (ססא) | 733 גישה לאובייקטי נתונים באמצעות פקדי <6עו246% (0ס0) מה בפרק? מבוא ל-00א שימוש ב- |סז%ח60 הּז3 ססג שימוש בפקד שווסַגּזבפ שימוש ב- 002[66%5 בּגב3ּ0 6%עו246% מערכי רשומות מנותקים פרק 28: גישה לאובייקטי נתונים באמצעות פקדי א6ט₪ג (ססג) 735 גירסה 2.0 של טכנולוגיית 001666 0808 6%ש460 - 450 היא התוספת החדשה ביותר למערך כלי הגישה לנתוניס של 88566 |508ו/\. טכנולוגיית 400 מאפשרת לך לקייס אינטראקציה עס מסדי נתוניס מסוגים שוניס, תוך שימוש בתוכניות הכתובות ב- 6 |808ו/\, ברכיבי 460/6% או בעזרת 73065 ז567/6 6ע60ג. פרק זה יציג בפניך את טכנולוגיית ססה, וידגיס את היכולות החשובות ביותר של טכנולוגיה זו. מבוא ל-400 טכנולוגיית הגישה לאובייקטי נתוניס באמצעות פקדי 466% (00[6605 88 ₪60/6%) המכונה בקיצור 400 היא התוספת החדישה ביותר למאגר טכנולוגיות הגישה לנתוניס של 8856 |808ו/'. טכנולוגיית 800 נועדה להחליף את טכנולוגיית 00[665 460655 זה (0הס), שהיתה הטכנולוגיה הראשונה לגישה לנתוניס שיושמה במסגרת 88516 |1508/ ואת טכנולוגיית (500) 60655 2818 60016 שהיא חלופה מהירה יותר לטכנולוגיית סהס. בדומה לשתי הטכנולוגיות אלו, גס 00 מציעה מספר אפשרויות לגישה לנתוניס. בפרק וה נסקור את הפעולות ואת השיטות הדרושות לשס התקשרות לנתוניס תוך שימוש בטכנולוגיית ססג. שיטות התקשרות לנתונים ססה היא אמצעי המאפשר לקוד שתיצור, לגשת למסדי נתונים. אך כיצד היא עצמה מתקשרת למסדי נתוניס! התשובה היא שימוש בגישת וסוטסזק 8 םוס. 8 015 הוא ממשק מסד הנתוניס היסודי החדש של 050ז6וא, אשר מאפשר גישה לסוגיס שוניס של נתונים. כיוס מוצעיס פזססוטסזק ₪8 015 עבור מסדי נתונים רגיליס (כגון 501) ועבור מקורות אחריסם של נתוניס, כגוו שרתי דואר אלקטרוני. אובייקט זסוטסזק ₪08 015 משמש כדי לחשוף את מסדי הנתוניס האלה בפני טכנולוגיית ססג, המאפשרת לך להתקשר לנתוניס באופניס הבאים: + פקד ספג. פקד 00 הוא פקד ייעודי אשר מטפל בתקשורת עס מסד נתונים. כל מה שתידרש לעשות לשס פנייה למסד הנתונים הוא להגדיר כמה ממאפייניו ולקשר אליו פקדים איגוד נתוניס שישמשו להצגת הנתונים. + ממשק אובייקטים כאשר אתה מוסיף לפרויקט הפניה ל-ססג, סדרת אובייקטים שלמה הופכת זמינה לשימוש התוכנית שלך. תוכל לבצע פעולות על הנתוניס ישירות מקוד, או לבצע פעולות משולבות של פקדיס ואובייקטים. הגדרת פקד 00 היא פשוטה ומהירה, אך השימוש בממשק האובייקטים מקנה לך עוצמה וגמישות רבה יותר. בפרק וה נבחן את שני האופניס המשמשים לשם פנייה לטכנולוגיית ססג. 6 סדנת לימוד 6.0 8\ התקנה על סמך ניסיון העבר אני יכול להעריך שעד שספר זה יגיע לידיך, 6670504 כבר תשחרר תיקונים (פפַח86ק) וחבילות שירות (86%5ק 06ו/ז56) עבור רבים ממוצריה. כך שלפני שתתחיל להשתמש בטכנולוגיית ססה, כדאי שתוריד מה-60ו\ עותק של הגירסה העדכנית ביותר של ספריה זו, ותתקין אותו במחשב שלך. נכון לכתיבת שורות אלה, 0 ₪]885 |1508\ כוללת את 2.0 00 ואילו משתמשל 5 8856 |508ו/\ יוכלו להוריד מה-60/\ את גירסה 1.56. חבילת 5)חה6חהסקו 60 266655 28% אספסלסוויז (6מסוז - רכיבי גישה לנתוניס של 67050%ו1!) כוללת קבצים, תיעוד של ססג, גירסה העדכנית ביותר של 6, ואת ספריית 5670065 2808 ₪600%6. את התבילה תוכל למצוא באתר: 0 00 .050ז6ורח. אוואא/ / : סת. טיפ: בעת ביצוע פעולות התקנה של גרסאות עדכון לכלי הגישה לנתונים, בחר את האפשרות ח589||800ח1 ח0ז05 (התקנה מותאמת אישית), והקפד להתקין גם את קבצי התיעוד של 400 ואת זפטוז 28182856 60655. "בר בתיבת הדו-שיח 065ח₪616076 כלולים שני פריטיס שיש לבחור אותס בעת עבודה עס 0 צזפזסו] 2.0 00[66 28% 26006 א0פסזסו ו- 8% 6ע60 6 0פסחסוו₪ ץזהזם | 2.0 ₪6607056%. כדי שיתאפשר לך להפעיל את הדוגמאות שתובאנה במהלך הפרק, הקפד להוסיף לפרויקטיס שלך את ההפניות הדרושות, כמתואר בתרשיס 28.1. |< | 1 - 065ח6)06 :60 6וסב!|ובים פחסו30םו!קקג זס=] 885% |בטפו/י |ש) 5 זו ו660סיוס חב 8665[פ0 6חוסחטז 835% |בטפו/ | 5 ששו ח3 0516655 835% |בטפו/ |ש) חססה טסוה 05 | עזבזםו | 2.0 8665[ס0) 3313 שו |+ ץז זסו 1 2.0 66070566 00016605 863 ₪60/6% ספסיסוו ש]ן ץז זפ | סוחס 56 ששוסה | ] עסו |סשחס-) ז688וסה | ] | כב עז ה זו 6 | חס עוסמ | |[+ 1 ע'זסםו5סק6ת 15י] ]ס הסחב זטווי] הזזסזזסק סש 1 וש 66% | | וי ק560 085856 שקה | ] | [66 | ספושסזם חן 2.0 זטזס!קא= 66חבהזזסזזטק הסוסבּ6ווסקה | | לחפו|₪ זטזסוקא= 66חבזסזזסק חסוסהסו!סקה | ן -/ וש זפזס|םא= 68 חהוחזסזט הסוסב6ווסם. + זב זט | 2.0 6655[ 0863 66% +)ס5סזסוויז .15 ]היז ד5י5\5ם = א סויזי 0 \5ם וז םק \:6 = :106800 5 יסַהַבְּהַחה | תרשים 28.1: להוספת הפניה ל-00, בחר 6167606865 מתפריט 6606[סזם ההפניה ל- 2.0 00[66065 2818 4601/6% 50סזסו! שבתיבת הדו-שיח 065ח6ז₪606 מכילה את כל מיגוון האובייקטיס בעלי היכולות המלאות של סס\. ההפניה השנייה שאותה תבחר מכילה רק קישורים לאובייקטים מסוג ₪6607056%, המיועדים לשימוש עס 5 1500060006 0%6ח₪6 (מערכי רשומות מנותקים). פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססא) 737 הגדרת מקור נתונים בכל מצב בו יהיה עליך להשתמש בנתוניס במסגרת תוכנית, הנתוניס האלה יבואו ממקור נתונים (66זט0ס5 פּזְ8כ). מקור נתוניס יכול להיות כל מסד נתוניס, החל ממסד נתוני 406055 קטן וכלה במסד נתוני 45/400. כיוס מוצעיס מוצריס רביס לעבודה עס מסדי נתוניס, שכמעט לכולס תוכל להתקשר מתוך ‏ 8856 |8טפו/. 0086 הוא אחד האמצעיס המאפשריס לך להתקשר למסדי נתוניס מסוגיס שוניס. תוכל להגדיר מנהל התקן (זפצוזס) של 0086 במערכת פאוססחו/\, להשתמש בו לצורך גישה למסד הנתוניס מתוך 8856 |508ו/\. כדי שיתאפשר לך לעבוד עס הדוגמאות שתובאנה בפרק זה, תידרש להגדיר מקור נתוניס עבור מסד הנתוניס 818110.%08 שבחבילת 8856 |1508/. התחל את פעולת ההגדרה על ידי לחיצה על הסמל המסומן בתווית 0086 18ופ-32 שבלוח הבקרה של 5וססחו/\. תוצג לפניך תיבת הדו-שיח ז0ו58וחוחח0ה 6סזטס5 8%8ס 0086 המוצגת בתרשיס 28.2. הערה: תוכל גם להגדיר חיבורים מבלי להגדיר א5פ. מידע אודות אופן פעולה זה תוכל למצוא בסעיף "הגדרת חיבורים באמצעות ספג", שיובא בהמשך הפרק. ליצירת מקור נתוניס חדש, לחצ על הלחצן 800. מסד הנתוניס 818110.08 הוא מסד נתוני 860655, כך שיהיה עליך לבחור את מנהל ההתקן של 460655 וללחוץ על לחצן חפוחו=. כעת תוצג תיבת דו-שיח של מנהל התקן 0086 של 460655 (0086 66655 זסצוזכ). לח על לחצן 5666 וחפש את מסד הנתוניס 10.08 8181 (ברוב המקריס מסד הנתוניס הזה יהיה מאוחסן בתיקיית היישומים של 88516 |1508/). הגדר את שס מקור הנתוניס 818110 ואס תרצה תוכל גס להזין תיאור של מסד הנתונים. לאחר שתסייס להזין את הנתונים, מסך ההגדרה ייראה כמו בתרשים 28.3. | יי‎ ?|<| [ סג [ סחווססכן הסווספהחס0! [ ההוסבז1 [ פופאוו | 58 ו | 058 תסופעפ | וי 8 :זו 0318 1190 חן [פט.*) זו 30356 | ספסזסווי] ב [159א.*) זפעוז כ |פסא= )ספסזסו] 5 [ססא .6זו 0 [ט8."] זפעוזק סזקקאס= ))ס5סזסוז 8 סקאס [סטחח.>] זפעיוז 4300655 ]ספסזסו ]4‏ 03030856 97 00688 145 8 [פטוח.*) זפעיוז 300655 )ספסזסוו] 3 [9%ס.* ;%)."] זסאוז ]6% 7 80סזסוו] 8 זא ד 0 60החוס0 0! וס ]ופה הסווה זס/חו 510165 06זווס5 ₪313 56!\ 0 חה ,גוסע 0! 6|סופו/י עוחס 15 6סזגוס5 0313 11561 ב .זסטושיסזק 0313 הפובּסוטחו סח 9 .6חות סב )הגוס 6ח! חס 11580 6 עוחס 08 טחם. תרשים 28.2: ז5078%0וחוחח0\/ 500766 8% 0086 יאפשר להגדיר 865 6סזטס5 באס שיצביעו על מסדי נתונים ספציפיים 8 סדנת לימוד 6.0 8\ |< | קטז56 97 4200855 ))ספסזסוא 86 סע | :4306 6סזגוס5 בוה 536 400 6 זס] ססזגוס5 ₪33 וקו 06 בי ימ בי 8 0 898%8|8/א...: :הפמו .וס והקסת 6 50% 00006 5900 6 פס ₪ 0 6 בי 12 :526 זס!ווום 5 :וטו 1 386 ₪360 ] | פאפטוסאם -] תרשים 28.3: התחברות למסד נתונ'י 60655 באמצעות 0086 שונה מעט מהתחברות באמצעות 36%. ההבדלים פורטו בפרק 26, "שימוש באובייקטי גישה לנתונים (540)" לחץ על 06 כדי לסגור את ז15₪8%0ח401 5066 0868 86כ0. כעת, לאחר שהגדרת את תצורת מקור הנתונים, תוכל להשתמש בנתוניס המאוחסניס במקור הנתוניס 18110, על ידי שימוש באובייקטי ספג. הערה: 6 מהווה אומנם אמצעי נוח להגדרת מקורות נתונים, אך ניתן להשתמש בטכנולוגיית 400 גם מבלי להשתמש ב-00860. כיום מוצע אובייקט מסוג הס ססג זסוטסזק המיועד לשימוש יחד עם מסדי נתונים ללא שימוש ב-0086. שימוש בפקד בּז₪03 00 ל- 6.0 88516 |1508/ סוג חדש של פקד נתונים, |סזחס6 ₪808 ססה. פקד זה ממלא אותו תפקיד שממלא פקד פּּ, אך הוא עושה ואת תוך שימוש בטכנולוגיית ססג. קודם לכן כבר ציינו כי 00 ניתנת להפעלה הן על ידי שימוש בקוד, הן על ידי שימוש בפקדים, והן תוך שילוב שני האופניס. פקד 0808 אומנס יכול לשמש כפקד עצמאי, אך אופן השימוש השכיח ביותר בפקדים כאלה הוא לשס אספקת נתונים לפקדים אחרים שבטופס. ניתן לקחת פקד רגיל כלשהו, לדוגמה פקד תיבת טקסט ויילאגדיי אותו לפקד 8. לאחר פעולה כזו, פקד תיבת הטקסט מכונה פקד איגוד או פקד איגוד נתונים ((00ח60 0חט80). הפקדים המאוגדים מקושרים למסד הנתונים ותוכנסם משקף את תוכן הרשומה ההנוכחית במסד הנתונים, המועבר אליהס באמצעות פקד א88. הערה: אם לא קראת את פרק 25 פקד הנתונים ופקדי איגוד נתונים, ייתכן שתרצה לקרוא אותו כעת. פרק זה דן בפקד הנתונים הרגיל ובפקדי איגוד נתונים. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססג) 739 הגדרת פקד בּזה03 400 הדרך הפשוטה ביותר ללמוד כיצד להשתמש בפקד 0כ\ג היא על ידי הפעלתו בפרויקט דוגמה. בסעיף זה תיצור פרויקט דוגמה שילמד אותך אודות |סשח60 08%8 ססה. התחל את הפעולה על ידי כך שתפעיל את 88516 |1508/, ותיצור פרויקט חדש מסוג 0870ח5)9 5אם. כדי שיתאפשר לך להשתמש בפקד 808 ססג, יהיה עליך להוסיף את הפקד לארגז הכלים של 88586 |508וש. הוסף את הפקד לארגז הכלים על ידי לחיצה ימנית על שטח ריק בארגז הכלים, בחירה בפקודה 0060%5וח60 מהתפריט תלוי ההקשר שיוצג וסימון ליד הפריט 6.0 |סשח60 זכ 400 בתיבת הדו-שיח שתופיע. לאחר מכן, שרטט מופע של הפקד 0868 00\ על הטופס. פקד 808 ססה, אשר מוצג בתרשיס 28.4 דומה מאוד לפקד הנתוניס הרגיל. לחצני ניווט הסו80%) תרשים 28.4: הפקד ₪808 00 מקשר את התוכנית שלך למקור נתונים של ססג לפני שתמשיך בהגדרת הפקד, כדאי שתתייחס לרגע למראה ההתחלתי שלו. ארבעת לחצני החיצים, הדומים ללחצניס שבמכשיריס להשמעת תקליטורים, משמשיס להחלפת הרשומה הנוכחית של מסד הנתונים. כותרת הפקד, שניתן להגדיר באמצעות המאפיין ח68000, משמשת להעברת מידע למשתמש ולכן כדאי להציב בה כותרת בעלת-משמעות. הכותרת ההתחלתית שתוצג על הפקד, 20061 היא שס ברירת המחדל של פקד 0808 400 הראשון שהוסף לטופס. כדי שיתאפשר לך להתקשר למסד הנתונים ולאחזר ממנו נתוניס, תידרש להגדיר כמה ממאפייני הפקד. את רוב המאפייניסם האלה תוכל להגדיר באמצעות תיבת הדו-שיח 5 שזסססזס (גיליונות מאפיינים) של הפקד, אשר מוצגת בתרשיסם 28.5. הצג את תיבת הדו-שיח על ידי לחיצה ימנית על הפקד ובחירה בפקודה ₪65ז6קסזק 6סססהא מהתפריט תלוי ההקשר שיוצג. 0 סדנת לימוד 6.0 8\ |א, 5% ע סקז | חס | סוס | 0-6 | חס סטחסתזצוה [ - ו הטוספ חס ]0 ססזטוספ -ן 6 תו | 0818 056 7+ ו ששו בחוז 5 הסוס6ההסם) 56 7+ סווום | :פפזגופוזזם זסתום ספות ץוק | 308 תרשים 28.5: היעזר בגיליון המאפיינים של |סשח60 ₪88 ספה, כדי להגדיר את הפקד במהלך עיצוב היישום תיבת הדו-שיח גיליונות המאפייניס של פקד 8₪₪ם סכ מכילה את הכרטיסיות המפורטות להלן: + !660678 (כללי). מגדירה את אופן החיבור שיוגדר בין הפקד למסד הנתונים. + ת%1630ה6ה+ש (אימות זהות). מאפשרת להגדיר שס משתמש וסיסמה שהפקד יוכל להשתמש בהס לשס התקשרות למסד הנתונים, אס דרושיס לשס כך שס משתמש וסיסמה. + ₪66076500706 (מקור רשומות). משמשת להגדרת מערך רשומות שהפקד יאחזר ממקור הנתונים. במאפיין ה ניתן להציב שס טבלה, שס שיגרה מאוחסנת או שס שאילתת 501. %חס; 6ח3 זס!60 (צבע וגופן). שינוי חוות הפקד. את רוב האופציות שבגיליון המאפייניס ניתן להגדיר גם באמצעות קוד. על ידי הגדרת המאפייניס הרלוונטייס ניתן לקשר פקד 0808 00 למסד הנתוניס שלך ולהשתמש בפקדי איגוד נתוניס שיוספו לטופס, לצורך הצגת הנתונים. חיבור פקד הּז03 ססג למקור נתונים כבר ידוע לך שמסדי נתונים מורכביס מטבלאות רבות ויכולים להכיל כמויות נתוניס גדולות. לדוגמה, מסד הנתוניס 818110 כולל טבלה המכילה נתוני סופרים, וטבלה אחרת מכילה רשימת ספרים שנכתבו על ידי אותס סופרים. ברוב המקריס בהם אתה חושב אודות שימוש ב- 8856 |1508/\ לעבודה עס מסד נתוניס, אינך מתכנן להשתמש בכל הרשומות שבמסד הנתוניס, אלא רק בתת-קבוצה של אוסף הרשומות, שבה כלול המידע הרצוי לך. תת-קבוצה זו (המכונה גס מערך רשומות - 56607056%) מוגדרת על סמך מקור רשומות (706ט50 0ז₪660), הבנוי מסדרת קריטריוניס המוגדריס על-ידך. לדוגמה, נניח שאתה מעוניין להפעיל על מסד הנתוניס שאילתה שתאתר את כל הסופרים ששס המשפחה פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססג) 741 שלהס הוא השוח5. בדוגמה זו מקור הנתוניס הוא מסד הנתוניס 818110 ומקור הרשומות הוא השאילתה שתחציר את קבוצת הרשומות שבה יכללו כל המחבריס ששס המשפחה שלהם הוא חטווח5. סעיף זה נועד כדי להראות לך שפקד 0808 300 מציג לשאר התוכנית קבוצת רשומות שנוצרת על ידי הפעלת שאילתה על מסד הנתוניס. יצירת החיבור כדי שיתאפשר לפקד ₪808 ₪00 לבצע גישה לנתוניס, תידרש קודס לקשר אותו למסד נתוניס. עליך להציב במאפיין 8חוש5ח0ו660חחס6 של הפקד את הנתוניס הדרושיס לשס כך. את המאפיין הזה תוכל להגדיר הן בזמן עיצוב היישוס והן בומן ריצה. הכרטיסיה |678ח6 שבגיליונות המאפייניס של הפקד, שהוצגו בתרשים 28.5, תציע לך שלוש דרכים להגדיר את המאפיין 51068 ח6000חח 60 : %, + 1|6= אחו] הזה ₪56 (שימוש בקובצ נתוני קישור). אופציה גו מאפשרת לטעון נתוני קישור שנשמרו בקובצ (אחו] ב8%6כ ספסזסווא) וסש. + 6וח88 500766 0086 ₪56 (שימוש בשס מקור נתוניס של 0086). אם תבחר באופציה זו, תוכל לבחור את אחד מ-058% המוגדריס במחשב. תוכל גם ללחו על לחצן צו6\] כדי להגדיר 05% באותו אופן בו היית עושה ואת דרך לוח הבקרה. + 8חו50 ה66%0הה60 ₪56 (שימוש במחרוזת חיבור). האופציה הזו תאפשר לך להגדיר את מחרוזת החיבור באופן ישיר. לחיצה על לחצן 8₪116 תעביר אותך לתיבת דו-שיח שתסייע לך בבניית המחרוזת. היות שכבר הגדרת את מקור הנתוניס המבוסס על מסד הנתונים 818110, בחר את האופציה ₪36 6סזט50 0086 056 ובחר את מסד הנתונים 818110 מתוך הרשימה הנפתחת שתוצג. הגדרת מקור הרשומות כעת, לאחר שהורית לפקד הנתוניס שעליו להתקשר למסד הנתוניס 818110, יהיה עליך להורות לו אילו נתוניס הוא יידרש להחזיר מתוך מסד הנתוניס. בעת עיצוב היישוס תוכל לעשות ואת על ידי בחירת הכרטיסיה ₪66070500166 שבתיבת הדו-שית עצזוסקסזק 5 של הפקד, אשר מוצגת בתרשים 28.6. פקד ₪808 00 מתנהג כמו אובייקט חח 60 של ססג, שאודותיו תלמד במסגרת הסעיף אובייקט 6חהּווח60. קיימיס ארבעה סוגי פקודות שבהס תוכל להיעזר כדי לאחזר נתונים : ** 80070016%% - מבצעת שאילתת 501 על מקור נתוניס. + 3007105507600106 - קוראת לשיגרה שמאוחסנת בשרת מסד הנתונים. + 30000180|6 - מגדירה שס טבלה, משמשת כדי להחזיר טבלה שלמה. + חאוסחאח8061000 - פקודה מסוג בלתי ידוע. 2 סדנת לימוד 6.0 8\ |א, 5% ע )סקז | 0 | סוס | סו חפהנוה | [678ה6 סשת -ן קש רחס 2 - 36 +[ 436 16זוו0060ז7] 510180 זס וט ך [501] !6 1 חב וחס) תרשים 28.6: המאפיין 6000506 מורה לפקד ססג 8 אילו נתונים לאחזר קוו | ץוסקם | 3066 [ תיבת הטקסט התואמת לסוג הפקודה שאותה תבחר תופעל, וכך יתאפשר לך להזין פקודה. לצורך יצירת יישוס לדוגמה שיפנה למסד הנתוניס 818110, בחר את הטבלה 5 חפווטטוס, בשלמותה. כדי לבחור את הטבלה, הצב את הערך 8007007896 במאפיין 6ץד0ח8 חח ס6, בכך שתבחר בו מתוך הרשימה הנפתחת. הבחירה בערך זה תאפשר את הפעלת תיבת הרשימה ₪806 0600076זק 500760 זס 6|ס8ד. בחר מתוך רשימה זו את הטבלה 5זסתפוופטום, כך שתיבת הדו-שיח תיראה כעת כמו תיבת הדו-שיח המוצגת בתרשיס 6. לבסוף לת על 08 כדי לסגור את תיבת הדו-שיח ולשמור את השינוייס בפקד. הצגת נתונים עד כה הגדרת את כל המאפיינים שיש להגדיר כדי שיתאפשר לפקד סג לייבא נתוניס לתוכנית. אך סביר להניח שתרצה גס להציג את הנתוניס באופן כלשהו, כדי לאפשר למשתמשיס לעיין בהסם, לדפדף ברשומות ואולי אפילו לערוך אותן. בפרק 25 פקד הנתונים ופקדי איגוד נתונים למדת להשתמש בפקדי איגוד נתוניס. לצורך יישוס הדוגמה, שרטט כעת חמש תיבות טקסט על הטופס, כמתואר בתרשיסם 28.7. תיבות טקסט אלו תשמשנה להצגת שס המוציא לאור, הכתובת, העיר, המדינה והמיקוד. | = [חוס ]₪ תרשים 28.7: ניתן להצמיד תיבות טקסט לשדות ספציפיים במערך רשומות פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססג) 743 כעת יהיה עליך להצמיד כל אחד מתיבות הטקסט לשדה במערך הרשומות. כדי לעשות זאת, הצב את שס פקד ₪808 סכג (61ססכה) במאפיין 66זטספפּטהס של כל אחד מהפקדים, ואת שס השדה המתאים במאפיין ₪819-6!0 של הפקד. לאחר שתסיים, הפעל את יישוס הדוגמה. יתאפשר לך לדפדף ברשומות שבמסד הנתונים, להציג ולערוך את הנתוניס שבהן, כמתואר בתרשים 28.8. [< ]ם)= | ו 8ק הפזוקואם ₪ ואס ו אד 6 ו א אס במ ה תרשים 28.8: חזות יישום הדוגמה היא אומנם גולמית מעט, אך זהו יישום יעיל, שלא נדרשת לכתוב קוד כלשהו במסגרת פיתוחו כאשר תנווט במסד הרשומות, תוך שימוש בלחצני הפקד, תוכן תיבות הטקסט המאוגדות יתעדכן כדי להציג את תוכן הרשימה הנוכחית של מסד הנתונים. אס תרצה להיעזר בפקדי איגוד נתוניס לצורך הצגת מספר רשומות ברגע נתון, תידרש להשתמש בפקד ייעודי כדוגמת הפקד חַוִסְּזהכ, שיתואר בסעיף שימוש בפקד שווסבּזהּם. שינוי מקור הרשומות באמצעות קוד זה עתה ראית שקל מאוד להגדיר פקד נתוניס בשלב עיצוב היישוס. אך גס בפרויקטיס הפשוטים ביותר סביר להניח שתידרש להשתמש בפקד באופן יותר דינמי. למרבה המזל תוכל להגדיר את הפקד על ידי ביצוע הפעולות המפורטות להלן: 1. הגדר את המאפיין פחו 5 הס 66 ההס6. 2 הגדר את המאפייניס 6080706 ו-₪660705007066. 3 הפעל את שיטת ח₪60765 של הפקד כדי לאחזר את הנתוניס. במצבו הנוכחי, פקד 80 400 יוכל לאחזר כל רשומה בטבלה פזפחפוופוק. אך תוכל גס להוסיף קוד שישנה את הגדרת המאפיין 66זו₪6607050 כדי לאפשר לפקד להציג מערך רשומות אחר. נניח שתרצה להציג רק את נתוני המוציאיס לאור שכתובותיהס מצויות במדינה מסוימת. תוכל לכתוב שאילתת 501 פשוטה שתציג כתובות אלו, כמו בדוגמה הבאה: 'ץ)\'=50306 6זסח/\ 5זסתפו|סוק וחסז * 56|666 4 סדנת לימוד 6.0 8\ במקוס שתידרש להגדיר את השאילתה במהלך עיצוב היישוס, תוכל להוסיף לפרויקט הדוגמה קוד שיאפשר להגדיר אותה במהלך פעולת התוכנית. ראשית, הוסף לטופס לחצן פקודה. שנה את כותרתו ל- ק0060] 558066 ואת שמו ל-6051916. הוסף את הקוד המובא להלן לשגרת האירוע 60/66 של הלחצן 605096 : 58 5 550006 וחום 8חו5 5 |550 וחוס ץחסטס 501 ם וזטפ'י "5זסח5ו!סוק רחס * 561665" = |550 (":ח0ו8ו/076 0 5%066 זס)ח" )%אסט)טקח] = 550906 "" 8 550906 .8" = 50906 6זסח/\ " ₪ .55001 = .5501 הפחד ""<> 5509006 ]1 ד 60 בדמס ססג פחד פזסקטי 3% = 06 דחו ס6. 00061 = 6607050006 00061 ה5 6 . 000161 הפעל שוב את פרויקט הדוגמה ולח על הלחצן שהוספת. הקלד צא, כדי להציג רק רשומות של מוציאיס לאור הפועליס במדינת ניו-יורק. תוכל לוודא את הצלחת הפעולה על ידי לחיצה על לחצני הניווט. שימוש בפקד שוּוסגּזבּ חלק ניכר מהנתוניס שמשמשים לעבודה עם תוכניות מחשב מוצגים במבנה רשת (6700) שמורכבת מעמודות ושורות, כדוגמת הנתונים המוצגיס בגיליון אלקטרוני של |06א5. מבנה רשת הוא מבנה התצוגה המועדף עבור משתמשים רבים ועבור סוגיס נתוניס שוניס. הפקד הִַסְַּ, שהוא פקד חדש שנכלל לראשונה בגרסת 6 8856 |1508/, מאפשר לך להציג נתוניס הכלולים במסד הנתונים שלך תוך שימוש במבנה רשת. במצביס מסוימיס אף מתאפשר למשתמש לבצע גישה ישירה לתאים מסוימיס ברשת, ולשנות את המידע המוצג בהס. ייתכן שיצא לך לעבוד עס פקד 86110 שנכלל בגרסאות הקודמות של 8856 |1508/. אך בשונה מפקד 866כ, פקד 8866 נועד לעבוד עס אובייקטי 0ססג. פקד חִַסַּהס קשור לפקד 0808 400 שתואר בתחילת הפרק, במקוס לפקד 088 מיושן. בתרשים 28.9 מוצגת דוגמה לשימוש ב-ַוספּז8ס. הפקד משמש להצגת הטבלה פפשוד שבמסד הנתוניס 818110 שמסופק יחד עס 28516 |1508/. פקד 080800 נוח לשימוש וזאת למרות שתידרש להבין את אופן פעולתו לקשר אותו למסד הנתוניס. אך לפני שיתאפשר לך להשתמש בפקד, תידרש להוסיף אותו לארגו הכלים. הוסף אותו על ידי לחיצה ימנית על שטח ריק בארגז הכליס, בחירה בפקודה 65 מהתפריט תלוי ההקשר שיוצג וסימון ליד הפריט 818670 ס6סזסוו₪ 0 ח650/\ בתיבת הדו-שיח. לחצ על 06 כדי לסגור את תיבת הדו-שיח. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אפוג (ססג) 745 |< |ם]. סוחס וז 33 .₪ 6 וו בשתפווסטו 65ואוך כחות ו 0 1070058527 הח | הווחה וטס 8885 פד 7% פטוק ||| 00456 רו | 0013198521 | | וסוס : 33066 3130856 כותרות 8 | 4 -33656 0-01 ססתפזס/6ר] אסוגום) 4.0-6.0 זב!פטזס/\ עחודות ו | ו בפזסז5 סחב 8זספטוז ד שוסבזם 0% 3 וספ זו והזחב זבכזן בוו . 0-0201406-7-3 301005 4] 06!פח! | 20 93 זסספזו 313356 ₪ >מווח0 ומח התא ו 0-1 חב הַהוז66תופח= זס! 0 בפזווסטוזו5 הנבחר ו 6 355000 0 הסווסגוטסזוה| חב הש / | 7 | 1 ה 0105 0 ופו1קה/ ו או | 1-4 3 ע0בז6!ו | 5/5065 הסווב חזזס!ח! 1 | חב עסבזפ!ו | 550605 הסו!בותזס!ח! 1 חב 61300 1 5506005 הסווםוחזס!ח! [ס]וחס) 0318 ₪00 |+ |4, מקטעים (5185) בוחר רשומה תרשים 28.9: פקד 8080110 משתמש במערך רשומות שמספק פקד פס ססג הזנת נתונים לרשת כדי שתוכל להשתמש בפקד 6ַחִספּזכ תידרש להגדיר עבורו את המבנה הרצוי לך ולחבר אותו למקור נתוניס. חיבור הפקד למקור הנתוניס מתבצע באותו אופן בו מקשריס פקדי איגוד נתוניס אחריס למסדי נתונים, על ידי ביצוע הפעולות שלהלן: 1. שרטט פקד 3 ססג על הטופס והגדר אותו באופן שתואר בסעיף שימוש בפקד הס ₪00ג. 2 הצג את חלון המאפיינים של פקד 081800 והצב במאפיין 066זו₪950 את שס פקד 0818 300 (בוודאי הבחנת שלפקד 28860 אין מאפיין הוחִמּזא0, זאת היות ופקד 80800 יכול להציג כמה שדות בו-זמנית). 3 פקד 08866 יכול להגדיר את מספר העמודות שבו באופן אוטומטי, בהתאס למבנה הרשומות שבמקור הנתוניס אליו הוא מקושר. לשס כך יהיה עליך ללחוצ לחיצה ימנית על הפקד ולבחור את הפקודה 665 ₪6₪16/6 מהתפריט תלוי ההקשר שיוצג. מספר העמודות ברשת יותאס למספר השדות שבמערך הרשומות של פקד 808 סכג. 4 התאם את עיצוב הרשת לצרכיך ובצע פעולות עיצוב שאותן יש לבצע באופן ידני. ראה "היכרות עם פקדי איגוד נתונים", פרק 25. 6 סדנת לימוד 6.0 8\ הגדרת פקד ש6וּוסְבּזבּ פקד 08090110 הוא פקד מורכב יחסית שמספר גדול של מאפייניס משמשיס להגדרת פעולתו. בדומה לפקדים אחרים, גם לפקד 080800 דפי מאפייניסם המאפשרים גישה מסודרת למאפייניו. אס תרצה להציג את דפי המאפייניס של הפקד, לחצ לחיצה ימנית על הפקד ובחר את הפקודה 65שז6קסזסק מהתפריט תלוי ההקשר שיוצג. תיבת הדו-שיח 5 /לזסקסזק של פקד 08%8010 מוצגת בתרשים 28.10. |<\ 5% עץזזסקטז | )8חזזס= | טווק5 | %חס= | 0 | 1.3 | פחוח\0) [ 8ז3ספ6 | חס ה | הסווקה 77777] ףאשססשס | ה[ אפמשסאאסוה 1 [ ו = 66| סויוס||ה, 229 טאיס גי [+ 0 ₪ ב [ טס ]| שב | 77 0155005 [+ ]זז הס - 2 סו פזסטוצו סוס ש ב שבכ [!אוס||ם. תרשים 28.10: את רוב הגורמים הקשורים בפעולת פקד חַחִ6ַזאכ ניתן להגדיר על ידי שימוש בדפי המאפיינים שלו בסעיפיס הבאיס נבחן את אופן השימוש בכל אחד מדפי המאפייניס לשס שליטה על פקד וזכ ולשס בחינת הנושאיס הקשוריס בחיבור הפקד למקור נתוניס. הכרטיסיה !060613 הכרטיסיה |8ז68ח66 המוצגת בתרשיסם 28.10 כוללת כמה מאפיינים שמגדירים את אופן הפעולה הכללי של הפקד. כרטיסיות אחרות, כגון פחוחט!|ס6 ו-זטסץ18, מאפשרות לך להגדיר את המאפייניס של מבנה הרשת. הערה: מידע אודות הכרטיסיות פחוחט!0ס6 ו-+סץ8! תוכל למצוא בסעיף התאמה אישית של מראה פקד שוּוסַאּזּ. אפשרויות נוספות לעיצוב הפקד תתוארנה בסעיפים התאמה אישית של פקד אַוז6בז₪3 באמצעות קוד ופיצול פקד אַווסהּזּהּ. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססגא) 747 להלן מפורטיס כמה מאפייניס אשר מגדיריס את חזות הפקד: מאפיין ח68000 שולט על הכותרת שתוצג בשולייס העליוניס של הרשת. אס אינך מעוניין להציג כותרת, הצב במאפיין מחרוזת ריקה. מאפיין ז6806תחוחט|ס6 הוא שקובע האס תוצג בקצה העליון של הרשת שורת כותרות העמודות. כותרת ברירת המחדל של כל עמודה היא השס שהוגדר עבור השדה התואס לו במסד הנתונים, אך בהמשך תלמד כיצד תוכל לשנות כותרות כדי להתאימן לצרכיך. גובה שורת הכותרות יוגדר באמצעות המאפיין 65חו 46801]. הצב במאפיין זה ערך שלם שייצג את הגובה הרצוי לך. ניתן לשלוט על המראה הכללי של הרשת באמצעות המאפיין ססח8זהסקקה. בשורת ההגדרה של המאפיין תמצא שתי מחרוזות: +000₪8 ו-60830 (מחרוזת ברירת המחדל), אשר גורמות לרשת להיראות שטוחה או תלת-ממדית, בהתאמה. מאפיין 50/6זס0וטוסאוס₪ מגדיר את סוג המפריד בין שורות נתוניס. תוכל לבחור את הסוג הרצוי מבין כמה אפשרויות, ביניהן אפשרות שלא להציג מפרידים. מאפיין 6ו/50ז06וטוס/וסח אינו משפיע על המפרידים של בוררי הרשומות. מאפיין 80/60ח₪ הוא שקובע האס יתאפשר למשתמש לקיים אינטראקציה עס פקד אִַסַפַז. אס תציב במאפיין ערך 8/56=, לא יתאפשר למשתמש לגלול את הרשת, לבחור תאים או לשנות נתונים שיוצגו. אך גס במצב כזה הפקד וחלק מהנתונים הכלולים בו יוצגו על הטופס. בנוסף למאפייניס המשמשיס להגדרת חזות הפקד, כלוליס בכרטיסיה |8ז6608 גם שלושת המאפייניס המפורטים להלן אשר מגדירים אילו פעולות יתאפשר לך לבצע על הנתוניס שבפקד סכ : + % 0 006 אוס!|ה - קובע האס יתאפשר למשתמש להוסיף רשומה למערך הרשומות המוצג במסגרת פקד 0808610 (הגדרת ברירת המחדל של הפקד היא 58856). אם המאפיין מוגדר 6טזד, תוצג שורה ריקה בסוף מערך הרשומות, כדי לאפשר למשתמש להצין נתוניס. בבורר הרשומות של שורת ההוספה תוצג כוכבית (י). 6 סוה - קובע האס יתאפשר למשתמש לגרוע רשומות ממערך הרשומות בו משתמש הפקד. אם תרצה לגרוע רשומה, היעזר בבורר הרשומות כדי לסמן אותה והקש על 6/606כ. הגדרת ברירת המחדל של המאפיין 6ז6|ססצוסו| היא 8156=. 6 טסוו - קובע האס יתאפשר למשתמש לערוך רשומות קיימות (הגדרת ברירת המחדל של המאפיין היא 6זד). הצבת ערך 8156 במאפיין גורמת לתאיס שבפקד 08080780 לפעול כמו תיבות טקסט נעולות: יתאפשר לך לבחור את הטקסט בעזרת העכבר ולהעתיק אותו ללוח, אך לא תוכל לשנות אותו. את שלושת המאפייניס האלה ניתן להגדיר בעת עיצוב היישוס וגם בזמן ריצה. אס תציב ערכי 13/56 בשלושתם, פקד וה יהיה פקד לקריאה בלבד. 8 סדנת לימוד 6.0 8\ אפשרויות הקשורות בשימוש במקלדת ניתן אומנס לבחור תאיס ברשת בעזרת העכבר, אך ייתכן שתעדיף להשתמש במקלדת, היות וכך יתאפשר לך לבצע פעולות מהר יותר. פקד וסַפזה0 כולל מספר מאפייניס אשר מגדיריס את אופן פעולת המקלדת במסגרת העבודה עמו. תוכל להגדיר את המאפייניס האלה על ידי שימוש בכרטיסיה 6ַזהּסטץ6א בגיליון המאפייניס של הפקד, או על ידי שימוש בקוד. לדוגמה, המאפיין פשוסזזשוס!|ה קובע האס ניתן יהיה להשתמש במקשי החיציס למעבר בין תאיס בפקד אַוסַ8ז8כ. אס תציב ערך 8156 במאפיין זה, המשתמש ייאלצ להיעזר במקש פד או בעכבר לשס מעבר בין תאי פקד 6₪0. הערה: בעת עריכת תאים, מקשי החיצים משמשים לתנועה בתחומי התא אותו אתה עורך כעת. אם תרצה להיעזר בהם לתנועה בין תאים ברשת, לחץ פעם אחת על תא מסוים כדי להאיר אותו וכך יתאפשר לך לעבור בין תאים. הגדרת אופן השימוש במקש פד בפקד כלשהו בעל מבנה רשת, מהווה דילמה עבור מפתחים, מפני שבמצב רגיל מקש ה משמש להעברת מוקד הקלט לפקד הבא בטופס. למרבה המזל, מאפיין ח804600ד של פקד חספה יאפשר להגדיר את אופן פעולת המקש כרצוי לך. מאפיין ה יכול לקבל אחד משלושה ערכיס אפשריים : + חססַהּאַוע070108ח₪00900 - 0 - הקשה על פד בעת עבודה עס פקד אַסַּזכ תעביר את מוקד הקלט לפקד הבא בטופס. הגדרה זו גורמת לפקד שַוספּאה0 לנהוג כמו כל פקד רגיל אחר. + חסחַהּףוע8\חוחט!60טַ00 - 1 - הקשה על מקש טפּד מעבירה לתא הבא בשורה הנוכחית של פקד שַוספהס. הקשה על 180+אוח5 מעבירה לתא הקודס בשורה. הקשה על מקש טּד כאשר הסמן מצוי בתא האחרון בשורה תעביר אותך לפקד הבא בטופס. למעבר לשורה אחרת בפקד 088606 יהיה עליך להשתמש במקשי החיציסם או בעכבר. + חִססחְהַהַוְטה0%הִַ6פָ00 - 2 - הגדרה זו אינה שונה במהותה מההגדרה הקודמת, אך הבחירה בה תאפשר להגדיר שני מאפייניס נוספים השולטים על מקש פ8ד: 5 ו-זססחוסק||6ק3ז/\. ערך 6טזד במאפיין זססחוסק||66קבּז/\ יאפשר להיעזר במקש פד לשם מעבר בין שורות בפקד שַוסאַּז8כ. אם תגדיר את המאפיין 5 ד לערך 6טזז, תוכל להשתמש במקש סד כדי לעבור בין מקטעיס בפקד סוסמסהס. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אסטוג (ססג) 749 פיצול הרשת ברוב המקרים, פקד 808006 מתבסס על סדרת נתוניס אחת, אך ניתן לחלק את הרשת למספר חלקים. חלקיס אלה, המכוניס מקטעים (ו|ס5), מתפקדיס במידה רבה כרשתות משנה של הרשת הכללית. בתרשיס 28.9 תוכל לראות דוגמה לשימוש במקטעיס. השדה פשוד (כותרת) כלול במקטע נפרד משאר השדות ועובדה זו מאפשרת לו להיות גלוי על המסך בעת גלילה אופקית של מקטעים אחרים. הערה: גם אם פקד 080070 מכיל מספר מקטעים, עדיין קיימת רק רשומה נוכחית אחת, וכל המקטעים מכילים את אותם נתונים מאותו פקד סכג. השימוש במקטעים אינו כה מורכב כפי שעשוי להיראות בתחילה. תוכל להתייחס למקטעים כאל קטעי רשת שאת כל אחד מהם ניתן לעצב בעיצוב שונה. עריכת הרשת בעת עיצוב היישום אס תרצה להוסיף או לגרוע מקטעים במסגרת עיצוב היישום, תצטרך לעבור למצב עריכת עיצוב סביבת הרשת. כדי לעבור למצב זה, לחץ לחיצה ימנית על הפקד, כפי שעשית כדי להציג את גיליון המאפיינים, אך במקוס לבחור מהתפריט תלוי ההקשר את הפקודה 66וז6קסזק, בחר את הפקודה 8ו50. לרגע ייראה לך שהפקודה לא עשתה כלום, אך אס תלחצ שוב לחיצה ימנית תראה שהפריטיס שבתפריט תלוי ההקשר השתנו מתפריט 88516 |1808/\ לתפריט פקד אַוִסַּזה. כאשר תעבוד במצב זה, התפריט תלוי ההקשר יאפשר לך לבצע את הפעולות הבאות: + להוסיף ולגרוע עמודות. + לשנות גודל עמודות. = ום] = נו ** לאחזר את הגדרת מבנה השדות של מקור הנתוניס. + לבטל הגדרות עיצוב קיימות של השדות. + | להוסיף ולגרוע מקטעים. יצירת מקטע חדש כברירת מחדל, פקד חַוסַ8ז08 מכיל רק מקטע אחד שנקרא 60ו501, כמתואר בתרשים 28.11. אס תרצה להוסיף לפקד 880700 מקטע, לחצ לחיצה ימנית על הפקד בעת עבודה במצב עיצוב הרשת ובחר מהתפריט תלוי ההקשר את הפקודה שווס5. פעולה זו תוסיף לפקד מקטע נוסף, כמתואר בתרשיס 1. תרשים 28.11: פקד 0368606 לפני הוספת מקטע נוסף ואחריה 0 סדנת לימוד 6.0 8\ עבודה עם מאפייני מקטעים בכל פעס שתוסיף לפקד חוסַמַּזהכ מקטע, המקטע החדש יתוסף לרשימה הנפתחת 51 שבתיבת הדו-שלח 28965 שזסקסזק של הפקד, כמתואר בתרשים 28.12. | 5% עץזזסקטז | חזזס: | וספ | >חס> | זסוס= | 13% | פחוחטוס | ספ ע66 | [73ח36 [+ 0 וס ופפ : ₪ . ב 5 קוטס 6 -] [+ )סלוט - ₪ 8 פוססאוסוום = שן בחוקופאיסו|ה. שן וע לססווסזב ו 4 - - בחוקו פס חווסוןה. ‏ שן | 5 זסזו הווה סוהַ00 - 6 סה <] 1 06 [+ 6 ₪ 6 תרשים 28.12: הכרטיסיה 8וו5 שבתיבת הדו-ש'ח 0865 ץוסקסזק של פקד הס מאפשרת להגדיר מאפייני מקטעים של הפקד בעת יצירת מקטעיס חדשים מוגדריס עבורס שמות סדרתיים: 60ו501, 61ו|ק5, 2שווק5 וכך הלאה. אס תרצה לקבוע הגדרות למקטע מסוים, בחר אותו מהרשימה הנפתחת %|פ5 והגדר את המאפייניס באופן הרצוי לך. להלן כמה מבין המאפיינים הרלוונטייס : + 106660 - בחירה במאפיין וה מונעת מהמשתמש להצין טקסט. + 5ט6סאוס!| - הצבת ערך 8156= במאפיין וה תמנע מהמקטע הנוכחי לקבל מוקד. + חַחו2ו5טוס!|\ - מאפשר למשתמש לשנות את רוחב המקטע תוך כדי פעולת התוכנית. ** | סחו?ו5אוסמצוסו| - מאפיין וה יכול למנוע מהמשתמש לשנות את גודל השורות בזמן ריצה. + ₪6607050!660075 - המאפיין מאפשר או מנטרל בוררי רשומות של המקטע הנוכתי. אס תגדיר את מאפיין ₪6607056/660015 של הפקד, ההגדרה העדכנית תחול על המקטע הנוכתחי. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססג) 751 התאמת עיצוב הפקד אומנס היכולת להגדרה אוטומטית של תצורת הפקד הכלולה בפקד שַוִסַַּז08 היא כלי נחמד ומועיל, אך במקריס רביס תרצה לשנות את מאפייני תצורת ברירת המחדל. לדוגמה, ייתכן שתרצה להגדיר שני מקטעים שיכללו עמודות שונות. אס תרצה לנהוג כך תידרש תחילה להגדיר את המקטעיס ואחר כך להיעזר בכרטיסיות %טסץ18 ו-5ט8 שבגיליון המאפייניס של הפקד, כדי להתאימס לצרכיך. הכרטיסיה פחוחט|ס6 שולטת על סדר הצגת העמודות בפקד (ראה תרשים 28.13). |<| 5% ע סקז | )הוחזס= | ופפ | זחס= | זו [ אושמ [ פוטס | הזסטץ%6 | | | 6 [6 ד] 0 מחזגווס | ו חסוופ | סופ ץוק | 308 תרשים 28.13: אם תרצה תוכל לשנות את סדר הצגת העמודות בפקד באופן ידני קל לעבוד עס הכרטיסיה פחוחטוס60. תידרש בסך הכל לבחור עמודה ולבחור את המאפיין ח63000 ואת שס שדה הנתונים. הערה: אם לא תזין ביטוי חוקי עבור המאפיין 0ַוְחִ8זאכ, העמודה תהיה ריקה. הכרטיסיה 5פ3ד שולטת על העמודות שתוצגנה ואילו הכרטיסיה זטסץ183 שולטת על עיצוב כל עמודה בנפרד. אס תרצה להשתמש בכרטיסיה זטסץ18 המוצגת בתרשיס 4, תידרש לבחור מקטע ועמודה, ואחר תידרש להגדיר את המאפייניס הבאיס : 100660 - כאשר המאפיין הזה מוגדר 6טזד, הוא מונע עריכת עמודה, גס אס ההגדרות הכלליות של הפקד מאפשרות זאת. + פַחו2ו5טוס!| - מאפיין וה, שערך ברירת המחדל שלו הוא 6טזד, מאפשר למשתמש לשנות רוחב עמודות בעת עיצוב חיישוס. + 6|פו5ו\ - מאפיין וה קובע האס העמודה תוצג בפקד (אך חשוב גם שתזכור שאם אינך צריך להציג נתוניס בעמודה מסוימת, תוכל למנוע את הצגתה על ידי גריעת העמודה ממקור הנתונים של הפקד). 2 סדנת לימוד 6.0 8\ + 60 801ז/\ - מאפיין וה קובע האס הטקסט בעמודה יוצג כשהוא פרוש על כמה שורות ואס רוחבו יהיה גדול מרוחבה. בתרשים 28.15 תוכל לראות דוגמה לשימוש במאפיין )6 דס8ז/ש. + חסשטם - מאפיין זה ייקבע האם יוצג לחצן רשימה נפתחת במסגרת השדה המואר של הפקד. + 06750/6וטום - מאפיין וה דומה למאפיין 06156/66ושוסאוס₪ שבכרטיסיה |8ז6606 של תיבת הדו-שיח, אך ניתן להגדיר אותו עבור כל עמודה בנפרד. + 6חסוחת8ו|ג - מאפיין וה שולט על אופן יישור הערכיס שיוצגו במסגרת העמודה. > ח0ו\\ - מאפיין וה מגדיר רוחב עמודה מסוימת (דרך פשוטה יותר להגדרת רוחב העמודה היא על ידי שימוש באופן העריכה שתואר קודס לכן ושימוש בעכבר להגדרת הרותב). |< 5% ע וזזסקטזי] | בי | פטוופפ | חס | 600 | 13 | פחוחטוס | 0 | 300618 52 א [= 0000 פחמחשסם] הזוס [+ זז קספנ - 2 | |עופוסטואום סוד % 6 טפט - 0[ = )השותחטווה. פחוסופווסוה 1 16 0 : חצ סז = חסוושם -] [< |ם]=. 2חזט ]₪ 6ופוחבאם )6 1 בזע - מסוופוזס0 065 סופט ו בס שו - 2205 89| 0-0038307-6-4 5 |08ווס3זק 5 < || 08355 6 205 83| 0-0038326-7-85 6 פווך 8 תווחה זסז 25 88| 0-0038337-85% 7 5 || 088956 5% 15| 0013198521 800 ו 180390 | | | בחוססוסעיס 5 88| 0013365614 8 >סוגו 4.0-5.0 זז / 6 תסו 0 215 1 586 800 פסַמַח ד 18016 00606 68זסו 0 89| 0-0201145-83 8 סקוו זו ה הווחה זטסזה | 1 | 0020140673] 4 18010 36אפתר - | ]' ו 4 תרשים 28.15: בדוגמה זו, מאפיין )6% דס8ז/\ של המקטע השמאלי מוגדר 6טזך פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססג) 753 התאמת הרשת על ידי קוד במהלך הלימוד על פקד שַוִספְַּכ, התרכזת בהגדרת מאפייניס בסביבת העיצוב. אך כמעט כל מה שלמדת ניתן ליישוס גס בסביבת זמן ריצה. לדוגמה, כדי להחיל את המאפיין 60 דמפז/\ על העמודה הראשונה של המקטע הראשון, השתמש בקוד הבא : סד = 6 דע (5)0חרתט!00. (5)0ו!50. 05807101 אומנס בחלק מהמקרים תידרש לעבור דרך מספר רמות אוספים כדי להגיע למאפיין הרצוי לך, אך ניתן לשנות את רוב המאפיינים של פקד 0818610 באמצעות קוד. שימוש באובייקטי בּז03 <6עו46% פקד |סשחס6 808 00 שימושי רק עד גבול מסויס. במה שנוגע לטיפול בנתוניס, את העוצמה האמיתית של 8856 |8טפו\ תוכל לחוש כאשר תשתמש באובייקטי ספג. האובייקטיס המרכיביס את מודל האובייקטיס של 00ג יפורטו בטבלה 28.1. טבלה 28.1: האובייקטים של טכנולוגיית 001666 808 6%עו60 אובייקט תיאור 6% | מכיל את כל הרשומות המהוות תוצאה של שאילתה מאפשר שליטה על החיבור למסד הנתונים 6080 | מבצע פקודות של מסד הנתונים ושאילתות, תוך שימוש בשאילתות עם פרמטרים (65ו6ט) 6!200)סוחהזבק מייצג פיסת מידע במערך רשומות זס)סוההּזבּק | פועל בשילוב עם אובייקט 0ה8חחס6 כדי להגדיר פרמטר שאילתה או שיגרה מאוחסנת מאפשר למשתמש גישה למאפייני אובייקט ססה כדי להשתמש באובייקטי ססה, כלול בפרויקט הפניה מתאימה. בחר 8616760665 מתפריט 60%[סיזופ, סמן ליד 2.0 02[66%5 26006 1160505 ולתצ על 06. לאחר שתוסיף את ההפניה, תוכל להשתמש בתחיליות שלהלן, בהצהרות על אובייקטי ססה: + מססקג - ספריה זו כוללת את כל האובייקטיס שפורטו בטבלה 28.1. > מסקג - ספריה זו כוללת את כל האובייקטיס הקשוריס בעבודה עס ₪6607056%5 (66070א, 6|סו=, עהסקסזק). הספריה מסופקת עס זסזסוקאם 6%ח667ח1 ומאפשרת למפתחיס להעביר מערכי רשומות בלתי מקושרים (₪66070566 66060חחס56וס) באמצעות ה-60/ש. 4 סדנת לימוד 6.0 8\ במהלך הסעיפים הבאיס נבחן חלק מהמאפיינים, השיטות והאירועים של אובייקטי ססג. רשימה מלאה של הגורמיס האלה ניתן למצוא ב- ז6פו0ז8 606[פ0, הניתן להצגה באמצעות הקשה על 2=. שימוש ב-00ג ליצירת חיבורים אובייקט 60066000 משמש להגדרת חיבור למקור נתונים. המאפיין החשוב ביותר שלו הוא 4ח665100511ח60, אשר מכיל את הנתוניס הדרושיס לאובייקט לשס התחברות למסד הנתונים. תוכל לשלוט על מצבו של אובייקט ח6600חח60 בעזרת השיטות ח6ק00 ו-056ו6. פתיחה וסגירת חיבור הצעד הראשון בפתיחת חיבור למסד נתוניסם היא יצירת מופע חדש של אובייקט הסוח ח0ס6. פס סכה, באופן הבא: חס חח 00.00 5 חס וחוס 0.606 צוסא] = חס 560 לאחר יצירת המופע החדש של האובייקט, כל שתידרש לעשות כדי להגדיר חיבור הוא להגדיר מחרוזת חיבור (8ַחו5 הס660הח60) ולקרוא לשיטה חסקס. תוכל להגדיר את מחרוזת החיבור בשני אופנים. האחד, על ידי הגדרת מאפיין 08ו6600050₪חהחס6 של אובייקט ח6600חח60 : "0 |818-\5" = 6058 חח 60 .חס חס חס באופן השני, העבר את המחרוזת כחלק מהקריאה לשיטת ח6ק0 של האובייקט: "51-8181110" הסקס.חס הערה: מחרוזת החיבור שהוצגה בדוגמה היא פשוטה. בהתחברות למקורות נתונים אחרים ייתכן שתידרש למחרוזות חיבור ארוכות יותר אשר תכלולנה נתונים נוספים. לאחר שתסיים להשתמש באובייקט ח6000חח60, קרא לשיטה 6|056. בדומה לאופן השימוש באובייקטים מסוגים אחרים, גס בעת סגירת אובייקט זה כדאי להציב ערך 8חווזסא באובייקט כדי לשחרר את משאבי המערכת ששימשו אותו. 6 חס = חס 56% פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אסטוג (ססג) 755 שימוש בשיטה 660%6א₪= 100 מאפשר להשיג מטרות מסוימות תוך יישוםס אופני פעולה שוניס. אחזור נתוניס הוא דוגמה טובה לכך. לביצוע פעולות לאחזור נתוניס תוכל לבחור באובייקטיס 6086 או ה6600 החס6, שלכולס שיטה המאפשרת לאחזר נתוניס לתוך מערך רשומות. השיטה 5066086 של אובייקט 6066000 מאפשרת להפעיל משפט 501 על מקור נתוניס. אס משפט 501 יחזיר רשומות, תוכל לגשת אליהן פשוט על ידי הצבת ערך שיותחזר על ידי השיטה 5066016 באובייקט ₪66070560 ססג. נסה את השיטה 560066 בדוגמה פשוטה. התחל פרויקט חדש מסוג 55 50800870 והוסף לו הפניה לספריית ססג. הוסף לטופס פקד א115%580 וקרא לו 5זסחזט5%!. לבסוף, הוסף את שורות הקוד הבאות לשגרת האירוע 1080 של הטופס : חס חח 00.00 5 חס חוחוס 5% סכ 5 5ז חחוס 0.006 צוסא] = חס 560 "10 |818=\פכ" הסקס.חס ("1943 < [חזסם ]69 ] 6זסחצו 5'וסהטוה וחסי * 0)"56|665 60 ח6 = 5 56% 5.50 %סא 6ווחצ\ סס 6 " :6וחה\!" 8 סה דסט .6 ("חזסם זהסץ")5.6!05ז 8 " :חזסם זפסץ" הה5.00100זסה 50 (" סו )5.6105 עסו 5 מסס | 6 6 פוחזס\] = 5ז 56% פזוחזס\! = חס 56% הפעל את התוכנית. תוצגנה לפניך רשומות כמו אלו המוצגות בתרשיס 28.16. |< |ם). ‏ 6|פחזהא = 46106 60016א-] .₪ 50906!= זו130) ,00301035 :148006 !| , רהוב /\ :סחזב 4] 6 ,23/18 :4806] הזה)||/\ , סוב /\ :חב 4] עס 7 ,6עבז/\ :סחחב 4 חב! , הספקרחו5 :טוחב ] זב = ,65חס1. :חב 4] 00 ,66ווחסזג) :זה 4] הבעזם ,ז00זפה6!/ב/ :טוחב 4] 63|[ ,4000615 :סב סוווח] ,1301 :6חזב 1 10 ,165085/\ :6חחה 4] בוב כ ,הוקפ :סחחב 4 תרשים 28.16: תוצאות הפעלת שאילתה פשוטה המוצגות כאן נוצרו על ידי שימוש בשיטה 600%6א₪ של אובייקט חסו660חח60.מסססה 6 סדנת לימוד 6.0 8\ השיטה 5060006 של אובייקט ח6600חח0ס6 מחצירה אובייקט מסוג ₪6607056% שמאוחסן במשתנה 5ז. אחר נעשה שימוש בלולאת 6!וח/\ למעבר על מערך הרשומות והוספת שס כל מחבר ושנת לידתו לתיבת הרשימה. תוכל להיעזר בשיטה 5066016 גם להפעלת משפטי 501 שלא יחזירו מערכי רשומות, כמו בדוגמאות הבאות : חח ,65חס! ' = זסחזווה 6זסחע 5זסתשווה וחסז 6ז6ו6" 66006אם. חס "1972 ,'חהחחם ,חסוופ' 56166 ([חזסם ז69ץ] ,[וסחסטוה]) 5הסר הוה סדאז דמ=פא1" סזטססאם. חס משפט 501 הראשון שהוצג כאן יגרע רשומה מטבלת פזסחטוה ואילו המשפט השני יוסיף רשומה למערך הרשומות (זכור שמשפטי הדוגמה נכתבו כך שיעבדו עם 06655, בשימוש במסדי נתוניס אחריס תחביר משפטי 501 עשוי להיות מעט שונה). התחברות למסד נתונים ללא שימוש ב-א5פ עד כה השתמשנו בפרק זה במחרוזת חיבור פשוטה שכוללת את שס מקור הנתוניס שהוגדר על בסיס מסד הנתוניס 818110, והוכן לפעולה בעזרת 66זט0ס5 זכ 0086 זסְחְהּחהו!. אס לא תרצה להיות תלוי בהגדרות 5'\א5כ, תוכל להגדיר חיבור שלא יהיה מבוסס על 258 (ח06600ח60 655!-25), על ידי כך שתכלול במחרוזת 6000050108 חהחס6 נתוניס נוספיס אשר דרושיס ל-00ג, כפי שנעשה בדוגמאות הבאות אשר מתייחסות למסד נתוניס של 106655 : "סח סוופופ\0:\/6= 5006 3.51;08%08. םסם 60050.26%.01ו]= זט סועסזק"= הסוח ה 60 חס "מססרח. סווטוט\6פע\:0= 80כ; (טסוח.*) זסעוזכ 60655 670508ו]= עס" = הו 5 .תס הערה: גם אם תגדיר חיבור שלא יתבסס על אפכ, עדיין תצטרך שהקבצים ומנהלי ההתקן הרלוונטיים יהיו מותקנים על מחשב המשתמש. מחרוזות החיבור שבדוגמאות שהצגנו כללו פניות למנהלי ההתקן, במקוס ל-5'א5פ. בשימוש במנהל ההתקן של 860655, פרמטר 80 מצביע על שס מסד נתוניס. תוכל להגדיר גם פ5זסוטסזק ₪8 015 אחרים, כדוגמת המחרוזת הבאה, אשר משמשת להתחברות ל- ז6/ז56 .501 : | ;8|6809!00=05וח1: ץשססזס = 0זסאו55הק;זסאוסס3ּ =1;055510. 08 01 501= זס0ועסזק" "567/071= 650706 בדוגמה האחרונה יכולת לראות שמחרוות חיבור יכולה לכלול בתוכה נתוניס רלוונטייס רביס ביניהס שס משתמש, סיסמה ושס ברירת מחדל של מסד הנתוניס. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אסטושה (ססג) 757 עבודה עם מערכי רשומות מערכי רשומות (866070566) מייצגים נתוניס אמיתיים במסד נתונים. מערכי רשומות מכילים שדות (כגון שס ומספר טלפון) וערכים לאותם שדות (למשל חווח5 חהסנ ו-555-1111). כל סדרת ערכי שדות הקשוריס אחד לשני מרכיבה רשומה (0זס866) וכל הרשומות יחד מרכיבות מערך רשומות. דרך פשוטה לתאר מערך רשומות באופן מוחשי היא על ידי שימוש בגיליון אלקטרוני או בפקד 60. השדות הס עמודות והשורות הן רשומות. רוב מערכי הרשומות נוצריס כתוצאה מהפעלת שאילתה על מסד נתונים. ניתן להשתמש במערכי רשומות בתוכניות לשס אחזור ועדכון נתונים. בעת שימוש ב-00, מערך רשומות מאוחסן באובייקט 866070656%. לאחר שאובייקט 0% מאוכלס בנתוניס ניתן לבצע עליהס את הפעולות שלהלן: << הוספת רשומות חדשות. % עריכת רשומות קיימות. + גריעת רשומות. > ניווט במערך הרשומות (שינוי הרשומה הנוכחית). יצירת מערך רשומות למדת כיצד ליצור מערך רשומות ולאכלס אותו בנתוניס באמצעות שיטה 560066 של אובייקט ח6000חח0ס6. אך לאובייקט ₪660705% יש שיטות ומאפייניס משלו שיכולים לשמש לאחזור נתונים. כפי שקורה בכל האובייקטים, כדי שתוכל להשתמש במאפייניס אלה תידרש תחילה ליצור מופע חדש של אובייקט 866070566 : 58 5ז חחוס 0 צוס\ = 5ז 56% לאחר מכן, תוכל להיעזר במאפייני האובייקט לצורך הגדרת חיבור, מקור רשומות וסוג מערך רשומות. להגדרת מקור נתוניס של אובייקט ₪6607056, הצב במאפיין ח6600חה0ח600ע60 של האובייקט את שסם אובייקט ח6600חח60 סא ח6 = ה5.60/600006600ז שורת קוד זו התבססה על ההנחה כי ח6 הוא שס חיבור הפתוח כעת אשר מצביע על מקור נתונים, כפי שתואר קודס לכן. דרך נוספת בה ניתן לבחור בחיבור מסויס היא הצבת מחרוזת חיבור במאפיין ח0ו660חח600ע6. "10 |51\=818" = ה06600ח5.60/600ז אס תשתמש במתרוצת, במקוס באובייקט ח66000חח0ס6, אובייקט ‏ ₪6607/05% יפתת חיבור משלו למסד הנתוניס. 8 סדנת לימוד 6.0 8\ השיטה ח6ק0 של אובייקט ₪6607056, תגרוס לאכלוס מערך הרשומות בנתוניס. כדי שתוכל להשתמש בשיטה חסק0, תידרש תחילה להגדיר את מאפיין 6סזטס5 של האובייקט, שמקביל במידה מסוימת למאפיין 66010506 של פקד פאה ססג. הקוד המוצג בתוכנית 28.1 ייצור אובייקט ₪660056 חדש וידפיס את הנתוניס. תוכנית 28.1: ק8/. ד5ם דסקג - יצירת מערך רשומות תוך שימוש ב-ס0סג. 8חו5 5( .5501 חחוס חחח 00.00 5 חס חוחוס סכ 5 5ז הזוס "*" 8 00 8" 166 [זסט ה ] 6 זסח/\ 5זסתזט ה יוסח * ד 51" = .5501= .5501 זפחססי אסזד0=אא 60 ג אשקסי 00.00 צוסשא] = חס 56% "10 |818=\פכ" הסקס.חס א ג אסקסי 0 צוס\ = 5 56% ח6 = 6600 חח 5.6600 1 = 5.500706ז] 5.0 5 א פ5מסה דוה =חחד דאזחקי זז 5.0 5.50 %סא 6ווחצ\ סס ("זסרס ")5.1605 .8 " = זסרסטבּ" לחוזק. סטססס .5 קסס | 6 דצ 055 61 6 תס = 5 56% 6 8וחזס\! = חס 56% קטע הקוד בתוכנית 28.1 יפעיל שאילתת ‏ ]501 שתבחר את כל המחברים ששםס משפחתם מתחיל באות 0. הערה: תחביר הביטוי '*0' 6ו! של משפט ‏ 501 ייחודי ל-466655. בסביבת זפצז56 .501, המשפט הזה היה נכתב כך: "*כ)" 6או! וסהסטה 6זסחעו 5זסחזטה וחסז * 561606 פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אסטוג (ססג) 759 הצגת ערכי שדות כדי לגשת לנתוניס המאוחסנים באובייקט ₪660705%, תוכל להסתייע באוסף ₪6!05. טבלה 28.2 תפרט אפשרויות שבהן תוכל להשתמש לגישה לשדה מסוים באובייקט. טבלה 28.2: עבודה עם ערכי שדות מבנה תחבירי דוגמה "הח 1610" )6607056%.16105 "806 35% 1" )16|05= . 56016 (068ח₪6607056%.8/6|05)1 (616105)2! 5060 [6ח3ח 16|0] !66070560 [6ח3\] 85% ]] !6! 5060 86 85% 1! 16 5060 בדוגמת הקוד שתובא כעת, נשתמש בתחביר ("6ופח ₪66070561.6|05)"86|6, אך במקריס מסוימיס (למשל כאשר שס השדה הרצוי אינו ידוע לך), עדיף להשתמש באינדקס השדה. אינדקסי שדות מתחיליס באפס ומסתיימים בערך הקטן ב-1 ממספר השדות שבמערך הרשומות. את מספר השדות במערך הרשומות תוכל לברר באמצעות המאפיין +חטס6 של האוסף ₪1605. קטע הקוד הבא ידפיס שם כל שדה ויעבור על מערך הרשומות תוך הדפסת ערך כל שדה: 5ם א כ ₪ מחחד דאזחקי 1 - +ט5.1605.60ז סד 0 = 1 וס ס6וחהּ\. (5.16!05)1ז +חוזק. סטססס 1 אסא %חוזק. פטססס 0 6 צז 05 ₪ 1 וג 0 פ5דצם דא60 דאזחקי זו 5.06 5.50 +ס\ 6ווח/\ סס 1 - 5.1605.000₪% סד 0 = 1 זס= ,(6!05)1ו=.5ז +חוזק. טססכ 1 אסא +%ס\סעסו.5 קסס | קטע הקוד האגה משתמש בשני מאפיינים של אובייקט ₪6|0 : 6חג8א ו-6ט|8/. שיס לב שבעת התייחסות למאפיין 6ט|3\ לא תידרש לציין את שמו מפני שזהו מאפיין ברירת המחדל של האובייקט. 0 סדנת לימוד 6.0 8\ ניווט במערכי רשומות לאחר שתייבא את הנתוניס לאובייקט 660705%א, תוכל לבצע גישה לשדות הרשומה הנוכחית ולעדכן את ערכיהס. תאר לעצמך את מערך הרשומות כקוב סדרתי ארוך. בכל רגע נתון, הרשומה הנוכחית מכילה מצביע למקוס כלשהו בקוב>. אס תרצה לעבור לרשומות אחרות תוכל להיעזר בשיטות הבאות: > זפזוסעסו] - עוברת לרשומה הראשונה, הרשומה המצויה מייד לאחר סמן תחילת הקוב\ (80₪ - ₪6 0 פַחוחחו0סם). + 85% |6עס! - עוברת לרשומה האחרונה, וו המצויה ממש לפני סמן סוף הקוב (₪00 0 - ₪6 ז0). + )עסו - עוברת לרשומה שאחרי הרשומה הנוכחית כעת (כלומר נעה לכיוון סמן 505). + 1067601005 - עוברת לרשומה שלפני הרשומה הנוכחית כעת (כלומר נעה לכיוון סמן 80). + 6ש₪0 - מעבירה את הסמן מספר נתון של רשומות, קדימה או אחורה. 80 ו-505 הס מאפיינים המצביעים על התחלה וסיוס הקובץ, בהתאמה. ניווט והמאפיין 6קץדזוס5זט6 בדוגמאות שהבאנו עד כה הוצגו רק שתי שיטות שמשמשות לניווט במסגרת מערך רשומות : %זוח6טס! ו-6\66טסוז. בתוכנית 28.1 נעזרת בלולאת 6ווח/\ ₪0 כדי לעבור על הרשומות שבמערך הרשומות הפתוח, תוך כדי תנועה קדימה. אס היית מנסה להשתמש בשיטות פטסוש6זק6עס!! ו-850 |עסוי! בקטע הקוד שבתוכנית 1 היתה נגרמת שגיאה, מפני שלא ניתן להשתמש בשיטות אלו בעבודה עס המאפיין 86 זספזטס ששימש בקטע קוד זה. סמן במערך רשומות דומה לסמן המוצג על מסך המחשב בכך ששניהס מצביעים על המיקוס הנוכחי. משוס שקטע הקוד לא כלל הגדרת ערך למאפיין 6קץדוספ5זט של אובייקט ₪66070560, נעשה שימוש בערך ברירת מחדל, ץוחס0זפּווזס חססְסְא. בהמשך הפרק נדון בהשלכות של בחירה בערך מסוים, אך לעת עתה חשוב שתזכור שסמן ץוח 6זפחס=י אינו תומך בשיטות הניווט פ5טסושסזקס6טס!! ו-850 |סטסוו. שימוש בשיטות ניווט לצורך הדגמת ניווט במערך רשומות ניצור כעת פרויקט שישתמש בשיטות ניווט (1600005 חסוסְהּפוטהא\). התחל את הפרויקט ביצירת פרויקט חדש מסוג 565 55800870 והוסף תיבת רשימה בשם 5608%8!, שלושה לחצני פקודה בשם : 5טסוע6זק 0 וח6, %א6\סוח6 ו- קוהנ0וח6 ותיבת טקסט שעבורה תגדיר את השם קוחטטאז. תוכנית הדוגמה תבצע שאילתה על מסד הנתונים 818110 ותאפשר למשתמש להפעיל שיטות ניווט לצורך עיוו במערך הרשומות, באותו אופן בו עשית גאת כאשר השתמשת בפקד פַזא0. דוגמת הקוד של פרויקט ה מוצגת בתוכנית 28.2. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי א6ט₪₪ג (ססג) 761 תוכנית 28.2: ק8/./ב0%כג - שימוש בשיטות לניווט במסגרת מערך רשומות. %סו|קאם הססטקס 5 5ז חחוס ()1]080 וחזס-] 500 סספּעווק 5 0 00055 שהד | חק ' 0 צוס\ = 5 56% 6 = 6כץ 5.050 "5זח5ו!טטוק וחסז) * 561666" = 5.500766ז "19]10= זפ" ,ח5.006ז תס טס ץהוקפוס טט5 סחם ()66070ת6זזווץהוקפוכ 5 זז 5 | וס 8חוזז5 ₪5 5 הזוס 5.06% הסחד 5.80 + 5% |6עס].5ז הפחד - 5.50 זז 58 1 - 5.1605.600%ז סד 0 = | זס ספ (5.16!05)1ז 8 " :" .8 שוחה (])5.16!05] = 5 5 הה6ס001\. 58| | אסא 50 0ח₪ ()א6ו|6 קההט03רח6 500 סספּעווק (מוחטט)ס)|3/\ סעסו!.5ז 600 תס טס וקפוס 50 0חם ()0|166 6001466 50 ססהטוזק ]5.0 600 תס טס ץהוקפוס טפ 0חם ()א116 5סוט6זק 6 500 סספּעווק 5.5 0 סט ץהוקפוס 50 0ח₪ אופן השימוש בשיטות ניווט בפרויקט זה ברור מאוד. החלק היחיד של התוכנית שדורש הסבר הוא הפונקציה 0ז8660+ח6זזט6ץ8!ספום. שים לב שהפונקציה כוללת בדיקה לזיהוי מצבי 805 ו-505 לפני שהיא מציגה את השמות והערכים של שדות הרשומה הנוכחית. בדיקה וו דרושה מפני שניסיון לגשת לאובייקט ₪6/0 כאשר לא קיימת רשומה נוכחית יגרוס לשגיאה. בתרשים 28.17 תוכל לראות תוכנית זו בפעולה. 2 סדנת לימוד 6.0 8\ [< ]ם] = בי 4 ה חב 5 ב 1 עה חס 0 566 ,סע 00606 .א 11711 :301655 [6חזם ‏ עו א| 5036 2 2 :סו ד אפ 8 1 :1503008 קוחטנ. ₪ 2 6+ תרשים 28.17: תוכנית הדוגמה תאפשר למשתמש לעיין במערך רשומות עדכון נתונים כעת, לאחר שאתה כבר יודע כיצד להכניס נתוניס לאובייקט ז₪6607056 ולהציג אותם, תוכל לבצע את הצעד הבא ולעדכן (או לשנות) נתוניס במסד הנתוניס. אם הגדרת נכון את מערך הרשומות, תוכל לשנות נתוניס במסד הנתוניס בקלות. תידרש בסך הכל לנווט לרשומה המתאימה, להציב ערכים חדשים בשדות שאותס תרצה לשנות, ולקרוא לשיטה 008%6, באופן הבא : "8 ,חהספקוו5"=("זסה6ו" )5.6105 6 הערה: כאשר השתמשת ב-0כ, נדרשת לקרוא לשיטה :501 לפני שינוי ערך שדה. ב-400 שינוי ערך שדה יעביר אוטומטית למצב זו0=, ב-400 לא מוגדרת שיטת +ו0ם. כדי לבדוק אם הרשומה הנוכחית נערכת כעת, בדוק את ערך המאפיין 50/6%006. הגדרת מאפיין 6קץדא6ס.! כברירת מחדל, מערכי רשומות ב-400 הס לקריאה בלבד. ניסיון לשינוי ערך שדה במערך רשומות המוגדר לקריאה בלבד, יגרוס לשגיאה. אס תרצה להוסיף, לגרוע, או לשנות רשומות, תידרש להציב במאפיין 1066106 של אובייקט ₪6607056% ערך השונה מערך ברירת המחדל. לדוגמה, הגדרת המאפיינים 6קץדזס5זט6 ו-6קץ1א106 באופן המודגס בקטע הקוד הבא תיצור מערך רשומות של 8460655 שהוא בר-עדכון: = 6 5.0 0006 301 = 6כץ 5.0667 אס תהית מהי חשיבות המאפיין 06ץ10661 התשובה היא שכאשר תערוך רשומות במסד נתוניס שיפעל בסביבה מרובת משתמשים, תידרש להתייחס לנושא נעילת רשומות (חַחו1060 66070ה). נעילת רשומות היא פעולה המונעת ממשתמשים שוניס לבצע גישה לרשומה מסוימת, באותו זמן. המאפיין 06ץ10601 משמש לשליטה על נעילת רשומות. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי 606% (ססג) 763 המאפיין יכול לקבל את הערכיס המפורטים להלן: + ץ|ח86800א80106 - מגדיר את מערך הרשומות כמערך לקריאה בלבד. + 80106%26551₪01506 - מיישס נעילת רשומות פסימית, כלומר נעילת רשומה בכל מצב שבו תבצע עליה פעולת עדכון כלשהי. + 000₪0506א80106% - מיישם נעילת רשומות אופטימית, כלומר הרשומות ננעלות רק בעת קריאה לשיטה 08%6קש. 30106%98%00000₪01506 - מעדכן מספר רשומות בבת-אחת, תוך שימוש בשיטה הק מדוע כונו הפרמטרים על שם גישות המיושמות באמצעותס (אופטימית ופסימית)! מפני שניסיון לבצע עדכון רשומה נעולה יגרוס לשגיאה בתוכנית. תוכל להיות אופטימי ולהניח שרשומה תהיה ומינה לשימוש כאשר תרצה לעדכן אותה או להיות פסימי ולנעול את הרשומה כל עוד תודקק לה. הצגת שינויים שבוצעו על ידי משתמשים אחרים אמינות נתוניס היא שיקול נוסף שיש להתייחס אליו בעת עבודה עס מסדי נתוניס בסביבות מרובות משתמשים. באחד הסעיפים הקודמיס ציינו שמאפיין 6קץדוספזט6 יכול להגביל את הניווט במערך הרשומות. אך הייעוד העיקרי של סוגי הסמניס המפורטיס בטבלה 28.3 הוא שליטה על סוג החיבור שייושס בין מערך הרשומות לבין הנתוניס שעליהס יתבסס. טבלה 28.3: המאפיין 6ץדזספזט6 ץוח00זה\זס-חה30006 | הקבוע מאפשר פעולה מהירה, אך לנוע קדימה בלבד 30 | יאפשר לתוכנית לראות חלק מהשינויים שבוצעו על ידי משתמשים אחרים 6וחהחץק 3006 | יאפשר לתוכנית לראות את כל השינויים שבוצעו על ידי משתמשים אחרים 6 | יספק תמונה סטטית של מסד הנתונים, שלא תאפשר לראות שינויים שבוצעו על ידי משתמשים אחרים בשימוש ב-00 תגלה שלא כל מסדי נתוניס תומכיס בסוגיס מסוימיםס של סמניס. במסדי נתוניס של 260655, סמנים מסוג ץוח60זּס-ה30006 מיועדים לבצע מעבר מהיר של קריאה בלבד, ואילו סמני /%6/56ח80006 מתאימים יותר לעדכון ופעולות מורכבות יותר. 4 סדנת לימוד 6.0 8\ הוספת נתונים חדשים הוספת רשומות חדשות לאובייקט 86600566 דומה לשינוי רשומות קיימות, אך דורשת פעולה אחת נוספת : 1 2. 3 קרא לשיטה 8664 00. הצב ערכים בשדות. קרא לשיטה 08%6קש. הקוד שבתוכנית 28.3 יוסיף רשומה חדשה לטבלה פזסחוטה שבמסד הנתונים 10 |₪18. תוכנית 28.3: ק8/. 51 0 - הוספת רשומה למערך רשומות ב-ססג. הסוח ח 8.00 )ג צוסא 5 חס וחוס 5% סכ 5 5ז וחוס "10 |818=\פכ" הסקס.חס א ג אסקסי 0 צוס\ = 5 56% 3 = 6קץ 5.0050 0006 301 = 6כץ דא6ס ].פז "5זסו/\" = 5.500706ז ח6 = ה6600 ה 5.6600 הז א םשא ג ססג' סז "6ו50 ,חחוא" = ("זסתס ")5.1605 5 = ("חזסם 637 /")5.=16!05ז] 6 זססוהטהססוהּ חה 15 ₪6!0 פז טג שד := דסא'י . ץ||ה6הרחסס3 6768060 06 |ווצו סו" 5 םד צסא דפסס' 86 6 תס = 5 56% חס = חס 56% פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אסטוג (ססג) 765 אובייקט 0חהּוווחס6 ברוב המקריס של עבודה עס סדרות נתוניס, תעבוד עס מאפייניס ושיטות של אובייקט %. אך עוד תגלה שאובייקט חא 60 של ספה יועיל מאוד במצביס בהס תידרש לאחזר נתוניס. אובייקט 0ח8 60 יאפשר לאחסן שאילתות 501 ופרוצדורות מאוחסנות של 501 באובייקטים הניתניס לשימוש חוזר, שיהיו מועיליס במיוחד במצביס בהס תידרש לחזור על פעולות מספר פעמים. תוכל אפילו לאחסן פרמטריס של שאילתה או שיגרה באוסף פוזסזְסחִַ8ּזק של האובייקט, כך שלא תידרש להקדיש מחשבה לנושא בניית מחרוזות ‏ 501 עס קוד. לאחר שתגדיר אובייקט בח וח 0ס6, תוכל לשנות את הפרמטריס שלו ולקרוא לו שוב ושוב. לדוגמה, וכור לרגע את משפט 501 שהוצג בתוכנית 28.1, שבו נעזרנו לצורך בחירת סופרים ששס משפחתסם מתתיל ב-0. 66055 תאפשר לך להגדיר שאילתה גנרית בשס קטאסס 667 1, תוך שימוש בתחביר המפורט להלן: ד 600 | ₪5ם זםו]החחק 55 ₪0[ * 5וסחסווה סמ ;+67 | 1166 זסחסטה =חםה/\ אס תריצץ שאילתה זו ב-60655, יוצג סמן שיורה לך להזין ערך עבור הפרמטר ז6%6 | ולאחר מכן תוצגנה הרשומות שתתאמנה לאות שתגדיר. אס תרצה להפעיל את השאילתה על ידי שימוש בקוד 8856 |1508/, תוכל להשתמש באובייקט 6חאהוחוחסס, כמתואר להלן: חר 8.60 00 צוס\ 5 סוחס וחוס זזה ק. 0008 5 קוחם דהזהק וחוס ח6 = ה0 60 0600 60 56% "טא 0 667 1" = 6 חר .חס 306 = 6 רס רחס (1 3037310006 ,20687 ,"סה |" )הזה 6.7680 = קוחם דוחוהק 56% וח זכ הסככה. 605 הזה ק. סרח "0" = ("667 |") רחס 56% 5 = 6 כדי שתוכל להשתמש באובייקט 0ה08ח60 זה, תידרש לבחור את סוג הפקודה שתאוחסן בו (סוגי הפקודות פורטו בתחילת הפרק) ולהציב בו פקודה מסוימת. אס לאובייקט יידרשו פרמטריס כלשהם, תוכל לצרף אותם לאוסף 8וססוחהּזהק של האובייקט. לאחר שתגדיר את אובייקט 0ח8וחח 0ס6, תוכל פשוט לקרוא לשיטה 6זטס6א= כדי לבצע את הפקודה. 6 סדנת לימוד 6.0 8\ מערכי רשומות מנותקים אס עבדת בעבר עס טכנולוגיית 0ג, תגלה שטכנולוגיית 00 מציעה יכולות נוספות המאפשרות לבצע פעולות נוספות, שבעבר לא יכולת לבצע, על מערכי רשומות. אחת היכולות היא ליצור מערכי רשומות מנותקים (₪660705615 66060חחס0פוס). מערכי רשומות מנותקיס הס מערכי רשומות המאוחסניס בזיכרון, שאינס תלוייס בחיבור מסויס למסד נתונים. כאשר מערך רשומות אינו מחובר למסד נתוניס, הוא מתפקד כאובייקט עצמאי, תוך שימוש בכל השיטות והמאפייניס הרגילים. אך בוודאי תופתע לגלות שלאחר שתבצע פעולות על מערך רשומות מנותק, תוכל לחבר אותו שוב למסד הנתונים, ולאחסן במסד הנתוניס את השינוייס שביצעת במערך הרשומות כאשר היה מנותק. בהמשך הסעיף יתברר לך שמערכי רשומות מנותקיס מועילים במיוחד בעת עבודה בסביבת ס6/\, מפני שבעת עבודה עמס אינך נדרש להיות מחובר כל הזמן למסד הנתוניס. בסעיפיס הבאיס תלמד מהן הפעולות שתידרש לבצע לעבודה עס מערכי רשומות מנותקיסם. יצירת מערך רשומות מנותק הגדרת מאפיין 0609000 |זספזט6 של אובייקט 66070560 היא המפתח ליצירת מערך רשומות מנותק. המאפיין יכול לקבל את הערכיס : 8010560|60 ו-ז80)05656%9. אס תרצה ליצור מערך רשומות מנותק (המכונה גם זס5זט6 5106-%ח6ו!6) יהיה עליך לבצע את הפעולות הבאות: 1 הגדר את המאפיין ח0ו0690 |זס5זט6 כ-%ח6ו80\05661. 2 אחסן נתוניס באובייקט ₪6607056. 3 הצב ערך 8חוח0% במאפיין ח6600חח600עו6ה של האובייקט. קטע הקוד שהוצג בתוכנית 28.2 הציג את נתוני המוציאיס לאור שבמסד הנתוניס 0 תוך שימוש בתיבת רשימה. תוכל לשנות את התוכנית כדי לגרוס לה להשתמש במערך רשומות מנותק, על ידי הכנסת השינוייס שלהלן בשגרת האירוע 1080 וחזסת : ()1]080 וחזס-] 500 סספּעווק 0 עס = 5 56% 30560 = ה00 068 ]ספ 5.0 6 = 6כץ 5.050 "5 ח5ו!ט טוק וחסז) * 561666" = 5.500766ז "0 |18ם= פס" ח5.006ז 8חוה%ס] = הסו660 ה 5.0060 56% 600 תס טס ץהוקפוס סט 0ח5 כדי שתוכל להשתמש במערכי רשומות מנותקיס נדרשת להוסיף בסך הכל שתי שורות קוד לתוכנית שהוצגה בתוכנית 28.2. באחת הגדרת את המאפיין חסוז068 |זספזט6 כדי לאחסן את הרשומות במחשב הלקוח, ולאחר מכן ביטלת את חיבור מערך הרשומות פרק 28: גישה לאובייקטי נתונים באמצעות פקדי אסטוג (ססג) 767 למסד הנתוניס על ידי כך שהרסת את אובייקט ח6600086600ע6ה שלו. אני מניח שבין הקוראים יהיו גם ספקניס שידרשו ראיות נוספות לכך שמערך הרשומות אכן נותק ממסד הנתונים. אס תרצה להוכיח ואת, הפעל את הפרויקט לאחר שתכניס בו את העדכונים הדרושים ליצירת מערך רשומות מנותק. כאשר הרשומה הראשונה תוצג על המסך, שנה באופן זמני את שס קוב מסד הנתוניס 818110.08 לשס אחר. לאחר שתבצע את השינוי חזור ל-8856 |1508/ ותגלה שפעולת התוכנית לא הושפעה מהשינוי. אך עס זאת לא תוכל להפעיל עותק נוסף של התוכנית, כל עוד קוב מסד הנתוניס 8 לא לימצא. חיבור מחדש של מערך רשומות קודס לכן למדת כיצד לנעול רשומות כדי למנוע 'ימלחמות משתמשיסםיי על שימוש ברשומה מסוימת. המושג נעילת רשומות מקבל משמעות חדשה בעת שימוש במערכי רשומות מנותקים. כאשר אתה לא מחובר למסד הנתוניס, אתה למעשה ישואליי רשומות באותו אופן בו אתה שואל ספרים מספריה. אס תבצע שינוייסם ברשומות ששאלת, השינוייס לא ישתקפו במערך הרשומות עד שייתחזיריי את הרשומות למסד הנתונים, או אס להשתמש בטרמינולוגיה של מסדי נתוניסם עד שתבצע עדכון אצווה (008%0(\ ח8806). כך שבעת עבודה עס מערכי רשומות מנותקיס תידרש להשתמש באופן הנעילה 00001506 ה8806. פעולות עדכון אצווה מאפשרות לבצע כמה שינוייס במערך הרשומות ולהתיל אותס על מסד הנתוניס שעליו מבוסס מערך הרשומות, בבת-אחת, על ידי שימוש בשיטה ח08806ק. תוכל גס לבצע את השינוי על מערך רשומות מנותק, להגדיר חיבור חדש ביו מערך הרשומות למסד הנתוניס, ולעדכן את מסד הנתונים. כדי שתוכל להשתמש בשיטה 0008%608060, תידרש לשנות את הגדרת המאפיין 6 | של אובייקט ₪66070566 לערך 001506 ה801.06608%6 : 3036 = 6כץ 5.0667 לאחר שתאחזר נתוניס למערך הרשומות המנותק, כפי שנעשה בקטע הקוד שהוצג לעיל, תוכל לשנות רשומה או רשומות במערך על ידי הצבת ערכיס חדשיס בשדות : "סט|3/ 16!0= 060ו0ם" = (5.16|05)0 ]אס .5 "סט|ה/\ 60| 0060 זסתסזסחה" = (5.₪16!05)0ז אחר, הגדר שוב את החיבור בין מערך הרשומות ומסד הנתוניס, על ידי הצבת שס אובייקט ח006600ח60 חדש במאפיין ח06600ח660ע₪60 של אובייקט ₪6607056% : הסח 00.00 צוס\ = חס 56% "₪18110= 5" = 8חו 605 חח 60 .חס ה חס חס = 0₪ו600החה5.60/60ז 56% 8 סדנת לימוד 6.0 8\ לבסוף יהיה עליך להפעיל את קטע הקוד שיבצע את העדכון הממשי של מסד הנתוניס : ץ ]30135 = 5הסטססו|ה 5.5 5.0008 בוודאי שמת לב שבקטע הקוד שהוצג השתמשתי במאפיין חדש, פחסטקסו!\ח5זפו. מאפיין וה יגדיר האס פעולת העדכון תתבצע על ידי החזרת מערך הרשומות כולו, או רק של הרשומות ששונו, וזאת על בסיס שיקולי ניצול יעיל של משאבים. השורה השנייה מבצעת את העדכון, על ידי שימוש בשיטה ה08%68806. שימושים במערכי רשומות מנותקים כעת, כאשר אתה כבר יודע מהסם מערכי רשומות מנותקים, סביר להניח שאתה תוהה באילו נסיבות תרצה להשתמש במערכי רשומות כאלה. לא סביר להניח שבמסגרת עבודה בסביבת שרת/לקוח מקובלת, תידרש אי-פעס להשתמש בהס. אך מערכי רשומות מנותקיס מאפשריס להוסיף עוצמה רבה ליישומיס המיועדיס לפעול בסביבת טס)). תאר לעצמך מצב בו תוכל להריצ יישוס 8856 |1508/ שיפעל בדפדפן המתקשר עס שרת מסד נתוניס שלך כפי שתוכל לעשות ואת באמצעות רשת תקשורת מקומית. כדי שתוכל לפתח יישומיס רבי עוצמה כאלה, תידרש לפצל אותס לשני רכיבים : > לקוח ט6ע\ רכיב מסוג 06% 86006% או מסמך 6%ש₪60 שיפעל בדפדפו. + שרת 60ש רכיב מסוג ₪11 6%ע60 שיפעל על גבי שרת 60\. בניית יישומיס בעלי מבנה כזה תדרוש הבנת מוצרים מורכבים יחסית של א50ססוו, שתיאוריהס חורגיס מתחום עיסוק פרק זה. אך אם מובנים לך כמה מושגי יסוד רלוונטיים (כגון 400 ו-65ח6חססוחס6 6%עו160), סביר להניח שתצליח במשימתך. 0% משווקת מוצר ששמו (505) 5617/1665 2818 6ז0ח6ח, המיועד לתפקד כחוליית קישור בין זפזס|קאם 56706%ח1 ל-ז6עז56 הסחהוחזס)ח1 6%חז6פח1. המפתת לשימוש ב-₪05 הוא אובייקט 08%850866 שלו. תוכל ליצור מופע של אובייקט 50866 0868 ₪05 בלקות טס)ו, על ידי שימוש בשורת הקוד הבאה: ("28%850806 .25" )67680600[66 = 05א[טס 56% לאחר מכן תוכל להשתמש באובייקט 50866 0808 ליצירת אובייקטיס מרוחקיס שיפעלו במסגרת שרת 60/\: ( "6.60 סח עס רת 50. ז507/6//:כקח" ,"55הו6ץי. | וסץוא" 676860066 = 5סא[פס 56 שיס לב להבדלים בין שתי שורות הקריאה לשיטה 0768060016%. השורה הראשונה יוצרת אובייקט מקומי. השיטה השנייה יוצרת אובייקט מרוחק בשס 6%ז[פ0. תהליך יצירת האובייקטים דומה (אך אינו והה) לשימוש בטכנולוגיית 0%ס0פ לשס יצירת אובייקט על מחשב מרוחק ופנייה לאובייקט זה לשס שימוש בגורמים הקשורים בו, תוך עבודה ממחשב מקומי. פרק 28: גישה לאובייקטי נתונים באמצעות פקדי א6ווג (ססג) 769 אובייקט הדוגמה 6%ז(פס הוא מופע של אובייקט מסוג ₪11 606% שפועל על שרת 60)\. לאחר שתיצור מופע זה, תוכל לבצע קריאות לשיטות שלו, ולבצע פעולות להעברת נתוניס אליו וממנו. ספריית האובייקטיס 008, שהווזכרה בתחילת הפרק, היא אופן יישוס מינימליסטי של מערך רשומות 400 (האות ₪ שבשס הספריה היא קיצור של 00%ח6ז - מרוחק), המיועד לשימוש במסגרת פעולות כאלו. תוכל לכלול ברכיב ₪11 606% שתיצור פונקציות שתשמשנה להעברת מערכי רשומות במבנה סג ללקוח ט6/\, שיוכל להחזיר לשרת את הרשומות ששונו על ידי פעולת העיבוד. מכאן.... פרק זה היווה מבוא לטכנולוגיית (400) 091666 288 אסעסה, המיועדת להחליף את הטכנולוגיות המיושנות יותר בתחוס גישה לנתונים כדוגמת 0גכ ו-ססא. ססג מאפשרת לא רק לבצע פעולות סטנדרטיות של טיפול במסדי נתוניס (כגון הוספה וגריעת רשומות) אלא גס להוסיף לתוכנית מיגוון יכולות רחב בתחוס טיפול במסדי נתוניס. בנוסף לממשק אובייקטיס רב עוצמה, טכנולוגיית 800 מציעה גם מספר פקדיס התומכים בה כגון 28086706 ו-01ח60 ₪818 ססה. מידע נוסף על נושאים שנדונו בפרק תוכל למצוא בפרקיס הבאיס: * מידע נוסף על יישוס החומר שבפרק וה במסגרת ה-0פ/\ תוכל למצוא בנספח 4 דפי שרת פעילים, ובפרק 32 83516 ו[בּש5ו/ ושימושים נוספים באינטרנט. + מידע על הפקת דוחות על בסיס הנתונים תוכל למצוא בפרק 29 יצירת דוחות. * | מידע נוסף על חיבור בין פקדים ומסדי נתונים תוכל למצוא בפרק 25 פקד הנתונים ופקדי איגוד נתונים. 0 סדנת לימוד 6.0 8\ 29 הפקת דוחות פרק 29: הפקת דוחות | 771 אומנס משווקי מערכות מחשוב משרדיות מבטיחיס שהמערכות שלהן תאפשרנה ניהול משרדי להתנהל ללא נייר, אך רביס עדיין מעדיפים להשתמש בדוחות מודפסים. לחלק ממפתחי 8856 |808ו\ הטיפול בדוחות הוא הקטע המתסכל ביותר בפיתוח יישומיס. מפתחיס המקדישים זמן רב בטיפול בדוחות וכותבים פונקציות משלהס תוך שימוש בשיטות %חחק ושיטות גרפיות אחרות, נוטיס להקדיש פחות זמן לפיתוח חלקיס אחריס של היישוםס. בקצה השני של הספקטרום נמצא השימוש בכלים להפקת דוחות, השימוש בהס הוא מהיר, אך הוא מעורר בעיות אחרות כגון עלויות גבוהות וצורך בהפצת קבצי 11ם יחד עס היישומים. ל- 6.0 88516 |1508\ נוסף כלי חדש שיאפשר לשלב דוחות ביישומים - ₪001 פַּזהס. כלי זה מקל על הצגת מסכי תצוגה לפני הדפסה עס לחצני הדפסה וייצוא נתוניס, ממקור נתוניס המיישס את טכנולוגיית 100. כל מה שנדרש הוא לספק את הנתוניס ולהגדיר את מבנה הדוח. בנוסף לכלי זה, 6.0 8856 |1508/\ תומכת גס בכלי 60065 |58עזס, שנכלל בחבילת 8856 |08פו% מזה כמה גרסאות. כלי זה שפותחת על ידי חברת 506 5688%6, מציע דרך קלה לעיצוב גרפי ולהפצת דוחות. בפרק זה נסקור את שני הכליס ונלמד כיצד להשתמש בהס ביישומים. יצירת דוח לדוגמה הכלי ₪00 מה הוא 65/9087 6%ע60ה, כלומר אובייקט 6%צ260 מיוחד הניתן לשילוב בסביבת 8856 |1808/. בפרק 28 הוצג 155 (ז6/ז56 חהסטפוחזס+ח1 6%חז6סח1) שגס הוא 6510061 6ע₪60. בסעיף זה תיצור דוח לדוגמה שיתבסס על שאילתה שתפנה למסד הנתוניס 818110. כדי ליצור את הדוח יש לבצע את הפעולות שלהלן: 1 הגדר אובייקט ₪660705% 400 שישמש את הדות. 2 הוסף לפרויקט אובייקט אסססחמובס. 3 עצב את הדות על ידי מיקוס שדות על טופס עיצוב אובייקט אסססחְ8ּטְהס. 4 כתוב את הקוד שישמש להצגת הדוח. הגדרת מקור הנתונים התחל את פרויקט הדוגמה על ידי יצירת פרויקט חדש מסוג %5= 0ז08ח5/8. הפעולה הבאה שתבצע אינה קשורה לדוח עצמו אלא לנתונים שיוצגו בו. לפני שתעצב דוח יש לדעת מהו המידע שעליו תדוות. כך שכעת תוכל להסתמך על הידע שרכשת בפרק 28 בנושא 0כ, כדי ליצור שאילתה פשוטה שתהיה מאפיין 66זו08)950 של הדות. ראה, "הגדרת מקור נתונים", פרק 28 2 סדנת לימוד 6.0 8\ הגדר את השאילתה על ידי ביצוע הפעולות שלהלן, מידע על אופני הביצוע תוכל למצוא בפרק 28: 1 הוסף לפרויקט הפניה לספריה ץזפזטו | 2.0 0(66 28% 6%ע60\ 50%סזסוו₪. 2 אם טרס הגדרת את מקור הנתוניס 0086 10 |818, הגדר אותו כעת. 3 הצהר על משתני רמת הטופס חש ו-5ז שייצגו את אובייקטי 66000חחס6 (- ₪6607056% סכג. 4 שרטט לחצן פקודה על טופס היישוס, הגדר את מאפיין ₪86 כ-|ו60₪ ואת מאפיין ח000ק68 כ- ₪₪607056% ווו=. 5 הוסף לשגרות האירוע 1080 ו-0פסוח של הטופס קוד שיפתח ויסגור את הקישור למסד הנתונים. 6. הוסף לשגרת אירוע 06% של הלחצן את שורת הקוד הבאה שתאחסן במערך הרשומות את הרשומות שתוחזרנה כתוצאה מהפעלת שאילתת 501 הבאה: "1996 =< [60ח5!!טוק [68ץ] שזסחצו 65|זוד הס * 66166%" תוכנית 29.1 תציג את כל הקוד שהוסף עד כה לתוכנית. תוכנית 29.1: קפ/.סואשכ קה - אחזור נתוני דוגמה של הדוח. חס חח 00.00 5 חס וחוס פס סכ 5 5ז הזוס ()אסו! || 0רח6 50 6ספּעווק ("1996 =< [60ח8ו!פ וק [68ץ] 6וסחצ\ 1065 וחסז) * 561666" )60006אם. חס = 5 56% ".3060|וק0 6607056%" 0% 150 50 0חם ()1].080 וחזס- 500 ססהטוזק הסוח 8.60 00 צוס\ = חס 56 "סז |818=\זפכ" הסקס.חס 50 0חם (ז0606ח1 45 |66ח0)08בסוח(\ וחזס= פט5 סספּעווק 86 6 50 0חם השאילתה שהצגנו תיצור מערך רשומות המכיל מספר רשומות מטבלת 65שוד שבמסד הנתוניס 818110.08. הטבלה כוללת מספר רשומות רב וכדי להאיץ את התהליך, הגבלנו את הבחירה לרשומות ספרים שיצאו לאור לאחר שנת 1996. כאשר תלחצ על לחצן הפקודה, אובייקט ₪6607056 ששמו 5ז יאוכלס בנתוניסם שיתקבלו מטבלת 5. אחר תוכל להוסיף אובייקטי +0סק6ח פּהּכ, וללמוד כיצד להפיק דוח. פרק 29: הפקת דוחות | 773 הוספת +וס₪6 הּזּבּכ לפרויקט כעת, כאשר כבר יש מקור נתונים, יש להגדיר כיצד הס יוצגו ב דוח. תחילה יש להוסיף אובייקט זוסס8₪6ז08 לפרויקט. כדי לעשות ואת, בחר +זסק₪6 3% 406 מתפריט %%. לאחר שתעשה זאת, תבחין בכמה דבריס שיתרחשו בבת-אחת : + לחלון זפזס|קאם 0808 יתוסף אובייקט אסססחבּוהכ חדש בשם 1אְסססחִ8הכ. % + אזור ז'ססס308₪6כ חדש יתוסף לארגו הכליס שלך. % > *וצג חלון ז065!0068 +וסק6ח, כמו זה הנראה בתרשים 29.1. הערה: כעיקרון, כל אובייקט זוסספְחפּהכ מייצג דוח אחד. בהתאם לרמת המורכבות של הדוחות, ייתכן שתוכל להשתמש בקוד כדי לשייך מספר דוחות לאובייקט זסססחפּהּס יחיד. ו ו ה3|י1:3|'2ין 0 0 163001 +זסקט 4 (002ו560) 1630061 סב 4 (001ו5660) 6% 4 תרשים 29.1: הכלי זוסק6ח ₪818 מאפשר להגדיר את מבנה הדוח באופן חזותי שיס לב שהדוח מחולק למספר מקטעים, בדומה לדוחות של 860655. מקטעים אלה משמשיס להצגת חלקי הדוח המפורטיס להלן: + ]16800 +01ק6א (כותרת דוח). מידע המוצג פעס יחידה, בראש הדוח. + ]16800 5806 (כותרת עליונה של עמוד). נתוניסם המוצגיס בראש כל עמוד. + 56000 !6%81 (מקטע פירוט). קטע הדוח שחוזר על עצמו עבור כל רשומה. + ]00%0= 5306 (כותרת תחתונה של עמוד). מידע המוצג בתחתית כל עמוד. + 00%01= +01ק₪6 (כותרת תחתונה של דוח). מידע המוצג בסוף הדוח בלבד. 4 סדנת לימוד 6.0 8\ הערה: תוכל גם להוסיף לכל דוח מקטעי ז₪36806 קטסזס |ו- זסזסס= קטסזס, שיאפשרו לבצע להציג או לחשב שדות מסוימים במשך כל הדוח. שיס לב שלכל אחד מהמקטעים הוגדר שסם מקטע (לדוגמה 1ח56000), המאפשר לגשת אליו מקוד התוכנית. אם תרצה להציג מאפייני מקטע מסוים, לחצ על שורת הכותרת האפורה של אותו מקטע. אס תרצה להציג את מאפייני אובייקט ז6ִ6נְסְסַפּזְה, לח על הריבוע המוצג בפינה השמאלית-עליונה של הטופס. הגדרת דוח נתונים ₪ ₪ בעבודה במצב עיצוב (ח0ו65כ), תוכל להיעזר בחלון +'סק₪6 ההכ חס זכ כדי לסדר פקדיס על הדוח, באותו אופן בו הוספת פקדיס 3 על טופס. סוגי השדות שתוכל למקס בדוחות הופכים ומיניס לבחירה 7 % א | בארגו הכלים, כאשר אובייקט אְַסססְחִ8ּא8כ מצוי במוקד. שדות אלה ₪ מוצגיס בתרשים 29.2. ל מל תרשים 29.2: האלמנטים שתוכל להוסיף לדוחות נמצאים במקטע נפרד בארגז הכלים אס תרצה להוסיף נתון לדוח, שרטט תחילה את הפקד המתאים במקטע הרצוי, והגדר את מאפייניו, כפי שתגדיר מאפייני כל פקד אחר. הפקדים שאפשר להוסיף לדוחות מוצגיס בטבלה 29.1. טבלה 29.1: פקדי +זס0ק6ח מז שם הפקד תיאור 3% |886 ₪0 | מגדיר פקד |1806 שישמש להצגת טקסט שאינו מאוגד לנתון מסוים, כגון שם עמודה או תאריך הפקת הדוח 6808 טק | מציג תוכן שדה במסד הנתונים 6חזסת | מכיל תמונה או אובייקט גרפי אחר, כגון סמל חברה חס | מאפשר שרטוט קווים, למשל קווי הפרדה בין מקטעים 6 | מאפשר שרטוט צורות לצורך הבלטה, או אפקטים חזותיים חסססחט-6כה מאפשר לשלב בכותרת שדה פונקציה מתמטית, כגון סיכום פרק 29: הפקת דוחות | 775 הוספת שדות למקטע פירוט המשך ליצור את פרויקט הדוגמה ומקס מספר שדות בדותח. שרטט אובייקט אסא שק במקטע פירוט של אובייקט 1ַזוסססְחְפּהכ. שים לב שכאשר הפקד יוצג, תוצג בו המילה סחטספח;\, שתצביע על כך שהפקד טרס קושר לשדה במסד הנתוניס. הקש על ₪4 כדי להציג את חלון המאפייניסם של תיבת הטקסט החדשה. שנה את שמה לשס בעל משמעות. לדוגמה, תוכל לקרוא לה ₪6 א6, מפני שהיא תשמש להצגת כותרי הספרים. אחר הצב את המילה 6טוד במאפיין 01860 של הפקד כדי לקשר את הפקד לשדה בטבלה. סגור את חלון המאפייניס ושיס לב שהמילה ₪65 מוצגת. הוסף שני שדות טקסט נוספיס למקטע פירוט, וקרא להס 2656 ו-ז08/אט. הצב את הביטוייס חסטק265601 ו- 60חפו|פטק זהסץ במאפיין 66וחְמזהכ של כל אחד מהפקדיס, בהתאמה. לבסוף שנה את גודל המקטע על ידי ביטול השטח המבוזבז שמתחת לפקדים. הטופס שיווצר כתוצאה מתהליך זה מוצג בתרשים 29.3. סק 033 א 0.1036 (ז6300הקת) 16300 +וסק6ה 4 (500002) 6900 סממ 4 | (001ו5600) 63 4 וטג 688 א חסוו6501ם סוד (5060003) זסססס= סהָב 4 3 (5חסו5660) זס)סס= וסקס 4 תרשים 29.3: הגדרת שדה בדוח פשוטה כמו הגדרת פקד איגוד נתונים הוספת נתונים לכותרות שלוש תיבות הטקסט שהוספת תוצגנה במקטע פירוט, כך שהן תשמשנה להצגת נתוניס במסד הנתוניס. אך יש להוסיף גם נתוניס קבועיס לכותרת הדוח, שיציינו מהס הנתוניס המוצגיס בתיבות הטקסט. עשה ואת על ידי הוספת פקדי |806 61ק₪ למקטעים המתאימים, והגדר את מאפיין ח00ק68 שלהם. בדוח לדוגמה, הוסף שלושה פקדי תווית למקטע 06808 6ְאָק. הגדר את מאפיין חסו0ק63 של כל אחד מהס 66ו1, 605% ו- 66ח8ו!טטק ז68ץ. סדר את פקדי התווית כך שכל אחד מהם יתייחס לשדה שיוצג מתחתיו במקטע פירוט 560000 וו8ז6ם. הוסף פקד |806 ₪06 רביעי למקטע 6806 +וסקסח. בשדה זה יוצג שם האדסם שיפיק את הדוח, שיוגדר באמצעות קוד. משוס שיש לגשת לפקד התווית מקוד, כדאי שתגדיר למקטע ולפקד התווית שמות בעלי משמעות. 6 סדנת לימוד 6.0 8\ בצע את הפעולות שלהלן: 1 בחר את פקד |0\856מ₪ ושנה את הגדרת מאפיין 6וח8א לערך חספזספופו, שנה גם את הגדרת מאפיין 68000 למחרוזת ריקה. 2 לח על השורה האפורה שבראש מקטע ז16806 01ק₪6 והקש 4" כדי להציג את חלון המאפייניס של המקטע. 3 שנה את הגדרת מאפיין 6וח8\ לערך 468067םז. לאחר שתבצע את הפעולות, הדוח ייראה כמו בתרשים 29.4. בזאת סיימת את עיצובו. |<ום=. [ ד ו - ם ה וס 33 א י|י 2‏ | י1יוי0 |יפיויפ8י|י7יוי'6י|י'5י|י4י|'3.|י2י|.0.|.1 [הסטסףה 580010 - 1 (002ו5660) 163001 סַחָבק 4 ואה (001ו5600) |\ב: | וס 4 וטול 68 חסוומו6501 (003ו506) ו (5ח0ו560) זסלסס= )וסקס 4 תרשים 29.4: בתרשים מוצג מבנה דוח הדוגמה, לאחר הוספת השדות למקטע הכותרת הצגת הדוח כעת לאחר שהגדרת את מראה הדוח, הוסף מספר שורות קוד שתצגנה אותו. הוסף לטופס לחצן פקודה והגדר את מאפיין 6חפּא ל- + ס0ק6 60 ואת מאפיין ח00ק68 ל- ₪60 שְג!ספום. הוסף את קטע הקוד הבא לשגרת אירוע 016% של הלחצן. תוכנית 29.2: סאפסדקח - הצגת הדוח בפני המשתמשים. ()אסו1 +6001 60 50 סאהעווק 58 5 5 חחוס "ההוחסז 06 ץכ 60זהקסק" = 5 5 = 0706ו5850הכ. 60011 בכ 56% 5 = הס 68. ("ח50זסקופ!" )5 60(" ה סו 56 1 ססס הס צ\סח5. 1+ס6 הכ 50 06ח=₪ קטע הקוד המוצג בתוכנית 29.2 מציב את שס אובייקט ‏ ₪660705% ססה, 5ז, במאפיין 0506 של אובייקט צוסססחהּטְהס. פרק 29: הפקת דוחות | 777 הערה: בדוגמה שהובאה זה עתה השתמשת באובייקט ₪660705% 300 כבמקור נתונים. אך ניתן להשתמש גם במקורות נתונים מסוגים אחרים, כגון %חסתחסזוטחם הְזהכ, שמאפשרים להגדיר את המאפיי] שזְספ5ז3כ במצב עיצוב. לאחר מכן, יוגדר מאפיין ח00ק68 של פקד התווית שבכותרת הדוח. לבסוף תתבצע קריאה לשיטה צוסח5, שתגרוס להצגת הדוח. אס תרצה לנסות את הדוח לדוגמה, הפעל את הפרויקט ולת על לחצן 866070560 |ום. לאחר שתוצג תיבת הודעה שתציין שמערך הרשומות אוכלס בנתונים, לח על לחצן +00 שְ3|ספום. הדוח יוצג בחלון נפרד, בתצוגה לפני הדפסה, כמתואר בתרשים 29.5. 331 א [- ו |₪ |₪) ח5!/!פט זבּפ' וד 686 חבס וק 5% 30 3103/8006 6 310 1 6 2 306 0/8006 ח699006 3763 1/0081 חס 5665 0668 130 3 : וח8|פ0זק 03135358 הד 68 3 5ופץ31 ח\, 551605 01/60%66-+86 ןפב וז 10ח! ח! 56865 |431 108ח16) המופ 1 הו סז 206 עהסזו הבח סז ,0178 תג 06550 סזק סזס: 1 5 65 פח ח+צ/0/\ 5ח1634/0!ק קה 306 2 לוו ההההההההההטרר-. + |א מ :ב תרשים 29.5: כך ייראה דוח הדוגמה לאחר השלמתו העשרת הדוחות בסעיף הקודס למדת כיצד תוכל להפיק דוחות בקלות, על ידי שימוש בכלי +סק₪6 ז5סכ. הדות לדוגמה שנוצר היה אומנס גולמי מאוד, אך ענה על צרכיך. סביר להניח שבעת בניית הדוח, הבחנת שתוכל לבצע שינוייס רביס בשדות שבדוח, למשל במאפיין +חס=, שאינו דורש הסבר נוסף. כדי לעצב את הדוח באופן הרצוי לך, יש בסך הכל להפעיל את הכשרונות האומנותיים. בכל מקרה, חשוב שתזכור שהכלי ₪001 088 מציע מיגוון יכולות נרחב, שחלקן תתוארנה בסעיפים הבאים. 8 סדנת לימוד 6.0 8\ שדות דוחות מוגדרים מראש במהלך הדוגמה ראית שאובייקט אסספחִּט8ס מאפשר לפנות למאפייני הפקדים על ידי שימוש בקוד. לדוגמה, אס תרצה להוסיף לדוח שדה שיציג את תאריך יצירתו, תוכל להגדיר את מאפיין ח0₪0ק68 של פקד התווית שסא בטרסם תציג את הדוח. תוכל להשיג את אותה תוצאה גם בדרך פשוטה יותר. אובייקט ₪600 88 תומך בכמה סוגיס מוגדריס מראש של מצייני מיקום (5ז40!06 806|ק), שמאפשרים לשלב בדוחות כמה אלמנטים דינמיים. מצייני המיקום יפורטו בטבלה 29.2. הערה: המאפיין אד משמש גם לזיהוי הדוח לתיבות הדו-שיח של מדפסות. טבלה 29.2: מצייני מיקום מוגדרים מראש בדוחות תיאור מספר העמוד הפעיל מספר עמודים כולל תאריך עדכני (מוצג במבנה קצר), לדוגמה, 5/24/98 לשימוש באחד ממצייני מיקוס אלה, הוסף לטופס פקד |306 6כח והצב במאפיין ח00ק63 שלו ביטוי שישלב את מציין המיקוס הרצוי. לדוגמה, אס תרצה להציג מספר עמוד בתחתית העמוד, הוסף פקד תווית לקטע הכותרת התחתונה של העמוד, והצב במאפיין ח00ק68 שלו את המחרוזת הבאה: )0 0ק% 6ְמבק הרצ את הדות ו- ₪001 080 יחליף את מצייני המיקוס בנתוניס המתאימים, כמתואר בתרשים 29.6. אס תרצה להשתמש באחד ממצייני המיקום בפני עצמו, מבלי להוסיף טקסט משלך, תוכל להוסיף אותו לדוח בדרך מהירה. כל שיש לעשות לשס כך הוא ללחוצ לחיצה ימנית על הדוח ולבחור מתוך התפריט שיוצג את הפקודה !0ז6001 561%ח1. תוכל להשתמש בשיטה זו לכל אחד מהשדות שהוגדרו מראש ולכל פקד אחר המוצע לשימוש. פרק 29: הפקת דוחות | 779 זו יי [- ו |₪ |₪) 5% ח3 400655/800%/ זו 655 חופטם חו 45 בוק 00 0+ ח0ו1סט00ז4ח! חגא : ++6 ספוט ד 0138 סז 655 הפטה זס1 כ 0 0 6 8 סוק 06-807 308 800%/פַהוהההבּזחָסזק 0 6008 : 64[ הגפס 8 בַהוּהָ הת 3 3 ]0 2 פַַאָ תרשים 29.6: הוספנו מונה עמודים לדוח הדוגמה הוספת אלמנטים גרפיים צורות גרפיות וקוויס אומנס אינס מוסיפיס לדוחות יכולות פונקציונליות כלשהן, אך הס משפריס את חזות הדוחות. כך שתוכל להשתמש באלמנטיס כאלה לשס הבלטת דבריס, או לסידור חזותי של הנתוניס. שלושה פקדים מאפשרים להוסיף אלמנטיס גרפייס לדוחות : 806 1טסח, 6חו ₪06 ו-6קְח6זקם. תמונות כדי להוסיף תמונה לדוח, יש לשרטט תחילה פקד 6ְאפַפּחז6כ₪ בחלון עיצוב הדוח. אחר, טען תמונה לתוך הפקד, על ידי הצגת חלון המאפייניס של הפקד ולחיצה על הלחצן בונה (שלוש הנקודות) בשורת המאפיין שזושסוק. בחר קוב תמונה. תרשים 29.7 יציג סמל חברה שהוסף לכותרת הדוח באמצעות שימוש בפקד 6טוחזשסח. ו א .₪| 0 - דססף 806 סז 35 עפ 3186 קש 5% 81810 198 הַחופ ח5!!פנוש זבפ/י וד 56 8 ומד וי פָחוהההגּזפָסזק 0 26 ,80486 ,80386 ,80288 106 הַחוהבּזחָסזק 3 הפו 3566 8-ח טוח תרשים 29.7: ניתן להוסיף תמונות לדוחות על ידי שימוש בפקד 6בַהחזזסח 0 סדנת לימוד 6.0 8\ פקד סאַבּחזקא אומנס דומה לפקד תמונה רגיל, אך חשוב לזכור שהוא פקד נפרד שהוגדרו עבורו מאפייניס משלו. להלן כמה הבדליס החשובים בין שני פקדיס אלה: + מאפיין זחסוחף!|6זט6וש מאפשר להגדיר את מיקוס התמונה בפקד, באופן דומה להגדרת יישור טקסט בפקד תווית. > פקד - ₪0010806 מציע מיגוון אפשרויות רחב יותר להגדרת מאפיין 807061506 מכפי שמציע פקד 1806 רגיל. * מאפיין 51261006 של פקד 886חטק₪ רב-תכליתי יותר ממאפיין ח566 של פקד 6 פקד 6סַהכא תומך גס בהגדרת ערך 2000 המאפשר להגדיל את התמונה עד שהיא חורגת מגבולות הפקד. קווים וצורות פקד 86ַקא מאפשר לשלב תמונות בדוחות ואילו פקדי 6ח₪061 ו-₪650806 מאפשריס לשלב קוויס וצורות גיאומטריות אחרות. אופני הפעולה של פקדים אלה דומיס לאלה של פקדי 6ח!] ו-6מְ88ח5 שתוארו בפרק 19. בתרשים 29.8 מוצג דות שהועשר בקוויס ובמלבניס לשס הבלטת הנתוניס. 33 א 4 ו יק |₪ 186 0 304 ,80480 ,80386 ,80286 6 הַחוההבּזבָסזם 4 ו תרשים 29.8: שילוב צורות תש ו | במקטע פירוט מאפשר להציג אותן שוב ושוב בכל " אא - 48 רשומה הדפסה וייצוא במהלך הפרק נוכחת שתהליך עיצוב הדוח מורכב מהגדרת מקור נתוניסם שעליו הוא יתבסס, ומהגדרת חזות/פריסת הדוח. לאחר שתפיק דוח מסויס תעמודנה לרשותך שלוש דרכיס שתאפשרנה להעביר אותו למשתמשים: + קריאה לשיטה שוסח5 כדי להציג את הדות בחלון תצוגה מקדימה. תצוגה כזו מאפשרת למשתמשים לדפדף בדוח ולהדפיס עותק שלו. + להשתמש בשיטה +וסססחזחוזק כדי לעקוף את חלון התצוגה המקדימה ולהדפיס את הדוח ישירות למדפסת. בשיטה זו כדאי להשתמש בפעולות להפקת דוחות ממוכנת או ביישוס שמציג את הנתונים, ולכן אין הכרח לבצע תצוגה מקדימה. + שימוש בשיטה +סססחסקאם לשס שמירת תוכן הדוח בקובצ. שיטה זו יכולה לשמש ליצירת דפי ס6ו\ מדוחות. באחת הדוגמאות הקודמות הצגנו שימוש בשיטה אוסח5 לצורך הצגת דוח. השימוש בשתי השיטות האחרות הוא פשוט באותה מידה. פרק 29: הפקת דוחות | 781 שימוש בשיטה +וסכ66א)?חווק להלן שורת קוד המיישמת את אופן הקריאה הפשוט ביותר לשיטה +וסקס6אשחוזק : חק וס הס השיטה מציעה גס מספר פרמטרים אופציונליים, שהשימוש בהס יקנה רמת שליטה גבוהה יותר על פעולת ההדפסה: + 08| שסח5 - פרמטר הקובע האם תוצג תיבת הדו-שיח הדפסה של פאוססחוש\, שתאפשר למשתמש לבטל את ההדפסה או להגדיר פרמטרים (ערך ברירת המחדל של פרמטר זה הוא 8!56"). ** 88006 - פרמטר המגדיר האס יודפסו כל עמודי הדוח, או רק עמודים נבחרים. ערך ברירת המחדל הוא 3065ק!|\6ַפַָחהחזקז, שגורס להדפסת כל העמודים. + | 8067]0ק ו- 00ז6חָק - אס בפרמטר 86ַח₪3 מוצב הערך סדהחסזחסְַחה8שכז, שני הפרמטריס האלה יגדירו את העמוד הראשון והעמוד האחרון של ההדפסה. בשורת הקוד הבאה נכללו כל הפרמטרים כדי להדפיס את עמוד 5 בלבד: 5 דח 060 הה הכז ,6טדך הסכ6הזחוזק. 1+וסקס הלהס הצבת ערך שגד בפרמטר סוס אוסח5 תאפשר למשתמשים לשנות את הפרמטריס של פעולת ההדפסה ואף לבטלה. שימוש בשיטה +וסק6א+וסקא= ייצוא דוח לקובץ ₪19 או לקובצ טקסט מתבצע באמצעות השיטה +וסק6מ+וסטאם. לדוגמה, שורת הקוד הבאה תיצור דף 4191 שיכיל בתוכו את הדות: 6 ,סד ,"וא דרן. + סקש שו \קות6 ד\:ס" ," ואד 066 שְ6א" אהסקסאסקאם. נדוססס הס בדומה לשיטה צוסק6שחוזק, גם לשיטה זו יש כמה פרמטרים אופציונליים : + + ש6אז0א06ח81וזס= - מגדיר את פורמט קובצ הייצוא. לאוסף 5ופחחזס-וסקא= ארבעה סוגיס אפשריים, למעשה יש לבחור בין קוב |אזח לבין קובצ טקסט. + 86א6!ו₪ - מציין את הנתיב המפורט לקוב שאותו אתה מעוניין ליצור. + סטאוזסטס - מגדיר פרמטר בוליאני (שערך ברירת המחדל שלו הוא 6טזז) המציין האס לדרוס את קובץ הייצוא. אס מוצב ערך 8|56=, הניסיון יגרוס לשגיאה. + 8|00וסשוסח5 - קובע האס תיבת הדו-שיח +ססאם תוצג לפני המשתמש. ** א סחְחהה, חסזחִסחָהּק, סַ דַסַפָהק - משמשים להגדרת העמודים שייוצאו. אופני הפעולה זהיס לאלה של הפרמטריס המקביליס בשיטה +וסק6סחוזס. חשוב שתדע שבנוסף לכך שמתאפשר למשתמשים להשתמש בקוד 8856 |1808/\ לשס הדפסה וייצוא הדוחות, הס יכולים לבצע פעולות אלו גס באופן ידני, תוך שימוש בלחצנים המוצגיס בחלק העליון של חלון התצוגה המקדימה. 12 סדנת לימוד 6.0 8\ שדות מבוססי פונקציות כבר למדת כיצד להוסיף שדות לדוחות לצורך הצגת מידע סטטי או נתוניס המאוחסניס במסד הנתונים. אך דוחות יכוליסם להכיל גס שדות שהערכים שיוצגו בהס יחושבו באמצעות הפעלת פונקציות פשוטות. שדות כאלה מכוניס שדות פונקציות (16|05] הסטס6חט=) והוספתס לדוח מתבצעת באמצעות פקד חסטסחט-כז. הערך שיוצג בשדה פונקציה תלוי בהגדרות שני מאפיינים, מאפיין 0808/60 מגדיר את השדה שעליו תופעל הפונקציה, והמאפיין 6קץדחסוזסחט= מגדיר מהי הפונקציה שתופעל. במאפיין ה ניתן להציב את הערכיס הבאים : + ההטפסחט-סז - סכוס. + 6טה6חט-זקז - ממוצע. > חו|אסחט=%סז - ערך מינימוס. + א8!\סחט=)סז - ערך מקסימלי. %ח6חסחט-סקז - ספירת שורות. ** 606/ס6חט=)קז - ספירת ערכים, מספר השורות המכילות ערך מסוים. + /שספסחט-קז - סטיית תקן. + 8חם5סחט-סז - שגיאת תקן. פקד הפונקציות יכול לשמש להפעלת אחת הפונקציות על שורות רבות באחת העמודות של מערך הרשומות והצגת התוצאה. פקדי פונקציה מוצביס במקטע הכותרת התחתונה, מפני שיש לעבד את כל הנתוניס הרלוונטייס לפני חישוב את הערך שיוצג. > |ם) =. 0331 א ₪| :סו חא‎ =[ ה‎ 1 : 5ן זה שץ 351| 6+ : | 3 שץ 51ו1 6+ 0 : ספ 01 זפ חחח |013+ מ" | |א|א - - 64/75 יש תרשים 29.9: ניתן להיעזר בפקדי פונקציות להצגת סכומים, ממוצעים ומספרי רשומות פרק 29: הפקת דוחות | 783 הערה: ניתן גם לשלב פקדי פונקציות ב- 00095 קטסז6, כדי לאפשר הצגת תוצאות ביניים. מידע על שימוש במקטעים 680615 קטסזס |- 5ז0000] קטסז6 תמצא בעזרה המקוונת של 8856 |1508/. כדי להציג דוגמת שימוש בפקדים להצגת ערכים מבוססי פונקציות, נתייחס לטבלה פשוטה הכוללת שתי עמודות ח50ז58!6506 ו- 6טח6ע6. בתרשים 29.9 מוצג דוח הנעזר בפקדי פונקציה כדי להציג את סך הפדיון ואת הפדיון הממוצע לאיש מכירות. הפונקציות 67806/ ו-החט5 הופעלו על שדה 06ח₪6/6 לחישוב הערכיס המוצגיס בשורה התחתונה של הדוח המוצג בתרשים. 5 |ב5%/ו6 5 |07/5%0 הוא כלי להפקת דוחות מתוצרת יצרן חיצוני שמשווק ב- 8856 |1508/\. כלי זה מאפשר להפיק דוחות המבוססיס על סוגי מקורות נתוניס רביס. תוכל לתכנן דוחות באופן גרפי, ולנסותס באופן גרפי תוך שימוש בכלי העיצוב של ₪006 |67/5%8 (0067ו65כ פהסקסא |50ץז0). נתוני עיצוב הדות ונתוניס נוספיס הקשוריס בו מאוחסניס בקובצ בעל מבנה ייחודי בעל סיומת זקא. לאחר שתיצור קובצ ב- 0165ק₪6 |67/508 תוכל להציג את הדוח לפני המשתמש באחד האופניס הבאיס: + פקד ₪605 |50ץז6 מאפשר לשלב דוחות מוגמריס בתוכניות 8856 |1508/\ בצורה פשוטה. + קריאות 401 של ₪600 67/5081 מאפשרות לפנות למנגנון 15סק₪6 |07/509 מבלי להשתמש בפקד מותאם. כל הקריאות 471 של 0115ק₪6 |67/5% ממוקמות בקוב\ 4% ששאמור להימצא בתיקיה בה נמצא קובצ ההפעלה של |67/508 5 + 507/08 60)\ ]וסקס |508/ז6, שבמהדורת |0/655008זק 5זוסקם |%ז5ץז6 פועל בשרת 60/\ ומאפשר להעביר דוחות ליישומי לקוח הפועליס בסביבת ס6/\. הערה: נכון לכתיבת דברים אלה, הגירסה העדכנית ביותר של 5זסק6ח |67/50₪ היא גירסה 6.0. אך 8856 |הטפו\ תומכת בגירסה ישנה יותר (גירסה 4.6). כדי שתוכל להשתמש בגירסה העדכנית, יש להתקין אותה. התחל את התקנת 0115סק6ח |588ץז0 על ידי לחיצה כפולה על קובץ ההפעלה 07/58|32.666 | שאותו תמצא בתיקיה \5| 00 ד \ חסוחה0ס6\ בתקליטור מספר 3 של חבילת ההתקנה 500000 |808ו/\ (|67/519 סקס מצורף לחבילת 500000 |150/ ולא לתוכנת 88516 |1508 עצמה). הסעיפים הבאים יציגו את הפעולות הבסיסיות של 6600165 |67/5 ויתארו בפירוט את הפעולות הדרושות להצגת דוח תוך שימוש בפקד 6600165 |67/558. 4 סדנת לימוד 6.0 8\ יצירת דוח חדש בהנחה ש- ₪608 !07/50 הותקן בהצלחה, תוכל להפעיל את כלי העיצוב (|67/5₪ 650 5ס0ק₪6) מתפריט 5חו-266 של 8856 |1508/. ז6ח0ו65כ וסקסםח, שמוצג בתרשיס 29.10, הוא סביבת פיתוח לקבצי דוחות. סביבת הפיתוח מאפשרת לעצב דוחות חדשים, לבצע שינוייס בדוחות קיימיס ולהציג תצוגה מקדימה דוחות מוכניס. הערה: 86 הוא קובץ הפעלה המשמש להפעלת ז8ח2650 ₪900165 |5%ץז0. בעת שנכתבו שורות אלו, תוכנית ההתקנה של 8856 |8טפו/ לא יצרה סמל עבור 90065 |67/588 ז006ו5סס, מצב הגורם לכך שהמשתמשים נדרשים לאתר את קובץ ההפעלה בדיסק שלהם, ולהגדיר קיצור דרך אליו, כדי שאפשר יהיה להפעילו גם מחוץ לסביבת 6 |80ו\ (מיקום ברירת המחדל של הקובץ הוא 0055 ד \ חר 0 \ 500010 |8טפו\ 65\15!= התפזחָסזק). אם 6.0 07?5%88 600765 מותקנת, סביר להניח שתוכנית ההתקנה יצרה את קבוצת יישומי 5וזסקפז |589/ז6 בתפריט ההתחלה והוסיפה סמל קיצור דרך. | וםן=. | |5|=. - - סול )וסקס וה )פע 15 6 (וסטחהו וס | הספה| 0% 6 [39 ₪| א | = | 4 | [מפ|55| || אאאאאאאאאאאא 9 וק זסו(ונו ה 0 | 9.0103 | תרשים 29.10: ז0ח0ו265 5זזס0ק6ז |07/5%6 הוא יישום נפרד מ- 8856 |08פו/\. בתרשיס 29.10 תבחין בשתי כרטיסיות המגדירות את מצבי תצוגת הדותח: ח650כ (- אוסו/6זק. בעת עבודה במצב ח9ָ651כ, תוכל לשרטט ולסדר שדות על הטופס. התהליך דומה לזה המיושס בעת שרטוט פקדים על טפסים. יש לשרטט את השדה, להגדיר שס וכמה מאפייניס נוספיס. אס תעבור לכרטיסיית 16ש6זק, 5זוסק₪6 |50₪/ס תתקשר למקור הנתונים ותציג נתוניס בדוח. ננסה את ₪60068 |07/508 על ידי הגדרת דוח לדוגמה, שיתבסס על מסד הנתוניס 0. פתת את ז6ח265/0 600715 |67/5%8 והתחל ביצירת הדוח, בחר ש6א מתפריט 6. תוצג תיבת הדו-שיח 601% ש86 63%6ז6, המוצגת בתרשיס 29.11. תיבת הדו-שיח תאפשר לבחור מבין כמה סוגי דוחות. אס תבחר את אחד, תוכל להיעזר ב- +ו6קאם ₪601 676806. המומחה מחלק את תהליך היצירה לכמה שלביס, בדומה לאופן הפעולה של אשף. תוכל גס ליצור דוח מאפס, על ידי לחיצה על לחצן וח0ז65 ובחירת שתי אפשרויות מהחלק שיופיע: סוג הדוח ומקור נתונים. פרק 29: הפקת דוחות | 785 ]ו 46 8306 וקא חב 6פססתם -ן פסה | 1 פב [-01058 בחוזפ 1 | 3 | <<< חופנ חאוס כ וז א פד עז הוחו תרשים 29.11: ₪606 |3ז5/ז6 מאפשר לעצב דוח מאפס או להסתייע במומחה. לאחזור הנתונים תוכל להסתייע ב-0086 או באחת ממנהלי ההתקן המוצעים יצירת דוח מאפס נמשיך את יצירת דוח הדוגמה שיתבסס על מסד הנתוניס 818110. לחצ על הלחצן וה0ז65 כדי להציג תיבת דו-שיח לבחירת סוג הדוח וסוג הנתונים. ודא שלחצן + 0ל65 נבחר ולחצ על לחצן 6 זֶהכ. כעת יש להגדיר את מיקוס קובצ מסד הנתוניס 08ו.818110 (בדרך כלל מאוחסן בתיקיה של 8856 |1508/). בהנחה שהמערכת שלך תקינה, לאחר שתבחר את קובצ מסד הנתוניסם שבו תשתמש, תוצג תיבת הדו-שיח ₪60 ₪8%80856 56%ה1 אשר מוצגת בתרשיס 29.12. תיבת הדו-שיח תוצג באופן אוטומטי, אך תוכל גם להציג אותה בעזרת תפריט +10561. תיבת דו-שיח זו תאפשר לבחור את השדות שבדוח. |<. ₪] 03130356 ]זס5ח! + פן גה וו בסתפוופט זה6 פפו סופת הסוזקוזס5 םס 8 || - 4 | ...0318 18/0 סז | 8 תרשים 29.12: בחר פריטים מרובים מתיבת הדו-שיח ₪60 28090856 56%ח1 על ידי החזקת מקש |6₪ לחוץ ולחיצה על הפריטים הרצויים לצורך דוח הדוגמה, בחר את השדה זסושטג מטבלת פזסחזטה ואת השדה 6טוד מטבלת 5 (מסד הנתוניס 818110 מכיל את הקישורים הדרושים). אם יש צורך, תוכל לשנות את מיקוס תיבת הדו-שיח כדי שהיא לא תסתיר את החלון הראשי של כלי העיצוב. לאחר מכן גרור את השדות שבחרת מתיבת הדו-שיח למקטע 608ס של הדוח. סדר את השדות כך שהדוח ייראה כמו ה שמוצג בתרשיס 29.13. לח על לחצן 6 כדי לסגור את תיבת הדו-שיח ₪6|0 8180856 567%ח1. 6 סדנת לימוד 6.0 8\ לבסוף, תוכל לנסות את הדוח על ידי לחיצה על הלחצן בעל סמל הברק שבסרגל הכלים. לחיצה על לחצן זה מפעילה את התצוגה המקדימה, שמאפשרת לראות איך ייראה הדוח בעת עבודה עס רשומות הלקוחות ממסד הנתונים. שמור את הדוח על ידי לחיצה על לחצן 58/6, או על ידי בחירה בפקודה 6צ58 מתפריט שוו=. טיפ: אם אתה מתכוון להשתמש בתוכנית להצגת הדוח עם נתונים שונים בכל פעם, כדאי שתנטרל את האפשרות ₪006 וזווש 2808 58/6. לאפשרות זו תוכל להגיע על ידי בחירה בפקודה 006085 מתפריט ₪16 ובחירה בכרטיסיה פַחוזוסט6א. יצירת דוח בעזרת +וסכא= +01ן₪6 60316 דרך נוספת ליצירת דוחות היא על ידי שימוש ב-61קאם +₪6007 16ז68ז0. בחר את סוג הדוח הרצוי מתיבת הדו-שיח +ז0ק₪6 ש6)] 6806ז6. להלן סוגי הדוחות שיוצעו: ]םב קת 0166חו] - סו 6065 והונעו 5 ₪ |9]=. טחוש ווסקסה ‏ 56מפבו23] |מחזם" ‏ הספת[ 08 6 [35 || = | 8 | | | 55| [| ]םי |[ [ 88 [65] > | ו || | + | 65| ג | || רד | וק ול וו שורה 3 שו ו 2 א צסונו ה אאאאאאסנאונאכל ולא זכאכזכונ)אכו3)זכונאן שלאטזכזכלזכונזטונ) ולול אוכאכאאקנזטונ)אכול אכ | | 5898 6 תרשים 29.13: כאשר תגרור שדה מסד הנתונים למקטע 8ו618, 60015 |519ע67 יוסיף התאמות למקטע ז6806 של הדוח, באופן אוטומטי %, + 5580376 (רגיל). מבנה דוח סטנדרטי הכולל שורות ועמודות. דוחות מסוג זה מכילים במקרים רביס נתוני סיכוס בתחתית העמודות. הס גס מאפשריס לקב\ נתוניס תוך שימוש בקריטריוניס מוגדריס. 11508 (רשימה/פירוט). דוח סטנדרטי שהנתוניס המוצגיס בו מוצגיס במבנה רשימה. הו המבנה המתאיס להצגת דוחות כגון רשימות עובדים או לקוחות. % הד 67055 (דוח הצלבות). דוח וה מציג דוחות בסדר הפוך מזה המקובל בדוחות רגילים. עמודות הדות מייצגות את הרשומות במערך הרשומות. דוחות כאלה משמשים להצגת סיכומיס המתבססים על מערכי נתוניס מורכביס יותר. + !1806 ]₪881 (תוויות דואר). מבנה דוח כזה משמש להפקת תוויות דואר בהתבסס על נתוניס שבמסד הנתונים. פרק 29: הפקת דוחות | 787 + עזהּוחוחט5 (סיכום/תמצית). דוח כזה מציג את סיכוס הנתוניס מבלי להציג את הנתוניס עצמס. ברוב המקריםס הנתוניס מקובציס לקבוצות ולכל קבוצה מחושבים נתוני סיכום. * ת808ז6 (תרשים). בחירה באפשרות זו תעביר דרך סדרת פעולות שתסייענה בהגדרת התרשיס. + א ססד (א רשומות עליונות). דוח כזה יתייחס רק למספר מוגדר של רשומות מתוך מערך רשומות. הוא יכול לשמש למשל לשסם הצגת נתוני המכירות של חמשת אנשי המכירות המובילים בארגון. % חשסס וווזם (דוח ייקידותיי). דוח כזה מציג נתוני עזר או נתוני פירוט עבור כל רשומה ורשומה. תרשיס 29.14 מציג את מסך הפתיחה של או6סאם 1 ₪600 076806, שמאפשר להגדיר את מקור הנתוניס שעליו יתבסס הדוח. לאחר שתשליס את הפעולה, יש להגדיר פרטיס נוספיס הדרושיס לשס השלמת הדות. כאשר תסייס ליצור את הדוח תוכל להוסיף ולגרוע פרטים, כפי שעשית בעבודה עס דוחות מותאמיס אישית. |< ]וקא )סק 16306 | 6 ?| 0 >| ויו כו 8 עז הזופ :5 | |בוסד :4 | 50 :3 | 3965 2| 8 % .אהו 300 חב 13165 6!קוזווח 56ססח0 חבס גוס .חס ]סקפ ס) 0313 6פססו0) :קסופ שו ו ₪ ממ 6 | || |] | | תרשים 29.14: ל- אַ6קאם +0ק₪6 676806 כמה כרטיסיות, שכל אחת מהן מייצגת שלב בתהליך יצירת הדוח 8 סדנת לימוד 6.0 8\ התאמה אישית של הדוח גם אס נעזרת ב-+ז6קא= +₪600 6706866 להגדרה ראשונית של מבנה הדוח, סביר להניח שתהיה מעוניין להכניס שינוייס. למרבה המלל, 60065 |503ץ67 מציע מיגווו רחב של אפשרויות להתאמה אישית. תיאור מפורט חורג מתחוס עיסוק ספר זה, אך בפרק וה נעסוק בשני סוגים חשובים להתאמה אישית, הוספת שדות חדשים והגדרת קריטריוניס לבחירת רשומות. סוגי שדות כבר ציינו שפריסת שדות בדוח דומה לפריסת פקדים על טופס. תפריט +10561 מאפשר לבחור מבין כמה סוגי שדות : + ₪166 56הּ28 (שדה מסד נתוניס). מקשר בין פריטים בדוח לבין שדות במקור הנתונים. אופן הפעולה דומה לזה של פקדי איגוד נתוניס. + 02166% +א6ד (אובייקט טקסט). מספק מידע טקסטואלי קבוע, כגון כותרות. >< 16!6= ב!שוחזס] (שדה נוסחה). משמש להצגת תוצאות נוסחאות (ביטויים). הביטוייס בשדות כאלה מתבססיס על שדה או שדות במסד הנתונים. + ₪166 זסְ6סההבּזב3ק (שדה פרמטר). מאפשר להגדיר פרמטרים שניתן להעביר לדוח, באמצעות תוכנית או באופן ידני. שדות פרמטרים ניתנים לשימוש בקריטריוניס לבחירת רשומות ובנוסחאות אחרות. + ₪8 !5060131 (שדה מיוחד). מציג באופן אוטומטי נתוניס כגון מספר העמוד הפעיל, השעה העדכנית או נתונים מועיליס אחרים. כל מה שעליך לעשות כדי להוסיף שדה לדוח שלך הוא לבחור אותו מהתפריט, ולהגדיר את הנתונים הדרושיס לשס שימוש בו. אס תרצה לגרוע שדה קיים מקוב, בחר אותו והקש 6|606ש. תוכל גס ללחוץ לחיצה ימנית על שדה, כדי להציג תפריט מקוצר שיאפשר לשלוט במאפייני השדה, כגון תוכן ועיצוב. הוספת נוסחת בחירה תפריט +01ק₪6 מאפשר לשנות את נוסחת הבחירה שתיושם בדוח. נוסחת בחירה מאפשרת לבצע סינון הרשומות שתוצגנה, מתוך ₪600765 |5%8/ז6. פעולת נוסחת הבחירה דומה לגו של קטע =8פה/\ במשפטי 501, אך המבנה התחבירי שונה. תיבת הדו-שיח 8|טוחזס] ח56|6600 66070 מאפשרת לסנן רשומות על ידי בחירת שדות וערכים רלוונטיים לפעולת הסינון. תיבת הדו-שיח בונה את משפט התוכנית המכיל את קריטריון הבחירה באופן אוטומטי. תרשים 29.15 ייראה כיצד לשנות את קריטריון הבחירה כך שייבחרו רק מחבריס שנולדו במהלך שנת 1950 או אחריה. זכור ששינוי קריטריון הבחירה הוא פעולה יעילה פחות משינוי מערך הרשומות שעליו מתבסס תהליך הבחירה. שינוי ביטוי הבחירה לא ישנה את מספר הרשומות שתיכללנה במערך הרשומות, אלא רק את מספר הרשומות שתוצגנה. בדוגמה, מערך הרשומות יכיל את כל רשומות הסופרים, אך תוצגנה רק רשומות הסופרים שנולדו מאז 1950. פרק 29: הפקת דוחות | 789 |[ 1 -ב!חזס] ₪4 \ סק | :11638 ת] =[ :סוזסוחה!זוז | | ₪1 [הסרוש3 , החגורן] םהוב החש 0 ו עוקוזוגוות סושום 3080886 [3065!ם8 ,א] טחגוסות )פס זסק [א] 6)הסחגוזך [₪)] זגו 6ב -/ -/ פס ,] חנו . ו . 8% ב|טוחחזס = = חס 8 ז63 ל פזסהגו+ ], 4 | בו | 1 | .66036 בי | ב | אססוום. תרשים 29.15: שימוש בחלון זטו0ם 8|טוחזס (עורך הנוסחאות) מאפשר להרכיב ביטויים הכוללים שדות, פונקציות ואופרטורים שימוש בפקד 860015 |ה5%3ץ7ו6 לאחר שתשלים את עיצוב הדוח, יעמוד לרשותך קוב זק₪ שיימצא בדיסק. תוכל להשתמש בקובץ זה בשילוב עס פקד ₪600 |07/508 לצורך הצגת הדות ביישוס 6 |פו/ש. הערה: אם תשתמש בדוח שנוצר בעזרת ₪60065 |ב67/50 ביישום. יש להפיץ את היישום כשהוא מלווה בכל קבצי העזר הדרושים לעבודה עם הדוח במערכת המשתמש. משוס שפקד 8זזסק₪6 |07/50 אינו מתוצרת 050%ז6ו], הוא אינו מוצע בארגז הכליס של 8856 |508 כברירת מחדל. אס תרצה להוסיף אותו, בחר את הפקודה 5 וח 60 מתפריט 60%[סזק או הקש ז+|0 להצגת תיבת הדו-שיח, וסמן את 6 |070ה00 +60 |5%8ע67. כדי להדגיס את פעולת הפקד, ניעזר בו להצגת הדוח שיצרנו בסעיף הקודס. תחילה יהיה עליך ליצור פרויקט חדש מסוג 5 50800870 ולהוסיף את פקד ₪605 |67/5%8 לארגז הכלים. שרטט פקד 0₪6ס₪6 |07/5₪9 על הטופס. שיםס לב שהפקד יוצג כשהוא בגודל סמל, כמתואר בתרשיס 29.16. 0 סדנת לימוד 6.0 8\ הגדרת קובץ הדוח המאפיין החשוב ביותר שיש להגדיר בעת העבודה עס פקד 5סק₪6 |67/5₪ הוא סוחהּ)ס!ו+וסק6ה, שיכיל את נתיב הגישה לקוב\ דשח שיצרת בעזרת + ₪600 |67/50 ז65ס. אס תרצה להשתמש בפקד להצגת דוחות שונים, כדאי אולי שתגדיר מאפיין זה בזמן ריצה, באופן הבא : ".5 ד\" ,8 ההק קק ג = 6הההסון סס6ח. 6/5001 תרשים 29.16: פקד 768 ₪600 |ג50/ז0 אינו מוצג על הטופס בזמן ריצה. הדוחות מוצגים בחלון נפרד אך לצורך עבודה על דוח הדוגמה תוכל להגדיר את המאפיין בעת עיצוב הדוח. הגדר את המאפיין באמצעות לחיצה ימנית על הפקד ובחירה בפקודה 67₪65ססזק |67/5%8 מהתפריט שיוצג, כדי להציג את גיליון המאפיינים של הפקד. כרטיסיית |8ז6606 (הנראית בתרשים 29.17), תאפשר להגדיר את מיקוס קוב דק8. בכרטיסיה גו תוכל גם לקבוע לאן יופנה פלט הדוח: מדפסת, תצוגה מקדימה, קובץ או הודעת דואר אלקטרוני. | סקפ חנו80פ-8:8ם | ח0ס0ו5160 | 6 | ₪6סתק | | זסחתק | | אסבת/ו :חמק | ]קז +29%065 זסוקה 6% 8 58 ] ב הסוו ו 6 7 זסוחום סך 7+ טחוש סז 6 ו סד 07 | סופות | וס | 66 תרשים 29.17: גיליון המאפיינים של פקד ₪005 |07/50 יאפשר להגדיר קובץ שעליו יתבסס הדוח ויעד שאליו יופנה פלט הדוח פרק 29: הפקת דוחות | 791 הגדרת המאפיין 6וחהּ)\סוו-זוסקפא היא הפעולה המינימלית הנדרשת להגדרת פקד 5 |75%6ז0. לאחר שתגדיר את המאפיין תוכל לכתוב את שורת הקוד היחידה הדרושה להפעלת הדות ולנסות את הדות על ידי הפעלה התוכנית. הגדרת פרמטרים אופציונליים המאפיין 6וח8\סון-זוסק9א הוא אומנס היחיד שאותו יש להגדיר כדי שתוכל להציג את הדוח, אך ייתכן שתרצה להשתמש במאפייניס אופציונליים. 8|טחזסחסו56!660 הוא הראשון. הוא מאפשר להגביל את מספר הרשומות שתיכללנה בדוח. אופן פעולתו דומה לזה של קטע =מפח\\ במשפט .501, אך הוא נעזר בתחביר שונה לצורך הגדרת הקריטריוניס המיושמיס בעת בחירת הרשומות (התחביר המיושס זהה לוה שתואר בסעיף התאמה אישית של הדוח). להלן דוגמה לשימוש בקוד להגדרת מאפיין: "1955 =< [חזסם ז69\ ,5זסת +" = 8|טוזס חהס56!66. 1 6508600 ניתן גם לבנות קריטריוניס מורכבים על ידי שימוש באופרטוריס מסוג 6חג ו-זס. ם אזהרה: אם תגדיר את מאפיין 8טחחסח0סו56/60 בעת עיצוב הדוח, כל נוסחה שתציב במאפיין בעת הגדרת פקד ₪90015 |₪7/50₪ תתפרש כקריטריון נוסף שייכלל במסנן הבחירה. זס)חוקס 601657 הוא מאפיין אופציונלי נוסף, אשר מקל על הדפסת מספר עותקים ביימכה אחתיי. במאפיין וה ניתן להציב כל ערך מספרי שלם. המאפיין האחרון שאליו נתייחס, הוא 65וח81ם. מאפיין וה אינו זמיו לשימוש בעת עיצוב הדוח. המאפיין מכיל את שס קוב מסד הנתונים שעמו יעבוד הדוח. ייתכן שתתהה מדוע יש להגדיר שוב את שס הקוב>, מאחר שהגדרת אותו כבר בעת העיצוב. אך כאשר עיצבת את הדוח, שס הקובץ אוחסן יחד עס הנתיב המפורט המשמש לגישה אליו, שהיה מבוסס על מבנה עצ התיקיות הקייס במחשב שלך, וסביר להניח שמבנה התיקיות במחשבי המשתמשים יהיה שונה. מאפיין 65ווחפאס הוא למעשה מערך, שמספרו הסידורי של הפריט הראשון בו הוא 0. אס הדוח מבוסס על יותר ממסד נתונים אחד, יש להציב ערך בכל אחד מפריטי מערך 5. אך רוב הדוחות יתתבססו על מסד נתונים אחד. שורת הקוד הבאה תדגים כיצד יש להגדיר את ערך מאפיין 65ו8ז8ס. שורת הקוד מתבססת על ההנחה שקובצ מסד הנתוניס מאוחסן בתיקיה בה מאוחסן היישוס שלך. "5.0 זסס רח6!]\" ,8 הסהק. סה = (5)0סוןח ההכ זסטוחסוסכז 12 סדנת לימוד 6.0 8\ הצגת הדוח גם לאחר שתוסיף את פקד ₪600715 07/50 לטופס היישוס ותגדיר את המאפיינים, יש להודיע ל- 600165 |9ז5ץ67 מתי יהיה עליו להציג או להדפיס את הדוח, על ידי הוספת שורת קוד ליישוס. הדות יודפס תוך התייחסות לערכיסם שהצבת במאפיין 6ח 6006 ובמאפיינים האחרים שהגדרת. אס כללת בדוח הגדרה של תצוגה מקדימה, התצוגה תוצג בחלון כמו זה המוצג בתרשיס 29.18. שורת הקוד הבאה תפעיל דוח על ידי שימוש בשיטת זזסססחטחוזק : +ססס הק 6/5061 שיס לב ששס השיטה הוא אומנס +וסק6מזחוזק, אך היא תפנה את הפלט ליעד שאותו הגדרת קודם לכן. הערה: ניתן להדפיס דוח גם על ידי הצבת ערך 1 במאפ"ן חסטסה של פקד 5 5 |< ום) = | - 707 0 ד / ד עסונו ו וטנק ב < זז 5 יו הפקוה 1 קוננונצבקסעק 3.5 ה מו יו פןק 111 0456 סבנ8]/] ,806 26 )11914 578161008 ונסנ081ג[ ככ הנכ 26/90[ : 1133306081 8185856 [קמונבי/י8 16 16811166 ומכו ל 179 זט 1 כ ןס[ כ1 : פק18מ1/1 ומכ ₪ המות מוצוטות 6גנו2) 5156206 טננוכ) 4.0-6.0 עפזפטנסר ץ טג מנספונו101 קוננונונפ קסע 6צנו3פטסע'1 51068 בוונף פעספק 7 פ[סמנכ) זו 1/1 ,261112 סע'] 6צנו6ססע'1 510168 הנפ פַספָקָו ך פ[סמנכ) 1 תמי ,פונטשוכ) 1 ה סיס 1סונ 601 7 הנפ תמנ ספות עכף 65 עו 1כנרנופ. .1 115 ,10181005 . . וזה רוהו/זדפר [רוודו[הו 7 דודה קודרדההדרפתי. דר 6 המודה ורדז5. ו 4 0% 1018:18055 - 160560/18056 | סו | || 65 [[85 [ 61שחמ [מן? 14 4 4 תרשים 29.18: הדוח הרצוי הוצג על המסך מכאן... בפרק וה התנסית ב-1 ₪600 הזכ שהוא אחד הכליס החדשים ב- 6.0 8856 |1508/\. במהלך יצירת דוח פשוט, למדת על השיפוריס שתוכל להכניס במראה הדוח, ועל שיטות למיכון פעולות הדפסה וייצוא דוחות. כמו כן סקרנו את הכלי להפקת דוחות הוותיק 8600768 |50₪/ז6. מידע נוסף תוכל למצוא בפרקיס באים: + | מידע על שימוש ב-|₪669 וב-סזס)\ להפקת דוחות תוכל למצוא בפרק 22 שימוש ב-015 לשליטה על יישומים אחרים. * מידע כללי אודות מסדי נתוניס תוכל למצוא בפרק 24 יסודות מסד נתונים. + מבוא לשימוש בטכנולוגיית 400 לאחזור נתוניס, תוכל למצוא בפרק 28 גישה לאובייקטי נתונים באמצעות פקדי אס6עוז6. פרק 29: הפקת דוחות | 793 חלק 7 6 ובּפו/ והאינטרנט ]וז 6 1 1\ >ו ו + פרק 30: שימוש ב-10%ז856\ + פרק 31: מסמכי א6עו46% + פרק 32: 83516 ו50ו/ ושימושים נוספים באינטרנט 55 10 שימוש ב-12%ו856/\ פרק 30: שימוש ב-856007\ | 797 פרק וה פותח את החלק הדן ב-8856 |508/\ ב-60/)\. ט6/)\ הוא אחד הנושאיס הייחמיסיי בעולס המחשבים של ימינו. רשת ה-60\\ - קיימת אומנס מזה שנים רבות, אך עד לפני שנים מועטות היא נסתרה מעיני הציבור הרחב, ושימשה בעיקר את המגזר האקדמי. כיוס נוצר רושס שלכל אחד יש דואר אלקטרוני (8א-5ם) ואתר פפש\. הפרק ילמד אותך דרכים ליישוס הידע ב-8856 |%508 במסגרת ה-69/\. הוא גס מהווה מבוא לשפת +קוז856/\, שהיא נגזרת 88516 |1508/\ המשמשת לתכנות בסביבת 60\\. מבוא לשפת 12%ו856\ פרט לגרסת כלי הפיתוח העצמאית, 88516 |פטפו\ מוצעת במספר גרסאות נוספות. אחת הגרסאות היא (88/) 5ח0ס80סו!סק זס1 88516 |508ו/. גירסה נוספת, שחשוב שלא להתבלבל בינה לבין 084 היא 80886ח18 560008 8856 |1508\ המוכרת בשמה המקוצר 560% /. טבלה 1 תביא תיאור מקוצר כל אחת מהגרסאות. טבלה 30.1: השוואה בין ₪856 |8טפו/\, 88ע ו-+8560/ 6 |08פו/\ | סביבת פיתוח עצמאית אשר מאפשרת למשתמש בה להדר קבצי ביצוע, פקדי 606% וקבצי 1ופ 8 | גרסת 8856 |8טפו\ המיועדת לשימוש ביישומים כגון |66אם, 466655 ו-סופו/\. החל בגרסת 97 01666, השפות ₪856 [1508/ ו-88/ נעזרות באותה סביבת פיתוח משולבת - 105 (זחסוקס!6/6כ 8160זס6חז +חסההחסזוטח= 5% | גירסה מצומצמת מאוד של 8856 |1508\ שבשימוש יישומים כגון זסזס|קא= 66ח67שח1, זפ/567 הסספהוסזח1 6%חז66ח1, אססוסט0 אספסזסו ו- חהסק56 פשססחו\ עוצמת ז10ז856/\ אינה מתקרבת כלל לעוצמות 8856 |508ו/\ ו-84/ והיא גס אינה כוללת סביבת פיתוח משלה. מגבלות אלו הוטלו על השפה בעת עיצובה. אך עוצמתה אינה טמונה בשפה עצמה, אלא באופניס בהסם ניתן להשתמש בה, למשל: + עמודי ט6/\ - ניתן לשלב קוד 85606/ המיועד לשימוש בצד הלקוח (5/06-%ח6ו|6 6 %ק050/) בעמודי פס\\, ועל ידי כך להקנות לעמודים אלה יכולות הדומות לאל לאלו שביישומים. + 78005 :507/60 6ש260 (דפי שרת פעילים) - קוד 85606/\ המיועד לשימוש בצד השרת (6006 85670%/ 567/61-506) יכול לשמש ב- 28065 56/0 6006 כדי לאפשר יצירת עמודיס כאלה ושינוי תוכנס לפני החזרתו ליישוס הלקות. + ₪056 560000 פוססחו/\ - ניתן להריץ 561% הכתוב ב- 8856 |508 משורת הפקודה של 05כ, כפי שמפעילים קבצי אצווה. יכולת זו מאפשרת למכן ביצוע מטלות מסוימות. 8 סדנת לימוד 6.0 8\ שיפורים ב-60/\ בעזרת 10%וז856/\ +56 נועדה בתחילה לשימוש באינטרנט. האינטרנט היא רשת פיסית של מחשביס. אך בעת שאנשיס חושביס על המושג אינטרנט, הס נוהגים להתייחס ליישומיס מסוימים הפועליס בה ולא על הרשת עצמה. להלן כמה מיישומיס אלה: > טש6ש/\ 66ו/\ ש!זסע\ - אוסף מסמכים אינטראקטיבייס הניתניס להצגה באמצעות דפדפן (זספאוסזם 60/)). מסמכיס כאלה יכולים להכיל מידע חדשותי, נתוניס ותוכניות שאותן תוכל להוריד (ססוחווסס) למחשב שלך. > 5-8 - דואר אלקטרוני המשמש להעברת מסריסם למשתמשיס ספציפיים. + 0005ז50עצ6א - קבוצות דיון המשתמשות במבנה לוח מודעות שבהן ניתן לפרסם שאלות ותשובות העוסקות במיגוון נושאיס רחב. * 608% - תוכנות המאפשרות לקיים תקשורת חיה עס משתמשים אחרים המחובריס לרשת, תוך שימוש במסרים כתובים, בקבצי קול ובאותות וידאו. > העברת קבצים וגישה למחשבים מרוחקים - העברת קבציס למחשביס מרוחקים (על ידי שימוש ב-קז - |7706060 ז06פחפזד ₪16 - פרוטוקול העברת קבצים) וגישה למחשב מרוחקים (על ידי שימוש בפרוטוקול 6ח!16). השימוש ב-ס6/\ 06ו/\ ס!זס/\ הוא בוודאי אופן השימוש הפופולרי ביותר ב-ט6/ו. רעיון ה-65/\ 66ו/\ 6ווסש\ נהגה על ידי 675-166ח867 חוד כאמצעי לשיפור הזיכרון על ידי הכללת קישורים (פאחו1) במסמכים. יישוס הרעיון הוביל לפיתוח 676%0כץ₪ |3פס|ס 6 שהוביל לפיתוח ה-ס6/\ המוכר כיוס, המכיל מיליוני מסמכים. כל קישור מכיל הפניה למסמך מסוים, וגסם מאפשר לעבור ישירות למסמך שאליו הוא מפנה (ומכאן מקור הכינוי אחו|ז6קץ₪ - היפר קישור). המסמכים המקושריס ביניהס באמצעות היפר-קישוריס מרכיבים יירשתיי מידע הנגיש לכל מי שמחובר. +56 /\ בשרת טפ/ש סביר להניח שאתה יודע, מתוך התנסות אישית, כי ה-65)\ הקייס כיום עבר כברת דרך ארוכה מאז הימיס שבהס הוא היה מורכב ממסמכי טקסט המקושרים ביניהם. כיוס, אתרי ס6/\ מכיליםס קבצי מולטימדיה מגווניס ונתוניס הקשוריס למסדי נתונים, ואתריס כאלה יכולים לפעול כמעט כמו תוכניות רגילות. רביס טועניס שהשיפוריס החשוביס ביותר ב-פ6/\ הוכנסו בשרתיס המשמשים בו. שרת 69/\ (זסצז56 ס6))) הוא מחשב שמעביר דפי ט6/\ שנדרשו על ידי דפדפנים. הבנת המושג דרישה ₪600650) היא המפתח להבנת הפעולה של שרתי 60/\. אנשיס רביס חושביס שדפי ס6/\ מאוחסניס בשרת קבצים, אך וה אינו אופן הפעולה המיושס ב-60//. תפקיד שרת 60/\ מתואר בתרשיס 30.1. נמחיש את ההבדלים על ידי דוגמת חיפוש מידע על ויליאם שייקספיר בספריה בה אתה מנוי. תוכל לגשת למדף עליו מונחיס כתבי שייקספיר ולקחת ספר, ולחילופין תוכל להיעזר באחד מעובדי הספריה. פרק 30: שימוש ב-856007/ | 799 שרת 88/\ לקוח 58 תרשים 30.1: כמענה לדרישה לקבל דף 60/\, שרת ס6/\ שולח נתוני !ואדוז לדפדפן כשאתה לוקח את הספר בעצמך, הספריה משמשת כשרת קבצים ואתה מבצע פעולת גישה לקוב\ (ספר). כשתפנה לאחד מעובדי הספריה, הוא ישאל אותך שאלות הנובעות מתוך הידע המקצועי שלו, ויציע הצעות המבוססות על התשובות שתענה. במצב כוה העובד מתפקד כשרת פ6/ו, בכך שהוא מבקר את הגישה שלך לקבצים (ספרים). הערה: ה"שפה" שבה "מדברים" ביניהם דפדפנים ושרתי 60\\ נקראת 66ד זפסץ₪ (0%060זק זט)פח3זד (שדד₪ - פרוטוקול העברת היפר טקסט). משוס שכל הדרישות מועברות לשרת 6₪//, מתאפשר לו לשנות את המידע שמותחזר לדפדפן באופן הרצוי. אחת הדוגמאות היא הכללת נתוניס הלקותחיס ממסד נתוניס בדפי 60/\. ניתן לבצע פעולה כזו על ידי שימוש בתוכנית שתפעל בשרת, תטפל בנושא הגישה למסד הנתונים, ותחזיר נתוניס תוך שימוש במידע שיהיה מובן לדפדפן. האופן בו 1670508 מספקת יכולות כאלו למפתתי 88516 |8טפו\ מוכר בשס ]567/68 606 5 (5\ - דפי שרת פעילים). טכנולוגיית 45 מוצגת בתרשיס 30.2. שרת 8ם/\ | |==-= 1 קטע ק|7| == == = שנכתב ==== ו ב- | , . 8 50/0 6עווסת א ו =----> ==----4 > | : מתבצע לב ששו כ =שחשש שרת פאס לקוח פפ תרשים 30.2: השרת מבצע 560% שב-455, לפני השבת התוצאות למשתמש טכנולוגיית 450 היא טכנולוגיה חדישה וחזקה, שחשיבותה רבה מספיק כדי שנקדיש לה פרק שלס בספר זה, נספח 4 דפי שרת פעילים. 0 סדנת לימוד 6.0 8\ 50% / בדפדפן בנוסף לשימוש בשפת +0ו8567/ בשרת 60/\, ניתן להשתמש בקוד 8566/ גם במחשב המשתמש. כדי שיתאפשר לך להבין כיצד מתבצעת פעולה כזו, תידרש להבין מעט יותר בשפה שבה כתובים דפי ט6\\: שפת וואדו. שפת ואד ששמה מורכב מראשי התיבות 6ַבַּטַפַח13 קטאזגי! 6%6לוססץ מורכבת משילובי תוויס המהווים קודי עיצוב, המאפשרים למחברי מסמכים להגדיר 5חווזססץז ולעצב טקסט. שפת ואד היא פשוטה יחסית להבנה, גם עבור משתמשים חדשים, כפי שניתן לראות בדוגמה הבאה: <> < דך0%=/> |6ח8ק ססעש 6|קרח58 3 15 פוחד <"2+" = 525 דס=> <חם><חם> <8/> שו שס[חס טסץ 6קסח 1 <8> <ה/> |6ח >סו61 <"זו.60.והחה-0סח. וצו /:קת" = רו ה> :>חוווססעח 3 15 פחוצוסווס+ חוד ]ודו מכילה את הטקסט שיעוצב ואת ההגדרות שתשמשנה לעיצוב הטקסט. תוכנת הצגה מיוחדת הקרויה דפדפן (ז6פאוסז8) מפרשת את קודי העיצוב ומציגה את עמוד 0 \ המוגדר על-ידם. בתרשיס 30.3 תראה עמוד 60\\ שנוצר על בסיס קובצ ואד שהובא בדוגמה, כשהוא מוצג בדפדפן. ]| 85וסצ ]8‏ ₪0 אסש ‏ 08ם ‏ 6ו] | | ו ו |<םן. 8 |] 80065" 586800 | שחסה | 688/פת קסופ בס 0 | | |[ ואו כ [ 66] 8660655 | 0361 ס60צ\ !580 3 18 פוחד ₪ צָס[ח6 טוסץ 6ססח | != שו אהוחפסעת 8 5 סהואוסווסז פד חס עו ₪ תרשים 30.3: לכל מי שהשתמש במחשב בשנה-שנתיים האחרונות יצא להיתקל בדפדפן מפתתי 88516 |1508/\ טוביס לא יתקשו להבין את יסודות שפת |ואז. הדוגמה שהובאה לעיל הכילה כמה קודי עיצוב המכוניס תגים (1805) בטרמינולוגיית ‏ \ואזח. לרוב האלמנטיס העיצוביים בשפת וזח הוגדרו נקודות התחלה וסיוס שמצוינות על ידי תגיס מתאימים. לדוגמה התגים <8> ו-<8/> מוריס לדפדפןו שאת הטקסט ביניהם יש להציג בכתב מודגש. פרק 30: שימוש ב-856007/ | 801 טיפ: תוכל ללמוד אודות שפת |אזה גם על ידי הצגת קוד המקור של דפי 6₪)\ ר" החביבים עליך. להצגת קוד המקור עמוד בעת שימוש ב-זפזסוכאם ז6חזסזח1, לחץ לחיצה ימנית על שטח ריק בעמוד ובחר מהתפריט תלוי ההקשר שיוצג, את הפקודה 66זט50 שסו/. כיוס מוצעיס ספרים רביס ומקורות מידע מקווניס רבים, שמהס תוכל ללמוד אודות שפת |וזדו. טבלה 30.2 תפרט את האלמנטיס השכיחיס ביותר בשפת וואדח. טבלה 30.2: תגים שכיחים בשפת |ואדח <0%0 00!2ם= ך | 66ִחְה50=1 1₪6> לציון תחילה וסיום מסמ < |ואדת/> < וואד> לציון תחילה וסיום ראש המסמך (₪68067 <סב=ה/> <0ה=> כותרת הדף המוצגת בראש המסמ <ם |דנך/> <ם |דזו> לציון נקודות התחלה וסיום גוף המסמך <ץ800/> <צ800> ץססם לציון תחילה וסיום טבלה (6|פפד <ם |48ד/> <= | ד> ביחד עם תג <> |1/\8> מגדיר שורה (שס₪) <חך/> <מך> בטבלה ביחד עם תג <ד> מגדיר עמודה (חוחט|ס6) <סד/> <סד> בטבלה מגדירים נקודות התחלה וסיום טופס (חזזס=) <6ו8ח 60000 = 600 [זט= 36000 > <ן08=/> פריט קלט בטופס מגדירות מאפיינים שונים של הגופן הפעיל, <דא\0=/> <ד\0=> כגון צורת אות וגודל אות 2 סדנת לימוד 6.0 8\ הערה: 0 זסזס|כאם 66חזסזח1 תומך גם בשפת ווזד דינמית ( !אדפ - \ואד 6וההחץפ), שמציעה למפתחים מיגוון יכולות רחב יותר בפיתוח דפי |אזה, היות והיא מאפשרת גישה לתגי |ואדח מתוך קוד תוכנית. קודי ₪11 שפורטו בטבלה 30.2 הס רק חלק מכלל הקודיס שמוגדריס בשפה זו. בנוסף ניתן לקנן קודים באופנים שוניס, כדי להפיק תוצאות שונות. שפת 4791 אומנס כוללת מיגוון יכולות מעניינות, אך היא חסרה את העוצמה של שפות תכנות רגילות. למעט יכולת לאפשר מעבר למסמכים אחרים, ולהעברת נתוניס מהטופס לשרת, שפת אד הסטנדרטית אינה מאפשרת לבצע פעולות כלשהן. אך ניתן לצרף לקבצי וא קוד 56706, שירחיב מעט את מיגוון היכולות. ניתן לשלב 560% בשפות 856000%/ ו-+256710 ב- ||אד₪, כאשר קוד כזה יהיה תחום בתגים <568₪177>. קטע הקוד הבא מדגים שימוש בשפת +ק8561/\ להצגת תיבת הודעה: <"00ו2507/\" = 800806 ]| ךק561> ו חח וחוס ("!ס|ו6" ,650 סע ,"?06ו5 ץר אפוע ס6 6או! טסץ סוטס/\") א0 150 = זסצופחההח הסח ד סאפ = זסצ\פח הח +[ "!6|56 6זסחהשוס 50 טסץ 0ח56 ווו\ 1 הסח ,|וס/\" אס 5 "60 6זסתטסח. עו /: קה" = חהסחפּסס |.צוססחו\\ 0 5 < 50₪177/> <8>< דך\0=/> שח ססעש 6|קרח58 3 15 פוחד <"2+" = 5725 דס=> <חם><חם> <8/> חו שס[חס טסץ סקסח 1 <8> <2/> |6ח >סו!6 <"זו.60.והח0-3סח. שטצוו//:קשת" = רו ה> :>חווזססץח 3 15 סחוצוסווס+ חוד מסמך ואד שהוצג כאן מכיל 56176 הכתוב ב-8566/ בתחילתו. כאשר הדפדפן מתחיל לפרש את תגי ואד שבבקובץ, הוא נתקל גם ב-5676 ומבצע אותו. בהמשך הפרק יובאו פרטיס נוספים על שימוש בשפת +856710/ בדפי ט6/\. פרק 30: שימוש ב-85007/ | 803 כלים לעבודה עם 12%ז856\ כדי לעבוד עם 8560%/\ נדרשיס מספר כלים. הסעיפים הבאים יכללו תיאורים קצריס על מספר פריטיס שיקלו עליך את העבודה עס 85606 /. 6חושחם שחהוסקוז56 ₪ קוד 560% מתורגס על ידי 6חופחם פחטקוז56 (מנגנון טיפול ב-ז560) כלשהו ומבוצע על-ידו. 6חוְפָחם 8ַח0קו56 המשמש לעבודה עם 08560076 הוא קובצ ששמו 5 שמאוחסן בתיקיה ח506ץ5\פשססחו/צ\. 8560%/\ מותקנת במסגרת התקנת יישומיס הנעזריס בה, כגון זסזס|קאם 6%חז6לח1, אסססטס, הססהוזס)ח1 6%חזס%חך ז, או 305% פַחקוז56 פוססחו/\. במשך השניס שוחררו מספר גרסאות 0% 856/. הדוגמאות שתוצגנה במהלך פרק זה לא תעבודנה עס גרסאות שלפני גירסה 3.0. אס תרצה לבדוק איזו גרסת 0%ו856/ מותקנת אצלך, לח לחיצה ימנית על קובצ וו5606.0/ בסייר פאוססחוש\, ובחר את הפקודה 65ו6קסזש מהתפריט תלוי ההקשר שיוצג לפניך, כמתואר בתרשים 30.4. [?] סז !41 .זוז /י ן הסופזפ ל | |3זפח ₪ 6 -,- תסופזפ שו ]קוזס ₪5 [ז] +]ס5סזסו4? :הסקוז 55 3 .פס +/ס9סזשו%4 %> זהטוזעקס שחוטוזעס סו הוסוזבותזס/חו הסופזששי זסחזכו :הברו הז =רחם: 1 ערוםי-קרת = רחב 1 [בהזזסזהו! 6בווטזב 1 שרחה -ז=!ו= [ב חווטו ו רחב 4 )כו ווםז] | סנס תרשים 30.4: ודא שאתה משתמש בגרסת 0%ח8567/ העדכנית ביותר, על ידי עיון במאפייני קובץ | |ס. דק85681/\ אינדיקציה נוספת לכך שגרסת 8560%/\ המותקנת אינה עדכנית, מתקבלת בצורת הודעת שגיאה המוצגת בעת ניסיון לשימוש בקבוע פנימי 60050800 6ופחוזטח1), מפני שגרסת +0ו8567/\ הראשונה לא תמכה בקבועים כאלה. אס תרצה להתקין את הגירסה העדכנית ביותר, תוכל להורידה מהאתר 0% 0500.600//956ז6וח. ואוו / :קשח מאתר זה ניתן להוריד תיעוד של שפת 06ו856/, ואת הגרסאות העדכניות ביותר של מנגנוני הטיפול ב-10%5ז50 (פ6ַחופָחם פַחהזסו567) שאותס תוכל לשלב באתר. 4 סדנת לימוד 6.0 8\ יישום מארח יישומיסם שבהס ניתן להשתמש ב-85600/ מכונים יישומיס מארתחים (4₪0565). השכיחיס ביותר הס זסזס|קאם 66חז6ח1 ו- זסע567 הססהוזס)חה1 6%ח6סח1. גס אסססטס משתמשת ב-06ו856/ כשפה לכתיבת מאקרוס. 670504 החלה לאחרונה בשיווק מוצר המכונה 567/68 8ה56000 פשססחו/\ המאפשר להשתמש ב-%85600 על פלטפורמות רגילות מבוססות פ5אוס6חו/\, כדוגמת 95 פשססחוצ\ ו- דא פטוססחוש. הערה: זסזס|קאם ז6חזס%ח1 משמש כמארח עבור קוד 06וז856/\ שפועל בשולחן העבודה של המשתמש. כיום לא ניתן להשתמש ב-85610%/ בעת עבודה עם זססֶהּאָוטהּ\! 6056806 אך ניתן להשתמש בקוד +8560/ ב- 28065 ז567/6 26006 שפועלים על חסטאהזס)ח1 ז6חזסזחז 5 ומאפשרים ליצור דפי ואדה שאינם תלויים בסוג השרת או דפי 1אז₪4 המיועדים לשימוש בשרת מסוג מסויים, תוך כדי פעולת היישום. שפת %85670% אומנס פועלת באופן ואהה על פלטפורמות שונות, אך יש לזכור שיישומיס מארחיס שוניס חושפים אובייקטיס שוניס בפני 85606/, כך שיש פקודות 5% \ שתפעלנה בעת עבודה עס זפזסוקאם 6%חזססח1 ולא תפעלנה בעת עבודה עס 5 הס 8וז0ס)ח1 6%חזוסשח1 או להיפך. עורך טקסט אנשיס רביס הנוהגיס להשתמש בשפת 85670%/ בדפי ט6/\ נוהגיס להשתמש בעורכי טקסט פשוטיס לשם עריכת ה-5606, ואת היות של שפת זמו856/' (עדיין) אין סביבת פיתוח משולבת משלה. מכך משתמע שכל הכלים המועילים שבהס אתה נוהג להשתמש בעת עבודה ב-8856 |1808 אינס ומיניס לשימוש בעת עבודה עס 0%ח56פ8/. עליך להקפיד על שימוש בכתיב נכון בטקסט שאתה מקליד ועל עיצוב נכון שלו. כיוס מוצעות תוכנות מתקדמות כגון 6ו65וחסו] אשר מסייעות בהונת הטקסט, בכך שהן מיישמות שיטות הצגת טקסט תוך שימוש בצבעיס שוניס, והן כוללות לחצניס המאפשרים להצין פקודות שכיחות בעזרת לחיצה יחידה על לחצן. |[<|? | 1 .36 פור!] חס ]קוזס5 6\]! חן ספזגוססס ₪35 זסזזס ה / ב1) 5 6חו] 4 :08 ]ה 0ו313 60וסטקאם | מסחם 8 ₪066 ?306 )הפזזגוס 06 הַופ36 סז וחפוש גופץ סי תרשים 30.5: כאשר מאותרת שגיאה בקוד, זסזס|קאם 6%חזסזח1 מציג את מספר השורה שבה אותרה השגיאה פרק 30: שימוש ב-85007/ | 805 בהקלדת טקסט, ניתן להשתמש בתוכנות פשוטות לעריכת טקסט, כגון 80קזסא, אך אני ממליץ להשתמש בתוכנת עריכה שמציגה מספרי שורות כגון ע06 זסזח1 |1508/. ואת היות וכאשר מתרחשת שגיאה, זסזסוקאם 61חז6שח1 מחזיר את מספר השורה שבה אירעה השגיאה, כמתואר בתרשים 30.5. אס תעבוד כאשר הדפדפן ועורך הטקסט פתוחים במקביל, תוכל לעבור ביניהס בקלות ובמהירות. זהו אחד האופניס בהס אתה יכול לנפות שגיאות: ערוך את הקוד ושמור אותו, ולאחר מכן לח בדפדפן על לחצן ח₪61765. כלי 69/\ מתקדמים אם יימאס לך לעבוד אך ורק עס עורך טקסט, תוכל לנסות לעבוד עס כלים מתקדמים יותר, כדוגמת אלה המפורטים להלן: + 6בק |0ז6000 6%ע460 - תוכנה מתוצרת 11670504 שמופצת בחינס. היא אינה מתקדמת מאוד, אך מאפשרת להציב ערכים במזאהה 1 0!355 של פקדי א6ע₪60. ** 6המַבק:ח0]] 116705016 - תוכנה ליצירת דפי 60/\. 6הַקשחסז= מכילה 5600% 0זהקו\ שיוצר קוד 856106/, ומקל על העבודה עס פקדי א6ע60\ ושיטותיהסם. + צ006ז0+ח1 0501%ז116 - מוצר נוסף של אס5ססווא, המיועד יותר לשימוש מפתחים של דפי פ6/\ הקשורים למסדי נתוניס. התוכנה יוצרת קוד 8560%/. + 50% 6]60% +86ו10%6 - ערכת פיתוח תוכנה ()א +הסוחסס|6ע6כ 6ז50/08) הניתנת להורדה מאתרי 67050%ו1\. הערכה כוללת דוגמאות קוד, חומר הדרכה ותוכנות עזר לעבודה בסביבת ט6/ש. שפת 2%ןו8561/\ כאשר משוויס בין 856/ לבין 8856 [508\ הסטנדרטית מתברר כי 85076 היא גירסה שלדית כמעט ייעירומה'" של 8856 |8טפו. אך חשוב לזכור שהיא נועדה להיות כזאת, עוצמת 8856 |1508/\ נובעת מהסביבה בה ניתן להשתמש בה, ומהאובייקטיס שבהס היא תומכת ולא מהשפה עצמה. כך שלמי שרגיל לעבוד עס 88516 |1508/\ יידרש שינוי מחשבתי מסוים כדי לעבוד עס +856710/\. עבודה עם משתני +חבּויוב3\ בלבד ההבדל הבולט ביותר, כנראה, שקייסם בין 8856 |1508/ לבין 856110 הוא העובדה שכל המשתניס המשמשיס בשפת 8567106 הס מסוג %ח8וז8/\. להלן כמה דוגמאות של שורות חוקיות להצהרה על משתניס בשפת +856710/: 506 51 וחוכ זס סח וחוס (2,5)ץ8זוהץרח וחוס 6 סדנת לימוד 6.0 8\ +56 /\ אינה תומכת במילת המפתח 45 שמשמשת ב- 8856 |908ו\ להצהרה על סוגי משתנים. ניסיון לשימוש במילה 45 ב-5606 יגרוס לשגיאה. חוק שח8וז8/\ בלבדיי תקף גם לגבי משתניס המשמשיסם בתת-שגרות ופונקציות: (ך₪,ק68!610%0765 הססס6חט= ך**ק = 68|61050765% חסססחט- סחם הפרמטרים של הפונקציה 65%ז06ח68!61 והערך המוחזר על-ידה הס מסוג זחפוזה/\, כך שקטע הקוד שקרא לפונקציה יכול היה להציב את המחרוצת 'סו|6ח'י באחד הפרמטרים מבלי לגרוס לשגיאה תחבירית, אך הצבת ערך כזה היתה גורמת לשגיאת הז 8ו] 6קץד (אי התאמה בין סוג משתנה לבין פעולה) בעת פעולת הכפל. מסיבה זו אני ממליצץ בחוס להקפיד ליישס את כללי מתן השמות למשתנים, הנהוגיס ב- 8856 |1808/. ניתן גס לשלב הצהרת זוסו|קא= חסטק0ס בקטע 168067 של דף טפ/ו, כדי לאלצ להצהיר על משתנים. 5% גס תומכת בכמה פונקציות המשמשות לזיהוי סוג הערך המאוחסן במשתנה. פונקציות אלו תפורטנה בטבלה 30.3. טבלה 30.3: זיהוי סוגי משתנים בשפת ז0ו856\ (6הההחזהּ/)6וחהּ\6כץד | מחזירה תיאור סוג חסטסחט?... ()15 | מבצעת בדיקות לגילוי סוגי ערכים ותנאים מסוימים קטע הקוד הבא יציג את מחרוזת תיאור הסוג התואמת לכל פריט במערך מסוג +חפוזה\: (5)ץ8זזהזהע וחוס | חחום "0חו50 8 15 פוחך" = (1)ץ8זזה\ 6 = (2)ץ8/\]8/\ "12/25/1998%א" = (3)ץ8ז]]זה\ 0 = (4)ץ8ז8/\ |וט\ = (5)ץהזזה\ 5 סף 1 = ו וחוס ((1)ץ8זו\/זה\)סרהּ\!סקץד 8 " 6 ז0 5 ".8 | ,8 " 666% ץפזוה" אס 150 כ שיס לב לאופן השימוש בפקודה זס בהצגת המערך. בשפת 8561106/ לא ניתן לצייו שס משתנה לאחר פקודת )א6א. פעולה כזו תגרוס לשגיאה. פרק 30: שימוש ב-%856007 | 807 גישה למערכת הקבצים 5% \ כוללת מספר פונקציות שמחליפות פונקציות רגילות של 8856 |150\ או מבצעות את הפעולות המבוצעות על ידי אותן פונקציות אך באופן שונה, המיועדות להבטיח ש-5671005 לא יזיקו למחשב שלך. תחוס הגישה לקבציס הוא אחד התחומיס שבו קיימיס הבדלים ברוריס ביניהן. ל-06ו856/ אין פקודות לביצוע פעולות קלט ופלט של קבצים, כדוגמת אלו שתוארו בפרק 21. בשפת 85670%/ פעולות הגישה לקבצים מבוצעות על ידי שימוש בשיטות אובייקטים מיוחדים. האובייקטיס המשמשיס לעבודה עס קבציס בשפת 10%ז856/\ מפורטיס בטבלה 30.4. טבלה 30.4: אובייקטי 85617 המשמשים לעבודה עם קבצים קובץ במחשב מקומי זו | תיקיה (תיקיה) במחשב מקומי 6שוזס | כונן במחשב מקומי וח68ז%50אד | אובייקט המספק יכולות קריאה/כתיבה סדרתיות 165500 | אובייקט המייצג מערכת קבצים שלמה, משמש להפנייה אל כל האובייקטים שפורטו בטבלה לביצוע פעולות גישה לדיסקים וקבצים יהיה עליך להשתמש בשיטות ובמאפייני האובייקטים שפורטו בטבלה 30.4. האובייקט התחשוב ביותר מבין אלה הוא 5 65!ו=. יהיה עליך להשתמש בשיטה ‏ 07680600[606 של 06ו856/\ כדי ליצור ייחוס לאובייקט כזה, כפי שהדבר נעשה בדוגמה הבאה: ("+020[66רח506 1165 סח 5071" )6768060060 = 5=(טס 56% אובייקט מסוג זה מציע למפתחיס מרושעיס דרכיס שתאפשרנה להס לפגוע במערכת שלך. וו הסיבה שבעטייה בכל פעם ש-856106/ מבצעת ניסיון גישה לאובייקט חיצוני, זסזסוקאם 6%חז6זח1 מציג הודעת אזהרה, כמו זו המוצגת בתרשים 30.6. | ו גוס 00 .53]6חווו 6 3 2306 5וו חס זסשופס %פצווס ה חם | כל 7 ?ןס עם 30065560 6ם חב 6קו|בוווחו סז זו אוסו|ה סז חבש ה תרשים 30.6: זסזס|קאם 6%חזסזה1 תומך בכמה הגדרות אבטחה (085ח/(560 50000 ך המיועדות למנוע מ-56108 ופקדים מזיקים לפעול על המחשב שלך 8 סדנת לימוד 6.0 8\ תוכנית 30.1 מציגה תאריך ושעה שבהס משתמש ביקר בפעס האחרונה בדף 60)\. היא מנהלת מעקב אחר נתוניס על ידי קובצ דאד. ד151/\ד45/ | שבתיקיה פ\וסטחו/\. פתח את הקוב ב- זפזס|קאם 6%ח%67ח1 ולחצ מספר פעמים על ח₪6765 כדי לנסותו. תוכנית 30.1: .₪5 |8571/\ - גישה למערכת הקבצים על ידי זסזס|קא= )6חזספחז. < ||וזדר]> <0כ\=> <"00ו2507/\" = 800806 ]| ךק561> 6 |קאם אס דסס--!> 060 500ש65!וז' = 65[סס וחוס פס פון=' 6וו[פס הזוס )א ד' 5 דנטס חחוס 6 ס)חו 66 סט חְזבק' 6 0ח51 הזוס חסוהוחזס)חו 6ז0ס56 0ף 560 6!סהבּ/' 510 וחוכ ההח5/506 6| |068| %6 0+ 701676006 8 0806ז0' ("066 5/5060 6!ו. חס 50" )676860066 = 5=(סס 56% 6600 5\וסוסהועע 606 חו 16 60 ההכ 6הוותזסזסכ' "דאד. ד151/ 45 ]\" 8 (0)ז0106-|5.060506618=[פס = 6ון10ח51 6% 01 6חו| 3 680 הסחש 61505 סוה ]זי הסחדד (6!ו-505)51010ום ס!ו=.%6[טס +[ (6|ו6)51010!ו-00[15.0607 = 00[0!6 56% 2 = שחו ,1 = 68008 (1 )650708 [5ח6.006ו[פס = ונטס 56% ()6חו |ו00[05.₪680 = 10ח51 06 6 "!06076 5166 סע פור ס6סופוע ז'הסטבת טסץ" = 0זח51 6 ד,6!ו-10ח51 6ון-א6 5.0708007)[סס (6|ו6)51010!ו-00[15.0607 = 00[0!6 56% + 0חם צ\סוסחוצ\ זספ/טסזס 606 0ף 655806 בסו "<ם>" .8 51010 בחז/\.+חסותטססכ 6וחו) 6% זס) 6!ו 66 חן 1655806 שוסח 6606 "!086 6וח6|60/\ .<8/>" .6 צוסא\ 8 "<> 5צ\ זופו/ 35%| זטסץ" = סוח51 2 = הט /\ ,1 = 68000 (2)ח150768א6 [5ח6ק6.0!ו[פס = 6)[סס 56% (6)51010חו |6פחז/\. פוטס 00 ורס = 00[65 56% <-- < [50₪10/> <סגשח/> < |וחד/> פרק 30: שימוש ב-856007/% | 809 +50 \/ ב- וסיוסוכןאם 6%הווסזח1 הסעיפיס הבאיםס יילמדו כיצד לשלב קוד 0%ו856/ המיועד לפעול ביישוס הלקות 85600 / 5106-%ח6ו!6) בדפי ס6/\. 856106 יכולה לפעול גס בשרת, כפי שיתואר בפרק 0. קוד הכתוב בשפת 856166/ שפועל בשרת אינו תלוי בסוג דפדפן מסויס, אך קוד + /\ המיועד לפעול ביישוס הלקוח דורש שאצל המשתמש יהיה מותקן דפדפן מסוג זסזס|קאם 66ח67שח1. לעת עתה, דפדפני חברת 6156806 אינסם תומכיס בשפת 5%/\, כדאי שתזכור עובדה זו בעת כתיבת קוד בשפת 856710 /. אירועים ושגרות בעת כתיבת קוד 8856 |508ו/ נהוג להגיב על התרחשות אירועים על ידי מיקוס קוד בשגרות אירוע (65זו660סזק +חסעם). ניתן לכתוב שגרות אירוע גם בשפת 85606/, אך כתיבתן אינה פשוטה כפי שהיא בעת שימוש ב- 8856 |1508, מפני שהשפה אינה תומכת במשפטי ההצהרה הדרושים לשם כתיבתן. כדוגמה נתייחס לקטע |וואדה, שמגדיר שני פריטי קלט בטופס, תיבת קלט (תיבת טקסט) ולחצן: <526=20 "8|06="5100/\ "306 350% 0אס"=6החהּ\ "זאס6="6מעד דג\קן> <"68!60|3000 סוק" = 8[06/\ "068|001806רח6="6חחהּא\ "הסאטם"=6מץד דנוקאז> משוס שהגדרת שמות לשני פריטי קלט אלה, כל שיהיה עליך לעשות כדי לכתוב שגרת אירוע לטיפול בהם, הוא לכתוב שיגרה (פחטטסזפט5) בשפת 85670%/% תוך שימוש בשמות האלמנטים ובפרמטריס המתאימים. לדוגמה, על ידי כתיבת שיגרה בשס ( )א6ו|60ח0 6ז6668|60|8, תוכל לגרוס ל- זסזס|קא= 66חזסזח1 לבצע קטע קוד מסויס כתגובה לאירוע לחיצה על הלחצן. תוכנית 30.2 משתמשת באירועי +0ו856/ לחישובי ריבית פשוטים. תוכנית 30.2: |זד.85/= |קוי51 - שימוש ב-856176/ לגישה לפריטים בדפי ט8/ו. < ||אד> <סחפה/><ם 1 ד/>85606/\ 01 6|קוח8א6 6וקוחו5<ם |דנד> <פגשר> <"00ו2507/\" = 300806 ]| ךק561> --]> (ך₪,ק68!610%0705 הססס6חט= ך* ₪ * ק = 68|6100076050 חסוססחט- סחם ()אסו01ח0 806|ט068|0ח6 5 [הקוסחוזק! וחוס 06 חחוס 5סצח חחוס הזוס 0 סדנת לימוד 6.0 8\ (6ט81/. |הקו6חו7 8000 61 = |הקוסחחזקו (6|ה/. )6 = 6זהה|סט (6ט|6./8רחו [0אס)%ח61 = 5זהסצח (5זה6ח ,₪3%6ו00 , |הקוסחוזק])000705%ה68!61 = %0705%חז0 (610%067650) 6 הרוס 86 " 15 6665%ח1 זנוסץ" אס8 וו טט5 0חם ()608006ח) 00%806 טט5 0 / 6ט|4906.\8) = סטן04806.\/3 הפחד 1 < (6טן6.\/3ז₪8+ס)\סס6 +ז טט5 0חם <-- < [50₪10/> <ץ800> <8ם> <> <"6="100000|ה/ "|הקוסחחק)א6="6רחהּ\ "זא6 ד"=6כעד דנוקא1> :[הקוסחוזק זס%6חם= <8ם><"06="0.08|ה/ "906 )0)ס"=6חבּ\ "לא ד"=6קץד ד(\קא1> :₪906 .16 זסזחם= <3|06="20"<>87/ "סו [)אס"=6רחהּ\ ")אסס"=6קעד דנוקצ!1> :פזהסץצ חו סוחודך <"ז06705ח1 6="68!001866ט81/\ "068|60|806רת6="6רחהּ\ "הסשטם"=6מץד דוקצן> <ץצ800/> < |וזדרן/> הערה: הקוד שבתוכנית 30.2 כולל התייחסות לפריטי קלט בטפסי |אזה, שעבורם מוגדרים מאפיינים ושיטות השונים מאלה המוגדרים עבור אובייקטים 0%ו856/. לדוגמה, הקוד פונה למאפיין 6טו3\ של תיבת הקלט במקום למאפיין 6%ז. בהמשך הפרק נביא דוגמת קוד נוספת שבה תראה שניתן לשלב בדפי 60/\ פקדים שהשיטות והמאפיינים שלהם יהיו יותר מוכרים לך. בדף 60\\ שבתוכנית 30.2, דפדפן זסזס|קא= 6%חזססח1 יכול לזאהות את שגרת האירוע שאותה הוא אמור להפעיל, לפי השס שהוגדר עבורה. אך באותה קלות תוכל גס לפנות לשגרת אירוע 61166 אחרת בכך שתשלב את שמה בקטע !ואד שמתייחס ללחצן: <"6זו060סזקץ]"=66ו0ח0) "806|ט6="68!6ט!3/\ "הססטםץוח"=6רחבּ\ "הסאטם"=6קעד דה\קזן> זו שיטה יעילה לטיפול בתמונות בדפי טש6ו)\. נתייחס לרגע לשיטה הרגילה להגדרת קישוריס לתמונות: <2]><")ו806.0 הוץוח"= 56 1]6> <"/ותסס.6ו5שסח.צואצש//: קאח"=-םח > פרק 30: שימוש ב-856007/ | 811 המבנה התחבירי הזה יבצע את הפעולה הרצויה, אך הוא יאפשר רק לעבור לדף אחר. ציון שס שגרת אירוע 61666 בתג 1/6, יאפשר גמישות רבה יותר. שגרת האירוע תוכל להסתייע בקוד 85610%/\ כדי לבצע מעבר לאתר אחר, או לצורך ביצוע כל פעולה אחרת שאותה תהיה מעוניין לבצע: <"00ו2507/\" = 800806 ]| ךק561> 5 ( )1806016660 טפ ("/החסס.6ו5ששסח. וצצש /: כח") 66הטועבּז. צוססחו\ 50 0חם <- - < 77ז50₪/> <"6660ו80601ח1"=א6ו61ח0 "זוס.6סַהותוץות"=5₪6 6ו[> דרך פשוטה שתאפשר לגלות באילו אירועיס תוכל להשתמש בעת עבודה עס אובייקט מסוים, היא על ידי שימוש ב- 6ז28ו/\ 560% של תוכנת שאַקזחסז=. שלב אובייקט מסוג זה במסמך 806ק)חסז= והצג את כלי 280ו// +10ז56 שמוצג בתרשיס 30.7. בדוגמת הקוד הקודמת התייחסנו לשיטה פְהּפוְט8\ של אובייקט זסזס|קאם 6%חזססחז צוססחו)\. | שיטה וו מורה ל- ז6ס|קאם 6%חזססה1 לפתות כתובת ‏ ]|0₪ נתונה. 6ז ו חסותט6סכ היא פונקציה מועילה נוספת, שמציגה תגי ]ואד בחלון הדפדפן: <"00ו2507/\" = 300806 | ךק561> ב "6 1 1 1 סח .6 "15 סח חב 0816 זחה6זוט6 שד" 6ועש. רתוס <-- <ך50107/> :סוס 6פח| .2. )חש חם 56/04 .1 - 6 0 אוסטחוא: ך- 3 5ב /\ והפסוג 98 0 ול 8 וט > סטחואי 7-כ ו וה 1 חח 016817 1 6 הסט 1 וס 0% 1 בו הסט 1 = סוק מז ופי סא סוסה שופ ו >-|- סוס מוסוס כ סוס חספ ופט חמ 6 תרשים 30.7: 0ז28ו/\ 500% 6הָבּק)חסז= מציג אירועים במבנה היררכי רשימה מפורטת של האובייקטיס והשיטות הנתמכים על ידי זסזס|טאם 6חזסזח1 תוכל למצוא באתר 0%6פסלסו₪\. 12 סדנת לימוד 6.0 8\ טפסים טפסים (פוחזס=) הס אלמנטים של ואד המשמשים לשליחת נתוניס חזרה לשרת. קטע הקוד הבא יגדיר טופס אשר יכיל שתי תיבות טקסט: <"05 דוח7?"= | " ד05ק"= פס שו "6.35סוקותזסז"= 60 אחס-> <7ם>:שוסו06 3007055 [%3]-= חב סחחפח זטוסץ זס%ח6 6פהּסוק <> <6ח8\)א=6ההּח 5126=40 6 ך=6קעיד דקא1> :סוחבו <> <|ן8וח6=0וח8ח 526=30 זא6 ד=6קץד דנוקצ1> :!והוחם <ז/507 60 8065 0ח8|6="56/\ 0ח056ח6=6רחהּ4 אותטט6=5קעד דוקון> <\ח0=/> לחצן זוחזטט5 מורה לדפדפן להעביר את כל הנתוניס המאוחסניס בשדות <דוקא1> שתחומים בין תגי <%א08-> לשרת. לאחר ביצוע ההעברה, יישוס השרת (שבדוגמה המתוארת כאן הוא קוב\ 2806 ]567/68 6ש60 בשס 6.850סזקוחזס?) יוכל לגשת לכל פריט שייכלל בטופס, בנפרד, ולאחסן אותו במסד הנתוניס. אך ייתכן שלפני שתעביר את הנתוניס לשרת, תרצה להיעזר בקוד 8560%/ כדי לבצע על הנתוניסם בדיקות תקינות או כדי לבצע שינוייס כלשהס. תוכנית 30.3 מכילה דוגמה לשימוש בשפת 5 לביצוע בדיקות תקינות על הנתוניס שבטופס. תוכנית 30.3: |850₪5.41%/ ביצוע בדיקות תקינות ושינויים בנתונים שבטופס. < ||אחד> <סגשה/><=ם 11 ד/>5וחס- 01 636 6|קוחו5<= וד ד> <פגשו> <"00ו2507/\" = 800806 | ךק561> = ()וחזסי0ורחפ/ו5 5 5 וס 6 55 חחום + חחוס חן3 תוסכ = + 56% אחהופ %סח 5 6וחבּח 6ז5 6א הי חסחדד "" = (6ט81/\. סרחה \אס.1) ודד זז "[חו3ס3 ץז 300 6חהּח זטסץץ ]חס 56הסוק" אסס 50 סטפ זואם 0חם חס 007655 |וב-= 0806וו8/\' ("₪",3|6/\. [08ח50)1.06ח1 = פססח חסחד 0 = פסקח )1 "ןה רחסו 507605076 +10 66 56 6856וש" אסס 50 סטפ זוא + 0חם רס זס 655ח051 85 זספ ץ0|3551' פרק 30: שימוש ב-856007/ | 813 ("הח0ס.", (6ט!8/. | ורס ])6856 50)1ח1 = פססח וס |8 60 חר 60 = וחסס.' הסחד 0 <> פסקה 1 "5155" = 06ץד5\56 6 "חש דס" = 6ץד5\056 + 0חם 0 ווחוס+ ה006וח חו 6כ/ס זספט זנוקי 6 )5 = 6ט|ה/.6כץ ד00561.+ "ורטפ סל ש680 15 הזזס=" אסס 15 סטפ זואם וחזס) 606 א\החטט6' "סק" = 00חה60\ן.1 "06.350זקוחזס)" = הסח6\.+ אוחטטפ.1 ספ 0ח₪ <-- < [ך50₪10/> <ץ800> <חם> < ם> :וסוס ₪6|05 |81 זטס | 56הסוק <חוהּ\\וח7"== !זג אחס-> <> <6ו0\30= 36 5/26=20 20= 000ח6|אהוח 6 ך=6מץד דנוקצ1> :סוחבו <> <|ןהוחם)א=6ההּח 526=30 30= \ח6|אבר זא6 ד=6כץד דנוקצ1> :|והוחם= <6קץ 5017( \060= ףוח ה6ססוחה=6קעד דטקאן> <"סטח ח6="00ט|8/\ ותזסאוותפט6>=5ו61ח0 הסטפ=6מץד דוקאז> <\ח0=/> <ץצ800/> < |וחדת/> ם אזהרה: זכור שלא ניתן להשתמש בשפת 85010%/ בעת עבודה עם דפדפן 6056806\, על-כן ייתכן שכדאי שתבצע את בדיקות תקינות הנתונים בשרת. בתוכנית 30.3 ניתן לראות שרוב המטלות שקשורות בטיפול בטופס מבוצעות באמצעות 06ו856/ במקוס באמצעות שודו. לדוגמה, הפרמטריס אסדד60א ו-ססחדפוו הושמטו משורת ההצהרה של הטופס. לא כללנו בטופס לחצן אוזפט5 מפני שפעולת העברת הנתוניסם לשרת בוצעה באמצעות שימוש בשפת 85670%/. שים לב גס לשדה שהוגדר ח31006 (מוסתר) שבו מאוחסן ערך שלא הוזן על ידי המשתמש. בתרשים 30.8 תוכל לראות דוגמה לשימוש בטופס שהוגדר בתוכנית 30.3. 4 סדנת לימוד 6.0 8\ |< וםןר | זפזס!קא = 61חז6)ח] 050/1ז6ו - >חוזס-] ]ס 6|קחוב3ּא6 6!קחו5 |₪ סו פסהסטם] ‏ 0 אסע אשם פם | אר: 6 5-9 5 | ] 68ההץב | ה568]0 סוחס | 8688 קסופ וס הזר החזס51 0 /5)רוש וסוס כ ע1/ / יפור וש חן וסוס 9|05\ ||8 זטס ||ו1 8856וק וו וד ] "סרחה ]ווח | טחוס פוקס עו ₪ן | תרשים 30.8: +8560/\ מבצעת בדיקות תקינות נתונים לפני שהם מועברים לשרת פקדי א6עו46% בנוסף לשימוש בשיטה 076806006 ליצירת אובייקטים, תוכל להסתייע בתג <08501> לשס הטבעת אובייקטים בדפי ס6/\. תג זה מאפשר להציב פקדי 460/6% בדפי 60)\. אחר תוכל להסתייע בקוד 85606\ כדי לגשת לאובייקטים, כמו בדוגמה לשימוש בתיבת רשימה, שמובאת להלן: < |וד> <ץ₪00> "6510:88021020-5642-1165-9500-00/.006002-3"= 635510 "חן רש0="!5! ד0856> <164=+6100% 152 = ח6ו/\ <06=3|/ 5זה0||5ז50= 6רחבּח ]הק > <6=2ט|ע 50/|6/ץ50|3וכ =6וחבח \ז\/\ק> <[089050/> <"00ו2507/\" = 800806 | ךק561> - -!> 1 חום 0 0 = | זס | 8 " 166" 00166 וב 15 ]אסא ()66ו1 חן50%8! טֶט5 (50068 1 הוה 5150 | חוה501| 8 " 610660 טסצ" אספספוו טט5 0חם <-- <ך5107]/> <ץצ800/> < |ודר]/> פרק 30: שימוש ב-856007/ | 815 להלן פירוט מרכיבי תג <ז08(560> : + 1 - מציין את השס שישמש את 0%ח856/ לצורך פנייה לאובייקט. מקביל למאפיין 6וחב3\ שמוגדר ב- 8856 |1508/. + 6145510 - משמש כמזהה ייחודי לזיהוי האובייקט המאוחסן ברישוס המערכת של פאוססחו\\. + 60058455 - מכיל את כתובת ₪1 של קוב 06% או 648 שממנו ניתן להוריד את האובייקט. בדוגמה לא נעשה שימוש בפרמטר 60058455 מפני שפקד א50ףפ | הוא פקד המובנה ב-זסזס!|קאם 6%חזסזח1, כך שלא נדרש להגדיר את הפרמטר 55 60 בפנייה אליו. * 880% ו-חזסוצו - מגדיריס את גודל האובייקט. + תגי אהח\: - מגדיריס את אופן פעולת האובייקט, באופן דומה לחלון המאפייניס ב- 88516 |508!/. הדרך הטובה ביותר לשלב פקדי א6%ש460 בדפי 60/\ היא על ידי שימוש בתוכנת 6פחסזת. כאשר לאחר סיוס פעולת ההוספה, העתק את קוד |אזה שנוצר על ידי 6פפחסז לדף ט6/\. בתרשיסם 30.9 ניתן לראות את רשימת פקדי 606% שנתמכים על ידי ס6הָבקזחסז=. |< | וזזפטטז |סזוחס:) אפצווסת | / וס 3 אסום. | [06 | זוס:) 63 0 סש -: ]חס 163 0 סט |- | יי סוחס טחוז פאס 0 פסשטו/ [-: | בשי , סוחס פחוז 165 0 0605 |- 8 000 +סשןפ 0 |סזוהס-פועיס סיווס ה +ספןם 0 |6101 [.קוווס פפעווס ה ]שו 0 ההוסתפזס/חס=) סיווס ה ]ספוט 0 חופ|קלפווס ה - = הסו80)ה890זק6ר] 6יווה פוה -ן ] ואזה הסוזבסס.] אזסצשזס א -ן 0868 5: 0008 50: ------===ש] תרשים 30.9: 12 06855 ניתן לאתר באמצעות 6בָהסז. פקד ששמו מתחיל ב- פוחזס= 670506 הוא מובנה של זפזסוקאם ז6חזפזח1 ואין צורך להורידו מה-60/\ בפרק 14 למדת כיצד ליצור פקדי 606% משלך, שאותסם תוכל לשלב בדפי ט6\\. שימוש בפקדים שתיצור מציע מספר יתרונות על שימוש ב%ק85₪1/ או ב- וואד, שביניהס : > שימוש בפקדים אלה מאפשר להשתמש במלוא מיגוון היכולות של 88516 |1508. + משתמשים לא יוכלו להציג את הקוד שלך בקלות, כפי שיתאפשר להם בעת שימוש ב-50065. 6 סדנת לימוד 6.0 8\ % 6הולכןוז56 5/שוסטחו/\ בנוסף למיגוון האופניס בהס ניתן להשתמש ב-85606/ ב-60/), 4ספסזסווא החלה להציע את 85606 כתחליף לקבצי אצווה. לאחר שתתקין את 8ח00 56 פטוספחו/\ % הניתן להורדה חינס מאתר 8חה0ק500.600/56סז6וח. אואואו/ /:קח, תוכל להריצ 5 של 85006 משורת הפקודה של 205 או מסייר פווסטחו\\. את קבצי קוד 5% /\ תיצור בעזרת עורך טקסט ותאחסן תוך שימוש בסיומת 85/. הפעלת 56110% תוכנת 105% 561008 פשספחו/\ תתקין במחשב שני יישומיס מארחים, שיהיו מסוגליס להפעיל קוד 85600%/: םאם.זק[650₪ המיועד לפעול משורת הפקודה של 05 ו-5אם. ד56810/\ המיועד לעבודה בסביבת פצוס4ח!//. כדי להמחיש את ההבדל בין שני היישומים, ניצור קובצ 85 שיכיל פנייה לשיטה 0ח5670%.=6/ו, כמו בדוגמה הבאה: "!סש ,סווס" סה6ם.סקוז50/\\ הפעלת 501106 וה תוך שימוש בשפת 650106 גורמת להצגת ההודעה שוזסשצ ,₪6/|0 בחלון הרצה של 05 ואילו הפעלתו באמצעות 567%/\ מציגה את ההודעה בתיבת הודעה בסביבת פאוסשחו/). הדרך הפשוטה ביותר להפעיל 56176 היא על ידי העברת שמו כפרמטר לאחד משני קבצי הביצוע שצוינו קודס לכן, כמו בדוגמה הבאה: 5 \0:\5671]00 650710%.6%6 תוכל גס ללחו לחיצה כפולה על קוב> 567106 בחלון ז6זס|קא= 5אוססחו/\. 05% 8הטקו50 תומך בכמה פרמטרים המועבריםס משורת הפקודה, אשר מפורטים בטבלה 30.5. בעת שימוש בפרמטריס אלה יש להקליד שני לוכסנים (/) לפני שס הפרמטר: טבלה 30.5: פרמטרי 105% טַחוקו56 פרמטרים תיאור 1 8// | מאפשרים לבחור בין הפעלה באצווה לבין הפעלה אינטראקטיבית. בעת הפעלה באצווה לא מוצגים סמנים מנחים כלשהם ספטו חח:ד// | מגדיר משך זמן נתון בשניות שלאחריו יתעורר פסק זמן בפעולת %קו5. הפעולה תופסק לאחר שיחלוף הזמן שהוגדר :ה | מקשר 56105 ליישום המארח 65606 %ו56/:// | מקשר 56086 עם היישום המארח 5610%/\ שומר את האפשרויות הפעילות (תקף רק בסביבת פ5שססחו/\) פרק 30: שימוש ב-7ח8560/ | 817 את האפשרויות המפורטות בטבלה 30.5 תוכל להגדיר גס בקבצי חפו\. קובצ הפו דומה לקוב> =1ק, אך משמש לעבודה עס קבצי אצווה. הוא מכיל את האפשרויות במבנה של קוב 1א1: [6וו-5600] 505 \:כ = וחק [5חססס] 10=טססווך 000 וץְב!ספוס 8%00006=0 את הגדרות הארגומנטים שיועברו ל-5606 עצמו, יש לפרט לאחר הגדרת האפשרויות ושס ה-560. את הערכים שיועברו לארגומנטיס תוכל לאחזר על ידי שימוש באוסף 5חסותטז של אובייקט +56710/\: %חטסשח וחוס 5.0 הרהז 50 /\ = זהטס6ח ".פחסוחחָז3ּ " 8 +הטס6ח 8 " 6זבּ שוסחד" סה6ם.ק50\ 1 - +חטס6ח סט 0 = | זסח (5)1חס סז 560% סח6ם .566 כ שיטות ואובייקטים שימושיים מידת השימושיות של ספריית אובייקטיס תלויה בסוגי האובייקטיס והשיטות שהיא מציעה למפתחים. משוס ש- 405% 560008 פוספחוש\ נועד להוות תחליף לקבצי אצווה, הוא תומך בביצוע פעולות רבות הקשורות בשימוש במערכת ההפעלה, ביניהן: ** | יצירת קיצורי דרך על שולחן העבודה. =* = מיפוי כונני רשת. > גישה לרישוס המערכת. + עבודה עס אובייקטים התומכים במיכון (חסוזפוחסזטה). > עבודה עם חשבונות משתמש 5.0 דא פשוססחוצ\. באתר 670504 תוכל למצוא את התיעוד המלא של 05% פח0ק56 פאוססחו/\ ודוגמאות קוד שמבצעות את כל סוגי הפעולות שפורטו כאן. קיימיס שלושה סוגי אובייקטיס עיקריים שמאפשרים לבצע פעולות כאלו. קודם לכן הצגנו דוגמה לשימוש באובייקט ז0וז56/\. ניתן לגשת לאובייקט ז10ז56/\ ישירות מקוד 85606 /. 8 סדנת לימוד 6.0 8\ הערה: את ₪056 560008 פאוססחו)\ אפשר להוריד מאתר 167050% העוסק בנושא 5 ד 8הטקוז56 שכתובתו 8 חהק56/ח 50.60סזס6ורח. צאוצש/ / :קת. לשני סוגי האובייקטיס האחרים, |ו578 ו-אזסשט6א\ יש לפנות מתוך אובייקט 560%/\ על ידי שימוש בשיטה 67680600166. לדוגמה, קטע הקוד הבא ישתמש בשיטה חט₪ של אובייקט |ו506, כדי להפעיל תוכנית ולהמתין לסיוס פעולתה: וו50506/\\ חחוס ("]56710%.506/\\" )076806000[60.זקוז56/\ = |[6ח5ח5/\ 56% אה 15 560006 ,50/6 צוססחו/\ 15 זס)6וחה הק )פזו-" סד ,1 ,"הק66סח" חטף. |ו6ח55\ "!חספ" א80 150 לאחר שתתנסה בשימוש ב-₪05% פַח5600 פטוסטחוצ\ תיווכח שהוא כלי רב עוצמה למיכון פעולות בסביבת פווססחו/. מכאן... פרק וה הציג דרכים בהן תוכל ליישם מיומנויות ב- 8856 |8טפו\ במסגרת ה-סס6/צ. מידע נוסף הקשור בנושאים אלה תוכל למצוא בפרקיס הבאים: + | מידע אודות שימוש בשפת +8560/ בשרתי 60/\ להפעלת דפי ט6/\ תוכל למצוא בנספח 4 דפי שרת פעילים. > מידע נוסף אודות הסבת יישומיס עצמאייס שנכתבו ב- 8856 |808ו/\ לעבודה ב-60)), תוכל למצוא בפרק 32 83516 |בּטפו/ ושימושים נוספים באינטרנט. פרק 30: שימוש ב-856007/ | 819 31 מסמכי 6%עו6 פרק 31: מסמכי א6א60א - 821 בוודאי ידוע לך שב-65/\ מתרחשים כיוס תהליכים רביס. התהליך העיקרי המתרחש הוא ש- 65\\ 6סו/\ סוזסצ\ הולך וצובר פופולריות עצומה. לעיתיס נדמה לך שלכל אדס ולכל ארגוו שבהס אתה נתקל יש אתר פ6/\ - החל בגופיס מסחרייס דרך ארגוני צדקה וכלה בשכניס שלך. דבריס הקשוריס ב-60/\ הפכו למצרך המצוי בכל מקוס ולמרות שבעבר ניתן היה להסתפק בדפי ס6/\ סטטיים, כיום יותר ויותר אנשים נוהגיס לכלול תוכן דינמי באתריס שלהם. דפי ט6)\ אינטראקטיביים הקיימים כיום אינס מסתפקיס בהצגת מידע קבוע. כיוס לא נדיר להיתקל בדפי 60/\ שמתפקדים כיישומיס לכל דבר, ולכן גם מוצעים כליס שוניס שמסייעים ביצירת דפים כאלה. כאשר תשקול לראשונה לשלב תוכן דינמי בדפי ט6/), התהליך עלול להיראות לך מרתיע עקב ריבוי האפשרויות שביניהן תידרש לבחור לביצוע פעולות אלו. מרבית התהיות הרלוונטיות שאני שומע כיוס אינן בנוסת "האס אוכל בכלל לבצע את המשימה!' אלא בנוסח יימהי הדרך הטובה ביותר לבצע משימה זוזיי. כאשר תנסה לחשוב על דרכיס שבהן תוכל לפתח בסביבת ט6/\ תיתקל בעשרות מושגים רלוונטייס כגון |61ק, 601, 28065 ז567/0 60/6, 856% /, בּעהּ2, ועוד. מסמכי 6%ע₪6% (א6ע60 5חוחטססכ) אינס בהכרח הכלי הטוב ביותר לשימוש בכל המקרים, אך הס מהוויס אמצעי שהופך את ה-ט6/\ לנגיש למפתתי 88516 |1508/\. הבנת מסמכי %אס6עו6% משוס שמסמכי 866% הם כלי נוח מאוד לשימוש ב- 65)\, נפתח את פרק זה בייקורס רענון" קצר. סביר להניח שכבר רכשת ידע מספיק על דפי ט6/\ שמאפשר לך להבין שדפיס אלה הס למעשה קבצי מסמך. קבצי ס6/\ דומיס לקבצי 6זס\\ אך הס כתוביס בפורמט מיוחד הנקרא !דח (80886ח3 | קטאז3ּ1!] זאסלוסקץה). באותו אופן בו סזס/\ משמש ככלי להצגת קבצי 06 כך דפדפן ס6/\ (כגון 6156806 או וסזס|קאם ז6חזוסשח1) משמש להצגת קבצי |אז. לכל קובצ |אז המאוחסן ב-65/\ יש כתובת המכונה כתובת ‏ 081 (זסז1.068 06זט₪650 וחזסזוח(\ - מאתר משאביס אחיד) המשמשת לאיתור הקוב\. 6\\ החל דרכו כאוסף מסמכיסם שהיו מקושריס אחד לשני. אך המסמכיס הסטטייס שהיו קיימיס אז לא אפשרו לממש את רמות האינטראקטיביות המוצעות כיוס. קיימים שני גורמיס הקשוריס בעבודה ב-60/\ שאפשרו שינוי מצב וּה: %, + שינוי האופן בו דפי טקסט מאוחזרים. > שיפוריס שחלו בדפדפניס. פרוטוקול 41 (|0%060זק ז506ח8זד )א6ד וסְסץ3) הוא האמצעי המקשר בין הדפדפן שלך ושרת 60/\. הדפדפן מעביר בקשה לקבלת כתובת 81ש מסוימת, ומציג את זרס נתוני |ואד3 המוחזריסם אליו. שיס לב שהשתמשתי במונח בקשה 5600650). מונח זה מבוסס על תפיסה חשובה. העברת בקשה לקבלת קוב מסויס שונה מאוד מפתיחת קובצ המאוחסן בדיסק הקשיח שלך, והצורך להשתמש בפרוטוקול תקשורת נובע משוני זה. ננסה לדמות 2 סדנת לימוד 6.0 8\ תהליך גה למצב בו אתה מבקש מחבר להשאיל לך מסמך מסוים, על ידי כך שאתה מעביר לו את הבקשה באמצעות דואר אלקטרוני. בשונה ממצב בו אתה פותח קובצ המאוחסן בדיסק שלך, העברת בקשה לשאילת המסמך מאפשרת לגורס המשאיל לערוך את המסמך לפני שהוא יעביר אותו אליך או אפילו להעביר אליך מסמך שונה לחלוטין. כך תוכל לאחסן בשרת שלך לוגיקה שתשנה את המסמך שיוחזר בהתאס למערכת קריטריוניס מסוימת, שעשויה להתייחס גם לנתוניס שיתקבלו מהמשתמש. גם זרס נתוני ]א המתקבל בדפדפן השתנה לא מעט מאז ראשית ימי ה-ט6/\. בנוסף לטקסט מעוצב ולגרפיקה, דפי ט6\\ יכולים כיום להכיל קוד 56 ויישומוני 18%8. שיפוריס אלה התאפשרו משום שדפדפני פ6/\ הפכו מורכבים יותר כדי לאפשר תמיכה בכל האובייקטים המשופריס שמוטבעים בדפי פ6)\. מסמכי 6%שוז46 שיידונו בפרק וה הם יישומיס אשר זסזס|קא= 06%6ז%6ח1 מעביר לעמדת העבודה של המשתמש. מהו מסמך *6עו46% בהגדרה הפשטנית ביותר של המושג, מסמך 66% הוא יישוס הפועל בתוך יישוס מכיל (ז6חופזח00), כגון זסזסו|קא= 6%חז6)ח1 במקוס לפעול כתוכנית עצמאית. בתרשיס 1 מוצגת דוגמה ליישוס כזה. הערה: ניתן להשתמש במסמך א6ע60ה ב- זסזס|קאם ז6חזסזח], אך תידרש להתקין במחשב המשתמש את כל קבצי ₪11 פחוד חטוח הדרושים לשימוש במסמך. וב | - 0 קוו | 5!ססד 8 0 0% ₪ | * 1] ₪ 03 | ש0שה69 פאסאה ןב 0% | 8 | 60 - = + ₪08 > | ** 65חו | | ב | ופי הזה 8981 סוט טס5 ]1503 050 ]סו חב זססזק\: 5 ב | 0078: 5 ₪008: 7 שת /900 זא זסזנוקוחס) עזי (ם). | | תרשים 31.1: מסמך 466% פשוט המוצג כאן פועל ב- זפזס|קאם ז6חזסזחז פרק 31: מסמכי א6ש60 - 823 מקור המילה יימסמך'י פחסוחטס6סכ) שמופיע בביטוי מסמך 6%צ8460₪ הוא מהקבלה למסמכי עיבוד תמלילים או מסמכי גליונות אלקטרונייס. קבציס אלה מכילים נתוניס, אך יש להשתמש בתוכנית כדי שניתן יהיה להציגס או לערוך אותם. לדוגמה, תוכל ליצור מסמך על ידי שימוש בתוכנת סזסו\ ולאחסן אותו כקובץ. אס תעביר קובצ זה למשתמש אחר, הוא לא יוכל לעשות איתו כלום, אלא אס כן תהיה ברשותו התוכנה המתאימה. אופן פעולת מסמך 466% דומה. תוכל ליצור מסמך 6%ע460 ולאחסן אותו בקובץ. אס תעביר את הקוב למישהו אחר, הוא יידרש להשתמש בתוכנית התומכת במסמכי 46/6% כדי שיוכל להשתמש בקוב. למרבה המזל מוצעים כיום מספר יישומיס מכילים אשר תומכים במסמכי 60/6%, ביניהס זסזס|קא= 66חז6שח1, אוגדן (ז06חו8) של 97 07866 וסביבת הפיתוח המשולבת (10₪ - %הס6החסזוטח= זהסוהקס|ש/6כ 6078160זה1) של 8516 |1508/\. משתמשים יוכלו להפעיל את מסמכי 6%ע00/ שתפתח ביישומיס אלה. יתרונות השימוש במסמכי 6%ע46% הסיבה העיקרית שבעטיה כדאי להשתמש במסמכי א6%ע160 ב- 8856 |1508/, היא כדי ליצור יישומיס בעלי יכולות לעבודה ב-60/\. יצירת מסמכי א6%עו860 מציעה מספר יתרונות שאין לשיטות אחרות המשמשות ליצירת מסמכיס לעבודה ב-60/\. חלק מהיתרונות יפורטו ברשימה הבאה: + לא תידרש ללמוד שפת תכנות נוספת כדי ליצור מסמכיס כאלה. תוכל להסתפק בידע ב- 88516 |508ו/. + תוכל לעצב יישומי 60\\ על ידי שימוש בסביבת העיצוב של 8856 |1508/. בהשוואה לשיטות לכתיבה וניסוי קוד המיושמות על ידי שפות אחרות, שיטה זו תקל את העבודה. + אופן עבודה וה יאפשר גישה לכלי ניפוי שגיאות של 8856 |1508/ הכלי ייסייע לך לנפות את הקוד ולפתור בעיות. + אובייקט אחווזםסץז יקל את השימוש בדפדפן לניווט בדפי 60)\. הדפים עשוייס להיות מסמכי 466% או כל סוג אחר של מסמכי טט\\. מהנאמר לעיל הבנו כי 8856 1508 מסייעת ביצירת מסמכי 6%ע60ג, אך מדוע שתרצה בכלל ליצור מסמכים כאלה! מדוע שלא תיצור יישומים רגיליס! התשובה היא בשתי מילים ייבגלל ה-6/צ'יי. יצירת מסמכי 860/6% חוסכת את הטרחה הכרוכה ביישוס שיטות מיושנות יותר להפצת תוכנות. אס התוכנית שלך היא קובצ 5אם סטנדרטי, תצטרך להפיצה למשתמשים על ידי משלוח דיסקטים של גרסת ההתקנה. מאידך, בעת שימוש במסמכי 46008% תוכל לאחסן עותקים של קבצי ההפצה על שרת ט6/וש, באופן שיאפשר למשתמשיסם להורידס מייד בכניסתס לאתר שלך. קוד שיוטמע בדף ט6/\ יורה לשרת להוריד קבצי 6801060 (קובצ 648 - קובצ דחוס) שיכילו את היישוס שלך למחשב המשתמש, כשהם מלווים בכל הרכיביס הדרושיס לשימוש ביישום. ווהי שיטת הפצה המבוססת על שימוש ב-60/), המקלה על תתזוקת הקוד ומוודאת אחידות בין הגרסאות שהופצו. 4 סדנת לימוד 6.0 8\ מובן שלשימוש במסמכי 6%ש2600 ב-60)\ יש גס חסרונות מסוימים. להלן כמה מביניהס: + נכון לכתיבת שורות אלו, רק זסזס|קא= 6%חז60זח1 תומך ב-6%ע₪. על-כן, אס אתה מייעד את היישוס לשימוש כללי ב-60/\ (ולא רק ברשת פנימית בחברה מסוימת). כדאי שתבנה אותו תוך יישוס גישה המיושמת בשרת, כמו למשל שימוש בדפי שרת פעילים (8065ק זסעז56 6ע60). + זסזס|כאם 6%חזסזח1 אומנס מטפל במה שקשור להורדת היישוס למחשב המשתמש, אך המשתמש עדיין נידרש להתקין את היישוס על המחשב שלו, כשהוא מלווה בכל קבצי העזר הדרושים. בכל פעס שתיצור גירסה חדשה של מסמך א6עו6, המשתמשים יידרשו לעדכן את העותקיס שלהם, פעולה שעשויה להימשך ומן רב בחיבוריס איטייס ל-ט6/ו. יצירת מסמך <6עו+46% יצירת מסמך 460/6% ב- 88516 |08פו\ דומה ליצירת יישוס רגיל. בפרק זה תיצור שוב את התוכנית לחישובי החזרי הלוואות שיצרת בפרק 2, אך הפעס תיצור אותה כמסמך א6ע6. צור את המסמך על ידי ביצוע סדרת הפעולות שלהלן: 1 התתל פרויקט חדש מסוג +הסוחט6סכ א6עח60. 2 צור את ממשק המשתמש של חיישוס. 3 כתוב את הקוד שיבצע את הפעולות הנדרשות. 4. נסה את היישוס ונפה ממנו שגיאות. 5 היעזר בכלי 0ז28/\\ +חסוהץסוק6כ 0חה 6סַ8668ק (אשף האריזה וההפצה) כדי ליצור גרסת התקנה שתופצ ב-60)\. כל אחד מהצעדים שפורטו כאן מורכב ממספר פעולות, אך התהליך כבר מוכר לך. נדגיס את יצירת המסמך על ידי יצירת התוכנית לחישובי החזרי הלוואות, כמו זו שיצרת בפרק 2. השימוש באותו יישוס ימחיש לך את נקודות הדמיון וההבדליםס הקיימיס בין יצירת מסמך 460/6% לבין יצירת יישוס רגיל הכתוב ב- 88516 |1508/. הערה: בפירוט הצעדים התייחסנו למושג יישום (חסטפסו|סקה). משום שמסמך א8ע26 הוא יישום אינטראקטיבי ולא קובץ סטטי כמו למשל קובץ מסמך עיבוד תמלילים, נהוג להשתמש במושג יישום לצורך התייחסות אליו. פרק 31: מסמכי א6ש60 | 825 פרויקט מסמך 6%עו46% הצעד הראשון ביצירת מסמך 6%ע460 הוא התחלת פרויקט חדש. התחלת פרויקט חדש נעשית על ידי בחירה בפקודה ₪70[66% ש6א מתפריט 6וו=. תוצג תיבת הדו-שיח צעוסא (ראה תרשיסם 31.2). בחר את הסמל 5אם +חסותט6סכ א6%ע46 על ידי לחיצה כפולה עליו. בחירה זו תיצור פרויקט חדש שיכיל אובייקט %ח6וחט06כ ז0560\ יחיד בשס 1 06 ז56\. לח לחיצה כפולה על האובייקט בחלון זסזסו|קאם 66[סזס כדי להציג מסך עיצוב ריק כמו וה הנראה בתרשים 31.3. ₪ ל 58 5 או 1 אש | שא 6%ש6 = 05 5300370 יי 9% % 5% ל 93 (₪ % 33 כא--25 חסוסבּהו!קק 115 | לספןסזק בבס בזבקו/ל 8 | הססבסו|פקה 8 סה חב בזבקו\ % % וי ₪5 5 =| תרשים 31.2: תיבת הדו-שיח ‏ 66[סזק שו6א, שאותה ניתן להציג על ידי הקשת א+6₪1 משמשת להגדרת התצורה ההתחלתית של הפרויקט הערה: אם אובייקט +ח6וחט0567006\ אינו מוצג אוטומטית, לחץ לחיצה כפולה על אובייקט הוה ט056006! שבחלון ז66[סזק. שיס לב שחלון עיצוב אובייקט ז60וט000ז056 דומה מאוד לחלון עיצוב הטפסים, אך הוא אינו כולל את הגבול שבחלון עיצוב הטפסים. חלון וה דומה גס לאובייקט 5676000( שמשמש ליצירת פקדי 8460/6%. בחלון זה תיצור את ממשק המשתמש של פקד א6%ע60, באותו אופן שבו שיצרת את ממשק המשתמש של טפסים (מידע נוסף אודות יצירת פקדי 6%ש460 תוכל למצוא בפרק 14). לאחר שתיצור את הפרויקט, שנה את מאפייניו ומאפייני אובייקט זחסוחטסססז56(\ לפי טבלה 31.1. לגישה למאפייני הפרויקט, בחר את הפקודה ₪65ז6קסזפ מהתפריט %. תוכל להגיע למאפייני אובייקט זחסוחטסססז56\ גס מחלון המאפייניס (על ידי בחירה בפקודה שס6ח/ו/צ 165זו6קסזופ מתפריט שפו/). לאחר שתגדיר את המאפייניס, שמור את קבצי הפרויקט על ידי לחיצה על לחצן שמירה שבסרגל הכלים. ותן שמות לקבציס החדשים. 6 סדנת לימוד 6.0 8\ תרשים 31.3: מסמכי א6ע460 פועלים בתוך יישומים מכילים ולכן הם חסרים שורות כותרת, גבולות ואלמנטים אחרים הקיימים בחלונות עצמאיים טבלה 31.1: מאפייני פרויקט ואובייקט +חסחט6ססז56 וו 6ץד ז60[סזק ₪אם 66% 6חבּא 6 הסוזקו6567 66[סזקט 6003 ה08] +ה6והט06כ א6עח6ה שמות קבצי המסמכים את הקוד במסמכי 6%ש460 ניתן לשמור בקוב\ טקסט, באופן דומה לשמירת טפסים. תיאור אובייקט %ח6וחט006ז56\ והפקדיס שבו מאוחסן יחד עס הקוד המסמך בקובצ בעל סיומת 008 שמבנהו דומה למבנה קובצ 8" שבו מאוחסנים טפסים. אס ממשק הטופס מכיל אלמנטים גרפייס כלשהם, הס מאוחסניס בקובצ אספ, הדומה לקובצ אח; שמשמש לאחסון האלמנטים הגרפיים של טפסים. כאשר תהדר מסמך א68/עו460 תיצור קובצ םאם או קוב 11ם שילווה בקובצ ס8/. קובצ 80 הוא הקוב שאליו ניגש זוא 6%חו6+ח1. קוב 85/\ מכיל את ה'ימסמך'יי בדומה לקובצ 06פ. פרק 31: מסמכי אפש60א - 827 יצירת ממשק המסמך אתה יוצר את ממשק מסמך א6צ860 על ידי שירטוט פקדים על אובייקט 60% 56700600 באותו אופן בו משרטטיס פקדים על טופס רגיל. במסמכי 6%ע60 ניתן לשלב כמעט את כל סוגי הפקדיס המוצעים על ידי 8856 |1508/. היחיד שלא ניתן להשתמש בו הוא פקד ז8חו0ח60 015. הגבלה נוספת היא שמסמכי א6ע4600 אינס יכולים להכיל אובייקטיס מוטבעיס כדוגמת מסמכי |66א₪ או סזס/\. 0 אזהרה: אם תשלב פקדים מותאמים אישית במסמכי א68%שו86, בעת הפצת המסמכים תידרש להתייחס לנושא רישוי השימוש בפקדים. לצורך יצירת ממשק יישוס הדוגמה תידרש להוסיף לאובייקט %ח6וט0567006! ארבעה פקדי |1826, ארבעה פקדי אספזאסד ופקד חסטפ!סיח ח ס6. הגדר את מאפייני וח ו-חס0ק693 של פקדי |1806 כלהלן : | שא 000000 אש 00 תרשים 31.4: המסמך ז68!₪0/800 ידמה לתוכנית ‏ 108068 שאותה יצרת קודם לכן 8 סדנת לימוד 6.0 8\ תצטרך להציב מחרוזות ריקות במאפיין א6ד של ארבעת פקדי א680ז, כדי שתיבות הטקסט תוצגנה כשהן ריקות. קרא לתיבות הטקסט: 6676%ח0001, %חסוץה8ק+ס, |הקוחוזקסאס, ו- וחזס דזאס. הגדר את מאפיין 86 של פקד חסטטפ0חהה 60 כ-008|60/8%6ח6 ואת מאפיין ח0ו0ק63 של הלחצן כ-+ח6חחץ8ק 68160|306. לאחר שתוסיף את הפקדים אובייקט +ח05670060016! ייראה כמוצג בתרשיס 31.4. הוספת קוד למסמך לאחר שתיצור ממשק משתמש עבור המסמך, על ידי שימוש בפקדי 8856 |אטפוש\ תהיה מוכן לכתוב את הקוד. כתיבת קוד לפקדים שבמסמך 60/6 דומה לכתיבת קוד לפקדיס בטופס רגיל. תוכל להציג את חלון הקוד באמצעות לחיצה כפולה על פקד, או על ידי לחיצה על לחצן 6006 שופוש שבחלון הפרויקט. בעת בניית יישוס הדוגמה הזן את הקוד שבתוכנית 31.1 באירוע 616% של לחצן הפקודה. תוכנית 31.1: 6./87 |64ץו₪ - הוספת קוד לביצוע חישובים לשגרת האירוע 6166 ( )א6ו|0 00-3!60|8%6רח6 50 סספּעווק 6% ₪056 זסזום חס 6חו5 5 0065%ח1 | ,016חו5 5 |הקוסחוזק וח וחוס הז 5 הז ד וח ,כְ6ופַחו5 5 +הסוחץה וח וחוס 56 5 167 וח וחוס (0א6 ד |8קו6חול000)ו/\ = |הקוסחוזק וח 0 ( ₪0 ך.007656ח8|)0061/\ = 00765%ח 1‏ וח א ד. וס 0007)|ה/\ = וזל וח (12 * הזד וח) */ (650ז00ח1 וח + 6001 וח (1 - 68 ח) / |הקוסחוזק וח * 67 וח * %0765%ח1 וח = )+הסוחץהק וח ("6אות" ,)סרחה )זה זס=] = 6% ך.%חסרחיה אס טט5 סחם אומנס הקוד שבתוכנית 31.1 קיים באובייקט +ח6וחט0567006, אך הוא פועל בדיוק כמו קוד שבטופס. הקוד מאחזר תחילה את הערכים שהמשתמש הזין בתיבות טקסט ומאחסן אותס במשתנים מקומיים. לאחר מכן מתבצע חישוב סכוס התשלום, שתוצאתו מוצגת בתיבת הטקסט זחסחחץ8ק))ט. פרק 31: מסמכי א6ש60א | 829 ניסוי המסמך לאחר שתזין קוד ותשמור את המסמך, תהיה מוכן לנסותו. הפעולות הדרושות שונות מעט מאלו הדרושות לניסוי יישוס רגיל, מפני שמסמך 8606 פועל כשהוא מוכל ביישוס אחר. כדי להגדיר איזה יישום יופעל על ידי המסמך, בעת בניית הפרויקט הצג את הכרטיסיה פַחומַפַט60ש שבתיבת הדו-שיח 65שזסקסזק. תוצגנה מספר אפשרויות, שאותן ניתן לראות בתרשים 31.5. אפשרות ברירת המחדל בכרטיסיה 8ַחו0פַטס6כ, היא +הפחסקוח0ס6 +זז5, והיא מאפשרת לקוד הרכיב לקבוע את האופן בו יופעל. אס מותקן זפזס|קאם 6%ח%67ח1 ותתחיל פרויקט חדש של יצירת מסמך 6%ש601, אפשרות ברירת המחדל תגרוס לכך שהמסמך ייטען ל- זסזס|קא= 6%חזסזח1. נסה כעת להפעיל את פרויקט הדוגמה כדי להיווכח בכך. הקש 55 או לחץ על לחצן 5091 כדי להציג את גרסת 6₪/\ של תוכנית חישוב התשלומיס, שנראית בתרשיס 31.6. |א. 5 0160 - 6ה-)א+6ת | וספ 6השהסקוחס | 06 | בכ | 60673 5 לספןסזם 5וח5 חסת/צ -] 8 6 0 5סהשחסקוחס6 זס] ובע 7 6 ב הבהז זוז 17 1ח!) חואו ז56שוסזם זוז 17 0 זט הפוא 56 שן תרשים 31.5: כרטיסיית פַחופָפַטט6ס שבתיבת הדו-שיח 65זפקסזק תאפשר לקבוע האם המסמך יופעל בדפדפן או ביישום אחר אס תרצה לפתוח את מסמך א6/ש86 באופן ידני, בחר את האפשרות זס1 זוע 86 0+ 65 סכה 60 שבכרטיסיה 8חו9פטט6כ. בחירה באפשרות זו תגרום ל- 6 |1508/\ להפעיל את הפרויקט בלבד, אתה תידרש לפתוח את המסמך באמצעות זסזס|קא= %6706ח1. כדי לפתוח מסמך 6%ע460 בצע את הפעולות הבאות: 1 הפעל את המסמך על ידי הקשת 5 או על ידי לחיצה על לחצן 58 שבסרגל הכליס (שים לב ש- 88516 |1508/\ לא הציגה את ממשק המשתמש של התוכנית). 2 מזער את סביבת הפיתוח של 88516 |1508/\ והפעל את זסזס|קאם 6%חזסזח1]. 3 בחר את הפקודה ח6ק0 מתפריט ₪116 של זסזסוקאם 66חזסוח1. הזן את שס הקוב\ שאותו אתה מעוניין לפתוח בתיבת הדו-שיח שתוצג. 0 סדנת לימוד 6.0 8\ 4 הגדר את הנתיב ואת שס קובץ המסמך. השס שתגדיר מורכב מהערך שבמאפיין סחהּא\ של אובייקט 56700 וסיומת 85/. אס תפעיל את המסמך מתוך 6 |8ש8/, המסמך יהיה מאוחסן בתיקיית 8856 |1808/. להתקנת |סוקץד הנתיב הוא 0\/598ו5000 !1508 16050 \1!65= ותהזססזק\:6. 5 לת על לחצן 0% שבתיבת הדו-שיח ח6ק0 כדי לטעון את המסמך. בתרשים 31.6 ניתן לראות את המסמך 686006 כשהוא פועל ב- זסזס|כאם ז6חוסשח1ז. הערה: אם תשתמש בלחצן 6פשסזם שתיבת הדו-שיח ח6ק0 לחיפוש הקובץ, זכור לבחור את האפשרות ₪66 ||4 בתיבת הרשימה הנפתחת 6סץד )0 65וו=. |< ום|= 5010 66חו6ח1 1050 - 6פץ.316006 5 6 1005 פפמזסטםת ‏ אשט ‏ 6נם ₪6 | 3 ₪ דב | 62060 וו ןב 04590 | 4 [) (6 - > - 0 > | >אחט | | 0 - טפ 3606 89816 )50010 |הטפו/ 5]ס5סיסוי]ופטוו= חב זטסזק\:₪ ג זו | >|הקוסחחק (9ז08/ץ') חוד 03| :(%) 316 +0795זח! וב - =] + חסוחעב עוהזחסו סוחס עו ₪ תרשים 31.6: זסזס|קאם 66חז%6ח1 יכול לשמש כיישום מארח עבור מסמכי 460/6% תוכל לפתוח את מסמך 60/6%\ גם בדף ט6/\ מיוחד שיצרת לשס כך. אס תרצה לראות כיצד ייראה דף )79% לאחר שישולב בו מסמך א6ש60, בחר את הפקודה 1 וחזועש 567/ש0ז8 +ז5%8 והזן את כתובת ₪1 של הדף הרצוי (זכור שכדי שתוכל להשתמש באפשרות זו, יש לשלב בדף 60/\ את הקוד הדרוש להצגת מסמך א6עו16). לחילופין, אס תרצה לנסות את מסמך 6%ע60/ ביישוס אחר, תוכל לבחור את הפקודה וחב סק +5%31. אם הקוד אינו פועל באופן הרצוי, תוכל להיעור בכל מבחר כלי ניפוי השגיאות של 6 |508ו/\ לצורך איתור שגיאות וטיפול בהן (פעולות ניפוי שגיאות נדונו בפרק 9, יסודות התכנות של 83516 [1503/). כך תוכל לשלב נקודות עצירה (פטחוססא68זם), להפעיל את אוססחו/\ ח806/\\ שיאפשר לעקוב אחר ערכי משתנים, ולבצע את הקוד שורה אחר שורה. בתרשיס 31.7 תוכל לראות פעולה טיפוסית של ניפוי שגיאות. פרק 31: מסמכי אפא60 - 831 ם אזהרה: סגירת התוכנית ב- זסזס|קאם ז6חזס6ח1 מבלי לסגור את זפזס|קאם 66חזפ%ח1 עלולה לגרום לשגיאה של זסזסוקאם ז6חזסזח1. לכן כדאי שתסגור את זסזס|קאם 66חזפ%ח1 ותפעיל אותו מחדש בכל פעם שתרצה להפעיל את המסמך. זכור שסגירת זסזס|קא= 6%ח67שח1 אינה מפסיקה את פעולת פרויקט המסמך ב- 8856 |1808/. המה | 6 אוסטחו/צ 5ח₪80-1 1005 חִבזחָבום עזסטס חנ בטפס )החזסת פס אופוץצ וט ₪6 | ₪ ל שו םי 9 ₪7 | ₪ וו , | = -- | ₪ ב ₪ | ₪ ש | מ - ₪ - ₪ | 0 הק | וםן|= . (0-066) 3:006= - 6-)א+)ה את - ו |- 6 (0צ.0-86ע1) 000-886 ל 5 תפוחנוסס ז058) 45%-ב סגסג1עאם מסגסעס (000. 810006 6) 810006 [)א6110 01886ו0ס4081ע0 עום שסהטנמע 68 58ב 680עסמ1 ₪ ,616ם51 3ג 81ע1סמגטתק מ מגע 606%סמ1 5( מעשך א ,512816 25 סמשטעה? 0 ועבת 568 5ג 2006 ₪ מצע (0א16. [8ש1סת1:ת5א781)5 = [8ק1סמ1-ק ו ו 0 | (6א625.16ע62סמ51א081)5 = 56שמשסמך 1 (5א0.716ע516א781)5 = מעפך 10 (12 * מעשך ₪) * (56שעשמם1 ₪ + 1] = עס0? מ (1 - 1608 ₪) / 81ע1טמגעת ₪ ד עסס? ₪ * מכסעשסמ1 ע = סמפעעה? ג ("68א1ת" ,סמשטעם? ₪) ספעס? = סאשך. סמשטעהתסאס מגום במם הפקודה הבאה שתבוצע משתנה שאחריו מתנהל מעקב תרשים 31.7: שימוש בכלי ניפוי שגיאות יקל עליך באיתור שגיאות ותיקונן הידור המסמך לאחר שתסיים לנסות את המסמך ולנפות ממנו שגיאות, תוכל להדר אותו לצורך הפצה. התחל את התהליך ההידור על ידי בחירה בפקודה ₪3%6 מתפריט 6ו1= של 6 |508ו/\. בתיבת הדו-שיח 1866 שתוצג תוכל להגדיר את שם ומיקום קוב> 5א= או 1 שתיצור. שס קוב ספ/ שיווצר, יתבסס על הגדרת המאפיין 6וח8א של אובייקט ו 0560!. קובץ זה יאוחסן בתיקיה שבחרת לאחסון קוב 5אם. לאחר שיהודר, המסמך יוכל לשמש בכל תוכנית שתומכת במסמכי א6%ע460. קודם לכן הצגנו את זפזסוטא= 61חז%6ח1 כדוגמה לתוכנית כזו, אוגדן של 97 066 הוא תוכנית נוספת בעלת יכולות אלו. כדי לבצע גישה למסמך 606% על ידי שימוש באוגדן, הפעל את האוגדן ובחר את הפקודה ₪16 וחסז= 406 מתפריט 5600₪. תוצג תיבת דו-שיח שתאפשר לבחור את הקובצ שייטען. הגדר בתיבת הדו-שיח את מיקוס קובצ ס8/ ולחצ על 0% כדי לטעון את המסמך. 2 סדנת לימוד 6.0 8\ כדי להעביר את מסמך א6/ש60 להפצה ב-60/), השתמש ב- 6ח8 חַחִַַּא6בק 0זה2ו/\ %הסוהץסוק6כ תוך בחירה ב- 2866806 6%חז0שח1. האשף ייצור תיקיית משנה בשס 6 שתכיל את הקבציס הבאים: תרשים 31.8: תוכל להעתיק את שורת ₪5 מקובץ הדוגמה לדף ס6\\ שתיצור קוב\ פפ\ שיאפשר לפתוח את המסמך ב- זסזסו|קאם 66חסשחז. תיקיית משנה בשם +וססקט5 במקרה שתצטרך לבנות את קוב 648 באופן ידני. ראה, "אריזת רכיבי 6%עו60ה", נספח 2. |א וםן= - וה)ח.81-)+ת ₪ 6 ומוס ₪05 5ות < וודוו> <1=0!> <5 |ד1ד/608%. 6316א86%< וזזז> <080%/3. 080<0316000. 0316200=+6"וח 3> <800%/> < ווודוו/> חקירת אובייקט +ח6והט6סכ וסנו כפי שטופס הוא הרכיב המרכזי ביישוס רגיל, אובייקט 0567006006 הוא הרכיב החשוב ביותר במסמך א6ש16. אובייקט זה הוא ייבד הציוריי שעליו תפרוס את הפקדיס שייצרו את ממשק המשתמש של המסמך. ניתן לפרוס פקדיס באובייקט %ח6ו 5672060 באותו אופן בו עושיס זאת על טופס רגיל, כאשר ניתן להשתמש לחילופין בשיטות גרפיות או בשיטה זחוזש להצגת מידע אחר ישירות על המסמך. יכולת ו מעניקה גמישות רבה בעיצוב המסמכיס ובבחירת האופניס להצגת המידע. פרק 31: מסמכי א6עשו60ה קוב 628 שיכיל את כל רכיבי 6%ש460 וקבצי 11ם הדרושיס לעבודה עס המסמך. דוגמת קוב |ואד₪, ראה תרשים 31.8, המציג כיצד לשלב את המסמך בדף 60\\. 13 הבנת האירועים החשובים של אובייקט +חסוחטססכ 56 אובייקט +ח6וט0567006! אומנס דומה לטופס במובניס רביס, אך קיימיס ביניהס גס מספר הבדלים חשובים. לדוגמה, קיימיס מאפייניס, שיטות ומאפייניסם שאובייקט + 5006 תומך בהם, והטופס לא, ולהיפך. הבדליס אלה נובעיס מההבדל באופי האובייקטיס: טופס הוא אובייקט עצמאי, בעוד שאובייקט %ח6וחט0567006\ פועל תמיד ביישוס מכיל. האירועיס החשוביס ביותר שנתמכים על ידי טופס אך אינס נתמכים על ידי אובייקט 56700606 הם: 460/8066, 2686008%6, 1080 ו-6אסוח ואילו האירועיס שאינס נתמכים על ידי טופס, אך נתמכים על ידי אובייקט 6חסוחטסססז56 הם : + 00|606ח15/6₪68060. מתרחש כאשר היישום המכיל מסיים ביצוע בקשת קריאה אסינכרונית. + 6-0605זחם. מתרחש כאשר מסמך 8%/עו60 מקבל את המוקד. % 5]. מתרחש כאשר מסמך א6ע6 מאבד את המוקד. + 4006. מתרחש כאשר המשתמש עובר ממסמך 606% פעיל למסמך אחר. % 5 סזקוהז. מתרחש כאשר המסמך נטען לראשונה. אך במסמכיס שמשתמשיםס באובייקט 880ו6קסזק לאחסון מאפייניס, מתרחש אירוע 70067065ק₪680 גס כאשר המסמך נקרא לראשונה. + ₪68007006065. מתרחש כשפריטים מאוחסניס באובייקט 888/+ז6קסזס, במקוס אירוע 165ז6קסזקשוח1. האירוע מתרחש גם כאשר מסמך נטען לראשונה. + |0ז56. מתרחש כאשר המשתמש משתמש בפס הגלילה של היישוס שמכיל את מסמך א6ע₪60. + או0ח5. מתרחש כאשר משתמש מגיע למסמך א6%/שו46 ממסמך אחר. % 5 זסססזק סט \. מתרחש בסמוך לסיוס פעולת התוכנית. 65שזסססזקיטוו\\ הוא האירוע האחרון המתרחש לפני אירוע 6ּחווחזפד, אך הוא מתרחש רק במקריס שבהס נעשה שימוש בפקודה 860ח608/זס6קסזס, כדי לציין שאירע שינוי בערך המאוחסן באחד המאפיינים. יצירה ואחסון מאפיינים של אובייקט +ח6וחוטס6סכוזוס5 בין אובייקט 60%וט0567006\ לבין טופס יש נקודות דמיון רבות, אך יש גם תחומיס שבהסם אובייקט אחסותט060כז56 דומה יותר לאובייקט |₪0ח60ז056! מאשר לטופס. כל שלושת סוגי האובייקטיס, 0%ח6ט567006, טופס ו-!₪0ח56760 מאפשרים ליצור מאפייניס ושיטות כדי להרתיב את מיגוון היכולות שלהם. אך רק לאובייקטיםס מסוג ה 5606 ו-₪01ה56760 יש יכולת לשימוש באובייקט 80פששזסקסזק. אובייקט 9, בשילוב עם כמה אירועים המיוחדים לו, משמש לשמירה על ערכי מאפייניס ציבוריים באמן שבין הפעלות האובייקטיס. 4 סדנת לימוד 6.0 8\ משוס שהתהליך המשמש ליצירת מאפייניסם ולשמירה על הערכיס שהוצבו בהסם תואר כבר בפירוט (ראה פרק 14), לא נחזור על כל פרטי התהליך. אך נביא כעת סקירה קצרה של המרכיבים העיקריים שלו, כדי לסייע לך להיזכר בפעולות. כדי ליצור מאפייניס לאובייקט 7060%ו006ז56(\ ולשמור את ערכיהם, בצע את הפעולות הבאות: 1 צור מאפיין על ידי שימוש בפרוצדורות 16% שזסקסזק ו- +66 עזסקסזק. את מעטפת המאפיין תוכל ליצור בעזרת תיבת הדו-שלית 6זטו60ססזק 006, שאליה תוכל לגשת באמצעות תפריט 5|ססד של 856 |1508/. 2 כדי לציין שערך המאפיין שונה, הצב פקודת 860ה6008/ז6קסזק בפרוצדורת זסקסזוק של כל מאפיין שאת ערכו תרצה לאחסן. 3 לאחסון ערכי מאפיינים, היעזר בשיטה שוסקסזקטטו\\ של אובייקט 880עוסקסזק לכתיבת הערכיס החדשים של המאפייניס שערכיהס שונו. הצב את קוד שיטה צִו באירוע ₪65ז6קסזק6סוז\\ של אובייקט ז+חסוחט6ססזס5. 4 לאחזור ערך המאפיין, תוכל להיעזר בשיטה /6%כ0זק₪680 של אובייקט 8 כדי לשמור את ערכי המאפייניס שערכיהס שונו. הצב את קוד שיטה זו באירוע ₪680700611165 של אובייקט זחסותט6סכז56. ראה, "הוספת מאפיינים", פרק 14. | - ו | - +00 ז56 מבטשגנ1עאם מסבסטעס () 1215181126 סמפטנוסס0קת36ם כגום שסהטבטק מגום במם (טַ5ע5עפקסעק 25 הַהּפעסמק) 5ּפנ1סעסעסנקְבבּבת סמסטנוסס0קת36ם כגום שסהטנעק (ם ,"מגח") עָסמססְסתתרבְבּשת .קַבהפקסמק = תנ1נ1.תססבכגוסמפת 100(‏ ,"<בת")עְפעסקסתתרבּבּת .הַבפקסתק = א134.מססבגוסמפג ([50 ,"שגו1הע")עְסעסטְסתתרבּבּפת .הַבפקסתק = =גו1הע.תססבגוסמ5ג מגו5 המת (מַ5ע5ע6קסמק 25 02888ע2ע202825185)2ק1662תח סמשונוססקמפ5ם כום שסהטנ1טק 0 ,מנן.מספספטגוסמכפם ,"תג" צשְפעסקסעק5ס1:ח.הַבּ2קסעק 0 ,13 .מססכגוסמפםת ,"<83" צְפעסשקסעק6ס1:ח.הַהּפקסטק 0 ,=גו31ע.00ס6כ5גוסמ5ם ,"=גו1הע" עְפמשקסמק166:ח.הַהּ2קסטק מגוט הבמס תרשים 31.9: היעזר בשיטות שו6קסזק₪680 |-שזפקסזק6שחו\\ לשמירה ואחזור ערכי מאפיינים ציבוריים של אובייקט +חסותטסססז50\ פרק 31: מסמכי אפש60 | 835 שיטות אובייקט +חסוהט6ספ'וס5 אובייקט 6ח06ט7006ז56 תומך גס בשתי שיטות חשובות שאינן נתמכות על ידי טופס: 560 ו-06₪680ש687006|5. השיטה 68₪6806חץ5ה מאפשרת למסמך להעביר בקשה שהיישוס שמכיל אותו יקרא נתוניס מקובצ או מכתובת 0₪5. משס השיטה משתמע שפעולת הקריאה תתבצע באופן אסינכרוני. קל להבין שיכולת לקריאה אסינכרונית של נתוניס מועילה מאוד בעבודה ב-60/\. לדוגמה, אתה עשוי לכתוב יישוס להצגת נתוניס אשר יקבל את הנתוניס משרת. השיטה 85068680 תדרוש ממך להגדיר קוב (או מקור מידע) שייקרא ואת סוג הנתוניס שייקראו. שלושת סוגי הנתוניס שבהס תומכת השיטה יפורטו בטבלה 31.2. טבלה 31.2: סוגי נתונים הנתמכים על ידי השיטה 66680חץ45 6וססץ ד6הץ5הפע | הנתונים בקובץ שנוצר באמצעות 8856 |808ו/\ ץז ה6קץ ד6הץ5 הפע | הנתונים שייקראו לקוחים מתוך זז ץ8 שמכיל את הנתונים שיאוחזרו 6ז סקס ד6הץ5 טע | הנתונים מאוחסנים באובייקט 6זושסוק (תמונה השיטה 6₪680ח/6866!45 משמשת להפסקת הקריאה האסינכרונית לפני השלמתה. לצורך הדגמה, נוסיף כעת קריאה אסינכרונית למסמך 6%עו10, זס)68|60/8 ח108. לפני שתוסיף את קוד השיטה 4570686680 בצע את פעולות ההכנה הבאות : 1 צור את פרויקט הדוגמה שתואר בסעיפיס הקודמיס. 2< פתח את אובייקט 60%ו5670060, 68|6006 והוסף לטופס שלו שני פקדיםס נוספים, לחצן פקודה ופקד 1846. 3 קרא ללחצן הפקודה: 67006%06, ולפקד התמונה : חופואטחו. 4 מצא את הנתיב לקובצ תמונה המאוחסן בדיסק או ב-פ6/\ שתשתמש בו לצורך הניסוי. לצורך הדוגמה השתמשתי בנתיב קן. ח65\88זססוק \:. 5 הוסף את קוד השיטה 6₪680חץ45 לשגרת האירוע 0166 של לחצן הפקודה: ( )0104 0006016 50 סספּעווק "סוק עו" ,טסקטכ 6 ה ץש , "קותם. ה חט\65זנססוכ\:0" 680 6הץ5 50 0חם קטע קוד זה יחל הורדת קוב התמונה ק8%.א8814 למחשב הלקות. בדוגמה כללתי הגדרת נתיב מפורט לקובצ המאוחסן בדיסק הקשיח במחשב מקומי, אך גם יכולתי להשתמש בכתובת !₪ כגון ט.6זש6וסשוח /ו567/6ץרז//:קסטח. 6 סדנת לימוד 6.0 8\ 6 הוסף את קטע הקוד הבא לשגרת האירוע 6%6/כו6368060חש5ה של אובייקט חס ט006ז056\, כדי להציג את התמונה שהורדת זה עתה בפקד 6טְ] : ( קקח 5 5 סז ק6 5 )66 5668000 הסותטסססז056\ פט5 סספּעווק 6 8 " 55005 רשו 1560 85 08060!חס0 6וטססו סד" אס 5 6טו3/\. קסזק6הץ5\ = 6זנססוק. הוהטוחו 56% טפ 0חם אירוע 016066וח6₪68060חץ5ה מאותחל לאחר סיוס הורדת התמונה וגורס להצגת תיבת הודעה, והתמונה (שמאותחסנת בפרמטר ססזק6חץ5) מוצגת בפקד 6סאח1. הערה: בטעינת תמונה מה-60/\ (בשימוש בתחביר //:קח), 6%חז0שח1 זסזסוקאם עשוי לאחסן את התמונה במטמון המחשב המקומי. אם תרצה לנצל את האחסון באופן מיטבי, הוסף פרמטר אופציונלי לסוף שורת הקריאה לשיטה 680חס6חץ5, שיגדיר האם ובאילו נסיבות ייעשה שימוש בתמונה המאוחסנת. את רשימת הערכים שתוכל להציב בפרמטר האופציונלי תוכל למצוא בנושא 60000 68680חץ85 בעזרה המקוונת. חשוב לזכור שבדוגמה תתרחש רק פעולת הורדה אסינכרונית אחת. אס תיווס מספר פעולות הורדה שתתבצענה במקביל, תוכל להיעזר במאפיין 6וח3\\ץלוסססזק כדי לקבוע איה אובייקט יועבר לאירוע 00|6%6ח6₪68060חץ5. במקרה המוצג בדוגמה, הערך המאוחסן במאפיין זה הוא שזטססוסץוח. בנוסף ליוימת פעולות קריאה אסינכרוניות ולזיהוי מצבי הסיוס שלהן, 8856 |1508/\ גם מאפשרת לנהל מעקב אחר הפעולות באמצעות האירוע 68₪68007007655חץ5. לאירוע מועברים כמה מאפייניסם המאפשרים להציג את מידת התקדמות הפעולה. לדוגמה, ייתכן שתרצה להציג פקד מד התקדמות שיציג את מספר הבתיס שהורדו עד כה, או שתרצה להציג הודעות שתיידענה על יצירת החיבור ותחילת הורדת הקוב\. אובייקט אחוווס6כץ1] במסמכים אובייקט >חווזסקץ הוא אובייקט חשוב במסמכי 60/6%. לאובייקט זה ניתן לגשת על ידי שימוש במאפיין אחו 1ז6קץ של אובייקט %חסחט6סכז56. האובייקט אינו כולל מאפייניס והוא מכיל רק שלוש שיטות, אך הוא מאפשר למסמכי א6%ע860 לקרוא למסמכי 46006% אחרים, או לבצע פעולות ניווט באתרי פ6/\. שלוש השיטות הן: + סִזִסַאפָוְטְא. השיטה גורמת ליישום המכיל לעבור לקוב\ או כתובת ₪1 המצויניס בשיטה. ניתן להשתמש בשיטה זו למעבר ממסמך 6%ש460 אחד לאחר. + 608866. השיטה עוברת למסמך קודס ברשימת עזסספוו₪ של היישוס המכיל. אם היישוס אינו תומך ב->חווזססץ, או שרשימת ץז900ו₪ ריקה, תתרחש שגיאה. + 80א60"0. שיטה זו מנוגדת לשיטה 60886%. השיטה גורמת ליישום המכיל לעבור למסמך הבא ברשימת ץז0לפ!ו₪. אס לא קייס כזה, תתרחש שגיאה. פרק 31: מסמכי אפש60ה - 837 הערה: יישום מכיל שתומך בפעולות אחווזסמץ, כדוגמת זסזס|קאם ז6חזססח1 הוא שמבצע את הפעולה הדרושה למעבר למסמך שצוין בשיטה סזַסְז8ּפָוטה\. יישום שאינו תומך בפעולות >חווזפסץו], כדוגמת האוגדן של 97 0666 מפעיל יישום שתומך בפעולות כאלו, כדי שיבצע עבורו את הפעולה. בשורות הקוד המובאות להלן דוגמאות לשימוש בשיטה סִזַ68ִוֶּ8ָוהא : "ספ/.6ססץוא" ס ד66הסוטב3צ. אתו[חססער .הרט סז \ "ההסס.6ו5ץרח. וצצ /: כח" 0 ד66הטועבצ. אתו[הסקער הרט סז השורה הראשונה תטען מסמך א6%ע460 אחר המאוחסן באותה תיקיה, בעוד שהשנייה תפנה את היישוס המכיל לאתר ב-80\\. 0זה2ו/\ הסוזבּ'וטו1! +הסוהט6סכ אסעו6 עד כה למדת רק כיצד ליצור מסמכי 460/6% מאפס. אך ייתכן מאוד שכבר הקדשת זמן רב ומאמציס רביס ליצירת יישומים רגיליס ועל כן אתה תוהה האס תוכל לבצע פעולות גזירה והדבקה ולנצל חלקיס מתוכניות קיימות! למרבה המזל התשובה חיובית. 8856 |508ו/\ מציעה כלי שנקרא )חס ט6סכ 606% 0הלו)\\ הסספזטוא שיסייע בהסבת טפסים הקיימים ביישומיס לאובייקטי + 50 שאותס תוכל לשלב במסמכי א860/6%. מילת המפתח במשפט האחרון היא יייסייעיי. האשף לא ייצור מסמך א6שו46 שלס מהיישוס הקייס שלך. במקוס זאת, הוא יבצע את הפעולות הבאות: <* | יעתיק מאפייני טפסים לאובייקטי 1670 ט0567006\ חדשים. + | יעתיק פריטי תפריטים מטפסים מקוריים לאובייקטי זח6וחט006ז050\ חדשים. * | יעתיק פקדים מטפסים קיימים וימקס אותס באותו מיקוס יחסי על המסמכים, זאת תוך שמירה על כל הגדרות מאפייני הפקדים. פקדי זסח|סחס6 0|5 ואובייקטי 015 שהוטבעו ביישומים לא יועתקו. > יעתיק קוד משגרות האירוע של הטופס לשגרות התואמות של מסמך א6ש00ה, כולל הקוד שבשגרות האירוע של הפקדים. * פקודות שאינן נתמכות על ידי מסמכי 606% כגון 1080, הסוח ו-0ח5 תהפוכנה להערות. זו הסוזהזטווי! %הסותטססכ א6עו6ה יכול אומנס לבצע את רוב הפעולות הדרושות להסבת היישום למסמך א6ש6ה, אך קיימות גם פעולות רלוונטיות שהוא אינו יכול לבצע עבורך. על כן יהיה עליך לבצע פעולות כתיבת קוד, בטרס תוכל להדר את המסמך ולהפיצ אותו. 8 סדנת לימוד 6.0 8\ ראשית תצטרך לגרוע מהיישוס הקייס אירועיס שאינס נתמכים על ידי פקדי 606% כגון 10860 ו-0פס!ח. האשף אומנס הופך פקודות 1080 ו-80ס!ח/\ להערות, אך הוא אינו משנה את הקוד בשגרות האירוע של האירועים הרלוונטיים. אס כללת בשגרות אירוע אלו קוד שמאתחל את מאפייני הטופס או הפקדים, תרצה אולי להעביר חלק מהקוד שבשגרת אירוע 1080 לשגרת האירוע 68|26וח1 של אובייקט זחסותטססכז56. ייתכן גס שתרצה להעביר קוד שבשגרת האירוע 80סוח לשגרת האירוע 6זחוחחזסד של אובייקט + תצטרך גם לוודא שהקוד אינו כולל פניות לאובייקטים שאינס קיימים יותר. לדוגמה, לא ניתן לשלב באובייקט %ח76 05670060 שנוצר על ידי הסבת טופס, אזכוריס כלשהס לשם אותו טופס. הרצת 6ז23ו/\ חסוזבּושו1! +חסוהט6סכ אס6עו+6 כדי שתוכל להפעיל את 6ז28ו)\ הספזף!ו +הסוהט6סכ אשע6ה, תצטרך לוודא שהוא זמין לשימוש מ- 8856 |1808/. כדי להפוך את האשף לזמין בחר בו בתיבת הדו-שיח זסחָּחהו] ה[-00, שאותה תציג על ידי בחירה ב- זִסאַּח3!] ת8606-1 מתפריט 5. לאחר שתוסיף את האשף לסביבת הפיתוח של 8856 |508ו/\, תוכל להפעיל אותו על ידי בחירת 2316ו/\ חסוז3ּיוט/1] זהסוהטס6סכ א6עוז6 מתפריט ה04-1. הצעדיס הבאיס יפרטו את התהליך להסבת טפסים למסמכי א6עוז6 : 1 פתח את הפרויקט שאת הטפסים שבו ברצונך להסב. האשף יפעל בצורה תקינה רק מתוך הפרויקט שעליו הוא פועל. 2 הפעל את האשף. תחילה יוצג מסך הקדמה, שיציג פירוט קצר של פעולות שהאשף יבצע ולא יבצע. לח על לחצן 60 כדי להמשיך. 3 מהמסך המוצג בתרשים 31.10 בחר את הטפסיס שאותם ברצונך להסב. ברשימת הטפסים יפורטו כל הטפסים בפרויקט הפעיל. תוכל לבחור טופס על ידי סימון התיבה שלצד שמו. ניתן לבחור מספר טפסיס בבת-אחת. לאחר שתסייס לבחור את הטפסים, לח על לחצן 6% כדי לעבור לשלב הבא. חסוו56!60 חוזס-] - 6זב23ו/\ הסוזבּזטווא וח6הוטוסס ‏ %פצווס ה סלו 866 זחוח ספ חואו נוסץ' הל פחחזס] 66%[סזק שחש 5016 0065 6% שו זו [ ח הוחו < אסא | 6% | ו | כוסו תרשים 31.10: בחר טפסים מתוך הרשימה שתוצג באשף פרק 31: מסמכי אפש60 | 839 4 היעזר במסך 000005 של האשף (ראה תרשים 31.11) כדי להגדיר את אופן עיבוד הטפסים. שלוש האפשרויות המוצעות תאפשרנה לבצע את הפעולות הבאות : > להפוך קטעי קוד בלתי חוקיים להערות. בחירה באפשרות זו תהפוך פקודות שאינן נתמכות על ידי מסמכי א6עוז16, כגון 1.080, 86ס!ח(\ ו-6ח₪ להערות. * לגרוע את הטפסים מהפרויקט לאחר שיוסבו. בחירה באפשרות זו תמחק טפסיס מהפרויקט הפעיל לאחר פעולות ההסבה. ברוב המקרים לא תבחר אפשרות זו, מפני שתרצה להותיר את הפרויקט המקורי שלם. > האם הפרויקט יוסב לקובצ םאש 6%ע60 או לקובץ ₪11 6%ע60. ערך ברירת המחדל של אפשרות זו הוא קובצ 5א= 460/6% (קבצי 11 460/6% משמשים ליצירת רכיבים משותפים ולא ליצירת יישומיס). פחסו)ק 0 - 6זב23וש\ חסוזבּזטווא וח6הוטוסס ‏ %פצווס ה .156 סל !| !וס וס פחסוקס חש 56/00 ?ופפ יחטש 30597 חחזוס] |החוסוזס 6/יסוחפ ה -][ בו|השחו 5! 6קץד 66[סז זטס/ל 7 006% חה 80 %ז6עחס = ₪ ?7 606% חב סם 66עחס0 7+ | הפו | < אס | 6% | | ו | קוסו תרשים 31.11: בחר את האפשרויות העונות על צרכיך לאחר שתבחר את האפשרויות, לח על לחצן סא כדי לעבור לדף האחרון. |< |ם] = | 7 .זט זנוסץ הַחוזפ/יחס6 הפוח 35 ב זב2ו/א\ הסוסה ויז ההסותנושסס 6%עו60ה שח 6% סכ סד זבחא 8356 |1508/ זס] ב 56301655 3 6טו/יסזק 5הססבּ6ו!קקבּ 53550 לחפוחנוססם 606% זוב חס6 לחשוחטסוסים 6%ו460. חן 366!כ-חו הז 53 פהסוסב !קב 676866 0ם קופיס . זסטחום 00766 50%טסוזי] חב זטזסוקא= 6% הזססח1 1070506%6י] 35 506 ,5חסוסבּ6ווסקה. 6ב 6זפת , החזס] 835% |53ו/ 70 0ח5-3 3 50 זב!וחזו5 עזי 5 השוחנססק 56| ב שווחעע ,50 50 650005 6ב זופת , החזס] 0 0ח5-3 3 הפוצו , 6קחב<6 זס=] .065ח6ז6ז7ום 6ספטפ חב 15013 6655[ +תשונססס 567 | חל 66356ם זום . פחחזזוס] ב סוחנו חב , הפ , ססות !ה חסופוג . ץוקקה ל חס 005חל6ח 1656 , זסחוה:חס6 שר עס 16חבח 6ב 66| לסשןסס >חווזספעיה! 6 הזו ₪5זוטסז ץ]השוקץל 5לחפותווסוסם 6%/יו060 חספאוססם הווהת זשזסוק<= 6%חהז6סח1 חו זהשוחנו006 860/6% שופח זטסץ 865% סד .זספנסזק זטוסץ חטז סם פ= פפשזק 1 זפ זס|קא= 85חז6לח1 60 ח6פוופ 2 6 ספי. זב זסקוח6ל 506 0 שוחבח שחל חו סקץ: חב ,הככ >סו61 ,טוחפוח 6וו= שח חכו 3. 6 06 666 השת! , +השחנ וסוס 606% זנוסץ זס] 300 6זס | תרשים 31.12: 0ז28/\ הספזחוו\ זהסותטססכ 6%ע60 מפיק דוח סיכום אשר בו תפורטנה הפעולות שתידרש לבצע כדי להשלים את תהליך ההסבה 0 סדנת לימוד 6.0 8\ 5 בחר האס תרצה להציג דוח סיכוס פעולה, לאחר השלמת תהליך ההסבה שיבוצע על ידי האשף. לאחר שתבחר את האפשרות הרצויה לך, לחצ על לחצן הפוחום, כדי להתחיל את פעולת ההסבה. דוח הסיכום המוצג בתרשים 31.12 יפרט את הפעולות הנוספות שתידרש לבצע כדי להשליס את תהליך ההסבה. הצגת התוצאות לאחר ש- 6ז28ו)\ חססהזטוו! %הסותט6ס א6ע6 יסייסם את פעולתו הוא יאחסן את אובייקטי 0600 5670060 החדשים שנוצרו על-ידו בפרויקט שבו נכללו הטפסיס המקורייס. קבצי קוד המקור של המסמך יאוחסנו בתיקיה בה אוחסנו טפסי הפרויקט המקורי, תוך שימוש בשמות הטפסים המתאימים עס סיומות מתאימות. לדוגמה, הסבת טופס שיאוחסן בקובצ |5%ח.1 ד5ם דוזח= תגרוס ליצירת אובייקט +חסוחטס6סכז56\ שיאוחסן בקובצ 1.208ז55ז00כ. כבר ציינו שפקדים שנכללו בטפסים יועתקו לאובייקטי +ח6וחט567006, תוך שמירה על מיקוס יחסי. בתרשים 31.13 תוכל לראות את הטופס המקורי ואת אובייקט +ח6וחט006ז056\ שיווצר ממנו. [חזס] .= : : : | וס : : תרשים 31.13: ממשק המשתמש של אובייקט %ה6טססכז056 זהה לזה של הטופס המקורי שממנו נוצר כפי שציינו קודס לכן, רוב הקוד שהיה בטפסים המקורייס יועתק לאובייקט +ח6וט006ז56. קוד שאינו חוקי לשימוש במסמכי 6%ש46 יווהה על ידי האשף ויוסב באופן אוטומטי להערות (פעולה וו תבוצע רק אס בחרת את האפשרות +00 6066 6 שו|א8עשח1 במסך 000085 של האשף). בתרשים 31.14 תוכל לראות קטע קוד שבוצעה עליו פעולת הסבת קוד בלתי חוקי להערות. [< ]ם). | (2006] הסט - 1ו60ןסזכו מ אס[ 0 ()א0110 81מ₪8ע00 וט שמהטבעק .1 1110280102 סמשטגוטסע 6%ט1סשג שם6 עמ סגוס ב6סמסושעסש כהח 6מ11 הַמבחס011+ שמך [חפאג]' 16 מש תרשים 31.14: ניתן לזהות קוד בלתי חוקי שהפך להערה על-פי מילת המפתח [\\סאה] פרק 31: מסמכי א6א60ה - 841 יצירת מסמך מורכב השטח הפנוי באובייקט זחסוחטסססז56(\ מוגבל ולכן תוגבל בכמות המידע שתוכל להציג במסמך יחיד. בהקשר זה מסמך יחיד מקביל ליישוס המכיל טופס יחיד. אך תוכל גסם ליצור מסמכים נוספים שייכללו בפרויקט, ולנווט ביניהס. תוכל גס לשלב טפסים רגילים ביישומיסם שיכילו מסמכי 6%ש860. בסעיפים הבאים נסקור את הפרטיס הקשוריםס לשימוש במסמכי 816% ובטפסים מרוביס ביישוס יחיד, המבוסס על מסמכי א6עוז₪6. פיתוח מסמכים נוספים כדי שתוכל להשתמש במסמכים נוספים ביישוס המבוסס על מסמך אפטסה, יהיה עליך ליצור מסמכיס נוספים ולהגדיר מנגנון שיאפשר לעבור ביניהס. התהליך שונה מעט מזה המשמש למעבר בין טפסים, מפני שאובייקט זח6וט56006(\ אינו תומך בפקודות 1080 ו-080!ח(\ ובשיטות צוסח5 ו-₪106 שזמינות בעבודה עס טפסים. כדי להוסיף מסמך נוסף לפרויקט, הוסף לפרויקט אובייקט %ח6וט006ז056 נוסף, על ידי בחירה בפקודה +ח6וחט06 0561 00 מתפריט 66%[סיזופ. הפעולה תוסיף אובייקט וח 5670060 נוסף לפרויקט, ותאחסן אותו בתיקיה 60%65//ט006ז056\. יש להגדיר שס שתחתיו יאוחסן האובייקט החדש, באותו אופן בו עשית ואת לאובייקט 567006 הראשון שצורף לפרויקט. אחר תידרש לשרטט את ממשק המשתמש של אובייקט 060%ט060כז058 החדש, ולהוסיף לפרויקט את הקוד שיאפשר לאובייקט זה לפעול. הוסף גורמיס אלה על ידי ביצוע אותן פעולות שביצעת באובייקט זח6וט6סכ0ז056\ הראשון. כעת הגענו ליימלכודתיי. היות ומסמכי 86/6% אינס תומכיס בשיטה ששסח5 (שנתמכת על ידי טפסים), נשאלת השאלה כיצד תעבור בין המסמכיס השוניס שייכללו ביישוס! התשובה היא על ידי שימוש בשיטה סַזִַסְהּחָ148 של אובייקט אחווזסמץת. השיטה מורה ליישוס המכיל לעבור לקובצ או לכתובת ₪1 ולטעון מתוכס קובץ. אס הקובצ שייטען יהיה דף 60/\, הוא יעובד באופן דומה לאופן בו עובד הדף המקורי. למעבר ממסמך ראשון למסמך שני, תוכל להשתמש בשורת הקוד המוצגת להלן: "סס/. 2/הח06ס0\" .8 חזבק. סכה 0 דססהטוטבוז.אהוהסקעון המאפיין חזהּק.קק מכיל את הגדרת נתיב הגישה למסמך הפעיל. השתמש בנתיב זה כנקודת מוצא לאיתור המסמך השני ותוכל לטעון אותו ללא בעיות, ואת בהנחה שהמסמכים מאוחסנים באותה תיקיה. כדי לתחזור מהדף השני לראשון, השתמש שוב בשיטה סְזַ6ְאְ8ּפוְט8\. השיטה משמשת בקטעי קוד לתגובה לאירועיס בשני המסמכים. ברוב המקריס האירוע שבקוד שלו שולבה קריאה לשיטה הוא אירוע 6סוו6. כאשר תעבור למסמך השני, שיס לב שלחצן 886% של זסזס|קאם 6%חזס%ח1 יופעל. תוכל להשתמש בלחצן זה כדי לשוב למסמך הראשון. אך למרות זאת כדאי שתשלב במסמך השני קישור ישיר למסמך הראשון, שייבנה תוך שימוש בשיטה סזַסְזְהּפָוא8, מפני 2 סדנת לימוד 6.0 8\ שייתכן שהמסמך הראשון לא יהיה הפריט הקודס ברשימת ההיסטוריה של היישוס המכיל. במצביס שבהס המסמך הראשון כלל אינו נמצא ברשימת ההיסטוריה, השיטה ס הפו עשויה להיות האמצעי היחיד שיאפשר לחזור אליו. שימוש והצגת טפסים מהמסמך בנוסף לעבודה עס מספר מסמכיס במקביל, תוכל לעבוד עס טפסים רגיליס ביישומיס שיתמכו במסמכי 460/6%. אס תרצה להשתמש בטופס בפרויקט של מסמך א60/6ג, צור אותו באותו אופן בו יצרת טפסיס בפרויקטים רגילים - על ידי שרטוט ממשק משתמש על הטופס וכתיבת קוד שיבצע את הפעולות הרצויות. כדי להציג את הטופס מתוך המסמך, תוכל להשתמש בשיטה צוסח5. לאחר מכן, כאשר תרצה להסתיר את הטופס, תוכל להיעזר בפקודה פסוחש. ראה, "אבני היסוד של 8856 |טפו/", פרק 3. טפסים אומנס יכולים להיות חלק מיישומים, אך הס אינס מטופלים באותו אופן בו מטופלים מסמכים. טפסים אינס מוכלים ביישוס שמכיל את מסמך 6%ע60, ואינם תלויים ביישוס המכיל. מכאן... פרק וה הציג מסמכי 6%/ו86. למדת כיצד מסמכים כאלה מאפשרים ליצור יישומיס שיפעלו ב- זפזס|קאם 66חז6שח1 או ביישוס מכיל אחר שתומך ב-6%ע60. למדת גם על הדמיון הרב שבין אובייקט זחסוחט6ססז056\ לבין טופס ביישוס רגיל. במהלך הפרק גם נגענו במספר נושאיס הקשורים ליצירת מסמכי 466% שנדונו ביתר פירוט בפרקים אחרים. מידע נוסף על נושאיס אלה תוכל למצוא בפרקיס הבאים: מידע נוסף אודות יצירה ועיצוב טפסים תוכל למצוא בפרק 3 אבני היסוד של 6 | 5ו/. + מידע נוסף אודות פעולות לניפוי שגיאות מתוכניות תוכל למצוא בפרק 9 יסודות התכנות של 6ו835 וַבּ150/. >* מידע נוסף אודות יצירת פקדי 460/6% תוכל למצוא בפרק 14 יצירת פקדי אסעו6, ובפרק 15 הרחבת פקדי 6%שצו16. * מידע אודות שיטה אלטרנטיבית ליצירת יישומיס המיועדים לפעול בסביבת ה-69/\ תוכל למצוא בפרק 31 דפי שרת פעילים. פרק 31: מסמכי אפש60ה | 843 2 6 ובּטפוצ ושימושים נוספים באינטרנט פרק 32: 8856 |508ו/ ושימושים נוספים באינטרנט | 845 מרבית הפרקים שנכללו בחלק וה של הספר שעוסק ב-60/), התמקדו בשימוש ב- 88566 |1508/\ כדי להוסיף לדפי פ6/\ יכולות החורגות מעבר לאלו שניתן לממש בדפי ד רגילים. דפי פסש\ הס אולי אופן השימוש הפופולרי ביותר ב-69/\, אך השימוש ב- 8856 |150\ בסביבת 60/\ מאפשר לעשות דבריס נוספיס רבים, כגון הפעולות המפורטות להלן: %, > שילוב דפדפן 65/\ ביישומיס. > משלוח וקבלת הודעות דואר אלקטרוני. + העברת קבצים על ידי שימוש בפקד ז500ח9ד +6חז%ח1. רשימה זו אינה רשימה מלאה של האופניס שבהס ניתן להשתמש ב- 8856 |8טפו\ ב-60/\, אך הנושאים שנכללו בה עשוייסם להיות רלוונטייס למפתחיס רבים. פרק זה יהווה מבוא מעשי לנושאיס שברשימה. הוספת יכולות דפדפן ליישומים במקריס רביס תרצה לשלב יכולות דפדפןו 60/\ בתוכניות רגילות ב- 8856 |1508/. לדוגמה, ייתכן שתרצה לשלב קישוריס לדפי פ6/\ שיכילו תיעוד של היישוס, או מידע מועיל אחר. תוכל גם לשלב ביישומיס פקדי זספאוסזם שיאפשרו למשתמשים להציג דפי 0 בתלון המוכל בטופס של 8856 |אטפוצ. בעזרת שני אופני פעולה אלה תוכל לשלב יכולות דפדפן ביישומי 88516 |08פו/\. יצירת דפדפן בטופס הדרך הפשוטה ביותר בה תוכל להוסיף תוכן המאוחסן באתר 60/\ ליישוס, היא על ידי שימוש בפקד ז0פשו60810)\ שמותקן יחד עס 4.0 זסזס|קאם 66חזסשח1. תחילה יהיה עליך להוסיף את הפקד לפרויקט רגיל מסוג 565, על ידי בתחירה בפקודה 65 מתפריט 666[סזם ובחירה בפריט 6076015 6%הז%6ה1 +0%ס5סזסוו₪ מתיבת הדו-שיח שתוצג לפניך. לאחר מכן יהיה עליך לשרטט פקד זספאוסזםס6/\ על הטופס ולהגדיר את הגודל הרצוי. כדי לאפשר לפקד ז6פאו0ז608/\ לפעול, כתוב שורת קוד יחידה: "הזסס. כ 0ס66טף.צא/ /: קה" 810866 1 סוס 6 \\ השיטה 9866וצ8 של פקד זספאוסז608/\ גורמת לפקד להתחבר לכתובת ]01 שפורטה בפקודה ולאחזר ממנה דף 68/\ כמתואר בתרשים 32.1. משוס שפקד ז86ו60870/\ פועל בתוכנית 8856 |ףטפו/, הוא אינו מכיל כברירת מחדל את סרגל הכלים והפקדים האחרים שקשורים ב- זסזסוקאם 66חז6זח1. אך תוכל להוסיף לפקד לחצני פקודה משלך ופונקציות מותאמות אישית, שתאפשרנה לו לנווט לאתריס הרצויים. 6 סדנת לימוד 6.0 8\ |< |וםן=. וזספאסזם פס .₪ ןס וחזב-בסה .ושוא :ות . ו ממרדדהואמה) | | א 0 ו | פוטס 015013 ]משוחגוססים תרשים 32.1: פקד ז56ש0ז600/\ מאפשר לשלב דפי 60/\ "חיים" בטפסים דפי 65)\ עשויים להכיל גס אלמנטים גרפיים ופריטים אחרים, שהורדתם מה-60/\ עשויה להימשך זמן רב. הפעולות תבוצענה על ידי פקד זספווסזם60/\ באופן אסינכרוני מבלי להפריע לתוכנית להמשיך בפעולה רגילה. אך סביר להניח שתרצה לדעת מתי תסתיים הורדת דף מסוים. בוודאי שמת לב שהטופס המוצג בתרשים 32.1 מכיל תיבת רשימה שבה מוצג דיווח על מצב פעולת הדפדפן. תיבת הרשימה מנוהלת על ידי קטע קוד שפונה למספר מאפייניס ואירועים של פקד ז56או0ז8ט6/\: % * המאפיין שְ5ט8 של הפקד הוא מאפיין בוליאני שמכיל ערך 6טזד בכל עת שהפקד מצוי במצב תקשורת עס שרת 6₪/\. ביישוס הדוגמה המוצג בתרשיס 32.1 נעשה שימוש בפקד חוד לצורך בדיקת ערך המאפיין ועדכון התצוגה בתיבת הרשימה. > אופן הפעולה של שיטת 5000 דומה לוה של לחצן 5000 שבסרגל הכלים של ז6זס|קאם 6%חזססח1. השיטה יכולה לשמש לעצירת פעולת הפקד, כשהורדת הדף נמשכת זמן רב מדי. + אירוע 606!מה%60חסוחט6סכ הוא אירוע שמאותחל על ידי פקד זספאוסזםס6/\\ לאחר שהאתר הרצוי מוצג בשלמותו. האירוע לא יאותחל אס מאפיין 6)פופו/\ של הפקד יהיה 8!56=. הקוד שנדרש ליצירת הדוגמה שבתרשים 32.1 יובא בתוכנית 32.1. תוכנית 32.1: ק558./8/%\8₪0 - שימוש בפקד זספשסזםס6/ו. ( )או סאְהחוע01%3ח6 500 סהטווק 6 = 0!6ופו/\. 1ז50אוסזט ט6\\ + ך. ₪1( סאְהּחועב\]. 1ז50אוסזט טס \\ 0 = |העסח1. חוהזרח+ סד = 60וסהחם. חוהוזוח טט5 0חם פרק 32: 8856 |8ט5וש ושימושים נוספים באינטרנט | 847 ( )זסוחוד חוהויזזרחץ 500 ססבּעווק הסח ד סט ד = ץפטם. 1ו50אוסזט טס + "... 6חואזס/\\" רח565%8005.00106! 56 סד = 556 1 ז50אוסז ס6\\ 6 = 6סוסהחם. חוהוזוחץ + 0חם 50 0ח= (חהוזה / 5( .₪1( 001660 5 ספוסק |3\ץם )66!קר סז הסוהטססכ 1זספצוסזםטט/\\ פט5 סזפטווק " .6060!רחסס 15018 +ה6ר 06" ה00106. 150508005 טט5 סחם הפעלת הדפדפן מהיישום בנוסף לפקד ז₪56ש0ז608/\, תוכל גס להפעיל את הדפדפן כתוכנית נפרדת. אופן הפעולה יאפשר למשתמש יותר חופש פעולה מפני שהוא יאפשר לו לשנות את גודל חלון הדפדפן ולהשתמש בכליס המוצעיס בדפדפן רגיל. יתרון נוסף הוא ששיטה זו אינה צורכת שטח יקר בטופס, כפי שקורה עס פקד זספוו0ז608/\ שמוטבע בטופס. יצירת קיצור דרך לאינטרנט הצעד הראשון למעבר לאתרי ט6/\ מסוימיס הוא הבנת המושג קובץ ₪1ש, המכונה גס קיצור דרך לאינטרנט 600זסח5 ז6חז6ח1). קיצורי דרך לאינטרנט דומיס לקיצורי דרך רגיליס, אך הס מצביעיס על אתרי ט6/\ במקוס על קבצי יישומיס. לחיצה על קיצור דרך לאינטרנט פותחת את הדפדפן ומנווטת לאתר שקיצור הדרך מייצג. קיצור דרך לאינטרנט הוא קובצ טקסט פשוט (למעשה קוב 1א1), שמכיל את כתובת !081 של האתר הרצוי. המבנה הקוב הוא כדלקמן: [ +50 תח /הח60. סף. שאו /: סח = ןח רשימת 8סזווסצ8] של זסזס|קאם 6%חזססה1 היא למעשה אוסף קבצי |אע. אתר את התיקיה 5פטוזסש8"] בדיסק הקשית ותוכל לראות את קבצי 081. המבנה הפשוט של קבצי 081 מקל על יצירתס ב- 8856 |08פו\. תוכל ליצור אותס באמצעות פונקציות לעבודה עס קבצי 1א1 שתוארו בפרק 21, או על ידי יצירת קוב טקסט פשוט: 1 5 זטסט זס " וח קום ד\:6" חסקס "[ טס סח6%5ה607ח1]" ,1 זחווק "/רח0ס6.6ף. צועעצו/ /:קחח= !חנ" ,1א זחווק 1 6|056 קטע הקוד שהובא, ייצור קיצור דרך לאינטרנט בשם |ח! קואםפד. לאחר שתיצור אות, תוכל ללחו על הסמל שלו כדי להיכנס לאתר ט6/\ שעליו הוא מצביע. 8 סדנת לימוד 6.0 8\ ראה: "שימוש בקבצי 1א1", פרק 21. הפעלת קיצור דרך ב-60// יש כמה דרכיסם שמאפשרות להפעיל קיצור דרך לאינטרנט מתוך 885 |טפו/. תוכל לבצע קריאה ל-821, או לעבור לתוכנית אחרת, שתפתח עבורך את הדפדפן. קריאה לפונקציית 1קג, 66016א₪!|506 תפעיל את התוכנית שקושרה לסיומת 1אש. אס כל התוכניות הרלוונטיות הותקנו כנדרש במערכת שלך, תוכנית ו תהיה דפדפן ברירת המחדל שלך. בדומה לפונקציות 471 אחרות, תצטרך להצהיר על הפונקציה 56 בטרס תוכל לקרוא לה. ראה: "שימוש בפונקציות 471 ב- 8856 |8טפו/", פרק 20. קטע הקוד הבא יעלה אתר 65/\, תוך שימוש בפונקציה 6660%66א₪!|508 ובקובצ 1 קום ד \:6 : 1 = |הוחסא/\/\50 5 זפחס6 6 הז ' חַחס ] ₪5 |00/3ה5! חחוס סא/צשח 555/\ספ' פחס | 5 שססחו/שו חחוס ( |הואחסא/)סת5 צ\5 ,"" ,"" ," ונקות ד\:6" ,"הססס" ,שוססתו//])6606אם]|6ח5 = |3/זסחו הערה: פונקציות 1ק8, 506|!5666016 |-660180!6אם טח יכולות לשמש לבדיקה מי התוכנית שקושרה לסיומת מסוימת ולהפעלתה. פונקציות אינן מוגבלות רק לשימוש בקיצורי דרך לאינטרנט, וזוהי הסיבה שבעטיה פרמטרים כה רבים נותרו ריקים בדוגמה. השימוש בפונקציית 1קה, 6600%6א8|!5ח5 לשס כניסה לאתר ס6\\ מסוים הוא אומנס פשוט מאוד, אך קיימת דרך עוד יותר פשוטה לעשות זאת. תיבת 000% משופרת כדי להמחיש כיצד ניתן לפתוח אתר 65/\ מסוים מתוך 8856 |508/, ניצור תיבת 0 שתכיל קישור לאתר 65/\. תיבת 190% היא טופס (שברוב המקרים ניתן להציג אותו על-ידי בחירה בפקודת התפריט %ש0פ1) בו מוצג מידע אודות התוכנית. 6 |508\ מציעה תבנית לתיבת 400% שעליה נבסס את הפרויקט שלנו. בצע את הפעולות הבאות כדי ליצור את יישוס הדוגמה שיציג תיבת זטססח : 1 צור פרויקט חדש מסוג 55 0870ח500. 2 לחצ על לחצן וחזס] 06 או בחר את הפקודה וחיזס=] ₪606 מתפריט 66%[סזס כדי להציג את תיבת הדו-שיח וחזזוס=] 00. פרק 32: 8856 |8טפוש ושימושים נוספים באינטרנט | 849 3 בחר מתיבת הדו-שיח את הפריט פַס!13פ 900% ולחצ על לחצן ח6קס. לתוכנית יתוסף טופס חדש שייראה כמו הטופס המוצג בתרשים 32.2. |<. קםקגעוא וטספ .₪ 1 ו ו ויוי 0600 שי ... הוחו 15 תרשים 32.2: 8856 |150/\ מציעה טופס סטנדרטי לתיבת זטסטה 4. הקטן את תווית תיאור היישוס חס0קח656סופ! כדי לפנות מקוס לפקד תווית נוסף על הטופס (למשל, שנה את הגדרת מאפיין 610% של התווית ל-550). 5 שרטט פקד תווית נוסף מתחת לפקד חססקו56סס|פ! וקרא לו וחטוסו. 6. הצג את חלון המאפייניס של פקד |מטופ! ושנה את הגדרות המאפיינים כלהלן: > הגדר את המאפיין זסו660זס= כ-6טו8 +חפנו. > הצג את תיבת הדו-שיח זחס= והפעל את המאפיין 6חו|זססח/ש. <* | הצב במאפיין ח63%0 של הפקד את הכתובת: חחסס.קזס6סטף. צואוצצ. לאחר שתבצע את הפעולות, התווית תראה כמו >חו|זססעו. 7 הוסף את הקוד המובא בתוכנית 32.2 לשגרת אירוע 01166 של פקד התווית. הקוד משמש לפתיחת כתובת |1חש. תוכנית 32.2: ק8/. סוםס דפא1 - פתיחת אתר ס6/\ מתוך טופס. ( )אסו01 | |חטופ! פט5 סזפטווק ססקורחואה וטע ,"[ו.60. ורחה-0סח.צשצו//:קח 6א6.זסזס|קא6\ פשססהוצו\:6" |ו6חפ 50 0ח= כדי לנסות את התוכנית, הצג את תיבת 400% ולחץ על כתובת ₪ שתוצג בה. בדרך כלל תיבת 00% מוצגת בעקבות בחירה בפקודה 400% מהתפריט. אך לצורך ניסוי התוכנית, תוכל לשלב בשיגרה 1080 חחזס] את שורת הקוד הבאה: צוסח5.)וסט הוח תיבת זטספ8 המשופרת מוצגת בתרשים 32.3. 0 סדנת לימוד 6.0 8\ |< וא ד א! וטספ .₪ סאפסזפאו ₪ 0 חתסופזס/ר ]הפו זוי בוסטטוסחו 6]ב!קוח6! זב חבז5 3 15 חזס! פוחד בחס|3 וסוס |סזוחסס |ספב| פח) 30060 עצבה 6 .סופ 0 זו חס אסו .אחווזסקעו! 3 6או| סב זן 36 סז טס הזו :06 זווס ופול /החסס.סטום אועטעש// :כזות ...‏ חוחזב א 590 |]... | תרשים 32.3: פקד |806] שעוצב נכון עשוי לשמש כ-אחווזסקץה "מזויף" תכנות דואר אלקטרוני כיוסם מתקבל הרושם שלכל אדס כמעט יש דואר אלקטרוני (וְ8\-5). דואר אלקטרוני הוא אמצעי אידיאלי להעברת מסרים אישיים שנהוג להעביר בדואר רגיל, והוא מאפשר גם להעביר קבצים ומידע אחר. לדוגמה, באחת החברות שעמה אני עובד קיימת תוכנית היימושכתיי נתוניס ממסד נתוניס, מאחסנת אותם בגיליון אלקטרוני ומפיצה אותו לאנשיס להס הוא דרוש. כל הפעולות מתבצעות ללא מגע יד אדם. כדי להתמודד עס ביצוע הפעולות באופן ממוכן, דרוש אמצעי שמאפשר לקייםס אינטראקציה עס מערכת דואר אלקטרוני מתוך 885 |508ש. טכנולוגיית 001606 808 ח60|!8007800 - 60 (המכונה גם 60/6 6705065 00ו165580 ו- 8הו165580] 015) היא אמצעי כזה. הטכנולוגיה היא ממשק מונחה אובייקטיס המשמש לפנייה ל- 0חו165580!] פשוססחו/צ. בעת התקנת גרסאות מסוימות של תוכנת אססטס או תוכנת 06ח8ח6א5, מותקניס בתיקיית המערכת גסם קבצים בשס וס 0 ו- 11ס. וואדהספ6. הערה: פקדי קוא ו- 1קג [קהוא הם כלים לטיפול בדואר אלקטרוני שנכללו בגרסאות קודמות של 8856 |808ו/. הכלים מוצעים לשימוש גם ב- 6 8856 |80ו/, אך 0|5 1655808 הוא נוח יותר לשימוש. כדי שתוכל להשתמש ב-600, הוסף לפרויקט הפניה לקובצ 600.11 על ידי כך שתבחר את הפריט צזבּזטפו! 1.2 620 50%6סזשו₪1 בתיבת הדו-שיח ₪6)660665 (שאותה תציג על ידי בחירה ב-165ו6קסיוק, 61660065א), כמתואר בתרשים 32.4. לאחר שתוסיף את ההפניה הקש 2" כדי להציג את זספשסזם 001660. זספאוסזם 606[פס יאפשר לך לעיין בכל האובייקטים, המאפייניס והשיטות שנוספו לתוכנית על ידי הוספת ההפניה. פרק 32: 8856 |8טפוש ושימושים נוספים באינטרנט | 851 |< | 1 - 06%ח6/076 :65ח0ז6/ס סופב|\ה/ים פחסוס3ּ6ו!קקה זס=] 835% |הטפו/ | 5 זנוטססוטזק בוחה 0(6665 שההלחטוץ 885% |הטפוי וש 5 חב 6655[פס א835 |הטפו/ |ש) 0 שו | 6פווסזם / / |+. (000) סוחס 6.0 א5|6י (01508) 5|סזלחס= 6.0 56 ]50 ספבו (-: וסוס ץז זט | חס 500 שיוסה 1 | פ₪ | ץז זס!| 6קץ וחטש שועיס61 עוסמ 1 |+. סל חס-) 66תשזשחס-> אשעוס סמ [ 1 1 ץופק 15י] וס הסה זטוזי] החזס)זסק סם | 1 66% ] ו 50 03530356 שקה | | . 5 חן 2.0 זפזס|ק<= 66חהחזס?זפק הסוסבּסווקקה - ח 0 (חפו) זפזסום= 6סחהוחזסזזסק הסו3-ווסם, ץזהזטו 1 21. 1 6000 :)ספססוו -] 0 132\600ם ד5/5\ סז :106800 יַסַהַהְהַח 1 תרשים 32.4: שימוש ביכולות 600, מחייב התקנה של קובץ 650.51 במערכת מה ב-60/\ הדוגמאות המובאות בסעיף נוצרו על ידי שימוש בתוכנת א>ססוטס. חומר תיעוד של טכנולוגיית 600 תוכל למצוא באתר אספסזסוו!: 6 א 60.א 50סזסורח. אצ הרחיבה את מיגוון יכולות 60 להעברת מסרים שנכללו ב- 5.5 פטְחהּחסא= הרבה מעבר לנדרש. הערה: גירסה 600 קודמת, לפני 5.0 06ח8ח6אם ו-אססוטס נקראה 16558009 6ע₪60. כניסה למערכת דואר אלקטרוני הצעד הראשון בהתחברות למערכת דואר אלקטרוני מ- 8856 |1508/ הוא יצירת ח0סו5655 8חו165580!. ההפעלה (ח0ו5655) מייצגת חיבור בין התוכנית שלך (שכתובה ב- 6 |1568/) לבין מערכת הדואר האלקטרוני. להתחלת הפעלה חדשה, יהיה עליך ליצור אובייקט חסו5655 חדש, ולבצע קריאה לשיטת ח0ףס! שלו, כמתואר להלן: 6% 5 חסו5055[סס וחום ("חסו1.5655ק 1" )676806000[60 = חסו5055[סס 56% חססס |.חסו55ס5[סס בעת הפעלה אינטראקטיבית של 56008006 או אססטטס, ייתכן שיהיה עליך להזין שס משתמש, פרופיל או סיסמה, בהתאס לתצורה שהוגדרה במחשב. בדוגמה שהובאה כאן לא נכללו פרמטרים אלה, כך שכאשר תריץ את קטע הקוד, תונחה להגדיר את הפרמטריס הדרושיס לכניסה למערכת. 2 סדנת לימוד 6.0 8\ כדי שתוכל ליצור מערכת ממוכנת לטיפול ב-!88!-5, יחיה עליך למנוע את הצגת תיבות הדו-שיח. עשה זאת על ידי הגדרת פרמטרים נוספיס בקריאה לשיטה ח0ף10: 6 ,8!560= ,"הח 6והסזק טס" הססס |.חסו5055[סס שני הפרמטריסם הראשוניסם בשורה הס שס וסיסמת הפרופיל. אם הפרופיל שלך אינו דורש הקלדת סיסמה, תוכל להשאיר את פרמטר הסיסמה ריק (כפי שעשינו כאן). הערה: ניתן להגדיר פרופיל משתמש על ידי שימוש ביישומון דואר ופקס שבלוח הבקרה, או על ידי בחירה בפקודה 065סוע561 מתפריט פ|ססד של אססוזטס. הפרמטר השלישי, פַסוהפששסח5 הוא ערך בוליאני, הקובע האס תוצגנה תיבות דו-שיח במהלך הכניסה למערכת הדואר האלקטרוני. אס בפרמטר מוצב ערך 6טזד, תוצג הנחיה להזנת פרמטרים, גסם אס בשורת הקריאה לשיטה נכללו כל הפרמטריס הדרושים. אס תרצה שתהליך הכניסה למערכת יתבצע באופן אוטומטי לחלוטין, יהיה עליך להציב ערך 1856 בפרמטר זה. הפרמטר האופציונלי האחרון, חסו5655/ו₪6 קובע האס בתהליך הכניסה למערכת יוגדר אובייקט חסו5655 חדש, גס אס אובייקט כזה כבר קייס. הצבת ערך 58156 תגרוס למערכת לחלוק הפעלת וַ88\-5 קיימת עס יישום אחר, כלומר אס אססשטס כבר פתוח, המערכת לא תידרש לבצע שוב את תהליך הכניסה. משלוח הודעה היתרון העיקרי של טכנולוגיית 650 הוא שהיא משתמשת בתחביר הרגיל של עבודה עס אוספים (60]!660005) לייצוג 6558965 ואובייקטיס אחריםס. באוספים כבר דנו בפרקים אחרים, כך שסביר להניח שהפעולות הדרושות להוספה ולגריעת אובייקטיס לאוסף כבר מוכרות לך. בדומה לאוספים אחרים, גס במקרה זה ניתן להשתמש בשיטה 400 של האוסף ליצירת אובייקטיס באחד משני אופנים: על ידי החזרת הפניה לאובייקט, או על ידי שימוש בפרמטרים שיגדירו את מאפייני האובייקט. ראה: "יצירת מחלקות המכילות אובייקטים", פרק 16. למשלוח הודעה על ידי שימוש ב-600 בצע את הפעולות הבאות: 1. הוסף אובייקט 655806 חדש לאוסף 16558865 של תיבת אסטחן. 2 הגדר את הטקסט והנושא של 11655806 וצרף קבציס לאוסף 65חסוחח86ה שלו. 3 | צרף שמות (ו/או כתובות) נמעניס לאוסף 65ח6וק8661. 4. | פענח שמות נמענים כדי לזהות את הכתובות הממשיות שלהם. 5 קרא לשיטה 5600 כדי לשלוח את ההודעה. פרק 32: 8856 |8ט5וש ושימושים נוספים באינטרנט | 853 הקוד שיבצע את הפעולות הוא קצר וקל להבנה: חס 0060ס! ץ680ז|3 8/6 6 6וח55...' 6 35 655806!ז[טס וחום חסו5655. 1301 85 חסו55ס5[סס וחוס אסטח1 06 0+ 655806 ששסח 3 00 0 56550.1 [00 = 00[1!1655806 56% ]א ץ000 0חה 500[60 06 56%' "1655806 05% ד" = 655306.5010[666ז[פס "65500 605% 3 ץ|חס 668% 05% 3 15 פוח ד" = 6 ד.655806!ז[פס 336% חה 00 ,, "+60 ץ|הזהסו" 5.00ח6 רהה 655306ז[סס "5 |א.+הסקשץו\:" 563 5% 6 60 +ה6וקו66ז 3 00 46115000 ,, "רה010100%.00 051660" 400 %5ח6ו 60 655806 וטס 6506 66105 1655306ז[פס 6 6 0ח6ס' 0.0[ בקטע הקוד ראית שטכנולוגיית 600 משתמשת באוספים לניהול האובייקטיס 6, ש>חסוקו60 ו-%חהסו ה6מלשה. קטע הקוד נפתח ביצירת אובייקט ₪655806 חדש ואחר מתבצעת קריאה לשיטה 0ח56 לצורך משלוח 1655806]. השיטות והמאפייניס של אובייקטיסם אלה מוגדריס בקובץ ‏ ]650.01 וניתן לעיין | בהס באמצעות זספוסזם 00[60. הפעולה היחידה בקטע הקוד, שעשויה להיות לא ברורה היא נושא פענוח שמות משתמשיס. במערכת הדואר האלקטרוני, בפנקס כתובות (8006 007655), פעולת הפענוח (חסטט!650א) היא פעולה פשוטה שכרוכה בנטילת שסם יידידותייי שמופיע בפנקס הכתובות (כגון אזס\\ + 2806) והמרתו לכתובת שמשמשת את שרת הדואר האלקטרוני (כגון החס6.6חשו6ר 6050 חזוח15 :ק ד 5). 4 סדנת לימוד 6.0 8\ גישה לתוכן הודעה זה עתה למדת כיצד לשלוח הודעת דואר אלקטרוני, על ידי שימוש ב-600. תוכל להשתמש באוסף 116558465 לגישה להודעות שטרס נקראו (או להודעות שנקראו) תוך שימוש בקוד 8856 |1508/. אחד השימושים האפשריים של יכולת זו הוא: משלוח הודעת דואר אלקטרוני עם נושא מסוים, ואחר שימוש בתוכנית שתענה באופן אוטומטי, או תאחסן את התגובות במסד נתוניס. נתייחס כעת לדוגמת הקוד הבאה: 5 00156550 ח1 1655306ז[טס ₪86 זס= הסח ד שטזד = 6806זח(\.655806ו[טס +[ החד ("₪600650 6869100" ,655806.500[660ז[פס)חפחז + 6% 00[]1655806.7 665511655806סזק + 0חם + 0חם 6 )אס קטע הקוד נעזר בלולאת 5860 זס=] לביצוע מעבר על הפריטיס שבאוסף ₪6558065. אס הודעה כלשהי טרס נקראה (ואת זאת ניתן לבדוק לפי ערך המאפיין 680זחט שלה) ושורת הנושא שלה מכילה ביטוי מסויס, מתבצעת קריאה לפונקציה 66551655806סזס, שהוגדרה על ידי המשתמש. הפונקציה 06655%/655806זק, שמקבלת את הטקסט ההודעה כפרמטר, יכולה לבצע מיגוון פעולות על ההודעה, ביניהן מענה או הוספת תוכן ההודעה לטבלה במסד נתוניס. קל לעבוד עס הודעות דואר אלקטרוני, מפני שניתן להתייחס לכל הודעה כאל אובייקט עצמאי שיש לו שיטות ומאפייניס. ניתן להיעזר בלולאות חס8ם...זס] כדי לעבור על הפריטיס באוסף ולבצע עליהם פעולות רצויות. קטע הקוד הבא ידפיס את תוכן שורת הנושא של כל הודעה שטרס נקראה, ונשלחה לאחר 7/4/1998: 001565505 ח1 1655306ז[טס ₪86 זס= הסח ד 6 ך = 0060 655306.50\[טס 0חג סט = 680ח(\. 55306סוז[פס זז חסחך "7/4/98" =< %ח656חו 655306.7\ו[פס 1 7 ;8 5600107 655800!][טס 6חוזק. פטטסס + 0חם + 0חם 6 )אסא קטע הקוד נעזר בסדרת משפטי 1 שבודקיס האס ההודעה הפעילה טרס נקראה, האס היא הועברה לטיפול והאם היא נשלחה לאחר 7/4/98. טיפ: שימוש בממשק 600 עלול להפוך את התוכנית למעט פגיעה יותר לשגיאות, משום שהיא תאבד את השליטה על אינטראקציה עם המשתמש. מסיבה זו אני ממליץ שתכתוב פונקציה לביצוע כל אחת מהפעולות הדרושות (כגון כניסה למערכת, משלוח הודעה וכדומה) אשר תשלב קוד לאיתור מצבי שגיאה וטיפול בהם. פרק 32: 8856 |8ט5\ ושימושים נוספים באינטרנט | 855 בסעיף וה ייהעפנו מבטיי על ספריית 600. אס תרצה להציג את רשימת השיטות והמאפייניס המוצעים על ידי הספריה תוכל להשתמש ב- זספוסזם ‏ 60[פ0 או לעייו בקובצ העזרה 650.0%. פקד ז16פחבּ וד ז6ח'וסזחו1 פקד ז50ח9זד 6%חז6זח1 הוא כלי נוסף לעבודה בסביבת 60\\ ב- 8856 |8טפו\. הפקד מאפשר להתקשר למחשב אחר לצורך העברת קבצים. הפקד מהווה ניסיון להקל את השימוש בשני פרוטוקוליס פופולריים: פדדח ו-פד". פרוטוקול סדדח הוא הישפתיי שבה דפדפני 60)\ מתקשרים עם שרתי 60)\). אס כבר התנסית בהעברת מידע באמצעות ה-60/\, סביר להניח שזכית להכיר את פרוטוקול פד (66פחפזד 6|₪ (05060זק). בסעיף זה נציג דוגמאות לשימוש בשני הפרוטוקוליס. אחזור ‏ !ו דו בגישה לדף 60)\, הדפדפן נעזר בפקודה 651 (מוגדרת בפרוטוקול פדד4) כדי לבקש משרת 60/\ מסמך. למשל, כשתקליד כתובת |וח.66ח68ק/החסס. 000?. ואו /:כסח, הדפדפן יתקשר למחשב שכתובתו 000.000).אצ ויעביר אליו את הפקודה |וחח.05ח068/ ד65. קובצ ואד יוחזר לדפדפו במבנה טקסט פשוט והדפדפן ישתמש ברכיבים הלוגייס שלו כדי לעצב את הטקסט באופן הרצוי. בעת שימוש בפקד ז5/6ח8זד 6%חז6סח1 בשילוב עס פרוטוקול פדז₪ תוכל י"למשוך''י קוד וד שאותו תוכל לעבד בתוכנית שלך. לדוגמה, מדי פרק זמן מסויס תוכל להעביר לאתר ט6/\ דרישה לקבלת נתוניס על מנייה מסוימת. התוכנית שלך תוכל לשמור את הנתוניס שיתקבלו במסד נתוניס של 501, שיאפשר למשתמשים נוספיס להציג נתוניס אלה. כך שניתן לומר שפקד ז805060זד 6%חז6זח1 יכול לשמש לאיסוף נתוניסם אוטומטי מאתרי ט6/\. כדוגמה, נציג שימוש בפקד לאחזור קוד 4191 שיוצג בטופס. צור את פרויקט הדוגמה על ידי ביצוע הפעולות הבאות : 1. פתת את 885166 |8טפו/ש וצור פרויקט חדש מסוג 5אם 0810ח508. 2 הצג את תיבת הדו-שיח ח6הסקה60 66[סזק והוסף לפרויקט הפניה ל- 6.0 |600₪0 ז500ח8 ד 6%חוססח1. 33 שרטט מופע של הפקד על הטופס. הפקד יוצג כסמל, ללא תלות בגודל בו תשרטט אותו. 4 הוסף לטופס תיבת טקסט וקרא לה 6081 ולחצן פקודה בשס 601646 0וחס. לאחר שתשלים את ביצוע הפעולות, הטופס שלך ייראה כמו וה שמוצג בתרשים 32.5, ותהיה מוכן להוסיף לפרויקט הדוגמה קוד. 6 סדנת לימוד 6.0 8\ |< |ם]ן- | 6קחוהּא = וסזוחם:) זט)פח3ּ:ז ז וסחזסוח| .₪ תרשים 32.5: פקד ז500ח8זד 6חז6זח1 אינו מוצג באופן אוטומטי בארגז הכלים פקד 85667 ד 6%חז%6ח1 תומך באירוע אחד, 5%90607080060. מטרת האירוע הוא להודיע לתוכנית על התרחשות פעילויות שונות. לדוגמה, הפקד מצוי במצב אחד בעת התחברות לשרת 60/\, ובמצב אחר בעת אחזור קוד 1אד. המצב הפעיל של הפקד מאוחסן בפרמטר 5986 של שגרת האירוע. הזן כעת את הקוד לאירוע 060ח5:900608 של התוכנית, אשר מובא בתוכנית 32.3. תוכנית 32.3: ק8/. .סש דשא1 - אחזור ואד גולמי משרת 60\\. (ז0006ח1 5 55906 |3/\ץ)55816637060 10661 סטש סספּטווק 6 6856 50|606 0 56 (100)חח6ז06. 1061 = קוחס 5 "" <> כוח6 57 6ווח/\ סם ;קרח6 51 >חוזק. 6 (100)אחוח066. 6%1ח1 = קוחס ]5 קסס | %חוזק. 6 זסזז סו 6856 "| סאהאם" ,|61063ע ,10ח561ח56500. 1ז6ח1 80 פה סחם טט5 סחם קטע הקוד מתייחס לשני מצביםס בלבד, 16₪650075660700!60660 ו-זסזוםסו. | מצב 0 166500056 מציין שהפקד סייס לקבל מענה על בקשה. השיטה אחטח6606 משמשת לאחזור הטקסט מהמאגר (ז6אטם ) ביחידות של 100 בתיס בכל פעס והדפסת הטקסט שאוחזר על הטופס. הערה: רשימה מלאה של המצבים שבהם תומך הפקד ושל משמעויות כל מצב תוכל למצוא תחת המושג )ח6עם 8860ח6008ז5%8 בעזרה המקוונת. פרק 32: 8856 |8ט5וש ושימושים נוספים באינטרנט | 857 קוד שגרת האירוע שהובאה בדוגמה הוא אומנס המרכיב העיקרי בתוכנית הדוגמה, אך עדיין יהיה עליך להוסיף קוד שיטפל באירוע 616% של הלחצן 608607166 שייזוס את העברת הבקשה. קטע הקוד בתוכנית 32.4 ייעזר בשיטה 566016 של הפקד, כדי להעביר את פקודת פרוטוקול קדדו : תוכנית 32.4: ק0./8וםס ד₪א1 - השיטה 660%6א5. ( )1108 60601606 50 סספּעווק קז 6 = |סססססזק. 1ז6ח1 "/ ד" ,( 00(₪1ס)050 סלטססאם. נזסחז 0 ט66א5]|ו50. נססח1 6ווח/\ סס ססחס/עםסס קסס | "!חספ" אסם ₪50 טט5 סחם לאחר שתזין את הקוד, הרצ את הפרויקט והזן בתיבת הטקסט כתובת 81ש. לחצ על הלחצן, וטקסט 471 יוצג על הטופס כמתואר בתרשים 32.6. |< ום). . 6קחזהּא= |סזוהס:) זט/פח3: 7 ופחז6וח! .₪ 6 טסב שאו :קןזר]=]פזר] 56בפ > <6|ו/ > וססחב ‏ <ש|זו1 > <בבסר)|> <ווחור > <-- )וספחו! :זסזז --!> 3 >< 436 סב /<ם >< הסט .ססרה ע.[וב חח :כזוה? )6 רחסר]/" =]זר] > 56370 30/3006 50/]=]פזה] > <0ז63 6=5גו|ב/י )והתפופ=6כע) וגוקחו> - <3/><ם/ חב אוס!|ם/ץ'<ם > <קץ/ז=)פזו] > - 8% >563100 6|ק60? 5/ז=]זו] > - <3/ 305% <פוח/]ז=]סזו] > - <3/ >]ה306 |6/ים] [ <18/ז=)סזו] > - <3/ 1389111005 <6]=]/01זו] 8 > - <3/ 615008|5%?]<זם/ז=/8זו] > - <3/ 365% ב <ום/ז=)6זו] > >= < הסוס .ססר |והרח// :קזוח" =61זה 3 ><זם ><3/ 31% <סץ/ז=]פזו] > - 8% 3|60081%-) 08 /]=]6זו] > - <3/ 30616 <חַכ/ז=]פזו] > - <3/ >!ססו]ב ל ע12<74/]ז=]פזו] > - 8 48008%] 0035 7 00/ז=]6זו] > החסס. ססרה ע.טשואוש// :סזר! | 8 ש/ז=]6זו] > - <8/>/ 1 <ף)/ז=)סזו] > תרשים 32.6: פקד ז5060ח8זד ז6חזסזח1 יכול לשמש לאחזור קוד | מאתר טפש בתוכנית הדוגמה הצגנו את תוצאות הפעולה על הטופס. כדי לעבוד עס קוד !אד כמחרוזת, אחסן אותו במשתנה מחרוזת או בפקד תווית. כאשר תסתיים פעולת אחזור קוד ₪11 מהאתר, תוכל להיעזר בפונקציות סטנדרטיות לטיפול במחרוזות כדי לחפש את המידע הרצוי בתוך קוד |וד. 8 סדנת לימוד 6.0 8\ העברת קבצים פרוטוקול פז=, שהוא פרוטוקול העברת הקבציס המשמש ב-60/\, הוא פרוטוקול ותיק יותר מפרוטוקול שדד. בדומה לעבודה ב-65/\, גס העבודה בפרוטוקול פז= מתבצעת תוך שימוש במחשב שרת ובמחשב לקוח. אומנס בשניס האחרונות מוצעות תוכנות לקוח בעלות ממשק גרפי לפרוטוקול סזם, אך תוכנות הלקות הסטנדרטיות של פרוטוקול זה עדיין כוללות ממשק טקסטואלי. אס השתמשת בעבר בשורת הפקודה של 05, סביר להניח שתצליח להבין את אופן פעולת קז-. קז" מאפשר לשנות את התיקיה הפעילה, להציג רשימת קבציס ולהעתיק קבצים, בדיוק באותם אופני ביצוע בשורת הפקודה של 05כ. ההבדלים היחידים בין הפעולות הס שכעת אתה מבצע את פעולות החיפוש על ספריות המצויות במחשב מרוחק ומשתמש בפקודות שונות מעט. הפקודות 065 ו-קד;שטק משמשות לאחזור קבציס מהמחשב המרוחק, ולמשלוח קבצים אליו, בהתאמה. משוס שפרוטוקול ₪1 משמש לעבודה עס מיגוון פלטפורמות רחב (א1)ש, 5צוססחו/ו, 0), הווא מהווה אמצעי אידיאלי להעברת נתוניס בין מחשביס שונים. פקד זז ד 6%ח%67ח1 מהווה אמצעי נוח לביצוע פעולות אלו מתוך 8856 [1508/. בסעיף וה נדגיס יצירת תוכנית פשוטה לאחזור קבצים משרת סד6. נתחיל על ידי כך שנתבסס על הפרויקט שיצרנו בסעיף הקודס. צור את פרויקט הדוגמה שתואר בסעיף זה והוסף לו לחצן פקודה נוסף, שתקרא לו 60060166. הקוד בשגרת האירוע 616% של הלחצן מובא בתוכנית 32.5. תוכנית 32.5: קפע. סואשם זשא1 שימוש ב-קזח בעזרת | ₪ח60 ז5)6חהד ז6חזסזח1. ( )61106 6!ן-0002607ח6 50 סספּעווק 5 ק 6 = |ס6ס6סיק. 1661 "פגוסרהץחהסח3ּ" = 6ר3ּ567ו. נזסח1 "0650" = 6זסטו55בּק. 1611 "סעוכ" ,"ר0501%.607ה6ורח. כ" 60066אם. 601ח1 9 660א50!|]5. נססח1 6ווח/\ סס 5 סכ קסס | "ס.* זו " ,00066אם. 1661 חח ט66אם|!50. 601ח1 6!וח/\ חס חס ".הרו \:6 זא הזו [25)" ,66006אם. 661ח1 8ח ט60אם[|50. 661ח1 6ווח\ סס 5 סכ קסס | "!חספ" אסם ₪50 טט5 סחם פרק 32: ₪856 |1508/ ושימושים נוספים באינטרנט | 859 | קטע הקוד נעזר בפקד 178056 %0706%ח1 לשימוש בשלוש פקודות בפרוטוקול פד : + 6אום - מציגה את התיקיה הפעילה במחשב המרוחק. + זו0 - מציגה את רשימת הקבצים המאוחסניס בתיקיה הפעילה במחשב המרוחק. + 966 - מאחזרת קוב מהמחשב המרוחק למחשב הלקות. לאחר כל פקודה השתמשנו בלולאת 6ווח/\ כדי לוודא שהפקד סיים לבצע אותה, לפני ביצוע הפקודה הבאה. הקוד בשגרת האירוע 860ח55806008 גורס לתגובות שתתקבלנה מפקודות 6שוק ו-זו6 להופיע בטופס. הפקודה האחרונה 06%, תעביר קובץ משרת קד למחשב המקומי. תוכל להיעזר בדוגמה לביצוע אחזור קבצים ממוכן ממחשב מרוחק, למשיכת מפות מזג אוויר עדכניות, או נתוניס דומיס מאתרי פ6/צ. מכאן... בפרק התייחסנו למספר נושאיס שקשורים לאינטרנט אך אינס בתחוס העיסוק הרגיל [ [ [ ב-60/)\. המקוס הטוב ביותר ללמוד על ה-65)\, הוא כמובן ה-60/\ עצמו. מידע נוסף על נושאיס הקשורים ב- 8856 |808ו/, תוכל למצוא בפרקיס הבאיס: > על יסודות השימוש ב-1ק תוכל ללמוד בפרק 20 גישה ל-01 של פשוסחושו. =* | מידע נוסף על קבצי 1א1 וקבצי טקסט תוכל למצוא בפרק 21 עבודה עם קבצים. > מידע נוסף על ממשקים נוספים של טכנולוגיית 015, כדוגמת 600, תוכל למצוא בפרק 22 שימוש בפקד 01 לשליטה על יישומים אחרים. 0 סדנת לימוד 6.0 8\ חלק 8 נספחים ]וז 6 5 1 ו 0 ו -- , % 0 נספח 1: הכרת סביבת הפיתוח % 4 % נספח 2: אריזת היישום / % נספח 3: תקציר פקודות .501 ; % נספח 4: דפי שרת פעילים ; % נספח 5: התקליטור המצורף .% % אינדקס עברי - + אינדקס לועזי 1051 נספח 1 הכרת סביבת הפיתוח נספח 1: הכרת סביבת הפיתוח | 863 לסביבת הפיתוח המשולבת (ש10) המשמשת כממשק 8886 |%1508 מספר כלים שבאמצעותס תוכל לפתת את היישום. בין גרסאות 4 ל-5 עברה 15 שינוייס משמעותיים, אולס הממשק מאוד דומה לקודמו. בנספח גה נעשה סיור מהיר ונלמד יותר על הממשק ומרכיביו. הבנת הרכיבים העיקריים בסביבת הפיתוח מגירסה 5 88566 |508\ תומכת בסביבת ממשק מרובה מסמכים (סוא). אס המושג 1םו\ אינו מוכר לך, דמה אותו לפתיחת מסמכיס רביס בתוכנת סחסש\ או ₪סאם. כל מסמך נפתח בחלון משני בחלון הראשי. בדומה ליישומי 1 אחרים, תוכל לבחור בחלון המשני ולהרחיבו על כל שולחן העבודה או להציג מספר חלונות בו-ומנית. טיפ: אם אינך משתמש עדיין במסך גדול ("17 ומעלה) וברזולוציה גבוהה, מומלץ כי תעשה זאת. הינך זקוק לשטח מסך גדול כדי להשתמש בממשק בצורה יעילה. אני ממליץ על מסך ברזולוציה 800א600 לכל הפחות או 768%1024 אם כרטיס המסך והעיניים שלך מאפשרים זאת. ניתן לערוך מספר פרויקטים במופע יחיד של 8856 |808/. | אין צורך לסגור פרויקט כדי לפתוח ולבצע שינוייס בפרויקט אחר. הדבר נוח בפיתוח פרויקטיס המקושריס ביניהס היות וניתן ולשמור ולהדר כל פרויקט כקבוצה בבתחירת תפריט יחידה. עוד רכיב חדש יחסית הוא היכולת לעגן כל חלון או סרגל כלים. כיוס סרגל כליס או חלון יכול לצוף באמצע המסך או להופיע לאורך אחד הקצוות. חלונות מעוגניס מכילים סרגלי כליס ושורות כותרת, בדומה לארגז הכליס. בנוסף לאפשרויות ניהול החלונות, 8856 |508/\ מציעה מספר כלים שימושיים להכנסת קוד בצורה קלה יותר. הכינוי שניתן להס על ידי 1160508 הווא 067וח6!/ז15 וסוט (חבר ברשימה אוטומטית) ו-11010ט0ספשא (מידע אוטומטי מהיר). אתה פשוט תקרא להם נפלאים. אס אתה מתקשה לזכור את קבועי א65530680!), מאפייני הפקד או אפילו פרמטרים בפונקציה, עורך הקוד ייסייע לך להשלים את המידע בצורה אוטומטית. בזאמן ההקלדה, ברגע שתקיש רווח לאחר קריאה לפונקציה א154990א, הפרמטרים יוצגו בצורת טיפ מתוך רשימה נפתחת של קבועים קיימים. טיפ: כאשר מוצגת הרשימה הנפתחת, אינך חייב להשתמש בעכבר כדי לבחור פריט. פשוט המשך להקליד (או השתמש במקשי החיצים) עד אשר הפריט שברשימה יסומן. אזז הקש על אחד מהמקשים: רווח, פסיק (,), זפחם או טפּד והמשך בתוכנית. 4 סדנת לימוד 6.0 8\ התחלה כאשר מפעילים את 8856 |508ו/\ מופיעה תיבת דו שיח 60[סזם צש6, כמתואר בתרשיס נספח 1.1. לתיבת דו-שיח זו שלוש כרטיסיות עיקריות: + א6א - מאפשרת לבחור סוג פרויקט מבין הסוגים המוצעים. + = חַח₪%150 - מאפשרת חיפוש פרויקט שכבר נוצר ונשמר. + 6% - רשימת פרויקטיס שנפתחו לאחרונה. האחרוניס מוצגים ראשוניס. | |?. ןז סא סופהם וו 7 | 609 | 6008 | ב \" %% חס 63ווקקם םער 6% 1 אצוה | 6אם אסשושהם = 34וכ)ת יו בקי יפ % % % % 5% 3% %5 % 5 < %% 6% הו חסוסבּ6וופקה 115 806[סזש 2853 | בזהקו/\ םעל !₪ זהפהטוססם זסהַבחבו] ₪ 6 5 5% 6 5 | 6 סוס 6זוגווט! 6 הז 013100 1018 וח \חסכ. -] תרשים נספח 1.1: הכרטיסיה צו6א\ בתיבת הדו-שיח 606[סזק צוסא הערה: קיימת גירסה נוספת של תיבת הדו שיח 606[סזק שסא. גירסה זו מופיעה כאשר 6 |8טפו\ כבר מופעלת ובוחרים 6!ו=, 66%[סש שפא מתוך התפריט. גירסה זו מוצגת בתרשים נספח 1.1 אבל אינה כוללת את הכרטיסיות פַח150אם |-1ח₪006. אס תבחר ליצור פרויקט חדש, 8856 |%1508 תיצור תבנית מתאימה המבוססת על הבחירה . ניתן לבחור באחד מסוגי הפרויקטיס הבאיס: > 5אם 553003706 השתמש בסוג זה ליצירת יישוס סטנדרטי של פווספחו\\ (קובצ =אם). סביר להניח כי תשתמש בסוג זה לעיתיס תכופות. > םאם א6/עוז6 שרת אוטומטי וה מבצע משימות כחלק מיישוס רב-שכבות. התוצאה הסופית היא יישוס המכיל מחלקות ציבוריות הנגישות מתוכניות אחרות או פועלות בצורה עצמאית. הוא נקרא קודס ז567%6 חסטהוחסזטה = ו0. > ₪11 א6%עו46% תוכנת אוטומציה לשליטה מרחוק נוצרת כקובץ 11פ. קבציס אלה אינס יכוליס לפעול עצמאית, אולס היות והס מופעליס מתוך תהליך, הס מהיריס יותר מאשר הפעלה מתהליך חיצוני (5א 6%ע6). נספח 1: הכרת סביבת הפיתוח | 865 [60010 6%ע60 באמצעות אפשרות זאת ניתן ליצור פקדיס מותאמים (א06). אפשר להשתמש בהם בתוכניות 8856 |808ו/ או בתוכניות תומכות א6עס. 4ה23:)\ הסוז63ו|קקה 83516 |הש5ו% אפשרות זו תבנה שלד יישוס (בדומה לתבנית במעבד תמלילים). לאחר מכן ניתן להתאיס את היישוס לצרכי התוכנית 6% מ36%₪ סוג זה מכיל מעטפת יישוס התומך בנתונים. ניתן להתאיס את הרכיביס כך שפיתוח תוכנית התומכת במאגרי נתוניס ייעשה בצורה מהירה. הסוז63ו!קקא 115 אפשרות זו יוצרת פרויקט הניתן לשילוב עם שרת המידע ל- 60/\ ךא פאוספחו/\ (115) וניתן להפעילו בסביבה מבוססת פם/צ (דורש 5\\ק או 5 מותקן). חו-00 סוג זה מוסיף רכיבים שימושייס ל- 8856 |1508/\. דוגמה טובה לתוספת מסוג זה היא 38061 858 |הטפו/ש. 1 =>חסוהט6ס א6%ע6 סוג זה יוצר קובצ11ם הניתן לשימוש בשילוב עס זסזס|קאם 6%חז%6ח1 50%סהסוו\. == +הסוהט6סכ 66% יוצר יישוס הניתן להפעלה מ- זסזסו|קאם 66חז6זח]. הסוז63ו!ככ ‏ וא דופ אפשרות זו יוצרת מסגרת עבודה של ואד דינמי הניתן להפעלה מתוך דפדפן. אזור העבודה של 83516 |בּטפו לאחר שבחרת בסוג הפרויקט, תוצג סביבת הפיתות. כאן למעשה מתבצעת העבודה על יצירת המופת. סביבת הפיתוח הבסיסית מוצגת בתרשים נספח 1.2. סביר להניח כי 6 |08פו/\ נראתה כך בהפעלה הראשונה. שורת התפריטים 0 ְ 0-0 5\וססחו/\ התפריט 5זסססזק | 5\וססחו/\ - הכלים טופס ריק + וס ₪ 5\וססחו/\ תרשים נספח 1.2: שולחן העבודה של 8856 |פטפו\ מספק מיגוון כלים שבאמצעותם אפשר ליצור תוכניות 6 סדנת לימוד 6.0 8\ כפי שאפשר לראות, ל- ₪856 |808ו/\ ולישומי פ5שספחו/\ אחריס הרבה אלמנטיס משותפים. סרגלי הכליס והתפריטיס דומיס לאלה של 06ו06. מספר תפריטים נראים זהים : 1!6, 50%, ק|₪16 ואחרים. שורת התפריטים מפתחיס רבים מעונייניסם בקיצורי דרך לביצוע פעולות שכיחות. כמו בתוכניות 5וססחו/\ אחרות, התפריטיס בחלק העליון של סביבת העבודה יכוליס להיפתת על ידי הקשה בו-זמנית על זו4 והמקש המתאים לאות המסומנת בקו תחתי. לאחר שהתפריט נפתח, אפשר פשוט להקיש על המקש המתאים לאות המסומנת בפקודה הרצויה. לדוגמה, הקש =++/4 כדי לפתוח את התפריט ₪116 ואחר הקש = כדי לבחור את הפקודה +חוזס. 6 |808ו/\ גם מציעה מספר קיצורי דרך המאפשריס לעקוף את התפריט. רובס מוצגיס לצד הפריט המתאים. לדוגמה, בתפריט ששו אפשר להבתין מימין לפריט סז 665[פ0 בסימון 2=. הכוונה היא שניתן להפעיל את זספשסזם ‏ 60[ט0 על ידי הקשה על 2=. בטבלת נספת 1.1 מופיעים מספר קיצורים מהירים, אך היכרות אישית עס התפריטיס יכולה להועיל. טבלת נספח 1.1: מקשי קיצור פריט בתפריט קיצור תאור + ₪00 | | %א+601 | מוחק את הטקסט או הפקד המסומן מהמיקום הקיים ומעביר אותו לתצוגת הלוח ץ00 010 | | 6+\% | יוצר העתק של הטקסט או הפקד הנבחר ללוח, אבל אינו מוחק אותו מהמיקום המקורי 6 ר-ר- צ+61 | מדביק את תוכן הלוח לטופס הפעיל או לחלון הקוד 0 00 | | =+|60 | מוצא קטע טקסט (עליך להיות בחלון העריכה לביצוע 1 ו 5 | שומר את הקובץ הנוכחי (לא את הפרויקט +חחזק ,6 ק+|₪ | מציג את תיבת הדו-שיח זחוזק, כדי להדפיס טופס, מודול נוכחי או את כל היישום וק ,סו | | ₪+|04 | מציג את זפזסוקאם 60[סזק (אם אינו מוצג) זסזס|קאם 5 6 4 | מציג את חלון אוססחו/\ 65זפססזק שססחו/\ נספח 1: הכרת סביבת הפיתוח | 867 |--- מומלץ שתנסה את הקיצורים. בנוסף לרשימה הקודמת ל- 8856 |1508\ מספר טריקים לא כל כך ברורים מאליהם כמו צ+!60 (מוחק שורה קוד שלמה ומעביר אותה לתצוגת הלוח), שנראה כאות הערכה למעבד התמלילים ז0509זס/\. גישה לפונקציות מתוך שורת התפריטים שורת התפריט של 8856 |508ו\ מאפשרת גישה למספר פונקציות שכיחות. ארבעה סרגלי כלים ומיניס (ראה תרשיס נספת 1.3): + 5%800376. סרגל הכליס 509080 מוצג כברירת מחדל ומאפשר גישה מהירה לפונקציות שכיחות. > שטפס6פ. לסרגל הכליס פַטס6כ יש ארבעה לחצנים שימושיים לניפוי שגיאות בתוכנית. > 66ם. לחצני סרגל הכלים זו₪0 יעילים בזמן כתיבת קוד. * 50/60 וחזסת. לסרגל הכלים זסטו0ם וחזס] לחצניס שיעזרו לשפר את מראה הפקדים. | |5]-. 6 ]850 בו 4010506 - ןטול בי 2 סרגל הכלים הרגיל [ 095005 [ 6הפוחוקם) | 15סטד ה יו ₪ | סרגל הכלים %ו₪0 1 חצ % ו כ 9 + ל בא ג בה % ה 3593 > ה,% [<ן ו סרגל הכלים 9 סרגל הכלים ₪0 וחזס= תפריטי קיצור תרשים נספח 1.3: סרגל הכלים הסטנדרטי מעוגן מתחת לשורת התפריטים. שאר הסרגלים צפים על שולחן העבודה. ניתן לשנות סרגל על ידי תיבת הדו שיח 26חסז5ט6 סרגל הכליס הסטנדרטי הוא היחיד שמוצג בהפעלה הראשונה. ניתן לבחור איזה סרגל כלים יוצג על ידי בחירה 56!660) ב-ששו/, 5זּפ!ססד או פשוט על ידי לחיצה ימנית על סרגל כלים קיים. כל אחד מהס יכול לצוף בצורה חופשית או להיות מעוגן מתחת 8 סדנת לימוד 6.0 8\ לשורת התפריטים. בהפעלת התוכנית, מיקומס יהיה מיקומס האחרון בעת הסגירה הקודמת. לחיצה על ש6ו/, 5ז93!ססד, 6₪5%0₪1126, מאפשרת לשנות תפריט קיים או אף ליצור חדש. סרגלי הכלים של 88516 |1508\ תואמיס לסטנדרטיס של הדור האחרון בתכנות, במובן ה שהס מכילים תיאור כלי. תיאור כלי הוא תיבה צהובה קטנה המופיעה כאשר משאיריס את סמן העכבר מספר שניות על לחצן מסוים, ומכילה תיאור של הלחצן המסומן. טיפ: תיאור כלי יכול גם להציג ערך משתנה בתוך חלון קוד. השתמש באפשרות זו על "7 ידי השארת סמן העכבר על שם משתנה בזמן שהרצת הקוד מופסקת. אפשרות זו יכולה לחסוך זמן רב אם אתה רגיל להשתמש ב- שססחו/\ 8060/\ או להדפיס ערכים ב- שוססחו/\ 1601816 בזמן ההפעלה. הצג את כל סרגלי הכלים כמוסבר בפיסקה הקודמת, והעבר את סמן העכבר מעל הפקודות כדי להכיר אותן. וזכור שתמיד תוכל להשתמש בתיאור הכלים אם אינך בטות מה מייצג כל לחצן. שני לחצניס מצריכים תשומת לב מיוחדת. הלחצנים 0[6₪זק ₪00 ו- וחזס= ₪00 גורמיס להופעת תיבות רשימה נפתחות (ראה תרשיסם נספח 1.4). אס תבחר פריט, הלחצן הראשי ישנה את סוגו בהתאס לפריט שבחרת. 8 כ | ₪ ₪ 5 + -- לחצן וחזס=] 00 חזזס= 1 חחזס= זוי 5" 6 6 355 ול (סזשחס=> 5 ]9 6 שש זסקסזק בי וטס 0 9 - | 5 ב :- ₪ = לחצן 66[סזק ₪00 6 |ויזזרום 868 = 1'ז03ח5-3 5 0 אש סמה ב 660 חח1566-0\ 50%ססווי] . * ...5זסחםו065 606% שזסויז 1 אסונות ל 0+ 6 0 [סלחס-> אשיו תרשים נספח 1.4: רשימות נפתחות מאפשרות לציין איזה סוג פרויקט ברצונך לבחור הלחצן 6066[סזק 400 מאפשר להוסיף פרויקט לשולחן העבודה. ניתן לבחור באחד מהסוגיס הבאיס: > םא 50870 > ם0אם א6%ע6 > וס 466% + |0ח60 606% נספח 1: הכרת סביבת הפיתוח | 869 הלחצן וחזס] 00 מאפשר להוסיף אחד מתוך הפריטיס הבאים לפרויקט: + חזסם + |סשחס6 567 > חחזסז זסא * 0806 שזסקסזק > ₪006 + 65| 015000 + 6!)ו0סוח 6!855 מאוחר יותר תלמד עוד על מרבית הלחצנים. אולס שני אזוריס בסרגל הכליס ראוייס להתייחסות. בקצה החימני יש שני קטעים, כל אחד מכיל זוג מספרים. שני קטעיס אלה מציגיס את המיקום ואת גודל הטופס או הפקד הנוכחי. שני המספרים בקטע הראשון מציגיס את המיקוס האופקי והאנכי בהתאמה, הנמדדיס מהפינה השמאלית העליונה של המסך עד לפינה השמאלית העליונה של הטופס (בעבודה על טופס) או עד לטופס אליו שייך הפקד. שני המספריס בקטע השני מציינים גודל אופקי ואנכי בהתאמה, של האובייקט הנוכחי. מספריס אלה אינס נראיס כאשר עובדים בחלון עריכת הקוד. הערה: המספרים המציינים גודל ומיקום ניתנים ביחידות טוויפ (טוצט). טוויפ הינה יחידת מדידה בה משתמשת 88566 |8טפו\ כדי להבטיח שיחידות המדידה גודל והמיקום תהיינה זהות על מסכים בגדלים שונים. טוויפ שווה ל 1/20 נקודת הדפסה. 1440 טוויפ מהווים שטח אינץ' לוגי (כמות השטח הנדרשת על המסך להדפסת אינץ' אחד במדפסת). הערה אחרונה על סרגלי כלים, אם אינך אוהב אותם ממוקמיס בחלק העליון של המסך ניתן להזיוּ אותם על ידי לחיצה על הקווים הכפולים שבקצה בשמאלי וגרירה למקוס חדש. ניתן לעגן אותס בכל קצה של המסך, או להשאיר אותס צפיס במרכז המסך, כמתואר בתרשים נספת 1.5. 0 ₪ מחאו 5ח001 מכ הנופצו ₪ ש לש ו 9 תרשים נספח 1.5: אפילו סרגל הכלים הסטנדרטי יכול לצוף על שולחן העבודה 0 סדנת לימוד 6.0 8\ ארגון פקדי 83516 |בּטפו\ הפקדיס הס הלב והנפש של התוכניות שתיצור. הס מאפשריס להוסיף פונקציונליות לתוכנית בצורה קלה ומהירה. אפשר למצוא פקדיס שיאפשרו לערוך טקסט, להתחבר לבסיס נתוניס, לקבל קבצי נתוניס ממשתמש, או להציג ולערוך תמונות. | חס מצביע (זסזחוסק) ברור שמספר כה רב של פקדיס צריך לשמור בצורה מאורגנת. וה תפקיד ארגז הכלים (ראה תרשיס נספח 1.6). ארגז כלים וה מכיל לחצנים המייצגיס את הפקדים הנגישים לשימוש בתוכנית (רשימת הפקדיס הבסיסיס מופיעה בטבלת נספת 1.2). לחיצה על אחד מפקדי הייכליס'י מאפשרת לצייר פקד מאותו סוג בטופס. לחיצה כפולה ממקמת פקד בעל גודל המוגדר כברירת מחדל, במרכו הטופס הנוכתי. לחיצה על כלי המצביע (זסטחוסק) שבפינה השמאלית העליונה של ארגז הכליס מבטלת פעולת יצירת פקד ומחזירה את סמן העכבר למצב עבודה רגיל. תרשים נספח 1.6: מערכת הפקדים הבסיסית נגישה בהפעלה הראשונה. ניתן להזיז את ארגז הכלים על המסך אפשר להוסיף פקדיס לארגז הכלים על ידי בחירה ב-66[סזק, ח6חסקו60. פעולה זו פותחת את תיבת הדו-שיח 6ח6חסקוחס6 (ראה תרשים נספח 1.7). בתיבת דו-שיח זו אפשר לבחור כל פקד נוסף שהותקן במערכת. אס תבחר להוסיף פקדים לארגז הכלים הם יופיעו בו לאחר שתלתצ על 06 או על לחצן ץוסכה. 5 | <| [ 009655 105653916 | 6595 | בי 2 (-: (01508) 5|סשחס= 6.0 א6\חפ/ ז'וספספטוש (-:1 1 ץז סו | חס 5 פסה 17 | חס > 06ח6זפ]/חס) אפאסא ] סופאה 1 6 תס 015 549זפ "1 0% נואפוא1\1- עס )סי פאז 6 דר יז ב 0% סו ד )5 סאוו 1 := שו סרח [ס חס 01.5 אחז 1 6 וס חס +זססשות 3לפעיזם 1 סוחס |סחס) 86%פ]8 6 0658986 "1 5 6 | "/ [7 50160096 15 0 (080) 06 חס 6.0 א6וח5/ טסו (-: | 600% פע ד55\פס סא ז/\:6 = :1068000 ן תרשים נספח 1.7: הוספת פקדים באמצעות תיבת הדו-שיח 66ח6חסקוח 60 נספח 1: הכרת סביבת הפיתוח 4 טיפ: ניתן לגשת לתיבת הדו-שיח 66חפחססהח60 על ידי לחיצה ימנית על ארגז הכלים ובחירת הפריט 0₪ח6ח00ח0ס6 מתוך הרשימה הנפתחת, או באמצעות הקשת + 6. טבלת נספח 1.2: הפקדים הבסיסיים של 8856 |8ט8ו\ שם הפקד פעולה אס6זטט6וק | מציג תרשים גרפי 36 | מציג טקסט שהמשתמש אינו יכול לשנות א0ם)אטד | מציג טקסט שהמשתמש יכול לערוך 6חהז | מספק שיטה לארגון פקדים החס וו 60 | מאפשר למשתמש להפעיל פעולת תוכנית יכול לשלב סמל, שם ותיאור כלי 6660808 | מציג או מאפשר בחירה מתוך שני מצבים: כן\לא או נכון\לא נכון חסטטפחסטקס | מציג ומאפשר בחירת פריט אחד מרבים (ידוע גם כלחצן רדיו) 600808 | מאפשר בחירת פריט מרשימה או הוספת פריט חדש לרשימה א0ם15%| | מציג רשימת פריטים מתוכה אפשר לבחור פריט אחד או יותר ז0||!88ז56 | יוצר ערך מספרי המבוסס על המיקום האופקי של פס הגלילה 6חז | מציג תמונה גרפית. ההופעה דומה לפקד שזשסוס אבל הפעולה שונה = | מספק דרך להתקשר לשרתי 015 2 סדנת לימוד 6.0 8\ | ₪ כברירת מחדל, כל הרכיבים בפרויקט מופיעים בארגז הכלים כקבוצה | 78 אחת גדולה. אולם, אס תשתמש בהרבה פקדיםס יקשה עליך לטפל | בהם. כדי להקל על הבעיה, 8856 |508ו/\ מציעה אפשרות להוסיף כרטיסיות לארגז הכלים. (כברירת מחדל קיימת כרטיסיה אחת- |8ז6ח66). להוספת כרטיסיה, לחצ לחיצה ימנית על ארגז הכלים, בחר טפד 800 מתוך הרשימה הנפתחת ותן לכרטיסיה החדשה שם. לאחר מכן ניתן להעביר פקדיס מכרטיסיה לכרטיסיה. תרשים נספת 1.8 מציג את ארגז הכלים עם כרטיסיה בשסם 6000015 616 שהתווספה. תרשים נספח 1.8: מאפיין נאה של 6 8856 |1808\ הוא האפשרות לקבץ פקדים בכרטיסיות שונות בארגז הכלים בד הציור של התוכניות החלונות שאתה מעצב בתוכניות 8856 |8טפו\ מכוניס טפסים. אפשר לדמיין טופס כבד ציור. הינך משתמש בפריטים מארגז הכלים כדי יילצייריי את ממשק המשתמש על הטופס. הטופס הוא חלק משולחן העבודה והוא השטח העיקרי בו מעצביס את ממשק המשתמש. אס תביט מקרוב על הטופס שבתרשיס נספת 1.9 תראה נקודות על הטופס. נקודות אלו יוצרות רשת שמטרתה לעזור לך למקס את הפקדים. כאשר מפעילים את התוכנית, היא בלתי נראית. אפשר לשלוט במרווחים שבין הנקודות על ידי בחירת 5, 005 ובחירה באפשרות המתאימה בכרטיסיה |8ז6ח66 של תיבת הדו-שיח. יש אפשרות לא להציג את הנקודות כלל. כברירת מחדל צפיפות הרשת היא 120 טוויפ. אני מעדיף להקטין את הרשת (60א60 טוויפ), דבר המאפשר לי דיוק גדול יותר בהצבת הפקדים על הטופס. רשת בצפיפות זו מוצגת בתרשים נספח 1.10. |< ום])=. [חזס] ₪ תרשים נספח 1.9: בטופס 8856 |הטפוצ\ קיימת רשת העוזרת ליישר את הפקדים נספח 1: הכרת סביבת הפיתוח | 873 תרשים נספח 1.10: הקטנת הרשת מאפשרת שליטה טובה יותר על מיקום האובייקטים שליטה על טפסים ופקדים חלון המאפיינים (שוססחוצו 65ז6קסוק) הוא חלק חשוב ב- 8856 |8טפו. הוא מציג את כל המאפיינים הזמיניס לטופס נבחר, פקד או מודול. (ראה תרשיס נספת 1.11). אס החלון אינו מוצג, בחר תחילה את האובייקטיס שאת מאפייניהס תרצה לראות או לשנות והקש 4=. ניתן לראות חלון זה גס על ידי בחירת ש16/, שסשח!ו/\ 65וזוסקסיזום, או בלחיצה ימנית על האובייקט ובחירת 6165קסזפ מהתפריט שיופיע. המאפיינים קובעים כיצד ייראה או יתנהג פקד התוכנית. חלון המאפיינים מציג את רשימת מאפייני האובייקט הניתנים לשינוי בזמן עיצוב התוכנית, בניגוד למאפייני ומן ההפעלה, הניתניס לשינוי רק בומן ההפעלה. חלק ניכר מהמאפיינים ניתנים לשינוי בומן העיצוב וגם בוּמן ההפעלה. הכרטיסיות 6וז )חש זבק5חגה ז זטחס- | !0 07 שר =| חסוזקה = זט זהם 6 60'5[פס חב חו 8ץ3!ק5ו 866 שחל 5685]פחזוססת .חס 665'5[פס חב אוסוסם חזס=! 1חיוס-ן| | <---- שם האובייקט 4 | > | ב 2 המאפיין הנבחר תרשים נספח 1.11: חלון המאפיינים מאפשר דרך נוחה לשנות מאפיינים 4 סדנת לימוד 6.0 8\ המאפיין ח0וזק63 היא דוגמה למאפיין פקד מסוג תווית. ניתן לשנותו בפשטות על ידי הקלדת 6וזסש\ סוו₪6 בשורת המאפיין חס0ק68 שבחלון המאפיינים (שינוי אפשרי רק בומן העיצוב) או על ידי הוספת המשפט: "ס!זס/\\ ס||6רן" = הססק63. 306|1 ]. וס (שינוי בגמן ההפעלה). לחלון המאפיינים שתי כרטיסיות. כרטיסיות אלו מאפשרות לקב> את המאפיינים לפי סדר האלף-בית או בצורה לוגית. שיפור נוסף לחלון המאפייניס הוא הצגת תיאור המאפיין הנבחר בחלון תחתון. מידע ה עוזר להימנע מחיפוש מידע על מאפיינים בקבצי העזרה. הערה: מטעמי נוחות, המאפיין 6חג של כל אובייקט מופיע בראש הרשימה ולא במקומו לפי סדר האלף-בית. הערה: לרבים מהפקדים יש שורת ערך (מותאמת) בחלון המאפיינים. לחיצה על הבונה (...) שבשורת הערך פותחת דף מאפיינים מיוחד המכיל את מאפייני זמן עיצוב הפקד, כך שיהיה ניתן לערוך אותן בצורה נוחה. חלון הפרויקט חלון נוסף בשולחן העבודה הוא חלון הפרויקט (שספחו)\ 60[סזק), כמתואר בתרשיס נספת 1.12. חלון זה מציג את רשימת הטפסים, מודוליםס ורכיביס אחריס בהס משתמשת התוכנית. אס תרצה לראות טופס או מודול, לחצ לחיצה כפולה בזמן העיצוב, או לחצ פעס אחת ובחר 09[166% ש6ו/ או 6006 שסו/. וז - +ס6|סזק = | > --- לחצן 6006 אוס1/\ (0[6601ו) 6611[סיו 55 ( 1 חח זס=]) 1 הוחו - או לחצן דו-מצבי וצ 0/6 לחצן 0516 שסו\ תרשים נספח 1.12: חלון הפרויקט מציג את סוגי הקבצים השונים המרכיבים את הפרויקט(ים) הפתוח(ים) נספח 1: הכרת סביבת הפיתוח | 875 הערה: אפשר להתייחס לפרויקט כקבוצת שדות מקושרים. הפרויקט מאחד את כל השדות הדרושים ליצירת תוכנית. בעת שמירת הפרויקט למעשה נשמרת רשימת הקבציס היוצרים את הפרויקט. קוב הפרויקט עצמו מאוחסן עס סיומת ברירת המחדל ק8/ (60[סזק 88516 |808ו/). סוגי קבציס אחריסם יוצריס את רכיבי הפרויקט. הנפוציס ביותר מופיעיס בטבלת נספת 1.3. טבלת נספח 1.3: סוגי הקבצים של 8856 |8טפו\ 7 יו שו וו קובץ מסוג וחזס- +חסוחט6סכ א6ע60 חלון הפרויקט משתמש ברשימה חיצונית להצגת הטפסים והמודוליס בפרויקט הפתוח וגס מודולי מחלקה, פקדים מותאמים או עמודי מאפיינים. אפשר לצפות בפרויקט בשני אופנים. תצוגת תיקיה, אליה ניתן לגשת על ידי לחיצה על הלחצן המציג את חלקי הפרויקט מאורגניס לפי נושאיס. מצד שני, לחיצה על הלחצן הקיצוני מימין, מציגה את רשימת רכיבי הפרויקט מקבציס בהתאם לשמות הקוב\. היכן מתבצעת העבודה החלק האחרון של שולחן העבודה הוא חלון הקוד (שספחו\\ 0006). בחלון הקוד מתבצעת כל עבודת ההקלדה והשינוייס לקוד התוכנית, המאפשר לתוכניות לבצע משימות (ראה תרשים נספת 1.13). לכל טופס יש חלון קוד המקושר אליו. פרויקט יכול לשלב גס כמה סוגי קוד עצמאיים המוכריס בשם מודולים (65!ו0סו). כדי לגשת לחלון קוד, לחץ לחיצה כפולה על הטופס, על אחד האובייקטים שלו, או על הלחצן 6 שסוצ שבחלון הפרויקט כאשר האובייקט המתאים מסומן. 6 סדנת לימוד 6.0 8\ תיבת בחירת [<זם] = מק *--- שם הטופס - | 6 [+ ה 1 השיגרה () א6110 סבאפהחס עום שסבטב א 6 סומח מגוט במף () 2088 מעסץ עוש שסהטגעת מסטנמגוך 6811 מגום במ תיבת בחירת האובייקט תרשים נספח 1.13: חלון הקוד הוא המקום בו מקלידים ועורכים את ההוראות שתבצענה את התוכנית התאמת הסביבה כפי שלמדת, סביבת הפיתות של 8856 |1508/ ניתנת להתאמה במידה רבה. רוב החלונות וסרגלי הכליס ניתניס למיקוס בקצות החלון הראשי, או יכוליס לצוף בכל מקוס על המסך. אפשר גס לשנות את גודל החלונות. בפעס הבאה שתפתת את 6 |508\ הסביבה תישאר כפי שהשארת אותה. תרשים נספת 1.14 מציג את אחת האפשרויות לארגן את סביבת העבודה. 00 0 0100 - 110081 ל 5 = | שו אטח ₪015 6ססד חפזספום. עוסט חנ סלפ ומוחשה פס וסט אש 6 ו ד מע ו לכ ל ב 8 | ו | 0 | ₪0 םח 4 | ₪ ₪ | - בו - 9 | | םן ₪3 3 |< 080 ה החהחס > ארח | ₪ - ₪ 5 00-00 3 58 > 0 7-4 ₪ % ₪8 א || האס ואס ם [ 05001088= | חקו אש וס ב בכ 1-0 סתפוססקו] 0 6 ו די ו ו פד 15 5 3 0 85 8 בי () בי 0 ד תרשים נספח 1.14: הפריטים השונים של סביבת העבודה ניתנים לארגון במיגוון אפשרויות נספח 1: הכרת סביבת הפיתוח | 877 נספח 2 אריזת היישום נספח 2: אריזת היישום | 879 לאחר שתסיים לכתוב את התוכנית שלך, עליך להפיצ אותה מחוצ לסביבת הפיתוח של 6 |1508/\ כדי לאפשר לאחרים להשתמש בה. הצעד הראשון בתהליך הוא הידור (חסט8!וקוהס6) של קוד המקור שלך. פעולה וו מיועדת ליצור קוב 5%5 (או קוב 11/06%פ בהתאם לסוג הפרויקט) שניתן יהיה להפיץ למחשביס אחרים. לאחר שתהדר את התוכנית, תוכל ליצור את קבצי ההתקנה של התוכנית, על ידי שימוש בכלי 0 חס ץס!ק6 30 0868806 (אשף האריזה וההפצה). אשף זה נועד לאפשר לך לארוז את התוכניות ואת קבצי העזר שלהן, באופן שיאפשר להן לפעול על מחשביס אשר 8856 |508ו\ אינה מותקנת עליהם. אס התוכנית שלך היא מסוג ₪%5 5090870 האשף יצרף אליה תוכנית התקנה. ברוב המקרים משתמש פשוט יוכל להכניס את התקליטור או הדיסקט של התוכנה לכונן המתאיס ולהפעיל את תוכנית =אם. קטד55. בנוסף, ליצירת קבצי התקנה של פרויקטים מסוג 5אם 50900870 האשף יכול לשמש גס לטיפול בפקדי 460/6% וברכיבי 866% מסוגיס אחרים. בנספת זה נתייחס להידור התוכנית, ואחר נציג שימוש באשף לצורך יצירת יישום. הערה: 0 שחסוץס!|ק6כ 6חה סַהַהא6ק החליף את 6זהק/\ 560 שנכלל בגרסאות קודמות של 88516 |1508/\. הידור התוכנית הידור התוכנית הוא הצעד הראשון שיש לבצע בתהליך הפצת התוכנית. כל שצריך לעשות כדי להדר תוכנית הוא לבחור את הפקודה ₪866 מתפריט ₪1!6. בחירה בפריט זה תציג את שס הפרויקט ואת הסיומת שתתאים לסוג התוכנית שברצונך ליצור. בעת עבודה עס פרויקטיס מסוג 5אם 0ז08ח5%8 או םאם 6%ע60ה תוצג הסיומת 5א5. בעת יצירת ₪11 א6ע460 תוצג הסיומת 11ם, ובעת יצירת פקד 606% תוצג הסיומת 06%. לאחר שתבחר את סוג הפרויקט שאותו תרצה ליצור, תוצג תיבת הדו-שיח ₪866 %. תיבת דו-שיח זו תאפשר להגדיר את שס ומיקוס קוב\ היעד. 8856 |8טפו\ תבצע את שאר העבודה עבורך. אם תאותרנה שגיאות שתימנענה הידור מוצלח, יש לתקן אותן ולבצע שוב את פעולת ההידור. בכל מצב בו תבצע שינוייס בקוד תוכנית שכבר הפצת, יש להפיץ שוב את התוכנית. 8856 |הטפו\ אומנס תבצע את פעולת ההידור עצמה ללא מעורבות מצידך, אך יש להגדיר מספר אפשרויות בתיבת הדו-שיח ₪65ז6קסזק 666[סזק. את הכרטיסיות 6וקוחס6 ו-₪8%6 של תיבת הדו-שיח ניתן להציג גם על ידי לחיצה על לחצן פחסטקס שבתיבת הדו-שיח 60[סזק ₪866. 0 סדנת לימוד 6.0 8\ אופטימיזציה של הקוד תחילה יש לבחור האס לחולל 5-6006 או 6006 6טְא8\. 6006-ק הוא סוג הקוד שאליו הודרו תוכניות שנכתבו ב- 88546 |1508/\ מאז גירסה 1, ואילו 6006 6טט8א\ הוא אפשרות חדשה שנכללה לראשונה במהדר 5.0 8856 |1508/\. 0006 6עשפא מותאס בצורה אופטימלית לסוג מעבד מסויס ופועל מהר יותר מאשר 6006-ק. מאידך, שימוש ב-6006 ₪6 מוביל ליצירת קבצי ביצוע גדוליס יותר מאלה שנוצריס בשימוש בסוג 686. אס תבחר להדר את התוכנית ל- 6006 806 יש להגדיר גס הגדרות פעולות אופטימיוציה שתבוצענה על ידי המהדר. תוכל להורות למהדר ליצור קובצ ביצוע קטן ככל האפשר או מהיר ככל האפשר, ולחילופין, תוכל גס להורות שלא לבצע פעולות אופטימיוציה כלשהן על הקוד. תוצע גם אפשרות להדר את התוכנית באופן מיוחד לשימוש באמצעות מעבדי סזם ותטטחסק. טיפ: מ כדאי שתבחר להדר 6008 6צ80%\ מפני שמהירות היא שיקול חשוב יותר מחיסכון מעט מקום פנוי בדיסק. לבחירת האפשרויות שתיושמנה על ידי המהדר יש להציג את הכרטיסיה 6!וקוחס6 שבתיבת הדו-שית ₪65ז6קסזק 6066[סזק (ראה תרשים נספת 2.1). כדי לסחוט מ- 8856 |%1508 כל טיפת מהירות אפשרית כדאי גם שתציג את תיבת הדו-שית ווק 0/8660 המוצגת גס היא בתרשיס וה. בתיבת דו-שיח זו אזהרה שהשימוש באפשרויות אלו הוא על-אחריותו הבלעדית של המשתמש. למרות האזהרה אני נוהג לסמן את האפשרות 60666 05חט80 ץפזזה 6/סח6 מפני שקוד התוכנית אמור לבצע בדיקות כאלו, ואת האפשרות 676665 /1כת 5816" וט ח6ק 5816 6שסוחסק - שמבטלת את ביצוע פעולות התוכנה הדרושות לתיקון ה'ייבאג'י החישובי שאותר במעבדי הפנטיוסם הראשוניס. אס בטיחות פעולת התוכנית היא שיקול חשוב עבורך, לא כדאי שתבחר באפשרויות שבתיבת דו-שיח זו. || סו 2וחווזק 0 3030060 \ |<) ץז ז60ן0ז?] - 1ו60ן0ז | חוסטוטסס | אחפחסמוחס6 [ ופוס | )חן | 00913 הפפכ 3 הסוסה 2וחוסקס ה חוואיסווסי] 6ח> הַחוופח6 :ַהוחזה /י הבהז זוסץ ]טס הסו 660 6077665 6 0 !סוחס 7 3086 60 6!וקוחס 7-65 וחפםו|ה סו סהזנפפם -] . 9 = (חז)סזק וחטוסחסק זסצמ= -] | 5 טחוס עב זזה 6/יסוחסה. שן סח הטספ |סטוחץ5 76868 * ] = 6006 |508 זס] 6קוחחוטקס + 5 070 זסהַטלת1 סוחסה[ וסקס מ 7+ 805 = אהוס החוטב ס|=] 6שיסוחסה. |[ | וחק 660 הבעה ו זפ )חוסל הַחו3ס!= 6₪בחטפיזוח!\ אוסוום - - ] 6085 = (חל)וחטוטחס 5866 6שיסוח6ה. שן סופוץ | ו ] [₪ 6 תרשים נספח 2.1: היעזר בתיבות הדו-שיח 65ז6קסזק 666[סזק ו-5חסוז28וחוזק 0 660חה8עסה לביצוע פעולות אופטימיזציה על הקוד שיופק על ידי המהדר נספח 2: אריזת היישום 1 הגדרת שם, כותרת וסמל הפרויקט פעולה חשובה בתהליך הידור הפרויקט היא לוודא שהמאפיינים ₪86 ו-6טוד של הפרויקט מכילים ערכים בעלי משמעות. כברירת מחדל, 88566 |508ו/\ תקצה עבור הפרויקט שלך שם גנרי כגון 661[סזק. גסם אס תשנה את שס קובצ היעד של הפרויקט באמצעות תיבת הדו-שיח 6066[סזק 068%6, עדיין יש לשנות את שס הפרויקט ואת הכותרת שלו בתוך הפרויקט. אס כבר התנסית בכתיבת רכיבי א6ש860 כדוגמת קבצי 1 א6ע6%ה המכילים מחלקות ציבוריות, אתה בוודאי מודע לחשיבות שס הפרויקט, ובוודאי גס התנסית בהצבת ערך בעל משמעות במאפיין וה. כותרת הפרויקט חשובה מפני שהיא עשויה להופיע ב- 115% 185% פאוססחו/\ או בהודעות שגיאה. תיבות הטקסט המשמשות להגדרת המאפייניס שוח ו-6טוד נמצאות בכרטיסיות |8ז8ח66 ו-866!₪ שבתיבת הדו-שית 65ווסקסזק 6₪[סזק, בהתאמה. הערה: ככלל, אין סיבה להציב ערכים שונים במאפיינים סוח8א ו-6וד של הפרויקט. אם מאפיין 6פוד לא הוגדר, 8856 |פטפוצ\ תציב בו את שם הפרויקט. בטרס תפיץ את היישום, כדאי שתגדיר סמל (ח160) עבורו, בעזרת כרטיסיית 8>6!₪ שבתיבת הדו-שיח ₪65ו6קסזק 60%[סזק. סמל אומנס אינו רכיב הכרחי ביישוס, אך השימוש בסמל יעניק ליישום שלך חזות מקצועית יותר. כל מה שיש לעשות כדי להקצות סמל לטופס מסויס הוא לבחור את שס הטופס בתיבה הנפתח חססן. הכנות ליצירת תוכנית התקנה לאחר שתהדר את היישום בהצלחה, נסה את הגירסה המהודרת על המחשב, כדי לוודא שהיא אכן תפעל מחוץ לסביבת הפיתוח המשולבת של 8856 |1508/. יישוס 5 5000870 הרצ מתוך סייר פאוספחו/). אס תיצור רכיב א6שו4₪ נסה את הרכיב בפרויקט 8856 |8שפו\ או דף 60/\. לפני שתפיץ את היישוס, יש לבצע עליו בדיקות יסודיות יותר, תוך שימוש במחשב שונה מזה שעליו הוא פותח. אני גס ממליץ להדר את הפרויקט בתיקיה שונה מזו שבה פיתחת אותו. ביצוע פעולה כזו עשוי לסייע לך באיתור קבציס נוספים (כגון קבצי 1א1 או קבצי תמונה), שקוד היישוס פונה אליהס. לאחר שתזהה את הקבציס האלה ותיצור עותק פועל של היישוס שהודר, תוכל לבצע את הצעד הבא - שימוש ב- 28706ו/\ +חסוחץסוק6 800 6אַ668ה0. 12 סדנת לימוד 6.0 8\ אריזת פרויקט 5א₪ ַזבּ0ה5%3 הידרת את הקוד לקובצ הפעלה (50660880|6). אך הוא אינו יכול לפעול לבד. משתמשי היישום יידרשו להיעזר בקוב\ זמן ריצה (6|₪ 6וחשחטם) של ₪856 |הטפו/\ (לדוגמה, קובצ 11פ) שהותקן כיאות. כדי להשתמש ביישוס בגירסה 3 88566 |ףשפו/, היה על המשתמש להעתיק את קוב 300.011א/88/, ואת קובצ הפעלת (₪אם) היישום. כיוס יש להעתיק את קוב 11ם ולרשוס אותו ברישוס (ץ560150) פאוססחו/\. מאידך, איכות תוכנית העזר ליצירת קבצי התקנה ב- 88516 |הטפו\ השתפרה מגירסה לגירסה, והגירסה החדשה המכונה 6ז28/\ זחסוחץס|ק6 0חה סחַּא86ק היא הגירסה הטובה ביותר עד כה. התוכנית כוללת ממשק משתמש חדש ותמיכה באפשרויות נוספות להתאמה אישית של יישומים, שלא נתמכו על ידי גרסאות קודמות. מטרת התוכנית היא 'יאריות'יי התוכנית שלך ביחד עס קבצי העזר שלה, באופן שיאפשר להתקין אותה מדיסק או מה-89/\, באותו אופן בו מתקיניס תוכנות מדף. יצירת האריזה של יישום 5א₪ 6זב3ּ0ח5+3 סביר להניח שבהתקנת 8856 |1508/ נכלל גס קיצור דרך ל- +חסוחץסוק6 חה 6א668בק 6). מסך הפתיחה של האשף, הנראה בתרשיס נספח 2.2 הוא נקודת ההתחלה ליצירת תוכניות התקנה לכל סוגי היישומים שניתן לכתוב ב- 8856 |8טפו/. סעיף זה יתמקד בצעדים הדרושים ליצירת תוכנית התקנה לפרויקט 5א5% 0870ח9ז5. כדי להתייחס לסעיף כדוגמה במבנה צעד-אחר-צעד, יש ליצור תחילה פרויקט פשוט מסוג 5 5%900870, לשמור ולהדר אותו. אחר תוכל להפעיל את האשף. |< | 20 )חסהועס!קס 0 חב 6מב .סב א" סק 6 ספץ, %1ס6ןסזקץו]\₪00\: חב 35 506 , הַב36ק 6!פבטטו0150 3 ספחו +ספ[סזק 5וח6 סוטחטם [ הח זה סז 56 3 זס 635 +פחזססת1 | 5 500 , 5156 חסולטסו1507 3 80 65ַחַ236%3 5'ל86[סזק וח ]ס פחס 0ח56 501/61 6%חזס6ח1 חם. :.. +חשוחץיס!ק6 טוחב הַהוהַה6בכ זווסץי 061666 חב , 66ב=ווקוט , סוההחפת 3% .זכ פותל זס] 065ן561 ₪ וצ 6 5 | סופ 6 תרשים נספח 2.2: האפשרות החשובה ביותר במסך הפתיחה של 0חה סִהַהּא6הַק +חסוהץסוק6כ היא הלחצן 7866886 המשמש לבניית חבילות התקנה ליישומים נספח 2: אריזת היישום | 883 בחירת קובץ פרויקט הפעולה הראשונה שיש לבצע באשף היא בחירת קוב> פרויקט (קובצ 89/) בעזרת לחצן 6ז8. אחר לחצ על לחצן 2866806 כדי להתחיל ביצירת החבילה. הערה: אם טרם הידרת את הפרויקט שעבורו אתה בונה את החבילה, תוצג תיבת הודעה אשר תשאל האם ברצונך שהאשף יהדר אותו עבורך. לא תוכל להמשיך בפעולת בניית החבילה כל עוד לא תהדר את הקובץ. אני ממליץ להדר את הפרויקט בסביבת הפיתוח של 88516 |1508/\ ולא באשף, מפני שהידור הפרויקט באשף מוסיף צעד נוסף. בחירת סוג חבילה לאחר שהאשף יקרא את הנתוניס המאוחסנים בקוב\ ?8\ שבחרת, הוא יציג את מסך 6 7868806 שמוצג בתרשים נספח 2.3. מסך זה יאפשר לבחור את 6קץד 6אַאּ6הק (סוג החבילה) שתיצור. זכור שבמקרה זה המושג חבילה הוא מילה נרדפת לאוסף הקבציס המשמשים להתקנת היישום שלך. הערה: אם יוצג מסך 560% 0חו86680ק במקום מסך 6סץד 86%806ק בחר 6חסא ולחץ על לחצן +א6\. מסך זה יוצג אם שמרת קודם לכן הוראות אריזה כלשהן. ₪ ץע 2308300 - 12816/\ וחסהועסוקס כ חב סטב %סב<ו %" .01586 כ 86 נוסץ 2866806 01 שק 18 פטס 6 0 6 ע6ח06חסק6כן הי 5 3 עס 503160ח 6 ||ואו 6081 5חַ286%3 8 0686 סש 1056 בהז 500.66 תרשים נספח 2.3: סוגי האריזות שיוצעו בעת אריזת פרויקט מסוג 5א= 0870ח8ז5 הם 6 560 55800870 |-1!6= ץ6חה06חה6קסס אס תבחר את הסוג ₪6 ע6ח06ח6ק6כ, האשף לא ייצור תוכנית התקנה ניתנת להפעלה (שאם). 16 ש6ח06ח606כ (קובצ תלות) מכיל את הנתוניס על הקבציס אשר מאפשריםס לשלב גרסת התקנה של היישוס בחבילת התקנה של פרויקט אחר. בחר את האפשרות 6 5600 50800870, אלא אס כן אתה יוצר תוכנית התקנה אחת שתשמש להתקנת מספר פרויקטים. לצורך הדוגמה בחר אפשרות זו ולח על 6 4 סדנת לימוד 6.0 8\ הגדר תיקיית חבילה הנתון הבא שיש להזין לאשף הוא תיקיית חבילה (ז06!ס" 2866996). תיקיית חבילה היא התיקיה שבה האשף ייצור את קבצי ההתקנה שלך. אם אינך מעוניין שהקבצים יאוחסנו בתיקיה שקיימת בדיסק, תוכל להזין שס תיקיה חדשה. כברירת מחדל תיווצר תיקיה חדשה בשס 2866896 בתיקיה בה מאוחסן קוב הפרויקט. בחר את הקבצים לאחר שתבחר את התיקיה, יוצג המסך ₪65 1060060 שמוצג בתרשיס נספת 2.4. המסך יפרט את הקבצים שייכללו בחבילת ההתקנה ויאפשר להוסיף קבצים נוספים. אס יש קבציס שברצונך להפיץ עס התוכנית, למשל קבצי 1א1 או קא8, תוכל להוסיפס לרשימה בעזרת לחצן 800. בזמן העבודה במסך זה יוצגו תיאורי כליס שיציינו האס קובצ מסויס הוסף לחבילה באופן ידני, או האס הוא נדרש על ידי קוב אחר. [<] טוסח! - 286ו/\ וחסהועסוקס 0 חב סטב %סב<ו %" . ססַ3663ק זנוסץ הו שחו 86 | אוסוסם 15% 6ח! חו 65 פחד. ]0 66| 6 60 00660 805 ז 58| .65 800008 606חו 50 ₪00. .06 6 החסז] 116 3 יטוח 0 הזה ₪6 שח ב ג | 68 זע | ופ 5105007050 הזב זססזק\ > ורי 5 569100070501%! חזמ זססזק\. וי 1 שא ד5165 | הסוב וסנו 01.5 חפ סחזוזהו ו בג ישן תרשים נספח 2.4: תיבת הסימון מציינת שהקובץ (והקבצים התלויים בו, אם ישנם כאלה) ייכללו בחבילת ההתקנה של היישום נניח שתרצה להוסיף לפרויקט קוב\ 5אם שנוצר באמצעות 8856 |8טפו/, קוב 11פ, או קוב\ 06%, למשל אס חילקת את היישוס למספר פרויקטים, במקרה וכללת בו ייחבילה מנהלתיתיי לניהול כניסת משתמשים למערכת. אם לא יצרת חבילת התקנה עבור כל אחד מהפרויקטים האחרים, ייתכן שתוצג תיבת הדו-שיח. 8ַח558ו₪₪ הסוסה ז10ח1 ץ6חה6 סח6קסס, שמוצגת בתרשיסם נספת 2.5. הודעת אזהרה זו הוצגה כדי לאפשר לך לוודא שתוכנית ההתקנה תפעל. לדוגמה, אס החלטת לשלב ביישוס קבצי 55 נוספים, יש צורך גס בקבצי 11פ ו-א06 הדרושיס לאותס קבצים. אם תוצג הודעה כזו, תוכל לבחור בין יצירת נתוני תלות בעזרת האשף, לביון התעלמות ממנה אס תדע בוודאות שלא יידרשו קבצי עזר כלשהס. אם תסמן תיבות סימון כלשהן בתיבת הודעה זו (פעולה שאינני ממליץ לעשות), האשף לא יציג שאלות נוספות בקשר לנתוני תלות. נספח 2: אריזת היישום | 885 || חטוזבחזזס]ח! עח16 ת6ק6 2 הווא הסוס בוטהו ש6ח06ת6ק6 תסוחאו זס] ₪65 ]0 זפו| 8 15 אוסוסם 0ח6ח6ק06 שחל לטסתפואו הספספזום סד , בוחטפ] 6פ זסח הוס6 3 316 ]חש הבהחזוטק סד . אכ !₪ , (8)5!] חל זס] הסה רסחו 6060600% 5פן 56/86 , 65וסח6ח6ק06 סח בושיב 35 שו | סופת | | תרשים נספח 2.5: תיבת האזהרה המוצגת כאן מציינת שהאשף לא איתר קובץ קשרי תלות (קפכ - 6 ץ6ה06ח606כ) עבור הפריט שנבחר בחר אופציות 685 הצעד הבא הוא בחירת סוג קבצי 648 שברצונך ליצור. מסך פחסטקס 680 שמוצג בתרשיס נספח 2.6 מאפשר ליצור קבצי 648 בהתאס לסוג המדיה שבה תשתמש להפצת היישוס. להתקנה מכונן רשת או מתקליטור, בחר 685 96חו5, להתקנה מדיסקטים בחר 6305 6!וסטוגווא. הערה: בגרסאות קודמות של 8856 150 קבצי ההתקנה נדחסו ושמותיהם שונו לשמות שהכילו קווים תחתיים (6זס56ז06ח) כדי לחסוך מקום. הגירסה העדכנית של 8856 |8טפו\ נעזרת בפורמט 648. קבצי 628 (הדומים לקבצי ?21) מכילים גרסאות דחוסות של קבצי ההתקנה. ניתן לבצע פעולות על הקבצים הדחוסים משורת הפקודה של 05כ על ידי שימוש בתוכנית השירות 5086 או בסביבת פ5ספחו\\ על ידי שימוש בתוכנית השירות ש6ו\680 (ב- 98 פאוססחוש\ אין צורך ב-א6ו/0890). סע זס! 6155 0ב פוסו!נוחח זס 55 סב | חס 076866 חמ נוסור חס חסו30!סקה זנוסי 0066ס₪5071 50 הַחוסָ 86 וסץ 1 . 06ַ86%8. 30 58 590 חב 6305 ש|קט!נווח 015809 ופטח נוסץ ,81565 יסקס 6 0056 .56 0 חבוק וסץ ₪685 56 חבח! זסבַיז! סח 6קופ. 60 וסקס 65 8וזקסזקקם. 05 סב' פופ ₪ 5 שפטו 17 ו ב תרשים נספח 2.6: דחס את קבצי ההתקנה לקובץ 648 אחד או לכמה קבצים קטנים בואת סיימת להגדיר את הנתוניס החיוניים ליצירת תוכנית התקנה לפרויקט מסוג 5א= 00870ח500. המסכים הנותרים, שלא היו זמיניס בגרסאות קודמות, יאפשרו לך לבצע פעולות נוספות להתאמה אישית של תוכנית ההתקנה. 6 סדנת לימוד 6.0 8\ הגדרת כותרת התקנה לחץ על לחצן 6\ של מסך 5ח0ק0 635 כדי להציג את מסך 6וד ח563|!300ח1 (כותרת ההתקנה). מסך זה, שאינו מוצג בתרשים, יאפשר להגדיר כותרת עבור תוכנית ההתקנה כגון 5/5066 8ַחוזו0ק₪6 6עם660אם, הכותרת שתגדיר, תוצג ברקע במהלך פעולת תוכנית ההתקנה. יצירת קיצורי דרך וקבוצות יישומים מסך 10675 נוחסוא 971ו5 (ראה תרשיס נספח 2.7) הוא כלי התקנה חדש נוסף, שנכלל לראשונה ב- 6 8856 |1508/. המסך מאפשר לשלוט על סמלי קיצור דרך ועל קבוצות יישומיס שתוכנית ההתקנה תיצור. בגרסאות הקודמות, האשף יצר רק קיצור דרך אחד לקוב\ ההפעלה הראשי של הפרויקט. היעזר בלחצנים קטסזס שו6א ו- 16 וא כדי ליצור קבוצות יישומיס וקיצורי דרך להתקנה. כל אחד מהלחצנים יציג תיבת דו-שיח שתאפשר להזין תיאור ונתוניס נוספים. לדוגמה, תוכל להשתמש במסך זה כדי להגדיר קיצור דרך לקובצץ הערות התקנה שתספק עם היישום, או כדי להגדיר כתובת 081 שתעביר לאתר מסויס ב-60\\. במקרה כזה לת על הלחצן 16 צוסא, כדי לבחור את קובצ היעד מרשימת הקבציס שבחבילה, ולהגדיר כותרת לסמל קיצור הדרך החדש שיווצר. |< | )| טח6)א ]ז513 - 6זב2ו/\ ]ח6הועסוק ‏ חב 6ְהַב3א6ב %. 6ם !ואו חל 5וח6סו בוחה 5קטסזף נוחסוח 537% 506 שחוחזסמ6כ. .06655זק חס553|!30חו חל עפ :65 השח 557% | קטסז וס נוחסזי 5687 מק -=] בי ג ₪ ב | ...חס אוסו סע | ב : חסוום\\סקה עויז 3 | | 5 65 309 | וס | ה ות 8 | כו תרשים נספח 2.7: תוכנית ההתקנה יכולה ליצור עבורך קיצורי דרך וקבוצות יישומים הערה: לחצן 65ו6קסזק יבצע פעולות שונות בעת יצירת סטסז6 ו-חסזז. ביצירת וחסוז תוכל לערוך את הקובץ, כותרת הפריט ואת התיקיה הפעילה. בעת יצירת קבוצות יישומים בסביבת דא פאוססחוש\ תוכל להגדיר האם הקבוצה תהיה חסוחוח 60 (קבוצה משותפת - שתוצג בתפריט 58 של כל חשבונות המשתמש) או שפטוזק (קבוצה פרטית - שתוצג רק בתפריט +50 של חשבון המשתמש הפעיל). נספח 2: אריזת היישום | 887 הגדר מיקומי התקנות לאחר שתסיים להגדיר פריטי תפריט התחלה, לח על לחצן 6% ויוצג מסך נוסף, 5 ||508ח1, שבו תוכל לבצע פעולות התאמה אישית. במסך זּה, שמוצג בתרשיס נספח 2.8 קבע את הספריות שבהן יותקנו קבצי היישוס. סוגי קבצים מסוימים, כגון קבצי 11ם ו-06% מותקניס לרוב בתיקיה בה מותקנת מערכת ההפעלה פוססחו/ו. קוב ההפעלה של היישום מועתק באופן דומה לתיקיה שהמשתמש בוחר בעת התקנת היישוס. משוס שתיקיות אלו משתנות ממחשב למחשב, האשף נעזר במאקרוס לצורך ייצוגן. |< | %חסו)063 ] |ו513ח] - 6זב2ו/\ ]חסהועס!ק6 כ חב 6הַ3א60ב %* | 65| 06 ]0 ח636 זס] הס 063 |558חו שח ץ"וסח ח63 סע זז .306 שחל חו 6 6 0 3551060 סבה 506 הוח 6 עם אוסוסם 3 ]0 ח6 05 0 הסוסהוחזס)חו 50/0100 306 חה6 טס 65780 סוס 5 ץוחה זט )+ הו 85 ,860 6 שַהַחבח6 הפר , טוח 50 >חהאו וסץ !₪ 6חל 56ססח חהח60 1.0630 10558 576 חו הסוטםוחזס/חו 5% \5יכוסז\: אס =1/יסויזם. 800%\: | 68 1:ספנסזסעוי] תרשים נספח 2.8: תוכל להגדיר (85|ו=חסוחוחס )+ (חסחוס = בעצמך את המקום בו יותקן כל קובץ (חזהק5ש5חו/%) תוכל להתייחס למאקרוס, הניתניס לזיהוי לפי התחביר (86ח0ז86/%)% כאל סמלים שתוכנית ההתקנה תציב במקום שמות ספריות הקיימות באותו מחשב. לדוגמה נתייחס לתיקיה הח5/5%6 של פצוססחו/צ, שנתיב ברירת המחדל שלה ב- 95 פוספחוצ\ הוא רח506ץ5\פ5עשססחו/\\:6, לעומת דא פאוספחוצ\ שס הוא 32אם ז5צ5\דאאז/צ\:6. הגדרת נתיב מותאס בעת התקנת פשספחו/\ גורמת לתיקיה הח506ץ5 לקבל את הנתיב וח6ס5ץ95\5חו//ץו]\:ם או נתיב דומה. אך המאקרו (ח5/5280חו//\)% יאתר את התיקיה ה5%6ץ5 בכל מחשב. סמן רכיבים משותפים תיבת הדו-שיח הבאה 66 60ז8ח5, תאפשר לסמן קבצים מסוימים כרכיבים משותפים (ח6חסק60 6ַ6זה50). רכיבים משותפים הס לרוב קבצי ₪11 או קבצים מסוגיס אחרים אשר משמשים כמה תוכניות במקביל. לדוגמה, אס התקנת 10 יישומי 6 |8טפו/\ על מחשב מסוים, כל היישומים ייחולקים ביניהסיי את קובץ ומן הריצה | 15\/8/160.0א. קוב המסומן כקובצ משותף אינו מוסר בעת הסרת התוכנית, אלא אס כן תוכנית ההסרה מזהה שלא קיימים יישומים אחרים אשר משתמשים באותו קובץ. 8856 |508\ היא שמסמנת את הקבצים המשותפים, ואילו הרישום (₪60150) מנהל את המעקב אחר היישומים שמשתמשים באותס קבצים משותפים. ברוב המקרים יהיה כדאי לבחור את הגדרות ברירת המחדל (ראה תרשים נספת 2.9). 8 סדנת לימוד 6.0 8\ הערה: הגדרת קובץ הפעלה כקובץ משותף, למרות שאינו מיועד להיות כזה, תימנע את הצגת שתי תיבות אזהרה שתתייחסנה למקרי החלפת קובץ קיים. תיבות האזהרה תצגנה הודעות סותרות (כגון ?560 |68066 |-?56000 6טחטח60) והן עלולות לבלבל משתמשים מסוימים. בכך שתגדיר את הקובץ כרכיב משותף, תורה למעשה לתוכנית ההתקנה שהיא אינה זקוקה לאישור מהמשתמש כדי לדרוס את הקובץ. |< | %]ָ 503166 - 6זב2ו/\ ]ח6הועס!ק6] חב 6ִהַב3א6ב %. 6ם חב6 (₪1605 הַחואאוס!וס] 06 , ס6ו|558חו 5 חַה%ס3ק 5וח חסח/א חב 6 זסו יפ 5 6 עב 65 60 זב3ח5 .65 60זבח5 35 60ו5531חו השרי הזה זהיסז ע'זסים ]| סז חס 6 הד הזב זהסזק שחס 5 ||553חו 50 חפ סע 65|\] 6 066% .160/60 5! תשרל 565 ו :ו הזת ספת | | 5065 | (חזב שקה )+ 800% \: 6א6. 6061[טזסעיי/ (חזהשקק )+ 5חפונו6סק 1 סא תרשים נספח 2.9: אין הכרח להסיר קבצים משותפים בעת הסרה יישום מב זוה < 46 1% 8 בב | <%₪ | הערה: תוכל להסיר יישומים על ידי בחירה באפשרות הוספה/הסרה של תוכניות מלוח הבקרה של פאוסבחו/ש. שמור את תסריט האריזה לאחר שתסיים להגדיר את הנתוניס הדרושיס לאשף, יוצג מסך חפחו= (סיוס). אס שינית רבות מההגדרות הסטנדרטיות, תוכל לקרוא ל- 560076 פַחוחַ8688ק (תסריט האריוה) בשס בעל משמעות לשימוש עתידי. אם לא תרצה לשנות שס קובצ ה-5610%, תוכל פשוט ללחו על לחצן חפוחו= וליצור את קבצי ההתקנה של היישוס. טיפ: לאחר שיצרת תסריט אריזה, בפעם הבאה שתארוז יישום, יוצג מסך הַחוסָהסהק 5% של האשף. תוכל לבחור לטעון תסריט אריזה קיים, או להתחיל ביצירת 57% חדש על ידי בחירה באפשרות 6חסא. אם תרצה למחוק 56106 קיים או לשנות את שמו, תוכל לבחור באפשרות +קו567 סְבַבּחב! במסך הראשון. לאחר שקבצי ההתקנה ייווצרו, יוצג ₪601 חופ08608 (דוח אריזה) כמו זה הנראה בתרשיס נספת 2.10. נספח 2: אריזת היישום | 889 [<]ם]. | ו %. 800630366 \:-* 35 >וונום הפספ 35 חסוסב6וקס3 זטוסץ זס] 86 630 שחד 688 1ספןםזס עה (2) 8006 \:) ץ'וס:ספזום >'וסקקט5 86 חו 6 ה2856 3 50|ב 15 6זסחד 6 630 6ח? 6076866 סש טופ סוב ||ואו בר (דם8. 61ש6[סזסעיוי]\זסססט5 \(2) .1165 6ח? ]0 506 50 5הַחבח6 365 טסץ 6856 חו | 6 סקט 58/6 תרשים נספח 2.10: זוסקסח פַחוס86%8ק יאפשר לדעת היכן אוחסנו קבצי ההתקנה סיים את תהליך האריזה כאשר תסגור את חלון 600% 8ַחו86680ק תחתזור למסך הראשי של האשף. בואת סיימת את תהליך האריזה, וכעת תוכל לנסות את תוכנית ההתקנה שיצרת על ידי הפעלת הקובצ 5אם.פ551 מהתיקיה שבה בנית את הפרויקט. אם יש ליצור תוכנית התקנה שתשמש משתמשים רבים, כדאי שתבצע בדיקות מקיפות על היישוס, כדי לוודא שחבילת ההתקנה מכילה את כל הרכיביס הדרושים. לא תוכל להסתפק בבדיקת היישוס על המחשב שלך, מפני שייתכן שקבצי 11 ו-א06 הדרושיס לשימוש ביישוס היו מותקניס על המחשב הזה עוד קודם לכן. טיפ: אחת הדרכים שבהן תוכל לוודא שחבילת ההתקנה של היישום אכן מכילה את כל הקבצים הדרושים לשם שימוש בו, היא על ידי בדיקת החבילה על מחשב שעליו מותקנת רק מערכת הפעלה. אך זו שיטה הכרוכה בבעיות מסוימות מפני שכל בדיקת התקנה תבצע שינויים באותה מערכת. אני מציע שתרכוש תוכנה שמאפשרת לשחזר את המצב ההתחלתי של המחשב על ידי שימוש בקובץ ₪6 1806 (קובץ תמונה), אשר תאפשר לך לבצע בדיקות התקנה תוך שימוש במיגוון תצורות תוכנה. סקירה מפורטת של תהליך ההתקנה זה עתה סקרנו את התהליך המשמש ליצירת מערכת קבצי התקנה המכונה גס חבילה (800א86ק). ניתן להניח שרוב המשתמשיס התנסו כבר בהתקנה תוכנות. מי לא התנסה עדייו בישיבה מול מחשב שהציג מד התקדמות זוחל במהלך התקנה! רוב המשתמשיס מתייחסיסם לתוכניות התקנה כלתוכניות המבצעות פעולה פשוטה. אך על מפתח תוכנת התקנה להבין שהתוכנה אינה מעתיקה קבצים בלבד. בסעיפיס הבאיס נסקור את סוגי הקבציס שנוצרים בשימוש ב- 0ז28)\ %הסתץסוק6כ 0ח8 סְאַהּאסהק ואת הפעולות המתרחשות בעת תהליך ההתקנה. 0 סדנת לימוד 6.0 8\ קבצי התקנה הפעולות המשמשות ליצירת חבילת התקנה של יישוס מסוג 5%5 0870ח5%8, שתוארו בסעיפים בקודמים, יוצרות שתי תיקיות חדשות בדיסק: <* 8806א₪86 (תיקיית חבילת ההתקנה) המכילה את קבצי ההתקנה הדחוסים בפורמט 648, את קוב ההפעלה של תוכנית ההתקנה, את ₪6 0606ח6ק6ס (קובץ קשרי התלות) ואת קוב בקרת ההתקנה ד5].ם0ד55. עליך להעתיק (או להפיץ) את תוכן תיקיית 0866806 למחשב שבו ברצונך להתקין את התוכנה. %, + +ז0סקט5 (תיקיית קבצי עזר) מכילה את קבצי ההתקנה כאשר הס פרוסים (לא דחוסים). אין צורך להפיץ תיקיה וו בעת הפצת היישוס. הערה: בעת יצירת קבצי התקנת רכיב 460/6% ייוצרו קבצי התקנה נוספים. התקנת רכיבי 66% תתואר בהמשך. ד .550 הוא אחד הקבצים שאשף ההתקנה יצר. קובץ וה הוא קובץ הבקרה של תהליך התקנת פרויקט מסוג 5%5 0ז08ח508. ניתן להציג את תוכנו באמצעות עורך טקסט, כמתואר בתרשים נספח 2.11. קובץ 0.15 55 אל תיבהל מתוכנו הבלתי ברור של הקוב\. למעשה, המבנה הוא ברור מאוד. אביא כעת סקירה מפורטת על אופן השימוש בקוב: 1 כאשר קובצ פאם.ש0 551 מופעל על ידי המשתמש, הקבציס ששמותיהס מאוזכריס בקטע [65!=₪ ק80005₪8] של קובצ זה, מועתקים למחשב היעד, נפרסים ונרשמיס ברישוס. במקריס מסוימים, אס קבצים מסוימים אינם מעודכנים, המשתמש עשוי להידרש לאתחל את המחשב. משוס שייתכן שקבצי זמן ריצה של |8טפו\ 6 לא יהיו קיימיס, יש לכתוב את תוכנית ההתקנה בשפה שתאפשר לה לפעול גם בלעדיהם. הקבציס המעטיס האלה הס המינימוס הנדרש להפעלת תוכנית 8856 |8ש15/, במיוחד כאשר מדובר בתוכנית 5אם.00 551 שמבצעת את רוב העבודה הקשורה בהתקנת היישום. זה הייעוד העיקרי של 5אם. 0 ד55, שמתפקדת כיימעטפתיי עבור התוכנית 5א1.5ק/551. םאם.1ק0 551 מסופקת עס 8856 [1508/\ והאשף כולל אותה בקבצי 628 באופן אוטומטי. 2 התוכנית 5א1.5ק5510 תציג הודעת ברכה ותבקש מהמשתמש להגדיר תיקיה שבה יותקן היישוס, כמתואר בתרשיס נספת 2.12. 3 אס המשתמש יבחר להמשיך, התוכנית תיצור את התיקיה בה יותקן היישוס ותתחיל בהעתקת הקבציס. הקבצים שיועתקו מפורטיס בקטע [₪65 560001] של קוב\ 5515.151. עבור כל קובץ בקטע זה מפורטיס פרמטריס רביסם. פרמטריס נספח 2: אריזת היישום 01( אלה מספקים לתוכנית ההתקנה נתוניס על כל קוב\. בין היתר, הנתונים כוללים את שס התיקיה בה יותקן הקוב ואת מספר הגירסה שלו. - )5 קטו56 ₪ 8 ה0: | 6 [037ו800%5%] 9-1 .8 5%800 716356 ,1165] מה1ע600=%א6זקט565 8 ל עו=116 ]630 38 6. 6005%+5%31=5%ח1ח₪ שח 5++5ח=-ו1פ קחד 51 [1185] ק800%5%/3] 1 6/18/98%8,,, (5:116ע5ה+573ש5ה5)01, | 1פ. ד1אד1161=₪0865] ו501+8601516 911)%, (5116ש3175 57ש105/)%, | ופ. ז00וו₪00-1162ז , (006015%60 5)71, (3+7505:116 0105057 )5, 8 וד. 52 ו90ז1163=05] :4 6/2/98,,, (5:116ע5ה573%ש5ה%5)01, | 1פ. ז 11 ]1160=₪0590] '561+86015 911)%, (5:116ש3+75 105057 )+, | ופ. 570032 1165801 !5)911.501+86015, (0505:116+01050573%)%, 1 1פ. 00132 11166=801 '561+86015 5)911, (5:116ע5ה+3 0105057 )5, | ופ. 1167=₪7150001168ז [5קט0ו16000] 1 טסשוקעו!=8קטסום 0006 3%ט1וק ( 35 "וסס"ו? )%=8חפ"ו3ק [ה1163%10קקהעוו] "6א6. 16661 ס-וקעוו''=16001 ה1163%10קקה עוו=1%161ד (ח+3קק )%=1ח1 53 | "6א6. 16661 סשקְעוו''=16002 5 15162=8016355ך ו תרשים נספח 2.12: המשתמש יוכל לבחור תיקיה שבה יותקן היישום ₪0 הערה: אם לא תרצה לאפשר למשתמש לבחור בעצמו תיקיית יעד, הוסף את השורה 1זו076605606)0=] לקטע [56000] של קובץ ז15.פד55. אם תרצה להגדיר תיקיית ברירת מחדל אחרת, תוכל לשנות את שורת זוסזוט6)3ס. 12 סדנת לימוד 6.0 8\ מ אזהרה: מספר הגירסה של התוכנית חשוב מאוד. אם לא שינית את מספר הגירסה העדכני בתיבת הדו-שיח 65שזסקסזק 605[סזק, תוכנית ההתקנה תניח שבמחשב המשתמש מותקנת הגירסה הרצויה, כך שהיא לא תדרוס אותה. אם תיתקל בבעיות תוכל לעיין בקובץ 108 ח800ו|9ז5ח1 (קובץ יומן התקנה), כדי לוודא אילו קבצים אכן הועתקו. 4. כשתוכנית 5אם.1ק5510 תסיים להעתיק את הקבצים, היא תנסה לרשוס את חלקם ברישום. הבדיקה האס יש לרשוס קוב תתבסס על אחד מהפרמטרים שבקובף ד15.ז55, ברוב המקרים, הפרמטר (56!/₪6015066 11ם) או הפרמטר (561186015%67 א)9. הערה: אם יש לרשום קובץ מסוים באופן ידני, תוכל להיעזר לשם כך בתוכנית השירות 2 שמסופקת כחלק מ-פווסטחו/\. ניתן לרשום קבצים מסוג 5א5% א6%צ6ה על ידי הפעלתם בשורת הפקודה, תוך הכללת הפרמטר ₪5655₪/5₪/ בשורת ההפעלה. 5 | 55101.5 תיצור סמלי קיצור-דרך עבור התוכנית. שמות קבוצות היישומיס מפורטיס בקטע [05ט0ז6 ח160] של קובצ 57 ןש ד55. 6. תוכנית התקנה תבנה קוב יומן התקנה (6!₪ 108 חססהו|50ח1) שבו תפורטנה הפעולות העיקריות בתהליך ההתקנה (העתקה, רישוס קבציס וכך הלאה), שיישמר בתיקיה בה יותקן היישום. קוב היומן נועד לשימוש תוכנת ההסרה, אך ניתן להשתמש בו גס אס יש צורך לטפל בבעיות שהתעוררו במהלך ההתקנה. בנייה חוזרת של קובץ 648 בוודאי שמת לב שקבצי ההתקנה נדחסו לקוב\ 648, או לכמה קבצי 648. אם תבצע שינוי ולו הקטן ביותר בתוכנית שלך, יש להדר שוב את התוכנית ולאחסן את קובצ ההפעלה המעודכן בקובצ 648. זוהי הסיבה שבעטיה האשף יוצר עותק נוסף, לא דחוס, של סדרת קבצי ההתקנה של היישוס, שאותו הוא מאחסן בתיקיה +וססקט5. האשף גס ייצור קובץ אצווה (6|₪ 8860), שיקבל את השס שהגדרת לפרויקט, למשל ד דשסמץ. אס תרצה לעדכן את חבילת ההתקנה מבלי להפעיל שוב את האשף, תוכל להיעזר בקוב אצווה זה. לבנייה חוזרת של קוב 648, העתק את קוב פאם החדש לתיקיה א+וססקט5 ולאחר מכן לחץ לחיצה כפולה על קוב האצווה. בתיקיה +וססקט5 ייבנה קובצ 648 חדש שאותו יש להעתיק אל תיקיית סאַאא86ק, תוך דריסת קובצ 648 הקייס. נספח 2: אריזת היישום | 893 התאמה אישית של ההתקנה קוב 55107.|51 אומנס מאפשר לבצע עליו פעולות התאמה מסוימות, אך ייתכן שתוכנית ההתקנה הסטנדרטית לא תתאים לצרכיך. לדוגמה, ייתכן שתרצה ליצור תוכנית 'ימעטפת'י שתעטוף את תוכנית 5אם.ק510, כדי שזו תבצע פעולות אחרות. תוכל למשל להגדיר באופן ומני את שרת ההתקנה ככונן ברשת, להפעיל את שאם. 550 ולהתנתק מכונן אה בסיוס ההתקנה. אס תפיץ תוכנית כזו למשתמשיס באמצעות דואר אלקטרוני, הס לא יידרשו לנושא התקשרות לכונן הנכון. אפשרות נוספת היא יצירת מסד נתוניס שיכיל נתוניס על תאריכי התקנת התוכנה אצל כל אחד מהמשתמשים. גס במקרה כזה יש לכתוב את 5א55105.5 באופן שלא ידרוש שימוש בקבצי ומן הריצה של 6 88516 |1508/, כפי שעשית בעת כתיבת םאם.סטד55. אס תרצה להשתמש בתוכנית התקנה שאינה 5א1.5ק5510, תוכל עדיין להיעזר בה לצורך התקנת קבצי 11ם שידא( של 6 8856 |808ו/. החלף את 5אם.1ק0 551 בתיקיה סקפ ובנה מחדש את קוב 68. תוכל גם לגרוע את הקטע [₪65 560001] מקובצ ד .55 אס תיווכח שקטע זה אינו דרוש לתוכנית ההתקנה שלך. הערה: 8% מספקת קוד מקור של 5אם.1ק5510 כחלק מ- 8856 |ה150/. אם תרצה לעיין בו, פתח את הקובץ ק1./82ק5570, בנתיב 0\560001ז28/שכק\05זהקשצ. אני ממליץ שתיצור עותק גיבוי של הקבצים לפני שתבצע בהם שינויים כלשהם. התקנות מוצלחות אם ליישום יש משתמשים רבים, התקנתו עשויה להיות פעולה המלווה בבעיות. בעת התקנת תוכניות המיועדות לפעול בסביבת שרת/לקוח סביר להניח שיש גם להתקין מנהלי התקן (פזפטוזם) עבור מסד נתונים ולהגדיר מקורות נתונים (85סזט50 8ַ081), פעולה שתהיה שלב נוסף בתהליך ההתקנה. אפילו התקנות המיועדות להתבצע מהאינטרנט, שאמורות להיות מבוצעות באופן אוטומטי על ידי זפזסו|קא= 1פחזפוח! עשויות לדרוש טיפול ידני בהגדרות אבטחה. אני מניח שרבים יסכימו שאין לדרוש ממשתמשים לבצע "שמיניות באוויר" כדי להתקין יישום. בעת יצירת תוכנית התקנה כדאי לשאוף ליצור תוכנית התקנה חד-שלבית שתבצע את כל הפעולות באופן המהיר והיעיל ביותר האפשרי. כדי שתוכל להשיג יעד זה, יש לנקוט לעיתים בפעולות יצירתיות, ולא להסתפק בתוצר הסטנדרטי שהאשף מספק. אך זכור שנקיטת פעולות אלו תעניק ליישום מראה מקצועי יותר. תוכל לחסוך את הטיפול בבעיות הקשורות בפעולת היישום על ידי ביצוע פעולות לבדיקה וניסוי מקיפים של היישום בטרם הפצתו. כדאי לנסות את היישום על מחשב שניתן להחזיר את מערכת ההפעלה שלו למצבה ההתחלתי על ידי שימוש בתוכנת 051ח6. כדאי גם שתנסה את היישום באמצעות מערכות הפעלה שונות, ושתבדוק הבדלים העשויים להתעורר בין התקנות שידרוג לבין התקנות חדשות. כמו כן חשוב מאוד שתבדוק את האינטראקציה בין היישום ובין חבילות תוכנה אחרות. 4 סדנת לימוד 6.0 8\ אריזת רכיבי %א6עו46% בסעיפיס הקודמיםס למדת על השימוש באשף >חסוחץס!|ק6כ 0ח8 6אַ8א86ק לאריות פרויקט מסוג ₪%5 800870ז5. התהליך הדרוש לשסם אריות רכיבי 66% כגון פקדי 66% (קבצי 06%) ו-11'5ם 860/6% דומה, אך האשף תומך גס בכמה אפשרויות ייחודיות לאריות פרויקט מסוג זה. הורדה מהאינטרנט בעבודה עס רכיב 6%ע60 מוצעת לך אפשרות ליצור תוכנית התקנה רגילה שתופעל בעקבות הוראה מפורשת של המשתמש, אך גס תוצע לך אפשרות ליצור חבילת התקנה המיועדת להורדה מהאינטרנט. במקרה שתיצור חבילה כזו, זסזסוכאם 66חזססח1 יהיה הגורס שיטפל בהתקנת הרכיב. אס תרצה ליצור חבילה להתקנה מהאינטרנט, בחר את האפשרות 806א86ק 6%חזססח1 ממסך 6קץד 0868806 המוצג בתרשיס נספת 2.13. יש להחליט גם אילו קבציס יש לשלב בקוב\ 648. כדי שמשתמשים יוכלו להתקין את רכיב 6%ש260, יידרשו גס קבצי 11פ הרלוונטייס של 8856 |%1508\. כברירת מחדל, האשף ייצור חבילה שתורה לדפדפן להוריד קבציס אלה מאחד מאתרי 50%סזסוא, כך שניתן לומר שכאשר משתמשים נכנסים לאתר שלך כדי להוריד רכיב 6%ע460, הרכיב עצמו מורד מקובץ 648 המאוחסן באתר, אך שאר קבצי 11ס שנדרשיס לשם שימוש בו, מגיעים ישירות מ-50%סזסו₪!. |< | 6ץע 308306 - 6זב2ו/\ ]הסהועס!ק6 2 חב 360306 1 .076806 50 לחב/או נוסץץ שְהַ230%3 ]0 שקעם 86 0056 06 6 5 530037 6 ע6חשבחשקטק :חסוסקן 650 > 6ם ||או 1087 סַהַב6הק ח0ו558|!30חו 63-03560. 3 66868 ספ 056 50/6 פ6/\ 8 50 5560ס זס 5156 פ6/\ 3 חס 3060 טוחושוסט. | 2[ ₪2 ] ₪ | ₪ | | שי תרשים נספח 2.13: אם יצרת פקד 6%ע60 המיועד לשימוש ב- זסזס|קאם ז6חזסזח1, יש ליצור עבורו 2866806 ח519|!800ח1 61חזסזח1 (חבילה להתקנה מה-0ס6/) אס החיבור שלך לאינטרנט אינו אמין, איטי או אינו רציף, ייתכן שתרצה לשלב את קבצי 6וחט-חטח של 8856 |508ו/\ בקובצ 648. ייתכן גסם שמשיקולי מהירות, תרצה לאחסן את קוב 648 שבאתר שלך במספר קבציס קטנים. אפשרויות אלו תוכל להגדיר במסך 06זט50 6!ו= (מקור הקבצים) של האשף אשר מוצג בתרשים נספח 2.14. נספח 2: אריזת היישום | 895 6ז 50 6!ו=] - 6זב2ו/\ ]חסהועסוק6 כ חב 6ִהַב3א6ב %. זו תל חס 056ח? 0 הפאחו| 6ב 865חופב 6 6חוסחטז 366 זה 50 טסץ חסו0630| זסתלסחב סל זס (6!₪ ק6ם. שר עפ 6ו5060) 5165 ססעעי וסוס 50 6הוזקסזזקקב 6* ע66ק5 חב 56| 6ח6 חו 6 636 56566 6356ו ו 50 16 | > 100% % 5 1 וס. קה קאז155י 665 0 05016ז0[] סז ה טוחאום. + 06% 601[טזוס עזי החססנוה 015 חב והוסחטוח 86 6 0 866 זס36. החס?ז ההטוחאוסם. 7+ 0 (6א(\ זס |₪() זסזח6) תרשים נספח 2.14: תוכל להגדיר מיקום ההורדה של קובץ בלחיצה עליו והזנת כתובת 81 או הנתיב ₪ | 668 = | | 565 ע53/61 - 6זב2וש\ ]הסהועס!ק6 2 חב 6חַ3א₪36 %. בחויס!ו] הז וס 0906 56 +סח ב!נוס6 5חַח50 58/05 6 56/60% ,53/6 35 הטחסקוחס6 3 3% סד . 65הטתסקוחס6 6 ההז 5הַהו5611 66ה1זקסזזקק3 506 60056 חפר* ,+השהסקוחס6 .3066 5ח: ח! פהוחט!ס6 זופתל 5חַחו500 58/0 ח0ו8/28ווח1 זט 586 | הַחוקו507 זס] 5376 | 65הטהסקוחס 5 | תרשים נספח 2.15: תיבת הדו-שיח - 5 596% (הגדרות אבטחה) משמשת להגדרת רמת האבטחה שאותה יש להגדיר עבור הרכיב במחשב המשתמש | ו | 63 | סוס אפשרויות 0%ו501 ביצירת חבילת התקנה לרכיב 606% המיועד לשימוש בדפי 60)\ חשוב שתוודא שהרכיב יוגדר פַח5600 וס 5816 ו-חסחה2ו|הטוח1 זס= 5816, כבתרשיס נספת 2.15. כשרכיב הוא פַחטכ1ז50 זס? 586 ניתן לבצע אליו גישה מקוד שפת 567106 (כגון +856110/) מבלי להסתכן בגרימת נזק למחשב המשתמש. כשרכיב הוא חסוז08|8וח1 זס+ 5816 ניתן להגדיר מופע של האובייקט מבלי להזציק למחשב המשתמש. לדוגמה, נניח שיצרת פקד 66% שתומך בשיטה למחיקת קבצים. אתרי פ6\\ שלך אומנס ינצלו שיטה זו באופן אחראי, אך יש משתמשים שיכתבו קוד משלהם וינצלו שיטה זו באופן מזיק. מובן שכדי שתוכל להשתמש בפקד שיצרת על אפשרויות אלו להיות פעילות, לכן כדאי שתקדיש מחשבה רבה לשיטות ולמאפייניס של הפקדיס שאליהס תאפשר למשתמשים גישה. ראה, "התקנת פקדים באמצעות ה-טפו\", פרק 14. ראה, "שימוש ב-856106/", פרק 30. 6 סדנת לימוד 6.0 8\ קבצים המיועדים לשימוש באינטרנט 20 +חסוהץסוק6כ חב 6ְאַָבא6בק יוצר סוג קובץ 648 שונה עבור חבילות להתקנה מהאינטרנט. בוודאי וכור לך שבחבילת התקנה רגילה יש קוב\ ם6אם.קנד55 שהמשתמשיס נדרשיס להפעילו, ואילו חבילה להתקנה מהאינטרנט אינה נזקקת לתוכנית התקנה, מפני שההתקנה מטופלת על ידי זסזס|קאם 6%חז6סח1. קובצ 688 מכיל קובצ =א1 (קיצור של חסטאוחזס"א1), המורה ליישוס זפזס|קא= 6חזסזח1 אלו קבציס להתקין. בתרשיס נספח 2.16 תוכל לראות דוגמה לקובצ =א1. בעת יצירת פקד 6%ע60ה, זסזס|קא= 66חז6שח1 ייצור גם דוגמת קובצ וואדת. קובצ זה יכיל את קוד ]אד הנדרש לשס שימוש בפקד בדפי ס6/\: "56700000|1(\"=כ1 350 0> "101-8562-10005755608 510:91506/5-6822-1 5510="61/ 61 <"1,0,0,0= ח0סו5ז6ש 0 \0. 661[סזק"= 05 60 >/081501< שורות ₪191 אלו הן כל שנידרש להטבעת אובייקט א6%ע260 בדף 60/\. שיס לב שיש בקוד פירוט של 1 61855 הייחודי של האובייקט ושל מספר גרסת האובייקט. אפחזססח1 זסזסוקאם משתמש בנתוניס אלה ובנתוניס שבקובצ =א1, כדי לדעת האס הוא נידרש להוריד את האובייקט ולהטביע אותו. יכולת זו היא אחד היתרונות של השילוב שבין טכנולוגיית 6%שו60 ו- זסזסוכאם ז6חזסזח1. היא מאפשרת לאחסן גרסאות מעודכנות של פקדיס באתר ס6/), תוך ידיעה שגרסאות אלו תותקנה אוטומטית במחשבי המשתמשים. [< ום] = וא - או ססןסוכועו ₪ קוס ה0ז 568‏ ₪08 86] 8 2 0+ 116+ -א1;] (5580)32ש0005\5ה01 0+ 11 ,010065070 פשסשה01 08+ 18 ₪6 ה63 10651018 [ה6510ט] "6="0110000%-ו510030 8. 2= ]4 80036601 [96+301%105%311] 5]. 1165=105%311:ש600 5-ו ע-ו15ףַ 086 ז000867=000 [1165:ה01163%10ק5%3110ה81] 5. 1165=1055311זשָ600 ב 08801511-0 000867=8001 ]565%173%1000105[ 175%811 .+1165=1 [ 66215%53065-ו500] 1 608. 1661 סו עו , 6%חב3א 56 1פ%=1 ] 800 .6006[ אסס. 10661 ס-ואעוו=א6ס. 6661 ס וטע א06. 8110015=א06. =1טחוום . חקא ד53ון= | 1ם. ]חקא זו | 1ם. 1150001168= | 1ם. 1150001168 . 0032 01= | 1פ. 00132 ום . 032אקם 01= | 1ם. 032אקם וס .ד = | 1פ. ד ו1 ]8596 מו 52 01 ד8=5 וד. 52 וספז% תרשים נספח 2.16: קובץ א1 מורה ל- זסזסו|קא= ז6חזפזח1 אילו קבצים עליו להתקין והיכן יוכל למצוא אותם נספח 2: אריזת היישום | 897 מכאן... בנספח גה חקרת את השימוש באשף זחסוץס!|260 0ח8 0866806 ליצירת תוכנית התקנה עבור משתמשי היישום. למדת מעט גס על אופןו הפעולה של תוכנית היישום, ועל פעולות שיש לבצע לצורך התאמה אישית של תוכנית זו. מידע נוסף על נושאיס הקשוריס להתקנת תוכנות תוכל למצוא בפרקיס הבאים: = מידע נוסף אודות פקדי 6%ש460 תוכל למצוא בפרק 14 יצירת פקדי 6%ע6. + בפרק 31 מסמכי א6עוז46, תוכל על יצירת מסמכי 00/6%. 8 סדנת לימוד 6.0 8\ נספח 3 תקציר פקודות 501 נספח 3: תקציר פקודות 501 | 899 במספר פרקים קודמים, שעסקו בעבודה עם מסדי נתונים ראית דוגמאות לשימוש במשפטי 501 לצורך הגדרת מערכי רשומות. נספח זה יסביר כיצד ליצור משפטי 501 כאלה, וכיצד לבצע פעולות מתקדמות באמצעות 501. כל הדוגמאות שתובאנה בפרק תתייחסנה למסדי נתוניס של 860655, אך הטכניקות שתפורטנה תהיינה ישימות גס לסוגי מסדי נתוניס אחרים. ניתן לומר ש-501 היא אבן היסוד בעבודה עס סוגיס רביס של שרתי מסדי נתוניס כגון 0786 או 507/87 .501. בפרק וה יתוארו שני סוגיס עיקרייס של משפטי .501: משפטי חסטהוטקוחףּ!! מּזהס 6 (וס - משפטיסם לביצוע פעולות על נתוניסם) ומשפטי חסטוחו6כ הכ 6 (ס - משפטי הגדרת נתוניס). רוב הפרק יעסוק במשפטי ואפ ואס לא יצוין אחרת, תוכל להניח שמשפט נתון הוא משפט וואפ. הגדרת המושג 501 6 סט 50000760 (501 - שפת שאילתות מובנית) היא מערכת פקודות תכנות אשר מאפשרת למפתת (ולמשתמש הקצה) לבצע פעולות מהסוגיס הבאיס: + לאחזר נתוניס מטבלה או מטבלאות במסד נתוניסם או בכמה מסדי נתונים. + | לבצע פעולות על נתוניס בטבלאות על ידי הוספה, גריעה או שינוי רשומות. + להפיק נתוני סיכום כגון: מספרי רשומות, ערכי מינימום, מקסימום וממוצעים על בסיס הנתוניס שבטבלאות. > ליצור, לשנות ולגרוע טבלאות ממסדי נתוניס. + ליצור ולגרוע אינדקסיס של טבלאות. משפטי 501 מאפשריס למפתחיס לכתוב משפטי קוד מעטיס שיבצעו פעולות שלשס מימושן ב- 8856 |1508/\ יידרשו כ- 50-100 שורות קוד. כיצד פועלת .501 משס השפה משתמע, שהמשפטים שלה משמשים לבניית שאילתות שמעובדות על ידי מנגנון מסד הנתוניס. השאילתה מגדירה את השדות שיש לעבד, הטבלאות שמכילות את אותס שדות, טווח רשומות שאליו היא תתייחס, והגדרות הסדר שבו תוצגנה הרשומות המאוחזרות. משפטי .501 מחזירים לרוב רשומות במבנה 56%חץ₪ (מערך רשומות דינמי). בוודאי זכור לך כי אפחץ הוא מערך רשומות בר-עדכון שמכיל למעשה מצביעים לנתוניס שבמסד הנתונים. פ6פַחץכ אינס קיימיס באופן קבוע ולאחר סגירתס אין גישה אליהם. ל-501 אמצעים לטיפול באחסון קבוע של הרשומות המאוחזרות. 0 סדנת לימוד 6.0 8\ הערה: תחביר ‏ 501 60506 המוצג בדוגמאות מיועד לשימוש עם מנגנון 3% ותואם לתחביר 501 851 (אם כי קיימים הבדלים קטנים בין 501 070504 ל- ‏ 501 1ַ5א). אם תשתמש ב-501 להפנית שאילתות לשרת מסד נתונים חיצוני כמו זפ\ז56 .501 או 866זס, כדאי שתעיין בחומר התיעוד של השרת, כדי לוודא באילו יכולות שפת 501 שרת זה תומך, ומהו התחביר המשמש להעברת פקודות אליו. מרכיבי משפט ‏ 501 משפטי 501 מורכבים משלושה חלקים : + הצהרה על פרמטרים (5ח066|8700 זס6סהבּזהּק) - אלה פרמטרים אופציונלייס המועבריס למשפט 501 על ידי התוכנית. + פקודת הפעולה 5:00:66 6ע80וטקוחגּון) - חלק המשפט המורה למנגנון מסד הנתוניס איזו פעולה לנקוט, לדוגמה ז0ם 551 או שדם ושפ. > הצהרות על אפשרויות אופציונליות (5ח800ז266!3 פחסטקס) - ההצהרות מורות למנגנון מסד הנתוניס על תנאי סינון (פחסטו0חס6 זססוו=), נתוני קיבוץ (פּזהס 5וקטסזס), והגדרות מיון (9זזס5), שחלים על הנתוניס. בחלק זה ניתן למצוא קטעי משפט (565ש0|8) כמו =אםה/ו, צם ק(וסמ6 ו-צם הפסחס. סדר החלקים במשפט הוא: [5חסוס] %ח06ח006ז5 שש ה|טוקוח13] [5חסוה !606 ססות בּזבק] בקטע 266|8780005 זס66וחהּזהק תגדיר פרמטריס שישמשו במשפט ‏ 501. כל הערכים שיוגדרו בקטע ה יוצבו במשתניס המתאימים לפני ביצוע המשפט. ברוב הדוגמאות שתובאנה במהלך הנספת תבנה רק פקודות פעולה והצהרות על אפשרויות אופציונליות. על ידי שימוש בשני חלקי משפט אלה תוכל להגדיר שאילתות שתבצענה מיגוון פעולות רחב. בטבלת נספח 3.1 יפורטו ארבעה סוגים של פקודות פעולה תוך תיאור הפעולות שתבוצענה על ידן. טבלת נספח 3.1: משפטי הפעולה | משפט | | הפעולה שתבוצע על ידי המשפט ד |55 | אחזור קבוצת רשומות מטבלה ואחסון הרשומות שאוחזרו במערך %ח או במערך 6!פפד נספח 3: תקציר פקודות 501 | 901 משפטי הפעולה מוריסם למנגנון מה לעשות, אך 5ח266837300 חסטקס מורות למנגנון אילו שדות ורשומות עליו לעבד. הדיון על 5ח800ז266!3 חסשקס יהווה את רובו של פרק זה. במהלך הפרק נסקור את הפרמטרים המשמשים במשפטי 50 |55, אחר נשתמש בפרמטריס אלה כחלק ממשפטי פעולה אחרים. רוב הדוגמאות בפרק מתייחסות למסד נתוניס לדוגמה בית מסחר לאקווריומים. במהלך הדיון בסוגיס השונים של משפטי 501 נציג רק את תחביר המשפט. חשוב שתהיה מודע לכך שלא ניתן להשתמש במשפטי 501 באופן עצמאי ב- 8856 |15808/. משפטי 501 משמשים ליצירת אובייקטי ]6סץזפטס ומערכי רשומות מסוג זספּחץכ, או 5% על ידי שימוש בשיטה 66066אם, או כערכיס המוצביס במאפיין 0706ו₪6607050 של פקד מּזַ8כ. סעיף זה יתייחס לשימוש ב-501 ללא תלות בגורמיס אחרים, בעוד שהסעיף שימוש ב- 501 יתייחס לשימוש ב-501 בקוד תוכנית. הערה: אובייקט 60סעזפט) הוא חלק במסד נתונים שבו מאוחסנת הגדרת שאילתה. ההגדרה היא אותו משפט 501 שחיברת. משפט 56|66% משפט ]50 55 מאתזר רשומות (או שדות מסוימיס מתוך רשומות) ומאחסן את הנתוניס המותזריס במערך רשומות מסוג 6פּחץ0 או מסוג 6|פפד לצורך עיבוד נוסף על ידי התוכנית. תחביר משפט ז0ם |55 הוא : 730/05 | 6/0/06 [6806ו60זכ] ד60ם 55 [5חסטקס קטסז] [5חסטקס 505] [פהסטקס 86ח5[]/3הססה סז ס|טבז] הערה: בדוגמאות תחביר נקטתי בכללי הכתיב הבאים: מילות מפתח )501 תוצגנה באותיות רישיות, קטעים המוצגים בכתב נטוי הם קטעים שהמפתח יחליף בביטויים אחרים. לדוגמה, את הביטוי 56ו6!0=₪ ניתן להחליף בביטו' 6וח50\8זו= ,185%\%8₪06. מילים וביטויים המוצגים בסוגריים מרובעים הם אופציונליים. המרכיבים השונים של המשפט שהוצג לעיל יוסברו במהלך הפרק. משפטי 501 עשויים להיות מורכבים מאוד, אך הם גם עשויים להיות פשוטים מאוד. להלן מוצג המבנה הפשוט ביותר האפשרי עבור משפט 607 |55: 5 0 * [0ם 551 2 סדנת לימוד 6.0 8\ הגדרת השדות הרצויים קטע 66/0185 במשפט 501 משמש להגדרת השדות במערך הרשומות שיווצר כתוצאה מפעולת השאילתה. תוכל לשלב במערך הרשומות את כל השדות שבטבלה מסוימת, שדות נבחריס ואפילו שדות המכיליםס ערכיס מחושביס שיתבססו על ערכים משדות אחרים. את השדות תוכל לבחור מטבלה מסוימת או מתוך כמה טבלאות. מבנה קטע 580/86 שבמשפט ז50 551 הוא כדלקמן: [[8/9 45] 06/02 |.20/6087006 ], ][[8/01 5 ] 0'1/ס. |20/60806) ] בחירת כל השדות מטבלה הפרמטר **' (המכונה גס תו חיפוש כללי 0ז669!ו/\) משמש כדי להורות למנגנוו שאתה מעונייו לבחור את כל השדות שבטבלה מסוימת. תו החיפוש הכללי משמש בקטע 5% של המשפט. שימוש במשפט 5865 |זסם- * ז0ם 55 בשאילתה שתופעל על מסד הנתוניס לדוגמה שתבנה, יצור את מערך הרשומות המוצג בתרשים נספת 3.1. בחירת שדות מסוימים מטבלה במקריס רביס ידרשו לך רק מספר שדות בטבלה. תוכל להגדיר אילו שדות רצויים על ידי כך שתשלב רשימת שדות במשפט 01 |55. הפרד בין השדות באמצעות פסיקים. בנוסף, אם שס שדה שברשימה מכיל רווח, כגון /טְח8ט0) ז06זס, הקף את שס השדה בסוגרייסם מרובים. מערך הרשומות שיוחזר כתוצאה משימוש במשפט ‏ 501 שיוצג להלן, מוצג בתרשיס נספח 3.2. מערך רשומות שיווצר תוך שימוש ברשימת שדות נבחריס יהיה יעיל יותר ממערך רשומות שיווצר על ידי שימוש בתו הבחירה הכללי (*) הן מבחינת גודלו והן מבחינת מהירות יצירתו. כעיקרון כדאי שתמקד את השאילתות במספר השדות הקטן ביותר שיאפשר להשיג את המטרה שלשמה משמשת התוכנית. 5 החסה וח ,[0006 הח106] ד0= |55 5 וחב 5131001 501 א 8 * זפ ופפ 3 |50 ו [שחבט | |6ו8 ]06 החש 3650 5 | סחזפטם) 0 108 ה , 1/0884 |1077 ן ה ,1/08/94 1076 1 ד 4 4 1 + 00| 1135 4 1586 1 5 1205 ור 1 ,1/08/34 6 ,08/94 דח בי 4 ו 7 דופ 583 | הזופ 503 /8 [ | ות 503 הת 17 | טאו 1037 108/84 2 | ו 1037 | (1022 | 157 1/08/84 8 | 17 0/08/84 |1053 77 | 17 - הד 18 | 1 התד 1 | 1 | |- |-- | כ כ | 63 | > |=+ | |ת> | ת> מס | מס מס | מס |מם. ב תרשים נספח 3.1: שימוש בתו הבחירה הכללי * בפרמטר 58%ו|56|0 שבמשפט 6 |55 מוביל לבחירת כל השדות שבטבלת המקור נספח 3: תקציר פקודות 501 | 903 5 וה 1ח06ו16ה51 501 ו 6 0 עוחבגום ,[₪006 חפוו] דסם 56 | ו 86 חפ | | | , 7 ד ה 5 155 105 ו 1 17 102 12 18 13 ₪ 1 תרשים נספח 3.2: מערך זה נוצר על ידי הגדרת שדות ספציפיים במשפט 5607 551 בחירת שדות מכמה טבלאות במהלך הדיון בעיצוב מסדי נתוניסם, שהובא בפרק 24 יסודות מסד הנתונים ציינו שנרמול נתוניס על ידי אחסונס בטבלאות שונות, מאפשר למנוע מצבי נתוניס מיותרים. כשתאחזר נתוניס לשס הצגה או שינוי, תרצה להציג את הנתוניס הקשוריס אליהס והמאוחסניס בטבלאות אחרות. 501 מאפשרת לשלב נתוניסם מטבלאות שונות במערך רשומות אחד. כדי לבחור נתוניס מכמה טבלאות בבת-אחת יש להגדיר בשאילתה שלושה דברים: + + את הטבלה שממנה ייבחר כל שדה. + את השדה שמתוכו תבחר את הנתונים. > קשרים הקיימים בין טבלאות. הגדר את הטבלה שממנה יילקח כל שדה על ידי כך שתוסיף את שס הטבלה לפני שס השדה כשהוא מופרד ממנו באמצעות נקודה (לדוגמה, [6006 58!65.]1660% או וח .58/65 זכור שבעת שימוש בשמות שדות המכילים רווחים, יש להקיף את שמות השדות בסוגרייס מרובעיס). תוכל גס להשתמש בתו החיפוש הכללי (*) לאחר שס הטבלה כדי לציין שאתה מעוניין לבחור את כל השדות שבטבלה. הגדר את הטבלאות שאליהן תתייחס השאילתה על ידי כך שתציין את שמותיהן בקטע ואס של המשפט, כשהם מופרדים ה מזה בפסיק. את הקשריס הקיימיס בין הטבלאות תוכל להגדיר בקטע =חפח/\ או בתנאי א01נ של המשפט. קטעי =חפהו\ ו-א201 יידונו בהמשך הפרק. משפט .501 המובא בתוכנית נספת 3.1 יאחזר את כל השדות שבטבלה 58|66 ואת השדות חסטק650כ 1560 ו-|ו₪608 מטבלת 1675 |ו9ז₪6. טבלאות אלו מקושרות ביניהן באמצעות שדה 6006 ח166. תוצאות השימוש במשפט זה מוצגות בתרשים נספת 3.3. 4 סדנת לימוד 6.0 8\ [< ום]. ‏ 5 וח 1ח0חו0ה51 501 ו - 0 ובסה [5ח6ו! 618 [מסווקוז650 0 חפז]] [5וח6!! וב46] ".55165 ד = 551 | . 3 [0005) וחפ!!] [טחזס!! [006[=]₪618כ) הזס1/. 8165 5 \ סויו [טחוסוו ומוה .3065 5 | -01 5131000 501 > 06901 תפז | סהז6טז = |עחהט | |6ו8 6 פון 36510 5 | 05000 זה זסאספתס | 1 2 4 ד 0ב | 1 4 ד 54 ו 66| 1 4 ד 54 0 2|0150% 1/08/94 | | 6 )3 ,1/08/94 ו 1205 306 : רו | ן ב :0800 חססזג 4 4 5 503 זו 1 זסזסקחח = 4 4( חזוואפח |583 ו 100% | מדוא5ת ספ 7 טוח 5/2608 1/08/94 | ן ה 5/5086 ,08/94 דח ו טזתטואוו 1037 ופ 6 ה | ו 1 זט | 4 = ןווא 1578 שוסו וו 5 |5 4 = ]ןווא 1578 70 | 4 | 01/08/34 | 1088 | | 1578616 > 1 ב תרשים נספח 3.3: בחירה שדות מכמה טבלאות מפיקה מערך רשומות משולב תוכנית נספח 3.1: דא7ד.55 54 - בחירת שדות מטבלאות באמצעות משפט 501. ץחה .5865 * |ו619ח. | 05ח106 |ובז6] ד0= 55 [05ח106 |ו6%3] ,58165 םת [0006 166 ].[166005 |6%81] = [6006 וח58!65.]100 םתםרו/\ הערה: ניתן להשמיט שמות טבלאות משאילתות אחזור שדות אם שם השדה בו מדובר מופיע רק בטבלה אחת שברשימת הטבלאות באותה שאילתה. אך הכללת שם הטבלה היא נוהג תכנותי רצוי, שיישומו מקטין את הסיכוי לשגיאות ומשפר את קריאות הקוד. יצירת שדות מחושבים הדוגמה המובאת בתוכנית נספת 3.1 מתייחסת לנתוני הזמנות לקוחות ומערך הרשומות המוצג כולל שדות שבהם מוצגיס הפריט שהוזמן, הכמות שהוזמנה והמחיר הקמעונאי של הפריט. כדי שתוכל לחשב את העלות הכוללת של הפריטים שהוזמנו השתמש בשדה מחושב (₪6!0 60ז68!6]8) במשפט ‏ 501. שדה מחושב יכול להכיל תוצאה של פעולה מתמטית שבוצעה על שדות המכיליס ערכים מספריים (לדוגמה, שסחהט) * 6סחק) או פעולת עיבוד מחרוזות שבוצעה על שדות המכילים טקסט (לדוגמה 6וח9%\8זו= .8 85%%8₪06 1). לביצוע פעולות על שדות המכילים ערכיס מספרייס תוכל להשתמש באופרטוריס המתמטיים הרגילים (+, -, *, ., *), ולביצוע פעולות על שדות המכילים טקסט תוכל להשתמש באופרטור השרשור (א). בנוסף לכך תוכל גס להשתמש בפונקציות 88516 |508ו\ לביצוע פעולות על הנתוניס המאוחסניסם בשדות (תוכל, למשל, להיעזר בפונקציה 15% כדי לאתר מחרוזת בשדה המכיל טקסט, או בפונקציה 6455% כדי להמיר שדה המכיל טקסט לאותיות רישיות, או בפונקציה 508 כדי לחשב את השורש הריבועי של מספר). בתוכנית נספח 3.2 תוכל לראות דוגמאות לשימוש במספר פונקציות בקוד תוכנית. נספח 3: תקציר פקודות 501 | 905 תוכנית נספח 3.2: דאד.165אקדסד - יצירת מיגוון שדות מחושבים בעזרת ז0= |55. 6 ח6 טסץ ז00600+ 16105 חו50 סט סהסקקהב סי זחפצט טסץ וז (0:)6ח58ז6קרחה 06 5005 = סותפצון|ט 5 סרחה זו ₪ ' ,' 8 6וח850\3 | 0 55 (+):05|] 56 ,567/61 .5001 זס= .60655 חו 5אזסעו +ה6וח55300 6טספה סחך 5005 = 6ותפּצון|ט 5 6רח5\3זו + ' ,' + 6וח850\3 | 0 55 6זה 28516 |08פו/ חן סז 560 סז טסץ 5חססס6חטז 508 6 01 506 :66 פַהוצוס!|ס1 6רט חו 35 , 501 חו 6טבּווהטהּ ס5|הּ ((1,3 ,36 זו )10 )05% .8 ((6,1,3ח35%83 10%)1ו )65% ז0ם 55 05 65 סא כז6וחסספט6 ₪5 3066 15 )החש ה060/606 0176700065 סב סוס +8רל הוְבּח3 סססו 6 0% 0065 50/6 .]503 .567/61 .5001 חב 0313085065 66055 ₪15 חו .5חסט6חטז ()חם 0 | חב ()םקק(\ 85 56580חו +טט 655% | סח 655% 0 ה56876 0חהב 6ו₪ !6 .501 586%ח3 ד 6 566 5|ו06%9 6זסר וס 5ח0סו6חט% 8ח50' :3/8||06 50| 6זה 5חסט6חט חשהו! ב | 0 0הוס0ס33 )50 שהוסקפסהכ ד60= 55 בקוד שהובא כאן הוגדר שס עבור השדה המחושב. אס לא הוגדר שם, מנגנון הטיפול בשאילתות יקצה לשדה המחושב הראשון שסם גנרי כדוגמת 1001זכאם. בסעיף הבא, הגדרת שמות חלופיים לשדות יתואר כיצד תוכל להגדיר שס לשדה. שדות מחושבים מאוחסנים במערך הרשומות כשדות לקריאה בלבד - כך שלא ניתן לעדכן שדות אלה. פעולות עדכון שתבוצענה על הנתוניס שעליהס יתבססו השדות המחושבים לא ישתקפו בערכי השדות. הערה: אם תשתמש בשדה מחושב בשילוב עם פקד 0888 כדאי שתשתמש בפקד |6ט8 | לשם הצגת תוכן השדה. פעולה כזאת תמנע מהמשתמש לנסות לבצע פעולות לעדכון תוכן השדה, העלולות לגרום לשגיאות. תוכל להשתמש גם בתיבת טקסט שמאפיין 106660 (נעילה) שלה יוגדר 6טזוד (מידע נוסף על פקד 0888 ועל פקדי איגוד נתונים תוכל למצוא בפרק 25 פקד נתונים ופקדי איגוד נתונים). אם תשתמש בתיבת טקסט, ייתכן שתרצה לשנות את צבע הרקע שלה כאינדיקציה לכך שלא ניתן לשנות את תוכנה. 6 סדנת לימוד 6.0 8\ הגדרת שמות חלופיים לשדות בתוכנית נספח 3.2 יצרנו שדות מחושביס שייכללו במערך הרשומות. במקריס רביס תרצה להגדיר לשדות כאלה שמות שיהיו שוניס משמות ברירת המחדל שמנגנון השאילתות יקצה להס. ניתן לשנות את התחביר משפט ז0ם 551 כדי להגדיר שס עבור שדה מחושב. הקצאת השס נעשית על ידי שימוש ב-45 ובשס הרצוי. אס תרצה תוכל להשתמש בשיטה זו גס לצורך הגדרת שס לשדה רגיל. תוכנית נספח 3.3: דאד.=וז\ד605 - גישה לערך שדה מחושב והגדרת שם השדה. ()66ו01 1 60 סט5 סאה8עוזק 6006 5וחז ₪56 0 66760060 3.51 0 שפח זפטח טסצי 8חו5 5( .5501 חחוס 6 58 00 וחוכ 5 5הצוס) חחוס 59 45 חס5זסק5 חחוס ("פס1ז. דפ ז\6\ 60\א0:\800 ")356 הסקס. (66500ה60אזסש\ = טס 56 6 סח וחסז) 6החבח 5'הספזסק 3 0665 6006 פחועטסווס+ שחדדי ח0פ 506 0|6ה הזע 0חו50 06 חו ₪ 065ס5 סחםּ' "05 0\1560 = שרחה רסו .8 ' ,' 8 סוחבּ\ז35 | 5666" = .5501 (0606607056%)55001כ00.0 = 55 עס 56% (6!05)0ו-. 5 אס = ח50750 5 לוס סחוח+ 5806 16 6860 60065 6006 פחוצוסו|סז פחדי ז חח 01 50680ח! סרח 05 עם 6607056%ז 606 חו ₪660 סחי "0505 | 6וחב\ 5 6רההרס5זו ₪ ' ,' 8 סחהּ\ז5ה | 561661" = .5501 ((60070561)550(1 0.006 = 5מצוס] 56% ("6ח6!05)"1\3ו=. 5 וס = ח0ס5זס5 ה50ז576 אס 50וו זו חרז סזכן 000 6 סא 6 חס = 6/5 56% פוהזס\! = 00 56% 0טסצט 86006 זס חור רהז סז 060 הסעס' (:!!00\ 56 0ח3 חסו5660 פוחש קוא5 0 6ס' סט 0ח5 נספח 3: תקציר פקודות 501 | 907 הגדרת מקורות הנתונים בעת השימוש בשאילתה יש להודיע למנגנון מסד הנתוניס מהס הנתוניס הדרושים וגס היכן יוכל לאתרס. הודעה זו מועברת בקטע 80%" שבמשפט ז60ם |55. המבנה הכללי של קטע סח הוא : [[852ו|8 85] [0812 א1] 20/62 , ][8/851 5ה] [0551 \זז] 20/61 |אסם הסעיפים הבאים ידונו במספר אפשרויות שבהן ניתן להשתמש בקטע וזסח=. הגדרת שמות טבלאות הצורה הפשוטה ביותר של קטע אס8= משמשת לפנייה לטבלה יחידה. שורת הקוד הבאה עושה שימוש בצורה זו: 5 0 * ז0ם 551 קטע 80%" של המשפט יכול לשמש גם לפנייה למספר טבלאות, בבת-אחת (ראה תוכנית נספת 3.1). בעת פנייה למספר טבלאות בבת-אחת, הפרד בין שמות הטבלאות באמצעות פסיקים. גס כעת יש להקיף שם טבלה המכיל רווח בסוגריים מרובעים (ראה תוכנית נספת 3.1). שימוש בטבלאות ממסדי נתונים שונים כשתפתח יישומים רבים יותר, ייתכן שיהיה עליך להתייחס בשאילתה נתונה לטבלאות שבמסדי נתונים שוניס. נניח שיש לך מסד נתוניס שמכיל נתוניס על שם יישוב, שס מדינה ומספר מיקוד. סביר להניח שלא תרצה לשכפל מסד נתונים זה בכל יישוס שעשוי להוזדקק לו. משפט ז50 5 מאפשר לאחסן את הנתונים במסד הנתוניס המקורי, ולאחזר אותס בכל פעם שיידרשו. לאחזור נתוניס ממסד נתוניס אחר ממסד הנתוניסם הפעיל יש לשלב קטע א1 בקטע ₪0%= של משפט ז0ם |55. משפט ז0ם |55 שישמש לאחזור נתוני המיקוד עס נתוני הלקוחות מוצג בתוכנית נספח 3.4. תוכנית נספח 3.4: דאד. 65160051 - אחזור נתונים ממספר מסדי נתונים במקביל. ,3503006 ]. 015000015 7 55 ,56 1=]. זר 15%0) ,/0ו2106006.0 200.6 ,5 61500 ואסחת "פסןא. ז5ם ז\6\ 60\אססא\:פ" א1 2106006 0ן2106006.2 = 5.210ז6ו60560 =חםה/\ 8 סדנת לימוד 6.0 8\ הגדרת כינוי לשדה בטבלה שיס לב לאופן שבו צוין שס הטבלה בכל שדה שאליו בוצעה פנייה בתוכנית נספת 3.4. משוס ששמות שדות עלולים להיות ארוכים, ומשוסם ששאילתה מסוימת עשויה לפנות לשדות רבים, משפט 5607 |5₪ עלול להפוך לארוך מאוד. המשפט יהפוך למורכב יותר עס כל שדה וטבלה שתוסיף לו. בנוסף לכך, הצורך להקליד שמות ארוכים מגדיל את הסיכוי לשגיאות הקלדה. כדי להקל על הבעיה תוכל להגדיר כינוי (85ו|4) לטבלה על ידי שימוש ב-85 בקטע ומסח של משפט 0 |55. השימוש בקטע 45 מאפשר להגדיר שס קצר יותר וייחודי לכל טבלה. תוכל להשתמש בכינוי שתגדיר גם בקטעיס אחרים של משפט 667 |55, שבהס יש לציין את שס הטבלה שאליה אתה פונה. הקוד המובא בתוכנית נספח 3.5 הוא למעשה שכתוב של הקוד שהובא בתוכנית נספח 3.4, וכולל שימוש בכינויים 65 לטבלה 605000675 ו-27 לטבלה 2106006. תוכנית נספח 3.5: דאד.4115 - שימוש בכינוי לטבלה לחיסכון בהקלדה. :וק חס הצוס0 6% 60 85ו|3 80!6+ 3 פחופנ\ 55 7 05.1 8536, 05.56 20.00, 2 ,5 45 5ז6רח15%0ו]0א=-= 2 5 "פסוא. ז5ם ז\05\6 60\אססא\:ס" א1 2106006 0ו27.2 = 65.20 =מפהעע הקטעים ‏ 11א, דסא1ד5דכ ו-שו0סא ד6אזזפנזס ברוב היישומים שתבנה, תבחר את כל הרשומות שתענינה על מערכת קריטריוניס מסוימת. תוכל לעשות זאת על ידי שילוב קטע 411 לפני רשימת שמות השדות שתיכלל בשאילתה, או על ידי כך שלא תשלב קטעיס כלשהס במשפט (411 מהווה ברירת מחדל). כך ששני משפטי 501 המובאיס להלן יבצעו את אותה פעולה: 05005 את * ז60= 551 65005 זה 1 41 ז0ם |5₪ אך יהיו גס מקריס שבהס תרצה לזהות את הערכיס היחודיים של שדות. במקריס כאלה תוכל להשתמש בקטעים ז6א15611% או עוסא ד6א1571כ. קטע ז6א1ד15ס מורה למנגנון מסד הנתוניס לאחזר רק רשומה אחת המכילה סדרת ערכי שדות מסוימת, ללא תלות במספר הרשומות שבאותה טבלה המכילות את אותה סדרת ערכים רצויה. כדי שרשומה מסוימת תנופה על ידי קטע ז60א1571כ, כל השדות שלה יידרשו להכיל ערכים זהים לאלה שבשדות מקביליס ברשומה אחרת. לדוגמה, אס תשתמש בקטע נספח 3: תקציר פקודות 501 | 909 דסאזדסם בשאילתה לבתירת שמות משפחה ושמות פרטיים, תוכל לבחור מספר אנשיס ששס משפחתם ושוחח5, אך לא תוכל לאחזר יותר מרשומה אחת שבה השס הזור וח038סג. כדי לנפות מהטבלה רשומות שהן עותקיס מדויקיס של רשומות אחרות בטבלה, תוכל להשתמש בקטע /\0סח ד60א1ד15. אוסא ד6א1571 משווה בין הערכיס המאוחסניס בכל השדות ברשומה, אס הם מפורטיס בשאילתה ואס לאו. בעת שימוש במסד נתוני הדוגמה שמשמש אותנו במהלך פרק וה, תוכל להיעזר בקטע סח ז0א1571ס כדי לוהות אילו מוצריס הוזמנו פעס אחת לפחות. לקטע /\80 01511861 לא תהיה השפעה כלשהי בשאילתות שתתייחסנה לטבלה אחת בלבד. בתוכנית נספת 3.6 מוצגת דוגמה לשימוש בקטעים ד157186 ו-ש\ס₪ ד6א1ד5זס. תוכנית נספח 3.6: 4ט. ד0א1571כ שימוש ב-ז60א01571 וב-שוסח ד60א1ד5זס. 5 | [0006 ח166] דשא ד15כ 0 |55 [1665 |[6%8] | [0006 ח16]. [1065 |ו6%] סא דש דכ ז0ם 55 [0006 166 ].58]65= [0006 16 ].[166005 |[6%8] א 5865 מזסנ הפאז הגדרת קשרים בין טבלאות כשתגדיר מסד נתונים, תשתמש בשדות מפתח (6!05 עֶ6ַא) לקישור בין טבלאות שבמסד הנתוניס. לדוגמה, תוכל להשתמש בערך המאוחסן בשדה 1 ח50ז58|0506 שבטבלה 60500065 לצורך קישור לרשומת איש מכירות שבטבלה ח50ז6ק 58|65. פעולות לקישור בין טבלאות מבוצעות כדי לחסוך את הצורך לשלב את נתוני איש המכירות ברשומת כל אחד מהלקוחות. אותס שדות מפתח משמשים גם במשפט 07 |55 להגדרת קשרים (05ו50ח6!300ה) בין טבלאות, שיאפשרו להציג את הנתוניס המקשרים בין הטבלאות ולבצע עליהם פעולות. כך תרצה למשל להציג את שסם איש המכירות בתצוגת נתוני הלקוח, אך לא את מספר העובד שלו. קיימיס שני סוגיס קטעיס שמשמשים להגדרת קשרים בין טבלאות : + חו0? - משלב בין שתי טבלאות בהתאסם לתוכן השדות המצוינים בביטוי הצירוף ולסוג פעולת הצירוף (6סץד חוסנ). %, > םחפה צ- קטע כזה משמש ברוב המקרים לסינון רשומות שמוחזרות משאילתה, אך קטע =חפה/\ יכול גם לשמש לצורך הדמיית פעולת חוסנ זסחח1. פעולות זפחח1 חוסנ תתוארנה בסעיף הבא. הערה: השימוש בקטע =חםה/\ למיזוג בין טבלאות מוביל ליצירת מערך רשומות לקריאה בלבד. כדי ליצור מערך רשומות ניתן לעדכון, יש להיעזר לשם כך בקטע אזסנ. 0 סדנת לימוד 6.0 8\ שימוש בקטע א301 המבנה הבסיסי של קטע א301 הוא כדלקמן: 20/62.062! = 6/1א.20/61? 0 22/62 אזסנ [דת6 | דהם ו|אמאאנץ+ 00/61 מנגנון השאילתות המיושס ב- 88516 |1508/ (וגם ב-60655(, |66א5 ומוצריס נוספיס של ) תומך בשלושה סוגי אזסנ: הפאא1, ד | ו- זח16א. כל אחד מהס מחזיר רשומות שעונות על תנאי א01(, אך כל אחד נוהג באופן שונה במה שקשור להתחזרת רשומות שאינן עונות על התנאי. טבלת נספח 3.2 תפרט את הרשומות שתוחזרנה בעת שימוש בכל אחד משלושת סוגי א301. בדוגמה הביטוי 19061 ייצג את הטבלה השמאלית והביטוי %890!62 ייצג את הטבלה חימנית. ככלל, הטבלה השמאלית היא הטבלה הראשונה המאוזכרת בביטוי, והטבלה הימנית היא הטבלה השנייה המוזכרת בביטוי (כלומר שמה מופיע מימין למילת המפתח 8ז00. הערה: ניתן להיעזר בכל סוגי האופרטורים המשווים (<, =<, =, =>, > |- <>) בביטוי אזסנ. |< ום). = חסונו ) .₪ מו הפוס ₪ בה טסטושעווסו | 51815 1 סגוחסיה. 21 | 8 החב\|6] 1 עאות ה 6 6 חסוזוה א זז 868 35| | 6חחשה)ה₪ עו סופוא | 6חב.] סמספותסז 1 76 | ו הזב הוחו ם | ססו|ה 6ו !ןה ש] = 6!ה סק !אוה ש] | 04ב טסוה ] [א] ', סז |סזוחס-3)8 0 זט! אסוום וחפום [44 |< |וםן = ח6חו3|65 5 .₪ שדות 8 זו וי זופת קשורים ]| || 53| 50| <] 6 בו 6 טבלת לקוחות - 0 ו2306ו|= חס טבלת אנשי ופיסוה ש] = 6ו3בק!\אופ!|ם ש] | 168 סוה ש מכירות [א₪ 1 סז [סזוהס-)318 כ זס] אסוום) תפות [4]4 תרשים נספח 3.4: טבלת 6050070675 וטבלת ח58|65506 מקושרות בקשר אזסנ ₪167 שמאפשר לקשר אנשי מכירות ללקוחות שלהם נספח 3: תקציר פקודות 501 | 911 טבלת נספח 3.2: הרשומות שתוחזרנה בעת שימוש בסוגי א01נ השונים | סוג ונס | רשומות מהטבלה השמאלית רשומות מהטבלה הימנית רק רשומות שלהן רשומה תואמת רק רשומות שלהן רשומה תואמת בטבלה הימנית בטבלה השמאלית דש | | כל הרשומות רק רשומות שלהן רשומה תואמת בטבלה השמאלית 16 | רק רשומות שלהן רשומה תואמת כל הרשומות בטבלה הימנית כדי להמחיש את המושגיסם הרלוונטיים נתייחס למסד הנתוניסם שבדוגמה שלנו, שמכיל את הטבלאות 005007065 ו-500ז58!6506. נניח שהגדרת עשר רשומות של לקוחות וארבע רשומות של אנשי מכירות. שתייס מרשומות הלקוח אינן מקושרות לרשומת איש מכירות ואחת מרשומות אנשי המכירות אינה מקושרת לרשומות לקוחות כלשהס. כל אחת מפעולות א301 תבחר את אותן שדות, אך יש להגדיר האס אתה מעוניין לבצע פעולת אזסנ אשאאז, אזסנ ]| או אזסנ ₪161 (ראה תוכנית נספת 7). שתי הטבלאות שאליהן מתייחס קטע הקוד תוצגנה בתרשים נספת 3.4. בתרשים נספת 3.5 יוצגו מערכי הרשומות שיווצרו על ידי כל אחת מפעולות אז10. תוכנית נספח 3.7: דאד.א201 - דוגמאות לשלושת סוגי אזסנ. :\זסנ השאאז אה 51%6 ד6= 65 *' ,6ח35%\3 05.1 7 55 05.5 36, ב | = | 5 5 5ז0רח6560 0 0 = 65.58!6512 021 .51 5 ה6וח58!65 ₪זסנ ממאאז :אס זחם | 4 51%6 0 |5פ ' ,536 05.1 7 55 ,36 05.5 ב | = ב | 5 5 50005 = 0 = 605.58!6512 00 .51 5 ה6וח58!65 אזסנ == | :סל ₪167 ג 5186 ז0ם ןפ ' ,8536 05.1 7 ₪פ 05.56 ב | = 565 |פ 5 5 5ז0וח560 0 02 = 605.58!6512 00% .51 5 ה6וח58!65 אזסנ ד16א 12 סדנת לימוד 6.0 8\ |= וםן-. ו חס חס הסנ הפקו חוססקוום הדב חוססבקו = 6 אוס!]ם. ‏ ש] = 6וה בק |אופוום ש] וט מאוסווה ] *- אזסנ מפאאז תרשים נספח 3.5: סוגי אזסנ שונים יחזירו מערכי רשומות שונים | 5 וו 6 בי 6 חפ חפ הסוב 5 הסנ חס כ חס חס חס חס | 2 סז [0זה318-0 כ זס! אסוום זחפות [4 4 | זו הסזזסו הסוזסו בד זו דמ ה פחזסתווו רת \וססבקו|ם פחטוס/" הטחסוות ו בובחסות וו חזם ה 6 אוס!]ם. ‏ ש] = 6ה0ק!\אופום ש] וט מאוסוום ] הזו 2 סז [0זה308-0 כ זו אסוום זחפות [4 4 פחזגום | פחזום זו פחזום פחזום חוס!. וחטוה .₪ 6ב וזו עו | 6 נ 8 | | ניי 66 טוג ₪] = 6ובטק!ואוסוום ]6 מאוסווה ] תו סז 36800 כ זס) אפוום וחפום [4 ]4 *=- אזסנ דקם | *- א1סנ ₪167 שים לב ש-א201 8161 החזירה את רשומת איש המכירות שאינו מקושר ללקוחות כלשהם, ובנוסף, גם את כל הרשומות שמקושרות לכל אחד מאנשי המכירות האחרים ולא רק רשומה אחת לכל אחד. א01נ ₪161 מיועדת להחזיר את כל הרשומות שבטבלה הימנית, כולל רשומות שאין להן רשומה תואמת בטבלה השמאלית. שימוש בקטע =4שח// ניתן להשתמש גס בקטע =מפה/\ לקישור בין טבלאות. אופן פעולת קטע =חפח/\ דומה לפעולת 201% אפאא1. בתוכנית נספת 3.8 מבוצעת למעשה פעולת א201 מפאא1 שבוצעה בתוכנית נספח 3.7, אך הפעס הפעולה מבוצעת על ידי קטע םחפה/\. תוכנית נספח 3.8: דאך.=אםה/\ - =אשחה/\ כפעולה זהה ל- אזסנ אשאא. אזסל ח==אאז אגא 5 אסנדש6אזט= =זמ5 שרד 6אזואחס- תחשק 55( 61 םמםה/\ ‏ )5.] 8536, 7 55 ,065.56 ב | = | ,5 45 5ז6וח15%0ו0]6א== 5 ח58!65076 0 5 = 65.58|6512 = שה נספח 3: תקציר פקודות 501 | 913 הגדרת קריטריונים לסינון אחת היכולות החשובות ביותר של משפטי 501 היא אפשרות להגדיר תחוס רשומות שעליו תבוצע פעולת עיבוד, על ידי הגדרת תנא* סינון (חסטוסחס6 זספוו=). ניתן להשתמש בסוגי מסנן שוניס כגון: 5/31/94 0ח3 5/1/94 ח66צ06 שבסחשזוט, "5" = 5086ב | או 1 > 6סוזק. הדיון שלנו אומנס יתמקד בשימוש במסנניס במשפטי ז60ם |55, אך את העקרונות שיפורטו כאן תוכל ליישם גם בפקודות אחרות של 501, כגון 5דם שס ו-=דהסקט. תנאי הסינון במשפטי 501 מצויניס על ידי קטע =מפח/\. המבנה הכללי הוא: 605507 -65/1/סס/ םהפה/\ קיימיס ארבעה סוגי 076016865 (ביטוייס לוגייס המשמשיס לבדיקת התקיימות תנאי) שבהס ניתן להשתמש בקטע מפח/ו. ביטוייס אלה יפורטו בטבלה הבאה: ו הפעולה המבוצעת על ידי שימוש בביטוי משווה את הערך המאוחסן בשדה לערך נתון 1 1 1 =אז] | משווה בין הערך המאוחסן בשדה לבין דפוס השוואה כללי (למשל *ג ומוי משווה בין הערך המאוחסן בשדה לבין רשימה ערכים קבילים אם=/צד85 | משווה בין הערך המאוחסן בשדה לבין תחום ערכים שימוש בביטוי השוואה כמשתמע משמו ביטוי השוואה (₪76016806 חספוז8קוחס60) משמש להשוואה בין ערכי שני ביטוייס. 501 תומכת בשישה אופרטוריס משוויס הניתניס לשימוש בביטוייס לבדיקת קיוס תנאיס. אופרטוריס אלה ומשמעויותיהם יפורטו בטבלת נספח 3.3. המבנה הכללי של משפט בדיקת קיוס תנאי עס חספוזהּקו 60 הוא : 60055002 9107 6ק37500-0חס6 6055001 טבלת נספח 3.3: האופרטורים המשווים המשמשים בקטעי =חפה/\\ קט מ קטן או שווה ל 4 סדנת לימוד 6.0 8\ כל האופרטוריס המשווים דורשיס ששני הביטויים שביניהם תתבצע ההשוואה יהיו מאותו הסוג (שני הביטויים יהיו ערכיסם מספריים, או ששניהס יהיו מחרוזות). בתוכנית נספח 3.9 תובאנה מספר דוגמאות לפעולות השוואה שתתייחסנה לביטוייס מסוגים שוניס. כדי שיתאפשר לבצע השוואות בין מחרוזות ובין ערכי תאריך יש לבצע פעולות עיצוב מסוימות על הביטויים. מחרוזאות שתשמשנה כביטויים משווים יש לתחוס בגרשיים (לדוגמה 'וזווחפ' או '1ג') ואילו תאריכים יש לתחוס בתווי %, לדוגמה (815/5/98%). הגרשיים ותווי % משמשיס כדי להודיע למנגנון השאילתות מהו סוג הנתון שמועבר אליו. וזכור שאין צורך לתחוס מספרים בתווים מיוחדים. תוכנית נספח 3.9: דאך.=₪\קו 60 - אופרטורים משווים ונתונים מסוגים שונים. דו]5' = 36\ש35 1 6זס חצ 050005 וחסז- * -56|66 2 > |(613 6זס חצ [156005 |ו₪619] וחסז- * 56!666 %8/15/94% < 0806 6ז6ח/\ 58|65 וחסז- * 56|66 (60655//+26 ]0 50680ח1) ז6/ו50 .501 סחופ סוסצו טסץ )1 :סזסוז .86 6 סהטסזהּ 5סססטום 0!6חו5 366!כן סוטסצו וסץ שימוש בביטוי הבדיקה 165! ביטוי הבדיקה 5א11 משמש להשוואה בין ביטוי (כלומר ערך המאוחסן בשדה) לבין דפוס השוואה. הביטוי 1165 מאפשר לאתר שמות משפחה המתחילים באות 5, כותרות ספרים המכילות את הביטוי 501, מילים בנות חמש אותיות שהאות הראשונה היא ₪ והאות האחרונה היא 8 ועוד. ניתן להשתמש בתווי החיפוש הכלליים *' וגם ':' בדפוסי ההשוואה. הביטוייס שישמשו לאיתור פריטי המידע שתוארו לעיל הס: 8568806 | '*5' ₪א1], '* 501*' 1|165 סוד ו- '₪???וא' שאו | סזסשצ, בהתאמה. מילת ההשוואה 5א11 משמשת להשוואה בין מחרוזות בלבד. מבנה ביטוי 5א1] הוא : 87 165 | ה6%055/0 ביטויי 115 נעזריס בבדיקות התאמה לתווי חיפוש כללים, ובאיתור התאמה לרשימות המכילות תחומי תוויס. כשתגדיר דפוס השוואה תוכל לשלב בין תווי חיפוש כלליים ורשימות תווים, כדי לאפשר גמישות בהגדרת הדפוסים. רשימות התווים חייבות לקיים את שלושת התנאיסם הבאים : > הרשימה חייבת להיות תחומה בסוגריים מרובעים. > בין התו הראשון לתו האחרון חייב להפריד מקף. > תחוס התוויס חייב להיות מוצג בסדר עולה (לדוגמה 4-2 ולא -2). בנוסף, תוכל להציב סימן קריאה (!) לפני הרשימה כדי לאתר תוויס שאינס ברשימה. טבלת נספח 3.4 תפרט את ביטויי ההשוואה בהס ניתן להשתמש במשפטי 166]. תוכנית נספח 3.10 תביא מספר דוגמאות לשימוש בביטוי 11% במשפט ז6= |55. נספח 3: תקציר פקודות 501 | 915 טבלת נספח 3.4: ביטוי 1165 בשילוב עם מבחר דפוסי השוואה תוחיפוש כל | משמש לאיתורהתאמה ל | דפס | תוצאות | = ו וו לצא שילוב תווים | שילוב תווים התואם לדפוס נתון ,ששחה זב תוכנית נספח 3.10: דאד.=6א11 - ביטוי =א1! לאיתור מקרי התאמה לדפוס תווים. :6 6!ו/ש זסזסהזהח6 6|סחזוו \/[*%>** *5' 16 | 3500806 | השרו זר 0500 וזסמת * ז0ם |55 "5 הזוא\ ₪5ו260" 35 680 06 0|טסס 630056 -]חםר/\ סטספה סד :סססצז "5 חה 5ח|9לח0ס" 35 6805 '*5*' 18| סס סו פחופחההח6 0 "6" 3 06 6!טסצ\ "*" 6+ ,507/67 501 חכ :סססוז :1 6 603786007 0|6ח[6*%** |?' 165 | 50366 == 650065 ומת * ז0ם |55 0חוח306!/] 5% | זסז6הזה ח")*%%* [8-1]' =א1 | (35008006,1,1 1)%כ11 אש 650065 זסמת * 60 |55 ביטוי א1 ביטוי א1 מאפשר לבדוק האם ערך ביטוי נתון ברשימת ערכים מסוימת. על ידי שימוש בביטוי א1 תוכל למשל לבדוק את קוד המדינה של צרכן מסוים, כדי לוודא האס הוא גר באזור מכירות מסוים. ה המקרה המוצג בדוגמה: ('הש' ,' ' ,' |א') א] 5906 השרו 65005 סמ * ד0ם |55 ביטוי א==/וד55 ביטוי א5פ/\ד85 מאפשר לבצע חיפוש אחר ביטוי שערכו נמצא בתחוס ערכים מסוים. הביטוי יכול לשמש לבדיקת מחרוזות, ערכים מספריים וערכי תאריך. החיפוש הוא חיפוש כולל (ח6ז568 6שו5ט!6ח1), כלומר אם הערך שווה לאחת מנקודות קצה התחום, 6 סדנת לימוד 6.0 8\ הרשומה נכללת בחיפוש. ניתן גס להשתמש באופרטור דסא כדי להחציר ערכיס מחוצ לתחוס נתון. המבנה הכללי של ביטוי אפם/\ד85 הוא : 2 סאג 61ש/שש א=םע דפ [ דסא ] הסו655ק6% בתוכנית נספח 3.11 תוכל למצוא מספר דוגמאות לשימוש בביטוי א==/\ד5. תוכנית נספח 3.11: דאדך.א=ם/\ד85 - שימוש בביטוי א=פש\ד5₪. הספוק רחס 0ח[5>%*** ש\' סאה 'א' אםם/\ 55 350036 | םה זו 0500 ואתסמת * ז0ם |55 הספוזה קרס 6ווסרתו \|*%>%* 5 אה 1 אםם// 85 |ו₪68 שח [166005 |ו₪619] וחסז- * 56!665 חספוזהקוחס) 6זהכ₪**** 9% סאג %8/1/94% אםם/ ₪57 86 6זסח/\ 58|65 וחסז- * 56|66 ]0630 ד00)] 6+ ]0 66 |*%%* "ש\' סאה 'א' א=םש\ז85 דסא 350036 | םה זו 0500 אתסמת * ז0ם |55 שילוב בין מספר תנאים =חפה/\ יכול גס להכיל מספר תנאים, כך שתוכל להגדיר תנאי חיפוש שיתבססו על מספר שדות. התנאים שבביטוי המורכב יתבססו על ביטויי הבדיקה שפורטו. קישור בין התנאיס יתבצע באמצעות אופרטורים לוגייס מסוג סא\ או 08. ביטוייס מורכביס כאלה יאפשרו למשל לאתר את כל האנשים ששמס חוווח5 וחייסם בדרוס-מזרח ארצות הברית, או אנשיס ששמס הפרטי או שס משפחתם הוא 5004. בתוכנית נספח 3.12 תמצא דוגמאות לתנאי חיפוש אלה. בתרשים נספת 3.6 יוצג מערך רשומות שיוחזר כתוצאה מחיפוש אנשיס ששמם הפרטי או שס משפחתם 500. תוכנית נספח 3.12: דאדך.אססאג - שימוש באופרטורים סאג או 08. 08% 50 66 חו 5165 6+ | שחו 9 7 55 5 61500 ואמסח- סאג ה דפ' = 6וח35608 | =חםה/\ ('ה6',' ן=',' |ה') א] 50906 שוח 85% זס 56זו ח! 5608 +0 06660665 |!ה 6חו= 55 7 5005 אסחת ₪ 50 = 35086 | =חהפה/ש\ "500 = 6ח5%\3זו= נספח 3: תקציר פקודות 501 | 917 | ום] =. חוס!. וטוה זטזוו פחזוום | פחזם | פחזום | | פחזם | בוטב פחזגום | בוו | פחזגום | עזזם | פחזם | ב 6ו6 םה ש] = 6בק!\אופו|ם ‏ ש] 46 מווסוום ש] |וא] + סז [טזוהס-/313 0 זס! אסוו) תפות [4 4 תרשים נספח 3.6: ניתן לבנות קטעי 55=/\ משופרים המורכבים ממספר תנאים הגדרת תנאי המיון תוכל גם להשתמש במשפט ז0ם 551 להגדרת הסדר שבו תוצגנה הרשומות בתוצאת השאילתה. משפט ז560 551 שולט על הסדר שבו הרשומות תעובדנה ותוצגנה. מיון הרשומות מתבצע על ידי שימוש בקטע ץ8 הפסחס. ניתן להגדיר את סדר המיון על בסיס שדה יחיד או שדות מרוביס. ברירת מחדל של סדר המיון הוא סדר עולה (כלומר 4-2, ל-0), אך ניתן לשנותה על ידי הצבת מילת המפתח 56םכ (קיצור של 6א1זסא5505כ - יורד) לאחר שס השדה, בכל שדה שרצוי בו סדר מיון שונה. 556 תשפיע רק על השדה שאליו היא צמודה ולא על שאר השדות שבקטע צם מפסאס. בתרשים נספת 3.7 מוצגות תוצאות לשימוש במשפטי 0 |55 שבתוכנית נספח 3.13. הערה: הגדרת אינדקס לשדה המשמש כמפתח מיון עשויה להגביר באופן ניכר את מהירות המיון. תוכנית נספח 3.13: דאד. 5081 - הגדרת סדר המיון של מערך הרשומות שיוחזר :ספ ₪60 6|סחוס * 356 | ץצ 00 5זסו 0500 וזסמת * ז0ם |55 +50 ₪160 6וסטוטטן ' 36 זו ,3536 | צם 0054 סו 650 וזסח- * ז0ם |55 06 8חו0ח566סכ * 6חה זו ,56 3536 | צם 05 6505 סח * ז0ם 55 8 סדנת לימוד 6.0 8\ |< |ם]=. ח6חו3|65 5 .₪ ח6חו3|65 5 .₪ 0%ססחב ות חספזט שאמ 6 8 3050 50 230 הפב | = ב 8 וסוס סוה ש] = 6בטק (אוסוה ש] | אצ סוה שן וסוס סוה ש] = 6בטק (אוסוה ש] | אצ סוה שן | , 8ו סז וסזוהס-3)8 2 זס! אסוום זופת [4 4 | 1 סז וסזוהס-3)8 2 זס! אפוום וופות [4 4 ח6חו3|65 5 .₪ ח6חו3|65 5 .₪ חוווחפ ארי חספזם 6ססזים ות | הסוס | = 6 6 הזספקחחסח ד 8 ופיסוה ש] = 6)בבק!ואופוום ] סוס וטוה ₪] = 6והסכ!\אוסו|ה ‏ ₪] | או6|ט אוסוום ] פפו!זסקסז'ק סזוהס-368 0 זפ! אסוום) וחפום |4 ]14| מיון בסדר יורד על פי השדה מיון על פי השדות 358806 | 3536 | |-6רח 8 )סו תרשים נספח 3.7: קטע צ8 0058 מגדיר את סדר המיון של מערך הרשומות פונקציות סיכום ניתן להיעאגר במשפטי ז0ם ]55 לביצוע חישובים על הנתוניס שבטבלאות, על ידי שימוש בפונקציות צבירה (5חסטסחט- 6ְזְהּחָסְזפָטָ). את החישוביס יש לבצע על ידי הגדרתם כשדה במשפט ז560 551, תוך שימוש במבנה התחבירי הבא: (ח0ו055ק6%) הסח הביטוי יכול להתבסס על שדה אחד (טחוְספּזכ) 50 ) או על מספר שדות (* שטחהט0 6 הפונקציה +חטס6 יכולה גס להיעזר בתו החיפוש הכללי י*י, מפני שהיא מחזירה רק את מספר הרשומות שבשדה הרלוונטי מאוחסן ערך כלשהו. פונקציות הצבירה של 1 תפורטנה בטבלת נספת 3.5. הערה: מעיון בטבלה שבהמשך נוצר הרושם שהפונקציות ש5%06 ו-קש5+06 מבצעות פעולה זהה וכך גם הפונקציות זגּ\ ו-קזג\. ההבדל בין הפונקציות הוא ש-צ506 |-ז\ מתייחסות לערכי מדגם בעוד 5506 ו-קז3ּ/\ מתייחסות לערכי אוכלוסייה. נספח 3: תקציר פקודות 501 | 919 טבלת נספח 3.5: פונקציות צבירה מספקות תקציר מידע על הנתונים שבמסד הנתונים ו הערך המאוחסן בשדה ברשומה הראשונה במערך הרשומות הערך המאוחסן בשדה ברשומה האחרונה במערך הרשומות 1 סטיית התקן של הערכים בשדה שברשומות המקיימות את =8=ה/\ ו |[ 1 1 1 / / 0 ] + ה : 1 + ה 1 ] ] ן ן ] 1 ו 1 הערך הגדול ביותר בשדה מקרב הרשומות המקיימות את קטע =מפח/ו 1 1 השונות בערכים בשדה המתאים שברשומות המקיימות את קטע =ח=הו/\ השונות בערכים בשדה המתאים שברשומות המקיימות את קטע =ף=הו/\ בדומה לפונקציות אחרות של שפת .501 גס פונקציות הצבירה פועלות רק על רשומות שעומדות בתנאי הסינון שמצויניס בקטע =₪שה/\. פונקציות הצבירה אינן מושפעות מסדר מיון הרשומות. הפונקציות מחזירות ערך יחיד המייצג את מערך הרשומות כולו, למעט מקריס בהם נעשה שימוש בקטע צ8 6₪007, שבהס מוחזר ערך אחד עבור כל קבוצה שמוגדרת על בסיס הביטוי שבקטע. תוכנית נספח 3.14 תציג משפט ז0ם |55 המשמש לחישוב ערך מינימלי, ערך מקסימלי, ערך ממוצע, ערך כולל של מכירות מוצרים והכנסות ממכירות כל אחד מסוגי המוצריס. תרשים נספח 3.8 מציג את תוצאת השאילתה. |< וםן = 5 וח 1ח5חו51310 501 ו 8 [ובזפח. 37 * שווהבגו. 51]<ב\ ,חול 35 [[ובזסח. ד * שווהבגו. ופ)מוא זהם ו5 5 1 3 * הבוב 51]חזוו ,פושיב 55 [648. 7 * עבטו 51ופשים אבו | 513100001 1 = 1 35 [5פ1] [וב6] , 51 35 53165 הקוח ופצוס ד 35 [עוזהבגום. )וטופ ,|פוסד [שפחון | | | | |21290 (7939224063. 46971 | 6.60923032537068 |18.5 5 בו 86 תרשים נספח 3.8: תקציר הנתונים הנובע משימוש בפונקציות צבירה 0 סדנת לימוד 6.0 8\ תוכנית נספח 3.14: דאך. צחג/ו 50 - שימוש בפונקציות צבירה להצגת תקציר נתונים. ,5ופחו] ₪5 ([ו63ח. ₪1 * /ססההטס. ו5)צזוז 7 |55 ,5|אה!] ₪5 (|וב6%ח. ד * עס ההטס. 51)אחו ,5 5 (ווהזסח. ד * עשסחבּטס. ו5)ס/\ה ,5 ד 45 ([ו603ה. 1 * /סטההטס. 5)51 0% ד 5 (שסחפטס. 5)51 ,51 5 58|65 ואמסחת ₪1 5 [55ח166 |ו63 ] [0006 \ח1660]. ₪1 = [6006 וחסס1]. 51 =חהםה/\ קבוצת רשומות יצירת קבוצות רשומות (070005 ₪6000) מאפשרת ליצור מערכי רשומות שיכילו רשומה אחת בלבד עבור כל מופע של ערך נתון בשדה. לדוגמה, אס תקב\ את הנתוניס שבטבלה 0050070875 על פי מדינה, תהיה רשומה אחת שתייצג כל מדינה בטבלה. פעולה זו מועילה במיוחד כשמשלביס אותה עס פונקציות צבירה. שימוש משולב בקבוצות ובפונקציות צבירה יאפשר להציג נתוניס כגון סכומי מכירות על פי מדינה, סך המכירות של כל איש מכירות, סך מכירות על פי פריט או סיכומיס וחתכים שיתבססו על כל שדה רצוי. ברוב המקריס תהיה מעוניין להגדיר קבוצות שתתבססנה על שדה יחיד. אך ניתן גס להתייחס לשדות מרוביס על ידי קטע ץם 6₪005. השימוש בקטע זה יוביל ליצירת רשומה נפרדת לכל שילוב ייחודי של ערכי שדות. תוכל להשתמש בשיטה זו לחישוב סכוס המכירות של פריטים מסוימים על פי אנשי מכירות. הפרד בין שדות שבקטע ץם 6005 באמצעות פסיקים. הקוד בתוכנית נספח 3.15 יציג את תקציר הנתוניס שהוצג בתוכנית נספח 3.14 אך הפעס תוך קיבוצ הרשומות על פי מוּהי אנשי המכירות. תוצאות השאילתה תוצגנה בתרשים נספת 3.9. תוכנית נספח 3.15: 600.04 חישוב תקציר נתונים של קבוצות רשומות ,5ופחו] ₪5 ([ו69ח. ₪1 * /ססההטס. ו5)צזו 7 |55 ,אה 5 ([וב6%ח. ד * עס ההטס. 51)אחו ,5 5 (ווהזסח. ד * עשסחהטס. ו5)ס/\ה ,5 ד 45 ([ו₪609. 5 * /ססההטס. 5)51 0% ד 5 (שסחבּטס. 5)51 ,51 45 58|65 ואסח ₪1 ₪5 [166005 |ו₪6%8] [0006 וח166]. ז₪ = [6006 וחסס1]. 5 =חהםה/ש\ 0 ל קסמס נספח 3: תקציר פקודות 501 | 921 .= |) >| ₪ [155ס ד בי 3 2 89939735355. 3005 3.8 28 73 ו 24 8 2-3 4 3044.133990451 [ ו 2761 78 23 7-08 0 > * עוזחבגו. 51]אבו , הו 35 [ובזסה. דה * עזההגו. 51)חו , ס/65ו53. 51 זס 51 * עווזההגו). 51]חזוו5 ,3/0985 35 [ובזסח. זר * עווהבגו. 51]פב ,34515 35 [ובוסח. זת |ו468] , 51 5 3165 5 וכו ופצו ד 35 [עשווהבגו. 551 ,פוט ד 85 [והופח. זת מו 185" 989 185" 6 185": 8 185" 97 185|" 9 185|5 4 185| 8 185| 3 185|-" 3 185" 72 185 994 185| 4 185": 4 1 185 2 5 וחה )חסחו518)6 .501 ו | |75 0000005208 ו |75 |75 |75. 75 75 75 תרשים נספח 3.9: צ8 0000 יאפשר להציג תקציר נתונים עבור כל קבוצה שתגדיר בקטע 8 600005 ניתן לשלב גס קטע אופציונלי מסוג 4/1%6ח. אופן פעולתו דומה לזה של קטע =מפח\, אך הוא מתייחס רק לערכי השדות של הרשומות שאוחזרו על ידי השאילתה. קטע 6א4/1 מגדיר אילו מהרשומות הנבחרות תוצגנה, בעוד שקטע שמשת /\ משמש כדי להגדיר אילו רשומות תאוחזרנה מטבלאות הבסיס. בקטע ₪4/1%86 תוכל להשתמש למשל כדי להציג רק את נתוני אנשי מכירות שסך המכירות החודשי שלהס עולה על 53000. תוכנית נספת 3.16 תציג דוגמה לשימוש בקטע 6א1/גח, ותרשים נספח 3.10 יציג את תוצאת השאילתה שבתוכנית. תוכנית נספח 3.16: דאד.186/ - 6אז/ משמש לסינון הרשומות שתוצגנה ,5ופחו] ₪5 ([ו69ח. ₪1 * /ססההטס. ו5)צזו 7 |55 2 סדנת לימוד 6.0 8\ ,55אה!] ₪5 ([וב6%ח. ד * עלס ההטס. 51)אחו ,5 5ב (וה66ח. ד₪ * סחההטס. ו5)ס/\ה ,05 ד 45 (]668ח. ד * /סםההטס. 51)וזופ 0% ד 5 (עשסחהטס. 51)ו 5 ,51 5 58|65 אסחת ₪1 5 [5ח16 |והז6] [0006 וח166]. ₪1 = [6006 וחסס1]. 5 =חהפה/ש\ 58650 51 ץם קק\וסחס 0 < (6091ח. ₪7 * ע6טחט0). 51)וחט5 זר |< ום)-. - 5 3 | 35358 3005.899937. ל 28 |3540.89999443293 | 3324.94999456406 8 34 3044.199990451 בו = [ * עשווהבגו). 3<]51) , 6פחווא 35 [[וב61. 3 * עווהבגום. 51]מו , 3650 5. 51 זם וספ * עו)הבגוף. 51]חזוו5 ,39/0585 35 [ובזסה. ד * עזהבגו. |5ופיה ,4585ב 35 [ובזפת. זת |= [ו468] , 51 6 365 5 וכו ופוס ד 35 [עווהבגום. 51]חזו5 ,וס ז 35 [[ובזפת. זת 6 ב 898 6.65022171 ל בו :וו 4 722 3 6.6034 4 4 6.8521 2 6.71896550881 5 וחב 1ח0חו51310 .501 ו 5 3 5 75 5 זז | תרשים נספח 3.10: קטע 1%6/ מגביל את תצוגת קבוצת הרשומות יצירת טבלה בכל הדוגמאות לשימוש במשפט ז0ם ]55 שהבאנו עד כה, הרשומות שהוחזרו על ידי השאילתות אוחסנו במערכי רשומות מסוג 6פַחץ₪2 או 80500%ח5. משוס שמערכי רשומות מסוגיס אלה הם זמניים, תוכנם קייס רק כל עוד הס פתוחים. לאחר שימוש בשיטה 61056 או סיוס פעולת היישוס, מערך הרשומות נעלס (אך השינוייס שבוצעו בטבלאות הבסיס נשמריס). במקריס מסוימיס תרצה לשמור את הנתונים באמצעי קבוע לצורך שימוש עתידי. תוכל לעשות זאת על ידי הכללת קטע סדא1 במשפט ז560 |55. בקטע סזא1 תגדיר שס טבלה שבה יישמר פלט השאילתה (ותוכל גם להגדיר שס מסד נתוניס שבו תישמר הטבלה). למשל, תוכל ליצור טבלת רשימת דיוור מטבלת לקוחות. תרצה ליצור את רשימת הדיוור באופן שיאפשר להשתמש בה אחר כך באמצעות מעבד תמלילים לביצוע פעולות מיווג דואר והדפסת תוויות דיוור. הקוד שבתוכנית נספח 3.4 בתחילת הפרק יבר רשימה כזו, שאוחסנה ב-ספּחץכ. הקוד שבתוכנית נספח 3.17 כולל את אותו משפט 607 ]55 בסיסי ששימש בתוכנית נספח 3.4, אך הפעס נכלל במשפט זה גס קטע סדאז שיאחסן בטבלה את הנתוניס שיאותחזרו. ם אזהרה: כדאי ששם הטבלה בקטע 0דא1 יהיה שם טבלה חדשה, מפני שאם תשלב בקטע שם טבלה קיימת, היא תידרס על ידי פלט השאילתה. נספח 3: תקציר פקודות 501 | 923 תוכנית נספח 3.17: דאד.סדא1 שימוש בקטע סזא1ז לשמירת נתונים בטבלה חדשה :6 סח 8 6768005 הסוחעו סד 6 551 +0 6!קרתהאם * ,שרח || 5 3503006 05.1 6 ' ,' 8 6וחהא 65.5 7 55 0-5 ,20.0 וי 2 02 ובוא סדאז ,5 45 5ז6וחה15%0ו0]0א== 27 45 2106006 קז = 05.210 חפה /\ שימוש בפרמטרים כל הדוגמאות שהוצגו עד כה כללו התייחסות לערכיס ספציפיים. לדוגמה, הגדרנו '|ג' בחיפוש מדינות, או 1.25 בחיפוש מחירים. אך מה אס הערכים אינס ידועיס מראש!ז כאן כדאי להשתמש בפרמטרים. היחס הקיים בין פרמטריס למשפטי 501 הוא כמו וה הקיים בין משתניס לפקודות תוכנית. פרמטר הוא מציין מיקוס (0!06ח366|ק) שהתוכנית מציבה בו ערך לפני ביצוע השאילתה. כדי שתוכל להשתמש בפרמטר במשפט .501, יש להגדיר תחילה את הפרמטר בקטע 5 דםויןהץ במשפט. קטע 5חםדפויה הק יבוא לפני משפט ז5₪150 או כל פקודת פעולה אחרת. בהצהרת הפרמטר יש להצהיר על שמו ועל סוג הנתון שבו. קטע 5 דוק יופרד מהמשפט בנקודה פסיק (;). לאחר שתצהיר עליו, תוכל להתייחס אליו בקטע הביצועי, ולהשתמש בו כתחליף לערך. הקוד הבא יציג דוגמה: 05 6057 סאה * ז60ם 551 8חו50 6הח0083הז5 5חם דךםו)|החהק )5030 = 5006 = ח=רו/\ כשתבצע משפט זה, התוכנית תתייחס לכל אחד מהפרמטרים כאל מאפיין אובייקט טס לכן יש להציב ערך בכל משתנה לפני שתקרא לשיטה 50600066 לצורך ביצוע השאילתה. קטע הקוד הבא ייראה כיצד להגדיר את ערך המאפיין על ידי שימוש במפשט 501 שהוצג לעיל ובמערך רשומות פתות: 6% 5 506 ,266 וסט 5 זכ ,0650856 5 סססוס וחוס ("ס00רח. חססוז ד \:" 5 06 (508665)0אזס/. 6חופחם טכ = ססטוס חחוס (")5000056!60" )65 00.06 = ץז 56 "|" = 5%800\96!/ח) 56% ₪566 = 0/0060 66070566 ( בקטע ראית ששימוש בפרמטריס מקל על אחסון שאילתות במסד הנתונים, ומאפשר גמישות משוס שהוא מאפשר להגדיר את ערכי ההשוואה בזמן ריצה. 4 סדנת לימוד 6.0 8\ משפטי פעולה בקטע הקודם ראית כיצד ניתן להשתמש במשפט 5607 55 לאחזור רשומות ואחסון נתוניס ב-956%0חץ2 או בטבלה, כדי לאפשר לבצע עליהס עיבודים נוספים. אך המשפט 57 היא רק אחד מבין ארבעה משפטים לביצוע פעולות בשפת ‏ ]501, שאותס הזכרנו בתחילת הנספח. שלושת המשפטיס האחרים הם: > |סם; פד וספ - שאילתת פעולה שגורעת רשומות מטבלה. > סדאז ז1\558₪ - שאילתת פעולה שמוסיפה קבוצת רשומות לטבלה. > =דהסקט - שאילתת פעולה שמגדירה ערכי שדות בטבלה. במהלך הסעיפים הבאים נציג אופני שימוש במשפטים אלה לצורך ביצוע פעולות עיבוד נוספות על הנתוניס. משפט =דם וש המשפט םדם |פסם משמש בשאילתת פעולה (ץזפטס ח0ס60). המשפט מיועד לגרוע רשומות מסוימות מטבלה. שאילתת פעולה אינה מחזירה קבוצת רשומות ב->ףפהחץכ כפי שעושה שאילתת ז0ם |55. במקוס ואת היא מתפקדת למעשה כשיגרה המבצעת סדרת פעולות מסוימת וחוזרת לשורה הבאה בתהליך שקרא להן. תחביר משפט שד וספ הוא: [6|8056 = חשרו/\] 876ח00/6) זסת שדם שס קטע =מפח/\ הוא פרמטר אופציונלי. משפט פזם ₪פ שלא יכיל קטע =חפוו\ יגרע את כל הרשומות בטבלה שאליה תתייחס השאילתה. ניתן להשתמש בקטע =מפה/\ כדי להגביל את פעולת הגריעה לרשומות העונות על קריטריוניס מסוימיס. תוכל לשלב בקטע =חפח/\ את כל סוגי האופרטורים המשוויס שפורטו בסעיף הדן בביטויי השוואה. להלן דוגמה למשפט פד !םס שיגרע מהטבלה את כל הלקוחות המתגורריס בפלורידה: ' |-ז'=50006 = =1]/\ 605605 את =דם ושס ב אזהרה: משפט שדם שמ גורם למחיקת הרשומות באופן קבוע ובלתי ניתן לשחזור. המצב היחיד בו אפשר לבצע שחזור הוא בעת שימוש בעיבוד טרנזקציות (ח0ו5860ח9זדך טו6655סזק). אם תבצע עיבוד טרנזקציות, תוכל להשתמש בפקודת 8466 ₪011 כדי לשחזר את כל הרשומות שנגרעו מאז פקודת ₪485 דא8561 האחרונה. נספח 3: תקציר פקודות 501 | 925 משפט זאהםפאז בדומה ל-5ד₪|םם גס משפט זַ55₪א1 הוא סוג של שאילתת פעולה. הואד משמש בשילוב עס משפט ז60 |55 להוספת קבוצת רשומות לטבלה. תחביר המשפט הוא : +50806-06-56!66%-65%ז ‏ [6= 551 6וההח6וסם+ סדאז דהשפאז קטע ז50 5₪ שבמשפט, יהיה בנוי לפי הכללים שפורטו בסעיף הדן במשפטי ז0ם |55 שבתחילת הפרק. קטע ז50 55 משמש להגדרת הרשומות שתוספנה לטבלה. משפט ךא יגדיר את פעולת ההוספה, תוך ציון הטבלאות שאליהן תוספנה הרשומות. אחד השימושיס העיקריים של משפטי ז50 551 הוא לעדכון טבלאות שנוצרו על ידי משפטי סדא1 660 551. נניח שמונית לנהל את רשימת החברים במועדון הברידגי שלך. בתחילה יצרת רשימה ראשונית, אך מדי חודש מתוספיס חבריס חדשים. תוכל לעדכן את הטבלה באחד משני אופנים: על ידי ביצוע חוזר של שאילתת סדאז ז0ם |55 ששימשה ליצירת הטבלה, או על ידי שימוש בשאילתת 0דא1 ד558א1 להוספת חבריס חדשיס לרשימה הקיימת. תוכנית נספח 3.18 תציג דוגמה ליצירת רשימה התחלתית, ושימוש בשאילתה 0סזא1 ז55₪א1 לעדכון הרשימה. תוכנית נספח 3.18: דאד. ד55₪א1 - סדא1 ז558א1 להוספת קבוצה רשומות לטבלה :ל 15| הווה אוסח 8 6708005 הסוחצו כ דא 6 [55 +0 6וקותהאם * ,6רחה\]!||ט= 5 85036 05.1 .8 ' ,' 8 6החה 65.9 7 55 0-5 ,27.0 ,2.6 2 ובוא סדאז ,5 45 5ז6רח15%0ו]0א== 27 5 2106006 קז קל = ק[05.2 - םאשה/\ הזחסרח 6360 56ו! סחו|והרח 6 סקט *' 5זוופוא סדאז דאשפוז ,|| 5 3503006 5.1 6 ' ,' 8 6וחה8\ 65.5 7 55 0-5 ,20.00 וי 2 02 ,5 45 0560675 = 27 45 2106006 קן7 קל = ק]65.2 חפ /\ הזחס35 | < 8%6כ 65.16 סצזה 6 סדנת לימוד 6.0 8\ משפט = דהסקט המשפט שז4כק0 היא סוג נוסף של שאילתת פעולה. המשפט משנה את הערכים המאוחסניס בשדות מסוימיס בטבלה. תחביר המשפט םדהספט הוא כדלקמן: [6!8)156 = א=ר/\] 6/2/06 = 6160 551 20/608006) = דה סק ניתן לעדכן מספר שדות בבת-אחת על-ידי שילוב מספר קטעל 9/06//ש6ה=₪6/0 במשפט, כשהס מופרדיס זה מזה בפסיק. קטע =מפח/\ הוא אופציונלי. משפט םזגסקט שלא יכלול קטע =₪פ/\ יעדכן את כל הרשומות בטבלה. הקוד שבתוכנית נספח 3.19 כולל שתי דוגמאות לשימוש במשפט םדהסקט. הפקודה הראשונה תשנה את מזהה (1) איש מכירות ברשומות לקוחותיו, מצב שעשוי לקרות כשאיש מכירות מסוים עוזב את החברה ולקוחותיו מועברים לטיפול איש מכירות אחר. הדוגמה השנייה תעדכן מחיר קמעונאי של פריטים, לאחר עליית מחירים. תוכנית נספח 3.19: דאד.ם דהסקט - =דהסקט לשינוי ערך במספר רשומות 6505 +0 קטסזף 3 זס+ 5816512 6 60896 * '5\א(8נ' = 5816510 =םה/\ 'א=03₪5ש' = כ58|651 55 650615 = דהסקנ\ סכ ששו 0 605 [[63 || 01 6סוזכ 606 6856ז6חד * 5 * 6191 = |ו₪6%9 56% [05ח166 |ו₪6%3] = דהסקנ משפטי שפת הגדרת נתונים משפטי 800806 |-חסטוחו06-ז (1סכ - שפת הגדרת נתוניס) מאפשריסם ליצור, לשנות, ולגרוע טבלאות ואינדקסים ממסד נתוניס במשפט אחד. במצבים רביס משפטים כאלה עשוייס לשמש במקוס שיטות אובייקטי 09[60₪ 406055 868 שתוארו בפרק 26. אך השימוש במשפטי וספ נתון להגבלות מסוימות. ההגבלה העיקרית היא שמשפטים כאלה יכולים לשמש אך ורק לעבודה עס מסדי נתונים מסוג 260 (בעוד ₪18 /606585 68‏ יכוליס לשמש לעבודה עס כל סוג מסד נתוניס שמנגנון 3% תומך בהתקשרות אליו). הגבלה נוספת היא העובדה שהס תומכיס רק בחלק קטן של מאפייני אובייקטים מסוג 18016, 86!0, 06%ח1. כדי להתייחס למאפיינים שאינס נתמכים, יש ליישס את השיטות שתוארו בפרק 26. נספח 3: תקציר פקודות 501 | 927 הגדרת טבלאות באמצעות משפטי !ופפ יש שלושה משפטי 1פס המשמשים להגדרת טבלאות במסד נתונים: %, > ם ופד םד 65 - מגדיר טבלה חדשה במסד נתוניס. + > = ופד םד - משנה את הגדרת הטבלה. > = ןפחד קסחמפ - גורע טבלה ממסד נתונים. יצירת טבלה באמצעות משפטי וספ ליצירת טבלה על ידי משפט |ס, יש ליצור משפט 501 שיכיל את שס הטבלה, שמות השדות שאתה מעוניין לשלב בטבלה, סוגי הנתוניס שיאוחסנו בהס וגודלם. קטע הקוד הבא ידגיס כיצד ליצור טבלת הזמנות עבור מסד הנתוניס לדוגמה שלנו: ,(6) דא ד 58!6510 ,1016 0המ605 ,06 1 סה )פס = םד = ז-65 (5 5101 06055 ד ,= זכ 806סס וס שיס לב שאין צורך לתחוס את שס הטבלה ושמות השדות במרכאות, אך אס תרצה להגדיר שס טבלה או שס שדה שיכיל רווח, יש לתחוס אותו בסוגרייס מרובעים (לדוגמה [88\ ז85 |]). במשפט יצירת הטבלה ניתן להגדיר רק שמות שדות, סוגי נתוניס שיאוחסנו בשדות וגודלי שדות. לא ניתן לשלב פרמטריס אופציונליים כגון ערכי ברירת מחדל, כללי אימות (65!₪₪ ח00ַ08ו|8\) או הודעות שגיאה שתוצגנה במקרי עבירה על חוקי האימות. אך למרות המגבלות, משפט = ופד 65415 היא כלי רב עוצמה שתוכל להשתמש בו ליצירת טבלאות רבות במסדי נתוניס. הכנסת שינויים בטבלה על ידי שימוש בפקודה 4815ד אפד]1א תוכל להוסיף שדה או לגרוע שדה מטבלה קיימת. בעת הוספת שדה יש להגדיר שם, סוג נתון וגודל (בעת הגדרת שדות הדורשיס הגדרה כזו). הוסף את השדה על ידי הכללת קטע אואט601 ספה במשפט חספד]ןה = |8הד. גריעת שדות נעשית על ידי ציוו שמות השדות בקטע אוא 601 קסחפ. לא תוכל לגרוע שדות שבאינדקס או בקשר בין טבלאות (ח₪6|8000). הקוד שבתוכנית נספח 3.20 כולל דוגמאות להוספה וגריעת שדה מהטבלה שהגדרת בסעיף הקודס. תוכנית נספח 3.20: דאד.8\ דתם ד - = ופה דחם ד|א להוספה או גריעת שדה 6 "סכ" 6 60 ₪610 5ספָזהּח6 הַהוסקוח5 3 סה = 51861 פַהומקוח5 א]ןז 601 ססג פפחוווב₪א = ופה ד חדוה 0 665 סהומקוח5 ₪6 סזסוסס * חוסקוח5 אא 601 קסמפ 8זס0זס = ופד חדוה 8 סדנת לימוד 6.0 8\ גריעת שדה תוכל לגרוע טבלה ממסד נתוניס על ידי שימוש במשפט 5 81גד קסמס. שורת הקוד שלהלן תציג כיצד לגרוע את הטבלה 070615 ממסד הנתונים. כדאי לנהוג בזהירות בעת גריעת טבלאות מפני שביצוע המשפט יוביל למחיקה בלתי הפיכה של הטבלה. 5 = ומד קסמס הגדרת אינדקסים באמצעות משפטי ופפ יש שני משפטי וספ המיועדיס במיוחד לעבודה עס אינדקסים: %, > אםסאז1 5דג685 - מגדיר אינדקס חדש עבור טבלה. %, > אםסא1 קסמס - גורע אינדקס מטבלה. יצירת אינדקס המשפט אשפסא1 6854175 מאפשר ליצור אינדקס המבוסס על שדה יחיד או שדות מרובים. הפרמטריס הדרושים ליצירת האינדקס הס: שס האינדקס, שס הטבלה שעבורה יוגדר האינדקס ושס שדה אחד לפחות שעליו יתבסס האינדקס. תוכל גס להגדיר אס האינדקס ימוין בסדר עולה או יורד והאס הוא יהווה אינדקס ראשי. תוכנית נספח 3.21 תציג יצירת אינדקס ראשי שיתבסס על מספר הלקוח, ויצירת אינדקס שיתבסס על שני שדות שבהגדרתו תכלול גם הגדרת סדרי מיון עבור השדות. האינדקסיס שיוגדרו בדוגמה יתייחסו לטבלת ז650008 של מסד הנתונים לדוגמה. תוכנית נספח 3.21: דאד.סאזם 6054 - אשסאז1 5דג=ח6 ליצירת סוגי אינדקס זט 6050067 חס א6חו ץזהווזק 3 076866 ' צהןאזחק רוד (ס0א5)0005ז ו 60500 א סאלפט6 אססחז = 65 חב 3500836 | חס ז06זס חַהו0ַח506ה תסו אס סח ₪680 סט 8 070806 ' 6 חלו חס ז06זס 0הו0656600 ' ( 56 15306 ,456 357306 |)5 זר 0ס65 אכ 62חבּ\] אססחז = 6 מחיקת אינדקס מחיקת אינדקס פשוטה כמעט כמו יצירתו. לגריעת אינדקס מטבלה תוכל להשתמש במשפט אשסא1 קסח, כמתואר בדוגמה הבאה. המשפטים שבדוגמה יגרעו מהטבלה את שני האינדקסים שנוצרו על ידי קטע הקוד שבתוכנית נספח 3.21. שים לב שיש לשלב במשפט גס את שס הטבלה שעבורה הוגדר האינדקס הרצול. 5 60500 א סו50ט6 אשסאז קסחס 65005 0% 2סחחא אשסאז קסחס נספח 3: תקציר פקודות 501 | 929 שימוש ב- 5091 בתחילת הפרק ציינו שלא ניתן לשלב משפט .501 כפקודה עצמאית בתוכנית |1808\ 6. משפט 501 חייב להופיע כחלק מפונקציה אחרת. חלק זה של הפרק יוקדש לתיאור השיטות השונות המיושמות לצורך שימוש במשפטי 501. ביצוע שאילתת פעולה מנגנון 26 מציע את השיטה 5066066 כחלק מאובייקט 6פט8ז8כ. השיטה 66006א5 מורה למנגנון להפעיל שאילתת ‏ 501 על מסד נתוניס מסוים. ניתן גס להשתמש בשאילתת פעולה ליצירת אובייקט שפץזפטס. הגדרת אובייקט 066ץז6ט0 מאפשרת לבצע את השאילתה מבלי שתהיה תלויה באובייקטיס אחרים. קטע הקוד שבתוכנית נספח 3.22 ידגיס שימוש בשתי שיטות אלו להפעלת אותו משפט 501. תוכנית נספח 3.22: זאד.םד₪6560 - ביצוע משפטי 501 על ידי שימוש בשיטות 6 |- 60006אץסט0. ()66ו01 1 חהוחוח60 סט5 סזה8עוזק 6006 15 ₪56 0+ 6767600660 3.51 00 6עפח זפטוח טסצי 8ח5 5( 5501 וחוס 6 858 00 וחוסם טס 5 וסוס חחוס ("שכו. ז5ם ז\6\ 00\א800\: ")356 הסקס. (06500ה50אזסצ\ = 0 56 ")0 = כ58!651 551 050065 = דה סק" = 5501 "₪6 ום?' = 58|6510 םה /\" 8 5501 = 5501 5530 20806 16 6600605 6006 0% סחו! פהוצוסווס1 פחדדי 0.0606 3 סחופט סחוחץ 586 606 עְ6ה8א6 0065 6006 פחוצשסווסן פחדדי ( 5501 ,"58|65 06ה6/6)"008ט0768060. 00 = 60 56% 6 את סוס זז טסץ | 6ההח ץכ ]66 6+ 6066006 ח68 טסץ סי "58|65 008006" 60006א5. 00 :זכ חר זטסזכן 000 6 6 פַחוה6ס\] = )ו 56% פחוהזס\! = 00 56% 0טסעט 86006 ז הררה סז 0600 הסעס' (:!!)00\ 56 סח חהסו5660 פוחש ק!56 0סם 6ס' סט 0ח= 0 סדנת לימוד 6.0 8\ יצירת אובייקט 261 וס 60 על ידי יצירת אובייקט 61פץז6ט0 תוכל להגדיר שס שאילתה ולאחסן אותה במסד הנתוניס עס הטבלאות. תוכל להגדיר שאילתת פעולה או שאילתת אחזור נתונים (ץז6ט) |₪67716\8) ולאחר שתיצור את השאילתה, תוכל לבצע אותה בקריאה בשמה (פעולה כזו תוארה בקטע הקוד שהוצג בסעיף הדן על ביצוע שאילתת פעולה). בתוכנית נספח 3.22 הוצגה דוגמת ביצוע גישה לאובייקט 6פץז6טס בשס 58/65 86ַח608 לצורך עדכון מזהה איש המכירות. יצירת 56%5בּחץכ ו-5ַסַחַ5כְַב573 כדי שתוכל להיעזר במשפט ז0ם !55 לאחזור רשומות ואחסונו במערך רשומות מסוג פע או תַסח5כְה5, יש להשתמש במשפט 508 5 בשילוב עם השיטה ס. בעזרת השיטה 0686607056 תוכל להגדיר את סוג מערך הרשומות שאתה מעונין לפתוח, ואת האפשרויות שאתה מעוניין ליישס לצורך פתיחתו. בעת שימוש בשיטה 0068660056 תוכל להשתמש במשפט ז0ם 55 באופן ישיר, או שלחילופין תוכל להשתמש בשס שאילתת אחזור שהגדרת קודם לכן. תוכנית נספח 3 תציג דוגמאות לשימוש בשני אופניס אלה. תוכנית נספח 3.23: דאך.חז5 6515 - שימוש בשיטות 67686 לאחזור רשומות שהוגדרו במשפט 566% ()66ו01 1 חהוחוח60 סט5 סלהעוזק 0006 15 ₪56 0+ 670760660 3.51 00 6עפח זפטוח טסצי 58 5( .5501 וחוס 6 858 00 וחוסם טס 5 סוס וס 5 5הצוס) וחוס ("ס. ד5ם ז\6\ 60\א0:\800" )356 הסקס. (665)0ה50אזסש\ = 0 56 ,"[ו₪1.6%8 ,ץחה ט). 51 ,[[הסטקו50סכ וח6ס₪1.]1 56665" = .5501 "שס דט )5 5 |1הז1.56 * ץש חהטוס. 51" 8 5501 = .5501 "51 5 58!65 ,₪1 5 [05ח106 |ו3ז6] [וזסמ-" 8 5501 = .5501 "[0006 ח₪1.]106 = [6006 הח106]. 51 ]השרו /\" 8 .5501 = .5501 01600 ₪6607056% 06 070806" (560 חכ 00006 , 056%05501 6607 00.06 = 5העשס\ 56% 8 56 ח68 טסץ סי (5501 ,"5000%9|5 006%" )6 0768060(6. 00 = 60 56% 6 58500 000006 ,"5000915 600506 הק 00.0 = 6/5 56% נספח 3: תקציר פקודות 501 | 931 וז חרז סזכן 000 6). א וס 6 0ותסס\! = 5 56% פַחוהס\ = )6 56% פוהזס\! = 00 56% 0 סע 86006 זז חור רהז סז 0600 הסעס' (:!!)00\ 56 סח הסו5660 ורש קו56 0סם 6ס' סט 0ח5 ראית כיצד ניתן להשתמש במשפטי ₪07 551 ליצירת מערכי רשומות מסוג זספּחץכ או אך קטע ההשוואה של =מפה/\ ורשימת הגדרות המיון בקטע צ8 מפסמס יכוליס לשמש גס להגדרת המאפייניס של אובייקטי אפחץכ. מאפיין זסס|ו= 56%החץכ הוא למעשה משפט =₪פה/\ שאינו כולל את מילת המפתח =משה/ש. בעת הגדרת מאפיין זסטוות תוכל להשתמש בכל ביטויי הבדיקה שפורטו בקטע הדן על שימוש בקטע =חםה/ש. גס מאפיין 50% של אובייקט זסִפּחץכ הוא למעשה פקודת +50 שאינה כוללת שימוש במילות המפתח /8 מפסחס. משפטי 501 בשילוב עם פקד באב פקד ₪808 משתמש במאפיין 06זט₪6607050 ליצירת מערך רשומות בעת שהוא נטען. הערך המוצב במאפיין 66זטס₪660705 עשוי להיות שס טבלה, משפט ז0ם 55 או שס שאילתה שהוגדרה קודס לכן. על-כן ניתן לומר שכל מה שנאמר על משפט ז60ם |55, רלוונטי גס ליצירת מערכי רשומות שישמשו בשילוב עס פקדי פּזה. הערה: בהצבת שם טבלה במאפיין 6זט₪6607050 של הפקד, 8856 |טפו\ נעזרת בשם זה ליצירת משפט 501 551 כמו זה המוצג להלן: 6 |סת * ז0ם |55 2 סדנת לימוד 6.0 8\ יצירת משפטי 501 כשתרצה ליצור משפטי ‏ 501 ולנסותם, תוכל לכתוב אותס ישירות בקוד התוכנית ולהפעילו כדי לוודא שהם פועליס באופן הרצוי. אך זהו תהליך גוזל זמן ועלול להיות מתסכל מאוד, בעיקר כשיש לנסות משפטיס מורכבים מאוד. אך מוצעיס לך גס שלושה כלים אחריסם לפיתוח משפטי 501 שהשימוש בהם עשוי להיות פשוט יותר: + התוספת זסהְּח8ּ!! 0868 |1508\ שב- 88516 |הט5וש. % תוכנת 460655 (אס מצוי ברשותך עותק התוכנה). + שוסט 50סזסוו. הערה: משתמשי |08אם או 0766 יכולים גם להשתמש בכלי זט 107050 של ₪66655. זְסְחָהח 288 |1508/\ (-866655 כוללים כליס לבניית שאילתות שמסייעים בבניית שאילתות .501. הכלים כולליס תיבות דו-שיח המסייעות בבחירת השדות שייכללו בשאילתה, ואמצעיס שמסייעים בניסוח הקטעים. לאחר שתסייםס לנסות שאילתה באמצעות אחד הכלים, תוכל לאחסן אותה במסד הנתוניס כאובייקט ז6סץזפט). תוכל לבצע את השאילתה בתוכנית בקריאת שמה. לחילופין, תוכל להעתיק את הקוד מכלי בניית השאילתה לתוכנית, על ידי פעולות חיתוך והדבקה רגילות. זסַחָבּחבּ!! בּזְבּכ |בּטפו\ זסְחָהחה 8ז28 |508ו\ הוא תוספת (ח400-1) המאפשרת ליצור ולשנות מסדי נתוניס שישמשו בתוכניות הכתובות ב- 8856 |1508/. ל- ז806ח8 0868 |08פו\ יש גס חלון שמאפשר להזין שאילתות ‏ 501 ולנפות מהן שגיאות. אס לא תרצה להשקיע את המאמ הדרוש ליצירת השאילתה, אפצ יציע בונה שאילתות (06ווט עוסט0), שיאפשר לבנות שאילתות על ידי בחירת פריטים שהוא מציע. הערה: אם תרצה ללמוד אודות אופן הפעולה של זסהַָ8ח8 288 |הטפוצ\ כדאי שתדע שהוא למעשה אחד הפרויקטים לדוגמה שמסופקים ב- 8856 |608/. שם קובץ הפרויקט הוא 4./87ד150/ וניתן למצוא אותו בתיקיה 4ד1504/ שבתיקיה 065וח58. הפעל את ז6ִהַהּחגּו₪] 8%8 |הטפו\ על ידי בחירה בפקודה זססְּח8ּ1!] 2868 |1508\ מתפריט 865 של 8856 |1508. פתח את תפריט ₪6 של התוסף ובחר 28680856 ח6ק0. אחר בחר את סוג מסד הנתוניס הרצוי מתפריט המשנה. תוצג תיבת דו-שיח שתאפשר לפתוח את מסד נתונים. בשלב זה תוצג בחלונית השמאלית של חלון היישום רשימת הטבלאות והשאילתות שהוגדרו במסד הנתוניס. ז806ח18 8%8כ [8טפו\ מוצג בתרשיס נספח 3.11 בעת עבודה עס מסד הנתוניס טסחח.חססטוזד. נספח 3: תקציר פקודות 501 | 933 [ ]₪ = וס 0 0 01 5 66 8 8חו5 50 5\: :318 0ו/\ שח סנוט עו 5 0 8 ₪ ₪5 ₪ פו = הטתואוה ווה | שגר | רו מ ב = 5 ₪ 6וז תופה | ל 18 ב ג ₪ ב ו שס שּ ב ₪ מי י ו ב ב חסו5355 ל ה הס ה 8 חוסןזפחהו [ח- מ סכ תח מ ?זור 1-1 חוחחסה נזספש | | תרשים נספח 3.11: תוכל להיעזר ב- זסהבּח8ו] 0803 |הטפוצ לפיתוח שאילתות 501 כשתרצה לפתח שאילתה ולנסות אותה, יש להקליד תחילה את משפט 501 בתיבת הטקסט שבתיבת הדו-שיח 50900600 .501 (תיבת הדו-שיח הימנית שבתרשיס נספח 1) כשתהיה מוכן לבדוק אותו, לחץ על לחצן 66016אם. אס השאילתה שיצרת היא שאילתת אחזור, ביצוע השאילתה ייצור אפַחץ והרשומות שתוחזרנה על ידי השאילתה תוצגנה בטופס הזנת נתונים, (או 0וזס). אס השאילתה היא שאילתת פעולה, תוצג תיבת הודעה שתודיע על השלמת הפעולה (בהנחה שלא אותרו שגיאות). אס משפט 501 מכיל שגיאה כלשהי, תוצג תיבת הודעה שתדווח עליה. חח 8ז8 |טפו\ כולל גס בונה שאילתות. תוכל להציג אותו על ידי בחירה בפקודה ז06ו801 ץזפט מתפריט 65חו|ט ‏ זסָהּחבּוז הזכ |508ו/\. לבניית שאילתה על ידי שימוש בכלי ז0ווט8 עְזסטס, יש לבצע את הצעדיס הבאים: 1 2 בחר את הטבלאות שתרצה לשלב בשאילתה מתיבת הרשימה 5ש6וטבּד. בחר את השדות שאליהס תתייחס בשאילתה מתיבת הרשימה ששסח5 0+ ₪16!65. הגדר את קטע =חפה/ו, אס יש כזה, על ידי שימוש בתיבות הרשימה הנפתחות 36 א 16!6-, זס3%ז6ק0 או 6ט!3/ המוצגות בראש תיבת הדו-שית. הגדר את תנאי א301 של הטבלה (אס יהיו כאלה) על ידי לחיצה על לחצן 56% 05 6!טבּד. הגדר קטע 8 ז66ס שיתבסס על שדה אחד (אם יש כזה) על ידי בחירת השדה הרצוי מתיבת הרשימה הנפתחת צ8 006 ובחירה באפשרות ₪56 או 656. הגדר שדה +צ8 6₪00₪ יחיד על ידי בחירה באפשרות מהרשימה הנפתחת קטסיו6 ו צץ₪. 4 סדנת לימוד 6.0 8\ | א | זסט!וטם עזסט או :6 ה :חב בושו ש 7-7 | - -| ממאאאשמאאאאאאה | 5 005506 115% | םוז ססחו זס | םוז ססחו חמ :₪ קטסזב :500 60 605 כ -ון - 6 07 56 ₪ :₪ זסטזס [= ן | פחוס 30!6 ד 56% +חשסזס קסד 7[ :86 ₪ קסד -- תרשים נספח 3.12: בונה השאילתות מקל על בניית משפטי 501 לאחר שתגדיר את הפרמטריס הדרושים, תוכל להפעיל את השאילתה, להציג את משפט .501 או להעתיק את השאילתה לחלון %ח6706ז59 .501. בונה השאילתות הוא אמצעי נוח ללמידה של בניית שאילתות ד0ם |55. לאחר שתביא את השאילתה למבנה הרצוי (אס באמצעות ז00!ו8 ץזפטס ואס על ידי הקלדה ישירה) תוכל לשמור אותה כאובייקט ‏ %פץעז6ט0 במסד הנתוניס. לאחר השמירה תוכל לפנות אליה מקוד 8856 |1508/ על ידי ציוו שמה. לחילופין, תוכל גס להעתיק אותה מ- זִסְחַבּח18! הזה [808ו/\ ולהדביק אותה בתוכנית. שימוש ב-₪466655 אם יש ברשותך עותק 860655 תוכל להיעזר בכלי ז06!ו80 עז6טוס כדי לעצב את השאילתה תוך שימוש בממשק גרפי. לאחר מכן תוכל לפנות לשאילתה כאל אובייקט ]טס במסד הנתונים, תוך ציון שס האובייקט בקוד. אחד השימושיס המעניינים שניתן לעשות בתוכנת 460655 הוא ביצוע פעולות ייהנדסה הפוכהיי על אובייקטי זשפזסט). 406655 מאפשרת ליצור תיאור גרפי של הטבלאות ומסדי הנתוניס שבאובייקט ססץזפטס מסוים, שהוזנו על ידי שימוש בשפת )50. תהליך ההנדסה ההפוכה הוא למעשה דרך מיוחדת לבצע פעולות ניפוי שגיאות ושינוי שאילתות קיימות, תוך שימוש בממשק גרפי. נספח 3: תקציר פקודות 501 | 935 אופטימיזציית ביצועים ב- 501 מפתחיס שואפיס תמיד להפיק מהיישומים ביצועיים אופטימליים בכל תחוס אפשרי. גס מפתחי שאילתות 501 שואפיס לאפשר לשאילתות להשיג ביצועים מירביים. כיוס מוצעות מספר שיטות שמאפשרות לשפר ביצועי שאילתות. שימוש באינדקסים מנגנון מסד הנתוניס 265 מיישס טכנולוגיית אופטימיוציה המכונה טכנולוגיית 6זסוחח5ו₪. בתנאיס מסוימיס טכנולוגיה זו נעזרת באינדקסיס ומיניס כדי להאיצ פעולת שאילתות. אס תרצה להפיק את מירב התועלת שנובעת מיישוס שיטה זו, תוכל להגדיר אינדקס לכל שדה שבשימוש קטעי םמפה/\ או ביטויי אזסנ. בעיקר כדאי לעשות ואת עבור שדות מפתח המשמשים לקישור בין טבלאות (כגון השדות 65000 ו-58!6510 שבמסד הנתוניס לדוגמה). אינדקס גם יעבוד טוב יותר עס אופרטוריס משוויס מאשר עס תנאי 6זסח/א, כגון 116 או א]. הערה: שיטת 6זסוחחפט₪ מסוגלת לבצע אופטימיזציה על סוגי שאילתות מסוימים בלבד. כדי שתוכל לבצע על שאילתה אופטימיזציה בשיטת ש6זסמתפטח, על תנאי =קשה/\ שבשאילתה להשתמש בשדה אינדקס. כמו כן אם תשתמש באופרטור 65א1!, יש להשתמש בביטוי השוואה שיתחיל בתו רגיל ולא בתו חיפוש כללי. שיטת 6זסוחחפ5ט₪ ניתנת ליישום באמצעות מנגנון 36% ועל טבלאות סזקאס" |- 08856. שיטת 6זסוחתפטח אינה אפשרית לשימוש עם מסדי נתונים מבוססי 86ס0. הידור שאילתות המושג הידור (חַחו!וקוחס6) שאילתה מתייחס ליצירת אובייקט 61פ/זסט ולאחסנו במסד הנתוניס. אחסון השאילתה במסד הנתוניס חוסך ממתרגס הפקודות (זספזהק) לבנות את השאילתה מחדש בכל ריצה ומאיץ את מהירות הביצוע. לשאילתה שבשימוש נפוץ הגדר אובייקט )6סץז6ט0. הקפדה על מבנה פשוט בעבודה עס נתוניס רביס הלקוחיס מטבלאות רבות אתה עשוי להידרש לבנות משפטי מורכבים מאוד. הפעלת משפטים מורכבים איטית בהרבה מזו של משפטיםס פשוטים. גס השימוש בקטעי =חפ\ז/\ המכילים מספר תנאיס מעלה את רמת מורכבות השאילתה, תוך הארכת הזמן הדרוש לביצועה. כדאי שתקפיד על מבנה פשוט עד כמה שניתן. אס יש להשתמש במשפט מורכב יחסית, ייתכן שיחיה כדאי לפצלו למספר פעולות פשוטות יותר. אם יש לבצע פעולת 3018 על שלוש טבלאות תוכל להשתמש לעיתיס במשפט סדא1 ז0ם 551 כדי ליצור טבלה זמנית משתייס מהטבלאות, ואחר להשתמש במשפט סדא1 ז0= 551 נוסף לצורך ביצוע פעולת אזס סופית. לא קיימים כללים חד-משמעיים בנוגע למספר הטבלאות המירבי 6 סדנת לימוד 6.0 8\ שאליהן יכול משפט ‏ 501 להתייחס, או לגבי מספר תנאיס מסויס שמעבר לו המשפט הופך מורכב. אס אתה ניתקל בבעיות בתחוס הביצועים, תוכל לנסות פתרונות שוניס כדי לגלות את אלה המתאימיס. דרך נוספת לפישוט משפטי 501 היא על ידי הימנעות מביצוע בדיקות התאמה לדפוסים (0חוה18%6!] חהז86ק) בקטעי =חפח/\. משוס שבדיקות כאלו אינן מתייחסות לערכים יחידים, קשה לבצע עליהם אופטימיזציה. בנוסף, פעולות השוואה לדפוסי השוואה שהתו הראשון בהס הוא תו חיפוש כללי, איטיות יותר מפעולות להשוואה לדפוסי השוואה שהתוויס הראשונים שלהסם הס תוויס ספציפיים. לדוגמה, אס תחפש ספרים שעוסקים בנושא .501, איתור ספרים שהביטוי .501 מופיע במקוס כלשהו בשמס (כלומר תבצע השוואה במבנה "*501*"= חזסש8כ) ידרוש חיפוש על כל כותר בטבלה. לעומת זאת, החיפוש אחר ספרים ששמותיהס מתחילים בביטוי 501 (כלומר השוואה לביטוי "*501") תאפשר לדלג על רוב הרשומות. אס הגדרת אינדקס עבור שדה הכותר, פעולת החיפוש תעבור ישירות לספר הראשון שעוסק בביטוי 501. העברת משפטי 51 למנגנוני מסדי נתונים אחרים 6 |808ו/\ מסוגלת להעביר משפטי 501 דרך שרת מסד נתוניס המיישםס את ממשק 6 כגון ז6\ז 56‏ 501. בהעברת משפט 501 דרך מנגנון מסד הנתונים, מנגנון 36% אינו מבצע עיבוד כלשהו של השאילתה, אלא מעביר אותה לשרת לעיבוד. חשוב שתזכור שתחתביר משפטי 501 שיועבר, חייב לתאוס לתחביר 501 שנתמך על ידי מסד הנתוניס המארח. כדי להשתמש ביכולות ההעברה (חפטסזחד 2855) יש להגדיר את פרמטר פחסטקס של המשפט באמצעות שיטת 8660705%ח006 או שיטת סאטס6אם, ולהציב בו את הקבוע חפטסזח 23551 005001. קוב הפרויקט קפ/. סופ 501 שבתקליטור, מכיל רביס מבין קטעי הקוד שהוצגו בנספת זה. כל קטע קוד מקושר ללחצן. הלחיצה על לחצן יוצרת זפּחץ תוך שימוש במשפט 501 שמופיע בקוד. תוצאות השאילתה מוצגות ב- 00 6חטספ-פכ. הטופס שמכיל את הפקד מכיל גם תיבת טקסט שבה יוצג משפט 501 הרלוונטי. מכאן... פרק וה לימד את יסודות השימוש בשפת .501 בתוכניות מסדי נתונים. למדת כיצד לבחור רשומות, וכיצד להגביל את הבחירה על ידי שימוש בקטעי =מפח/ו. ראית גם כיצד ניתן להשתמש במשפטי 501 כדי לשנות מבניס של מסדי נתונים, וכיצד להשתמש בפונקציות צבירה להפקת תקצירי מידע. נספח 3: תקציר פקודות 501 | 937 נספח 4 דפי שרת פעילים (55) ייתכן בשעת מעבר מדף 60/\ אחד לאחר, תהית מהו המנגנוו המתוחכס הפועל בקצה השני של הקישור. לדוגמה, כיצד חנות מקוונת מעבדת את ההזמנות שמתקבלות באמצעות אתרי פ6/\. התשובה היא שבאתר 80/\ פועלת תוכנית היוצרת באופן דינמי דפי ס6/\ בהס כלולות תוצאות הפעולות שלך. בעולס אזאש פעולות כאלו מבוצעות על ידי תוכניות 661 או באמצעות תוכניות הכתובות בשפת 6, ואילו חברת 670504 נכנסה לתחוס על ידי שימוש בטכנולוגיית 8065ק ]567/60 26006 - 55 (דפי שרת פעילים). טכנולוגיית 28065 567/67 6006 היא רכיב תוכנה בשרתי 60/\ המאפשר להשתמש ב- 8856 |508ו/\ לצורך כתיבת 5671065 רבי עוצמה שיפעלו בשרתים. פרק זה יציג את טכנולוגיית 859 וחלק מהכלים הנתמכים על-ידה. מבוא אס אתה מפתח יישומיס המיועדים לשימוש בסביבת 60/\ או אינטראנט, כדאי לך לשקול שימוש בטכנולוגיית 452. שפת ]וז המשמשת ליצירת דפי ס6/\ 06ו/\ סוזסש\ מורכבת מתוכן סטטי. את התוכן הסטטי ניתן להעשיר על ידי שימוש בכלים כגון יישומוני 388 (5ז6|קק 28/8), רכיבי || 6ותההץכ, או פקדי 606% הפועלים ביישוס הלקות. בשונה מכלים אלה, טכנולוגיית 857 היא רכיב תוכנה הפועל בצד השרת, מפני שכל הקוד ב-5606 (שרובו כתוב בשפת +85610/) פועל בשרת. השימוש ב-450 מאפשר ליצור אתרי 65/\ דינמייס שפועליםס תוך קישור למסדי נתונים, והחזרת קוד סטנדרטי בשפת ואד הנתמך על ידי כל סוגי הדפדפנים. טכנולוגיית 857 היא פתרון נוח במצביס בהס נדרשת פנמיה למשתמשי 606806 ולמשתמשי זסזס|קאם 6%תזססה1, | ובמצביס שבהסם כדאי להימנע מבעיות הקשורות להורדת יישומוניס ופקדיס המיועדים לפעול ביישוס הלקות. הערה: שרת 60/\ ש-050%ז60ו! מציעה לסביבת דא פשססחוצ\ נקרא הסוסה זסזח1 ז6חזסזח1 .6705006 מציעה גם שרת סש6/\ "פשוט" המיועד למחשבים אישיים ומכונה 56 60/\ |החס5זפק. רכיב 8572 נמצא בשני סוגי השרתים, בעת כתיבת שורות אלה ניתן להוריד את השרתים מה-60/\ ב- 086% חסשטקס 95/זא. בסעיף תיקיות מדומות תמצא פירוט קצר של ההבדלים הקיימים בין השרתים. 57 לעומת ואו סטנדרטית 5 הסחהחזסזח1 6%חז6זח1 מזהה דפי ט6/\ הבנויים בטכנולוגיית 455 על-פי סיומת הקוב\ 455. כדי ליצור קוב 459 חדש, שנה סיומת קובצ 1% קייס, או צור קובצ טקסט חדש בעזרת עורך טקסט. קבצי 455 יכוליס להכיל קוד 560% או טקסט סטנדרטי של אז, אך ברוב המקריס הס מכיליס תערובת של שני סוגי הקוד. העובדה שהס מכילים קוד 561106 היא שמבדילה בין דפי 455 לבין דפי |ואדת רגילים. 0 סדנת לימוד 6.0 8\ נתייחס רגע לכתובות ‏ ₪1 (ז106800 ₪6500766 |8פזסצוח - מציין מיקוס משאביס אוניברסלי), אשר משמשות לצורך פנייה למסמכי ספ\\. להלן שתי כתובות ‏ |ש, הראשונה היא כתובת דף פ6/\ רגיל, והשנייה היא כתובת דף 450 : .6 ץר 60 ור / / : ססר 306.50 516.60 ץר ו / : כ כתובת 1 רגילה (כדוגמת הכתובת הראשונה) מייצגת דף פ6/\ סטטי יחיד. כתובת דף 455 (כדוגמת הכתובת השנייה) עשויה לגרוס לכך שלדפדפן המשתמש יוחזרו דפים שונים, שלכולם ניתן לפנות תוך שימוש באותה כתובת 081. היוכר באיזה אופן מבוצעת פעולת דפדוף: פעולות כאלו מבוצעות על ידי קיוס פעילות תקשורת המבוססת על העברת בקשות (5600650) ותגובות (565007565) בין הדפדפן לשרת 60/\. ללא תלות בפעולות המבוצעות על ידי שרת ט6/), התוצר הסופי של פעולות אלו הוא זרס נתוני ₪411 שמותחזר לדפדפן, כתגובה לבקשה שהועברה על-ידו. כאשר מתקבלת בקשה להעברת קובצ אדה, השרת נידרש רק לקרוא את הקוב\ מהדיסק ולהחזיר אותו לדפדפן. אך כאשר שרת מעבד קוב\ 455 הוא מבצע את כל פקודות הקוד שבו. הפקודות עשויות לגרוס לשרת לבצע מיגוון פעולות רחב, ביניהן יצירת קוד !אד שיוחזר לדפדפן. לדוגמה, נניח שתרצה ליצור דף 65/\ שיציג את השעה העדכנית כתגובה לבקשה שתועבר אליו. השעה העדכנית היא נתון דינמי, שלא ניתן לאחסן אותו בקובף |אדח סטטי. אך ניתן לבנות דף כזה בקלות על ידי שימוש בקוב 55ג, כמו זה המוצג בתוכנית נספח 4.1. תוכנית נספח 4.1: 52 =ואזדפוזד - קובץ 52 פשוט להצגת תאריך ושעה עדכניים. < ||וחדר]> <ץ00> 5 סוחו חב 0806 זחהסזו6 סחד %> 6חוד5 וחום צוסא = 6וחו51 (6רחו 6)57 ו 56 6500 <% <צ800/> < |וזדר]/> קובצ 455 המוצג בתוכנית נספח 4.1 מציג את השעה והתאריך העדכניים. הקוב מכיל תערובת של שפת !אד סטנדרטית עס קוד 8560%/. אם תבצע גישה לקובצ וה כשהוא מאוחסן בשרת 60\\, הקוד שב-567100 יבוצע בכל פעס שתלתא על לחצן 60705 והדפדפן שלך יציג את התאריך והשעה העדכניים. אך אם משתמש ירצה לעיין בקוד המקור שבקוב באמצעות הדפדפן, יוצג לפניו רק קוד !דח שבקובצ. נספח 4: דפי שרת פעילים (ספ5א) | 941 < ||ואחדר]> <ץ₪00> 5 שוחו 0ח3 0806 +חסזזט6 סחד 0 7/5/1998 <ץצ800/> < |וזדרן/> המשתמש לא יראה את קוד 06 856/ המיועד לפעול בשרת, מפני שקוד וה כלל אינו מועבר לדפדפן. אך העובדה שהקוד פועל בשרת מאפשרת להשתמש בו לצורך גישה למסדי נתוניס או לרכיבי תוכנה, כמתואר בתרשיסם נספת 4.1. ו עו 3 ד ₪ בורק אשצ 5% 6 3 5% ש|ף 9 4 65| ₪ 2-0 -> | ה ₪ המססטגת 5פתחמתם עפומו| הסובת הס5 | שחסה ‏ פופה = סקופ ו ת ]|[ 6 0 וו פוואא\-ם. 65| 886655. הסק6> 6%שסוצ\ עווהּסם 33 58|65 | ₪5 531 |הזסד חסו90ה עוום 580073 43, ו זסזהשץסק הסזחסכ | %1,234,4567,.89 | 5 חסם 41" סו תו עו[ | 1 שווסס 6 תרשים נספח 4.1: 56106 הפועלים בשרת מאפשרים ליצור אתרי ט6/\ רבי עוצמה ספריות מדומות בטרס תוכל להתחיל להשתמש ב-455 תידרש לבצע מספר פעולות ניהול מערכת בשרת. קבצי האתר שלך מאוחסנים בספריה בדיסק הקשיח של שרת סש)\, כגון \0חוְססחִַּחו)\%ססוטצוש\פטק+6הז\:6. | נתיב זה מכונה ספריה פיסית (68ופ5ץחק ץזס660זוס), מפני שהוא מצביע על מיקום פיסי הקייס בפועל בדיסק שלך. אך כאשר משתמש ס6/\ מעוניין לבצע גישה לקבציס המאוחסניס בספריה זו, הוא פונה אליהס על ידי שימוש בכתובת ₪1 כגון הזח.+וסק6זץ!הזחסו /06הח1/זס/ו56שר//:קשח. כיצד מבצע 567/61 8ה800זס+ה1 6%חזסזח1 את הקישור בין כתובת ₪1 לספריה הפיסית שאותה כתובת משמשת לפנייה אליה! הקישור מתבצע בעזרת שימוש בספריות מדומות (66607!65זוכ |8טטזו/). אס נתייחס שוב לדוגמה שלנו, שרת 60/\ יודע שהספריה המדומה 66ח8ח₪8/ היא למעשה ספריית המשנה סזחופסחפּחו. ספריות מדומות הן למעשה כינוייס של ספריות אמיתיות. ספריות מדומות וכלים נוספיס הקשוריס בפעולת שרת 60/\ מנוהלים על ידי 1808007 567/06 6%חז6שח1 (בעבודה עס ז6/שז56 0/6050 |8ח50זפק גורמיס אלה מנוהליס על ידי זְהַח8ו 60/\ |8חס5ז6ק). בתרשיס נספח 4.2 תוצגנה תמונות מסך של טח 567106 6%חו6זח1 ושל זססְהח3ּ1] 567166 |החספזסס. 2 סדנת לימוד 6.0 8\ יצירת ספריות מדומות לקבצי 5 כדי ליצור ספריה מדומה בצע את הפעולות הבאות : 1 צור ספריה חדשה (לדוגמה זו פטס%ח1\) על ידי שימוש בשורת הפקודה של 05כ או ב- זפזסוקא= 5אוספחוצ\. פתח את זִ6ְאַח18] 567166 6%חז6סח1, שאמור להיכלל כעת בקבוצת התוכניות בשרת שלך. הערה: אם יש לך הרשאות ניהול בשרת ס6/\ ניתן לנהל את 115 מרחוק. התהליכים המיושמיסם ליצירת ספריות מדומות בגרסאות השונות של 6פחזססח] ז ו 5067/1605 שונים מעט אלה מאלה. בתרשיס נספח 4.2 מוצגות תמונות מסכיס של הגרסאות השונות. + עבור לכרטיסיה 65וזס66זום ולחץ על לחצן וסא. + אם אתה עובד ב- 4.0 115 לח לחיצה ימנית על אתר 60\\ שלך ובחר מהתפריט שיוצג את הפקודה ץז600זוכ |8טשזו/\ וסא. > אם אתה משתמש ב- זסְהּח3ּ!י! 60)\ |החספזסק, לחצ על הסמל 6ַ6ַסחַ8ש40 ואחר כך על לחצן ₪00. הגדר ספריה פיסית (שאותה תוכל למצוא בעזרת לחצן ספווסזם) וספריה מדומה (שמכונה גס כינוי - 4|885). לשס הדוגמה הגדר את 65%6/ ככינוי לספריה החדשה. הצעד הבא הוא הגדרת הרשאות גישה מתאימות עבור הספריה החדשה. סביר להניח שתוצגנה לפניך כמה אפשרויות: + 671550 ₪680 (הרשאת קריאה) מאפשרת למשתמשים לקרוא קבציס מהספריה המדומה. ככלל כדאי לאפשר הרשאה זו בכל הספריות. + חסופפווחז6ק +קוז56 מאפשרת להפעיל 5606 המאוחסניס בספריה המדומה. כדאי שתסמן אפשרות זו כדי להשתמש בקבצי 455 בספריה. * חסו55!וחז6ק 660%6אם (הרשאת ביצוע) והה להרשאת חסףפווחז6ק 5000% בתוספת אפשרות להפעיל תוכניות אחרות בספריה (ב- 3.0 1155, 500% חסו155חז6ק אזינה מוצעת כאפשרות נפרדת). ** | חהס670155ק 6טוז/\ מאפשרת למשתמשיס להעלות קבציס לספריה. למחיצת הדוגמה שהגדרנו יהיה עליך לאפשר 67155000 ₪680 ו- 500% חסו55וחחז6ק (או במקרה שאתה משתמש ב- 3.0 115, יהיה עליך לאפשר ₪680 חסו55!ווחוטק ו- הסו5פווחסק 660%6א5). נספח 4: דפי שרת פעילים (ק5) | 943 6. לת על לחצן 0% כדי לסגור את חלון הספריה החדשה. כעת תוכל להתחיל לאחסן קבצי 452 בספריה זו. [1001 0005016 - 50ח-₪5] - 5016 חס-) )חס הוסם חב )50סזס:וא 7" | |18=. - 0 ו | פ\ם | ₪ ₪ 8 הח 5 ₪ | אל 7 0 ד | 6ו0פ סו .| בי בו 5 וו הזזסזח | + הזוה 1 \ 5 הסוב וחזס!וח\ ווה ו 58 | ס/ז56 הסו801פ חב ד )0פסזסוו ב ) וספחוב * 2-8 0 9-3 |<]?)| 5 |א55!! מאפיינר 8 פזסזז = הזס1פגום! [ 158015 ד ₪7 | עס 5 עזסוספוו | 5)תפוחגוססים | 60 [הגוו/ר :החסז] הס 51010 )סכ 6ח!] , 06זגו650ז וו סו ההווסהחסס הסח - וטס ומנ 8 ס) הסוו60זם6ו ה 7+ | ...100086 5 רפוו סוק ה[%:0 1008 סוסו! וחסז! אוסטאאצצ אוו בי ג | הס סוחס ה6ו תס = פהסופפווחזסל] 500658 עזסספזם 5ח) אסטה|. שן סה חס | שן 8 שן 0 . . : : 6חם] 5006 סס|פס ופה 8 6)מטום. הסאוס!8 המופאוסזם עזסוספזו. -] סוז/ -] ופט 565 הסוובסווקק ה 5 |0ה55!|/ 516 פס /\ ובו > )חוסל הַחו5 ו [00695זם 8013160] 50306 עזסוחסוח 59037316 חו חטה 7[ ב-א סחסא 7 6 5 [וק501 טהוסטסחן) ש)גוססאם 97 6יסחחפת טסווב סו!וקק 3 6|קחחב 5 :6 אישור ביטול | וזו | עזרה תרשים נספח 4.2: לגרסאות 3.0 ו-4.0 של ז6/ז56 חסוזהוחז0זח1 6%חו6סח1 ול- ז6ז56 60/\ |החס5זסק יש כלי ניהול שונים . אזהרה: משום שקוד 452 פועל בשרת, כדאי שתקדיש מחשבה רבה לנושא הרשאות בספריות. אם תגדיר הרשאות פפטוז/\ |ו-66016א5 לספריה מדומה, תאפשר למעשה לכל משתמש ט6/\ להעלות קבצי 852 משלו לספריה ולהפעיל אותם בשרת שלך, זהו מצב מסוכן מאוד. בכך סיימת את ביצוע הפעולה. כעת, לאחר שיצרת את הספריה המדומה ₪65%/, תוכל לאחסן בה קבצי 452 ולהפעיל אותם מדפדפן. בסעיף יצירת קובץ 55 פשוט, תיצור את קוב\ 452 הראשון שלך ותשתמש בו. יישומים והפעלות (56551005) בעת עיצוב אתר ס6שו, מבנה עץ תיקיות השרת הוא בעל משמעות מבחינה ארגונית, אך בעת עבודה עס 457 יש לגורס וה משמעות רבה עוד יותר, מפני שספריות מדומות מייצגות למעשה יישומים (080005ווסק4). בדוגמה הקודמת, הספריה 165% והקבצים שאוחסנו בה נחשבו כיישוס 455. ספריות משנה שבספריות מדומות מהוות גס הן חלק מהיישוס. לדוגמה, אם נעזרת ב- זסזסוקאם פאוסטחו\\ כדי ליצור ספריית משנה בספריה %, הספריה החדשה תהיה חלק מהיישוסם 65%?/. 4 סדנת לימוד 6.0 8\ כאשר משתמש מבצע בפעס הראשונה גישה לדף 65/\ כלשהו ביישוס, הוא מאתחל הפעלה (חס|5655) חדשה עס היישוס. כל עוד המשתמש ממשיך לעבוד עס אותו יישוס וממשיך בטעינת דפי פ6\\, הוא ממשיך לעבוד באותה הפעלה. אך אס הוא עובר ליישוס אחר, סוגר את הדפדפן או מפסיק את פעולתו למשך פרק זמן ארוך, שרת 60/\ יפסיק את ההפעלה. מדוע מונחיס סמנטיים אלה חשובים: בהמשך הפרק תראה כי 55 מכילים אובייקטיס שמאפשרים לשמור על מצב קייס בהפעלה. כלומר, אובייקטיס אלה יאפשרו לשמור ערכים נתוניס המיוחדיס להפעלה מסוימת או ליישוס מסויס, בשרת, ולחלוק אותס בין מספר קבצי 5. יצירת קבצי 45 ליצירת קבצי 455 תוכל להיעזר בעורך טקסט כדוגמת פנקס הרשימות (סְפסס6זסא), או בכליסם מתקדמיס יותר כדוגמת ע06ז6זח1 |1508/\. קובצ 850 מורכב מתערובת של קוד ותגי |אדח, אך לעיתיס תיתקל בקבצי 55 שיהיו על טהרת הקוד, או בקבצי 452 שיהיו על טהרת 1אז. הקוד בקבצי 455 הוא קוד 56110%, כדוגמת הקוד שתואר בפרק 0, שימוש ב- 10%ז856/. יצירת קובץ 45 פשוט תוכל ליצור קובצ 452 פשוט ולהתנסות בעבודה עמו, על ידי שימוש בקוד שהוצג בתוכנית נספח 4.1 ובספריה המדומה %05%/ שאותה יצרת קודס לכן. לשס כך יהיה עליך לבצע את הפעולות הבאות : < ||וחדר]> <ץ00> 5 סוחו סחה 0806 זחהסזו6 סחד %> שוחו 51 הזוס צוסא = 6וחו51 (6רחו 6057 56 6500 <% <ץצ800/> < |וזדר]/> 1 קרא לקובצ 455.=אזדפחד ושמור אותו בספריה 65%)/. 2 פתח את הקוב בדפדפן, באמצעות הכתובת 65%/60606.350/ ז567/6ערח/ /:קח, במקוס ז6/ז56ץוח הצב את שס השרת שלך. אס הקוד יוצג על המסך במקום לרוץ, ודא שסיומת שם הקוב\ היא 455 ושהגדרת את ההרשאות הדרושות לספריה המדומה. נספח 4: דפי שרת פעילים (ספ5א) | 945 הערה: שרתי 60/\ 670506 מאפשרים להגדיר שמות ברירת מחדל לקבצים (לרוב ק6ג. דועמחסס או אדה. דוטה-פס). יכולת זו מבטלת את הדרישה להקליד כתובת !אש מפורטת עד לרמת הקובץ. בהקלדת 5655/ז6עז56ץו//:קאח, שם הקובץ 55 דוטגתסס או ואדה דוטה-םס יוצג אוטומטית, אם קובץ זה קיים בספריה :05/. תגי 501% צד השרת בעת עיבוד קובץ ?45, השרת מבצע רק את הקוד שעוצב כ-56700 צד השרת (ז501/6 +56 5106), שאר חלקי הקוב נשלחים חזרה לדפדפן, כפי שהם. את קוד צד השרת שבקבצי 455 ניתן לסמןן בכמה אופנים : > שימוש בתג <דק568₪1> ]₪31 עס האפשרות 55₪/58₪= דהאח. > שימוש בסימני %> וכן <% לסימון תחילה וסוף 500% צד השרת. תחביר וה קצר יותר ואני ממליצ להשתמש בו. בכל שיטה בה תסמן את ה-50106, ודא שהוא תחוס במפרידים, כמו בדוגמה הבאה: <"חם/ם5"= דא( "ךז "= סא | דקזה56> 1 חחזוס 0 = 1 זס= ("<ם>" 8 1 8 " 6חו1 15 פוחד") וז 56חהסס65 כ ו < 77ז50₪/> תוכל להשתמש גס בשיטת הסימון הקצרה יותר: %> 1 חחזוס 0 = 1 זס= ("<ם>" 8 1 8 " 6חו] 15 פוחד") בסוז/).56חהסס65 6% <% שיס לב שבעת שימוש בשיטה השנייה לא תידרש להגדיר את שפת ה-5600%. זאת היות ו-+10ז856/\ היא שפת ברירת מחדל לכתיבת קבצי 55. אך יש לזכור ששפת ברירת המחדל היא פרמטר שניתן להגדירו בהגדרת הפרמטריס של השרת, כך שייתכן שתרצה להציב את השורה הבאה בתחילת כל קוב 4857 : >9%69 | \0)205="/50 17" %< שורת הוראה זו מורה למנגנון 560008 (6חופחם 8חחק56), להגדיר את 85680%/ כשפת ברירת המחדל של הדף המעובד כעת. 6 סדנת לימוד 6.0 8\ ניתן למקס תגי 566 בכל מקוס בקוב\, למעט מספר הגבלות: + יש מספר הוראות (65ע660זוס) ואפשרויות, כגון שורת הקוד הקודמת והאפשרות ואש הסטק0ס שנדרשות להופיע בתחילת הקובצ, עוד לפני תג < |אד>. + אם הדף שהגדרת מפנה את המשתמש לאתר אחר, לא תוכל להעביר תגי ואדה חזרה לדפדפן המשתמש (בהמשך הפרק תובא הדגמה לאפשרות זו). > לא ניתן לשלב תגי ואד יינקייי בקטע התחום בין תגי <זק5081> לא אם כן משתמשיסם בפקודה 56./1:66ח₪6500. חשוב גס שתזכור שקוד 106ז856/ אינו בעל יכולות מלאות כמו קוד 8856 |508ו/, יש מספר הבדלים ומגבלות כמתואר בפרק 30 שימוש ב-10ז856/. ראה, "מבוא ל-8560%/" ו"שפת 85610%/" פרק 30. דפי טפ/\ פשוטים אך דינמיים כעת, לאחר שלמדת מעט על יסודות טכנולוגיית ק15, נכתוב קוב 455 נוסף. במשרדי יש מחשב ששמו זסאוס)60, משמו ניתן להבין שהוא מקושר ליימגדליי כונני תקליטוריס. מחשב זה נועד לאפשר למשתמשיס ברשת שלנו להתקשר לכונן תקליטוריס לצורך התקנת תוכנות. הקצב הגבוה שבו מוחלפיס התקליטורים בכונניס אלה מקשה מאוד לדעת ברגע נתון איזה תקליטור מצוי באיוה כונן. הייתי רוצה שתהיה לי אפשרות לנהל את המעקב אחר הנושא באופן ממוכן. למרבה המזל השימוש ב- 60/\ |החס5זסק ו-50 מקל על ביצוע פעולות מעקב אלו. עליך להשתמש לשם כך באובייקט 65/5008000[66!₪ כדי לזהות את תווית הדיסק/תקליטור (|1306 6וחטוס/) של אמצעי האחסון המצוי בכל כונן שמקושר למחשב. השימוש בקטע קוד זה בקוב\ 45 שפועל בשרת יאפשר להציג את תוויות התקליטוריס המצויים בכונניסם המקושרים לשרת בדפדפן מרוחק. קטע הקוד בתוכנית נספח 4.2 הוא פשוט מאוד להבנה. תוכנית נספח 4.2: ק5\. |8₪\ | !0 < |דת> <ץ₪00> <חה><565>/31 | סשווסם<11]> %> 5 טס הוחו פוטס וחוס סצוזסנטס חחוס 5 לסה דסא 15% =אסצסזי 6% ₪056 זסזזם חס אס | 601 5ם/נחפ סאה ם ז5צ5 = וז סד ₪655 םת 655 נספח 4: דפי שרת פעילים (ספ5א) | 947 (" 1655060060 . סח 56" 60[ 56/7686 = 5ץ5סווח[פס 56% 5 = פס6עוז00[0 56% 5 |םפה | םוא וסצ ץג וקפזס' 5וזסןסס חן 6טוזכ(פס ה586 זס חסחך "6" < 607 וסעוזס.6טוזפנסס + (ז600 |סעוזס.6עוזס[פס 8 " סטוזס חו 6 6חד") סו 65056 (" <8> ." 8 ס6החהּ)סרתטוס/\.6עוזס[פס 8 " 5 ") 65056.6 + 0חם כ |ק) הח |6' הַחוח6ס\] = פסעוזס[ס0 56% ותזס\! = 65/5!ן(פס 56% %< <ץ800/> < |ודר]/> כאשר משתמש יבצע גישה לדף וּה, קטע הקוד יתבצע בשרת. דף פ6ו\ שהובא בתוכנית נספח 4.2 מבצע את פעולת המעקב, אך הוא מותיר מקוס רב לשיפוריס במה שקשור לעיצוב הפלט שלו. תוכל לשפר את חזות הקלט על ידי שימוש בתגי ואדה כגון תג <5 |8ד>. תוכל להשתמש בתגי אלה על ידי הכנסת שינוייס בפקודות 56.\)166ח₪6500 שבקוב\ (כפי שבוודאי כבר הבנת, פקודת 68ו/₪6500056.0 משמשת להעברת פלט ]ואד תחזרה לדפדפן). בדוגמה הצגת את הערך במאפיין 6וחא\!סחחטוסצ של אובייקט 6עוזס, אך בוודאי תרצה להציג תיאור קצר של התקליטור. תוכל לבצע זאת על ידי הגדרת פונקציה מותאמת אישית בשסם ח500650000, שתחזיר את תיאור אמצעי האחסון שלו: (6רחה\|ס/\5)חססקו7ז50650 הסטסס6חט= (6רח6856)5\/0|\3(\ 0856 56|66% "0398ק(\8/6" 6856 "3/98 ₪165 |671068 +0 866" = הסטס50650 "60502 אפ" 6856 "2+ 60 אזס\60\] 5'זסקסוסעסכ" = הסחק50050 6 5חהססק650כ 6זסו\ ₪00 " 6856 6 "מצוסחאח!)" = הסק50650 6% סחם חסטס6חט= 6ח= תוכל לשלב פונקציות ושגרות משלך בקבצי ק5ג, כפי עשית זאת ב- 88516 |508ו/\. הוסף את הפונקציה 525600000 לקובצ על ידי הקלדת הקוד בתחילת הקטע המכיל את קוד 8 סדנת לימוד 6.0 8\ 5%/\. הפונקציה תהיה מוכרת בכל הדף בו ייכלל הקוד שלה, ותוכל לקרוא לה באותו אופן בו תקרא לפונקציה רגילה של 8856 |15808/\: ( רה )רחס /. סעוזס (טס)הסט 50656 6 .650056 בתרשיס נספת 4.3 ניתן לראות את המבנה הסופי של דף ק5ג, הכולל את הטבלה שבה מוצגיס התיאורים. זסזט!קא = )6חזס)ח! 050/1ז0ו4 - :עו טחוחח563 0 ₪ סופת 800 אשע 20 6ם | 23 099448 9--->| וב 6 םויכ 6[ 0655 | :וז שהוחח563 חסוזקוז050ם ם! פחטווסצ 6 וטפו/ :1 כ סו0טו5 ופטפוע | 601 זאפפצ ש6כז6!ח| טפוש :2 6 סו6טז5 והטפוע | | 602 זאפפצ 6 5066 :4 00 510010 והטפוע | | 604 זאפפצ 3 286% 567166 97 סו5100 |פטפוע 3-ו 1 כ אזסעוו46] זסקסופט6ש 1 ס6אספוא | 2 62 אזסו461] ז6קס|66ם 2 ס6אספוא | / טס א | | | | פס 6 תרשים נספח 4.3: קובץ ק45 שבו מוצגים נתוני תקליטורים קבצים כלולים כאשר תכתוב קוד 06ו856/ ב-452 , תוכל לכתוב את הפונקציות והשגרות בתחילת הקוב. ולבצע אליהן קריאות מכל מקוס בדף. כך תוכל למשל להגדיר פונקציה שתקלוט מספר ותיצור קובצ יז תוך שימוש במספר שנקלט: סרח )ה טסרה וקפוס 5 ו דרפ וחוס " דאסת>" = דח "50א=0₪ 601" .8 ]וא 5 = .ו 5 הפחד 2000 > 6הטסוחהה )1 8 51 = .]571 הסחד 4000 > 6הטסוחהח +[ "\65= 6010" "<" 8 | 57 = |אדח5 ( סרח )הזזה רתס 8 א 5 = ןוא ד "< דא;0=/>" 8 ןד = | דח5 ]ו 517 סו /\/\. 6500056 50 0חם השיגרה +חטסוחה ץ8!ספום קולטת ערך מספרי ואחר מגדירה את מבנה התצוגה ואת צבע הרקע על-פי הערך שנקלט. פרוצדורות כאלו עשויות להיות שימושיות מאוד בקבצי נספח 4: דפי שרת פעילים (ק5ג) | 949 57 שוניס, אך לא קיימת דרך המאפשרת להגדיר שיגרה כציבורית כך שתהיה נגישה לכלל קבצי 455. תוכל לצרף אותה לקבצים שוניס באמצעות חיתוך והדבקה, אך מצב כזה יקשה על תחזוקת העותקיס השוניס. את הבעיה תוכל לפתור על ידי העברת השיגרה לקוב\ נפרד והוספת הקוב> לכל דף 452 בו תידרש השיגרה. להוספת קבציס אחריס לקובצ 455 הפעיל, יש להשתמש בפקודת שסט |6א%1%, כמו בשתי הדוגמאות הבאות: -- "65.850חט 80 חזס)/005%/" = |ה(\דח1/\ םס 1% --!> <-- "865.85 זס)\6\656ססזשוע\ קזח \:6"== = מס 1% --!> הדוגמה הראשונה משתמשת בתיקיה וירטואלית לצורך פנייה לקובצ ואילו השנייה משתמשת בתיקיה פיסית. התוצאה המושגת בשני האופניס היא הוספת הקוד שבקובצ 0ק65.85חט ה וזס+ לקובץ 457 הפעיל בטרס ביצוע הקוד שבקוב\ 855. אחד השימושיס הנפוציס של פקודת פפע 41861 הוא לצורך הוספת כותרות תחתונות המכילות מידע כגון כתובות וכתובות |43-= לדפי ס6/ש. גישה למסדי נתונים באמצעות דפי שרת פעילים נניח שתרצה לפרסס תוכן מסד נתוניס כלשהו ב-60/\. 857 יאפשר לעשות ואת באמצעות שילוב אובייקטי 400 בקוד, שיבצעו את פעולות הגישה שתוארו בפרק 28, גישה לאובייקטי נתונים באמצעות פקדי א6עו6. כדי שתוכל לבצע גישה למסד הנתוניס, יש להגדיר מקור נתונים (60זוס5 0818). מסד הנתונים הפיסי יוכל להימצא בשרת או בכל מחשב אחר, כל עוד תוכל להתקשר אליו תוך שימוש במקור הנתוניס. בעת הגדרת מקורות נתונים שיפעלו בשילוב עס 455, כדאי להגדיר א05 5/5060 ולא 05% ז050. השימוש ב- א05 5/566₪ הופך את הנתונים לומינים לגישה בכל מצב, ולא רק כאשר משתמש מסוים פעיל במערכת. ראה, "הגדרת מקור נתונים", פרק 28. הערה: ניתן גם להגדיר חיבור שאינו מבוסס על א5 (ח6600חח60 655|-\5כ) שבו אין צורך להגדיר מקור נתונים. גם שיטת עבודה זו תוארה בפרק 28. הדוגמאות המובאות בפרק וה מתבססות על ההנחה שהגדרת מסד הנתונים 818110 כמקור נתונים, כפי שתואר בפרק 26, שימוש באובייקטי גישה לנתונים (0ס). ראה, "הגדרת פרויקט הכולל אובייקטי סגפ", פרק 26. 0 סדנת לימוד 6.0 8\ הערה: אם בעת עבודה עם שרת ס6/\ תיתקל בבעיות התחברות למקור נתונים מבוסס 5 501 שפועל על מחשב אחר, שעבורו מוגדרות הגדרות אבטחה רגילות, אתה עשוי להיתקל בהודעת שגיאה כגון: ()6וח0168%6 חססחט? 66 חו זסזו6 ח006 הס66החס6. הודעת שגיאה זו מציינת שלחשבון שממנו מתבצע החיבור (בדרך כלל חשבון ₪שפש 1) אין הרשאות מספיקות ב- זפ\ז56 .501. הפעלת שאילתה על מסד נתונים הידע הדרוש להפעלת שאילתת 400 והצגת התוצאות בדף 65/\ כבר מצוי בידך. אך אפילו מסד נתוניס קטן יחסית, כגון 08א.818110 מכיל רשומות רבות. לכן יש להגדיר את השאילתה כך שתוחזרנה רק הרשומות הרצויות למשתמש, ומכאן משתמע שעל התוכנית לטפל בקלט מהמשתמש המגדיר את הרשומות. יצירה של דוגמת דף שאילתה תג <6ח0-> המובנה ב-1אדח מאפשר לשלוח לשרת קלט שהתקבל מהמשתמש. כעת ניצור דף !אד שיכיל טופס, בשס ‏ אדח +55 800כ, שיאפשר למשתמש להזין שס מחבר, ולבצע חיפוש אחר רשומות המכילות את השם. להגדרת הטופס יש להזין את הקוד בתוכנית נספח 4.3 ולשמור אותו בשרת. תוכנית נספח 4.3: הגדרת טופס |\ואדח בשם דח +ץאפטסס < ||וחדר]> <ץ00> <><1/>ח56876 056בז8כ סוופום<11]> < 051ק= 00 = ספ ה0056876= 6710 מס > :0 ח56376 סט זסתטווג/ זס6ח= <ח56876)אס=ם ]הא דאם ד==קץיד דנוקא[> <"ח56870 חו260"=ם!\ |ה/\ זוא 50=םקיד דוקאז> <\ח0=/> <ץ800/> < |וזדר]/> הערה: טופס ]ד מורכב מתגי <דטקא1> מסוגים שונים, אשר מוצגים בדפדפן בצורת שדות להזנת נתונים. תוכן השדות מועבר לשרת כאשר המשתמש "שולח" את הטופס לשרת. הקוד בתוכנית נספח 4.3 אינו קוד 452. בקוד אין פקודות +0וז856/ והוא מאוחסן בקובץ עס סיומת |אז₪. קטע הקוד משמש רק להעברת טופס !ואד לדף 855 בשס 15 6 \855כ. הדף 457 ח855\86כ, שהקוד בו מובא בתוכנית נספח 4.4, מבצע את החיפוש הממשי. נספח 4: דפי שרת פעילים (ס5א) | 951 גם הקוד ב-8554867.450כ0 הוא פשוט יחסית והוא מבצע שלוש פעולות : <* מאחזר את הערך הרצוי למשתמש מהשדה 04056808 שבטופס ומשתמש בו לבניית שאילתה. + מפעיל את השאילתה על ידי שימוש ב-00 לקבלת מערך רשומות. + שולח את תוכן מערך הרשומות חזרה לדפדפן. בתוכנית נספח 4.4 תוכל לראות שהשאילתה בקובא 455.ח855₪6כ בנויה על ביטוי 6 תוכנית נספח 4.4: ?05=\5₪67.45כ ביצוע חיפוש במסד נתונים <ץ00> < |שדר] > %> ח6 חזום 5 הזוס 1 ווחוס 5567605070 וחוס חס שרד סא 57186 5586 פהוד זםס' (" 00560" )רתס .665% = 8חו550870057 החד "" = 8חו550876050 ו ("|60 6 0חו507 ה56876 סאז") סו 650056 50056.0 0 5 שד אס הפק סאג 55פה הס פד סד ז6שאאזסס6י ("הסו 08.00 )0708060060 ז56/6 = חס 56% "10 |818=\פכ" הסקס.חס " ₪א1 | הסה דג =חםה/\ 5חסר דוה סח * ד0ם ופ" = .5501 "הסדה צם הכ '%" 8 0חהוז5563705 8 "" 8 5501 = 5501 (60006)55001אם. ח0 = 5 56% %< <0%05=1 = ופ > < ד/>6חחהּ\] 5'זסתשו\ <> %> = פד ה א1 5015 שחוד ץג וקפזס' 5.50 %סא סווח\ סס ("< ד><ך>") 56.\/66ה₪6500 ("זסר ")5.605 סו 65056 ("<ך/><כ דך>") 6ן/\.56ה6500 .5 קסס | 2 סדנת לימוד 6.0 8\ 86 6 8חותזס\ = 5 56% 8חוותזס\\ = חס 5660 <% <= | דך/> <ץצ800/> < |וזדר]/> לאחר שתיצור את הקבצים |דח. 8008 ו-50. ה6מהפפפכ, תוכל לפתות את כתובת ₪1 של הקוב ואדח צחפט80כ ולהקליד כמה אותיות וכך תוצגנה הרשומות התואמות למחרוזת שהקלדת (ראה תרשימים 4.4 ו-4.5). |<]ם]- | זפזס!קא = 61חז6)ח] 50/1סזסוא - הסז563 56בּם03)3 סוופום | ₪ 9 06סטם 800 אשצ ₪ 6ם | |> +. 0493 ₪ ווום וז 5 3150856 סווסו8 ופוסו או/א\:. [ 65| 65ב || 5630 ספהּסבּ+3ּכ סו!סום / 6 זס) 50810 10 זסחזנוב, זסזחת זסזוקוחס ע ₪ תרשים נספח 4.4: דף 80\\ המוצג כאן מכיל טופס אד סטנדרטי, שמאפשר למשתמש להזין ערך ולהעביר אותו לשרת לעיבוד זסזסוקא = והזס)ח! 10105071 - סחוב א 5וסחוניה ב 06 80 אפע ₪ 6 | | >- 5- 9 3 ₪ 9 49 9 3 1/6 תו וסעכ וזוא\- כ | 6] 060655 | : 6וחהּ\! פזסחזגוה 6 ,493068500 .4 חח3!9) ,ח90א430 .1 |36ח6ו₪1 , ה80א430 סא ,4306507 .₪ זה ,130006 |33016 ,4930005 130008, 58 [ו₪₪996 ,49300059 4 בב אמ | | | תרשים נספח 4.5: קוד זקוז856/\ שפועל בשרת מחזיר את תוכן המערך כטבלת |אז נספח 4: דפי שרת פעילים (ק5) | 953 הערה: בדוגמת החיפוש במסד נתונים השתמשנו בקבצי 455 ו-אז4 נפרדים. באותה מידה יכולנו לשלב את שני הקבצים בקובץ 450 אחד. השינוי היחיד שיש לבצע הוא שינוי ערך הפרמטר חסטַ6ּ של הטופס כך שהוא יפנה לאותו דף. ייתכן שתרצה גם להיעזר בביטוי ]1 כדי לבדוק האם יש תוצאות שיש להציגן: <% ]0650 15018 הפחד "" <> ("ח6ה56ס")ותזס-]. 36065 +[ %> דוגמת הקוד שהוצגה כאן מבוססת על ההנחה שכתבת פונקציה מותאמת אישית בשס 5 שמפעילה את השאילתה. הצגת נתונים בעזרת קישורים הקוד בתוכניות נספח 4.3 ו-4.4 משתמש בשדה בטופס |אז3 לקבלת קריטריון החיפוש מהמשתמש. על המשתמש להקליד את קריטריון החיפוש בתיבת טקסט ואחר ללחוץ על לחצן. במקריס רביס כדאי להיעזר בקישורים (5אחוווססע) לביצוע פעולות ניווט במסד הנתונים. לדוגמה, כדי לאפשר למשתמש לבחור שס מחבר מתוך רשימה ולהציג את ספריו. תוכל לעשות ואת בקלות על ידי הגדרת אחו|זסקץ4ז לכל מחבר. כדי ליצור את הקישור שנה את הקוד בלולאת 6ווח/\ שבתוכנית נספח 4.4 באופן הבא : = |פ ד ג א1 5ד₪501א שרוד ץג |וקפנס' 5.50 +סא] 6!וח/\ ("=07.850710ח806=-=\ > <כ ך> < דך>") סט 650056 "<" 8 ("10 (\6|05)"4וח.5 6ס1]/\. 56ח650 ("זסר ")5.1605 סו /\. 650056 ("<ך/><כ ד> <2/>") סש 56ח₪6500 .5 סח בתוצאות החיפוש, יוצג שס סופר בצורת קישור לקובף 452 חדש, ק45.מסחד0. אס תשתמש בפקודה 06ז50 שוסוצ של הדפדפן, תוכל לראות שכל קישור הוא ייחודי: <87066>/3 ,ח50א16061<186 =450?10. זסתזט8=- ו ה> שורת 11 זו מעבירה את הפרמטר 6ו לדף 55ג, 452 חס דה. אס תלחצ על הקישור, הדפדפן יבקש מהשרת את כתובת | הבאה: 1 =450265. 3 +05 / סרח סח05/ /: קט שיס לב שכתובת ₪1 מכילה פרמטר 6ו, שמופרד מכתובת 81ש הבסיסית על ידי סימן שאלה. אם יהיו לשאילתה פרמטרים נוספים, הס יופרדו וה מזה בתווי 8. תחביר השימוש בפרמטרים בכתובות 081 הוא כדלקמן: 8 8|06ש2 רזה = 6רח ה ח2 ות הכ ,8 1/8|06 הכ =6ההבח1 ההכ ? ומ (60חזבל//:קטסח ...06| 3 זה = רה ח3 ההק 4 סדנת לימוד 6.0 8\ אוסף הפרמטריס בכתובת 081 מכונה מחרוזת שאילתה (8ח501 ץזסטוס), וניתןו לאחזר את הפריטיסם שבו על ידי שימוש באוסף 8ח67/501ט0 של אובייקט ₪60065%. "שח 1 סצ]" 05056.6 הסד "" = ("ו" )050 .60650 וז ניתן לאחזר ערך במחרוזת שאילתה שהועברה לשרת, ולהשתמש בו בשאילתה לאחזור נתונים ממסד נתוניס, כפי שנעשה בדוגמת שימוש בשיטה ₪ ס-.₪090005 בתוכנית נספח 4.4. " [65שוד] ,[זסוטטה = |דנד] ותסז שד 0ם 551" = .5501 " א065[.150וד] = 158%.[וסתסטה 6טוד] =אםה/\ " 8 5501 = .5501 ("0ו" )9חו50/ 665.06 8 "=כ1 (ה.[זסחזטה 6וד] סחהּ " 8 5501 = .5501 כתרגיל, צור כעת את הדף 455.חסח דוה תוך שימוש בשאילתה שלעיל. מבנה קובצ יהיה זהה לה שבתוכנית נספח 4.4, פרט להבדליס בשמות השדות. עדכון נתונים במסד נתונים השימוש ב-ק457 להצגת נתונים הוא מועיל מאוד, אך בשלב כלשהו יש לבצע פעולות עריכה. להלן שני אופניס שבהס תוכל להעביר קלט מדפדפן המשתמש לדף 50( : + משלות נתונים (פחטפסק) על ידי שימוש בקובצ וואדו. + הוספת פרמטרים למחרוזת שאילתה. שתי השיטות הן שיטות מועילות וכל אחת מהן מתאימה לשימוש במצביס מסוימים, אך משלוח נתוניס מקנה גמישות רבה יותר בעבודה עס טפסי |אז4. בדוגמאות שהצגנו עד כה עבדנו עס שדות קלט מסוג 6%ד בלבד. אך ₪11 תומכת באמצעיס נוספיס להעברת קלט כגון לחצני אפשרויות, תיבות רשימה נפתחת, ואזורי טקסט להזנה חופשית (685ז] 6+ וחזס)-66=). סוג השדה אפספ1ח (נסתר) מועיל מאוד בפעולות עריכה במסדי נתוניס. שדה מסוג זה דומה לשדה רגיל מסוג טקסט, אך המשתמש אינו יכול לראות או לשנות את הערך המאוחסן בו. בעת עבודה עס קבצי 50 ניתן ליצור שדות מסוג א05פ31 ולהעבירס לדפדפן. כאשר המשתמש יעביר את הטופס חזרה לשרת, תוכן שדות אלה יועבר לשרת יחד עס השדות האחרים. כעת נחזור לקבציס שהוצגו בתוכניות נספח 4.3 ו-4.4 ונוסיף להס יכולת לעריכת שס המחבר ושנת הלידה שלו. בנוסף, נאחד את כל הפונקציות שמופיעות בדוגמאות הקודמות בדף 455 יחיד: + הפונקציה 5זסחזטהזס456 תחליף את קוב\ ואדה צמםפטספס. + הפונקציה 56 1זסח)ט66%3 תחליף את קוב 86.55 855ס. + ח8/₪0656706!ס5ום היא שיגרה חדשה, שתציג טופס לעריכת נתוני המחבר. % הפונקציה 0/ח000806081 תשנה את מסד הנתונים. הקוד לדף 452 החדש ק5ג. ד₪01 א 0 דוה מובא בתוכנית נספת 4.5. נספח 4: דפי שרת פעילים (ס5א) | 955 תוכנית נספח 4.5: קפה. דוס=מסחדטא ביצוע פעולות חיפוש ועריכה. < |ודו]> <צ800> >% ח6 וחוס 5 חחוס 550 וחוס "600.850זסתסט3"= ץצ חס (50זסרט\/זס-]5%/ 5 ("<\]> <11/>ה0ז568 03080856 סווטום<₪1>") 65056.6 ("< ז05ק=00 151 ה6=56376ססוח?" .8 ₪ וצו 8 "=אסזד6 ₪ה0->") סו 65056 (":זס] ה76ז568 60 זסוס טג זססח=") 65056.6 ("<0568760ס == דאם ד=םקיד דקא1> ") טוש 6500056 ("<""568760 60 אסו[""==\ | וא 5=םק ץד דנוקא1>") .65056 ("<]0₪=/>") סו//.56ח6500 5 0חם (50ו וזסרזט\066 5 50 שד אס השק סאג 55 הס פחוד סד זש6פצאססי ("הס 66 000.0 0768060060 56/6 = חס 56% "818110= \פכ" הסקס.חס " 166 | הסרד =משה/\ 5מסה דה ואסמת * ד0ם וספ" = .5501 ("ח56876)ס")וחזס- .₪605 .8 "" 86 5501 = .5501 "הסרד צם חס '%" 8 5501 = 5501 ( (60006)550א5. חס = 5ז 56% = |פהד ג א1 50115 שד צג וקפנס' ("<₪ ד/>6ר3\ 5'זסרס ה < ד> < 1 = 50 = ו ד> ")ו 65056 "5.50 +סא 6ווח\ סס ("=0)?" ,8 ם]\ק5/ ץצ 8 "=-םח >< ד>< ד>") .650056 "<015060= 06סוחא8" ,8 ("1 (\")5.06105ז ).650056 ("ז סט ")5.605 ).650056 ("<ד/><כ ך><2/>") סו 56ה6500 עסו קססן 86 6 ספ 0חם 6 סדנת לימוד 6.0 8\ ()ה0050706ם ץה!קפוכ 5 0-א1 5'הסה ד 15חוד ז65 סאג 855 הס פהחד סד זד6פצאססי ("הס 66 00.0 0768060060 56/6 = חס 56% "818110=\פ" הסקס.חס ("ו" ₪065.05 8 " = ג =חםהצ\ 5הסר דוה אסמת * ז0ם וספ" = 5501 ( (60006)550א5.חס = 5ז 56% אס ואד שחד = דמש 6 ("<א\]> <1/> הסטסההזס1ח1 זסתסט 0 <₪11> ") 65056.6 ("< 051ק= 00 ]15 הזְה03060ק=06סוח?" .8 ₪ \ק 5 וא 86 "=אסז ד ₪הס->") סו 65056 ( "36 \ס==\\\ דאם ד=םק ץד ך(0קא1> :6רתהא") סו 65056 ("<8₪><" 8 ("זסרס ")5.605 8 "=ם(\ | / ") 6 /.56ח0ק65 ("זה )== דאם ד=םק יד דוקא1> : הזסט הס ץ") םוח .65056 ("<8₪><" 8 ("חזסם זבסץ")05ו6ו.5ז 8 ""=ם( | / ") 6 //.56ח0ק65 ("=ם!\ | סזוסחסטה=ם!ואהא אפסספזה=םק יד דוקא1>") סש 56ה6500 ("<" 8 ("10 (5.6!05)"0ז) 6 /\.56ח0ק65 ("<""0)ח1 סכ ""=ם\ | דזואט 5=םק ץד דוקא1>") 65056.6 ("<]0₪=/>") סשו//.56ח6500 5 0חם ()10ח1 הק טפ 55 דכ פד סד ד6פצאססי (" הסח 000.0 0768060060 56/0 = חס 56% "818110=\פכ" הסקס.חס דאםום זה ד5 =דהסקט 501 פ וזעפ'י ",'" ,8 ("6בּ\א0")רזס- .665% .8 "=זסחסטה ז55 5הסרוד\ג ם דהסקט" = 5501 ("זה /)אס")וחזס-].₪6065% .8 "=[חזסם זהּסץ]" 8 .5501 = 5501 ("10זסת ")וס .65% ₪60 8 "= (\א םה םר\\ " 8 5501 = 5501 ((600006)5501אם. חס 5 ה ץצ |קפזס' ("<08000!>/71כ(\ הסטהוהזסזח1 <₪11> ") 65056.6 סח טס 5 50 0חם ("6 00" )ח507 00007 ₪00005% 6856 5060 "508760" 6856 סור 6 "0150601" 6856 ח050700ם ץה!ספוס "6088 קט" 6896 030 נספח 4: דפי שרת פעילים (ספ5א) | 957 6 0896 סז ס- 5 חס וס = 5ז 56% ורס = חס 566 <% <ם | ד/> < |וודו/> <ץ0 80/> הערה: בעת עבודה עם קלט מהמשתמש, יש להקדיש תשומת לב מיוחדת לגרשיים. במקרים מסוימים, לפני שתוכל להשתמש בערכי שדה במשפטי 501, יש לכתוב פונקציה שתטפל בתווי אלה. בתוכנית נספח 4.5 מובא קובצ 855 אך הקובצ מאפשר ליצור ארבעה מסכי ₪471 נפרדיס. הפרמטר 006 שבמחרוזת השאילתה קובע את הפעולה שקוב\ ₪55 יבצע. אובייקטי 450 לדפי ₪57 מספר סוגי אובייקטיס, שניתן לגשת אליהס מקוד 5006. בפרק זה הצגנו כבר מספר דוגמאות לשימוש באובייקטים מסוג 56ח₪6500 (תגובה) ו-ז567\6 (שרת). בסעיף זה נחקור את השימוש בסוגי האובייקטיס אלה ביותר פירוט ונציג דוגמאות לשימוש בהם. האובייקטיס שבהס תומכת 55 הם: + 565500 (הפעלה) ** | 6500056 (תגובה) + ₪0600065% (בקשה) + 50/0 (שרת) <* | חסספסו!ססה (יישום) ניהול אבטחה בעזרת אובייקט חסו5655 קודם לכן כבר ציינו כי 115 כולל יכולות מסוימות שמאפשרות ליישומי 850 לשמור נתוניס מסוימיס במעבר בין דפיס. תוכל למשל להציג טופס שבו המשתמש יתבקש לבחור מדינה מתוך רשימה, ויעביר את הערך שנבחר לדף 55. דף 455 יוכל לאחסן את הערך בשרת, באופן שיאפשר לדפים אחרים גישה אליו. פעולות כאלו מבוצעות על ידי שימוש במשתני הפעלה (81180|65/ ח0ו5655). ההצהרה על משתני ההפעלה והגישה אליהס מתבצעות כמו הפעולות המקבילות באוסף. כדי ליצור משתנה הפעלה יש להגדיר שס וערך בלבד: "50005 60אוח!\"= ("ץ חח טס")ח0ו5655 8 סדנת לימוד 6.0 8\ אחד השימושיס השכיחים ביותר במשתני הפעלה הוא בפעולות אבטחה. כאשר אתה מאחסן מסד נתוניס ב-89//, סביר להניח שאינך מעוניין שכל משתמש אקראי יוכל לבצע בו שינויים. ייתכן אף שתרצה להגביל את הגישה באופן שיאפשר רק לאנשיס מסוימיס להציג נתונים מסוימים. הפעולה הטבעית ביותר להוספת אבטחה לאתר, תהיה הצגת דף כניסה (2886 חוףס)6) למערכת, ורק משתמשים מורשים יוכלו לעבור אותו ולהיכנס לאתר. דף הכניסה יוכל להיות דף |אדת פשוט, ובו שדות להונת שס משתמש וסיסמה. הטופס יעביר את הנתונים שיוזנו לקוב\ 850, שיאמת את השס והסיסמה. אך גם אס תוסיף לאתר דף כניסה כזה, כיצד תמנע ממשתמשים לעקוף אותו על-ידי הזנת כתובת! תוכל לעשות זאת על ידי שימוש במשתני הפעלה. נניח שיש לך קוב 455 בשס ק5ג. 52081 שאותו אתה מעוניין לאבטח. תוכל להוסיף בראש הדף בדיקת 1 פשוטה שתוודא אס במשתנה הפעלה מסויס הוצב הערך הרצול: %> הסחך ""= ("6ר0507\8")חסו5655 +[ "<8>!חו 8060ס! +סח 6זבּ טסץ" סו 650056 50056.0 + 0חם ("6רח5071\3\" )5655100 .8 " ,6וחסס|ס//" שו .650056 <% פקודת 1 תבדוק תוכן משתנה הפעלה בשס 05678706 ואס המשתנה ריק, היא תסייס את העברת התגובה מהשרת. כלומר, התוכן בקובא ק5ה. ד0₪ק=₪ שמוצג לאחר פקודת ]], יוצג לפני משתמשיס שהציבו ערך כלשהו במשתנה ההפעלה 8וח88ז056\ בלבד. טיפ: כדי לאבטח מספר דפי 60/\, כדאי שתבצע את פעולת האבטחה על ידי שימוש בקובץ 086ש6ח1. אופן פעולה כזה יקל עליך את תחזוקת תוכנית האבטחה. לאימות שמות המשתמשים והסיסמאות ולהצבת ערך במשתנה ההפעלה 6וחִ0567\88\ יש להיעזר בקוד 55. קטע הקוד הרלוונטי, המוצג בתוכנית נספח 4.6, יאמת את הנתוניס שיתקבלו מטופס הכניסה, ואס המשתמש הזין סיסמה תקינה, הוא יציב ערך במשתנה 6 נספח 4: דפי שרת פעילים (ספ5א) | 959 תוכנית נספח 4.6: ק0555.45א656 - אימות זהות משתמשים מול מסד נתונים >% ח6 וחוס 5 וחוס 1\36א5066 החוכ )5666 חחוס = |פִה1ה/\ 555510 אה |6' ""= ("05071\86\")חסו5055 |אחס- שרד ואס סמסש\55ק סאה =וה ספ זםס' ( "0566" )רתס .6065 = 5666\36 ("55\/00ה טס" )רחסה .60656 = /0א66ת56 5 106% סד אאעד5א אשרוד 6אזר דצאה אש דאם ד'יאפנפ צפהד ;זי "| הח 01|" 56.601760%חה6500 הסט "" = 56060686 זז 55 דכ שרוד אז סאס//55הק הפפ א6ה6' (" 60 08.60 )07686006 56/0 = חס 56% "סח 50600 6:\08%= מכ ; (טסוח. *) זסצוזכ 460655 50סזסו]= וסטוום" הסקס. חס "" .8 06ח500660\3 .8 "=6רח0507\3\ םרשא 5% [ז56(\ סח * ד60ם |פ" = .5501 (60000)55001אם. חס = 5 56% 5 06| סד אאט דא אשד 55הפה דה אז ד'יא=חה צפוד ;זי הסחד 5.50 ץז 6 6 "הסח חוס!" 60606 650056 0 65 067% סד אאטז5א אפחד ה6זגוז ד'אפפספ סמס/\55מק ;זי הסחד (4\א1(0856)50066 <> (("6זסצ/855ק")05ו16-.0356)15\ ]1 6 6 "הסח חוסס!" 60606 650056 + 0חם 6 6 = |18ה/\ א555510 ד55 - !ס1ןה/\ 15 סמס//55אקי 606 50= ( ")565510 = ₪0 סד 0% 60' "850.+0כ6ז" 601766%. 0500056 %< 0 סדנת לימוד 6.0 8\ קטע הקוד בתוכנית נספח 4.6 משתמש בפקודה 56.₪60]163ח₪6500 שמפנה את דפדפו המשתמש לכתובת 081 אחרת. אם יוזן שילוב לא חוקי של שם וסיסמה, המשתמש יוחזר לדף הכניסה. לפעמיס תרצה לשלב בדף מונה שיעביר התראה למנהל המערכת, אס משתמש יבצע מספר נסיונות כניסה שעובר מספר שקבעת. ב אזהרה: לפעולות האבטחה שתוארו ניתן להתייחס כפעולות אבטחה ברמת היישום ( 5660 |1648 הספסוומְקה). פעולות אלו אינן מספקות אבטחה ברמת הרשת (/50001 |8ש6!-אזסשססא). במצב כזה, כדי לזהות סיסמאות המועברות לשרת משתמשים יכולים להשתמש ברכיבי חומרה מיוחדים להאזנה לתמסורת המועברת לשרת ספצש\ וממנו, כמו בהאזנה לקווי טלפון. כדי למנוע זאת, שקול שימוש בפרוטוקול פקאח. משוס שהדפדפן פועל על בסיס העברת בקשות ותגובות, המשתמש אינו נדרש לקייס תקשורת רציפה עס שרת ס6/\. לכן לא תמיד השרת יכול לוהות מצבי ניתוק תקשורת, כך שאם חלף משך זמן מסויס מאז סיוס הפעולה האחרונה, כדאי להפסיק את ההפעלה. את משך הזמן תוכל להגדיר במאפיין +ס6חזוד של אובייקט חסו5055 : 0 = +60חחו ד.ח0ו5655 שורת הקוד תציב את הערך 60 (בדקות) במאפיין זוספוחוד של אובייקט חסו5655. הצבת הערך תגרוס לכך שאס תחלופנה 60 דקות ללא פעולה, השרת יסיים את ההפעלה המקשרת אותו למשתמש, תוך השמדת משתני ההפעלה השייכים להפעלה. תוכל גם לסיים הפעלה באופן מכוון על ידי השיטה ח00ח188, כמו בדוגמה הבאה: החסה 56550 שליטה בפלט באמצעות אובייקט 6 האובייקט 56ח₪6500 הוא אובייקט מועיל נוסף ב-850. קודס התייחסנו לפקודה 8 המשמשת להעברת 1אז₪3 וטקסט מסוגיס אחרים, חזרה לדפדפן. הפקודה 4652056.//11%6 ניתן לבנות מחרוזצת שתועבר בפקודת 6וז//.56ח₪6500 תוך שימוש באופרטור השרשור 8, כמתואר בדוגמה הבאה: %> ("<8ם>" 8 ("10הם5(\")חסו5655 8 " ,סוו46") ססוז/).56חהסס65 <% נספח 4: דפי שרת פעילים (ק5א) | 961 הערה: ניתן גם להשתמש בתגי קיצור של 5605 ובתו השווה (=) כדי להחזיר ערך משתנה לדפדפן, כפי שהדבר נעשה בדוגמה הבאה: <8> <% ("0)"055₪10ה0ו5655= %> ,סוו6 אני מעדיף את השימוש בפקודה 56.//6חס₪650, אך עדיף להשתמש בתחביר המקוצר, אם יש לצרף ערך יחיד לקבצי ווזדו₪. בנוסף לכתיבת קוד |₪11, הפקודה 56.0/%66ח₪6500 יכולה לשמש גם ליצירת 50708 שיפעלו ביישוס הלקוח, תוך עבודה מהשרת. לדוגמה, נתייחס לקטע הבא : %> "6|סהוז/ 57 חה 5 פוחד" = 8חו550 (1 8/0011 "<0ו567/ =6הַבּטחַח3 | דק561>" 8 + ה6פע) .65056 ( פע 6 (34)זח6 8 0חו7ז55 8 (34)זח6 8 " א0 1!50") שז//.56ח6500 ( +1ו6פע 8 "< ד5010/>") 65056.6 %< קטע הקוד מחולל פקודות %ק%85600 שתבוצענה על ידי הדפדפן. פקודות 7-6 תתבצענה בשרת ותחזרנה לדפדפן את תגי <זק50₪1> ואת התוכן התחוס ביניהן. כלומר ניתן להשתמש בקוד בדפי 450 כדי לחולל קוד לדפדפן. אס המשפט נראה לא מובן, הקלד קוד מקור וּה, וצפה בתוצאה באמצעות דפדפן. כדאי שתשים לב לאופן הטיפול בתווי גרש, בקוד הלקוח, המבוצע כאילו הזנת אותו ידנית. אחד השימושים ב-5676 לקוח המחולל על ידי השרת הוא לשליטה על אובייקטי 66% המוטבעיס בדפי ס6/\. לדוגמה, ייתכן שדף 455 יכיל תג <ז08(50> של תיבת רשימה או פקד אחר, ובנוסף, פקודות המוסיפות להס פריטי מידע ספציפי. אובייקט 86520756 ושיטות אחרות בדוגמה שעסקה בנושא אבטחה, למדת על שתי שיטות נוספות של אובייקט 56ח₪6500 : 6% ו-6חם. השיטה 6ח= משמשת לסיים את העברת התגובה הנוכחית ללקוח, כמו בדוגמה הבאה: <1ה/> [566 ||וא\ זס0פוסזם 6 | ד 506 15 6זסו] <11]> <% 0ח46500756.5 96> <1/> [8וח% 566 וסעסח |ווצ\ זספאוסזם 6 +טם <11]> השיטה )8601760 משמשת כדי לבקש מהדפדפן לעבור לכתובת 081 אחרת : <% "65.60 068 ששח 60 631!550. ושעו / :קה" 05056.0 9%> שורת הקוד פועלת רק אס לא הוחזר לדפדפן קוד |אז₪ כלשהו, כלומר ששימוש בפקודת ₪601766%. 6500056 לאחר פקודת 6טוז/\.56ח₪6500 יגרוס לשגיאה. 2 סדנת לימוד 6.0 8\ 65 הוא אחד המאפיינים של אובייקט 56ח6500ח. בוודאי ידוע לך שדפדפן מאחסן באופן ומני בדיסק כל דבר שהוא קורא מה-65/\. אוסף הקבצים הזמניים הוה מכונה מטמון (08606). יש סוגי קבצים כדוגמת קבצי תמונה, שמתאימים לאחסון במטמון ואילו סוגי קבציס אחרים (כגון קבציס הקשורים בניהול כניסת משתמשים למערכת) שאינס מתאימים לאחסון במטמון. במאפיין 65זוקא= יש להציב את מספר הדקות שאתה מעוניין שקבצים יהיו מאוחסניס במטמון. לדפיסם הקשורים באבטחת המערכת סביר להניח שתרצה להציב ערך 0 במאפיין הוה כבדוגמה הבאה: 0 = 01765א₪650056.5 אובייקט 86500056 משמש גס להעברת עוגיות (6006/65) לדפדפו המשתמש. העברת העוגיות דומה להעברת משתני הפעלה, אך הן מאוחסנות במחשב המשתמש (15 אף משתמש ב-6006/65 לניהול המעקב אחר מזהי הפעלה). 000665 הס אמצעי נוח לשמירת הגדרות אישיות בדיסק המשתמש. אך לא תמיד ניתן להיות בטוחיס שהן תמצאנה שם, משוס שמשתמשים רואיס בהן הפרת פרטיות ומנטרליס אותן. משלוח 8 לדפדפן משתמש מבוצע על ידי הצבת ערך במשתנה הפעלה, באופן הבא : 4 = ("56.6008165)"]1/00015ח6500 באוסף 6006165 דומה משתמשים עם אובייקט ז₪60065 לאחזור ערכי 6006165. אחזור נתונים באמצעות אובייקט 3460₪65% אובייקט 8600658 מאפשר לקוד 55 לגשת לכל הנתוניס הקשורים בבקשות המתקבלות מהדפדפן. כפי שידוע לך ניתן להיעזר באובייקט ₪6006% כדי לאחזר ערך פרמטר בכתובת !081 על ידי שימוש בשס הפרמטר בשילוב עס מאפיין 0חו5₪ץזפטס של האובייקט. בדומה לאוספים אחרים, גם ב-8ַחו5/ז6ט יש מאפייני +חטס60 ו-אססחז המאפשריס לעבור על כל הפריטיס באוסף ולאתחזר את ערכיהם: ח וחוס .65.65 60 1 = הח זס= 8 " = 6טן3/\" 8 ח 8 " זסזסוחהזהק") שו 56ח6500 ("<0>" .8 (ח)00ו₪60065.0067/57 6% לקבלת נתוניס מטפסי ‏ ואד תוכל להיעזר גם באוסף וחזס] של אובייקט ₪60068. לדוגמה, אס יש בטופס בשדה בשס 858706 |06, תוכל להציג את ערך השדה שהועבר לשרת על ידי שימוש בשורת הקוד הבאה: ("6ח3\ז35 אס" )רת ס- .60650 8 " 660 טסצ" ).650056 למרבית הנתוניס באובייקט ₪60065% ניתן לגשת על ידי שימוש באוספים. ניתן להשתמש בלולאת ח86ם...זס] כדי להציג את רשימת כל האובייקטיס באוסף. תוכנית נספח 4.7 תציג את כל המידע שבאוסף ₪6065%.507/67\/380|65. נספח 4: דפי שרת פעילים (ק5א) | 963 תוכנית נספח 4.7: ₪5.452 |138\/\ - אוסף 65וסוז4ּ/\זסעו50 >9%68 | \]\6\26="/ 517" %6< < |וד> <ס\גשה/><=ם | ד/>60!!660005<= וד1ך> <פגשו> <ץ₪00> <חר> <3780!65>/71/\ 7ז507/6< זז ה66"= חפוו3 1ר]|> >% 5.5 חו וחסטו ה86= זס= %< >5[ 0 < >% =100% < >/ 5 01 < = > % = 60650.5 8 0165) (6 < >< >% א %< <ץ00/> < |ודר]/> צור קוב 857 חדש בשרת ס6\\ ושמור אותו בשס 55.45 |₪148/\. העתק אליו את הקוד בתוכנית נספת 4.6. ז56110 זה יציג את רשימת כל משתני השרת, כמו זו הנראית בתרשיס נספת 4.6. הערה: ניתן להוסיף לולאות ח86ם...זס] נוספות לקוד בתוכנית נספח 4.2 להצגת תוכן אוספים אחרים כגון החזסח.ז6065ח. אפשרות זו יכולה לסייע בניפוי שגיאות. |< |םן= = < | קס] | 65סעב] - 80 שסש 08ם 6 ו ₪ 3 | ש 4 4 9 | ₪ 3 9 - = -> | ו |+ |התזת. ד | פ 65% 0 יס סוי ו₪ ו 350 860005ו!60/=.]אח 0/0 ןו , וא/ו ,1ו309/0רו= ד > דדו רחס 68 !ככ ,5-6681רח. סח//חס 68 ווסקה 5-65 16 | דק665 קדדו 6 -600>|=אסוד6=או 60 קדדו פוחסוו5כ= ד5 0 = דדו (95 פאוססחו/\ :4.01 =|5 ;88 קרס) 0 8/4|וו2סו/\|= דא5 ה השפ >דדו ,כו2ס=6או0ס6א= דק665 קדו סוחס שא | | | | | פס [5) תרשים נספח 4.6: משתנה ז465% 558 קדזה מאפשר לזהות את סוג דפדפן המשתמש 4 סדנת לימוד 6.0 8\ אובייקט 50/61 השימוש העיקרי באובייקט ז6אז56 הוא ליצירת אובייקטים שיפעלו בשרת טפ/ו, כך שיישומי 450 יוכלו לגשת אליהס. כבר למדת ליצור אובייקט ח6600חח60 ספה : (" 08.06 )086006 5/0 = חס 56% ניתן ליצור אובייקט ממחלקה שתהדר לקוב 011 6%עו60, פעולה שתתואר בהמשך. כתחליף לשימוש בפקודה ‏ 567/8/.0/68%600[66 תוכל להטביע בקוב> 855 תג <ד08(50>, כשהאפשרות דהא(וח מוגדרת ל-ז507/8 : < 0501 > < "660 הח600. 8 0כה"=0610ק ה6=פ1 "זו 56"= דהאום ז560נפ0ס> שני התחבירים ייצרו אובייקט מסוג ח2008.60006600ג בשרת פ6/. אך חשוב לזכור שלא ניתן להשתמש בתגי < 408501 בתוך תגי 56106. אובייקט חסוזבּסו!ככ ו-54. 0841 61 בתחילת הפרק למדת להיעזר במבנה עצ התיקיות לזיהוי יישומי 5ה. יכולת וו חשובה לקישור אירועי 581 ו-0ח5 בקוד התוכנית, עס יישומיס והפעלות. כדי לכתוב קוד לאירועיס יש לאחסן קובצ מיוחד בשס 458. 610841 בספריית הבסיס (שורש) של יישוס 855. הקוב יכיל קוד לטיפול באירועיס אלה, כמתואר בדוגמה הבאה: וח 56550 500 א חחוס ("ה660 חח 8.60 )0768060060 56 = א 56% ("ח0 600 ח60")ח5655!0 56% 50 0חם תוכל להשתמש בקוב> 454 610841 לניהול מונה כניסות לאתר, פתיחה וסגירת קבצים, או כל פעולה אחרת האמורה להתבצע בעת פתיחה או סגירת יישוס. 1 אסעו16 ב-450 קוד +10ז856/\ בדפי 50 מאפשר לבצע פעולות רבות, אך 856% חסרה כמה מיכולות 86 |808ו/, וכן את יכולות סביבת הפיתות המשולבת - םכ1 (%6078%60ה1 +חסוהחסזוטח= %הסוחקסו8ט6כ) שבהן אתה רגיל להשתמש. אך על ידי שימוש בפונקציה תוכל להגדיר מופעי ₪11 606% בדפי 50. תחילה יש ליצור את ₪11 6%ע460 בסביבת הפיתוח הרגילה של 8856 |טפוש ולנסותו. אחר יש להתקין ולרשוס את קוב 11ם בשרת 60/\, כדי לאפשר שימוש בו בדפי ק5ה. יצירת קבצי 11ס תוארה בפרק 16, מחלקות: שימוש חוזר ברכיבים. ראה, "יצירת קבצי ו א ח6", פרק 6. נספח 4: דפי שרת פעילים (ק5) | 965 לאחר שתיצור את קובצ ₪11 466% תוכל להתקין אותו בשרת 65/\. אס כבר התקנת את קבצי שו טחט₪ של 8856 |1508\ בשרת, כל שיש לעשות כדי להתקין את קובצ 1ופ, הוא להעתיק אותו לשרת ולהפעיל את התוכנית 565/₪32א, כדי לרשוס אותו ברישוס. לאחר שתתקין ותרשוס את קוב 11פ, תוכל ליצור אובייקט שישתייך למחלקה שהוגדרה בקובצ 11ס, על ידי שימוש בפקודה 0768%600(6₪.ז6/ז60 : ("6!355/ץ].601[סזק ו" )0768060066 57/6 = 6|טהחהּ/\[טס 56% לאחר שתיצור את האובייקט, תוכל לגשת אליו מדף 455 הנוכחי. אס תרצה להעביר את האובייקט לדף אחר, תוכל לעשות ואת על ידי אחסונו אותו במשתנה הפעלה, כפי שנעשה בדוגמת שימוש בקוב> 454. 61084 שהובאה בסעיף הקודס. השימוש בקבצי ₪11 606% בדפי 55 הוא פשוט מאוד, כל שיהיה עליך לעשות הוא לבצע פניות לשיטות ולמאפייניס באמצעות קוד 85606/: ("הורח5 )8 56 \6כ). וט הפס .650056 זכור שכל המשתניס המשמשים בקוד 85676 הס מסוג %חהּוזגּ/, כך שיש לנהוג בוהירות בעת ההצהרה על הפונקציות שתיכללנה בקבצי 11ם. האופניס שבהס יפעלו מערכים וסוגי אובייקטים נוספיס ב-85610/ עשויים להיות שוניס מאופני פעולתס ב- 6 |808ו/. אני ממליצ להגדיר פונקציות ניסוי קטנות בקובצ 11ם, שתצגנה את מגבלות 856106 בתחוסם זה. פרויקט יישום 115 חססתסו!מסא 115 (יישוס 115) הוא סוג פרויקט חדש ב- 88516 |508ו/\. חסחספסו|סקה 115 הוא סוג מיוחד של 11 6%ע460, הפועל בשרת ס6/\ ומעבד בקשות שמתקבלות מיישומי לקוח ומחזיר קוד 191 לדפדפן המשתמש. אס אופן הפעולה נשמע לך דומה לאופן הפעולה של דפי 55, צדקת. יישומי 5חסחפסו|פקה 115 מאפשרים לבצע גישה לאובייקטיס רביס אשר 452 מאפשר לגשת אליהס (6/ז56, 6500056ם, 0600651 ועוד), ויישומיס אלה גס יימתארתיסיי לעיתים בדפי ק45. למעשה אופן הפעולה דומה מאוד לאופן הקריאה לקבצי ₪11 א6שו860 שמיושס מתוך דפי 850. ההבדל הוא שיישוס 115 נועד מראש לעבודה ב-60/\. .11 866% מכיל מודול מחלקה רגיל של 8856 |8טפו/, ו- חסוסה6ו!קקה 115 מכיל 6961355עצ (מחלקת ספו). 6 סדנת לימוד 6.0 8\ יצירת יישום 115 כדי להתתיל ליצור יישוס 115 הפעל את 88566 |508ו/\ ובחר חססחסוופקה 115 מרשימת סוגי הפרויקטים. כך תיצור פרויקט חדש שיכיל אובייקט יחיד בשס 606!8551)\ כמתואר בתרשים נספת 4.7. וה - וספןסזק (6001[סיוק) 0[66%1ו ל29- = 5זפחטופסם 5%>---] יוו תרשים נספח 4.7: יישום 115 הוא סוג קובץ 11ם 460/6% מיוחד שפועל בשרת 60/\ 1 אינו טופס או מודול מחלקה סטנדרטי, הוא 6514006 6%עש6 (כלי לעיצוב 6%ע160). 65100615 6%ע60 מסייעיס ביצירת סוגיס מיוחדיס של רכיבי 466% והס מהוויס חלק אינטגרלי של סביבת הפיתוח ב- 8856 |1508/. בעת עבודה עס יישומיס מסוג חס0פסו|סקה 115, ז0ח0ו265 0|855ס6/\ מבצע פעולות ייבסיסיותיי רבות הקשורות בעבודה עס |אזה. למעשה כאשר תהדר את קוב 11ם שיכיל את היישוס, רוב הקוד ישמש ליידיבוריי עם 11כ 6!855ס6/צ. משוס שהמבנה בסיסי של ה-פ6\\ הוא מבנה מבוסס מסמכים (88560 %חסוחטססכ), פעולתו התקינה של יישום 115 תלויה בכך שכל קובצ יימצא במקוס בו הוא אמור להיות. על כן יש להקפיד לשמור את הפרויקט, בטרס תבצע עליו פעולות כלשהן. כדאי שתגדיר ליישוס תיקיה נפרדת ושתשמור בה את קבצי הפרויקט. כמו עס טפסים, גם בעבודה עס 6800!855/\ מוצעות תצוגת קוד (שסוצ 0006) ותצוגת עיצוב (ששו/ חף!65). פתח את תצוגת העיצוב על ידי לחיצה ימנית על 600|855/ ובחירה בפקודה 00[166% שסו/. יוצג המסך הנראה בתרשים נספת 4.8. בתרשיס נספח 4.8 ניתן לראות ש-600!855/\ מכיל 6016605/\ (פריטי ט6/)). קיימיס שני סוגי 5וח601%6/\: + 601060/\ 806!קוח6ד !ואד (תבניות קבצי |ואז3) - וחסזט6/\ המבוסס על תבנית קובצ !ואד קיימת. + 601000/\ 05000 - הח6ז1ס6/\ שמוגדר כולו בקוד. נספח 4: דפי שרת פעילים (ס5א) | 967 |< |ם] =. [355]-600 /\] 600:]35%1 ש\ - 1וס6ןסז:] .א ₪]< | | | פב !סו סח ד 1 ך4 [ = | | !ספ /א\ )םחש ד 1 ד 1 3 )של טסופו | ) 6015 הח0ז5וו). 45% ו תרשים נספח 4.8: 600!355/\ יכול להכיל שני סוג' 5וח6ז1 ט6/) (פריטי פס/\) מהסם 6010605/\? פוח6ש1ס6/\ הם קטעי קוד (וּכור שהם בקבצים מסוג 11 א6ע60) והיות שהם יישומיס המיועדיס לפעול בשרת הס חסרי ממשק חזותי כלשהו. 5ח6ז601/\ מהוויס אמצעי קישור בין אירועי תוכניות 8856 |1508/ לבין העולס מבוסס המסמכים של ה-60/ש. הפעלת יישום 115 לפני שנמשיך, כדאי שנעיין בקוד 800!855//. לחצ לחיצה ימנית על שס המחלקה בחלון זסזס|קאם 606[סזק ובחר את הפקודה 0006 שפו\ מהתפריט שיוצג. יוצג קוד ברירת המחדל של אירוע +59 של המחלקה 606!855/ו, שמוצג בתרשים נספח 4.9. |< |ם]. ‏ [₪006] 60213551/\ - 6011ןסזכ ₪ | - 5 | - טו] () 50825 61883מ6ח כעום פסהטבעק צַמבעסם 235 500065 בע (2%)34ם0 = 6סכגו50 עפפו 6םס סס צ1ק6ע 166תח' שבמסקפפת מסגח "<עדת>" שסבמח. "<0%ע20>" 6סבמח. 6 שססגו50 6 "181ע2" 6 שססגו30 6 "=282 65מ02+><21>" 6ס1מח. "<2866>/1025<>/11 6ם51ע5683 618331'3מ85<" 1 סתסטם 8ע₪58 526 מ1 ₪38560ע₪ בח סכמסקכסע 15ם7<ק>" שסגמח. "<200%/>" 6ס1מח. "<ד1/>" 6ס1מח. מפנח במם תרשים נספח 4.9: אירוע 59 של המחלקה 800!855/\ מגדיר מסך |אז התחלתי תוך שימוש באובייקט 6500056 8 סדנת לימוד 6.0 8\ הפעל את הפרויקט באמצעות לחיצה על לחצן 54 או על ידי הקשה על 5=. וזכור שמשוס שבדומה ליישומי 5ג, גם יישומי 15 הם יישומים מבוססי ט6/ו, יידרש שרת 0 )\ פעיל כדי שתוכל להריצ אותס או לנפות מהסם שגיאות. הערה: הדוגמאות שתוצגנה בפרק נוצרו ב- 8856 |8טפו\ תוך שימוש ב- 60/\ |הּחספזסק וב- 56706 ח0ו5860ח8זד (שנכלל ב- זסז56 60/\ |8חס5זפק) שפעלו על אותו מחשב. בכל פעס שתפעיל את יישוס 115 בסביבת הפיתוח המשולבת של 8856 |508/\, התוכנה תיצור קובץ 455 ותנסה לפתוח אותו באמצעות זסזס|קא= 066ז06ח1. בפעם הראשונה שתפעיל יישוס 115 חדש, תוצג הודעה כמו וו המוצגת בתרשים נספח 4.10, שתבקש להזין שס תיקיה מדומה. |א. 1 |הטזזוצ 1636 גוס ]ויו 3550013000 שם ||ואו וספ |בגאזוי סחזואוסווס] פחד :עזסז60זום 4 = 1 0'5ח6ז5ע5 | סופת | [308) תרשים נספח 4.10: 8856 |508ו/ יוצרת באופן אוטומטי תיקיה מדומה וקובץ 452 שישמשו לאירוח 600!855/\ כאשר היישום ירוצ, יוצג מסך !א שנוצר באירוע 58 של מחלקת 600!855/. אס תעיין בתיקיית הפרויקט, ייתכן שתבחין כי ₪856 |808ו/\ יצרה קובצ 855 שייצור מופע של מחלקת 600!855/. סביר להניח שכעת אופן הפעולה של יישוס 115 מובן לך מעט יותר - הוא דומה לאופן הפעולה של קובצ 55ג, אך כל הגישה ל-69/\ מתבצעת על ידי שימוש בסביבת 8856 |01508. בסעיף הבא תלמד מעט יותר על יכולות מחלקת 5, באמצעות הוספת 6016605/\ למחלקת 606!855/\. לעת עתה יהיה עליך לעצור את פעולת הפרויקט ולשוב לסביבת הפיתות של 8516 |1508/\. נספח 4: דפי שרת פעילים (ק5) | 969 מופעי 606|!355/\ פתח שוב את חלון 6006 ועיין ברשימת האירועיס הנתמכים על ידי מחלקת 6001855\. הוסף לכל שגרת אירוע שורת קוד בנוסחת 6והחשח6/ם >חוזק.טַטט6כ והרצ שוב את הפרויקט. שיס לב לרצף האירועים הבא : 1 כאשר תתחיל ליצור את הפרויקט, יופעל הדפדפן. קובץ 455 שייטעו לדפדפן יכיל פקודת ‏ 567/67.0768%600[66, שתיצור מופע של המחלקה 6006!855/\ ותפעיל את אירוע 26|הוח]. 2 קוב> 455 יעביר למחלקת 600|855/\ בקשה לקבלת דף 60/\, שתגרוס להפעלת אירוע 60065%חו60. 3 | אירוע 509171 6001855 יופעל (בדומה לאופן בו תופעל שגרת האירוע 1080 חחזסת) ויגרוס למשלוח קוד !ד חזרה לדפדפן. 4 השלמת משלות קוד ]341% לדפדפן תהווה את השלמת מילוי הבקשה, מצב שיגרוס להפעלת אירוע 0860065%חם. 5 אירוע 6ופחווחז6ד יופעל, ויגרוס להריסת מופע המחלקה 606!855\\. ייתכן שפעולה מספר 5 גרמה לך לתמוה מדוע מופע המחלקה 6001855/\ נהרס מייד לאחר יצירתו: התשובה היא משוסם שמאפיין זַחסְחִָ8ח5:800118 של אובייקט 600|355/\ הוגדר 5086סו\6או. הגדרה כזו גורמת לכך שאס הגדרת משתנה מקומי או מאפיין באירוע 50811 606|855/\, ההגדרה לא תהיה נגישה במהלך הקריאות הבאות לאובייקט. אס מאפיין 6001855/\ מוגדר 5%8066ח1ח6181ח6\ו, כל הקריאות לאובייקט 606!855/\ שמקורן בדף 450 מתבצעות לאותו מופע האובייקט, ותוכל לאחסן נתוני מצב. אך בפעולה זו טמונה התייחסות לנושא בסיסי יותר מסתם הגדרת מאפיין. הנושא הוא יותר בחזקת פילוסופיה של כיצד לכתוב יישומיס. האופי הבלתי מקושר של ה-69/\ מתאיסם יותר לביצוע עיבוד מבוסס טרנזקציות מאשר לעיבוד מבוסס מצב. בעבודה עס טרנזקציות, אינך צריך להתייחס לתקשורת עם מופע האובייקט, מפני שכל המידע הדרוש להשלמת הטרנזקציה מועבר בכל קריאה לאובייקט. מרביתנו נוהגיס לכתוב קוד שתלוי בכך שהאובייקט במצב מסויס. למשל, תוכל לכתוב קוד שיגדיר מספר מאפייני אובייקט ואחר יבצע קריאה לשיטה שתפעל על האובייקט תוך שימוש במאפיינים שהגדרת. 6 = סשחטססס).א "הז 300 6והה8ח5060" = זס00|סרהטססס.א "00 = לזחטסוח.א ץשחסוו5ססס.א בקטע קוד זה, א מייצג מופע של רכיב 860/6% המטפל בפונקציות הקשורות בניהול חשבונות בנק. השורה האחרונה בקוד היא קריאה לשיטה עפ6חסן%ו05ק6כ (הפקד כסף), שסביר להניח שנדרשיס לה שאר נתוני החשבון כדי שהיא תוכל לפעול. קטע קוד וה 0 סדנת לימוד 6.0 8\ מתבסס על אפשרות לגישה חוזרת לאובייקט. ניתן לכתוב את קטע הקוד גס בשורה אחת שבה מועברים לאובייקט כל הנתוניס הדרושים: ("%20.00" ,"60% 30 6וח8 506" ,123456)ץ6חסוזופסקסכ.א הדוגמה שהובאה פשוטה מאוד, אך נסה לחשוב רגע על דוגמה מורכבת שבמהלכה מתבצעות קריאות חוזרות ונשנות לפונקציות האובייקט. בדוגמה הראשונה יש גישה למופע אובייקט א, אך בדוגמה השנייה אין משמעות לנושא הגישה למופע מסוים. הדוגמה השנייה אומנם עושה רושם שלמימושה יש להשקיע יותר מאמצ, אך היא ניתנת למימוש ללא תלות במצב המערכת. ניתן להשתמש בכלים כגון ח58600ח8זדך 0 לאגור את קישורי האובייקט ולייצור יישומים מדורגים. וח601%6/\ של תבניות ווודו] כדי ללמוד על אופן הפעולה של 8065|קח6ד |!ואז (תבניות קבצי וואזה), ניצור תחילה תבנית פשוטה של קובצ וואד₪ בשם |אדח. זפםד: < |וד> <ץ₪00> <0806>/71 505% 8 5 פוח ד<11]> <8ם> <> !50/6 60 אהו 1 < וח ס6.6זסת 506 טש /:קטה=-=חר ה> <ו00650000%.0= 56 1₪6> <ץצ800/> < |וחדר]/> הקוב אזח. זפפד נראה כקובצ חסר ייחוד עד שתייבא אותו לפרויקט. כדי לייבא, פתח את חלון העיצוב של 606!8551//, לחצ לחיצה ימנית על המחלקה 800!8551/\ ובחר מהתפריט שיוצג את הפקודה 3+6!קוח6ד !ו דו] 60. בחר את הפריט ואדת. דפספד מתיבת הדו-שיח 6!ו=. חלון עיצוב ייראה כמו בתרשים נספח 4.11. הערה: כדאי לייבא את קובץ התבנית לפרויקט, מתיקיה שאינה תיקיית הפרויקט כי 6 ו|ופטפוש שומרת באופן אוטומטי עותק של קובץ התבנית בתיקיית הפרויקט. לאחר ייבוא קובץ !וז הוא הופך ל-ח166ט6/צ באופן אוטומטי. נספח 4: דפי שרת פעילים (ספ5א) | 971 הגדרת אירוע קובץ תבנית בחלונית הימנית של חלון העיצוב תוצג רשימת כל תגי | שבקובצ התבנית, שניתן לקשר לאלרועי 88516 |1508/. וח6016/\ החדש שיצרת קיבל את השס 8061|כח6ד. [<זם] - | [ 0 ס0] 850 [הטפו/ /050ז4:0 - 41ספןסז ,ל קפ יוסח 830-105 00 סבו זפ הגו הפכ 6פחזפ= 006 אפ 0 6 - 5 א ₪ מ 8 ו ₪|ז-ם ₪ |=|: || || | חן 3 הסוסה 0% 80> = <6חסא> | אטח אס חס ספ 36קהז6 ד .41 1 1-65 7 5947 = ספפחוחמ5ס₪ > = <שחס> ספ ופוח ד | 5947 = 86500005 1%1> = <פחס> סמפוים וחס!/90/ו\ החס)ום). 45% 5947 = 06500550 1/0> = <סתסו> חפוס 5947 = 065000650 1/0> = תסו ופט סו "01 > = תסו שחו חווספער 65 תרשים נספח 4.11: לאחר הוספת 601%66%/\ ל-600|355/\ תוצג רשימת כל התגים בתבנית שניתן לקשר לאירועי 88516 |8ט5ו\ לשס השוואה נתייחס למה שמתרחש כאשר מוסיפים פקד א80)א6ד לטופס רגיל של 6 |6טפוצ. במצב כזה אתה ממקס אובייקט (הפקד) באובייקט מכיל (זפחו9חס6 %) - הטופס. לאחר שתשרטט את הפקד, תוכל לגשת לכל המאפיינים והאירועיס שלו באמצעות חלון 6006 של הטופס. הקשר הקיים בין המחלקה 890!855/\ לאובייקט 1 ד דומה לקשר הקיים בין הטופס לפקד תיבת הטקסט. ההבדל היחיד שקיים בין אירועי תיבת טקסט לאירועי וח6ו1ט6/\, הוא שאירועי הח6016/\ אינס זמיניס מתוך חלון הקוד באופן אוטומטי. תחילה יש לקשר את התגיס המתאימים לאירועי התוכנית. נסה לעשות ואת בתוכנית הדוגמה. היזכר בקישור לאתר חס6.6ז6ח/5006. אוו שהגדרת בקוב> התבנית, כאשר ייבאת את קוב התבנית לפרויקט, הקישור קיבל את השס 1אחו!ז6סץו₪. לחצ לחיצה ימנית על הפריט 1אחווזסקץ ובחר את הפקודה 666חח0ס6 ]ה ההסלפט ספ. כך יוצג בחלון העיצוב אירוע חדש, שגם הוא יקבל את השס 1אחווזסקץת. לחץ לחיצה כפולה על שס האירוע וחלון הקוד ייפתח בקטע קוד האירוע 1אחו!זססץ1] 8061|קוח6ד. אירוע זה יופעל בכל פעס שהמשתמש ילחצ על הקישור. הוסף לאירוע את פקודת ₪6500056.\)166 המוצגת בקטע הקוד הבא : ( )אחו[הסקער] ‏ 3061!קרח6 ד 0 50 סהעווק "<6!>00וח 616660 טסץ <>" סט /).56חה6500 טפ 0חם 2 סדנת לימוד 6.0 8\ הפעל כעת את הפרויקט. לאחר שהדף הראשון ייטען, שנה את שס הקוב\ המוצג בסוף כתובת 081 (השס ההתחלתי יהיה 606|3551.855/ 6601[סזק או שס דומה) לשס קוב התבנית אזה.זפפז והקש על זוסטחם. דף התבנית ייטען. אס תבחר את הפקודה 6זטס5 צוסו), תראה שהקישור כבר אינו מצביע על האתר ה ס0ס.6ז6ח/ו506.צוש\ ולא על אירוע במחלקה 600!855/\. לחץ על הקישור ואם הכל תקין, המיליס 6660ו|6 טסצ 6 תוצגנה בחלון הדפדפן. בכך הדגמנו כיצד ניתן לקשר אחוו6קץח₪ בקובצ ואד לאירוע תוכנית 88516 |1!508/\. משלוח תבנית לדפדפן כברירת מחדל, אירוע 54 של המחלקה 6006|855/\ שולח מספר שורות ואדה לדפדפן. ניתן גס לשלותח תבניות, כדוגמת זו שיצרת זה עתה, על ידי שימוש בשיטה 66 וז \\. פתח את שגרת אירוע +59 של המחלקה 650|855/\ והחלף את שורות הקוד שנכללו בשיגרה כברירת מחדל בשורה באה: 6 6 ד6ס1ז/\. ה | רחש ך. 116 הפעל את היישום, והדבר הראשון שיוצג ביישוס יהיה קובץ תבנית המבוסס על הקוב ואדה. דפםד. שיס לב שהדפדפן אינו מנותב לקובצ אזה. זפפד ובמקומו, קוד ואד שבקוב\ התבנית יועבר באירוע +5087. השיטה 3%6!מח6 ז66וז/\ עשויה להיות כלי מועיל מאוד, כאשר משלביס אותה עם אירוע 0 655 0ז. האירוע יכול לשמש ליצירת קוד 411 באופן דינמי, דומה לזה שמיושס על ידי פקודות 66וז/).56ח₪6500 בקבצי 455. השיטה פועלת על ידי חיפוש אחר תגיס בקובץ התבנית (שדומים מאוד לתגי 411 אך כוללות גם תחילית מיוחדת) ומחליפה אותם בנתוניס שתספק. כדי להמחיש זאת, הצג כעת את קוב התבנית אדה. זפפז (ודא שאתה מציג את העותק שבתיקיית הפרויקט ולא את קובצ התבנית המקורי), הוסף את שורת הקוד שלהלן במקוס כלשהו בקטע ץ800 של הקובצ ושמור את הקוב המעודכן: <0 06 > הסוסה וחזס1ח1 עו < זר 6/\\> שורת הקוד מכילה תג "'מותאם" <7088ץ600/)>. במהלך פעולת השיטה 66 ד ןוא ד סטוז\, בכל פעס שהמחלקה 6001855 נתקלת בתג עס התחילית 6₪/ו, היא מפעילה אירוע 60551809סזק. שםס התווית (פַפטשח) ותוכנה (חסטפוזס+ח1 ץוא) מועבריס לאירוע וניתן לשנותס לפני העברתס לדפדפן. ,50 5 5חהחה 30 ד ,חו57 5 336 ד |3/\ץ0)0ה ז 6655סזק 3061|קוח6 ד פט5 סספּעווק (ח200!68 5 305 ד0ח56 חס ד "60" = שותבּטחבּד זז "<2/> הסוהו סח צו6ח 16ח50 15 6זפו] <>" = 5חח סד + 0חם 50 0חם נספח 4: דפי שרת פעילים (ספא) | 973 ו₪ח601%6//\ מותאם אישית 601660 60500 (וח60166/\ מותאס אישית) הוא הסוג השני של 6010660/\ שאותו ניתן לצרף ל-600|855//. אירועי 6016605/\ ה סלפט6 הס כמו אירועי 86|קחסד ואד 5 וניתן להוסיף להס גם אירועים משלך, שאליהם ניתן לפנות מתוך דפי ס6/ו. אך ב- וח6016)\ וח0ספט6 לא ניתן לשלב תבניות. 6010675/\ כאלה קיימיס רק בקוד שלך, ומתקיימיס| בצורת אוסף שגרות אירוע. ניתן| לקשר פריטים ב- וח6066/\ מסוג !קוחד !וד ל- הח16ט6/\ ותסספט6 על ידי ביצוע מספר פעולות פשוטות: 1. לתצ לחיצה ימנית על 800!855/\ בחלון זסזסו|קאם 666[סזק ובחר את הפקודה וסוצ %, כדי לפתוח את שוספחו//\ 651067 (חלון עיצוב). 2 לח שוב לחיצה ימנית על שס המחלקה ובחר את הפקודה 5%000ט6 400 וח 3 בחר שסם תג 11 ב- (ח60106/\ 806!קוח6ד ואד וקשר אותו ל- וח60106/\ ה0ל65. 4 כתוב קוד עבור האירוע באופן שתואר בסעיף הקודס. כפי שבוודאי הבחנת במהלך ההתייחסות לדוגמאות, השימוש ב-606!85565/\ הוא מעט מורכב יותר מהשימוש בדפי 855 רגילים, אך הס פעיליס בסביבת 8856 |08פו\ ופותחיס מיגוון רחב של אפשרויות חדשות. מכאן... בפרק וה למדת על 55, שהס אמצעי המאפשר ליישס את הידע ב- 8856 |בּטפו\ באינטרנט. מידע על נושאיס אחריס הקשוריס ב-65/\ תוכל למצוא בפרקיס הבאים: > בפרק 14 יצירת פקדי 696% תוכל ללמוד על יצירת פקדי 6%שו8460 הניתניס לשימוש בדפי ט6/\. = בפרק 31 מסמכי 466% תלמד על שיטה חדשה להסבת תוכניות 8856 |ה50ו\ לפעולה בסביבת 60/\. > מידע על נושאיס נוספים הקשוריסם ב-פ6\\ תוכל למצוא בפרק 32 83516 |בּטפו\ ושימושים נוספים באינטרנט. 4 סדנת לימוד 6.0 8\ / תווים באשונים של שם הקובץ (במקרה ובמקור הוא ארוך יותר): הסיבה: כונני תקליטורים במהירות. 4 עובדים עם מנהל התקן שעבד בסביבת 05ס- אבוכים-- נספח 5: התקליטור המצורף | 975 03007 003%ו6 - התקנה יש להתקין תוכנה זו כדי לקרוא ולהדפיס את הפרקים לדוגמה, אליהס ניתן לגשת- באמצעות קטלוג ₪171 (שהתקנתו תוסבר בהמשך). התוכנה גם. מאפשרת חיפוש- ו-%+6%א פעם נוספת כדי לסיים את ההתקנה-- 4 |בסיוס ההתקנה עשויה להופיע על המסך תיבת דו-שיח התנגשות בין גיבסאות- ומייד אחר כך להיעלס. במקומה תופיע על. המסך תיבת הודעה של תוכנית ההתקנה. לחצ על אישור ובתיבת הדו-שיה התנגשות בין גירסאות ששבה להופיע- לחצ על כן, כדי לשמור את-גבסת הקובצ שלך: הוצאת הוד-עמי גאה לבשב על קטלוג ₪171 העושה שימוש בטכנולוגיות אינטרנט- מתקדמות כדי להביא לך את המידע על ספרי המחשבים המקצועייס שלנו בלתחיצת עכבר-- מומלצ לצפייה בעזרת ז6ז0!סאם 66ח607ח1 165050 מגירסה 4 ומעלה: - ->-- לנונט-את-דרכך בקטלוג ולחזצור ולהתרענן בכל נושא בכל בגע: - 6 סדנת לימוד 6.0 8\ 41 -הכנס את התקליטוב לכונן: - -לחצ התחל ובחר הפעלה-- בעזבת לחצן עיוןך סמן את הקובצ 58500.8%8 אשר בתיקיה הבאשית של התקליטוב המצורף-. -4. -לחצ פתת-- -5- -לחצ אישור. 2 | הפעל את הסמל עם הכיתוב קטלוג ספרי מחשבים בהוצאת- קטלוג סַפרי הוד-עמי שעל שולחן העבודה. מחשבים בהוצאת הוד-עמי והביטויים המקובלים ביותב בתתוס זה באנגלית ותרגומם לעברית-- ה -לחצ אישור-- > הקש "506 לכל שאלה שתישאל במהלך ההתקנה (אל תשנה את ספריית בריבת המחדל המוצעת)-- נספח 5: התקליטור המצורף | 977 הפעלה לחצ על התחל ובחר תוכניות, מילון הוד-עמ3, מילון הוד-עמ -- הטיפול המקיף במונתי 5 סז קסו5 )חובק ₪ , + בידי האקדמיה ללשו + הפע | + 4 תוכניות 5 סקז ₪ ' הפעלה | + מילרן הוד-עמי 4 ו + עזרים = . 5ועם עברית 45 עזר הפניה ל- 45-005 45 סייר פויוסטחו/א\. [2ו התשתית.- למילון. היא- סדרת. התקנים. הישראליים ‏ תי 1080 למונתי מחשב, המבוססים על התקנים של ארגון התקינה הבינלאומי 150. מונתים אלה מסומנים- בלוגו של מכון התקניס - כפי שמוסבר במסך העזרה. המילון כולל גם. מונחים- שפובסמו. בעתונות. ובספרות. מתשבים. בעברית, וגס.- מונחים- המקובלים. על ידכ משתמשים (גם אם לפעמים אינס מומלצים, אך מושבשים) ועוד. המילון ענסק.- במונחים המקובליס במידה שהס נמצאיס בשימוש כללי- מונתיס מעטים לא תורגמר ונשארו במקובס האנגלי המילון הממוחשב מכיל. כ-- 5,800 מונתים. הוא.- מאפשר חיפוש מונחים. באנגלית- ובעברית, או מחרוצות תווים (כמו צירופי מילים) בכל אחד משדות הנתונים+ מונת- עברי, מונח אנגלי, הגדרה, הערה או כל השדות. המילון הממוחשב מאפשר דפדוף. והדפסה-- מילון הוד-עמי למונתחי מחשב יצא לאור בדפוס ברבעון הבאשון של שנת 2000 ניכיפל את מילון המונתים, אינדקס מונחים בעבבית ואינדקס באשי-תיבות באנגלית - - כדי לשמור על עדכניות המילון, הוצאת הוד-עמי תשמח לשתף פעולה ולקבל הערות והצעות מכל מי שמתעניין בנושא- כל הערה תיקון או תוספת יתקבלו בברכה-- הערות והצעות למילון הוד-עמי למונתי מחשב: מילון מונחי מחשב ת.ד. 6108, הרצליה 46160- טלפון: 09-9564716- פקס: 09-9571582 8 סדנת לימוד 6.0 8\ התקנת |1066! פַחוא'וס/\ 6 83516 ובּטפו\ / , ' , יהיה. מותקן במחשב (בגירסה -4 ומעלה). לצורבך התקנת.- פַח:16ס//-6 83516 15031/- 0061 עליך להסיר את התקנת ז06וסאם 6%מ67ח1 גיבסה 3) אם קיימת, ובק אז לבצע / 6 וו לתשומת לבך+ במידה ובמתשב היתה מותקנת גיבסה קודמת של סוסא 6%מספח1- צפויה- במהלך. ההתקנה. להופיע תיבת.- דו-=שיח- המובה על התנגשות בין גירסאות- לשאלה האם ברצונך לשמור את הקוב הקיים במתשבך השב כן וההתקנה תמשיך. כרגיל-. התוכנה ניתנת כבונוס ללא תשלום לרוכשי הספר- הוצאת- הוד-עמי איגה מספקת-תמיבה- במוצר-- התקנת |8-006חו0/\-6 83516 15081/\ מתבצעת באופן הבא בתיבת הדו-שיח הפעלה לחצ על אישור וההתקנה תחתל. - -במסך הראשוך: !1006 ַחוא'וס// 6 83516 [1503/ לחצ על +אפא-- -במסך השני: 600160%ו0 1160056 0507 חם בחר.: +ה6ַוהִ60ַיט3ּ 6+ 36690% 1 ולחצ על 9%%א-- -59 במסך השלישי. 10 59 חב ספוא 0006%פ הקלד את שמך ולחצ על +אפא. -10.- במסך 2601498 185+311 ודא שתיבת הסימון מסומנת ולחצ על +אפא. -11. לאחר התקנת הבכיב 260%198 תוכנית ההתקנה תודיע שכעת יש לאתחל את- המחשב מחדש. לחצ על 06: -2- לאחר שהמחשב יעלה מחדש, תימשך ההתקנה. המסך הבא שנופיע הוא 680058- ז0!00= !185131 תסוחות60. בדוק אם המיקום והנתיב שמציעה תוכנית ההתקנה- מתאימים לך. אס לא לחצ על 8058 ובחר מיקום אחב. כעת כשהמיקום. והנתיב מתאימים, לחצ על 9%%א-- -13. במסך: כט595 !1006 פַחואוס// 6 53516 [1503/ תופיע הודעה שיש לסגור כל גכשוס. פתוח (למעט תוכנית. ההתקנה), עשה זאת (באמצעות לחיצה על לתצר- היישוס שבשורת המשימות) ולחצ על 08ח600-- + א ₪ 5 9 % א ₪ נספח 5: התקליטור המצורף | 979 -14. בשלב הבא לחצ על 08 והמתן בעת שתוכנית ההתקנה מחפשת רכיבים מותקנים: -15-- במסך הבא שנופיע בחר בסוג ההתקנה.- אס יש לך מספיק מקוס בדיסק שבחבת- בחר בהתקנת !163קץד. -16.- אס תוכנית. ההתקנה תבקש להחליף וו ענה 46 ואחר כשתשאל אס בבצונד. להשאיר את הקבצים כמות שהם ענה 65צ. -18. כשהמחשב ייעלה!י מחדש תופיע תיבת דו-שיח המאפשרת רישום עותק התוכנה- באמצעות האינטרנט- פעל לפי באות- עיניך-- ספר זה מבוסס על גרסת 5001156חם של 6 83516 [ב1503/ ומתאים לעבודה גם- בגרסאות. אחרות, למעט גרסת !1009 פחהוסעע -(קוד המקור לא נבדק- בגירסה ז!)-- תחת תיקיה 800%5\59221\:א תמצא תיקיות משנה: תיקיה עבור כל פבק+ תיקיה- 2 עבור פרק 2, תיקיה 603003 עבור פרק 3 וכך הלאה. בכל תיקיה נמצאיס קטעי: קוד המקור שמופיעים בספר -- בתיקיות אחרות תחת התיקיה 80065 נמצאים קבצים הרלוונטיים לספרים אחרים של ההוצאה-- העתקת קבצי המקור לדיסק-- הקבצים נמצאיס בתיקיה 59221 \000%5\: מסודרים לפי תיקיות - תיקיה עבור כל + |-דרך הסייר היכנס לתיקיה בדיסק, שבה נמצאים הקבצים שהעתקת-- 2 -סמן קובצ מסוים או את כולס על ידי 601+4. 3 | הצב את סמן העכבר מעל האזור המסומן ולחצ לחיצה ימנית בעכבר. 0 סדנת לימוד 6.0 8\ לגבות תשלוס עבור התוכניות המצורפות /או לתמוך בהם. ם אזהרה---- השימוש בתקליטורב זה הוא על אחריותו הבלעדית של המשתמש. המוצרים- הוד-עמי אינה אחראית, בכל צורה שהיא, לאופן ולטיב התוכנות המותקנות-- 1 בנפרד) כפי שמצויןו בקבצי הערה של התוכנה המדוברת. גרסת 50370\/376 מאפשרת לך, המשתמש, לבדוק את יעילות התוכנה ואת תאימותה- / למפתחיה תשלוס סמלי (לפי הבשוס בקבצי העזרה של כל תוכנה ותוכנה בנפרד) כדי בוד - מימד חדש בתצוגה.-- ים המלח ממעוף הציפור-- 68 היא משפחת מוצריס של חברת סליילייןך מעבכות תוכנה הבנויה על מנוע-גרפר ייחודי ורב עוצמה, המאפשר תצוגה בנצמן אמת של פני שטתח בתלת-מימד ללא הגבלת פבטים וגודל על מחשביס ביתיים. מקור תמונת השטח הוא תצלומי לווין ותצלומי: אוויר-- דרישות מערכת מינימליות: נספח 5: התקליטור המצורף | 981 -=>-- כונן תקליטוריס במהירות 6א ->-- התקליטור תייב להיות בכונן במהלך ההפעלה - מנוע 1918 לוקה את התצוגה בזמן אמת לרמות חדשות שלא נודעו בעולס מחשבי 06. הוא מאפשר אין-סוף מצבי תצוגה+ החל ממבט קרוב לפרטי פרטים ועד תצוגה רחוקה- עד האופק. מנוע 603ד עושה שימוש בטכנולוניית אןאוא. החדשנית. ומאפשר איכויות- נחלתס של מחשביס יקרים בלבד. לפרטיס נוספים על התוכנה ומפתחיה קרא בקובצ 1850 בתיקיה 078 ד -. ייתכן ובמהקך ההתקנה תתבקש להתקין בכיבי 866%י1.- אם. הינך עובד. במעבכת 5 -עם- ממשק. עברית. (לחצן. התתל) יהיה- עליך לשנות- את- ההגדרות- האזוריות+- -1. -בחר בלחצן התחל, הגדרות, לוח הבקרה, הגדרות אזוריות -. 2 -במקוס עברית בחר אנגלית (ארצות הברית). -++ -בחב בקהצך-הח2: -4 -לשאקה הא ברצונך לאתחל את המחשב מחדשד ענה כן-- -5. -עתה, יהיה עליך להתחיל את התקנת 68ד מחדש. הערת-:-- אם שינית את ההגדרות האזוריות - אל תשכח לחזור לעברית: 12 סדנת לימוד 6.0 8\ הפעלת בּוסד הורבאות הפעלה מפורטות נמצאות בתפריט 610 שבתוכנת 78וד. טופ:-- תוכל להאט את המהירות בעזרת 4+2ו50 לא רק למהירות אפס, אלא מתחת התקליטור חייב להיות בכונן בעת הפעלת התוכנה. התקנת תוכנת גלישה לאינטרנט- תוכנית- ההתקנה. מזהה.- את- גבסת. מערכת. ההפעקה. ומתקינה. את -גבסת. הדפדפן- הדרושה. מומלצ להסיר גירסה קודמת של ז6ז0וסאם %0706%ח1, אם קיימת: -הכנס את התקליטור לכונך-. -לחצ על לחצן התחל ובחר באפשרות הפעלה. -לחצ על לחצן עו -- -בחר בכונן התקליטובים בתיקיה 5000370\155 ובקובצ בשס 5אם,ק551-- -לחצ על לחצן פתה. לחצ על להצן אישור. -פעל לפי ההובאות על המסך-- נ אזהרה:- - לפני ביצוע. שדרוג- מ-5-95/ו80ח1//-ל-- 98 -5/ו80ח1/\- בעברית. (זו: בה התפריטים- בעברית ולחצן התחל מימין שורת המשימות), יש להסיר את 9זסוסאם -006%+מ1- | 7 נספח 5: התקליטור המצורף | 983 ההק :הס קוב זה יתקין במחשב 2 גופניס בעברית לשימושכס. בסיום ההתקנה יש לבצע את- הפעולות הבאות+- 1 |לחצ על התחל, הצבע על הגדרות, ובחר בלות הבקרת-. לחצ לחיצה כפולה על הסמל גופנים-- פתח את תפריט קובצ ובחר באפשרות התקנת גופן חדש-- %חוסקוסאוסץ וגס בתוכנות גרפיות, כגון סז ססח5 +חו3ק ו-0505000םק: כלל). הרי דוגמה שלהם: וד או דהוז ההא ל הור ןס פיףי-ציץ העות 30 4357 3: קואט-!וד. ג דהוזהטיכךרמם;ןסצפף<ץורשת 1234567890 אםדםא- במקום קלרשוס !1.60.1הה106-3.עועט/ / :קפסת פשוט רישמו הוד-עמי והנה אתס באתר ההוצאה-- במטרה להגיע לאתר מסוים באינטרנט, שכתובתו אינה ידועה, אנו משתמשים. בדבך-כפת.- באחת- מש דבכים--ננפוש--של--כתגבת--האמב--/ר-פנכה- פאננדק ס- -א3. למנוע חיפוש - הקלדה של הכתובת המלאה באנגלית בדיוק מושלם, והוא עשוי להיות הליך גוזל ומן;, במיוחד כאשר לא מצליחיס למצוא את האתב בניסיון באשון או בכלפ. 4 סדנת לימוד 6.0 8\ עס א60%6%ח לא צריך לנחש כתובות או לגלוש למנועי חיפוש כדי להגיע לאתר מסויס ברשת! פשוט מקלידים את שס האתר בעברית בחלון הכתובת בדפדפן, ומגיעים אליו ישירות-- אפשרויות השימוש במערכת- גלישה ישירבה לאתר על-פי שמו או על-9י נתוניס הקשוביס ברג מקלידים בחלון הכתובת של הדפדפן שם של-אתב- או חברה אר מילות מפתח הקשורות באתר (בכל סדר שהוא)ךומגיעים אליו ישיבות. לדנגמה+- הוצאת הנוד-עמי לספרי מחשבים: - 4% ->-- מקלידים סלקום א052-- ומגיעים ישירות לאתר של חברת סלקום, - כל שעליכם לעשות כדי להתחבב ל-15%פא הוא להתקין תוכנה קלה וחכמה: -+. -יש לסגור את כל התוכנות הפתוחות כולל הדפדפנים הפנועלים-- 2 מתוך ‏ סכר 5אוס0חו)\ | הפעילו ‏ את הקובצ 6א100.6א89%6 | שבתיקיה- 03 \-%-- -+ -פעלו בהתאם להוראות: בוּמן ההתקנה התוכנה. מזהה. את הדפדפו/ים שמותקנים במחשב, והיא. תפעל עם- כולם. מייד אחרי סיום ההתקנה תוכלו להתתיל לגלוש תכס ובעברית. המערכת שקופה למשתמש, כלומר היא יימתלבשתיי על הדפדפן הרגיל- ואינה נבאית כלל. אין צורך להפעיל אותה או לבצע פעולה כלשהי כדי להשתמש בה: פשוט- מקלידיס את שס האתר המבוקש בשדה הכתובת של הדפדפןרומגיעים ישר אליר-. התוכנה אינה מפריעה לעבודה בגילה עס הדפדפן. היא נכנסת לפעולה בק כאשר מקלידים ‏ כנתון ‏ -שאינו ‏ כתובת -אינטרבנט ‏ בגילה 000 כאשב -תקלידר 60.11 .נההּ-00.עוצע -תגלשו ישירות לאתר הוצאת. הוד-עמי) בדיוק כפי שנהגתס.- לגלוש לפני- התקנת. התוכנה (ללא- מעורבות. המערכת)- אך אס תבצוך תוכלו להקליד. הוד=>עמי בשדה כתובת ולהגיע במהיבות לאותו אתר בדיוק-- נספח 5: התקליטור המצורף | 985 תוכנה ליצורת-עוצוב ועובוד תפות 6 סדנת לימוד 6.0 8\ אינדקס עברי / 6% הופעה, 8ַחו5%000ח 1‏ 449 מסמך, +חסוהטססכ 822 446 6068 ססא 0 7455 אובייקט 00[6% 754 אובייקט 0ח8חוח60 766 אובייקט ח6600חח60 755 אובייקט 6607056 758 מאפיין 8חו50ח0ו660החה 60‏ 755 מאפיין 6קץד זספזט6 761 מחרוזת חיבור, 59 הס660ההס6 755 ממשק אובייקטים 736 מערך רשומות ₪6607056% 758 מערך רשומות מנותק, 000 ה הסוכ 767 מקור נתוניס, 6זטס50 088 738 מקור רשומות, 6 06070 741 פקד |סשחס60 736 פקד 0300 סכ 739 פקד איגוד, |סישח60 סחטסם ‏ 739 שיטת 6006א₪ 756 שיטת 08%06קש ‏ 763 1 544, 626 ממשק 07866לח 1‏ 544 פונקציה חסטסחט- 528 0 /50| 5‏ 784 סוג שדה, 6קץד 8₪!0ו= = 789 סוגיס, 6סץך 787 ח ]דה 801 טופס וחזס ‏ 813 0 6 719 5 )!0076-1646 719 אפס 721 זסוד-טוטו 719 זסוד-6פָחו 5‏ 719 מנהל התקן, זפשוזסם ‏ 719 מקור נתוניס, 6זטס50 08 720 05 אובייקט 06אם | 599 אובייקט 0זסו\ 593 אובייקט מוטבע, 6% 060060 | 600 אובייקט מקושר, 6% 6ס6אחו1 603 כ זסזסוקאם 66[סזק | 49 אינדקס עברי 7 5 פונקציות צבירה, 5 סְהּחְָזפָחָאה 919 פקד 809 932 קבוצות רשומות, 5 0000 921 שאילתת אחזור נתוניס, ץז |6\8ו6א 931 שדה מחושב, 905 68|6018%60 0 ב אוזע !60 ספא 928 = ופד הספדוה 928 5 909 אפם/\\דסט 916 אפסאז פדה=ה6 929 ופד פד ה 928 ו תנאי סינון, חסזו0חס6 זסטוות ‏ 914 =דם ₪שס 925 . 918 60 וס 900 אאע 60 קסמס 928 5% 806 אפסאן קסאס 929 זסזס|קאם 6%חזס%ח] ‏ 810 = ןד קסמחס 929 0% 5608 5אוססחו/\ 817 %פפחעס 931 אירוע, 0ח6/ם 810 אסם 908 מארח, 05% 805 צם ₪007 921 מערכת קבצים, 5/5906 ₪6 808 6\זצהה 922 משתנה %ח8ה/\ 806 אז] 908 916 פקד 606% 815 זז 926 שיגרה, 6זטססססזק 810 ו 3 2868 |הטפו\ 648 אזסנ 911 =אזן 915 \\ צם מםסאס 918 5חם דםוהאההק 924 טס ד 902 אובייקט 655806 854 931 אובייקט חסו5655 852 זה ח3! 0813 |הטפו/\ - 933 דואר אלקטרוני, |ו8א-5 .851 =חםטצ\ 913 925 דרישה, 60069 799 ו אובייקט 06/ז6ט0 / 902, 931 הפעלה, ח0ו5655 852 ביטוי השוואה טכנולוגיית 600 851 ו 6 חכוה 60 914 פקד א 60/6%‏ 815 ביצועים, 66חאוחזסוז6? 936 פקד ז516ח8ז ד ז6חו6ח1 856 הידור, פַחו|וקהחס6 936 פקד ז50אוסזםס0)\\ 846 חיפוש כולל, קיצור דרך לאינטרנט, 6 6שופט|6ח1 916 0% ז6חזס+ח] 848 כינוי, 4|185 = 909 שיטת ססְהּחוטב\ | 846 מנגנוני מסדי נתוניס אחרים, שרת, ז6צז 56‏ 799 5חופָחם 28582856 ז6ו0. 937 מרכיב, +ופק 901 108 סדנת לימוד 6.0 8\ 72,42 00[6% אובייקט,‎ 0ספא 754 0% סכ 773 +חסוסוחה 418 מְקָא 575 חח חס 766 ח660ההס6 773,755 הס 772 זזם 279 599 6% זא 421 חס 534 אחוהסקץר 837 06 854 חס ץס|קסכ בחה סְהַהּאסבק 825 727 758 727 0% 852 5655וסח‎ טס 931,902 ו 06 ז056\ 826 0זס\ ‏ 593 אירוע, חש 72 87 138 גישה לנתוניס ₪0 726 גישה לנתוניס מרוחקיס ספא 727 הפעלה, 50 | 92 טופס, חחסה 72 מאפיין, שזסקסזק | 72 מוטבע, 5260060 600 מונחה, %60ח6וזס | 62 מחלקה, 01855 436 ממשק, 61806לח 1‏ 736 מקושר, 60אחו1 603 משתנה, 6וסהח8/ 471 פקד, |סשחס60 | 74 צומת, 006 321 קידומת, א]סזק | 85 שיטה, 00ו ]16‏ 72 86 אובייקט |66א= א,סססאזסש\ 599 %ת5אזסש\ 599 אובייקט סזס)\ 593 חס3סו!קקה. 0זסצו\ 594 6 598 %חסוחט6סכ.0זסו ‏ 594 ספריית האובייקטיס ‏ 593 אוסף, ח60|!6600. 135, 176, 310 שא 310 אינדקס, א06ח1 310 פקדיס, 0|5ח60 | 135 שיטת 00 310 שיטת 6טסוח6 310 אופרטור, ז8%0ז006 חיבור + 226 חילוק ]| 228 חילוק מספר שלס החסופוצו0 ז600זה1 - 228 חילוק עס נקודה צפה חסופוטוס +חוסק פחטהסן= | 228 חיסור -‏ 227 כפל * 227 מעריכי, |הסה6חהסקאם | 231 קדימות, 06ח60606זק | 232 שארית חילוק זר הסופואו | 228 שרשור, ה0800ח08%0ח00 | 233 אינטרנט, חוססח1 895 אירוע, 60% 72( 134 אובייקט 00[006 138 טופס חזס] ‏ 143 מונע חששוזסם | 62 מטפל ז0|6ח 8‏ 562 סוגי 65קץד ‏ 137 שיגרה 6זטססססזק. 62, 87, 136, 445 ארגומנט %חסוטזה 185-192 ארגז כליסם אספ!|ססך | 871,75 אינדקס עברי 1.09 אריזה פַחוחְהּאסהק 880 א 895 0 חס ץס!ק6כ 0חה 6הא6בק 00 הידור חסטג!וקוחס6 880 ארכיטקטורה 6ז66₪0וח6זה הח5/506 ח6ככ) 5אוססחו// 66076 הזה \)058 -‏ 719 אשף, 0ז28ו\ 6 |סחה600 6%ע600 | 398 סו ט6סכ א6עו6ת חססהזו\ | 838 חס ץס|קסכ בח סְהַהּאסבק 880 דפי המאפייניס 5 וקסוק 405 טפסי נתוניס וחזס- 0808 672 ברירת מחדל :|0ט6]8ס לחצן חסשטם ‏ 189 גרפיקה 780016 528 65 מאפיין 6זנשסוק 517 פונקציית 1ק 528 פקד, |סשחס6 514 פקד 1806 517, 520 פקד 6חו] 515 פקד א680זוססוק ‏ 517 521 פקד 5806 515 קבצי ₪65 517 שיטה 160000 522 שיטת 1766 524 שיטת 6חו] 523 שיטת 6זטש6|קלחוהק 526 שיטת זחוזק | 525 שיטת 05% 526 שיטת זחוסק 528 00 סדנת לימוד 6.0 8\ תמונה שזושסוק ‏ 517 ד דוח סקפ 772 סכ א6%עח6א 772 א +00 076806 787 5 |50ץ7 784 סקס 80 | 772 774 חסססחט-ק 775 783 חמקה 775 306 קה | 775 6חו חקא 781,775 שהתססקה ‏ 775 781 אסם)א6 קה 775 אובייקט ז₪6607056 00 773 אובייקט ח6600חח0ס6 773 אובייקט זסקפחטטהּכ ‏ 772 מצייני מיקוס 4010615 6ספוק ‏ 779 פקד ₪005 !017/59 784, 790 פקד 6בַהוחסק | 780 שיטת זוסקסחזוסקאם ‏ 782 שיטת +וסקסףזחווק ‏ 782 דף מאפייניסם 7306 65ו6קסזק ‏ 427 ה הידור חסטפ!וקוחס6 880 6), ס6עספא ‏ 881 6 881 הכרזה 6ז66|8כ. 544 הצהרה חסח8ז66|3כ זוסו|קאם הססטקס 217 מפורשת 0%ו|קאפ 211 מרומזצת ששו|קח] | 212 משתנה 0808066 | 65 ויזואלי |08פו\ מרכיב %חה6חה0סקת00 72 ח חלון הקוד שוססחו/\ ₪006 136, 139 א0ם 00[60/ 136 אסם 6זטסססטזק ‏ 136 ט טווח הכרה 6 214,208 285 291 משתנה 8806 285 שיגרה 6זט60ססזק ‏ 285 טופס חזס- ‏ 72,49 ]םא 463 אב %חסזהק ‏ 462 463 אירוע %ח ₪6‏ 143 אשף טפסי הנתוניס 0ה2ו/\ וחזזס] 28%8‏ 672 בן/צאצא 6010 164, 462 כלי עיצוב ז8ח 69\4‏ 672 לא מודאלי ₪006|655 - 93 מאפיין שוסקסזק 61 89 מודאלי ₪008|‏ 215,93 מכיל ז8חו%9ח 60‏ 462 מרוביס 6!קטוטו 294 משתנה אובייקט 6 ז 00[60‏ 471 משתנה ברמת |6%6! 6|פהחחה/\ ‏ 216 תבנית 8%6|קח6ך | 207 טכנולוגיה עְ0|08חח66ד 0 736 0 851 טכניקה 06וחח66ך תכנות מונחה-עצמיס 006 - 007 0חוההרחה זט סזק 60לח6וז 0‏ 4536 טרנזקציה ח8600פחפזד 714 שיטת פחפזדחו960 714 שיטת 5ח8ז טווחוחס6 714 שיטת ₪0|!886% - 714 יחס קוהפחהסט3|ס הורות %חסזפק ‏ 323 יישוס חססחסו|ססה סגה 42 0 לא מודאלי 1006!655] - 93 מודאלי |₪003 מוצרי מדף 100 5 00060₪0ק | 40 מותאס אישית 00500 40 ל לולאה 1000 214, 264, 708 וטחש ססם 269,267 6וחצ\ סכ 267 זס] 265 דילוג 500 265 מנייה זסזחטס60 264 מספור חהסספזסוחטחם ‏ 264, 270 מרומזצת 60ו|מח[ 08 תנאי |החסטוטחס6 264 לחצן חהסחטם ברירת המחדל + 189 | 680 ערך 6ט|8\ | 190 קוד 0006 175 מ מאפיין שזסקסזס. 54, 72, 75, 89, 874 ה00ו05ק6זט!|050 אזהוהאססם 698 וח 324 ח6ז0!ות6 323 46 008 ה הס 755 6 זט 761 3%808561\86כ 0 666 1 6666 6 זא 421 זנטוו ‏ 705 אינדקס עברי 01 199 9 707 ,705 106% שא 310 531 0 חזסָחס |אהו ‏ 532 424 0קסז300סח‎ הק 532 704 ק6ז66ח%ק05ו0סה‎ 6זטססוק 517 662 6 +ספ 705, 706 זה8ם|ססך 171 אשף דפי 0ז28ו/\ פמק 405 דף 7806 427 הורות זַחסזּק ‏ 323 יהוי על פי נקודות חס0פססא זסכ ‏ 79 טוויפ קושד 82 טופס חזס ‏ 61 קבלת מיקוד 0605" חס 103 שורש 800% 322 שיגרה 6שזט0סססזק | 285 תפריט שח ₪6‏ 163 מודאלי |₪008 - 215,935 יישוס חס80סו|סקה | 190 מערכת 5506 190 תיבת הודעה א80 655806] | 190 182 ₪008| מודאלי‎ מודול 6!ט0ס\ 293 מחלקה 61855 296, 437 משתנה ברמת |6\6! 80|6חה8\ | 216 מחלקה 0|855. 436 אובייקט 60ן00 436 אוסף ח60|!66000/ 452 אשף זססווטם ‏ 455 הופעה 8חו5%006ח 1‏ 449 מודול 0|6סח 296, 437 מופע 17558006 4536 ממשק 421 550 2 סדנת לימוד 6.0 8\ משנה 9חו506|855. 560, 562 קישור מאוחר פַחו0חום 816 | 443 קישור מוקדס פַחוסחום עְוִ8ם ‏ 443 שיגרה ציבורית 6ז660סזק 6ו|פטק ‏ 442 תכנות מונחה-עצמיס 066 - 007 טחורהרחה זט סזק %60ח6וו 0‏ 436 מחרוזת. חַחו50 גודל משתנה חזְחַח6 | 6|ט /8‏ 213 גודל קבוע 0%%ח6| ₪60 | 213 מילת מפתח 6זסושוץ6א ‏ 221 וחזס-60/6 - 471 7% 5600 סכ 581 288 |ה\ץ8 289 %טקחז 579 471 6 טס 581 6הצוזק 291 סוופטק 291 6 292 ממשק 6806סח1 6 |סח00 א6ע60ה 80 )\ 398 זוטסזק 8 015 736 אובייקט 00[6% 736 בעל טופס יחיד 9/6חו5 - 501 +הסותטססכ 498 מרובה מסמכים 6|וסשוטוא - זסא +הסותטססכ 78 463 משתמש 056 46, 494 תכנות יישומיס [קא 719 ממשק [קג - 1806ו06ח1 [קה ‏ 719 זו אד 547 זסא\סו\ 547 546 2 הכרזה ח 266!37800‏ 544 כינוי 85| 545 מזהה ייחודי של חלון 6 שוססחו/\ ‏ 554 מחלקות משנה ₪8ו5006!355 560, 562 מחלקת עטיפה 5), זסקקּז/\ 550 מטפל באירועיס זה זהס/ם 562 עטיפה זססק3ּז\\ 549 קריאות חוזגרות 68|!58665 560 ממשק 1סש - 866וסשחז זסוו חלון צוסחו\\ ‏ 475 מופע חדש 10509006 שוסא\ ‏ 471 מילת מפתח 6זסצוץ6א ‏ 471 משתנה אובייקט 6 ז 00[60‏ 471 סידור אוטומטי ה0ו280וח08ז 6סהוחססטה - 474 ריבוי מופעים 155 6|קטוט\ 469 תבנית 306|קוח6ד 469, 484 תפריט טחס!] 472 ממשק משתמש ז056! 1007866 494 מסך פתיחה ח50766 ח35!ק 5‏ 510 תפריט טח06 507 מנגנון סחוּפָחם ‏ 937 מנגנוו מסד נתוניס סוּפָחם 8%80856כ 718 06 690 מסד נתוניס 08080856 636 5 65% 5 0086 690 ז 3 הזה |הטפו\/ 648 אחזור ₪6₪16\6 638 אינדקס א06ח1 637, 643 אינדקס ייחודי א6סח] סטסוח ‏ 652 אינדקס מרובה מפתחות אססח1 שְ6א-6!קטוטו | 645 אינדקס ראשי א06ח1 ץזהוחוזק ‏ 652 הפעלה ח0ו 5655‏ 684 טבלה 1808 637, 638 טבלת אב 1806 זחסזק ‏ 641 טבלת בדיקת מידע 6 קטאסס] 641 טבלת צאצא סוד 1!0ח 0‏ 641 יצרניס אחריס שז8ק חזוחד 654 כלל אימות ₪6 חסו08ו|8\. 637 מנגנון 6חופָחם 684 מערך רשומות ₪6607056% 646 מפרט פונקציונלי ח0ו680וו5066 |ההסחסס6חט- ‏ 637 מפתח ץ66 641 מקושר 60אחו1 641 נרמול חסוז28|החזזסו\ ‏ 639 סדר טבעי ז0706 |פזנשג \3‏ 643 סדר לוגי 0061 100168|‏ 643 סדר פיסי ז06זס |6₪3ופץחק ‏ 643 קשר קוח5ח0ו₪6|3 637, 641 רשומה 66070 | 637 שאילתה ץזפט0. 637, 646 מסמך +חסווט6סס מסמך 606% = 822 ממשק מרובה 1 463 מסמך א60/6% ו סכ 66% 822 [אדת 822 0זהק2ו/\ חסספזטוו\ 838 0 +הסו ץסוקסכ בחה 6מבא6בק 5 אובייקט אחוחסקץח. 837 אובייקט 006060 ז050\ 826 בקשה 600655 822 מספור חטחם ‏ 451 מערך ץפחה | 213 אלמנט %ח6ח6!ם ‏ 360 מקביל |8||6ז8ק 368 משתנה 80806 213 פקדים 0|5חס6 360 אינדקס עברי | 993 פריטי תפריט 5וח166 טחס\!] 568 מערך רשומות 6607056 758 חסו05ק%6ט|050 | 704 עס 931,900 ץ|חס-0זהאוזס ‏ 693 5 691 931 אינדקס 1006 700 טרנזקציה חס860פחּזד 714 לולאה 1000 708 מאפיין אזהוחאסס | 698 מאפיין זססוו | 705 מאפיין א06ח 1‏ 705, 707 מאפיין ח00ו05ק%ח66זסק | 704 מאפיין +וס 5‏ 705, 706 מנותק 6600חח0ס6פוכ ‏ 767 מצביע זססחוסק 695 משפט 501 710 עדכון אצווה 00866 :8806 768 שאילתות חישוב 06165 חסוסהּ!ט68|6 10 שאילתות פעולה 65 חתסססא 711 שגיאת 0חו8 6%חח68 700 שיטת 006 712 שיטת 6!60כ ‏ 713 שיטת 0 712 שיטת 0חו 698 שיטת 6טסו\ | 696 שיטת 566% 701 שיטת 08%6ק ‏ 7135, 763 שיטות ניווט 761 \בטוטּהססה‎ 5 מערכת הח5%6ץ5 מודאלי |008 - 190 מערכת פיתות הח506ץ5 פחווחותבּזטַסזק - 49 מצב ₪006 6 תופסכ | 48 עיבוב ח|69כ | 48 ריצה חטא ‏ 49 4 סדנת לימוד 6.0 8\ מקש 66 גישה 400655 | 156 קיצור %₪סח5 | 157 מרכיב %ח6חסק 60 ויזואלי |8טפ\ - 72 קוד 0006 72 משפט 5000000008 187 193, 224 חא | 577 זוםתס ‏ 573 סופת 573 6 579 ץ600ון | 572 6% 584 %טסחז 579 וו 572 +סח1 6חו] 579 זוסקאוח ‏ 573 40 243 6חהּא\ ‏ 573 ח6קס 578 %שחוחק ‏ 582 זטק 584 זוסוחז 573 6% 585 |ו506/ 574 710 עד 583 %סח/\ 582 הצבה %ח6ח55|8ה | 224 משפט 501 - %ח6ח6ז500 .501 710 משתמש 050 ממשק 1060806 | 46 משתנה 6|מַהַחה \/8‏ 65, 208 חסופח6וחוכם 208 924 אובייקט 00[6% 471 ברמת הטופס |6ש6! חזסת | 216 ברמת המודול |8%6! 000|6ס₪\ / 216 גלובלי 6|088|‏ 215 העברה לפי ערך 6 8 חַחו355ק - |ה\ץ8 | 289 העברה על ידי ייחוס 6 עס פַחו355ק | 288 הצהרה חה800ז668כ | 65 הצהרה מפורשת 0%ו!קאם 211 הצהרה מרומזת >%שו|קח] | 211 טווח הכרה 56006 208 214, 285 מחרוות פַחו5₪ 185 208 מערך ץפוה | 213 מקומי |6/1063ז8טוזק ‏ 216, 287 סוגי 65קץך 209 סטטי 5006 | 292,216 ספריית סוגיס ץזפזסו | 6קץד | 210 ציבורי 6ו|פטק | 215, 287 קידומת אף6זק 208 שלס 0606ח 1‏ 209 נ ניפוי שגיאות פַחופָפַטט6ס ‏ 270 זז 279 זסזזם חס 277 חלון 1601806 274 חלון פ65ַ86/\ | 275 מצב שבירה 006 א68%ז 271 נקודות שבירה שחוסקאהסז ‏ 273 תוויות שורה 8חו/1826 6חו] 277 נתוניס חסטאזס)ח1/הכ ‏ 372 אימות/תקפות חסט08ו|ה/\ 289, 532 אשף טפסי סזפ2ו/\ חחזס] ‏ 672 התקדמות 655ז00זק | 346 מבנה 6ז 506 636 מצב 5005 346 מקור 66זטס5 738 נרמול חסו28ו|החזס\ ‏ 639 פיסיים |ּסופץחק 682 0 סביבת הפיתוח המשולבת ש=פ1 5 !סט 864 0זחזוטסססטה 864 ארגו הכלים אסטוססד 871 חלון המאפייניס 874 חלון הפרויקט שוססחו/\ 66[סזק ‏ 875 חלון הקוד שססחו/\ 0006 876 מודול 00|6 876 ממשק מרובה מסמכים 1ס!\ 864 מקשי קיצור 66/5 %שוסח5 867 סוג פרויקט 6קץד 605[סזק ‏ 865 סוגי הקבציס 65קץד ₪6 876 פקד |סשחס6 871 שורת התפריטיס 88 חס 868 סורק האובייקטים זספוסזם 00[60 | 220 ספריה עזסז66זוס פעילה זחסזזטס ‏ 573 ספריות קישור דינמיות אחו] 6וההחץס ,ץזהזסו! ‏ 210 296 סרגל כלים ז 100|08‏ 167 00 167 180 זס0ם והזס ‏ 132 אוסף ח600|!66₪00 | 176 לחצן חסשטם 171,167 פקד |סשחס6 | 170 רגיל 5000870 | 170 תמונות 108065 | 169 עִ עורך 00ו₪0 תפריט טח ₪6‏ 149 עצסם, ראה אובייקט 006% ערך 6ט|%3 183-221 היפוך פַחו|9פַסד | 164 אינדקס עברי | 995 לחצן חסאטם | 190 תיבת הודעה 80% 11655806 187 פונקציה חסטסחט ‏ 282, 289, 568 ]ק\ 528 245 6 2525 6 זה 245 %ופזטש 573 0 2553 אוססטהס 253 פופ 568 -0ם 579 250 הסזו+‎ ץשחסוטהוזס- ‏ 247 6 וס | 247 זסוטטא\זהותזס- | 247 +הותוס] ‏ 247 6חו]66זת ‏ 579 ץזסקסזק 06% 439 %טקחן 579 שפח] 238 עצפה 239 6 25535 235 6 241 % ח6| 235, 584 חוש] 243 241 0 א05080 191 253 \אסש‎ ו 241 % 576 סחטסג ‏ 247,249 חוטשה 243 1 587 609 50611509 558 56 246 5 237 500חצ‎ 66| סדנת לימוד 6.0 8\ וחחד 243 235 86 246 \8| ץצ 253 9ח61%1501וזצו 609 טווח הכרה 50006 291 יציאה חסטסחטת זוא | 289 פרמטר זסזסְחהּזבק 248 צבירה סְזְהּחִסזְפָחָ 919 תיבת קלט א80 זטכח1 191 פקד |סשח 60‏ 74,52,42, 871 6% 378, 815, 895 0ספא 736 סכ 739 חסוטהה וח 354 הס הס 104 08 תוס 194 זו 180 5 |50ץ 7‏ -784, 790 8 932 0 745 זסאסוקדק 340 6חז 517, 520 13066000 331 5% 18961 308 ד 6% הסח 856 6חו] 515 הח6ז5ו! 315 ש6ו/9ו] 311 צוסו\ושחסו 337 5 607 %חסזהק 323 א680זוח6וק | 517 521 סוק 352 6 731 אסם)א6 ₪16 538 חסססחט-ק 775 783 6שקה 775 780 806 קה | 775 סחושקח 775 781 ש6התססקא ‏ 775 781 אסם)א הק 775 6 515 זו 341 9 346 קוד 325 זסחוד 608 זםוססך 170 ששסו/66זד 320 חאוססקט 334 סז 00 /\\ 846 אובייקט זחסופוח | 418 אובייקט 500067 421 אוסף ח 60|!6600‏ 135, 310 איגוד סחטסם 739 איגוד נתוניס 60חטסם-88 658 ארגז כליסם אספ!|ססך ‏ 75 בלתי מאוגד 6חטסט-ח 693 גרפיקה 780016 514 טקסט 766% 100 לוחית |פחה8ק 248 לחצן אפשרויות הסט הססקס 106,104 לחצן ביטול חסאטם |66ח68 | 105 לחצן מחדל חסאטם ז|690כ | 105 לחצן פקודה הסח וס 52, 60 לחצן רדיו חסאטם 9010 | 106 מאפיין ששקסזק 171 מאפיין 0!וח ‏ 324 מאפיין חסזס!וח6 - 323 מותאס אישית וחסספט6 296 428 מזהי מחרוצאת 5 פַחוט 5‏ 309 מכולה זפחו09חס6 107, 126 418 ממשק 018606זח] ‏ 423 מסגרת 6חהזת ‏ 107 126,118 מערך ץא8זוה 360 מקטעיס ווכ5 750 משותף חסוחוח60 306 משתמש 0508 418 נתוניס ₪088 658 731 ענפים 7806065 321 פנימייס 6ופחושח] | 97 פס גלילה ז5670||83 | 118 119 פס גלילה אופקי 60 [הסהסקחסת - 119 פס גלילה אנכי | |6768/\ | 119 צומת 006 321 קיים +ח50006חס60 379 רשימה נפתחת ו חאוסס קסזם ‏ 115 117 שורש 800% 322 שעון עצר זסחוך 122,118 תווית 1806 52, 100 תיבה משולבת אסם סטוחס 6‏ 115,104 תיבה משולבת נפתחת חצוסס ססזוס אס80 00000 115 118 תיבה משולבת פשוטה אסם 0סוח60 6!קוחו5 | 115, 118 תיבת טקסט אסשאסדך ‏ 52 תיבת סימון א80 660% 104, 105 תיבת רשימה א80 1155 104 107 תכולת ארגז הכליס חו%9ח60 אסט!|ססך | 99 תפריט שח₪6 | 149 פקד 60/6 | 378, 895 6 |0-0ח600 606% 0ז28ו)\\ 398 6ף וח |ה8פס!|ס - 010 זו | 390 אינטרנט 6%חזסזח1 390 אשף דפי המאפייניסם 0 פספָהק ץ+וסקסזק ‏ 405 הידור פַחוו|וקוחס6 388 התקנה 560 390 חבריס 5ז6טוח6 399 מיפוי החבריס 5 6 פַהוקקגו ‏ 401 סמל ח160 398 אינדקס עברי | 997 פרויקט התחלתי 50 386 שיטה 16000 383 פקד ח0וסהכ מקטעיס שווט5 750 פקד איגוד נתוניס [0חס6 סחטסם-808כ 658, 663 מאפיין 28181660 | 666 מאפיין 30950016 | 666 פקד נתוניס |סשחס6 2808 658 מאפיין סַחהּס5הטבלהכ | 661 מאפיין 166ט₪6607050 662 מערך רשומות ₪6607056%‏ 659 פקודה 5%9%6060% + 258 זסזזם חס 277 6 0% 262 בלוק )1 - )1 00%ו 8‏ 259 החלטה ח6680כ 258 השמה %ח6וח0ו55 258 לולאה 000]| 264 שליטה |סשחס60 258 תנאי חסטוסחס6 258 פרויקט 66ש[סזק | 47 בדיקה 69 284 הוספת טופס חחסת פַחהו00א | 298 הוספת מודול 0!6ס1! פַחו00 298 הוספת מחלקה 0855 פַחו00 298 הסרת רכיביס 5 ח6ום 8ַהוטסות6 | 300 התחלתי קטשוהז5 386 התחלת התוכנית 5 וחהזףָסזק | 300 טופס וחזס] ‏ 294 טופס פתיחה וחזסת 503700 | 300 מודול 6|ט0ס₪ ‏ 295 מודולי מחלקה 1000!65! 01855 296 פקדיס מותאמיס אישית 296 | 5000 5 208 סדנת לימוד 6.0 8\ קבוצה קטסז 384 פרמטר זסזחחבּזְבק פונקציה חסטסחטת | 248 תלת-מצבי פד | 248 ק קבוע 5080%ה00 | 220 פנימי 6ופחושח] | 220 קובצ ₪6 :א 585 +חוזספס! 581 איתור 0חו= 568 אקראי החססחגה 583 אתחול ח0ס08|280וח1 585 גרפיקה 6וח80זס ‏ 517 טקסט פד 576 מילת מפתח 6ח6סק | 581 מילת מפתח זטסזטס | 581 מספר זסטוחטא | 578 מצב אקראי 006 וחססחהה | 583 משפט זוסוס - 573 משפט פצוזפחתס | 573 משפט 01056 | 579 משפט שְ600שוו = 572 משפט 06% | 584 משפט לסטסח] | 579 משפט ו|וא | 572 משפט 6חו) זטקח] | 579 משפט זוסאוח ‏ 573 משפט פחח8א\ - 573 משפט ח006 | 578 משפט אסחוזק | 582 משפט זטק | 584 משפט זוסחז - 573 משפט 566% - 585 משפט ס6קץדך ‏ 583 משפט )| 582 סדרתי בעל מבנה חופשי ד |08ה56006 66-10 | 576 פונקציה חסטסחט- 568 פונקציית צזוסזט 573 פונקציית 507 579 פונקציית 6ח|]66ז]- | 579 פונקציית זטקח] ‏ 579 פונקציית ח6] 584 פונקציית ₪8 576 פונקציית 1א\50601 | 587 תת-שיגרה 1א1פוחצו - 587 קובצ ₪6 8 886, 893 תאז 897 ד .קז 891 אצווה 880 893 זמן ריצה ש6וחסחטח 883 יומן התקנה 108 ח5₪3|!₪3800ח1 893 משותף 508760 888 מפתחות 66/5 586 מקטעים 5600005 586 ערכים 8|065 586 קובץ1\1 | 585, 608 קוד 6006 192, 197, 211-216, 221 חלון ששססחו\\ 136 לחצן חסשטם ‏ 175 מרכיב %ח6חהסקח00 | 72 משפט 5000006708 | 224 ניפוי שגיאות פַחופַפַטִפ6ם 270 תפריט טח₪66 160 קישור פַחו0חו מאוחר ]806‏ 443 מוקדס ץא8ם ‏ 443 ר רכיב %ח6ח6!ם רשומה 866070 חש 686, 688 ה 686 6 686, 687 מאגר העתקה זְסְאט8 שְק 00‏ 671 מערך ₪6607056% 686 מקור 6סוטס 5‏ 741 נעילה 8חו 1066‏ 763 פונקציה ח6] - חסטשחט- ח6| 584 קבוצות 5קטסז6 921 רשימה מוקפצת :1158 ק0-קסק 386 ש שאילתה עז6ט0 אחזור נתוניס ₪616 931 שגיאה זסזזו= 0חום +סחח68 700 שומר מסך 58/6 ח50706 614 שיגרה 6זט60ססזק | 87, 282 0% 564 % | שוסקסזק ‏ 439 5% וקסוק 439 חו3\ סט5 301 א)ססתחט 564 אירוע %ח6/= 62, 87, 136, 282, 445 ארגומנט זחסוחטףז]\ | 286 הסתרת מידע פחוסור הסטאותזסזה] | 291 העברה לפי ערך 36 עץ8 הַחו355ק - |3\ץ8- 289 העברה על ידי ייחוט 6 עס הַחופפהק | 288 הפניות 065ח₪6)070 | 297 טווח הכרה 56006 291,285 יביאה טפ ואס 289 כמיסה ח50800ק68ח₪ | 291 מאפיין שזסקסוק | 285 מודול 00|6ס 293 משתנה מקומי 6ה\ ססְהצוזק | 287 משתנה ציבורי 6 סו|פטק | 287 פונקציה חסטסחט] ‏ 191 פרטית ס6זהטוזק ‏ 291 פרמטר זסזסוחהּזק | 286 אינדקס עברי | 999 ציבורית ו|ספטץ ‏ 291 442 שיחה מזוהה. כ1 ז68|!6 606 שיטה 00ו168] 72 86, 310 40 310 712 006 5 דחו6 714 86 524 528 65 5 סוחס 714 6 71 715 8% 756 6 +סססא סקאס 782 0 698 6חו]| 523 696 6 הא 846 6 6וקזחוהק 526 %חוסק 528 %חחק 525 +סכסזחוזק ‏ 782 %% 526 310 ₪60\6 71+ 6% 701 6% 713 6 7653 6 גרפיקה 78006 522 ניווט חססְהּטוטבּ\ ‏ 761 שיטת מתן השמות ההונגרית פחווחהּ\] ההּהוהּפחטר חססהסטחס6 | 208 שפה 6אַבּטְחַח8| מונחית אובייקטיס/עצמים 0-0 62 מונעת אירועיס חסצוזס-%ח6/ם | 62 מכונה 6ח ₪8678‏ 41 רמה נמוכה |16%6 שסן - 41 0 סדנת לימוד 6.0 8\ שרת טפ/\ 799 דרישה ₪60065% 799 ת תבנית 3%6|קוחסך טופס וחזס] ‏ 207 תוכנית התקנה 66% וחהזפָסזק 56007 895 0% פַחוףַהּא6בק 889 5 טח16 +והז5 887 אינטרנט ז6חזסזח1 895, 897 אפשרויות 5006 חסטק0 500% 896 הידור חסטפ!וקוחס6 880 חבילה 2860806 890 רכיב משותף ו 60 760הה5 888 קבצי התקנה 5 חסח503|!!3ח 1‏ 891 קוב 65 886, 893 קוב -א 1‏ 897 קובצ ז0.]5ט0ז 55‏ 891 קוב אצווה ₪6 88% 893 קובץ זמן ריצה 6ו₪ סחסחטח 883 קובצ יומן התקנה 108 חס !ןח ₪6 893 תיקיית סאָהּאסהַק - 891 תיקיית חססקט 5‏ 891 תיקיית חבילה ]0 806א86ק/ 885 תוכנית ייצוא טבלאות ההזססזק +וסקאם 6!טפד 617 תיבת דו-שיח אסם ססופוכ | 182 זסו60 194 202 198 ווססז‎ %הסת 194 199 205 ,104 60 ח6קס 196,194 %חחק 203,194 196 ,194 58/6 15 דגלוניסם ₪805 199 עורך ז0/0ם ‏ 149 מודאלית ₪008|‏ 182 פקד |סשח 00‏ 149 מותאמת אישית 65000 206 קוד 0006 160 תיבת הודעה א80 0655906 182 ו לחצן חסשטם ‏ 188 תת-שגרות פ6חטטסזסטס ‏ 282 לחצן ברירת המחדל | 581 חס טפ %ו690כ | 189 ]וזא 587 מודאלית |₪008 | 190 משתנה מחרוזת 6 פַחוח5 185 סמליסם 10005 186 ערך 6ט|8\ 187, 190 קבוע מחרוואת +00 8ַחהו50 | 185 תיבת הודעה א15080ו פונקציה חסֶס6חטת | 191 תיבת קלט אסם זטסחז | 191 תכנות מונחה-עצמים 6%[טס - 00 טֶחוהרחהזטסזק 660חה6וו0ס ‏ 4536 אריזה ח68050/800ח₪ ‏ 456 ירושה 66חפסוסחח1 436 מחלקה 61855 436 ריבוי צורות ותפוחקזסוחץ|סק 437 תנאי חסטוסחס6 258 6 260 + 258 ד 260 6וח/\ 272 אופרטור דסא 0% 260 בלוק ]1 - 1 806% 259 תפריט טח6 | 147 ]חס 134 מאפיין שזשקסזק | 163 מפרידים 5608/8005 | 155 מקוצר, מוקפצ ס0-קסק | 164 מקשי גישה 66/5 00655 | 156 מקשי קיצור 5 סה - 157 אינדקס עברי 11 %א6חז 5טוחץ 0 ,1165 6|06חו 057 ,%ח06ח50006 שטנ וסטזא (0ח58זסקוחה) 8 2 ,6/5א 800055 1 ,234 , (50) %ה6רח50000 52056.6 ,6063 7 ,66/5 300655 טחסרח 0 ,6005 טחס\! 3 ,0663781005 8חו50 ז0ח6!-60א ,(450056) * 7 ,(800ז6קס ה0ס0ו800) + 7 ,006800 ח50008600) - 9 ,06800 חסופועו0 ז600סחו) \ 9 ,,(3007ז6קס חסופוטום) / 5 ,015 ח0ס6 טח6!! ,(5ו5כוו]6) ... 2 ,0680 80 חח 0קא6) 2 7 ,(!ססוחץ5 6קוס) | 7 ,פחסוסח1\ 1 16-01 7 ,1060095 זופ-32 4 אס 000% 9 ,>חו! 506 60/\\ הזוצ\ 0 ,306|קוח0+ הזזס1 4 ,שו6קסזכ הסטופסקססט|ס5סה 4 ,110705060]) 400655 9 ,סח 60 הזה 8 , !קה 08030856 6!קרח58 7 ,66/5 800055 2 ,5חסטכ 6חההוחסס 0 60/60 אסו01 טחסרח 6 300655 0 ,0005 856% 2 ,פחסוק0 0500%ְ8ח5 0 ,וט הסחסהּ 0 5 ,5500006005 .5001 הסטסהּ 5 ,םדם וש 6 ,ךז 7 ,= דהסקנ 1003 6% 4 סדנת לימוד 6.0 8\ 2 ,105 1!6ח6 ,%ח6/6 60/886 1 ,00[605 60/8660 0/6 1655300, 1 56011 0558065, 3 ג 566 ,28065 567/07 60/6 8 ,6601705615 0150006660 66[ 6600 חס עו 5 ,00160 66070566 ,סז הס סו 2 ,8600 התזס- עו 8 ,6000705 66% 0 ,סש ח60 007655 3 ,61105קסז 8חו800 1 ,0006 65126 8 00160 %ח6וסוחג 9 ,60105 0 ,65וזסקסזק 2 ,300!ו68|6 3 ,601860חו 5 ,חר 4 ,סקז הסח8זסקס 6 ,ל פו!וקרחס6 1 ,סח 05 9 ,86 006% 9 ,5000 9 ,5078060165 6% 6/6|0 9 ,15 וס 1 ,פוחווחס 7 ,חססחסו|מקה 115 9 ,סז 8חהו0ח5%8ח1 5 סז 6 ,50 וצו 5 | וס 1 ,חס 3 ,סחו!סחפח זסזוס 1 0060 ז06חסזאם 0 ,חחו!ו59חו 8 ,280!/\\ 1866ו6זח1 2 1!05ססז 5 366808 5 ,000 ז6חוסזח1 7 ,65 6%חו%6ח1 6 ,פחסטסס פחטקו50 0 ,שו!סט 510600 50 7 ה סזס|קאם 6חזס%ח1 6 ,0קטס) 606[סזק 8 ,501-078 3 ,6/6005 חססנום 2 6165קסזכן הסטנום 4 ,28005 זסקסז הסטאטום 4 ,חסטם 65000 1 60180604ח1 501 6 ,8501 /\ 0\ 360 566 7 ,חסספסו|קס\ 115 ,5ז0ח0ו65כ 6%עה 5 ,0060000 66% 3 ,06חום 9 ,600 3 ,ףחוווקההסס 3 ,609105 5 3 ,פס חַהוץה!150 7 0160 אהוהססערן 8 ,018660)חו 1 ,6ה2ו/\ הסספזטוו\ 3 ,00065 6|סט!טרח 1 ,8חוחסכס 6 ,826-827 ,6005[סזק 2 ,,65000? 3 00160 %ח6 5606 \ 4 ,6/6005 6 7 ,607005 4 ,65וו6קסזק 9 ,אס 01808 6!0= 00 8 ,אס 01800 6 ₪00 0 ,(סכ1) הסאטט החזס= 00 5 ,אסכ 01800 וחזס=] ₪00 2 ,אסכ 01800 זססְבּחבּ1] חז 00 2 ,אס 018100 06%ח1 ₪00 9 ,20 הסוסהזטווא ,15 00 5 ,,אסס 01808 הזוס [ס 00 0 00 3 ,165580100] 60/6 7 ,ח60|!6000 פחסטם 9 ,ח0ו60|!60 503065 | 7 ,601!60005 |סח60 זהםוססד 0 ,285 ,אס 018|00 6זטוססססזק 00 9 ,(םכ1) הסט ז66[סזק 00 6 ,אסס 01808 65ווסקסזוק 00 5 ,אס 01800 ח86/\ 00 8 חה ו 0-1 6 ,5ח₪00-1 6 ,600 00 7 ,חסטוסהּ 2 ,600 עע6צ00 0 ,0 60 00655 3 ,65ז6קסזס 50000 1 ,0006 65126" 3 ,זכ 6 0076551 1005 6% 1 6 סדנת לימוד 6.0 8\ 6 ,02016055 28% 60/6%) ססה 5 0 6 -00[60 חהוח וס 6 ,6005 660 ה ח60 0868 9 ,סח 60 הזה 1 ,5000 0808 60 6008 החסס 3 ,0808 חַחוץ0150!8 5 ,5011/06 66070 0, ,קש 56008 8, ,קש 56008 ,507065 ב08% 5 , !600 המשה 2 8/0 00ו2והח500ווס 7, ,קט 560009 1 ,סט פחוסווס5 4 ,00[60055 8חו066|3 1500060060 60070565, 7 007 1565 0 9 7 ,300 !|5חו 600 5 ,080 צוסח 0חו300ּ 0 ,פסט|פע ₪6|0 חַחוץְ3ו0150 3 ,0908 חַח080קט 5 ,7660705665 3 ,הח 2 ,ספ צהססה 5 ,759 ,ק8/. זפם דסא 1 ,אס 0808 5הסו הלוחכ 60סח8/סת 1 , ;5000007605 .501 0 [55) 5הס6חט 00760866בּ 9 ,5590606005 .5001 = 551) 90165+ 0+ 8ה1ח35510 ,65חחהּח 5בּוןבּ 9 ,318505 80!6+ , (0ח50!| 6006) 5.0%הו|ה 7 ,חסחטפ חפווה 7 ,0 חס6 50005087 ,סוסקסזק חטווה 0 ,עסקסזס +הסרהחטווה 8 ,ןס ח0ס60 |806 1 9 ,5580000600 .5001 ]= |55) 60168665זכן 1 | 9 ,| 60 8680000 ,עץלוסקסזק פשסזזתאוסון|ה 8 ,עסקסזכן 6006 הוהט|ס6אוסו|ה 9 ,ץהסקסזכ 26ווח0ס5ג\)צשסו|ה 8 ,5 ]ככ ו 90065 הוחו ,%ח006ל5 = וה ד = דוה 8 שח500066 = | ד = ד 1 , (ה50!! 6006) 6 טבלוסס|ה 8 00160 +חסוטרחה 9 ,60!05 0 ,65וזו6קסזוק 0 ,0/0 060 חהח-ח6וסוחה (8) 0ח8פזסקוחהּ 7 2 ,66/59 800655 9 ,234-235 , (57) %ה5+900006 52056.6 ,606 0 ,60015 חס 7 ,005 ח60 = םר 6|סטו טר 8 הוחוטר סש , (פהח5ו! 6006) זא זססחה 7 ,וס ה 60 הסטהוהוחה פחסוהוחוחהּ 5 ,0 8סו|קכה 58/67 ח50766 4 ,6000 זסוחוך 5 זג 8 ,0 שש16/\ +אך [ק\ 0 ,68]!58665 635 7 ,5005 חסספסו!סקה 1 זסו|הס 554-555 ,5שססחוצט זסח6ס פחוווסחסס 7 ,68860075 |וטח 9 ,660060אם||6ח5 3 ,0 50ץ3וק 0ח5 3 ,6051060 הק 550 6 ,13065 +ח6זה8ק5חפיס 2 ,00ח5410013551 2 ,0!075ח8ח 6/60% 2 ,95ח600ח11 זסססבז 9 | קספש קהמ//זקה 2 ,שסקסזק ההק סקסה 6 ,81659 06808 8 ,סז 06ח8זהסכקה 3 ,וס ח60 סרחה" 1 ,006 סחסקכהּ 5 ,(50) 60%[ס0 חסספסווססה 4 ,(זס/) 66%[סס חסספסווססה 1 ,5661 |6ע6!-חסטהסווקכהּ 0 ,פחסספסו!סקהּ 4 ,5 0 ,6150001260 0 0 ה00וח06 3 ,8ח1ח0ו065 2 6/6000 החחואס 7 ,פהוחחטז 7 ,018065סח! 1507 0 ,28065 /לזסקסזק ,6זו0660זכ %ח6/6 65סההת6שוססה 8 -00[60 567106 , הס60|!66 %חסרחטוט זה סוק 566. ,5)הסוחטטחובּ 4 ,600 86חפזזה 5 7 ,601660005 0 קהחסס 0 ,60]!660005 0 הקוח 60 8 ,וחססו נוחסרח 8 ,ס!!פזהק 4 ,37785 88016 7 ,חסטסחוף 56 1007 6% 8 סדנת לימוד 6.0 8\ 5611 608780001 60065, 6 5 ,940 ,800 ,(78065 ז507/0 6ע60) קפ 6 ,115 60/6%/ 5 0060 הסספסו!סק 4 ,5/5655005ככ₪3 0 ,8606559 08%00856 5 006165 8 ,955 ,סַחטְה0קט 7 ,0865 60/ש 6והההחץ 5 ,6 6|קוחהאס 9 ,65 06ט!6ח1 8 ,0016000 4 006000 60656 1 001600 6500056 5 00160 567/67 6 ,05 507100100 507/07-5|06 9 ,0060 ח565510 1 ,55806060 166ז/\. 650056 5 ,017600065 |הזטחוצ 0, |דת פצ 6 55306060 +הסוהתףו55ה 5 ,5586606005 +ח6רהת 55ב 3 ,060|3780005 0ח571 ר00ח6!-60א ,(*) אפחספהּ 6 ,600 680 6הץ5ת 6 ,(!חווחו6 דוסק/יד]) סחהרוחס6 610=1א דה 4 ,זסס 16 1.15% ססות 1 ,6185565 1 ,005 ח16\ 1.15% ססות 4 ,סח >6ונוכ) ססות 5 ,ץהסקסזכ הסזס!וח-)/עסהפססות 1 ,ץסקסזק 26ו05ו 9 ,600 |306 1 9 ,]60 50905087 4 ,סח 60 הסוטהרחוחג ,%החזס+ ₪16 1/\ה 1 ,/סקסזק זסוס₪8666 0 ,6000 7ז000!28 ,6005[טס ₪800 8 ,56!וחקס 806 4 ,60 5ח8ז דחו60 6 ,6 607 ,68665ו60זס אםםע\ד₪5 7 68060ו60זכ אש ₪5 , ( הפו 6006) 6 ח066סם 8 ,03030856 פס 10 ופז 4 ,0 3 ,0001065 26/6 ,הזססחום 6 ,וס חס6 80300 ,סהוסחוס 6 ,560 סקץד פחוסחום 8 ,|סחסס 5 ו6הַח1 ,5כהחסום 9 ,5000606015 ]1 6%סום 8 ,ץסקסזכן אזהוהאססם 7 ,6066000 5אזהותאססם 4 ,65ט!אע בַחו|000+ ,06 האסוססם ץוסססזק 50/6זס0זוסם 4 ,וס ח60 סרחה" 9 ,300615| 5 ,!סשחסס סח 1 9 ,500005 3 ,600005 סחשסם 5 ,0+ 0ף 0חהו800 9 ,|סשחסס הזכ סה 7 ,08 חַהוץ0150!8 1 ,וס 60 60060868 1 ,665ח8זם 1 ,006 א68זם 3 ,56000 ,5זהוסקאהסזם 7 ,קם/. 0558 1 ,505שסזום 3 ,65| 6866 6 ,305 סח 00 ששחו 1 , זספשסזם 6 סהותסחטטבּ! 5\ 8/50 566 5 ,/סקסזק |סיטשהס6ץססטם פחססאום 8 ,60060 2 ,/סקסז 1806 2 ,/סקסזס 6 3 ,סז 50/6 4 ,10010875 5 ,000 3 61!65סז 4 ,חסוחטפָזהּ פחסאוום 7 ,ח60!!6600 פחסססטם 8 ,/וסקסזס 66 8 ,00//ץ6א ]סחץם 6 65 6 ,0[605זכן = 070ח500 הַחו0ה366כ 0 ,600005 00/6% 4 ,0[6005זכן א 5030870 3 ,65| 561/ש0ז ,68606 2 ,424 ,קם/. 51 ך6 ]6 1009 6% 0 סדנת לימוד 6.0 8\ 1 ,06 /וסקסזק |678ח68|606 5 ,066|3780005 6!ס ובע , הסט 68001806 4 ,חסאטס +הסוחץ3ק 806|גו68|6 5 ,8180!65/ ,076ו0060זכ 68/6806 0 ,665 ח300|ט68|6 2 ,סח 60 68/6800 3 ,608606חו 5 ,6/6005 /66005רח 4 ,/סקסזס הסטהוסקס 6 ,500 6 ,66001165סזכ 6 הוהחטז ,%ה06ח50306 ||68 1 ,קפ /. א | | 0 ,68|!58665 6 ,כ ז6ו|68 0 ,68|!5 101 0חו60606 1 ,ןסח 60 05ו68וחו רחוס 8 ,6 זא 8 ,5!ה/ו%0חו 1 ,6558065 רה סרח 7 ,05חט560 חַחוץְבוס 9 ,6זוו60ססזכן הזבו טט5 0 ,הקפש. כ | 64 9 ,660\11655סזכן 0חז!|68 3 ,חסאטפ |06ח68 3 ,(מ12) 680/85 0 ,58 ,הסקסזק ה68000 0 ,60 8% 00 2) 6ח5זסקוחהּ 0 ,סח 60 הווח רחס 0 ,סח 60 הזה 7 ,וסטחסס 68070הס 4 ,וס ח60 סרחה" 9 ,|סחס6 |306 1 5 6806 9 ,|סי 60 |806 1 ,ץוסקסזק הסטקה6 1 ,65אס0כ זטסחו 3 ,56900060 156 6856 4 , ;5800000 6.856 7 ,65560.8 2 ,/סקסזס ה0300ו|68565\/8 4 ,הסח 6865 9 ,80 ₪605 !60 0 ,חס0ח601!660 06/!5 7 60/60 68006 0 ,8065 /שוסקסזק ,6זו660סזק 6/60% 06ח68 3 ,393-394 ,/ז6קסזכ 6370600% 5 5 ,5071885 חו 8חו30!סז 6 ,571885 506016 ,501095 4, ,6חההוהוחס6 זוסו6 4, ,סח הוחסס 6עוזסו6 3 ,65א00 60666 9 ,ץע סקסזכן 606660065 6 ,ח60ח 6 80 666660 3 ,151 ,ץוסקסזק 67066660 2 ,0+ 6!וח6 4 ,חסוה2חהרזס 6הוחססטבּ 9 ,6/6 ₪65126 הזוס 2 ,פחו2ו!הטוחו 2 ,הסח 6 ,כו 56000 5 ,06 ההוב שוססחוצו 5 ,55| אוססחוצ\ 8 ,6005 עוססחוצ\ 4 ,ץשהסקסזכ 610 1 ,3065 6!וח6 3 ,?הסקסזק הסזט!ות6 4 ,ץהסקסזכ +הוס6שטססתו\סוור6 6 ,הסח זה 4 ,6600 61706 5 ₪100 61855 8 ,00165 61855 2 ,600005 3 ,0016000 3 ,סחוסחום 4 ,89חוץ065070 5 ,0/0005 5 2 ,16ו060סזכן 6% ע+וסמסזק 0 ,660\1/65סזכ /ש+וסקסזק 9 ,80!65\זהע סווסנוק 6 ,6|355605 2 ,60|!600005 4 ,360005 ססקטסום 3 ,600005 /65ו+וסקסזק 06 5 0!355 38/50 566. 6 ,600 ז6|68 0 ,16005 הסוח 6/60% >סון6 6ז וק %ח6/6 א6ו|6 2 ,חסחטס )וא 2 ,8507100 /\ 4 ,סחו!|8ס5ח! ,5חסהסו!קקב3 ז7/6ז56/%ח6ון6 אחז 11 2 סדנת לימוד 6.0 8\ 8 ,0080 ,03%328565 ז7/0ו56/+ח6ו|6 8 ,600 615 9 ,חס חהההרחס6 606116 1 ,6006 1 ,פחו!וקרחס6 זסז חהו2והחטקס 64-65 , סחסחשו צוססחו/\ 0006 83/60 566 5 ,6005[סזכן סס 300108 ,65!ו0סוח 6006 2 ,\וס0חוצ\ 0006 6 ,65 0 64-65 ,6006 פַחחחססחו 4 ,אס 20[60) 5 ,חס קט-קסק 4 ,אסכ 16ו0660יק 4 ,סח 6768000 ,65זטוססססזוק 9 ,פ\וס0חוצ\ 0006 6 ,00600705זכן 00% 6 ,(סכ1) פשססחושצ 6006 6000 1 ,006 68 4 ,85זזה !חס 4 ,6/6005 הַחוו0חהח 5 ,שוסקסזס א6סח1 9 ,6000 68 9 ,6/0005 9 ,סח 60 155 061הוח1 1 ,סח 6 ,%00|0375 1 ,(600) 000[60065 28%8 חסטפזסטבּו|ס6 60|!66005 3 ,0ח1655801] 00/6 7 ,65ה 00 7 ,פחסשטם 0 ,0656 2 ,6135565 2 ,1680675]הוחט!60 4 ,60005 0 ,3778/59 0ף 60זהקוחסס 4 ,3600075 60קטסז 0 ,וס חס6 15% 061הוח1 7 ,5107865 | 0 ,06 |06א= ,חוסה ההרח 3 ,116558005 0 ,5זססחווק 3 ,60005 / 65ודוסכקסזק 8 ,8!65ך 6 ,%00|0375 2 ,1507-0660 8 ,3180165 /\ 6 ,05ז0/\\ 3 -0[60זכ 860067 זסוס6 1 ,65א00 0808 זסוס6 5 50| זס!60 5 ,8|606ק זס|ס6 0 ,לפש א םס וס6 8 ,סחו/והז ,5חסאגוס 60זסוס6 9 00160 זחסוטוחג/ ,פזסוס6 2 ,601660000 75ז168006הוחט!ס6 8 ,/סקסזק 680615 הוחט|ס6 9 ,ץהסקסזכ פהוחט!ס60 3 ,008665 6000 5 5!! ח! 0%ח 6701665 4 50 6 0%ח 601065 4 ,555!! הצוסס-700ו 4 ,60016605 |הוחו 60005 606600, 4 2 ,05 6חהוחוהסס 2 ,116ו0060זכ %ח6/ם >סו|6) 9 ,הסט 06180|6 2 ,208659 655806 6 ,חסוססחט? 80% 150 6 00160 סחהוחוהס6 0 ,102 ,59-60 !600 הס טחוס 0 ,ץש סז ה00ק68 2 ,66/59 800655 8 ,עסקסזכן 85| , !סי חס6 ססוהוס סחהוח וס 5 4 ",זוסה6 4 ,66 2 ,ץק60שון= 4 ,0) 9 ,560006 +1 0 <" טסח1 2 ,וו 3 ,סחחה] 8 ,חק 4 סק 5 ,5660 6 ,5ח6רחרח 60 8 ,60000159 חהסוחחרח 60 7 ,ןס 60 הסטהההוחג/ 8 5 1800 7 ,סח 005100 36 קט 56008 0 ,60006 \סוצו קט 56008 0 ,60 צוסו/\150 1 1 ,0808 החו2וחהףזס 2 ,זה 655זססזום 5%8015 085, 2 אחז 1013 4 סדנת לימוד 6.0 8\ 6 ,600 0017655זק/5%005 0 ,60 05012 ד 1 ,ןסח 60 עשסן/\66וד 4 ,/הסקסזק 6!וח) 3 ,ץסקסזק ה6ז0!ות) 1 ,0065 3 ,?סקסזכ %חסזבק 2 ,/סקסוזק +00 0 סטסחו 567 0 ,600 זסשאסוק הס 4 ,60 06000 9 ,ןסח 60 עוסו/\ת6חסו] 5 ,סי ח60 ז06ו51 6 ,0ח60 חאוססטנ 4 ,וסחסס 8|08וכ הסוחוחס6 1 ,אסכ 01808 זסוס6 5 ,אסכ 01800 6 7 ,/סקסזק זססוו= 8 ,אס 01800 +חס= 3 ,אסס 01800 16|0] 2 ,אסס 01808 זחוזק 8 ,600 +חהס אוסח5 6 ,600 השק 0אוסח5 2 ,600 זססחוזקשטסח5 6 ,600 6עה5שטסח5 1 ,600 05 68וחטורח וס 5 ,0268005 ה50ו קרח 60 , (0חה 19| 6006) 6.0זהקו 60 1 ,600 566% ,5ז0ל8זסקס הס5והקוהסס 4 ,668 00 ,60168%65זכן ה50ו קר 60 3 ,5%90000 0856 ,85005קוהסס 0 ,תווקת 60 5 אש 1 ,חח טס 0150 9, ,סו 000% 9 ,500 3 ,0001006005 60/6 1 ,60006 פחו2ווחטקס 1 ,סזחו 60%[סזס 3 ,הווחה זטסזק 560170 1 ,קספש שון אק 60 1 ,2016005 פחוש58 ,05ח6חהסקו 60 8 ,00% 018!00 %5ח6חסקוחס0) 9 ,6000 26ו5!ס הטוס 1 ,808065ח3! ,5רח8זטסזכן זס6נוקוהסס6 1 ,63/5 01\/ ,61355 10ח1וס6וקוחס) 5) סקס ה00 60680008 7 ,61068 זסס|ו) 6!קט!טורח 8הוהוטרחסס ,5הסטוסחס6 5 ,0 00[660 ה6600הח0ס6 6 ,60 066086 ,6605 ה הסס 5 ,742 ,6קסז חהו50 הסה הס 7 ,5 זטוסתטוצ\ 6ה660 ה הס6 1 ,סוסא 605 0 ,605005 5 ,5ח0ט6ח ]קה 5 ,600 1 0 -סופחוסחו 4 ,60500015 8חו50 9 ,600705 00060% 6050 3 ,0 8סו!סכה זס הבו חס 0 ,וס חס זסחו8חס6 5 60600600 1 ,065106 2 ,ההוז 3 ,001600 660חז! 5 6 4 ,סרחה" 5 ,95ח60ט חסטקס 3 ,005 6500/06 0 ,סח 60 8006 ,הסוח 606 0 ,85זזה |סישחס6 3 ,0+ 60 0ַחו800 4 ,6000 4 ,6/6005 הַחווסחהח 5 ,/הסקסזס א06ח1 61 6 ,קסס! %א₪6...זס= 9 ,סההםחגוז 3% סהוסהסוחט/פַחוסהס! 8, ,375 |6!|פזהק 6 ,16605 סחו/סוחסז 0 ,רחס 50066 2863 0086 ,ופחהק וסשחס6 8 ,5500006005 |סח 60 4 ,0856 3 50900000 56|₪ 0856 2 ,06000108 4 ,60006 חח טסזחם סַהוסק6ז5 5 ,8!065/ 6!סהוזה/ חחו06בס 7 ,פססס! סם 9 ,\טח\ סס 8 ,סווח/\\ סס 1 ,₪56 1 ₪501 2 56600 0 0 ,005ס! ה80ז6ההטחס 6 ,פחומסהח זסזוס 8 ,605 3100 צוסו פחוווסאחסס 9 ,677075 01 065/ס 6 הס א 0 סקס +0\ , הסםווסחהס6 8156= 1015 6% 0 ,800 זס= 6 ,0005ס! זס= 18 9 ,5חה ו רחש 6!כטוטוח 1 1 6וסטוטוח 9 ,סחו!-4!6חו5 7 ,ססס | 5 א 4 ,08956 ז56|60 4 ,52 ,42 ,6005 0 ,סוחסחטז 3% חַחו00בּ 3 ,006-660 עפ פַחו0בּ 3 ,105 0ף 0חו800 0 ,0 ח60 007655 3 ,61105קסז 8חו800 1 ,0006 65126 7 ,פחוחטווםּ 4 ,ה וס חס פַהוחטווהּ 8 00160 %ח6וסוחג 9 ,60!05 0 ,65ו1סקסזק 3 ,חספ 5 ,105 0ף 0חו800 7 ,08 חַחוץְ0150!8 2 ,300!ו68|6 3 ,1860 ססחו 5 ,0/0 /005 זר 4 ,/סקסזס הסטהוסקס 6 ,50 0 ,102 ,59-60 , חהס הוחו 60 8 ,6/6005 הסרחרח 60 4 ,21800 הסוח וס 1 ,16800059ח חר 60 פחו!וכקרחס6 1 ,סח 0150 9 ,סו 006% 9 ,5000 0 ,6008 3 ,6005 |50/-) 8 ,605 61500 9 ,סה 5 ,₪00 הזה 5 ,סה 4 ,ו 0חו2ווחסספוס 2 0ץ3! 650012100 7, ,קט 5609 1 ,סט פחוסווס5 9 ,507860165 6% 06/6|0 9 ,15 וס 1 ,פוחווחס 7 ,חססתסו|מקה 115 9 ,סז חחח 5 סז 6 סדנת לימוד 6.0 8\ 5 ,5 הסוצו 5 1 וס 7 ,10 חס 6!קט!טרח פחוופו 2 ,/ו6קסזס 60וטהח= 1 ,חס 4 ,סחו!0חאח וסוס 2 ,6/6015 1 00160 ז06ַח6זאם 6 ,06500 הזס+ 8 ,008 00 וס 4 ,סרחה 4 0 חססס6חט1 8 ,5086000 |ב%חס2ווסת 6 ,88!!סז50רן 1 ,סי חסס פַחו2וח03זס ,שס1 1 ,אסטוססד פס[ 0 ,1806 8 15 1800 0 ,סחוו|558חו 8 ,2870!/\\ 806ח%0ח1 2 1!05סקסז סח 8 ,ידו ה הוע6ח 6 0 ,1059 0חו5)6חהיט 7 ,סופחוחו 8 ,0חו!306! 7 ,30615] 6 ,6/50806ח | 6 ,,א500 | 9 ,אוסו/\15 1 9 ,סההםחגוז 3% ףהוסהסוחט/פחוספסו 2 601005 חור 3 ,65א00 60666 5 ,20665 6000 2 ,חסטטט 0חהחוחסס 9 ,65אסכ 15% 4 ,5ח0אטפ חסטקס 7 ,8חוה חהרח 0 ,טחסו 7 ,ףחועסוח 5 ,6!מם!טוח 8 ,0058 ז0ו0= וחזוס= 8 ,טחסוח +הוחזוס= 9 ,1965 6 ,צוססחוצ\ 65וסקסזק 4 ,/סקסזכ הבא 4 ,8חוחחהּח 4 , שס0חוש 0006 פחהוחסכס 4 ,פ0? חס ַחו2וחהטיוס 5 366808 5 ,000 ז6חזוסזח1 7 ,1605 6%ח%67ח1 6 ,פחסטסס פחטקו50 1 ,אספסזנחסוק אחז 1017 8 סדנת לימוד 6.0 8\ 4 ,137655 חו סחוסבוס 1 65508וטסזוק 5 5 ,5100065 חח 3550 4 ,56000 8 ,3065 /סוסססזק 4 ,61105סכן תסו 17608 601 2, ,קש 56008 2 ,סוהסחטז 3% חושסות6ז 7 ,6512100 9 ,א00)א6 160 3 ,חסססחט-סכז 9 ,5070!!58759 4 ,56|60000 8 ,₪6]טרח 0ח56!600 0 ,שווסט 510600 9 ,1]0056)כ-|506018 4 ,ד 50 7 ה סזס|קאם 6%חזס%ח1 6 ,סז 60%[סיזס 8 0 9 ,ססחַ1בזהסקקהּ 9 ,|סחסס |סטב | 1 ,ף665א200 %אםץ 6 ,800100 ,65א00 אס 1 ,52 ,א0ם)א6ך 55 ,65ודו6קסוס 2 ,זסוחוך 7 ,סד 3 ,0חטסטסחט 8 ,501-078 3 ,6/6005 חססנום 2 6165קסזכן הססנום 3 ,28005 /זסקסז הסאטום 4 ,חסאטם 05000 1 ,01806סחו 1567 2 ,6טקחו 567 2 ,ץוסקסזק 6וטופו/\ 6 ,8501 /\ 6 0|!]58ז50/\ 6 ,וסט 60/\ |סח60 868 ;85ב |ס חס ;5ו0 חס 606% ;סא 8/0 566 0 ,60|!600 0!5ח 60 3 00160 6500756 57 ,6006165 0 ,6000 ז600|₪3 2 ,/סקסזק זססחוזקס 60651 2 ,0ח 60 שו ,₪65 פַהוץקס6 9 ,65םו!632801 |6/6|-6076 0 ,16!)05 66070566 ,/וסקסזק +החוס6 5 ,005ס! 6067 0 ,אסכ 01800 5זסטות6]] %071806ח1 וח6\1500 60806 9 ,5 ]ככ וו 65א06חו 8חוחו06 %ח6ח50000 אסא = דה=6 3 ,אס 01800 5006 2868 צו6\] 60806 7 ,סקא 600 676806 2 ,60 66806060 9 ,065א06ח1 676800 , (0ח50!| 6006) .60800100 7 ,חסח6חטז א60801006 3 ,600 או [608006) 6 , ח0סם6ח) 6!-|068 [66806) 1 ,607005 768%6 הסוצ\ 66005 חס הועסו 6 , (05ח150| 60006) 0 ה6 0 3 ,סחוסחופ 806| , הסחססחטז 6768%600[665 8 ,25600 /.) 65000 6768%6000[66%) 5 ,632.0 4 ,₪600 |50/) 7, ,סקא ₪600 676806 3 ,600 6015 |503/) 9 ,065 ₪6|0 9 ,ה 10 ה506|6600 7 ,םא 653 4 ,ההחסססחו פזוסוט 1 ,5 ז90זוו 7 ,6607056055 1500066160 ,/זסקסזס ה06800 הספזט 1 ,66070505 סח הטועבח ,עץהסקסזק 6קץ דוספיזט 7 ,65| 6|0 0חו360655 , (8ח 15| 6006) 60500306.0% 8 ,ץההק-זו ,5ו0 60 61500 4 ,2065 018!08 601500 5 ,3065|וח0ל 10 0 ,5רחה סז 6500 7 ,1 8חו2ור 601500 פ 2 ,(20[66005) 66055 868כ) 0 4 ,שסקסזק הסטו5סק6זטו50טה 8 ,ץעסקסזק אזהוהאססם 7 ,₪0 60 860ק וח 60 4 ,080 חַחוץ0150!8 5 ,/וסקסזק זססוו= 8 ,6005רח סחו-] 7 ,שח 6768000 ,65א6סחו 0 ,60005 6|מט!טרח פחוץוססרח 8 ,005ס! 6 ,6%0005ח 6עס\] 5 ,660705 הַחה0והח 9 ,ץש סססזכן הסה סו 1019 6% 5 ,50006 0086 5 ,08080856 615000 ההוחסכס 4 ,/סקסזס הסטופ5סק%ח66זסק 3 ,0[605ז 6 ,001600 66070561 3 ,0/8505 3 ,ץ!חס-0ז8אוסז 1 ,5805705 7 ,80605+ 4 ,600 5666 6 ,סק +50 0 ,אססחו זחהסזונו₪ 56000 ,65וס8ז 0 ,דאך. |קון5סהס 9 ,600 מה 0 ,0+ 0ף 0חו800 9 ,00 1 ,5006 0868 0ל ח600החהסס 3 ,08 חַחוץְ8ו0150 3 ,66070565 החסה טוח 5 4 50106 66070 0, ,קש 56008 9 ,600 9 ,08%008505 הַחוהטועהח 1 ,וקסוק 1 ,600 600008 0 60ה קרח 60 5סווסקסזוס 7 ,חסספסו|סכה 58016 2 ,5000006005 5001 (0חסס6 8606 ;0 ;פ|סץחס6 הסט 3/50 566 6 ,0+ ח6 08%8 2 ,2ו/\\ הזוס הסה 6 ,65 9 ,559060600 |סח(\ סכ ,65ו1 08%3 0 , 6ה2ו/\ הזוס בסה 8 ,05 החרוח 60 6 ,1605 וח'וס+ 5 ,507660 הוס-] הסוס ה2 רחוסה 566 , הסטה2ו|הוזסח 08%8 8 ,280וח08זס 08%8 6 סק 6 2 ,600 הזכ 5 ,0005 0 ,00 9 ,1605 606860זק 0חודוסקא6/סהטחווס 2 ,600 +וסק6+וסקא= 2 ,600 +וסק6גחווק 7 ,סש 56000 8 ,600 /צסח5 5 הלה 3 ,605 הסח6חט1 5 |508 8/50 566 0 סדנת לימוד 6.0 8\ 5 506 ,620115 ה08% 0 ,(0086) 6סזטס5 בס 0 ,1507800חורח0// 5066 בסה 3 ,,א00 1800 ז1507850ח1ח40/ 6סזנוס50 בזפס 65 ₪ְ8) 008 1 ,סח 60 808 0ף 6606 ההס6 2 ,6005 5 808 3 ,8!65/ 60ח61] 1 ,06060-ז50 1 81180165 5 ה \ 9 ,חסח8סו|הע 08%8 2 ,/סקסזק הז0ח6 |אבו\ 5 566 ,55306060%5 6ְהנטחה |-הסטוהסס-מזהס 2 ,ץסקסזכ 06ח%30356\3הכ 5 4 ,60055 8 ,50065ס!וח0 800655 3 ,סח 6/0 806655100 ססה 6 00160 |0חה וחר 60 7 ,5 +טסחסוא\ 6606 ההסס 6 ,6005 60 חס 0 ,600 מס 8 ,500 0868 5 ,ןסח 60 הסה 5 ,605 00 8הוחססס 5 ,660705065 0 4 ,6>חוחסכעח וסוצצ פהטסהפועטהח 5 006659 8 ,955 ,סַחטְ08קט 3 ,607005 סחוסט 5 ,105 0ף 0חו800 7 ,080 חַחוץ0150!8 2 ,0 3 ,00[6005 60070566 9 ,60 8% 0 ,פוחזס? 0ף 0חו800 1 ,5סווסקסזק 0 ,280ו/\ וחוס= 8% 7 ,065006 7 ,הסוח רח6!רחו 3 ,65א06ח1 9 ,חססה2ו|הויוסה 7 ,00160065 6 ,06165 8 ,80!65+ 7 ,60070565 |01500066060 אחז 11 8 ,6006 9 0 1565 4 ,0800 חַחוץ0150!8 9 ,סחסס 30 הטוש פההטוטהח 6 ,6 060006 ,65 סט ססה 0 ,08%808565 3060655100 7 ,0 0 60זהקוחסס 1 ,60 6000808 1 ,6 זס5זוס ,6607056%5ז 7 ,0+ , הס פסו|סכה 58016 4 ,/הס-0זוח+ 4 ,0605500זכ ה58600ח3ם 0 ,6001355/\\ ,5ה58600ח8 7 ,3300 8%3כ |הטפו/\ 9 ,65!+ 0חו300 3 ,5005 חוץקסס 8 ,6 08680856 0708000 1 ,465חח6 !6 1 ,65א06ח1 3 ,065 0 6!60 חר חס 3 ,5070606 6|כמ+ 3/5005 566 6 ,עסקסזק 6!0ו6הכ 6 ,605 חַחו800ּ 3 ,605 הסחס6חט1ז 7 ,חססהסו!סכה 58016 2 ,,/סקסזס 65!וחמזכ 5 ,סז 60 שה 4 ,וז 65002108 2 \0ץ3! 6150012100 7 ,5סוזסקסזק 7 ,קט 56000 1 ,5ו|50 1, ,סנ פחוחווס5 4 0060 +ו0ס6 הזכ 6 ,ץהסקסזכן 706ו%350הכ 7 ,חסטהסו!קכה 6!קרח58 9 00160 86850806 4, ,0/6 0800 806 5 , ;סח 00ה66הכ 5 5 ,108 5 ,2000 ז68\ 9 ,5ח600חו 8חוהוזס1 7 ,6007059 זו6א6וק דכ /עששו/\תהסוו 4 ,0016 6חופחס 1 ,דה צמהםטספס 7 ,5590006005 (00806ח3 |-חסטוהח6כ-8הכ) 5 וסס 9 ,65א06חו 8חוחו06 2 סדנת לימוד 6.0 8\ 9 ,50006060 אסא ₪ ד6₪5 9 ,5006 סז קסמס 8 ,80165 8חוח!06 8 ,50000060 = | ד חש ד|ה 9 5000060 = וד קסהס 8 ,3פ!סס+ פטטסס ו 2 ,0001806005 60/6 8 , !א 6%ח007ח1 הסו\ א6עו6 8 ,8 01 665ח555חו ₪0!6!גורח ה66ססם 2 ,500000605 |0יח60 4 ,60006 חח טסזחם סַהוסק6ז5 5 ,8!065/ 0!6הוזה/ חחו06בס 8 ,5106060655 ח0סו06615 4 ,5ח600ח [ק\ ,%ה00ח50306 6זהו6ס 6030 4 ,001605 00 4 ,פחססחו\ ]קה 9 ,5ח600חט1 5 ,8180165 3 "!קוחו 5 ,50006 8 50006060 וחוכ ,65!טה הפע חזה 06 9 ,102 ,5חססנכ 00|6ו0619 2 ,05 6חה ווח 60 וח 3 ,5000006005 501 01= |55 ,₪605 9 ,5 !ככ ווצו ,65א6סחו 8 ,5 1ככ השושו ,65וטב+ 1 ,5580006005 6עה!ו וק ופוח ,%ח6ח5%806 סמ =דם וסס 3 ,00ח6וח 6|6%6 5 5%000000 ח3600 501 םדם ושס 3 ,500000 ₪ דם וש 0 2 ,סחהההוחסס |!₪1 ,5שו 3 ,7660705 600000606 1!65, 4 65 6 ,086808505 3 ,65א06ח1 9 ,חססה2ו|הויוסה 6 ,06165 8 ,80!65+ 5 ,105 7 ,000005 6 ,ץח 0868 0 ,4 ס!סם!טוח 3105, 4 3 ,0116760005 6ק 1023 | 6% 4 סדנת לימוד 6.0 8\ 3 ,260080005א6 1567 4 ,5ס6אסס 56| 7 ,סרח 9, ,הסוטהסו!כק3 )0 65סחהםספחו 6!קטוטוח 1 ,50660 601/60 8 ,006 65140 0 וח0ו65 3 ,018060סח] 1507 3 ,פוחהזססזוס 4 ,200055 פחווחרחהזטסזק 6ו 65 1 ,00[605 6060060 7 ,5ח00ח60 אסכ 56| 4 ,165סקסזק 5 ,65000 4 ,00[6605 00וץ0650-0 ח56600 |וב)סס 6 ,605 0000ב 6 ,680675 חַחו00בּ 6 ,(5ז₪600 |בז07/5)) הסו5660 פוומזסס 5 566 ,%חסרההסזוטח= +הסההקסוסעסס 0 ,600% 06166 0 ,ץסקסזכ 6וח63ועסס 3 |אדחס 6 6ס[סזכן הסספסווססה ואדחס 5 1800 9 ,60 00 8 ,6 00 2 ;םסחה ח1 00 1 ,106 ₪00 5 ,וחזס- זו ₪00 0 ,5, ,6ו660סיק 00 6 ,65וז6קסזוק 00 5 ,םסה /\ 00 1 ,5 לרוק 0/8060 1 ס!ו60 4 ,!סחסס חס|הוס חסוהוחס6 8 ,5 סקר 60 0 ,005 ח16] %671806ח1 615000 670806 3 ,5001066 23%8 צו6 670806 4 ,615000 5 ,3005| חל 0+ 9 ,חסאטפ 06806 8 ,סו 0 שוחס- 3 ,160 1 ,חסססחטז אסססטקח1 2 ,8!065 חזנססז 6 ,60 8080856 56חך 1 20100,0) 156% 2 ,20065 655806 9 ,סרח ,הסס6חט? אס 50 120 5 ,וו 166000 4 ,חר ס?ח1 066 ח6קסכ 8חו5פוו\ 6 ,46-47 ,600[סזק /עס)] 5 ,חק 2 סחוזק 0 ,65 זסססזק 60%[סזק 9 ,הטוס ה56!6600 66070 7 ,606760605 6 ,5601805 /58160 5 ,5 58/6 1 ,5 6!|₪ 58/6 1 ,25 606[סזק 5806 9 ,16065 %0717866ח1 506|66% 9 ,1606 56|60 5 ,28065 /לוסקסזק 6ח+ 56|66% 1 ,סחוססבּ1 56% 5 5/6 .501 0 ,5606 3|6ד 65 ,6זס/וו6א וחום 9 ,085615 1 ,065ח558חו! וחזזס+ 6|סטוטוח 2 ,50805000 0 ,הסססחט פזוסם כ 4 "0 לטסץ3]| ,55 3 ,חס 500000 7 ,66070565 1560066060 8 ,60 600 9 ,1 1565 7 ,50 58/61 ח50766 ,אספ 01300 פסודוסססזק שְבוקפוס 2 ,חסססחו\ 0ז660ח6זוט ץְהוקפוס טַחוץה!150 3 7 ,6000059 סחסם 5 ,ףפ>חוז! השטסס-!!ו 5 ,תסו קט-קסם 7 ,6005 2 ,600 |503/) 9 ,5500007600 .5001 501 551 ,6805ו60זכ ד6צץ דפס 0 ,08005ו60זכ 10 151 , (8ח50ו| 6006) 6ס.6סחפוס 9 ,5530006015 .5001 = 551 ,63065ו60זכן 0 דצ דפזס 9 ,6000705 60/6 סחהטטט50ו 0 6ח00ח1 עס 0 ,הוחהזטסז 560070 2 ,,ח0סו85ו/1 1025 6% 6 סדנת לימוד 6.0 8\ (65וזהזם! | %ח11 6וההההץכ) 5 ווס 9 ,אע 1 ,פוחווחס 9 ,סז חחח 5 ,50 רסו\ 606% 6 ,0[6005זכן 6%ע2/000/ סחו|ו5%3חו 9 ,16760600 3 ,0[605זכ א 5000870 1 ,65והזסו! 06 7 ,5ססס! סם 9 ,טח ספ 8 ,סווח/\ ססם 9 ,ח6ח55000 |סח(\ סם 8 ,1ח50305000 6ווח\\ סס 7 ,6500 08 4 ,%00]0875 006%80!6 4 ,(0זס)\\) 001665 +חסוהטססס 005 606% 566 ,5)חהסוהט6ס 9 ,חסטמסזסח 00% 9 ,65ו611קסזס 0חו/506017 4 ,8חא6ו00!6-61 7 ,0 ,8חו80|חץשס 3 ,/סקסזס 6זו סוק האוסס 9 |ספ/.זקה)\חס 5 ,0800 08630856 חַחוש015013 ,5אחו! העטסם-ווח 9 ,ץוסססזכן כזסותטוס/\ ,66נסס 6טווס 9 080 ,סע 9 ,5 ]ככ הו 65א06חו 0חוחו06 ,5030666 אשסן קסהס 9 ,5 !ככ חואו 30165 0חוחו067 ,6ה6ח50000 = ופד קסחס 4 ,55| הצשס0-ק0ז 1 ,(86)] 5006 868כ) אפס 0 7 ;סחסוא\ 66060 החס6 0 ,|ס יח 60 זס6אסוק הס 5 ,ההכ 6567/60 או 7 ,23065 60/\ 6ווההחץ 9 ,85605 0 ,000005 006 8060655 9 ,30/80%8065 1 ,501 וו 60808 1 ,סמ 6 ,חסטוחסס זססוו-] 9 ,5ח00)ורחז! 1 ,8505ח/ץ0 5056% 1 ,פחססבסו!סקה [והוח-6 5 ,6558065 506055100 2 ,חס 8חו80ס! 3 ,0558065 5601108 3 ,סחוסחופ ץוזה6 9 ,טחסוח 01% 1 ,סחוסוח 2 ,שוווסופוצ 2 ,600 016 8 3ס!סס6 06 5). ) 6|!!051!5 1 , ;55800600 56| 1 ,5586000 5616| 5 01 566 ,0חו0600 חס 3 ,151 ,82 ,/לוס6קסזכ 60וטְהּח= 8, , !6000 המשה 6 ,68050]3000ח6 1 ,65ז1ו60ססזק 4 ,206601605 וח 676800 6ה06ח55300 סט5 סחם 0 ,005ס! ה0ח8זס רחס 1 ,5ח80וסוחו\וחס 0 ,חסססחו 1 פאוססחו/\\ותוח= 0 ,הסוסחטז ₪0 7 559006 קסס | 4 ,6000015 החו|סחהח זסזוס 6 ,פחוקסבט זסזיוס 8 ,5זסזס 31601 אוס סחו|וסשחס6 7 ,פסחו! 6006 חחווסטב! 7 50000000 זסזיום חכ 9 ,67705 ]0 065/ם 4 ,66076סזכ 80 דזסזו= 3 ,חסאטס |06חה60 ,שסא ₪56 2 ,5126135510 ,0!015ח8ח 6/60% 5 61 ,06601605 60%/₪ 4 ,פףחוו0חהח סזזוס 0 ,6000 ,5רח6פו נוחסרח 4 ,86 ,6/6005 0 ,תוסח 5 ,סח 60 ז68!60|8%0 7 ,68086 4 ,00!65ח 6!355 0 ,60018 4 ,3778/59 |ס₪חס6 8 ,0605-50%) 8חוו0חהח אחז 1027 8 סדנת לימוד 6.0 8\ 1 ,5ח6/6 פחוו|68 6 00 0 ,060)11655סז 9 ,0 065 4, 26ו!8טוח1 7 ,חס 6 8 ,056-0659 1 0 ,665 נוחסרח 9 ,הח ש00 גוס 6 ,פטשחסרח כגו-קסכ ,כ\6פגוסוו 5 ,65260 1 ,60 0חו0ח500סז 4 ,חסהסו!קקה 58/61 ח50766 2 ,560060065 החור 1116 2 ,6/6055 6!כטוטוח 4 ,066011659זכן 50601718 7 9 ,סחחוך 5 ,6008 ,5זהט!00סף 3 ,60700705 260/68 העשהו0-ז50 4 00166 %ח6 5606 \ 1, ,םז0ו|8/\ 4 ,)850710 /\ 1 ,06ה|רח6) וח6ס1ס6/\\ 6 ,80 5 דא = 0 ,00[60059 |066א₪ 0 ,5סט!8ע 06ח3ז/||06 3 ,00ח80א86כ ,165 600%80/6א6 600066 600, 6 0 ,665 3600 ה 60000 , (0ח50!| 60006) 6ס.ססטססאם 2 ,6זוו660סזכ %ח6/6 >סו1) ,חסחטס 6ואם 6 550600600 זסת זוא 9 ,ח5%000006 50 א 1 ,818065 / ,0661378000 זוסו|קאס 2 () 061860 הסטהוחהסחהסקאס 2 ,600 +זסק6וסקאם ,ססקט סחוסקאס 2 ,60 +וסכסגודוסקאם 4 ,66606006זכן 0618007 ,6551005זקאס 1 00600 ז00ח6אם 1 ,65וז6כסזכן 6600061 6 ,6%0005]005 50 0 ,חהזטסזס טחו!וכקהחס6 7 פס 7 הטסו 06/ם שוח 5 ,וא 6 ,א 0 ,אד 1 ,קפ | ₪ 0 06800 +ס\ , הסט סח ס6 8156= 8 ,(ז6זס!קא= 6%ח67סח1) 16| 605וסעב= 5 9 ,₪60 |ב0750 ,5דוסכ6ז 60 ההוב 3 ,5000000 .5001 ₪6 5 ,הוחו 0 ,5סט\אע חַחוץ0150!3 ח60|!6000 05ו6ו= 3 ,סח 6/0 06055100 0 ,עסקסזק +הטס6 8 20665 01800 6 7 ,80 ,%5הוחזסז שוח 8 ,פחסט6חנ\ 6!ח 0 ,פזוס 4, ,החסה !קוחהו שו 6 ,165 8ַהוסח 4 ,|508 9 ,טחסוח 6ון= 2 ,שווופופוצ 8 856000 ,וח5/500 שוח 6 ,005 6ו₪ 7 ,ץְ!0150 זס? פהחססות 2 ,חה 60 ץקס6שון= 6 ,שוסקסזכ שוחב )סו 7 ,66500 008 ,65וההחסות 5 6 ,8 00| 7 ,א00 01800 ה6ק0 6 ,0חו/8/58חהוחסקס 7 ,808 ,(8561100/\) 66(טס 00(665וח506ץ5סוו= 8 ,5530007005 5001 = 551 , ההססחס ססות 6 6800ו60ז אםם/ז₪5 7 ,5ח0טו0חס6 6!סט!טר 8הוחוטרחס6 4 ,260160800 ה50והקוח 60 6 66ו60זס א[ 6 ,6806ן60זכ 16 | 5 ,7 ,/וסקסזק זסטוו= 9 ,1600005 סחו=] 9 ,481 ,60000 5%זו הו 8 ,65| 8ַחו0חח 56 ,הסס6ח עשססחו\ס הו 3 ,81180!]65/ ,5071005 ה0%ח6|-60א8 1029 6% 0 סדנת לימוד 6.0 8\ 9 ,600-6005 ,805 7 ,שהסססזק ₪305 60!05, 1 8 ,אס 01800 +חס= 9 ,ץש6קסזק 5זה3%5070!!5!= 9 ,חסופועו0 זהוסס-פחהטהסה 55 |סיחסס 566 ,וסישחסס צוסת 4 ,5ח8ז0סזוכ 506160 ,0₪5+ 0 ,65א00 01800 +חס= 4 00160 00% 1 ,שוסקסזק +חס= 9 , !סש חס6 |306 1 9 ,סח 60 600% דח6ו ,5סחס+ 0 ,מסס! ₪806 וס 6 ,0005ס)| זס= 5 ,קסס! %א6)...זס= 6 ,3778/59 |ס₪חס6 5 ,ץסקסזק זס|ס66זס= 8 ,127 ,00|08ף 0607 וחזס= 5 ,65א00 018!00 רח6\15%60 ,3005!קוח0ל וחזס+ 7 ,818065 |6ע6|-החוס1 7 ,60070560 0150000660060 ,6ו660סזק %ח6/6 1.080 הזוס 9 ,0+ 1!6ח6 ,6/60% ₪65126 הוחזס= 3 ה,החסם6חט? +הוחזס= 8 ,טחסוח +הוחזס= 9 ,חסוססהט? ץ6ח6טשה רוס 9 , ח60ח שוחו [ 800 הזוס 8 ,סוס חוחהוזסז 08%6 8065, 5 5 ,2000 ז68\ 3 ,65 ווח , הסטסחטז +ההזס- 8 ,5ח600ח1 9, ,100 0866 0 ,85זסטהוח סהוסהטסז 2 ,1077855 6וזסרחגוח 2 ,49 ,פוחזס+ 9 ,>חו! 5165 ס6/\ רטוש ,אס %6טססה 6 ,066551808 2 ,6600 ותזס- 606 5 ,60 חַחו800ּ 3 ,600015 חַחו00בּ 8 ,65ז60וכן 0חו00בּ 0 ,;זה00!0ץ 55300870 הַחו00בּ 8 ,500!0875 0חו800 5 ,6000015 סחנוסם 60 4 ,2800וח08זס 6הוחססטהּ 2 ,פחו2ו!הטוחו 5 ,5055!! אוססחו/ו\ 8 ,2860ו/\ וחזס-] 28%8 ,5הסטטוט 0חהההוהסס 3 ,37785 |0ח60 7 ,520 הסוח ,5וסחס6 9 ,00607605 00/6 סש פחווסהסס 0 ,600705 68 7 ,605 08%8 0 ,2ו/\\ הזוס הזה 7 ,חסספסו!סקה 58016 ,08%008565 4 ,06500108 6 ,60007015 6 ,ץח 0868 0 ,פזס+ 6!כטוטוח 3 ,0ח/0150!8 3 ,00065 006% חו חַהוץהו50ו 7 ,005 ח60 6!קט!ורח פחושוהו 3 ,סח 56 חַחוובו 4 ,6/6015 1סוו 4 ,וח 4 ,0+ 0!וח6 1 ,)אזסש\ס וח 13 2 ,665חהסחו 6!כט!טוח 3 ,0+ %חסזהק 2 ,208065 655806 2 ,000!655ח/|008ח 4 ,05 עש6ח 300100 ,6וכטוטוח 0 ,פחוחחהח 2 00 פזופק 6 ,600 גוחסוזק(\וססק 3 ,05ז06601ז 5 0 ,6308 8 ,65וזוסכסוק 6 4 ,669וסכןסזכן רשו 0הו0ה6ז1 2 ,6/6015 567 6512100 1 ,50 0 ,קט 5 2 ,08ח5\106!3551 0 ,ץשוסקסזק הססוש\ 5 8500 , ( ו דרו) פההחזסז 3 ,6007056055 ע|הס-0זהעוס1 4 ,ןס ח60 שוחה" 9, ,5!סחסס 6!קןו|טורח ,65וחהיז 0 ,הסססחנ 666 5 ,חסו5ח06א6 זה 2 ,/סקסזס 6סהקוהסז= 506 ,06ַהקסחהסז= 6 , חסופח60א6 א 9 ,65 0ח5167חהי , (|ססס6סזק זסו5הבזד 6ון-) קדה אחז 1031 8 ,/וסקסזכ 56!66%וסמווט= 3 , !סט 60 הס6חט= 2 ,₪600 80 2 ,86!)05 הסמס6חטז 9 ,0ז0סץ6א הסטסס6חט= 7 ,506003000 |ההסטסחו 1 ,פחס6חוו1 1 ,5586007605 .5001 01= 551 ,300760866 7 56 0 ,68]!58665 4 ,6800 6 ,6חו |60חה ו 666660 6 ,וזח 3 ,5580600005 סל וס 7 6 ,.6!-|068. ]670806 3 ,0חו0חו 3%6| ,68%6000(660) 4 ,וכזו 8 ,חסוהסו|כק3 0|6רח58 08%00856 5 ,00 2 ,6600חסוט)ץהוקפוס 0 ,1 פאוססחו/\\וחנוח= 0-0 56 ,ססחו\סחו- 3 ,וס 9 ,6ח6 זוה רוס 9, ,6 [ רחוס 8 ,8חו 10 9 ,605ח3 וה 0 | 6060 0 סטסח1 1 ,אסססטסח1 2 ,05| תזנחססז 1 , ;שפח 9 ,5ח1 8 ,0856 ] 2 ,60 | 6 ,192-193 ,חס | 3 ,סו 1 ,184 ,א15000! 9 ,816 זוז 5 0 5 ,0655]1055806סזק 7 ,זס!|0860) 5 ,60306 7 ₪0 5 2 ₪0 6 ,₪008 0 ,חטסא 5 ,5 58/6 1 ,56006 2 סדנת לימוד 6.0 8\ 9 ,58 ,506 7 ,עססחו\\אוסח5 3 ,350 0ח5 577 570000, 8 5 ,הסה !קוחהו 8חו50 5.0 3 ,5110 55 0 ,זסוחודך 6 הז פיד 4 ,חוד \!0856, 8 \|, 192-193, 7 96 0 ,6רח ץכ א66/\ 5ח0סחסחטז 6|₪ 8/50 566. 2 ,/סקסזס 6 דהסט6חט= 6 6 7 ,660חה? /סוסקסזק |678ח06) 0 חר 60 26%) 6 ,0 60 3510 ד ז6תזס%חך 4 ,165 360655 והססחםז 7 ,60 אהטח-60) 8 ,080008565 6|כם|טורח והסז הסוס הרסהו הסוס , (60ח50!| 6006) 06.ז60005) 8 ,חסם6חט] 76650866-א26%015) 6 ,0זסשוץ6א |הססו) 20600005 60/60, 8 6זו וז 66% 200-0605 8 ,85זזה !חס 3 ,שו!וסופוש טחסוח 4 ,וח 0 ,6005 60 חַחו800ּ 0-5 0 ,1806 6 ,.806ח6/5חו | 9 ,10 חס 65זנססוכן פַהוסבסו 7 ,ץסקסזס 6זססוק 1 ,אספס6זוססוק 7 ,65/18065ז סוק 7 ,60806 1085 7 ,וס חס6 15% 1806 2 ,600005 3 ,סח | 8 ,.6זן\6וקשחוהק 5 סחוזק 6 56 1033 6% 4 ,(וזס? 105) סח 9 ,שסקסזכן 65ח 101 3 ,6000705 הסח6חטת ,5660005 זסזסס= קטסז 1 ,1560ו6!8 ₪ ק(\03₪0 , (פהחפו! 6006) ס.קטסוזס 0 ,1 5 56 506 ,15( \כ) ה 5ח6/6 8ַחווסחפח 1 ,15ח6/6 חחו!|68 6 ,00 0 ,060)165סז 7 00 065 8 ,08060וח! וח5/500 7 ,08000חו-1567 2 ,6885560 1/1100 , (0ח50!| 0006) 6ס. פחוטבר] 6 ,600 %0 0חו800 ,680015 8 ,65א00 655806 , חססנופ כוסר] 3 ,אסכ 01800 כ|46] 9 ,הסוח כ!16] 3 ,/סקסזס חה וסוס 1 ,סקסזס 10א6חס0ו6 3 ,;/סססזס 6!וח סוס 5 ,866 וחזוס+ א=ססז 2 ,60700 06ו41] ות 1 ,0065 1 ,ןסח 60 עשסן/\66ודך 8 ,חסטקס 8חו5086 |ב%הסקוזסר]ן 5 ,25600 /.\) 0565 0 ,0!5י חסס טחס1!] ,6675 זסח 9 ,סז 8חו366ז הסור 9 ,/סקסזק הסו6|660פזסעסר]ן 6 , !סש חס6 ז0|!8ז150] 1 ,65 | | דר 5 ,00007605 6%ע00 1 ,66הק עזסטף ,ספה 2, ,0 62055 סחוזדוסקאס 5חזסז 5 ,600וח 05% 8 ,600005 זטסחו 567 8 ,0 60 35007 ך +6תזס%חך 9 ,ץ/8063 360 טהו/6ח סז 2 ,805+ 0 ,5 5 4 סדנת לימוד 6.0 8\ 1 ,06ה|רח6) רח106ס6/\\ 2 ,800 ,(0%0601זק ז516ח3 ד זאסצוסקעת) דד 6 ,0 60 3500 ד +6תזס%חך 7 0160 אהוהסקערן 9 ,6>חווזסקעח 4 ,080008505 הַחוה0ועהח 6 ,חסספסו|סקה 1 זסו|63 , והחווחז6 דוסקערן 1 5חססן 2 ,10 0ף חחוחופפהּ 5 ,20865 655806 6650056000 !6060 55900, 7 4 ,(ח6רהחסזושח= +ה6והקס|6ע6כ 8060זסס6ח1) שס1 3 ,680/85 6 ,חצ 6006 3 ,8חוא6ו6 6!ס וס ץכ חַחו300 ,5וסחס6 7 ,150028 2 ,50000605 !סי ה60 060000108 8 ,006 ח8ופסס 3 ,0+ חס 8ַחווו 0 ,600[סזכן 0חוש58 60 ,5חסטקס זהסוההסזוטח= 8 ,ןס ח0ס60 |806 1 7 ,זה הסוח 1 ,05 60 חחו2וחהףזס 9 ,זסזס|קאם 60%[סזק 5 ,אוססחועט ז66[סוק 4 ,54 ,אוססחועט 5סודוסססוק 8 ,06סחח הגו 1 ,0[6005זכן הַחוצ58 7 ,0 חר 60 508 5 ,כ +50 2 ,01ח60 א00+אסד 0 ,%00|0375 1 ,אסס!|ססדך 4 ,וס 60 סוכ חה הרה 60 חַהו800 8 , !0 ח60 זהם|סס ד פַחו00הּ 7 ,6005 6ו5חוטחו 9 ,05 ד|ססדך 0 ,05 6 ,זה אזסצ\ 8 5600060 ]1 9 ,866הכ חופס! ספה 9 ,05חהרחרח60 6!כןט!גורח 1 1 6וסטוטוח 9 ,סחו!-8!6חו5 (567/67 הסטהותזסוח1 6%חזס%ח1) 115 0 5 9 ,0060 5655100 1035 6% 6 סדנת לימוד 6.0 8\ 3 ,5ח550!רת סכ 16660 7 ,חסטסתסווסקה 5זז 4 ,6 /\ ה61500 1 ,6016 /\ 36 !רחש !ואד 0 ,0ח6ח500ח1 6001855\\ 12 ,0176600165 |הטםזוצ 0 ,וס ח60 186 0 ,ץהסססזק 576% 2 ,/וסקסזק 1806 4 ,60 306000 7 ,168 ,|סשחסס 15% 1806 9 ,13065 0חו800 7 ,6 06500 3% קט 500000 0 ,60006 השועו כ 560000 7 ,3065חן 9 ,%00|0375 6 הט 3 ,8180!65/ , ה7800זה!060 אוסו!וחו 8 ,660705 6!קט!ורח ,5קסס! ססווקוחו 6 ,6068 זסס1 ,665הסו60זכ א 1 ,0016005 86/8060ח1ן 9 ,(50) 65| 06טוח1 4 ,סז הסה הז 0 ,אססחו 8 בבק א06ח1 0 ,51 ,שוסקסזס א6סח1 5 ,875זה |0יח60 בכ 7 ,שח 6708000 3 ,06500 08%80856 9 ,5 !ככ וצו ,הוחו 5 ,ץ66א-6!מם!טוח 6 ,66 סוסכ .5001 פחו2ווחטכס 0 ,50 4 ,ץ6א-0!6חו5 2 33060 28% |הטפו\ 7 ,850 ,קפ סוס דופאז 7 ,605[סזכ 26/6 חחז!|ב56חו ,₪165 -אז 1 ,פחוסוח הסטהותזוסזחו 6 ,סוסה חו 8 ,585 ,865 זא1 8 ,חססחסו|סק3ּ כ1 זס!|68 7 ,קפ 1-65 4 60/60 26|הטוח1 1 ,65 6כסזכן 061ח06א6 ,%ח6ע6 65 זסקסזלטוחך 9 ,60!05 |סח 60 8 הוחה6סהרח ,6 ו660סזס +ח6ע6 ()65וסקסזלטוחז 0 ,חח 60 6טקחך 1 ,65א00כ זטסחו 1 ,פחומסאזאו- וס 0 ,חסס6חט? +טסחך 0 , 6זסאוץ6א +טקח1 1 ,חסססחטז אספסטקחך 2 ,605ט]8ע זוז 1 ,חסספסו|סכה כ1 זסו|63 ,ץ+וסקסזס חס סטסחז 6 ,אס 01800 16|0= 23030856 +56ח1 1 ,58665 6 עה| ובר ,%חה6 56006 כדא1 דהשפך 1 ,אסס 01800 0[66) +56ח1 6 5000 ה0ס6ב .501 דא=פאץך 6 ח5000006 ה600בה 501 סדא1 דהשפן , (ה50!! 6006) .+ 6פחז 1 ,0[605כן א 50000870 ,₪165 הססהו|503חו סחון|5%39חו 0 ,6000705 6/6 4 ,₪605 |ב650 5 הח 6 ,635505 1 ,פוחזס+ [סו! 9 ,סז חוסחהמל5חך 9 ,66 ,/וסקסזק 8חו6ח3ל5חו 9 ,חססס6חנ 5ח1 0 ,קחש אםא זפ 1 ,הסטסח צ506חך 9 ,חסופועו0 ז600סחו 9) חסופועטו 7ז606סחו 8 ,280!ו/\\ 1866ו%6ח1 2 6סווו6קסזק 2 ,86הכ /זההוחט5 5 8 ,006106005 6/6 3 ,600 ז68!60|8%0 8 ,רהה זטסזק ז68!618%0 חס 1 סח 2 ,00610605 6/6 7 ,60070565 1500060060 1 ,פסכב ווהח-6 55 ,6558065 8060655100 2 ,חס פַחוספסו 3 ,16558065 56001100 8 85010 /\ זסזס|קאם 6חזססח1 7 ,5 ,05 00 סע 3 ,00665 6/6 8 15 1605]סעב= 8 ,5601805 /10ו506 אחז 1037 8 סדנת לימוד 6.0 8\ ו 6 ,6000705 6/6%/ 4 ,1/6059ו%5/270060ח6 6 5 ,10 \/85010% 6705, 6 5 566 ,56/61 חסטזהוחזס)ח1 6%חזס6ח1 1 ,250 ,567/65 6%ח%6ח1 2 30306 ]!] 567/06 +6חוססח1 8 ,01100055ח5 6%ח6לח1 9 ,3005 ז6ח6ס וחסז טהוהסחטבּ| 600 ז510ח3 ו ך ז6חזסזחך 8 ,ד טס הוע6חז 0 165 0ח51671חהּיט 0 ,/וסקסזק |פ/זססח1 4 ,63056 כ דא1 , (60ח50!| 60006) 6ס. ססח1 7 ,60005 6ופחוחן 0 ,184 ,60500065 6ופחוסחו 4 [ספע 4 ,25670 //) 0ה508ח60 6ופחוסחו 7 ,6000059 6ופחוטחו 4 ,20665500 ה0 85800 ,08530856 /זס6תסעחו 1 ,סז 8 10 5 ,00| 0/1460 , הסחפזסו %-ד 7 ,6חוחח6 36% 3 ,0 1 ,61605קסזכן ,|סיחחס6 868 1 ,סז 06ח680356\3הס 1 ,0858208505 0ח50|660 1 ,5000005 5001 ₪01 551 ,05וח5חה0ס30וסז 80!6+ ,68056 אזסנ 2 ,681566 202114 , (ח5ו! 6006) אס חוסב 9 ,6/0005 6 8 ,172 ,;/סוסקסזק 6 0 ,60166005 5 60 600 2 ,6/6005 חסאט 0חההוחסס 7 ,66/5 300655 טחסרח 6 ,5+ סח5 7 60/60 הצוס 6 6/6 055 6 6 ,0חח5!! 6006 6 ,אסכ )א6 68786007 סססורחז! 5 2 ,סע 8 סע 60005 1 9 ,חסטסחט= 0 ֶטסח1 6, 1 1 ,443 ,אוס)] 1 ,1765ו660סזכ ,ססהעווק 1 ,605ז1ו60ססזכן ,6ווטגוק 2 ,50800 5 ,5ח6/םרטו\ 2 ,החהההוחסס |! 1 8 ,0 ח0ס60 |6ה | 0 ,שסקסזק +הסהרהחטו| 8 ,0 )א ד 0ף 60 60 9 א 9 ,6סחהזהסקקהּ 9 ,סז 0526סוו 8 ,82068780606 %א6? פחוו6ס ב 7 ,(8חוכק8 זסזזס) 5סחו! 6006 8 ,60007015 2 ,105 65000 חה סקט ,5וססב! 1 ,5ס6הּפָחבּ| 7 ,טסו ח0סס1 6פָזבּ | 2 ,118 ,סז 06ה8ה6זב | 3 ,פחוסחוס 66| 5חהזטסזס טהוהסחטם! 4 ,חסססחג\ |ו6ח5 0 ,סח 5030 8 ,;600ח1\ 60856 | 2 ,חסטסחט 6% |[ 6 ,שוסקסז 6 | 6 ,192-193 ,חסססחט? ח6 | 6 ,61008 ז1|00 ,63005ו60זכ א | 6 ,68005ו60זכ 165 1 , (ח50!ו! 6006) 166.00 6 6/6000 655זק 86 ,אס 16% 686007 סססווחון 9 ,280!ו/\\ 1806ו60ח1 , !סו הס6 00 )א ד ז878600ח ס6שורחו | 2 ,600 6600 6786007 ס6םווחזן 3 ,קפ סם הואז | 4 ,חס סח | 5 סחון 9 ,|סי 60 |806 1 ,וסקסזק הסטקה6 2 ,665א00כ זטסח1 3 ,600 6חו 1 אחז 1039 3 ,סחסס ז6חו%3ח0 5 01 ,6605[סס 60>חוו 9 ,ף5סאסכ 5%!ז] 9 ,ססחהזהסקקהּ 6 ,600059 חחו!|סחס6 8 ,בוה 56| 0 ,5ח56!6000 6|סם!טוח 0 ,0ח6-566000!סם!טוח 8 ,5וח6סו הַחוו50 3 ,060080085א6 507 6 ,600 א5000 | 4 ,קפ/.א0ם ד5דו 8 ,סם/. | וז ד5דו 9 ,177 ,ח60!!6000 573065 | 0 ,שסקסזס א150006 | 5 2 ,םש ע/מאססה 95 ,קם/. זפם דסא 9 ,9565הו!3 80!6? ,185.04 8 ,ח50006 = | ד = ד | , (ה5ו! 6006) 0 סהד6|ה 7 ,סח חס6 םהש 6ומטוטר פהוחוטו 60 אס.זססחה 9 |ספ/ קתה/זקה 7 ,68ו60זכן אםם = ,א 6066 2 ,424 ,קם/. ד5ם ך6 ]6 1 קפ /.א6 | ]6 1 ,םשכ | 61 7 ,קם/./א 65560 7 חסוחץ8ק !רחסו 6+ 63!0|806 0+ 0006 0 ,ס.א דפחס 60 5 ,02680075 ה50זה קר 60 ,6.0זהק וס 1 ,םש םה אקוס6 9 ,65א6ח! 6768000 ,06. 6080000 1 ,600005 76806 הסוצ 600705 חוס 6 ,א 6 7 ,65)]ה/ 1160 206055[00 ,50086.0 0 ,דאד. \קוה5סהס 0 ,68005ו60זכ 10 151 , (8חה50ו! 6006) 60.6חהספוס 9 |ספ/. זקה)\\החס 6 ,5.8 דאם/שם 0 ,6165 ה3600 6606000 ,000 6000סאם 2 ,60]!600005 0|6ח8ח סל ה₪86 זס= 8 ,08%808565 6!קט!טוח והסז? הסה זסזחו טס הוש6016ז ,60056.0 1 ,156ו6!8 צם ק(\0 אס.קטסז 2 ,6!3\1560 1\/11\)6] ,06 ַהועְבּרן 7 ,850 ,קפ סוס ופא 7 ,קספש 65א=זאך 6 ,5000006 ה0ו 360‏ 501 0 דאז 1555 .הז 0 .אש דפ 4 ,₪856 0 ד , (0ח50ו! 6006) סט ססח1 2 ,150ו6!3 20214 ,9 חוסנ 6 ,68005ו60ז 16 | ,166.06 1 3 ,ספ סם תואדו 4 ,קפ א0 ד5ד1 0 סדנת לימוד 6.0 8\ 8 ,ספ ש/. | |1 ד5ד1 4 ,ספ /\ם1/ דד 1 הפש דאז 0 | 5 ,ספע. 6 וזה וז 1 ,קספש אםרדדה ו 0 ,17 מהח6) דאד.כ וזהסזסוו 9 , דאד.(17 כהח6) דאשאהקזסוו 1 ,(17 סהח6) דאך.4ו 5 5זסוו 2 ,דא ₪קנואזץוו 9 ספ .6 |ה6ץו 7 ,דאד. צמחה האסדדקס 9 ,קםש/. דפא1/\ש חק 0 ,ךא [קו]ה5סכא 5 ,קם/.65)\ |וקםא 7 ,0וושס דקא 3 ספ סוישס דקא 5 ,065 6!כ! טרח והסזז 6105 56166000 ,58|65.0%6 9 ,קפ/. םשכ 565 55| 055.80 3 8 |ספץ/. ד1/] 5 0 ,דר 85/ם |קוא51 4 ,קם/.5שכ1 51 8 -56הח/0 )וטס ]0 זס00זס +50 8ַחוץו5060 ,(0ח50!! 0006) 50.0% 9 ,ספ ד 0קא 501 5 5, 1 50801 55 .\/8, 3 1 ,חח 300760866 ,אס והוהוחט5 6 ,ספ סוםסהטפד 1 5 םוא דםרוד 1 ,לפש אש חם ודד 6 ,11605 63/60|3060 6768000 ,06 ססווסזסד 5 ,דד ד 7 80 קחד 8 ,ספ .םד 7 5% ח3600 5001 = דהסק(\ ,0806.0%כ\ 9 ,ו דר.5ם 511 3 ,דה 5-0 3 ,קספש סםסם/א/ש\ 3 ,6!8\156 = =רו/\ ,0 6סח/\ 4 ,ספ/. סואםססאסשצ\ 5 ,600 200 , ה60!!660 5070005 | 9 ,311-320 ,!0ח60 עש6ו/50 | 8 ,10801605 ששח 3 ,וקסוק 4 ,ספ/. ע\םז דד 9 ,סט חסס 3050 ד ,%ח6/6 080 | 0 ,0+ 6!וח6 11 ,6זו60ססזק %ה6/6 1080 0 ,91 ,500600000 1080 1 080166 6600, 8 7 ,רה סז זס68!618% חס 1 3 ,60007015 חַחו00בּ אחז 11 2 סדנת לימוד 6.0 8\ 5 ,0000 606% חב 35 4 ,חסאטס +הסוחץ3ק 68!601806 0 ,06165 זכ ה6/0800ח3\ ,5וס 60 הס הרוס 9 ,6659 סוכ הס ה6/6רח3 ,5|סחס6 |ספב 1 0 ,65וסכןסזכן ה0ק8/סחבּא 6 ,6006 6זנו60ססזוק 1 ,6005[סוכ 0חו/58 7 ,018060סח! 1567 7 ,8118065 |068! 1 ,ץסקסז 106660 3 ,660105 חַחו66ס! 3 ,להסססזק 6כץ 10661 0 ,1165 00% |08ח56006 ,65ו פסו 2 ,ווהח-6 ,חס 8חופסו 3 ,000 |8סופסו 9 00160 חסו5655 57 ,ספה חופסו 2 ,600 חסטס | 1 ,ספ דא | 1 ,%0!65 קט)ססו 55005 סחוקססו 7 ,סכ 9 ,טח ספ 8 ,סווח/\\ סס 2 ,0600001089 4 ,0006 ח8טסזח) הַחהוקק5% 5 ,8!065/ 0!6הוזה/ החו06בס 0 ,חס זסוהנוחס 6 ,וס 0 ,800 זס= 8 ,600705 6|מם!טרח חוץ)וססרח 8 ,135 ,6ז0ו0060זכן 6/60% 050-0605 1 4 ,6000 3 ,/ו|וטופוטחו טחסוח 1 ,008065ח3]! |6ע6|-צוסו 1 ,80306ח3! 6חוח6הוח 5 ,קפ סא וזה וז 7 ,חסטכ 5126 6וחה5 11846 1 ,501 ,65ח6ח5%800 ס6עה|טקוחהרח 1 ,סחוסקהוח 3 ,2665 סז |סיחס6 ז68|6013%0 9 ,שס6קסזק פהסטקסו|הח5זהו 6 ,006780005 ח%הוח 7 ,00860 5/חסטו0בּ 2 ,וח סקאס 2 ,חסופועו0/ חססהסו!כטוטורח 3 ,60606006 1 ,קפע.אםרודה ו 2 ,100 ,/וס6קסזס 60% |אבו 2 סו 4 ,פוחז0ס? 6!וח6 4 ,2800וח08זס 6הוחססטהּ 5 ,5055!! ששססחושצ 3 ,0 סו!קכ3 זס 0החה₪1 חס אזסצ\סוחה 1 ,]66 סוחס 8 ,0|306וח6+ %חסזהק 2 ,הסח 9 ,605חס5חו 6!סט!טוח 1 !וזה 665[ס0 רסו 608 3 ,פחו2ווחטקס 3 ,0+ %חסזוהק 6 ,0+ 0!וח6 קט 500008 6 ,105 %חס הכ קט 500000 4 סכ 8 7 50| שססחוצו 8 ,פחוחסטופסכ החזס? ,5הסספּסו!קקה3 (1866ו6שח1 +הסותוססכ 6וסטוטוז) זסויז 6 ,ץהסקסזכ סווה6זסוו 0 ,(17 סח6) דאד.ס וזה6זפוו 9 ,(17 סּת6) דאך. דא אה קזסוו 1 ,(17 ספת6) דאך.64 = 5זסוו 1 ,פוחוס1 ס!וח6 1 ,הוסצוץ66 סו 1 ,105 ,5665 סרח 4 ,/סקסזס 8 הותססא ,/הסרתסוח 7 ,(סכ1) זט טחסוח 9 ,0875 ווחסרח 2 ,/סקסזק |סיטחס6 חס 1 ,0015 60 ח16] 2 ,368 ,150 ,זסזו0= טחסוו 6 ,5070006 הסח טחוץו סרח 5 ,תסו קט-קסק 8 ,3778/59 וחססו טחסרח וח 7 ,6/5א 800055 1 ,360055 החואססום 3 ,ץוסקסזק 666660 1 ,16005 600108 8 ,266%001005]א6 ז150 ,005100 3 ,,/)סקסזק 60וטהח= 1 סוס 860 5 ,פחוקטסזום 2 ,סו 9 ,0375 נוחסרח אחז 1043 4 סדנת לימוד 6.0 8\ 6 ,50006 פַחוץ)ו סרח 3 ,סעס!-6!סם!טוח 4 ,/סקסזק הסופ5 סקל 0טס\ 4 ,קט-קסק 6 ,80080 5 ,0875 ז50878%0 9 ,66759 50011606 3 ,ץסססזק 91016 4 ,עסססזכ 5% ו/שססחו\ 005 38/50 566 2 ,208665 655806 9 ,ףפח0טכ 06180|6 8 ,חססחטפ כוסרן 5 ,16005 9 ,סרח 1 ,184 , חסמ6חט) א00 150 9 ,16 חהזנסז 853-855 ,ח60|!6600 116558065 6 ,אסכ 01800 זוס0ווטם ססוססוו 5 ,600005 0 7 ,ח60!!6600 פחסטם 9 ,ח60|!600 50108065 | 6 0 2 4 ,06חהו\ 56 5 ,16065 15% 1 ססוו 5 ,סח 60 ז8%0|ו68!6 4 ,61706 2 ,65!ו00ח 6!355 6 668 8 ,0!5 2 ,5ח60|!6000 7 ,65ו6קסזס סל קוחס6 9 ,0526 ח600וק חס 2 ,668000060 3 ,אחו ]668%6 8 ,85600/) 6768%600(66) 3 ,6600 2 0 6, ,6006 2 ,1000 וסקאם 9 ,)חח 9 ,481 פזו סחו= 7 ,)הת 2 ,3005 2 ,06 7 060 אהוחסקערו 3 ,סח ]1 8 ,03066 | 2 ,0 | 6 ,סעס\] 2, ,0 סְסטְהּחָהּבו] 7 0060 >חו|זסקעיור ,ססהסוטב 2 ,85600/) סאהטועב) 5 5 ,880856 חק 0 8 ,6ז6וקסחוהק 8 סשחוסק 6 ,טוחסוזכוקסק 5 ,חק 2 ;סססגחחוזק 5 ,060ח8ח6/סזסקסזק 6 56 ₪0, 8 2 60100 5 ,601506128680856 7 ,סרח 58/65, 6 56606, 4 2 ,ש0ח5 8 חס אוסח5 6 ,ח6 0 \אוסח5 2 ,ססחוזק/שסח5 6 ,0/58/6ח5 4 ,0605500זכ ה58600ח3ם 2 ,00860( 8 ,006080 7 ,00160 %חה6 5600 \ 5 ,165ח 0360ו|8/\ 8 500 /\ 3 ,30| רחש דססוז/\ וח 38/50 566 1 ,6006 6חוח86 ,ז6550ססזקסזסורח 5 ,5590000005 .5001 6768000 ,206655 50סחסוו! 3 ,חססטסחטז סו 3 ,500060060 ו 1 , 6ה2ו/\ הסספזטווז 2 , דאד.12₪וזו 4 ,אס 18!00 חסחהוזסזח1 0ח06חסקסכ פחופפווז 9 ,ץסכססזכ 605%0%6אוו] 1 ,105 !61 ,%ה6/6 16% 5רח6106!ות נוחרח 008! 05, 2 שו|3ססוח 2 ,105 9 ,20865 655806 7 ,פחססהסו!סק3 פחוו6ססוח 6 ,חססתסווקכבהּ 1 ז68|!6 ,5רחס סרח 1 ,6558065 3 ,06011605סכן ,8165 6|נו0סוח 1045 6% 6 סדנת לימוד 6.0 8\ 6 ,180!65זהע |6/6|-6!גוססרח 6 ,65!ו00רח 6 ,8006550 6 ,הווח 9 ,הסופועו 5גו!ווססרח 1 ,5ח00ט!650 וס הסוח 8 ,ץהסקסזכ 5|ס6חשהסון 8 ,עזסקסזכ 5אוס ו הסון 9 ,ןסח 600 עוסו/\תסחסו] 4 ,611665 156\סרח 3 ,פחסא וס |ס0ה60 הצו8ז561-0 ,%5ח6/6 ספטסוו 9 ,6/6 השס 6פסוז 5 ,חסוהסו|קק3 58/6 ה56766 %ח0/6 6עסו\ספטסוז 6 ,פחסרח כגו-קסכ 660% כ(\ספטסוו 7 ,5 חסר וטוה ,ססר 6עטסוז 6 ,660005רח עסמ 9 ,\סיחסס הרהס 145 1 ,184 ,חהסוס6חט? א0 150 7 ,05 החרוח 60 9 , 6ט!8/ חזוסז 9 , 11ס. 15/8/60 1 ,שהסקסזק שחנ וטוטו 7 ,618 זססו , סהוחוטרחס6 ,פ5הסטוסחסס סוסטוטוח 5 ,5!סישחסס 6!קטוטוח 645 ,65א06חו /6-66|קטוטוח 9 ,פזסע0 זסט-6!סטוטוח 2 וההססתסו!סטוטוח 0 ,110 ,/וסקסזכ 56!666טוטוז 9 ,קם/.6 |מ6ץן 3 ,חר 60 6חהּצ] 1 ,54 ,עזסקסזק שוחו 0 ,סח 60 הסה 0 ,פוח'וס1 5 ,אוססחוצ\ 65ווסקסזק 6 ,0016005 +60 הבח 8 ,65!ו00ח 6|855 4 ,600005 0 ,פוחוס1 5 ,00!65ח 3 ,0016005 6סםז 9 ,570060605 .5001 1 0= [55) 5פּוו 8 ,5000076005 .5001 61 5₪) 8חו/5060 8 ,64-65 ,8180165 1 ,6006 סח 3 ,06זס |הזונסהח 2 ,8560 /) 60000 66הועב 7 0160 אהוהססערן 6 ,סז 60 זספאוסזם טט/\ 2 ,(25610/\) 00ז6רח ס [6סהטועב 3 ,743 ,7660705606 הַחוה0ועהח 4 ,151 ,וסקסז הסוו5סק6ז0 600 1 ,566 |6/6!-אזסססח 1 ,443 , סזסששץסא עסו 6 ,46-47 ,אסס 01800 6₪[סזק צוס)] 5 ,סכ 8 1 ,/סקסזק א6סחזוסו 5 ,5000007006 +אס)] 0065, 1 9 ,ץוסקסזכ ה6סבזסוז 9 ,06500 08%80856 , הססה2ו|הוזזוסה 4 ,סכ הסוח 0066660 , סזסעשץסא %סצז 0 ,וסקס %סצ] 7 ,165 |560\16008 , 0הק6ססו 7 ,68]5 1ק\/ ,5זסְסְסבזהח6 |!גוח 5זס הנוח 3 ,108 7 ,5005 חן 2 ,0חח061 ,865זס? 6וסרהטוח 6 ,006780005 הח ,0853 |68חסוחגוח 0 000[60 00%, 63-64, 6 זספוסזם 00166 0 ,65ט]8ע %חל5ח 60 3 ,זט | 66[פ0 סזסש\ 9 0 50 507/67 0060 5 1 ,60005 2/00/6%/ חחוןו5%3חו 6 ,( ]וא דרז) פָפ% 080567 2 ,00[6605 8060/8000, 1 5 ,(57) הסספסווסקא 58 61855 001!65, 3 אחז 1047 8 סדנת לימוד 6.0 8\ 3 ,פחוסחוס 4 ,89ח1ץ065070 4 ,0/0005 7 ,5ח60|!6000 7 ,5ה%00|0 4 ,0 ,600 חס 4 ,הס 9 ,6850806 0 ,)סא 0 ,65ט!8ע 86ח3ז/||06 8 ,00ח856/) 00(66וח506ץ65וו= 4 חס 7 ,אתוהססערן 5 ,600005 1 ,005ח6חו החזס+ 6!קטוגורח 4 ,8חווחהח 4 ,6659א61ז 1 ,סח 60 ז0הו%3ח00 ₪ 01 9 ,0חו/50661 ,65ודוסקסזס 7 ,2065 /סוסקסזק 4 ,395 ,880/וסקסזק 8 ,660056 3 ,(157) ₪60065% 2 ,(57\) 650056 5 ,56600 5 ,(150) 5067/67 1 ,(150) ח0ו5655 1 ,50006000 166 6500056 4 ,65!זו6קסזכ 56000 5063 \ 8 ,08 5000 /\ 1|6 360055, 8 566 360 0 0 ,6חו!!59חו ,8!65 06% 9 ,0080 0 ,5006 8% 5 08% 5 ,25 וא\ו 60808 1, ,ןס חס6 2868 600 9 ,6 8 ,506005 0868 ה 0 ,50/0759 0 ,80 150חורח0 5066 מז 06 3 ,10060ו50 00086 הסהַהּחבּו 086 (0חו600טרח= סחה פחואחו | 66נטס) 015 0 ,ןסח 60 זסחופ+חס6 1 ,0051006 86 00[6005 6060060 2 ,סרח חז 8% 00(6605 6060060 3 ,00[6005 60>חו!ן 0 ,00[6005 |06א 0 ,פ65ט!א/ 86ח8ז/||06 3 ,051605 חזס/\ 4 חס ט6סק /חסספסווססה 6 ,וחק ס/חו5 7 אל 9 ,)2856 וס /\\ 5 ,50/6 הסוהוחססטבּ 5 01 6 ,פכ 015 1 ,65590009 = 1 7 50300060 זסזזם חס 8 ,55980060 6רח5\1 ( הררה זט סז 60לח6וזס 60[סס) קסס 6 ,635505 1 ,,6!35505 זסק8ז/ 8 ,וח 60 ה6ק 0 7 ,אס 01800 חסקס 5 ,הסוח ה6קס 5 ,60 הק 5 ,60 880856 ה6ק 0 וחססס 1 ,00065 6/6 4 ,066 660 ה 0 כ ) 66005 ההס6 5 ,0 ,08%008565 4 ,165 860655 וחססחםז 7 ,0!65+ 6 ,%5ח106ו006 סזוסע\ 6 ,65| 8חוחסקס 0 660056 חכ 085005, 0 508250005, 2 1 ,0106760065 ,57500005 סחחפזסקס 4 ,סח 60 ז68!6|300 ,ץהסקסזק הסטהזסקס 3 ,266606006 0 סקס 5 כ 7 +) חססטוססהּ 9) חסופוטו 2 () חסוזהוזחס6חסקאס 9 ,00 8 ,(א) הססהסו!סט!טוח 7 -) 5000086008 5 ,סוס הססקס 8 ,37180!65ש ,%ה06ח55306 זוסו!קאם הסטקס 7 דאך. ץמהההאסדדקס 1 ,060|37800705 פהסטקס 2 ,165580100] 60/6 ,אסססטס אחז 1049 0 סדנת לימוד 6.0 8\ ק 1 ,606-ק 3 סז ₪5 5630870 ,0זה2ו/\ +הסוהץסוקסכ סחה 6606בק 3 ,65| 68 1 ,1655 הסםה!|בז5חו 1 ,6 דש ].ק 551 5 1000 866806 0 ,85 ז0סזכן 8663060 9ו8680 חקו 00 ששו 5 ,000 ז6חזוסזח1 7 ,65 6%חו%6ח1 6 ,פחסטסס פחסקו50 3 ,0[605זכ א 500870 3 ,6!605 68 1 165 הס0ה!|9ל5ח1 1 ,6 ך5 |. קנ 551 2 ,280ו/\ +ח6הוץסוקסכ סחה פַחוסהּא6בק 8 ,6600 6זנ6וקסחוהק 65, 8 6018, 1 500015 285, 8 50605, 9 9 ,,ח60!!6600 5וסְחבק 8 ,5עהזז3 |6!|הזה זה 5 ,5ח600חנ ]קה 1 ,5500006005 .5001 ,0663780005 8 ,א06ח1 9 ,066011655זכן 0 355100 4 ,50000065 501 0ם 551 2 ,05? %חסזהק 6 ,כ 560100 3 ,שסקסזכ זחסזבק 3 ,0ח5ח6|300 +הסזהק 1 ,3065 +חסזהק 9 ,5005 0חופזהס 9 ,סט\פע עפ פַחופה 8 ,61076000 עם חַחו355 2 ,ץסססזכ 355/03 6 .65 ח68ס! ,ץ+וסקסזכ חזבק 0 ,החססחט פזוכ ,חאה 3 ,0186760005 6ק 4 ,סז הסטו5סק%ח66זסק 6 סוס 4 ,ףכב 1ס\! 6 6 ,65ז6גום פחוווקוחסס 6 ,65א06ח1 6 ,65חסף סחוץווקוחו5 23 חס 6|ס8ז 3 ,017660065 |הטסזו/ 115 ,5חסו9פווחיוסס 12 ,8300ח8! 60//\ |ההספזסק 2 ,0176600 |הסופשחק 3 ,00 |הסופשח 7 ,103 ,/וסקסזק 6זנססוק 9 ,סז +חה6 תוהז סוק 1 ,סז חס6 אספ6זנססוק 7 ,65ז1ס6ו 7 ,\סטוחץ5 6סוס 6 ,סח 60 הסוטהוהוחג ,0סח6%רח עבוק 8 ,6600 %חוסק 1 ,(סכ1) |ססם זססחוסק 7 ,ותפוחסהסוחץוסק 7 ,פטחסוח קט-קסק 6 ,60/80 5 ,וס0חוש 6006 6 ,6000 גוחס1זכוקסק 7 ,006605 פחוחסטופסס 5 ,5זס? | דר 5 ,00ח%סוח ז05ק 7 ,71 1055806ז5סק 66606066 )02678%07(, 3 9 ,5580007005 .5001 ₪01 551 ,60168005וק 4 ,61665ז 9 ,64-65 ,65וחהח 818016 9 ,ספ/. ךז חק 9 ,ץ6קסזכ 066ח5%8ח1/סק 2 ,665א00 01808 זחוזק 5 ,6000 זחוזוק 3 ,ץשסקסזק +6080כזס6חווק 0 ,ח60]!6600 פזססחווק פחשחוזוס 600, 2 2 ,600 +וסק6ג+וסקא= 2 ,600 +וסק6גחווק 6 ,%5ח006106 סזוסע\ 2 ,600 +וסקסגחסחוזק 7 ,זסאוסו/ 11 ,80005ז060|3 6סבּעווק 6 ,00ץשץ6א ססהטוזק 1 ,065ו060סזכ ססהעוזס אחז 11 2 סדנת לימוד 6.0 8\ 2 ,500 סזפץוזק 6 ,10!65זהּע ססהץוזק 6 ,63-64 ,אסכ 6ז0ו660סזק 6 ,6006 6ז0ו660סזוק 3 ,06601165 4 ,80 ךסו 3 ,11605 0!6סרח 7 ,0 0858 355100 3 00 שוסססיק 2 ,סו!טגוס 2 ,6051808 6 ,חחח 1 ,56006 1 ,חובּו\ טט5 6 ,306 [5+61חודך 5 0 65 0 50 /\ סח ;60005 8/50 506 5 ,ח600חט) 665511655806סיק 0 ,500!5 /סועס6טססזס 2 ,02 ,05חה חר 60 וחהזפסוק 1 ,308065 סחווחוחהזפסוק 0 ,57500705 חחווחרחהזטסיוק סוס 0 ,0\1500001200 0 ,0 ח0ס0וח06 3 ,0650108 2 6/6000 החחואס 7 ,פהוחחטשז 7 ,6018065ח! 1507 5 סו|סכה 38/50 566 2 ,זה 655זחסוק 6 ,הסח זס?חו 655זטסיזס 1 ,352 ,!סחסס ז65508זסזוק 9 ,זסזס|קאם 606[סזק 1 ,6605[סוכ סחוצה5 7 ,05 00 66[סזום 8 ,8 01 665חהספחו 6!סט!טרח 4 ,00[605 %65% 0 ,אס 01800 65ו6קסזק 60[סזק 1 ,80 6!וקההס6 5 ,(םכ1) צשססחועע 66[סזק 7 ,605[סז 6 ,א 8 ,280ו/\ 23065 עוסקסזק וטוט 8חו300 ,5וסיטחסס א6עו6ת 5 ,00016 6/6 5 ,0065 6006 חַחו300ּ 4 ,5סכן6ז ַחו800ּ 0 ,8חוצ53 ץ||68טהוחססהּ 3 ,0 ח6ום זסוס6 1 ,סח פחוווקוחס6 3 ,0 6 ,3066550 ,105 7 ,חססתסווסקה 5זז 38 הר 7 ,000005 7 ,600760005 וחפוססוס 9 ,0+ 11 6 ,6!מם!טוח 4 ,פוחזס+ 6|מט!טוח 2 ,פחווחהח 4 ,06500 והבזףסזק 1 ,58/0 2 ,50015005 ||085608 ,580165 1 ,4חו/58 0 ,305|רחסף 1 ,5000 5 ,65 1 הזכ +קוחסזס 4 ,6856 זסקסזוק 5 ,65וזוסססזוס 4 ,חס05ק !050 7 ,00065 6/6 8 ,6135565 0ף 0חו800 3 ,600 007655 3 ,א 400655 0 ,|סשחסס6 זכ ססה 7 ,סח 60 ז0508 5030 ,חסו| 0 ,!סיחחסס |806/ ,)הסוהחטו|ה 9 ,סח 60 סה ,טסו אוסו|ה 8 ,60706 הרתטוסטסון 9, ,26ח0\500)ץטסו|\/ 0 ,00160 %ח6וסוחג 2 ,ההק סכ 5 , ח6ז0!וח)וסח5ססוו 1 ,99 ,26ו5ססוו/ 9 ,600 59015087 1 ,זס|00א80 8 ,אה תס 9 ,800615]! ,0706150/6 8 ,6 9 ,|סחסס |סטב | 2 ,;68)1505\/8!02000) 9 ,סוחוחטז 8% חוסַההח6 ,הח סז 65126 וחזוס+ 2001 3 ,393-394 608760006 9 ,6066000005 3 ,6066660 4 ,6!וח) 1053 6% 4 סדנת לימוד 6.0 8\ 3 ,ח6ז0!וח6 4 ;חטס0)אוססחו/\םווח) 5 61355 2 ,00606זכ 6% /סוסקסוק 0 ,660\1/655סזכן /סוסקסזס 9 ,80!605\זהע סווסנוק 2 ,5ח60]!6000 9 ,פחוחטש|ס6 4 ,וס חסס ס|הוס חסוה וס 9 ,וס 60 05 68וחור רחס 7 ,600005 60 קהחסס 5 ,742 ,60058 7 ,חסטופסס 6[טס פחוו|סשחס6 7 ,5126 605[סס פחו!|סשחס6 2 ,חסו80זססחו זס5 סחו|וסשחס6 2 ,ססחוזקס 6001651 1, ,סקץ סז 1 ,0!5ח60 הזה 1 ,856% שה 6 ,ו שה 2 ,1!65 6 7 ,וסטחסס 6870הס 6 ,65006 4 ,0651006 0 ,סוח6\3סוע 9 ,ח900לסח 00% 3, ,6זו6וקחשוסס 3 ,8חוה 3 ,82 ,80!60ח= 1 6 ,סחחבּ )סו 5 60|[ 7 ,טסוו 7 ,₪805 8 ,אסס 01800 +חס= 9 ,5670!|2375ז8|-] 0 שחס= 9 ,|סץטחסס |סטה | 0 ,סטוה %חס1 4 0060 %חס= 5 ,600|0זס= 5חזסז 0 ,8חו9ח8ח6 8 ,65ו1וסקסזכ 6 2 ,06בקוחסי= 8 56!6000/ש₪0!!ט- 2, ,סק דחסט6חט= 9 ,סח ]3101) 3 ,חח וח00כ|6ר]ן 3 ,6!חכ!6ר] 9 ,800 ססר 9 ,ח6!6600סזס/סרן 2 ,1806 4 ,חח 0 ,א6סחך 9 ,150 2 ,280!/\\ 806ח%0ח1 0 ,]הסח 1 ,680 8 ,172 ,66 0 ,5ח60|!6600 2 ,118 ,8006ח060זה | 6 ,6% | 0 ,506 | 3 ,סח 60 צוסו/\150 1 1 ,106660 3 ,00016 | 8 ,(7660705) 0חו6655סזכן קססו 9 ,פחסק8|!0ח5זה ו 2 ,100 ,חז0ח6 !13 6 ,6ווח16סו\ 0 ,600005 שחסו] 5 655806 9, ,605%000או1] 8 ,00!5ח6חס\] 8 ,0:5 תשחס!] 7 ,]סח600 צוסו/\תסחסוז 1 ,סח וטוגוו! 0 ,110 6!660שחוטו 4 ,36 4 ,חסטו05ק 60006 1 ,א06ח1 עס 9 ,סא 4 ,סח ח0ס6 ז08!60|8%0 ,החססהזסקס 3 ;חסזהק 2 ,3550/0003 4 ,חסוו05ק%ח60זסק 7 ,103 ,6זנססוק 9 חח סוק 9 ,606ח508ח1/סוק 3 2618 זסשחווק 7 ,260ו)\\ 65ח3ק /שוסקסזק 6 ,8180!65ע סווטגוק 0 ,₪896 1 ,6607050706 4 ,5/60070!59 0+ 0חו6ח1070ז 1 ,ןס חס 80 0+ 360 60 |ס זה 60 6000868 1, ,6136-ו 60 2 ₪00 4 ,חסהסו!קקה 58/61 ח50766 5 ,5070!!8875 3 ,5066060 2 ,הטוס ה 0 56|600 2 ,56|10806 3 ,חס ]|56 4 ,56000 1055 6% 6 סדנת לימוד 6.0 8\ 1 ,וסט חסס 511067 2 ,117-1189 ,6חַחה8|!008ח5 6 ,50 8 ,50160 9 ,50600 1 ,505 530 0 ,668 ח00)!ו5 0 ,500 3 ,)5/6 8 ,65אסספ 5%!ו] 2 ,5016005 6 ,5 9 ,ד 6 ,55 א6ך 9 ,חסזכ08690+אדך 1 60 חוד 1 ,600 זהּם!וססד 1 ,5זה%00!0 8 ,וטוט אסס|ססדך 8 ,/וסקסזק 6 דכו דוססד 8 ,קסד 2 ,07806ך 2 ,60000159 200/62 העשהזו0-ז50 4 ,65ש!8/ ,0!5ח0ס6 העש8ז501-0 4 00160 %ח6וח 5606 \ 3 ,טסו /\ 3 ,82 ,1510!6/\ 9 ,כ1וחטוס/\ 7 ,50005 080!חש0ם ,|סטחס6 זספאוסזם טפ/\ 0 ,פחוס+ ,וססוש\ 4 150 |/וססחו/ש\ 3 ,א דכה 0 ,ל 26000108 ,אס 01800 65וצוסכסזק 4, ,126 ,(6כ1) צוססחוצו 65ו+וסכססזק 4 ,65וזו6קסזכ 56000 9 ,060ו0600זכן 6% /שוסקסזק 2 ,65!ו00ח 6|855 9, ,6זו660סזכ 66 1 שוסססזק 4 ,60 א00+אסדך 7 ,8065 /סוסקסזק 0 ,6זו0060כן %ח6/6 865ַחההת0ץוסקא 0 ,6ז0060זכ 6/60% 06ח68 1 ,סז חס 60 6608 החהס6 6000015, 8 2 ,56!660075 |סיחס6 6|סטוטוח 001605, 7 9 ,00606 ה 5600-8060 1 ,₪65 |בז075 ,אסט 00ו8ו0 65חָ3ק עשוסקסזק 7 ,260ו/\ 65ח3 /שוסקסזק 6 ,65 זסקסזכן הַחו00בּ 5 עלוסקסוק 0 ,0011165 6!855 9 0 65ק 2, ,160ו0060זכ 56% /סוסקסזק 4 ,395 ,001600 830/םזסקסזק 5 ,600 60חה תח /סוסקסיק 6 ,00ח6%וח 56%ק 7 ,זסששסו/\ 1 ,005 הזה!000 סווטגוק 1 ,11605ו660סזכן , סזסצוץ6א 6ווסגוק 1 ,פחוססחח ,5זסטוחסות 6ווסגוס 2 ,291 ,605ז0ו660סזכ 6ווסגוס 6 ,80!65זהע סווטגוק 8 ,001!65 61855 4 ,165 360655 ר007ח8 , 0חהוהוחסס זגוק סָ 7 ,חססטסח? זסוס6 0 5 0 ,וה 0 00 8% 60, 5 5 ,ל 6868000, 0 6 ,חח ז0ס1וסכ .501 סהולורחטקס , חחוווקוחס6 08%80856 06500, 6 600006 600, 6 6 6 ס+ סכ .501 סחולורהוסקס , סחוץווקוחו5 5 1 ,501 וצו 60808 2 ,665קסזכ |סישחסס הזכ 501 55006005, 3 5 ,085 חַחוץ0150!3 ,5 ,הס660!וס6 8ַחהו50עחוסטס 6 ,6)חסוחוחסס ,(') אזהוח הסספססוף 8 ,(5חזס1 ]1 דר!) +טקחו 56 1 2 ,00!5ף (%ח6וחקס!|פע6 הסספסו|סקה סוסְבה) סמה 4 ,חספ 0ו80ז 5 2300655 וחהססחםז 4 ,0 חר 600 ז6כ) 4 ,8חוחסכס 4 ,0חההחוחסס זווק ]66070 0/6, 3 5 ,חר 60 566% 3 ,006 ההססח3 1057 6% 8 סדנת לימוד 6.0 8\ 0 ,ץסקסזס 86 (0001600) ב08% 0%6וח56) ססא 0 ,081808565 8060655100 7 ,0 60 60זקההסס 8 ,600005 1 ,סח 60 08%8 סרח 2, ,קש 56008 00 050566 00[666, 66070566 0/0606, 7 0 , דאך. |קו]5 סא 080108 560116008| 6% 61165, 8 1 ,10005 6 8חועו606ז 1 ,5000605 5001 = 551 וטוצו 66808 ,5קטסז סז 9 ,אס ₪18!08 8|טוח חס ח56!60000 66070 1 ,50665 66070 2, ,קש 560000 3 ,1656 300655 ה007ח8] ,0065 60070 5 2 ,60070565 60 0ַחו800ּ 0 ,00600 חַחו00הּ 3 ,66000 62 3 ,פחואסס| 8 ,196חקס ₪866 ו סרח ,6!כטוטורת 8 ,005ס! 0 ,5 2 ,חח הקט 66070566 00600 8 5 ,0808 צוסח הַחו00בּ 8 1 ,שהסקסזק 6קץ סז 0 ,5סט|הע 16|0 חַהוץה1501 9 ,0/8505 3 ,ץ!חס-0ז8אוס1 3 ,שוסקסזק 6 דא6ס | 1 ,66070505 הַחהה0ועבּח 1 ,580500 7 ,0!65+ 3 ,0868 0ח080סט 5 ,7660705655 4 ,שסקסזק הסטו5סק06טו50טה 3 ,ס*חו 6/0 8חו₪06055 2 ,6007105 0חהו₪00 8 ,ץסקסזק אזהוהאססם 9 ,סח 60 הזה 9 ,65וז6קסזק 5007 600, 8 9 ,0 1565 5, ,/וסקסזק זססוו= 9 ,60005 סחו-] 5 6ומטוטרח פחוץוס סרח 8 ,005ס! 0 ,50 4 ,865גו₪!ורח 3 ,743 ,חַחוְהחועהח 5 ,660705 הַחה0והח 9 ,ץש סססזכן הסה סו 4 ,/סקסזכ הסטו5סק%ח66זסק 4 ,600 5666 6 ,סק +50 6 0 65 2 ,06 6607050706 2 ,60 60660 7 ,0)0700605] 7 ,אסכ 018!00 616760665 3 ,ץזפזטו | 00[66 סזסש\ 3 ,86 |סי חס 5600005 |החסו60 5 ,60 8680856 67ל6015 9 ,חסופועו 06חוה רחס 9 ,600705605 66060ה015600 , (425) 5067/1065 2868 6ססוח6 1 ,וח 60 6000868 2, ,קש 560000 7 ,600 וחה6100/סרח6 4 ,95%65) 606010/6] 5 ,חסססחו 866ו6 5 ,קפ .65 |קםא 2 ,1605 חסש6ח ,ח0סו5660 זס)סס- +וסקס 7 ,;וסוע סקסא 2 ,5%!] 50/!6-+6001] 1 ,שזסססזק שוחב )סודוסקא 5 6 ,605 0000ב 4 ,6005[סזכן %0 0חו00בּ 2 ,608 5 ,6005 |בז5/ הטוע 7 ,קש 500100 ,000% הזה 2, ,5011060 08%8 7 ,סש חַהוץה!150 2 ,5 ]ד 0ף סחודוסקאס 2 ,605 הסח6חט1 0 ,0 9 ,1605 606860זק 2 ,6000 /סהטחוזס 2 ,600 +וסק6+וסקא= 2 ,600 +וסק6\חוזוק 5 503 38/50 566 3 ,(157) 00[60% ₪00065% 1059 6% 8 ,חססקס הסהז60|3כ 6|סבח3/ 6זוטססח 5 6/60 05120 1 ,60005 00/6 2 ,וס ח60 א%00א6) 07ז68786 ס6סורחז! 4 ,!סשחסס סח | 1 ,6000705 60/6 6512100 3 ,(50\) 00[66 6500056 1 ,(5) %ה55806006 6סוז//\. 56ה6500 8 ,5%800000 65006 4 ,60 266 ,660705 טס הוע6וח סז 5 סז 3 ,6760600 ,065/ם 0868 6 ,20865 655806 58 סז 6 ,6|35505 2 ,060)1765סז 7 ,345 ,חסטסחגנם ()₪8 8 ,600 600% ד0ח16 6 ,242 ,הסחסחנ\ 100% 2 ,טסוק 00% 0 ,חסטסחט? סחטסא 8 ,ץ/סקסזכ 6!/ספזססועוסאוסאה 7 ,שדק 3 ,ספ סווםס דקא 3 ,סח 60 הסטסחט-סכז 9 ,6 806|קוח6? - דא 7 ,65א00 0ח8ם-זססטטוז 8 ,06סרח הגו 7 ,פוחהזפסזק פהוהחטז שרוח 2 ,00[605 6060060 2 ,560100 ,65ו1ו6קסזכן טחסוח 5 6 ,אס 01800 560005 /58160 5 ,0!65+ 6!כו|גורח החסז ₪16!05 56166000 , (0ח150! 6006) 58|65.0% 5 ,חסססחנ 5 58/6 0 ,אסס 018/00 5 6!|₪ 58/6 0 ,אס 01800 25 0[66זק 58/6 58/65 600, 6 8ַחוש58 6 ,605 1 ,6059[סזו 1 ,5ח6300ס! זססוס+ 0 סדנת לימוד 6.0 8\ 6 ,%5ח106ו006 סזוסע\ 1 ,215 ,(6|טַהה/) 56006 1 ,650100005 ח50706 4 ספ1 4 ,58/6 507000 5 ,חסטהווחהּ 6 ,ח8600ז6לחו פ5אוססחוש\ 3 ,0+ ךק5681 508 6 ,805? 507/61-5|06 ,55 8 ,5/5000 6וו1 8חו06655הּ 6 ,60007015 6/6 7 0060 020[60וח65506!ו= ,סה 6 ,005 6ַססחַ8/סה 1 6 6 ,115 6%עו60 9 ,65! 06ש|6חז 6 ,805 50/67-5|06 4 /0/659ו6/60%5/270660 5 ,10 5 ,חססהסווקקה זפסח 8 6חז%0חך 8 ,0016005 2 ,5]06-]50/0 5 ,60005 0% 6 ,5 4 ,6חו0ח6 8ח0קו50 8 0 ,507/60 60/\ 4 ,6חוח6 8חקו50 9 ,סם/. סוסכ 5681 9 ,5070!!0875 9 ,ץשסקסזס פהוחטו60 6 ,659אסכ 1!856! 7 ,85סט!פע פחוו!0ז50 5 ,/6קסזק 5070!!5875 8 ,5ז0+ , (661866ח1 %הסותוססכ 6ופַחו5) 5015 1 ,0+ ח56876 1 ,5071885 8ח1ח50876 ו 1 ,!סעס!-חסהסווקכהּ 9 ,180165זה/ 565510 57\/ 1 ,6ע6!-אזסשססח 5 ,165 366655 הסח ,הווח 60 566% 4 ,6000 566% 3 82 /.605 |55 64 ,550000006 856-) 50|001 9 ,אסכ 01800 0615 וח16!] 66017806ח1 50!665 9 ,אס 01800 6זנ60וק 50!666 1061 | 6% 2 סדנת לימוד 6.0 8\ 1 ,5ח0ר0060ל5 6 עה ]קוחר ,%ה6ת0%0ז5 = 55 4 ,501 ,6065וח5%900 01 551 1 ,00005ח1) 00760866 9 ,005 0+ 65החהּח 3185 פחוחףופפהּ 3 ,86!05 8חוחו06 8 ,668 ססות 4 ,רוחה זה 9 ,601080055זו 1 ,סז 66070 9 ,60001005 +50 8 ,3065ח 80!6ל 8חו/506017 3 6!8007501]05ז 80|6+ 3 ,0768000 ,80!65+ 8 ,081008505 00107 חו 65|טֶב+ 5 ,אסכ 018!00 28065 /לוסקסזק 606 561606 2 ,28065 /6קסזק ,001660 015-₪ח50!660606-0 3 ,זכ הה6מ50600601 4 ,05 ח60 0ח56!660 50!66000 00160 5 9 ,03065 סק ,200606 6 560060 2 ,סקז 3|וו טס 5616000 2 ,ץש קז 50/1806 3 ,ץסקסזק ה00ח6 5611 3 ,חסוח סד 5600 5 ,085 ז500818%0 6 ,5 8חו2וחה סז 7 ,65 66 |08ח50006 0 ,6800 0 ,פחסחשו 507/67 00[606 )50(, 5 507/675, \50, 0 50/0 80|65 60|!6000, 6 9 ,(15) 00[60% 506550 1 ,558006 6סוז/\ 650056 1 ,/זסקסזק +וססוחוד 9 ,18065 / ח565510 506551005 )57(, 4 65580009, 2 1 ,אסס 08ס1ו8ו0 פַחוכקבו\ 56% 2 ,50006000 1א6\] 56% 2 59000000 56% 6 ,%5ח006106 סוסע\ 3 ,פףחו!וקה 60 ,הההזפסזק 56000 0 ,וחהזטסזס =אם. קט 551 1 ,0[60זכן = ה 0ח50 ,₪6 ך5 | קט 55 4 ,600 5806 8 ,1165 |08ה5606 ,65 אס וח 560 9 ,574 ,558 ,חסטסחג\ |ו6ח5 9 ,]63 71 6ז660אם||6ח5 8 |ספ/. ד1// 1 5 7 ,0605 זכ א 5000870 הַחוסַ2360 ,5חססו +טס+וס5 9 ,66/5א 50006 0 ,860 ץ|חסוחרחס6 0 60/60 אסו1 טחסרח 7 סק 8 1 ,/סקסזק +0ס+וסח5 2 ,66000 צוסח5 8 ,600 הזה 8 ,600 +חס= /וסח5 6 ,600 הס 0צוסח5 2 ,600 זססחוזקצוסח5 6 ,6000 58/6/וסח5 7 ,חס6חטז אוססחו/\צוסח5 0 ,שווסט 5106005 0 ,דה 85/ם |קוא51 4 ,פחואסו!816-6ח51 4 ,665 ח! /6א-016ח51 9 ,01/05 ז0!6-06ח51 8ו2ו5 0 ,0+ 6!וח6 זוז 7 ,0016005 7 ,6000705 ,0!65חהח 5 ,ןס חס6 511067 4 ,קפ 5הםס 5 12 ,1189 ,וסקסזס 96חההח6!|וח5 5 2 ,000075 006 8060655 1 ,501 וצו 0ח680ז6 1 ,001600 6607056% 3 ,ח0סם6חט 0חה50ץ8ו0ח5 זט סוס 566 ,5070/816 9 ,5586007605 5001 07 551 ,פהסטו0חסס +50 6 ,ץסקסזק +50 8 856חץ0 זטססטס + ז06זס +ז50 8ַחוץו5060 , (0ח50!| 0006) 50.0% 8 ,ץהסקסזכן 501060 5007005816, 1 50800087 6/6015, 3 3 ,50105 החסז הוטסרח6 ,508065 5 ,600005 6פססןווכ-|506618 50185 5076605, 0 1063 6% 4 סדנת לימוד 6.0 8\ 1 ,סי ח60 8%500₪0) טווכ5 1 ,65וזסקסזום 0 ,900-902 ,(06הוסחה | /חסט) 0600160 50) 501 0 ,60600000 ,65חסטף חסטסהּ 850, 1 0 ,60005 6|מם!טרח פחוץ וס סרח 6 ?וס חו2ווחטקס 6 ,65ז6גום פחוווקוחסס 6 ,65א06ח1 6 ,65חזסטף סחוץווקוחו5 1 ,080 ,615 וסט 2 ,ץסקסזכ 6607050706 5805005, 1 2 ,5%000060055 3005 3 ,00 2 ,5806 |סשח60 ההכ 7 ,(808386ח3 |-חסטוח6כ-הכ) 5 וסס 7 ,085808505 0007 60 חַחו355 4 ,07 551 8, ,חסטהסו|כק3 0!6רח58 ,50/6 .501 5 ,א00 01800 567/61 .501 9 ,קפ/. דה0קא 501 5 הסור 60 566 ,6005 5080870 5 ,0[605כן = 500870 3 ,663008 3 ,665 68 1 1605 ה9|!300ל5ח1 8 ,ח680ס! הס0ב!|9ל5ח1 1 ,6 ך5 | קט 55 8 ,65 סקר 60 53760 8 !00 0870ח5%3 1 ,600 ז%00!08 500870 7 ,(105) 0ח8וחוח 60 5% 0 ,91 ,וחחסת 5 8 ,5וחוס+ 61!0 1 001600 570 8 ,386 ,66[סזק 57 1 ,5601805 ,ץוסקסזס הסטופסקקו 5 6/7 5306080060 0 ,סז ה 533 535 35505 4 ,0856 3 ,₪56 06856 3 ,5ח600חטז 0 קחחסס 4 ,פחסטס6חנ [קג ,6זה וסט 6 הס )וא 9 ,טטפ זוא 1 ,1080 7 ,ססס | 3 ,סו 7 ,סזזם חס 8 שוסו!סאם הסטקס 1 ,(50) סשוז\.56ח6500 4 ,08560 506|606 12 56 2 ,50 5 ,900 03 2 ,5806 |0סשח60 הכ 7 ,(80886ח3 |-חסטוח6כ-ה) 5 וסס 7 ,085808505 0007 60 חַחו355 4 ,07 |55 0 60מץך 3 ,80סוח(\ 4 ,פחםחצו 5 00 83/50 566 8 ,006///ו6א 58016 2 ,0601165סז 7 ,80!65זהע 55806 5%8115 08759, 2 6 ,חס זס?ח! 5%8705 1 ,קפ .5 5 5% 86, ,5 2 ,6006 הסח חוקכ5%6 0 ,סז 8חה660החסס6ו|50 6 ,סח 60 הסוסה רוח ,600 02ס5 550760 06765, 6 7 ,חסטסחט 57 8 ,חס6חף צח5000 0 ,ץסססזק ה507606 4 ,6050005 8חו507 4 ,818065 0חו50 4 ,501005 8 ,6856 60800100 5 ,0 6 6 טס הוחור6%7 3 ,חססחו חס | 3 ,060059 0786000 4 ,;60000|-60א 7 ,010155 6וזס רתוח 3 ,508005 0חו/סות6ז 5 ,687800075 0חו60!36ז] 1 ,5008 6 ,68780005 5060186 3 ,שוסקסזק 50/6 4 ,55| הצ00-00%ז0 1065 6% 6 סדנת לימוד 6.0 8\ 8 ,65אסכ 56| 1, ,6זנו60ססזכן חוב\ טפ 500 500 1 ,1165ו060סכ ססהץווק 4 ,חסופסכ 0ח7ו500 ,65זנוס60ססזוס 50801 55/8, 3 2 ,00ח5\100!3551 2 ,30675 %ח6/6 2 ,סז 500166005 5 9 566 ,0765ו50070660 507 0 ,חססחג 5 1 ,6005 30760806 , (0ח5ו! 6006) .התוחפ 6 ,סז ץח ץ5 8 ,6/6005 הח5/506 9 ,חסטקס |03סוח 5506 3 ,חסוסחט? 10ח51 הזה 550 ז 9 ,סז הס סד 0 ,אסכ 01800 6001:6ט50 6|פפד 5 7 ,000005 006 800655 9 ,33 858 |הטפו/\ הסוצו סַחוססבּ 9 ,5500007005 .501 6 551 ,65וחהח 85| סַהוחףופפהּ 1 ,ווח 3 ,50000 .5001 60 551 ,608000 8 ,06500 08%80856 7 ,5 !ככ השועו ,הוחו 7 ,08505 3 ,65א06ח1 1 ,קטאסס! 9 , חסטה2ו|הוח'יוסה 8 ,8חוחסכס 2 ,65 ה0ו28וחה0זס 1 סחסזהק 6 ,665 08 8 ,7660705605 3 ,5500007005 .5001 = 551 ,15ה5ח300ו6ז 8ח5000 8 ,5580007000 501 501 551 ,65חחפח חהועץו5060 8 ,2800 חס |ה6וקסף 8 ,5530006015 .501 = 551 ,085308565 זסתסס חו סחופ ז הח 8% |[הטפו\ 3 ,חוץקסס 1 ,065חהח6 60 1 ,106065 3 ,חר חס 3 ,5070606 6!כ+ 8 ,ח60!!6600 65|פך 4 ,325-330 ,|סשחסס קו5₪פ8ד 5 2 , ואד 6 ,(50) 8חו0ק501 507/07-5|06 5 וד ;5 8/0 566 6 ,<,ספש. סאד 3 ,חסאטפ 6ו/50 האוססקסזסזסז 5 9 ,5וחוס+ !61 7 ,פוחזס? 6!וח6 זסו 8 ,105 %ה6זהכ זפ 0 ,605[סזו 9 ,וס ח60 אסט)א6 דח₪16 50 6 ,סח 60 ז68!6|8%0 2 ,0[60559זכ 4 ,60700705 26/6 העשהזוס- 150 8 א 3 ,20865 66 חו חו60 9 ,|סץטחסס |סב | 9 ,06חהזהסקקהּ 9 ,/וסקסזכ 26ופססגוה 1 ,665א00 זא 2 סח 0ח030ו|8/ 1 ,וו 6 ,00665 הזס/\ 1 ,100-101 ,65א00 אל 6 ,0חו800 6 ,066300 ,81180165/ 85 3 א 601000 7 ,0חו!06ב| 1 ,505 )טס פחואסס! 2 ,ץסקסזכן 606 |[אבו 4 ,8חוחחהּח 2 ,שזסקסזכ זבחה06זס/ש55הק 1 ,10005 ₪6 8חושו606ז] 2 ,0סחו 0ח0380ו|8 1 ,פחוססבזאו-0 סע 2 ,חחח ,05 60 אס 5 50 ,6010075 )אס 7 ,]5606008 ,65| זאסל 0 ,6800 0 ,פחטחעע 7 ,55 ,/זסקסזכ %אסד 6 ,806065500 9 ,זכ סאד אחז 1067 8 סדנת לימוד 6.0 8\ 1 ,52 ,!0זח60 א0ם)אסדך 3 ,68|6(|3007 חהס ] 60 הַחו00בּ 8 ,06 | 0 60 קוח 60 3 ,88 חח 0 ,שהסקסזק 6חנוטוטו לפ ,65וזוסקסזום 6 ,86065500 ,/וסקסזס +אסדך 0 5 .שו דפוד 4 ,05 ח60 /6והכ-זוח+ 3 ,107789055 סוחס 1 ,ץעסקסזכ זוססוחודך 2 ,0 ח0ס6 זסחחוך 7 ,החסספסו!סכ3 1 ז6ו|68 5 ,סה וחב הסהסו!קקה 58/67 ח50766 9 6/6 זסוחוך 0 ,חסטס6חט? זסחחוך 0 ,קם/. א חםו[ד 4 חסוחטחָזבהּ ₪6 4 ,81065 ה₪00|68 חחוו09ס% 7 , !סז חס6 זהם!ססדך 7 ,5ח60|!6000 1 ,50 8 ,%00|0875 9 ,ץסססזכן 26ווחסס9גו)צוס!| 3 ,סנוכ 4 ,665 סז 7 ,60]!660005 ,0חו600 5 ,חאו 600108 0 ,6000 ז600|08 4, ,0!6ו8אס 9 ,13065 1 ,65וזוסקסוק 2 ,הסט 500870 1 ,600 5030870 4 ,05 ד|0סך 9 ,6150028000 567 0 ,(סכ1) 5זהט|סס+ 0 ,6007018605 הסטופסק/26ו5 סז 0 ,סהוטסרח 1 ,(סכ1) אסטוססדך 9 ,וס 60 חהסוו רחס 3 ,0 חס6 8ס|אוסחהוח וס 7 ,05 ח60 הסוחוה60 4 ,600015 2 ,6000015 0 ,וס ח60 +60 |6/50 8 ,605 \ח6\1500 5 ,;שס0חושש 26510067 +סקסה הפס 7 ,6007059 6ו5חוסחו 7 ,|סשח0ס6 זהם|ססד 8 ,ץהסקסז קהווטוםאסטוססדך 5 1 ,160015 15% 1 ססוו 4 ,₪605 |650 4 ספ 4 ,ס6חו0ח6 8חוסק50 9 ,חס 5ו0ך 3 ,5ודוססך 9 סכ 4 ,%00|0875 8 ,ץסססזכ זאש דכ דוססד 8 ,76 ,/לוסקסזק קסד 2 ,ץסקסזק סחְהקסדך 6 ,116!)05 3060]ו6816 ח הס , (8ח50ו! 6006) 6.0סווסזסד 5 ,דאד. דד 4 ,06655100 ה58600חט 0 ,6001355)\\ ,586005חהח 0 ,600 ז516חה ד +6ה66ח1 ,165 0 חח56חפיס 6 ,6ו060סזכ 30!6 דז516חפיוד 7 ,קה קפא ד 6 ,13065 +ה6זה8ק5חפט 6 ,600 חק קפוד 5 0[60ז 80 [66וך 1 ,וס 600 צוסו/\66ודך 4 ,/סקסזק 6!וח) 3 , זסשו 0 ,ץש סז 06ח₪8 600[סס 66%ח5אזס/\ 2 ,1 פאוססחו/\ ,5הסטסחט1 זסססבזו 3 ,/סקסזס 6 דקפ 2 ,סחתטס 661008%8טסח/ש\ 3 ,600 806 |קרח6 ד5טוז/\ 0 ,11605 )66% |560/60008 פהסחשו 8 ,ןס 50106 7 ,םאם. דק51/\ 8 ,(8%07ז6ק0 חסספסו!קט!טחח) א 5 ,65| 0866 ,2000 הס 1075 6% הקוש ת.ד. 6108 הרצליה 46160 הזמנות באתר הוד-עח' > ו .0-31 0ח. שש !1 סס. והח00-8 הזחו קטלוג אוקטובר 2013 *הנחות ומבצעים באתר* | | |בולל|ת. הוצאהן עמי | מחיר" | | אינטרנט- מפתחיאתרים/גרפיקה | | | | | | - | | אמאןאבא-נמתיאתרבאעטונט | | | 92003 | 25| 9 | | הגדל את הכנסות העסק שלך באמצעות פרסום בגוגל 0106 4% 006 | = | 6/2010 | 300 | 269 | | מבוא לתכנות בסביבת אזנטרנט - הכל כלול בספר אחד 80 + 46 + חן | 3/2006 | נפג| - 9 | | מבוא לתכנות בסביבת אונטרנט - מבוא ו- ₪1 - חלק 1 מתוך 3 - מהדי3 | | | 6/2003 | 0 | 59 | | מבוא לתכנות בטביבת אונטרנט - 28998088 - הלק 2מתוך3 | | | | | 9200 |240|‏ 49 | | מבוא לתכנות בסביבת אונטרנט - 880 - חלק 3 מתוך 3-מהדי3 | | | | 32006 | 19| 49 | | ₪165 המדריך לבניית אתריס, הדורהבא | || | ל6657 | |10202| :39| 149 | 8088 ד למטתתיאתרים באעטרנט-מהד | | | | 20065 | 99| 79 | הסנת לומוד 0 | | 24 | 56| 19% | | מדריך 4 0ע זא קפא | || 665 | | 23 | 54| פפג | 7-8 ןרקו יור | | 8ו0!וח0ס 006 - מדריך מעשי לפיתוח תוכנה (ברכושה ישירה) 68% | | |10/2013| 288 | 139 | | לחפש באמים, מדריך מעשי לבודק תוכנה, מהדי? | (ברכישה ישירהו| = | 7/2011 | 350 | 169 | 03 וסנת למוד 8 | | 9006 | 6%| 99 | | ללמודס -מההן 000 | | 0 |460| 1 | | יטודות התכנות ב-88/ לתוכנת ושטאם, מהדי3 = | (ברכישה ישירה) | | | 2042 | 15| 95 | \ | 0.חומרה,תוכנהורשתות 8 | כ | | | | | מדריך חו0א1! ואבטחת מידע מהדי | | || 92011 |428| 16 9 7/8 1/1008 נושאים מתקדמים = (ברכישה ישירה. המחיר כולל משלות| = | 6477 |140 | 49 ג עה 4 8 || אאסשח ההכ[ | 0 | 88-55 | קא פו60א% והכרת המחשב האושילמתחילים | | | | 3/2003 || גפיקה ההכ[ | | | טוח - ספר הדרכה ותרגילים | = (ברממשהישירה)| | | 2012 | 122 | 64 זס+78ז+1!1₪58 -- ספר הדרכה ותרגילים (ברכישה ישירה) | | 220 |20| 6 | | פסהפסוסחק צעד אחר צעד (צבע מלא, למתחילים), מהדי3 | | | | 9/2002 |200| 159 | * מחיר מומל לצרכן כולל מעיימ (המחיריס המודגשיס במחיר מיוחד בהזמנה ישירה). יש להיכנס לאתר כדי לבדוק מבצעים ומחירים מיוחדים 1 3 7 5/צסוסחו// צעד-אחר-צעד 10 3 2 היכנס לאתר להתעדכן בספרים החדשים ומבצעים |!.60. ווחבּ-ססה./עצו\ | = |כוללן הוצאה | עמי | מחיר" | | 000000000 008082008 ה || 00| )| טבלאות ציר - ניתוח נתוניס חכם (ברכישה ישירה)| | | 2012 | |116‏ 87 | יסודות התכנות ב-84/\ לתוכנת [ש, מהדי3 | (ברכישה ישירחו| = | 2012 | |152‏ 95 | 2010 זפ צעד אתרצעד | 00000 | |20/גג| 60ג| | 80612010 סדנת לימוד | 0 | |2010/ג1| 344 | 129 | 200 וטק צעד אתרצעד 0 0 | |:0ק/גג| :20| | 0000082010 צעד אתרצעד 0 | |2010/ג1| פג| | 2010 400088 סדנת לומוד | 0 | |360|11/2020|‏ 179 | 08207קת0 0000000000 | | 00| )| ולטסק למתחולום 0 | | 8/2007 | 240| | 002007 למתחילום | 0 | | 1/2006 |224| 19 00000008 08008204 ה | | 00 | | 0208זצעדאתרצעד 0 0 0000000000 | | 3/2064 |208| | 2003 |6סאם הסדרה הידידותית למתתולום | || || | | |א2/00 |160|‏ 49 | 2003 1חוסקזטוסק הסדרה הידידותית למתחולים | || | | | | | | 2/2004 | 96| | 2003 אסס0ווטס הסדרה הידידותית למתחילים | || | | | |2/2004 | 96| | 2003 60085 הסדרה הידידותית למתחילום | | | | | | | 2/2004 |144| ה פאמסהתס 00000 | 00| | 9 | א זע הסדרה הידידותית למתחזלים | | | | | | |7/2001 |144| | = ניהל, כלכלה ושונות | 00 | | | | לחפש באגים, מדריך מעשי לבודק תוכנה, מהדי 3 (ברכישה ישירה) | = | 7/2011 | 350 | 169 | חקרביצועים כשירות ללקות | 0 | | 2/2000 |236|‏ <פ | ניהול ממוקד לעשות יותר עם מה שיש (כריכה קשה) - מהדי | | | | | 9/2012 |358 | 135 | לי וה עולה יותר (תמחיר) (כריכה קשה) -מהדי? | | | | | | |10/2006| 36| 129 | מעכותמידע ‏ |[ | 00| | 801 01906 יכולות מתקדמות | | ברכישה ישירה) | | | 7/2011 | 626 | 249 5 (5/510 081515 51981501081) -- ספר לימוד = (ברכישה ישירה) | | |11/2010| 256| 169 | | בסיסי נתוניס ושפת .801 - עקרונות ועצוב | (רכמשהישירה) | | | | | | 68| 149 | | ניתוח מערכות מידע כולל מתודולוגיית ה- 01% | (ברכישה ישירה) | | |11/2004| 818 | 229 | המדריך העבריהשלם ]א | | (רמשהישירה) | | | 1/2009 | 36| פק3 | * מחיר מומלצ לצרכו כולל מעיימ. קטלוג 10/2012 (המחיריס המודגשיס במחיר מיוחד ברכישה ישירה). יש להיכנס לאתר כדי לבדוק מבצעים ומחירים מיוחדים היכנס לאתר להתעדכן בספרים החדשים ומבצעים תוכן עניינים ופרקים לדוגמה |\.1001-31771.60]. וו