WIN32API ומבוא ל-MFC למתכנתי 6 ++VISUAL C

עריכה ועיצוב – רמה שנקלר | 651, 31 עמודים : איורים ; 24 ס"מ + 2 תקליטורים. – ISBN 965-361-255-7

OCR (הסבר)
לח ומבוא ל-6זוו! /למתכנת' 6 ++6 |808ו/ וקה32חו/ ומבוא ל-6-ו למתכנתי 6 ++6 |ב0פו יש להתעלם מכל מה שנכתב על התקליטור. אין תקליטור מצורף עם תוכנה. את קוד המקור ניתן להוריד מאתר הוד-עמי בתיקיה "קבצי תרגול לספרים" עורכת ראשית: שרה עמיהודד עריכה ועיצוב: רמה שנקלר יועוץ מקצועי: מאיר קלטר עיצוב עטיפה: ישראל מצגר שמות מסחריים. שמות המוצרים והשירותים המוזכרים בספר הינם שמות מסחריים רשומים של החברות שלהם. הוצאות. הוד-עמי עשתה כמיטב יכולתה למסור מידע אודות השמות המסחריים המוזכרים בספר זה ולציין את. שמות החברות, המוצרים והשירותיס. שמות מסחריים רשומים (8165ו1:8060 1601619706) המווכרים. הודעה ספר זה מיועד לתת מידע אודות מוצרים שונים. נעשו מאמצים רבים לגרום לכך שהספר ייה שלם. ואמין ככל שניתן, אך אין משתמעת מכך כל אחדיות שהזא.. המידע ניתן "כמות שהוא" ("פ! פג"). הוצאת הוד- עמי אינה אחראית כלפי יחיד או ארגון עבור כל אובדן או נזק אשר ייגרם, אם ייגרם, מהמידע שבספר זה, או מהתקליטורים שמצורפים לו. |לשם שטף הקריאה כתוב ספר זה בלשון זכר בלבד. ספר זה מיועד לגברים. ונשים כאחד ואין בכוונתנו להפלות או לפגוע בציבור המשתמשים/ות.. ב טלפון: 09-9564716 ב פקס: 09-9571582 ב דואר אלקטרוני: |ו.301.60-106000₪ח1 ב אתר באינטרנט: |ו.60. 1וחב- סח ושאר 1ק32חו/ ומבוא ל-1-6 למתכנתי 6 ++6 |בּטפו ייעוץ מקצועי: מאיר קלטר הוצאת הוד-עמי [) לספרי מחשבים 6 סו הסוז6טטסזפחו חב זק ה32חוער 6 כל הזכויות שמורות. הוצאת הוד-עמי לספרי מחשבים בע''מ ת.ד. 6108 הרצליה 46160 טלפון: 09-9564716 = פקס: 09-9571582 [ו.1.60וה000-3 100 אין להעתיק או לשדר בכל אמצעי שהוא ספר זה או קטעים ממנו בשום צורה ובשום אמצעי אלקטרוני או מכני, לרבות צילום והקלטה, אמצעי אחסון והפצת מידע, ללא אישור בכתב. מאת ההוצאה, אלא לשם ציטוט קטעים קצרים בציון שם המקור. הודפס בישראל 2000 ופ וו 0-8 בץולזסוז ,6108 .0.8 1 מסתייב 965-361-255-7. 158% תוכן עניינים מקוצר פרק 1: הקדמה פרק 2: תכנות בחלונות א9, סקירה.. פרק 3: עיבוד הודעות פרק 4: תיבות הודעה ותפריטים .. פרק 5: היכרות עם תיבות דו-שיח.. פרק 6: ממשק התקן גרפי פרק 7: מפות סיביות, קבצי-על וסמלים (00305ז/8, 161311165 ו-005ס1) -- פרק 8: מבט מקרוב על פקדים.. פרק 9: הקדמה לפסי גלילה (8315 |50101) .. פרק 10: הטיפול בטקסט . פרק 11: עבודה בגרפיקה . פרק 12: פקדים משותפים. פרק 13: פקדים משותפים נוספים פרק 14: מבט נוסף על פקדים משותפים ... פרק 15: ניהול זיכרון .. פרק 16: תהליכים ומטלות .. תוכן הענייניס ‏ 5 פרק 17: קלט/פלט בחלונות נספח א - פונקציות נוספות והרחבה נספח ב - סו אינדקס .- 6 אכבה ומבוא ל-0פו תוכן עניינים פרק 1: הקדמה ריבוי משימות מבוסס על מטלוו ממשק בשיטת הקריאות.. ספריות בקישור דינמי (ופ). תורי קלט.. מטלות ותהלוכים. פקדים מיעון כתובות רציף. פקדים כלליים חדשים. הקשר עם דו!.. עם איזו תוכנה להריץץ את התוכניות בספרו. 8 ו הוכן נמצאום הקבצים הקשורים לספר זת1. 5 העתקת קבצו המקור לדוסק. 5 פרק 2: תכנות בחלונות א9, סקירה.. 6 2.1 מבט על התכנות בחלונות א9.. 2 מבט אל שולחן העבודה.. העכבר סמלים ומפות-סיביות. תפריטים, סרגלי כלים, סרגלי סטטוס ותיבות דו-שיח. 3 קשרי גומלין בין חלונות א9 לתוכנית שלך. 4 ממשק תכנות יישומים 71 - של 2בחוצ 5 מרכיבי חלון בתוכנית סח . 6 חלון-אב וחלון-בן (פאוסמחוא 6/6 חב שחפזה) - 7 יישומי חלונות אפ, עקרונות בסיסיים. הקדמה למטלות (05ז1) , 8 הודעות התוכנית 16559065 חואו 0 פונקציית החלון. 1 סגנונות של חלונות - 6 7 7 8 8 8 > 30 ₪ 3 3 35 6 37 37 תוכן הענייניס ‏ 7 2 לולאת ההודעות.. 3 סוגים של נתוני חלונות. 1% תוכנית מסגרת לחלונות 9% . הפונקציה חופוחחחוצ הגדרת סגנון החלון כיצד ליצור חלון לולאת ההודעות.. פונקציית החלון. 5 כללום לקביעת שמות. פרק 3: עיבוד הודעות 1 מקן הודעותז 2 ההודעה 056006 אע 3 קריאת לחצני העכבר. 4 תגובה לאירועי מקלדת. 5 מקשים וירטואליים (66/5 |הטזזוא. 6 הצגת המקשים חווירטואליים. 7 מבט נוסף על השימוש בהודעה א//ו0 6 יוא 8 משך ומן הלחיצה הכפולה בעכבר.. 9 החלפת לחצני העכבר. הקשרי התקנים.. 0 עיבוד הודעה של דאזק אצ 1 כיצד להפיק הודעת דאזאק א 2 הפקת הודעות של קוצב זמן פרק 4: תיבות הודעה ותפריטים . 4.1 הפונקציה אסףססַפפסו. 2 הפונקציה 1559009660 3 היכרות עם תפריטים. 4 כיצד להשתמש במשאבים.. כיצד להדר קבצי ₪6 5 סוגי תפריטים (65ד טחסות 6 מבנה התפריט.. 7 יצירת תפריט בקובץ המשאבים.. 8 המתארים קפס ו- ואדנטאטו 9 הוספת תפריט לחלון היישום. 0 שינוי תפריטים בתוך היישום. 1 הודעות שנוצרות על ידי תפריטים.. 2 הוספת מקשים מחירים.. 3 כיצד לטעון את טבלת המקשים המהירים. 8 זקא2בח/ ומבוא ל-0פו פרק 5: היכרות עם תיבות דו-שיח.. 5.1 ביצד מתבצעת התקשורת בין תיבת הדו-שיח והמשתמש. 2 הגדרת סוגי תיבות דו-שיח. 3 קבלת הודעות מתיבות דו-שיח. 4 כיצד ליצור תיבת דו-שיח פשוטה.. 5 קובץ המשאבים של תיבת הדו-שיח.. רכיבי תבנית תיבת הדו-שיח. יצירת תבנית לתיבת דו-שיח. הגדרת הרכיבים של תיבת הדו-שיח. הגדרת הפקדים של תיבת דו-שיח.. 6 הצגת תיבת דו-שיח עם המאקרו אספפטוּ: 7 לולאת ההודעות של תיבת הדו-שיח. 8 השימוש במקלדת עם תיבות דו-שיח. 9 תוכנית ראשונה ליצירת תיבת דו-שיח. 0 אתחול נתונים בתיבת דו-שיח.. 1 המאקרו 0163000 2 הפונקציה 9₪ז3ל01031601/00. 3 ברירת המחדל לטיפול בהודעות של תיבת דו-שיח.. 4 סגירת תיבת הדו-שיח - פָט00₪3ח5. 5 כיצד להוסיף תיבת רשימה .. עקרונות בסיסייים בהפעלת תיבות רשימה. כיצד לאתחל את תיבת הרשימה כיצד לעבד הודעה על בחירת פריט. 6 ביצד להוסיף תיבת עריכה. פרק 6: ממשק התקן גרפי .. 1 ממשק ההתקן הגרפ (1601009ה1 6066 סקמ 2 כדאיות השימוש בממשק התקן גרפ 3 להבין יותר טוב את הקשר ההתקן. 4 הקשרי התקן פרטיום , 5 נקודות מוצא ומדידת מרחק. 6 קבלת הקשר התקן אל החלון 7 יצירת הקשר התקן למדפסת. 8 8000606ק016306007 - יצירת הקשר התקן בזיכרון.. 9 אחזור יכולות ההתקן.. 0 הפונקציה %61:65ו5/90ץ6615 לניתוח חלון 1 הפונקציה 500006065 /6649. 2 קבלת הקשר התקן עבור החלון כולו. 3 שחרור הקשר התקן. 4 קבלת ידית חלון מהקשר ההתקן. תוכן העניינים /9. פרק 7: מפות סיביות, קבצי-על וסמלים (8/008305, 166311165 ו-16005) 1. מפות סיביות שתלויות בהתקן. 2 מפות סיביות שאינן תלויות התקן.. 3 יצירת מפות סיביות. 4 הצגת מפות סיביות. 5. יצירת מפות סיביות תלויות התקן (018) 6 מילוי מלבן בתבנית. 7 שימוש ב-5010181.. 8 פלט של מפת סיביות להתקן נתון באמצעות 0089/65ד9ו561181. 9 קבצי-על 6120/69 158 0 יצירה והצגה של קבצי-על (6130165. 2 1 רשימה מפורטת של קבצי-על משופרים (%613865 660המח= 776 ַהו3זטהוטת=) 181 2 הפונקציה 60//10%0618085. 13 3 סמלים (5חס16).. 1% 4 יצירת סמלים 16 5 יצירת סמלים ממשאב. 1% 6 הפונקציה 1600106009 1% 7 הפונקציה 10361600 1 8 הפונקציה 6סַ9וח0861) טוענת סוגים גרפיים רבים. 1 00 10 161 16 17 170 גלג 1% 1% פרק 8: מבט מקרוב על פקדים 1 תיבות סימון אוטומטיות . כיצד לנחל תיבות סימון. כיצד להעניק לתיבת סימון תכונות של מפסק. כיצד לאתחל תיבת סימון.. 2 הוספת פקדים סטטיים . 16 1977 0% 84 5 55 3 כפתורי רדו 16 פרק 9: הקדמה לפסי גלילה (5ז88 |56101) 24 1 סוגי פסי הגלילה. 4 2 הוספת פסי גרירה לחלון. הוספת פס גרירה מחוץ לשטח הלקוח. הוספת פס גרירה כסוג פקד לתיבת דו שיח. 3 קבלת הודעות מפסי גלילה. 4 קביעת הטווח של פס הגלילה (6פַ561500183). 5 קביעת מצב הגרה בפס גלילה (509001005) 6 תוכנית ליצירת פסי גלילה (בתוך תיבת דו-שיח) 7 הפונקציה 5705601831 , 8 המיקוס והטווח של פס הגלילה. 3 5 0 זקתקבחו/ו ומבוא ל-ספו 9 קבלת הערכים הנוכחיים של פס הגלילה. 0 גלילת תוכן החלון- 1 ההודעה 5126 וע 2 ההודעה האנק אוו 3 שינוי מצב פסי הגלילה: פעיל ולא-פעיל .. 4 הפונקציה 560/06 פרק 10: הטיפול בטקסטי . 237 1 הקואורדינטות של חלון.. 7 2 הגדרת צבע הטקסט והרקע.. 8 3 כיצד לקבוע את צבע הרקע לתצוגה.. 9 4 כיצד לקבל את נתוני הטקסט. 9 5 חישוב אורך המחרוות. 1 6 ביצד להשיג את נתוני מידות המערכת. 1 7 הדגמה קצרה של פלט טקסט. 3 8 פתרון בעיית הצביעה מחדש 00800 6 9 רעיון החלון הווירטואלי 6 0 פונקציות 1קא נוספות. 7 1 יצירת חלון וירטואלי והשימוש בו.. 8 יצירת החלון הווירטואלי.. 8 כיצד להשתמש בחלון הווירטואלי 9 התוכנית השלמה לחלונות וירטואליים. 0 2 כיצד לשנות גופנים. 5% הגופנים המובנים במערכת. 5% כיצד ליצור גופנים אישיים .. 3 3 הפונקציה 3001165*)חסתוהטחם 3 4 הצגת גופנים רבים עם 1630006006 75 פרק 11: עבודה בגרפיקה . דדב 1 מערכת הקואורדינטות לגרפיקה. דדב 2 עטים ומברשות. 8 3 הגדרה של פיקסלים. 8 4 שרטוט קווים. 8 5 קביעת המיקום הנוכחי. 9 6 ציור קשתות. כ 7 כיצד להציג מלבנים. 0 8 כיצד לצייר אליפסות ופרוסות עוגה.. 0 9 כיצד לעבוד עס עטים. ג 0 כיצד ליצור מברשות אישיות.. 1 1 מחיקת עצמים אישיים. 3 2 הדגמת עבודה בגרפיקה. 3 תוכן הענייניס ‏ 11 3 הבנת מצבי המיפוי ואזורי התצוגה. קביעת מצב המיפו: ביצד להגדיר את גבולות החלון כיצד להגדיר אזור תצוגה.. קביעת נקודת המוצא של אזור התצוגה .. תוכנית לדוגמה לקביעת מצב חמופוי 91 91 304 . פרק 12: פקדים משותפים.. 1 הכלה ואתחול של פקדים משותפים. פקדים משותפים הם חלונותת סרגל הכלים. יצירת מפת-טיביות של סרגל כלים. תוכנית לדוגמה של סרגל כלים פשוט. הוספת תוויות לחצן תוכנית סרגל הכלים בשלמותה, כולל תוויות לחצן. 336 פרק 13: פקדים משותפים נוספים .. 1 פקדי מעלה-מטה. יצירת פקד מעלה-מטה. הודעות פקד מעלה-מטה הפעלת פקד מעלה מטה.. 2 יצירת פקד חוס5.. תוכנית לדוגמה של פקד חוסף. 3 פס העקיבה. סגנונות של פסי עקיבה. משלוח הודעות פס העקיבה.. טיפול בהודעת פס עקיבה .. תוכנית הדגמה של פס העקיבה. 4 פס התקדמות. שיגור הודעות פס התקדמות. תוכנית פשוטה של פס התקדמות. 341 4 4 פרק 14: מבט נוסף על פקדים משותפים .. 1 חלון המצב. יצירת חלון מצב.. הודעות חלון המצב הפעלת שורת המצו 1 פקדי כרטיסיה. יצירת פקד כרטיסיה שיגור הודעות אל פקד כרטיסיה. 9 . 31 2 קקח ומבוא ל-ספו הודעות חסו00/63! של הכרטיסיה .- תוכנית הדגמה פשוטה של פקד כרטיסיה - 3 הפעלת פקדי כרטיסיה 4 פקדי תצוגת עץ. יצירת פקד תצוגת עץ. שיגור הודעות אל תצוגת ע. הודעות של תצוגת העץ. תוכנית הדגמה של תצוגת עצ' פרק 15: ניהול זיכרון .. 5.1 מודל הזיכרון בח 2 זיכרון גלובלי וזיכרון לוקל 3 הזיכרון הווירטואלי. 4 מבט נוסף על ערימות (36005) - 5 הקצאת בלוק זיכרון מהערימה הגלובלית. 6 שימוש ב-61098/868164 כדי לשנות גודל ערימה באופן דינמי.. 7 מחיקת בלוק זיכרון שהוקצה. 8 הפונקציה 6/003/8166. 9 הפונקציות 610031106 ו-1008184806/6- 0 בדיקת זיכרון המחשב .. 1 יצירת ערימה בתוך תהליך.. 2 ניהול הציכרון של תהליך מוגדר באמצעות פונקציות הערימה. 3 בדיקת גודל הזיכרון שהוקצה מתוך הערימה. 1% הקצאת בלוק זיכרון וירטואלי. 5 דפים שמורים (09065 0316), 7 שחרור ציכרון וירטואלי. 8 ניהול דפי ויכרון וירטואלי 391. 391 1 פרק 16: תהליכים ומטלות . 420 1 הבה יותר טובה של תהליכים.. 0 2 יצירת תהליך. ג 3 סיום תהליכים. 3 4 יצירת תהליכים - תחליכי בן. - 5 עובדים יותר עס תהליכו בן.. 35 6 הפעלת תהליך בן מנותק (00959ז0 00186 0136066) . 56 7 הבנה מעמיקה יותר של המטלות. 7 8 הערכת הצורך במטלות. 38 9 ההחלטה לא להפעיל מטלה.. 39 0 יצירת פונקציית מטלה פשוטה. 0 1 הצגת אתחול המטלות .. 43 2 שלבי יצירת מטלות על ידי מערכת ההפעלה. 4 תוכן הענייניס 13 3 קביעת גודל המחסנית של המטלה.. 4 6% קבלת ידית אל המטלה הנוכחית. או אל התהליך 5 ניחול ומן העיבוד של המטלה. 6 ניהול ומן העיבוד במערכת של ריבוי מטלות. 7 להבין טוב יותר את הפונקציה 6600065155 .. 8 עיבוד חריגיס שלא טופלו - 5ח00ק665 90וחהחחט ה ותבו 9 סיום מטלות .. 0 קביעת זיהוי (פז) של מטלה או תהליך.. 1 תזמון מטלות על ידי מערכת ההפעלה .. 2 רמות עדיפות (965) /טוזסוזקו 3 מחלקות העדיפות של פאוסטחו/ (0185505 /מוזסוזק). % שינוי מחלקות העדיפות של התהליך. 5 קביעת העדיפות היחסית של התהליך .. 56 קבלת רמת העדיפות הנוכחית של מטלה. 7 קבלת הקשר מטלה. 8 הפסקה זמנית והפעלה מחדש של מטלות . 9 סינכרון מטלות (חס0פקוחסזתשח/5 6ה6זחד) - 0 הגדרת חמשת אובייקטי התיומון העיקריים. 1 יצירת קטע קריט. 2 קטע קריטי פשוט. 3 600[60פַ500ז0-ו8 - לסיינכרון של שתי מטלות.. 6 6005טוט%זס3145/+ - סיינכרון מטלות רבות. 5 יצירת מוטציה (אפזט/ ְַ6ז0 א). 6 שימוש במוטציה בתוכנית לדוגמה.. 7 השימוש בסמפורים. 8 עיבוד של אירוע פשוט. 51 41 481. 1 1 פרק 17: קלט/פלט בחלונות.. 1. פעולות קלט/פלט בקבצים ב-פוסחו/ו (1/0 516 605חוא. 2 צינורות (65פוק), משאבים (695ז0פטז), התקנים (469/65) וקבצים (0/95) 3 הפונקציה 01631956 לפתיחת קבצים. 4 הפונקציה 01631956 עם התקנים שונים. 5 ידיות קבצים. 6 מבט על מצביעי קבצים. 7 הפונקציה 6 פזוז) לכתיבה לקובץ.. 8 הפונקציה 869086 לקריאת קוב. 9 סגירת קובץ. 0 שיתוף נתונים עם מיפוי קבצים 1 מיפוי קובץ בויכרון הווירטואלי.. 2 מיפוי תצוגת קובץ אל התהליך הנוכחי. 3 פתיחת אובייקט קובץ מיפוי בעל שס. 1 50 0% 0% 4 זקתקבחו/ו ומבוא ל-ספו 4 תכונות קובץ.. 5 קבלה ושינוי של תכונות הקוב. 6 איך לקבל את גודל הקובץ.. 7 חותמת הזמן של קוב.. 8 יצירת ספריות/תיקיות.. 9 מידע לגבי הספריה/תיקיה הנוכחית, או שינוי ספריה/תיקיה. 0 השגת הספריות פווסחו/ ו-חחזפפ. 1 העברת ספריות/תיקיות. 2 העתקת קבצים. 3 העברת קבצים ושינוי שם. % מחיקת קבצים בספריה/תיקיה 5 הפונקציה 0688156 לאיתור קבצים. 6 הפונקציה 06:56 7 סגירת ידית החיפוש עם 0001056 8 חיפוש לפי תכונות עס פונקציות חיפוש קבצים.. 9 חיפוש באמצעות 5לח56376 ולא על ידי ₪06 - 6 קבלת נתיב זמני.. 1 יצירת קבצים זמניים. 2 הפונקציה 16310807060706, 3 התחברות לצינור בעל שם .. % קריאה לצינור בעל שם.. 10 11 1 1 5 התנתקות מצינור בעל שם.. 0 6 בחינה חוזרת של העיבוד האסונכרוני 0 7 קלט פלט אסינכרוני. 1 8 המבנה 60קק וש 0 3 9 קלט/פלט אסינכרוני עם אובייקט התקן גרעין. 64 0 הגדרת גודל שטחי עבודה (01959ט 5026 ז56-ַח7ס//0. 4 1 שינוי גודל של שטחי עבודה. 2 הפונקציה ז0זז6048515. 3 עריכת הודעות שגיאה עם 30/165536 הז 4 קלט/פלט אסינכרוני עס אובייקט אירוע גרעין 5 505ן909ק10טזס3/)5/. עסו קלט/פלטי אסינכרוני - 6 יציאות קלט/פלט מסיימות. (0115ק חסנ6!פוחס6 0/ 7 תתרעות קלט/פלט (1/0 6/130/6/) בעיבוד אסונכרוני. 8 התרעות קלט/פלט (1/0 360506) פועלות רק תחת דא שוחו 9 הפונקציות א65ו86905 ו-66%!פזוזעו. 0 שגרת משוב מסיימת 8800 6411 סחווטסה חסמסוח0ס), 1 תוכנית קלט/פלט מתריעה (וגזָסזק 1/0 6ו130ו6/ה) תוכן הענייניס 15 נספח א - פונקציות נוספות והרחבה .. הפונקציה 4ו00חו//וסת 5080 ואו 3568014 וש פונקציות משוב (חסטסחט= 63110866 הפונקציה טח080%6 1 הפונקציה טחסא100/0א, שליטה בתפריטים באמצעות וחסז1טחסוווטַח=.. הרחבת תפריט באמצעות טחפ!י6חסטקה. מחיקת פריטי תפריט שנבחרו, עם הפונקציה ח9%9ו6ו6ם. העמקה - מבנה קבצי משאבים.. מבוא לטבלאות מחרוזות. משאבים מותאמיס אישית (865001685 חחסופטס) - טעינת טבלאות משאבים לתוכניות באמצעות 1030500 הצגת תוכן קבצי המשאבים. שימוש ב- 667065ז90חוחטח5 עם קבצי המשאבים .. טעינת משאבים לתוכניות באמצעות 008950766 סגנונות חלון . נספת ב - 56 + הקדמה שאו דא ו-6אצ - האם ₪156 מת 9% חואו לעדמת ד 0005חוא, מתקדמים שלב נוסף עם 000%5חו/: סרגלי הצד המיועדים למתכנתי לבּחו4.. 596 למתכנתי 0032 : 00/6066 65ו0חו/ 1- ++6 ופטפו של מיקרוסופט .- מודל התכנות של פאו00חו/+. טיפול בהודעות. ממשק ההתקן הגרפי של פשוסטחו/ו. תכנות משותף-משאבים (פחווחוחבזָסזק 88566 690066 ה) - 5. ניהול הזיכרון.. ספריות !4 00 ממשק תכנות היישומים לבחו . 00 רכיבי שפת התכנות ++6 וגטפוש, 1 0 ++6 081פו/ 10105016 ותהליך הבנייה של יישום. עורכי המשאבים - שטח העבודה של וש//6זטספסה. מהדר לתוכניות ++0/6., 6% 6% 0% תוכנית הקישור.. תוכנית ניפוי שגיאות. 6 זקתקבח/ ומבוא ל-ספו אשף היישומים - 6זהנווססא אשף המחלקה - 01.455/1280., דפדפן המקור - 8/0086 66ז50, עורה מקוונת. כלו אבחון של פאוסטחו/. בקרת קוד המקור. הגלריה. סביבת הפותוח באמצעות ספריית מחלקת התשתיות - סו סביבת פיתוח יישומים - לשם מה עקומת הלמידה.. מהי מסגרת היושום מסגרת היישום כנגד ספריית המחלקה. דוגמה של סביבת יישום.. מיפוי הודעות על ידי ספריית סו מסמכים ותצוגות.. צעדים ראשונים עס אשף היישומים - "זט ,סוסוני מחי תצוגה ממשק מסמך בודד כנגד ממשק מרובה מסמכים. היישום י"שאינו עושה דברי - בַּאט. מחלקת התצוגה /9%ו05038. כתיבה בחלון התצוגה - ממשק ההתקן הגרפי של 05ו00חו - 601. הפונקציה-החברה צופזסחס.. הקשֶר ההתקן של פאוסטחווו. הוספת קוד כתיבה לתוכנית 03₪.. הצגה מוקדמת של עורכי המשאבים. תוכן תסריט קובץ המשאבים 6ז.6038. הפעלת עורך משאב תיבת דו-שיח.. ד 608 32חוו בהשוואה ל- סד 86/6356 32חואו, הפעלת פקודות המאקרו לאבחון שגיאות - הבנת הקבצים המהודרים מראש. שתי דרכים להרצת תוכנית .. 1 1 1 1 אינדקס תוכן הענייניס 17 פרק 1 הקדמה ספר וה הואא, בראש ובראשונה, מדריך מעשי לתכנות בסביבת חלונות. לפיכך אין הוא עוסק באופן מיוחד בהיבטים התיאורטיים של חלונות, אלא רק כאשר הם נוגעים במישרין לכתיבת תוכניות. במקום זה, הספר מתווה גישה מעשית-התנסותית, שתביא: אותך לידי כתיבת יישומי חלונות תוך זמן קצר ביותר. למרות האמור בפיסקה הקודמת, לפני שתוכל להפוך למתכנת בסביבת חלונות, יהיהה עליך להבין במונחים כלליים כיצד פועלת תוכנה זו, על אילו תפסות תכנון היא מבוססת, וכיצד היא מנהלת את המחשב שלך. חשוב להבין גם במה שונה חלונותת מקודמותיה: 005 ו-3.11 פווס6חו. בפרק זה נסקור את חלונות, ונבחן את נקודות. הדמיון והשוני אס לא כתבת מעולם תוכנית לסביבת חלונות, רוב המידע בספר זה יהיה חדש עבורךך פשוט התאזר בסבלנות. אס תתקדם באופן שיטתי, תיווכח שעד שתגיע לסוף הספר, תהפוך למתכנת מיומן בסביבת חלונות. ונקודה נוספת לסיום: חלונות היא סביבת תכנות מקיפה ומורכבת עד מאוד. לא ניתן למצות אותה במלואה בספר אחד (תיאור ממצה בוודאי יסתכם בכמה וכמה כרכים!. ספר וה דן בכל מרכיבי התכנות בסביבת חלונות המשותפים לכל התוכניות הנפוצות,, ובחידושים החשובים והייחודיים של חלונות. לאחר שתשלים ספר וה, תרכוש הבנה. מספקת בתכנות בסביבת חלונות ותוכל בקלות לחקור כל אחת ממערכות המשנה שלה. המאפיין החשוב ביותר בחלונות 9% הוא בכך שהיא מערכת הפעלה של 32 סיביות, כפר שיתברר לך ככל שתתקדס בלימוד בספר זה. המעבר לסביבת 32 סיביות איפשר לחלונות להותיר מאחור חלק ניכר מהבעיות והמוזרויות הקשורים במערכות הישנות. יותר של 16 סיביות. פרק ו: הקדמה 19 ריבוי משימות מבוסס על מטלות כפו שבוודאי ידוע לך, חלונות היא מערכת הפעלה המתוכננת לריבוי משימות (6ח56פטטווי). כפועל יוצא מכך, היא מסוגלת להריץ במקביל שתי תוכניות או יותר - ריבוי תוכניות (ַוחוחבזמָסזקטוט/א). מובן שהתוכניות חולקות ביניהן את ה-070 ועל. כן, מבחינה טכנית הן אינן רצות בו-זמנית ; אולם בשל מהירות המחשב, התחושה היא שההרצה אמנם בו-ומנית. חלונות תומכת בשני סוגים של ריבוי משימות: כוה המבוסס על תהליכים, וכוה המבוסס על מטלות. תהליך (00999זק) הוא תוכניתת הנמצאת בהרצה. העובדה שחלונות מסוגלת לריבוי משימות כשמדובר בתהליכים, פירושה שהתוכנה מסוגלת להריץ בעת ובעונה אחת שתי תוכניות או יותר. חלונותת תומכת, אם כן, בריבוי משימות המבוסס על תהליכים בסגנון הישן, המוכר לך בוודאיי הסוג השני של ריבוי-משימות בסביבת חלונות מבוסס על מטלות. מטלה (6מסזחד) היא יחידה ניתנת לביצוע (קפופ) של קוד להרצה. מקורו של השם ברעיון "מטלות. ההרצהיי. לכל תהליך לפחות מטלה אחת; בחלונות יכול כל תהליך להיות מורכב מכמה מטלות. מכיון שחלונות מבצעת ריבוי משימות מבוסס על מטלות, וכל תהליך יכול להיות בך כמה מטלות, עשוי להיווצר מצב שבו שני מקטעיס, או יותר, של תהליך נתון יוצאים. אל הפועל בו-ומנית. למעשה, הנחה זו נכונה. לכן, כשאתה עובד עם חלונות, באפשרותך ליצור ריבוי משימות לגבי תוכניות ולגבי מקטעים שונים של תוכנית מסוימת. כפי שיתברר לך בהמשך ספר זה, תכונה זו מאפשרת לך לכתוב תוכניות. יעילות עד מאודד ממשק בשיטת הקריאות אס יש לך רקע ב-05, בוודאי ידוע לך שההשקה עס 005 מתבצעת באמצעות פסיקות. תוכנה (פוקטזזפוח1 6הא5010) שונות. לדוגמה, הפסיקה המקובלת ב-005 היא 21א0. אולם, למרות שהגישה לשירותי 005 באמצעות פסיקות תוכנה בהחלט מקובלת (נוכח. האפשרויות המוגבלות של מערכת ההפעלה 005), אין זו דרך יעילה כלל וכלל ליצור השקה עם מערכת הפעלה מתוחכמת המסוגלת לריבוי משימות, כמו חלונות. חלונות. משתמשת בממשק בשיטת הקריאות (67866וח1 88506-/031). שיטה זו בחלונות פועלת באמצעות סדרה גדולה של פונקציות שהמערכת מגדירה, והן מאפשרות גישה למאפיינים השונים של מערכת ההפעלה. במקובץ, נקראות הפונקציות. הללו ממשק תכנות יישומים, או בקיצור 81 (160169ח1 סז הסוובס וקה זה מכיל כמה מאות פונקציות שתוכנית היישומים שלך מפעילה כדי לתקשר עם חלונות. פונקציות אלו כוללות את כל הפעולות הנחוצות הקשורות במערכת ההפעלה, כגון הקצאת ציכרון, פלט למסך, יצירת חלונות, וכדומה. 0 הכח ומבוא ל-0פו ספריות בקישור דינמי (11פ) כיון ש-1ק מכיל כמה מאות פונקציות, עלול לחיווצר אצלך הרושם שכל תוכנית המהודרת לחלונות מקושרת לכמות נכבדה של קוד, דבר היוצר כפילות קוד בכלל תוכנית. אולם בפועל אין הדבר כך. במקום זה, הפונקציות הכלולות ב-ק של חלונות. שמורות בספריות קישור דינמי, או בקיצור .11 (865זט/1 106 6וחפחעס). לכל תוכנית יש גישה לספריות אלה בשעה שהיא רצה. סעיף זה מסביר כיצד פועל הקישור הדינמי. פונקציות 01 של חלונות שמורות במתכונת ניתנת להעברה, במסגרת 01 נתון במהלך שלב ההידור, כאשר התוכנית שלך מפעילה פונקציה באמצעות 81, המקשר (פאח!) אינו מוסיף לגרסת ההרצה של התוכנית שלך את הקוד המתאים לאותה פונקציה. במקום זה, הוא מוסיף לתוכנית הוראות טעינה עבור אותה פונקציה, כגון שם הפונקציה ושם ספריית 01 שבה היא שמורה. כאשר התוכנית רצה, נטענות על ידי הטוען (103661) של חלונות גם שגרות ₪01 נחוצות. בדרך זו, אין צורך להכניס בפועל. לכל תוכנית את קטעי הקוד של כל פונקציה. פונקציות 1 מתוספות רק כאשר היישום נטען אל תוך הזיכרון לצורך ההרצה. שיטת הקישור הדינמי טומנת בחובה כמה יתרונות חשובים. ראשית, כיון שלמעשה כל התוכניות משתמשות בפונקציות 1קא, הקישור הדינמי מונע בובוו מקוס בדיסק, דבר שהיה קורה אילו היה צורך להוסיף בפועל לכל תוכנית להרצה עותקים של קטעי הקוד. של פונקציות 71 המתאימות. שנית, ניתן לבצע שדרוג ולהכניס שיפורים בחלונות אפ בפשטות רבה, על ידי שינוי השגרות של ספריות 11ס. באופן כוה, אין צורך להדר מחדש את התוכניות הקיימות של היישומים השונים. כאשר תשתמש ביישומי חלונות, יתברר לך שכמה מרכיבי בקרה שבים ומופיעים. בתדירות גבוהה למדי. ביניהם נמנים סרגל הכלים, בקרת הסיבוב ((סשחס חו50), המבט על העץ, ותיבת הסטטוס. בחלונות 9% הוגדרו מספר פקדים משותפים, חדשים. ומלהיבים, הזמינים לכל היישומים (בהמשך הספר תלמד כיצד להפעיל כמה מהם) השימוש בפקדים החדשים האלה מעניק ליישום שלך את החזות המודרנית, המסמנת. אותו בבירור כתוכנית של חלונות א9. תורי קלט תורי קלט (פסטסט )טסח]) מכילים מסרים, כגון לחיצות על מקשים, או פעילות באמצעות העכבר, עד שניתן לשולח אותן לתוכנית שלך. ב-3.11 פאוס6חו יש רק תור. קלט אחד לכל המשימות הרצות בנקודת זמן מסוימת במערכת. בחלונות א9 מוקצה. תור קלט לכל מטלה. היתרון הטמון בכך הוא שאף תהליך לא יכול להאט את מהירות. הביצוע של המערכת כולה בכך שהוא מגיב באיטיות למסריס שלו. הגישה של ריבוי תורי קלט היא תוספת חשובה, אך לשינוי זה אין שוס השלכה ישירה. על הדרך שבה תתכנת עבור חלונות אפ. פרק ו: הקדמה ‏ 21 מטלות ותהליכים חלונות תומכת גם בריבוי משימות המבוסס על מטלות. תוכניות ישנות של חלונותת ירוצו יפה תחת חלונות 9 בלי שום שינוי, אך ודאי תרצה לשפר אותן כדי שתוכל לנצל. את אפשרויות ריבוי משימות המבוסס על מטלות. פקדים בעבר, היה השימוש ביישומים מבוססי טקסט (כלומר, לא חלונאיים) מתוך חלונותת מסורבל למדי. חלונות א9 תומכת בסוג מיוחד של חלונות, הנקראים פקדים חס חלון מסוג וה מספק לך טביבת סמן-פקודה באמצעות ממשק רגיל, מבוסס טקסט. פרט להיותו מבוסס טקסט, פועל הפקד (ומופעל) כמו כל חלון אחר. תוספת זו של פקד מבוסס טקסט מאפשרת הרצה של יישומים לא-חלונאיים בסביבת חלונות מלאה, ומאפשרת ליצור בקלות רבה תוכניות שירות קצרות לשימוש חד-פעמי. חשוב מכך, מרכיב וה של חלונות מסוג פקד בחלונות 9% מהווה למעשה, הכרה בכך שיש היגיון בחלק מהיישומים מבוססי טקסט, ומעתה ניתן לנהלם ולהפעילם כחלק מהסביבה הכוללת של תוכנת חלונות. מיעון כתובות רציף קיבולת הזיכרון הווירטואלי העומד לרשות יישומי חלונות הוא 68 4! יתר על כן, מרחב מיעון הכתובות הזה רציף (₪180). שלא כמו ב-3.11 005חו/ו, 005 ויתר מערכות. ההפעלה ממשפחת 8086, המשתמשות בויכרון מקוטע על פי סגמנטים, חלונות א מתייחסת לציכרון כאילו היה רציף. מכיון שהיא משתמשת בשיטת זיכרון וירטואלי, לרשות כל *ישום עומד זיכרון בכל כמות שהוא עשוי להודקק לה (באופן סביר) המעבר למיעון כתובות רציף שקוף ברובו עבור המתכנת, המסיר מעליו חלק ניכר מהטיפול המייגע והמתסכל במיעון כתובות לפי השיטה הישנה, המקוטעת. פקדים כלליים חדשים 1 %ס6חו// תמכה בכמה פקדים רגילים, כגון לחצנים, תיבות סימון, כפתורי רדיו, תיבות עריכה, וכדומה. חלונות כוללת תמיכה בפקדים הרגילים הללו, אך הוגדרו בה. גם כמה פקדים חדשים. הפקדים החדשים נקראים פקדים כלליים (חסוחוחסס. וסשחסס), וכוללים בין השאר, פריטים כמו סרגלי כלים, ₪05 ו0ו, תיבות סטטוס,, תיבות התקדמות, תיבות מעקב ועוד. הפקדים החדשים משפרים את הממשק למשתמש ומעניקיים חזות *מודרנית" לייישומים המשתמשים בהם. 2 קקח ומבוא ל-ספו הקשר עם דא בוודאי שמעת על תוכנת דא פוס6חו\. ייתכן שאף השתמשת בה. זוהי מערכת ההפעלה. המשוכללת. ביותר של מיקרוסופט, המבוססת על חלונות. ‏ ישנם דברים רבים המשותפים ל-דאפוווסטחוו ולחלונות 9. שתי התוכנות תומכות במיעון כתובות רציףף בשיטת - 32 סיביות. שתיהן תומכות בריבוי משימות מבוסס על מטלות, ושתיהן תומכות בממשק המבוסס על עמדות שליטה. ואולם אין לבלבל בין שתי התוכנות, שכן אין ביניהן זהות. למשל, זו פווסחוו נוקטת גישה מיוחדת ליישום מערכות הפעלה, גישה המבוססת על דגס לקוח/שרת. בחלונות 9% אין זה כך. זא פאוסוחו תומכת. במערכת אבטחה מלאה; בחלונות אין זה כך אין ספק שחלק גדול מהטכנולוגיה הבסיסית שפותחה לצורך יצירת 1/1 פוסחוצ שימשה גם לבניית חלונות א9, אך שתי הגרסאות שונות מאוד זו מזו. עם זאת, רצור לציין שגירסה 4 של זוז פווסשחווו קיבלה את חזותה של חלונות אפ, כלומר, ממשק המשתמש דומה מאוד. עם איזו תוכנה להריץ את התוכניות בספר? ההידור של קטעי הקוד בספר וה נעשה באמצעות מהדר 6.0 ++6 |מטפוש של מיקרוסופט שנפוץ אצל מתכנתים רבים. סביר להניח שתוכל להדר את התוכניותת הכלולות בספר זה באמצעות כל מהדר תואם חלונות. הדוגמאות השונות נכתבו בשפת. ++6/6 הרגילה, וניתן להדר אותן באמצעות כל מחדר ל- ++6/0. לספר וה מצורפים 2 תקליטורים. באחד מהם תמצא את מהדר 6 ++6 |₪8 בגירסה מיוחדת - ח6000 עזסוט0סטחז של מיקרוסופט. התוכניות לא הורצו ונבדקו בגירסה זו. התוכנה ניתנת כבונוס ללא תשלום לרוכשיי הספר והוצאת הוד-עמי אינה מספקת תמיכה במוצר.. 8 /2000חו ספר וה מתייחס לגירסה של 6.0 ++6 וגטפוץ שעבדה עם 18801 שהתאימו ל-95 0/6045 קייימים 5670008065 נוספים שנותנים את האפשרות להשתמש עם תכונות ופקדים שנוספו במערכות ההפעלה הבאות. כתובת 08 טובה מאוד לחיפוש מידע מעודכן הלא : ח00610500.60.ח50ו פרק ו: הקדמה ‏ 23 על התקליטורים המצורפים קרא את קובץ 60.006א0 בתקליטור כדי לקבל מידע על תכולת התקליטור המצורף. קרא בהמשך כיצד להעתיק את קבצי המקור הרלוונטים לספר זה. לספר מצורפום 2 תקליטורים. באחד מהם תמצא את המהדר 84/000 /600ט106ה1 6 ++6 |הטפו/ בגירסה מיוחדת של מיקרוסופט. התוכניות לא הורצו ונבדקו בגירסה זו. התוכנה ניתנת כבונוס ללא תשלום לרוכשי הספר והוצאת הוד-עמי אינה מספקת תמיכה במוצר. בתקליטור השני המצורף לספר זה תוכל למצוא מספר דברים. : קטלוג וו - קטלוג ספרי המחשבים האינטראקטיבי של הוצאת הוד-עמי בו וכל לצפות בספרי ההוצאה ולקרוא פרקים לדוגמה מתוך חלק מהספרים. לשם קריאת הפרקים יש להתקין את תוכנת 863061 01006 0006 שנמצאת בתקליטור. הקטלוג מומלץ לצפייה באמצעות 5 זסוסוקא₪ 8106)ח1 שמצורף בתקליטור. מספר תוכנות עזר שימושיות. קבצי קוד מקור. 4 הַעְרֶה; | אס מנהל התקן כונן התקליטורים המותקן הוא 16 סיביות ווה יכול להיות גם אס הכונן חדש) - ייתכן שתראה רק את 8 התווים. הראשונים של שם הקובץ (במקרה שהמקור ארוך יותר), או ייתכן שתראה שהתיקיות ריקות. הטוב ביותר הוא להתקין מנהל התקן 32 סיביות, או לקנות כונן תקליטורים חדש ולוודא שמצורף אליו מנהל התקן 32 סיביות. 4 קקח ומבוא ל-ספו היכן נמצאים הקבצים הקשורים לספר זה? התיקיה הרלוונטית לספר זה: 59285 תחת תיקיה 8008559285:% (החלף את האות % באות הכונן המתאימה) תמצא תיקיות משנה: תיקיה עבור כל פרק: תיקיה 00501 עבור פרק 1, תיקיה 6802 עבור פרק 2 וכך הלאה. בכל תיקיה נמצאים קטעי קוד המקור לפי הדוגמאות שבספר. אנו מבקשים להתייחס רק לקבצים הנמצאים בתיקיה הרלוונטית לספר תחת 800% בתיקיות אחרות נמצאים קבצים הרלוונטיים לספרים אחרים של ההוצאה. העתקת קבצי המקור לדיסק הקבצים נמצאים בתיקיה 008559285פ :% מסודרים לפי תיקיות - תיקיה עבור כלל פרק. כדי להעתיק את הקבצים לדיסק. 1. לח על לחצן התחל, תוכניות, סיור פווסשחוא. 2. הצג את תוכן התיקיה 8006 אשר בתקליטור. 3. סמן את התיקיה 59285 וגרור אותה לתיקיה כלשהי בדיסק. מכיון שמקור הקבצים הוא התקליטור, הס מסומנים לקריאה בלבד. רצוי לשנותת מאפיין וה בדרך זר 1. דרך הסייר היכנס לתיקיה בדיסק, שבה נמצאים הקבצים שהעתקת. 2. סמן קובץ מסוים או את כולס על-ידי 011+8. 3. הצב את סמן העכבר מעל האזור המסומן ולחץ לחיצה ימנית בעכבר. 4 מתפריט הקיצור בחר מאפיינים. 5. בטל את הסימון בתיבה קדיאה בלבד (דאג שתיבה זו תהיה ריקה). 6. לחץ על החל, לח על אישור. אפשרות אחרת. 1. לחץ על לחצן התחל, תוכניות, הפנייה ל-5-005ו. 2. בחלון 005 רשוס: 5/ *.*6:59285 8+ ז- טחזו4. אם העתקת את הקבצים לתיקיה אחרת, רשום זאת במקום 6:59285. פרק ו: הקדמה 25 פרק תכנות בחלונות א9, סקירה בפרק זה נערוך היכרות עם תכנות בסביבת חלונות 9%. לפרק שתי מטרות עיקריות. ראשית, נגדיר את קשרי הגומלין המחייבים בין מערכת ההפעלה חלונות (005חו/. לבין התוכניות הרצות תחתיה, ואת הכללים שחובה על כל יישום של חלונות לציית. להם. שנית, נפתח בפרק זה שלד של יישום, אשר ישמש בסיס, או מסגרת, לשאר התוכניות שנפתח בספר זה עבור חלונות. בהמשך תכיר כמה תכונות המשותפות לכל. התוכניות של חלונות. המסגרת שתיבנה בפרק זה תכיל את כל אותן תכונות משותפות. 1 מבט על התכנות בחלונות א9 היעד של תוכנת חלונות 9% (וחלונות בכלל) לאפשר לכל מי שיש לו היכרות בסיסית עם. המערכת להריץ, בלי הכשרה מוקדמת, כמעט כל יישום שאפשר להעלות על הדעת. כדיי להנשים ועד וה, מכילה חלונות ממשק עקבי למשתמש. להלכה, אם אתה יודע כוצד להריץ תוכנית אחת המבוססת על חלונות, תדע להריץ כל תוכנית אחרת. רוב התוכניות השימושיות מחייבות הכשרה כלשהי כדי שניתן יהיה לנצלן באורח זעול, אבל ההדרכה במקרה שלנו מסתכמת במה עושה התוכנית, ואין צורך להסתבך בשאלות כמו איך על המשתמש לתקשר איתה. למעשה, חלק ניכר מהקוד ביישומים. חלונאיים משמש רק לתמיכה בממשק המשתמש. לפני שנמשיך, חובה לומר שלא כל תוכנית המסוגלת לרוץ תחת חלונות א9, תצוג בהכרח ממשק בסגנון חלונאי בפני המשתמש. בהחלט ניתן לכתוב תוכניות לחלונות. שאינן מנצלות את מרכיבי הממשק החלונאי. כדי ליצור תוכנית בסגנון חלונות, עליךך לנקוט כמה פעולות מכוונות, ולהשתמש בטכניקות המתוארות בספר זה. רק התוכניות. הנכתבות תוך שימוש באפשרויות הגלומות בחלונות, ייראו ויעניקו תחושה של תוכניות חלונאיות. ניתן בהחלט לוותר על הפילוסופיה העיצובית הבסיסית של חלונות, אך רצוי שתהיה לך סיבה טובה לעשות זאת, כיון שהדבר עשוי לעורר תחושה. של אי-נוחות אצל מי שאמור להשתמש בתוכניות שלך. ככלל, רצוי שיישומים שאתה 6 זקתקבחו/ ומבוא ל-ספו כותב לחלונות יופעלו באמצעות הממשק הרגיל של חלונות, ויעוצבו לפי עקרונות העיצוב הרגיליס של חלונות. תוכנת חלונות א9 (א9 פווסנחוו) היא בעלת אוריינטציה גרפות, כלומר, היא מכילה ממשק משתמש גרפי - 601 (97569זח1 056 בסוחקֶ3ז6). בשוק נמצא מיגוון רחב של פריטי חומרה לגרפיקה ושיטות וידאו, וחלונות מסוגלת להתמודד עס רוב ההבדלים. ביניהם. כלומר, בדרך כלל התוכניות שלך לא צריכות להביא בחשבון את סוג החומרה, או את שיטת הווידאו שישמשו להרצה. אולם, בשל האוריינטציה הגרפית של התוכנה, מוטלת עליך, כמתכנת, אחריות נוספת כשאתה יוצר יישומים לחלונות. כפי שתיווכח בהמשך, מוקדשים פרקים רבים בספר זה לניהול נכון של המסך. נתבונן עתה בכמה מהתכונות החשובות ביותר של חלונות אפ. 2 מבט אל שולחן העבודה למעט חריגות ספורות, מטרת ממשק משתמש המבוסס על חלונות היא ליצור תמונת. שולחן עבודה ממשי על פני המסך. על שולחן עבודה טיפוסי תמצא בוודאי ערימת ניירות, בדרך כלל תראה גם את קצוות הדפים שמלמטה. בסביבה החלונאית, הסביבה. המקבילה לשולחן העבודה היא המסץ. הדפים והניירות שעל השולחן מיוצגים על ידי החלונות השונים שעל המסך. כשאתה עובד על שולחן אמיתי, אתה מזיז את הניירות, ומדי פעס משנה את הסדר שלהם בערימה, כך שכל פעס נמצא דף אחר בראש הערימה. תוכנת חלונות מאפשרת לך לבצע פעולות דומות על המסך, בעורת החלונות השונים. על ידי בחירה בחלון, אתה הופך אותו לחלון הפעיל, כלומר, מניח אותו בראש הערימה של כל החלונות הפתוחים באותה עת. בקצרה, חלונות מאפשרת לך לשלוט במסך ולהזיז עליו פריטים באותה דרך שבה אתה מזיז דברים על שולחן העבודה שלך. דגם שולחן העבודה הוא הבסיס של ממשק המשתמש בחלונות, אך אין זו מתכונת המחייבת בהכרח את התוכניות עצמן. למעשה, אחד החידושים בחלונות הוא תוספת. מרכיבי ממשק שונים המחקים סוגים אחרים של התקנים נפוצים, כגון בקרת גלישה, בקרת סיבוב, רשימות עץ וסרגלי כלים. כפי שתיווכח, מספקת חלונות למתכנת מערך. מגוון של תכונות, דבר שמאפשר לכל אחד לבחור את המאפיינים והכלים המתאימים. ביותר ליישוס שבו הוא עוסק. העכבר תוכנת חלונות 9% מאפשרת שימוש בעכבר כמעט לכל פעולות הבקרה, הבחירה והציור. לומר שהתוכנה מאפשרת שימוש בעכבר היא המעטה מופלגת, כי הממשק של חלונות. תוכנן במיוחד לעכבר. למעשה, הוא מאפשו, ברוב טובו, את השימוש במקלדת! בהחלט אפשר ליצור *ישום המתעלם מהעכבר, אולם, זו תהיה הפרה של אחד מעקרונות העיצוב הבסיסייים של חלונות. פרק 2: תכנות בחלונות א5, סקירה ‏ 27 סמלים ומפות-סיביות חלונות מעודדת ומפשטת את השימוש בסמלים (16005) ובמפות-סיביות (פקמושוט - תמונות גרפיות). תפיסה זו מבוססת על האימרה י"תמונה אחת שווה אלף מילים". הסמל הוא תמונה זעירה המייצגת פעולה או תוכנית מסוימת. ככלל, ניתן לבחור בפעולה, או בתוכנית, על ידי בחירה בסמל. מפת-סיביות משמשת פעמים רבות להעברת מידע למשתמש בצורה מהירה ופשוטה, אך ניתן להשתמש במפות אלו גם: כפריטים בתפריט. תפריטים, סרגלי כלים, סרגלי סטטוס ותיבות דו-שיח פרט לחלונות הרגילים, מכילה חלונות א9 גם כמה סוגים של חלונות מיוחדים, הנפוצים ביותר הס. , תפריט (שחפו) הו חלון מיוחד, המכיל רשימה שממנה בוחר המשתמש פריט. מסוים. אולם, במקום שתצטרך לכלול בתוכנית שלך את הפונקציות המתאימות. לפריטי התפריט השונים, תוכל ליצור תפריט תקני בעורת פונקציות מובנותת שיתאימו לפריטי התפריט השונים. סרגל כלים (08 |100) הוא ביסודו תפריט מיוחד, המציג את האפשרויות שלו באמצעות תמונות גרפיות קטנות (סמלים - 06005. המשתמש בוחר עצם מסוים. על ידי לחיצה בעכבר על התמונה הרצויה לד סרגל הסטטוס 831 005גז5) הוא פס המופיע בתחתית חלון, המכיל מידע הנוגע. למצב חיישום. תיבת דו-שיח (80% סָסוום) היא חלון מיוחד המאפשר תקשורת מורכבת יותר ביך המשתמש והיישום מאשר באמצעות התפריט, או סרגל כלים. לדוגמה, היישום. שלך יציג תיבת דו-שיח כדי לבקש שם קובץ. כמעט כל קלט שאינו נעשה דרך. תפריט, נעשה באמצעות תיבת דו-שיח. 3 קשרי גומלין בין חלונות א9 לתוכנית שלך כאשר אתה כותב תוכנית המיועדת למערכות הפעלה רבות, התוכנית היא זו שיוומת את קשרי הגומלין עם מערכת ההפעלה. בתוכנית של 005 לדוגמה, התוכנית היא זו שמבקשת פריטים, כגון קלט ופלט. במילים אחרות, תוכנית שנכתבת במתכונת היימסורתית'' קוראת למערכת ההפעלה. בחלונות 9%, הדברים הפוכים. דווקא מערכת. ההפעלה היא זו הקוראת לתוכנית שלך. התהליך מתנהל כך: התוכנית שלך מחכה עד. שהיא מקבלת הודעה (%69936) מחלונות. לאחר שהתקבלה ההודעה, אמורה התוכנית. שלך לנקוט את הפעולה המתאימה. התוכנית עשויה להפעיל פונקציה אחת, או יותר, מתוך 1 של חלונות כאשר היא מגיבה להודעה, אך מערכת ההפעלה (חלונות 9%) 8 זקתקבח/ ומבוא ל-ספו יוומת את הפעילות. יותר מכל, קשרי הגומלין עם חלונות, המבוססים על הודעות, הם. המכתיבים את המתכונת והצורה הכללית של כל התוכניות לחלונות אפ. חלונות עשויה לשלוח לתוכנית שלך סוגים רבים של הודעות. לדוגמה, לחיצת עכבר על אחד החלונות של התוכנית שלך תגרום לחלונות א9 לשלוח לתוכנית הודעה שמקורה. בלחיצת עכבר. הודעה מסוג אחר תישלח כל פעם שיש ליצור מחדש את אחד החלונות. בתוכנית. הודעה מיוחדת אחרת נשלחת כל פעם שהמשתמש מקיש על מקש כלשהו, כשהתוכנית נמצאת במוקד הקלט. כדאי לזכור היטב עובדה אחת: ככל שהדבר נוגע לתוכנית שלך, ההודעות מגיעות בצורה אקראית. מסיבה זו תוכניות של חלונות דומות. לתוכניות המופעלות בשיטת הפסיקות. אאין דרך לדעת מה תהיה ההודעה הבאה. 4 ממשק תכנות יישומים - קה של 32חוצ הגישה לסביבת חלונות נעשית באמצעות ממשק מבוסס על קריאות, המכונה ממשק תכנות *ישומים (01א). 71 מכיל כמה מאות פונקציות שהתוכנית שלך מפעילה אותן לפי הצורך. הפונקציות שמכיל 1קא מבצעות את כל שירותי המערכת הכלולים. בחלונות. ל-1/ מערך-משנה המכונה ממשק התקנים גרפיים - 601 (0666 65חק97ז6. 6 וח]), שהוא אותו חלק מתוכנת חלונות המעניק תמיכה לגרפיקה שאינה תלוית-התקן. פונקציות 601 הן אלו המאפשרות להריץ יישומים של חלונות על מיגווך רחב של פריטי חומרה. התוכניות במערכת חלונות מבוססות על א של חואו ממשק 2חו/+ תומך במיעוך כתובות בשיטת 32 סיביות בעוד ש-16חו/ו תמך רק בשיטת הציכרון המקוטע בן 16 סיביותת בגלל ההבדל בשיטת המיעון, חלק מהפונקציות הישנות יותר ב-1 הורחבו, כדי שתוכלנה לקבל פרמטרים של 32 סיביות ולהחזיר ערכים של 32 סיביות. כמו כן, היהה צורך לשנות כמה מפונקציות 01 כדי להתאימן למבנה לפי שיטת 32 סיביות. פונקציות חדשות התוספו ל-א כדי לתמוך בגישה החדשה לריבוי משימות, במרכוביי הממשק החדשים וביתר התכונות המשופרות שהגיעו בחלונות אפ. כיון שחלונות תומכת במיעון כתובות מלא בשיטת 32 סיביות, ההיגיון מכתיב מספרים. שלמים שיהיו אף הם באורך של 32 סיביות. פירוש הדבר, שהסוגים זח1 ו-66ח0פחט. הם באורך 32 סיביות. אס אתה רוצה להשתמש במספר שלם באורך 16 סיביות, חובה. להגדיר אותו כ-+וסו5 (חלונות אפ מספקת לך שמות !1/0006 ניתנים להמרה עבור סוגים אלה, כפי שתיווכח מייד. השלכה נוספת של מיעון הכתובות בשיטת 32 סיביות היא, שאין עוד צורך להגדיר מצביעים כ - ז63 או זבז. לכל מצביע יש גישה לכל חלק מהזיכרון. בחלונות 9%, איך שום הגדרה ל-91 או ל-זגח. כלומר, אתה יכול להשאיר את 63 1-1 בתוכניות. שאתה מייבא אל תוך חלונות, אך לא תיה להם השפעה. פרק 2: תכנות בחלונות א5, סקירה ‏ 29 5 מרכיבי חלון בתוכנית פשצסחזצ אולי הצלחת לנחש: אבן היסוד של בניית תוכנית לסביבת 00005חו// זהו חלון אחד אר יותר, או תיבות דו-שיח (שגם הן סוג מיוחד של חלון). למעשה, כמעט כל עצם שנמצא בחלון הוא גם כן חלון מסוג מסוים. בסעיפים הבאים תבין טוב יותר שהתוכניותת משתמשות בחלונות דומים למדי, למרות שהם נגזרים ממקומות שונים. במה שקשור לסעיף מסוים זה, חשוב שתדע את המרכיבים של חלון רגיל (00חו/ 90306378) = במילים אחרות, מה שהמשתמש בתוכנית מזהה כחלון. בכלל, 010% בונה כל "חלון רגיליי משבעה חלקים בסיסיים. באפשרותך לפרק כל' אחד מחלקים אלה לחלקים יותר קטנים, דבר שתעשה ברוב הסעיפים הבאים. אבל, חשוב שתבין את צורת החלון באופן כללי לפני שתתחיל בניתוח חלקים קטנים אלה שכולם יחד יוצרים את כל אחד ממרכיבי החלון. בתרשים 2.1 מובאת תמונה של חלון רגיל, על כל מרכיביו סמל תפריט חצן הקטנה. כותרת. המערכת לחצן הגדלה. = (26. שג צויס פוה מוסזה וגו ככ בקה סדור ער ם שופ ב == 5 2]₪ומוה |= ו [-= 51 (>/ומוא פוב (₪וא1ב. | 0 ]6 |₪ 5 |₪ |=5 9 | םדו - התה שה ' מתאר 7 | פס גלילה אופקי שטח הלקוח. תרשים 1.1. המרכיבים של חלון רגיל. חלון המסגרת (אוסמחו\ סוחגז") הוא המכולה (פחוב!חסס) של כל מה שנמצא בחלון. כמו שנלמד בהמשך, אפשר ליצור חלונות מסגרת רבים ומסוגים שונים. חלון המסגרת. השימושי ביותר הוא זה שמאפשר לשנות את הגודל שלו, בדומה לזה שמוצג בתרשים 1. בתוכניות שלך תטפל במסגרת ותקבל הודעות רבות מהמסגרת, כמו ההודעה לשינוי גודל החלון. הסעיפים הבאאים דנים בחלון המסגרת באופן מפורט יותר. 0 הלבחו ומבוא ל-ספו שורת הכותרת (83 06ד) מציגה למשתמש מידע על התוכנית. שורת הכותרת נמצאת. לרוחב החלון בקצה הסמוך לגבולו העליון. שורת הכותרת מאפשרת זיהוי תוכן החלון. ומאפשרת למשתמש לבצע פעולות חלון רבות. שורת הכותרת משמשת כנקודת האחיזה בחלון כשרוצים להזיו אותו ונמצא בה גם תפריט המערכת (טח6) וחפוצץ5), והלחצנים האלה: הקטנה (טחוח!!), הגדלה (טקוחזואה!א), שחזור (5076פה) וסגירת. חלון (00חו/ו 056ו0). בסעיפים הבאים נלמד שרכיבי שורת הכותרת משתנים כתלות. ביישום שיוצר את החלון שבו נמצאת שורת הכותרת. הלחצנים השונים להקטנה, להגדלה ולסגירת החלון, שנמצאים בשורת הכותרת, חשובים מאוד, ולכן עליך לקחת אותם בחשבון כמרכיבי החלון. לחצנים אלה מאפשרים לך שליטה בגודל החלון וסגירתו כשלא צריך אותו יותר. שטח הלקוח (6ז :ח0/6) של החלון הוא חלק החלון אשר באפשרותך לתכנן את תוכנו כרצונך ולהתאים אותו לדרישותיך המיוחדות, כמו למשל קלט נתונים מהמשתמש. במילים אחרות, שטח הלקוח הוא אותו חלק של החלון אשר בו מתרחשת. מרבית הפעילות של התוכנית. לדוגמה, אם אתה עובד עם מעבד תמלילים כמו אס של מיקרוסופט, שטח הלקוח הוא אזור החלון שבו אתה כותב ועורך את המסמך.. פסי הגלילה (835 |/560) מאפשרים למשתמש לנוע בחלון שמאלה וימינה ולמעלה ולמטה. לדוגמה, תוכל להשתמש בתוכניות שלך בפסי הגלילה כדי לאפשר למשתמש. לגלול את הקלט על פני החלון. שימוש נוסף בפסי הגלילה בתוכניות הוא לאפשר למשתמש לנוע בתוך מסמך ששמר לפני כן בדיסק, כמו שהוא משתמש בפסי הגלילה. בתוכנה כמו 016/. פסי הגלילה הם כלי מאוד חשוב לניווט בתוכניות פאוסטחוו. שורת התפריט (ז83 טחסוו) היא מרכיב שכיח מאוד בחלונות אב (צאוסחוא זחפזהק), אך. בדרך כלל לא נמצא ברוב חלונות הבנים. תוכניות פווסחווו. משתמשות בשורת התפריט כדי לספק למשתמש אפשרויות פקודה רבות המתאימות לתוכנית. כמו שנלמד בהמשך, רוב תוכניות 0065ח/ מכילות לפחות את התפריטים קובץ 6 ועזרה (פ|6ו'). תוכניות %5סחוא מורכבות יותר מכילות גם 10 תפריטים ויותר, ויש. תפריטים שיש בהם אפילו 20 אפשרויות בחירה של פקודות. ככל שהתוכניות שלך יהפכו להיות יותר מסובכות ומורכבות, כך גם התפריטים שלך יהיו מורכבים יותר. תרשים 2.2 מציג את שורת התפריט של 6ז0// 010508 ער ₪ תרשים 2.2: שורת התפריט של 4זס/) 1010508 שורת המצב (83 583005) נמצאת בתחתית רוב חלונות האב, אך בדרך כלל לא נמצא אותה ברוב חלונות הבנים. תוכניות פווסוחוו משתמשות בשורת המצב כדי לספק למשתמש מידע שמפרט את מצב המשתמש בתוכנית - מקומו במסמך, בשורה, וכדומה. תרשים 2.3 מציג את שורת המצב של 6זסוו, שמספקת מידע חשוב על מיקומו הנוכחי של המשתמש במסמך.. תרשים 2.3: שורת המצב של 6זס0) 11070508 פרק 2: תכנות בחלונות א5, סקירה ‏ 31 6 חלון-אב וחלון-בן (5עצ00ח:/ 6116 3 +חסזבּק) בקטע הקודם למדת, שרוב חלונות האב מכילים את שורת התפריט ושורת המצב, אך רוב חלונות הבן אינם מכילים מרכיבים אלה. אולי אינך יודע עדיין מהו חלון-אב ומחור חלון-בן, אך נקדיש לכך הסבר קצר. מרבית תוכניות 0005חו/ תומכות בממשק מרובה מסמכים (97209זה1 זחסוחססם 6וקטווי. ובקיצור 01ו. ממשק זה מאפשר לתוכנית אחת להחזיק ולהציג רכיבים רבים בחלון אחד. לדוגמה, תרשים 2.4 מציג את תוכנת 6זס/ו שבחלון שלה מוצגים ארבעה מסמכים פתוחים. ₪ ישן ₪1 ואבו (=|ןש ₪ |:8 81219 ד בר כשה-הכת מו שמק | ל ב חן ד8]7/₪ בו | |-==|->> [ ומומ א (שורו₪ [טופום 0 ו תרשים 2.4: חלון-האב של שזס/+ עם ארבעה חלונות-בן פתוחים. דבר וה דומה יותר להיררכיית המחלקות שלמדת והשתמשת בה בתוכניות ++6. כל' חלון נגזר מחלון בסיסי מסוים ולכן, לכל חלון יש חלון-אב. בתרשים 2.4, חלונות הב הס החלונות הפנימיים שבמסמך, וחלון האב הוא החלון של שזס/+. כמו כן, אתה יכול. לחשוב על החלון של 4זס/ו כחלון-בן ואת חלון שולחן העבודה (ואס0חו ק0ז50ס) של 65ו0חו/ תוכל לראות כחלון האב שלו. לחלון שולחן העבודה אין חלון-אב. בתרשים הקודם, חלון האב תומך בממשק מרובה מסמכים, שמאפשר לחלון האב שיהיה לו חלונות בן רבים. תוכניות פאוס6חו אחרות תומכות בממשק מסמך בודד. (968!זפזח1 זחסוחנסס 6ח/פ) ובקיצור 501. ממשק זה מאפשר לחלון האב להחזיק רק. בחלון אחד, כמוצג בתרשים 2.5. 2 קקח ומבוא ל-ספו תרשים 2.5: תוכנית פנקס הרשימות (006036/!) של %5א00ח1 היא בעלת ממשק מסמך בודדד לבסוף, רבות מתוכניות 005חו// תומכות בגרסאות מיוחדות ושונות של ממשק מסמך בודד, שידועות בטם ממשק בסונון סייר 401060005 טחטחססס 000-5006 6 ]. המתכנתים קוראים לגרסאות המיוחדות האלו בשם זה, מכיון שהם מעצבים את הממשק על פי הממשק של סייר פווסטחווצ. ממשק זה דומה לממשק מסמך בוד בכל התכונות, מלבד העובדה שחלון המסמך (006חו/ זהסוחטסספ) היחיד. מתפצל באמצע, והדבר מאפשר לתוכנית להציג קבוצות נתונים מיוחדים בתצוגה יחידה (אפוש 6פָ5). ובדרך קלה יותר. תרשים 2.6 מציג את סייר 5או60חואו (60זס!קא 000085 ואת סגנון הממשק המיוחד שלו. ו ו [פ]א = || |ג [פש || ה ל-השכן ו בי ₪ בב - ור מ ו ב שא ד הש יב ₪ ב שב 7 5 ו ה תרשים 2.6: סייר 60%%5ח/6 וממשק בסגנון הסייר בתוכניות שלך תנהל בדרך כלל חלונות-בן רבים בתוך חלון-אב יחיד. ככל שתתקדם בתכנון חלונות, תכיר יותר את ההבדליס החשובים שבין הגרסאות השונות של הממשקים. פרק 2: תכנות בחלונות א5, סקירה ‏ 33 7 יישומי חלונות א9, עקרונות בסיסיים בטרם ניגש לפיתוח השלד של יישומי חלונות, ראוי לדון בכמה מהמושגים הבסיסיים. המשותפים לכל התוכניות הפועלות במערכת חלונות אפ. הקדמה למטלות (6865זחד) אנו מניחים שיש לך ניסיון בתכנות ++6 בסביבת 005. על כן, אתה בוודאי יודע ש-005 תומכת בהרצת תוכנית אחת בלבד בכל זמן נתון, ורק תוכנית זו נמצאת בויכרון באותו ומן, אך לא כך הדבר בסביבת העבודה פווסשחו שאאינה כפופה לאילו). זה. למעשה, 005חו/ו מגבילה את מספר התוכניות שמחשב מסוגל להפעיל בו-ומנית. רק אם אין מספיק ציכרון לפתוח תוכניות נוספות. היא מנהלת את התוכניות האלו בויכרון בשיטת המטלות. מטלה (66וחז) היא, למשל, בקשה של התוכנית להשתמש במעבד (690) של המחשב. כשיש לך מספר תוכניות שפועלות בו-ומנית, מערכת ההפעלה תנהל מטלה אחת או יותר עבור כל אחת מתוכניות אלו. 60606חו מציבה כל. מטלה בתור (רשימה) של מטלות הממתינות לביצוע. אחר כך, בהסתמך על העדיפות. שיש למטלה, 05ו00חו/ו ישולפתי מטלה מהתור ומקצה לה ומן מעבד לביצוע ההוראות. של המטלה. עדיפות המטלה קובעת היכן פאוסחוו מציבה אותה ביחס למטלות. אחרות שבתור. תרשים 2.7 מציג תיאור גרפי פשוט לדרך שבה 6068חו מנחלת. מטלות. 1 בב תרשים 2.7: המעבד מטפל בסדרת מטלות. נחזור ונדון במטלות בהרחבה בסעיפים שנלמד מאוחר יותר. אבל, מה שעליך לדעת. כרגע הוא שמטלה היא הישות ש-פווסחו/ו מקצה עבורה זמן מעבד להרצת הוראות. התוכנית הכלולות בה. 8וסחו/ מארגנת את המטלות בהסתמך על העדיפות שלהן והמעבד מבצע כל מטלה לפי התור. בתרשים 2.8 מוצג מודל פשוט שמראה איך התוכנית מבקשת מהמעבד לבצע פעולה כלשהי, ומקבלת ממנו את התוצאה בסיום. העיבוד 4 לבחו ומבוא ל-ספו 0סחו וחוסַסזכ 0 6 0 5ופפוו0) 5 ב בי -----| תרשים 2.8: סכמה פשוטה לעיבוד מטלות על ידי פווס0חחו. ווסטחו מחצירה את התוצאות לתוכניות שלך בסיום העיבוד בפורמט הקרוי הודעה [8 0553 8 הודעות התוכנית (16553065]) האמצעי העיקרי שמשמש לתקשורת בין 5ווסח/. והתוכניות הכתובות לסביבת פאוסחוו. ה הודעות (6953065/). הדבר פשוטי למדי. בכל פעם שמתבצעת פעולה מסוימת, 0085ח/ מגיבה על ידי משלוח הודעה אל עצמה, או אל תוכנית אחרת. לדוגמה, כשהמשתמש לוחץ על העכבר בחלון התוכניות שלך, 5וס0חו יקולטת' את לחיצת העכבר ושולחת הודעה לתוכנית שלך, בה היא מודיעה לה על כך שהמשתמש. לח על העכבר בחלון התוכניות במקום מסוים. כשהתוכנית שלך מקבלת את ההודעה, היא מתחילה תהליך עיבוד שמתאים להודעה שנקלטה. אם ההודעה אינה חשובה לתוכנית, היא צריכה להתעלם ממנה. להבנת מודל ההודעה של פאוסטחו/ יותר טוב, התבונן בתרשים 2.9, שמראה את המודל באופן מופשט, בצורת ליניארית. 0 1 זו | | 0 הור 1 1-ו בי ב היה תרשים 2.9: סכמה פשוטה למודל ההודעות של פאוסטְחו/. כשכותבים תוכניות בסביבת פווסטחוו השגרות החשובות ביותר בתוכניות תהיינה אלו שמקבלות ומעבדות הודעות ממערכת ההפעלה. לדוגמה, קטע הקוד הבא של הפונקציה. 6 מציג עיבוד פשוט של הודעה ופונקציה שמגיבה להודעה שלהלן. פרק 2: תכנות בחלונות 5, סקירה ‏ 35 הצקא אתתתפה ,ספפגו עתצט ,המות כומות | 00עפבחח אסהמננתס ענטפמתנ (מ898פ1 ונתהתקן 8 ל ו 00 9 896 ( (בפא) אס ) 160 צפפס 188 886 (שפט צנאם 188 886 (8) 5650100 (8%סעם צר + צסהצפפם 006 856 06005 008655896 0( ; [שפ 0 ((80עבק1 ,מבצקא ,ספעט ,מחת) ססעש400ה01סע) מעטסם, 1 (01) מ ג באופן כללי, קטע הקוד משתמש במשפט 800608 כדי לקבוע את סוג ההודעה שהתקבלה. ככל שתתקדם בלימוד הסעיפים, תבין בקלות את העיבוד שנעשה בפונקציה 0906ח/+. בקטע הקוד הזה, הפונקציה בודקת את ההודעה סאאויוואס6 ואר או את ההודעה צסהז055 !, או שהיא מוסרת את ההודעה לפונקציית ברירת המחדל שמטפלת בהודעות. הפונקציה פועלת על פי סוג ההודעה שהיא מקבלת. 9 ()חובּוחו/ כל התוכניות המיועדות למערכת חלונות 9% מתחילות את ההרצה בקריאה לפונקציה )הווחו (גרסאות קודמות של חלונות אינן מכילות פונקציה זו). לפונקציה ()חופזוחוא מספר תכונות מיוחדות, המבדילות אותה משאר הפונקציות ביישומים שלך. יש להדר אותה בנוהל הקריאה של זקאאז/ (בוודאי תיתקל גם במונח +הדאםזקא, אשר זהה למונח 1ק//1ו). לפי ברירת המחדל, הפונקציות בתוכניות שלך. הכתובות ב-6 או ב- ++6 משתמשות בנוחל הקריאה של 6. ניתן להדר פונקציה, כךך שתוכל להשתמש בנוהל קריאה אחר; אחת החלופות הנפוצות היא פסקל. מסיבות טכניות שונות, נוהל הקריאה המשמש את חלונות 9% להפעלת ()חופויוחו/ו הוא הנוהל. של 1/01/. הערך החוור של פונקציה זו אמור לחיות מסוג זחו 6 לבחו ומבוא ל-ספו 0 פונקציית החלון כל תוכנית של חלונות א9 חייבת להכיל פונקציה מיוחדת שאינה מופעלת על ודי התוכנית שלך, אלא על ידי חלונות א9. פונקציה זו מכונה בדרך כלל פונקציית החלון (חסססחט: אוסטחו/. אר נוהל החלון (06955זק עוסטחו/). חלונות: קוראת לפונקציה זר כאשר היא רוצה להעביר הודעה לתוכנית שלך, כלומר, זהו הערוץ שבו משתמשת. חלונות 9 כדי לתקשר עם התוכנית. פונקציית החלון מקבלת את ההודעה בפרמטרים. שלה. חובה להגדיר את כל פונקציות החלונות כפונקציות המחוירות ערכים מסוגג 6 דוטפסה). הסוג 88501) הוא מחרוות 666פ/, שבומן כתיבתה היא שם חלופי למספר שלם ארוך. נוהל הקריאה 011880% משמש באותן פונקציות שיופעלר בידי חלונות א9. במונחים חלונאיים, כל פונקציה המופעלת בידי חלונות, מכונה פונקציית משוב (03119300). נוסף לקבלת הודעות הנשלחות על ידי חלונות 9%, מתפקידה של פונקציית החלון לוזום. כל פעולה שמכתיבות ההודעות הללו. בדרך כלל, מכיל גוף הפונקציה משפט חאו המקשר תגובה מוגדרת לכל הודעה שהתוכנית אמורה להגיב עליה. התוכנית שלך אינה. מגיבה לכל ההודעות שחלונות 9% שולחת. כשמדובר בהודעות שאינך מעניינה של התוכנית שלך, הנח לחלונות אפ לבצע את פעולת ברירת המחדל. כיון שחלונות אפ' מסוגלת להפיק מאות הודעות, רובן עוברות עיבוד על ידי חלונות 9% עצמה, ולא על ידי התוכנית שלך. יתר על כן, כל הודעה מקושרת עם כל המידע הנוסף שהיא עשויה להודקק לו 1 סגנונות של חלונות בעת שהתוכנית שלך מתחילה לפעול תחת חלונות 9%, חובה עליה להגדיר מחלקת חלונות (6155 או60חו/ו). המונח מחלקה אינו משמש במשמעות המקובלת ב- ++6, אלא פירושו קרוב יותר לסגנון (58/6), או סוג (ספץ1). כשאתה מגדיר את סגנון החלון, אתה מודיע לחלונות 9% על צורת החלון ועל תפקודו. הגדרת סגנון החלון ינה הפעולה. היוצרת את החלון. על מנת ליצור את החלון בפועל, עליך לבצע כמה צעדים נוספים. 2 לולאת ההודעות כפו שהסברנו קודם, חלונות 9% מתקשרת עס התוכנית שלך באמצעות הודעות. כלל יישום של חלונות 9% חייב ליצור לולאת הודעות (1000 695396א) בתוך הפונקציהה ()חומזוחועצ. לולאה זו קוראת כל הודעה נכנסת מתור ההודעות של היישום, ושולחת. את ההודעה בחרה לחלונות א9. חלונות 9% קוראת לפונקציית החלון של התוכנית. שלך, כשההודעה הזו משמשת לה כפרמטר. ייתכן שהדבר נראה לך כשיטה מסורבלת. להעברת הודעות, אך זו הדרך שבה חייבות לפעול כל התוכניות של חלונות. הסיבה לנוהל וה היא הצורך להחויר את השליטה לחלונות א9, כך שה-560960/6 יוכלל להקצות זמן מעבד, לפי הנחוץ, ולא ימתיץ שהיישום שלך יסיים את פלח הצמן שלו. פרק 2: תכנות בחלונות א5, סקירה ‏ 37 3 סוגים של נתוני חלונות כפי שתראה מייד, תוכניות שפועלות בחלונות 9 אינן מרבות להשתמש בסוגי הנתונים. הרגילים של ++6/6, כגון זחו או * זגו6. במקום זה, נעשית לכל סוגי הנתוניםם המשמשים את חלונות א9 הסבה ל-8/06061. ההסבה נעשית בתוך הקובץ 06005.8 ו/או הקבצים הקשורים אליו. הקובץ ח.פאוסטחוו: מסופק על ידי מיקרוסופט, או בורלנד (וכל חברה אחרת המייצרת מהדרי ++6/6 לחלונות), וחובה לכלול אותו בכלל תוכניות חלונות 9%. בין הסוגים הנפוצים ביותר נמנים =וסאאוז, סאשווא, פדום, סחסצו, סהסווס, דאזט, 6אס), ו800, הד5ק! ו-190518. הסוג = וסאאוו הוא מספר שלם בן 32 סיביות, המשמש כידית. קיימים מספר סוגים של ידיות, אבל כולם בגודל וה ל-5 0%או. ידית (113066) היא ערך המגדיר משאב כלשהו. כל סוגי הידיות מתחילים באות א. לדוגמה, הערך סאעוו! הוא מספר שלם בן 32 סיביות, המשמש ידית לחלון. 876 הוא תו לא מסומן בן 8 סיביות. 0080 הוא מספר שלם קצר ולא מסומן בן 16 סיביות. סוס הוא מספר שלם ארוך ולא מסומן. זאז הוא מספר שלם לא מסומן בן 32 סיביות. 106 הוא שם אחר ל-פַחטו. נתונים מסוגג 800% הם מספרים שלמים, המשמשים לציון ערכי אמת או שקר (56ו3/פטזד). 10518 הוא מצביע אל מחרוזת, ו-120518 הוא מצביע מסוג 6005 אל מחרוות. נוסף לסוגים הבסיסיים שתוארו, מגדירה חלונות 9% כמה מבנים. השניים הנחוצים. לנו לבניית שלד התוכנית הם 156 ו-0355פא/. מבנה 456 מכיל הודעה של חלונות א9, ואילו 455ספא/ הוא מבנה המגדיר את סגנון החלון. מבנים אלה יידונר בהמשך הפרק. 4 תוכנית מסגרת לחלונות א9 לאחר שעסקנו ברקע הנחוץ, הניע הזמן לפתח יישום פשוט לחלונות א9. כפי שכבר נאמר, כל תוכניות חלונות 9% מכילות מרכיבים משותפים מסוימים. בסעיף זה נפתח. תוכנית מסגרת לחלונות א9, שתכיל את כל המאפיינים הנחוצים האלה. בממלכת. התכנות החלונאי נפוץ מאוד השימוש בשלדים, או במסגרות של יישומים, כיון שיצירת. תוכנית של חלונות כרוכה בי'מחיר כניסה" גבוה למדי. שלא כמו ב-005, שבה התוכנית הפשוטה ביותר מכילה כ-5 שורות, התוכנית המינימלית של חלונות מכילה 6 שורות בקירוב. תוכנית פשוטה של חלונות 9% מכילה שתי פונקציות: ()חואחו/וו ופונקציית חלון מתפקידה של הפונקציה ()חוג!אחווו לבצע את השלבים הכלליים הבאים. 1. להגדיר את סגנון החלון. 2. לרשום את סגנון החלון בתוך חלונות אפ. 3. ליצור חלון בסגנון שהוגדר. 4. להציג את החלון. 5. להתחיל בהרצת לולאת ההודעות. 8 לבח ומבוא ל-ספו תפקידה של פונקציית החלון הוא להגיב לכל ההודעות הרלוונטיות. כיון שתוכניתת השלד אינה עושה דבר פרט להצגת החלון שלה, ההודעה היחידה שהיא נדרשת להגיבב עליה היא ההודעה המורה ליישום שהמשתמש - סיים את התוכנית. לפני שנדון בפרטים, עיון בתוכנית 866% המובאת להלן (התוכנית נמצאת בתקליטור בתיקיה 02ִ5ו ,)000%559285‏ שיא שלד פשוט ומוערי לתוכנית חלונות א9. תוכנית ואת יוצרת חלון רגיל הכולל כותרת. החלון מכיל גם את תפריט. המערכת ועל כן ניתן להקטינו, להגדילו, להזיזו, לשנות את גודלו ולסוגרו. החלוך מכיל גם את לחצני ההקטנה, ההגדלה והסגירה התקניים. 106 0 "10.8ע06ה9ש" בבטבסה41 (01832) 4601868 418 מטתץ 32נאן 15 446116 8 מפנתפ 32אצאן 15 4461186 ה 35686 מהמפעמם // ;החדת מסונתתפ) /"10עסהסם" = שהפאסקתפפק1 תפפסקן ;"מ%10ג116קקת ם1עשהשם" | = 271:16פק1 תעפצסק1 ₪ (10 *55תנסומה פפאסם) 95ת018%0201ה מססם מסוותפפות ,ססהבםפתנת מסותעפאנה) תובעתגז צהונמדעת 5ב (6סמ45הסה 6ה1 ,שה21שמסק1 12578 ,06מ68פת1שספקם [ 4 שחו 55 ה נספור קותהפמחע 05 | אתתספאע פס = 8 ;ססעפטהא(ססהפפוה/) = | ססעקטמאת:קב סט = ע0א180סמ0 סט = עשאשבהחםם סט > תס ; ( חקפ ת82ק1 ,8סהבספה1ת) 10801000 = 0 ; (ווסתהה 10 ,טא ) 08000 = ו ; (1+אספונצאו הסמסס) (מפטתפ2) = במטסשףאס8פצמת סט ;במפאמקת2פם1 = סמבטטהס2פם1 סט ;סממאמפת2פם1 = שהם8201258%ם1 סט פרק 2: תכנות בחלונות 5, סקירה ‏ 39 0 נסת2בחואו ומבוא ל-ספו ("מנתעם" ,68ת8:פחדה. אפסא)ה1088160 = מפת1600ת אסס (08א8) %ם8001866201858 תעטם, הבעגתא אתתתקה ,ספפו עמצט (במות סמות | 200פבמח אסהמננתס ענטפמתת (מ8צמק1 מתהתק 1 ו 00 9 856 ( ( )סוס ) 160 לספל 18% 886 (6פט צעאם 188 0886 (מ) ו0ות 0+ 5% נ8%סעם צ + צסמצפפם 06 856 (0 0 0860 וצ 1 ((מ828ק1 ,מ8צבפא ,הפו ,0מאמ) ססעסא40ה601פ) מעטסם, 1 (01 ג נסקור עתה את התוכנית צעד אחר צעד. ראשית, כל תוכניות חלונות 9% חייבות לכלול את קוב הכותר 05.0חאו. כאמור, קובץ וה (יחד עם קובצי העור שלו), מכיל את אבות הטיפוס של פונקציות קא, וגם. פקודות מאקרו, הגדרות וסוגים שונים, המשמשים את חלונות. לדוגמה, ההגדרות של סוגי הנתונים סאטשו ו-061/455א/ כלולות בקובץ ה.6005חא. ההכרזות מגדירות אחר כך את 6וחגאפקהקפקן ואת 706פקו, שנראה במבט ראשוך כמערך תווים, או אולי כמו משתני מחרוות. תשתמש בסוג 20518) (סוג שמוגדר תחת. 05 כדי להחזיק מצביעים למחרוזות לקריאה בלבד. כשהמהדר מהדר את התוכנית, התוכנית ממירה למעשה את כל הכרוות 120518 להכרזות מסוג: *548 ז6%3 זצחסס. ובכן, כמו שאתה רואה, השימוש ב-120518 יותר קל להבנה ולהדפסה מאשר התחליף שלו. פרק 2: תכנות בחלונות א9, סקירה ‏ 41 לבסוף, התוכנית מכריוה על אבטיפוס לפונקציה ‏ 95חז6פפַָ. הפונקציה 5 מקבלת פרמטר מסוג 6/455סא/ו ומחזירה ערך בוליאני שמצביע עלל הצלחה או כישלון. פונקציית החלון שהתוכנית משתמשת בה נקראת ()67106ח//, המוגדרת כפונקציית. משוב, כי ווהי הפונקציה שחלונות מפעילה כדי לתקשר עס התוכנית. הפונקציה חוזגּ₪ח:/ בתוכנית 9606106 מן הסעיף הקודם, הפונקציה הראשונה שבתוכנית היתה חוגווחואו. כמו שלמדת, הפונקציה חוגוחואו הינה הפונקציה המקבילה של פווסשחוא לפונקציה. ופוח שכל תוכניות 6 ו- ++6 שלך השתמשו בה כפונקציה ראשית לעיבוד בסביבת העבודה 005. הפונקציה חוג!/חו/, שונה במספר דברים חשובים, אשר ההבדל בהכרות. הפונקציה הוא אחד מהם, כפי שמוצג לחלן ,6סה8ףפהדה מסוותלפאדא) ת|בעתואו צתצותמצקה 46 טפ מסותתשפוונת (אסתפמחסת 18% ,שה4םהמסק1 הצפם כפי שתוכל לראות, הפונקציה חוגווחווו מחזירה ערך זחו, כמו שעושות תוכניות ++6. רבות אחרות. ובכן, הו המקום שבו הן דומות (ואמנם, כמו שתלמד אחר כך, משפט הכותרת של הפונקציה חומאחואו מבצע עיבוד דומה לוה של הפונקציה חופוז). מילת. המפתח הדפקה מראה שהמשתמש יכול להפעיל את התוכנית מתוך פוסטחוא בלבד. טבלה 2.1 מפרטת את הפרמטרים שחובה על התוכניות שלך להעביר לפונקציה. ור טבלה 2.1: הפרמטרים שצריך להעביר לפונקציה חוב!אחווו. שם הפרמטר | סוג תיאור הפרמטר 6סחספחוה | 65אאדפונה | ידית המופע של היישום. לכל מופע של *ישום וש. ידית מיוחדת. התוכניות שלך ישתמשו בערכי 66חמזפחוח כארגומנט למספר פונקציות של. 005 חו/. גם אפשר להשתמש בערך 505065חו. כדי להבדיל בין מופעים רבים של יישוס מסוים. כלשהו. הנטקו | 1118513805 | ידית המופע הקודס של היושום. עבור המופע. הראשון ערך זה הוא 011א. עבור 9% 605חו ערך וה תמיד יהיה )טא 2 הלבחו ומבוא ל-ספו שם הפרמטר | סוג תיאור הפרמטר 8 דפ | זהו מצביע מסוג זג לשורת הפקודה שמסתיימת. ב-1). הגדר את הערך 6ח:61וח0ק! כשאתה. מפעיל את היישום מתוך מנהל היישומים. סגו וחפזַסזל) אר על ידי קריאה ל-66פחוו. שים לב, תחת א9 פוסחו פרמטר זה הוא מצביע. לשורת הפקודה כולה, ולא מערך מצביעים לכלל פרמטר (לכן, חובה על התוכניות שלך לפרש את. שורת הפקודה לפני שמתחילה לטפל בה - ו שחו | מספר שלם שקובע כיצד יוצג חלון היישום על המסך. צריך להעביר ערך זה ל-ו000ו//ו0ח5. הפעולה הראשונה שהפונקציה חוגאחוו מבצעת בתוכנית 8606146 היא להגדיר משתנה מסוג 156ו, משתנה מסוג סא/ווז, ומשתנה מסוג 355ססא/+, כפי שמוצג להלן יר רסוחו סוה בתוך הפונקציה נוצרים שלושה משתנים. המשתנה 0/4 יכיל את הידית לחלון התוכנית. משתנה-המבנה פָפוּח יכיל הודעות לחלונות, ומשתנה-המבנה 6 ושמש להגדרת המחלקה של החלון. ההוראות שבאות אחר כך בתוכנית 868614 הן הוראות. השמה לאיברי המשתנה סוו. הגדרת סגנון החלון חובה עליך לרשום את סגנון החלון ב-5ואס0חו לפני שתוכל להשתמש בו כדי ליצור את החלונות. לצורך וה תשתמש בפונקציית 871 בשם 0855ז18פטה. בתוכניות שלך תשתמש בפונקציה פ5ִַּזִפ5ּפָָח כמו שתוכל לראות באבטיפוס שלהלן. (ספב 5 נספוחו 00859) 8608602018 ו תוכל לראות שהפונקציה 861670055 מחצירה ערך מסוג ואס1א. סוג וה הוא ערך שלל סמס/ו שמתייחס למחרוזת תווים, שאין בה הבחנה בין אותיות רישיות לבין אותיותת רגילות. העובדה שהערכיס מסוג סא מתייחסים למחרוות ללא הבחנה בי אותיות. רישיות לרגילות, פירושו ש-"ץפטפח" זהה ל-ייצקקא" - שוויון אשר, כמו שאתה יודע, אינו נכון בדרך כלל ב- ++6. פאוסחו/ו שומרת את הערכים מסוג 810% בטבלת ואסדא. וכך, הערך סו שמכיל משתנה מסוג 410% דומה במידה רבה לידית. בנוסף להחורת ערך מסוג 10%א, הפונקציה 860090865 מקבלת פרמטר אחד - מצביע קבוע למבנה מסוג 01355א/. פווסטח!/ו מגדירה את המבנה 55 ספאזא כפר פרק 2: תכנות בחלונות א9, סקירה ‏ 43 שמוצג להלן. התבונן במשפטי ההשמה הבאים שנלקחו מתתוכנית. שמאתחלים את מחלקת החלון הספציפית שהתוכנית משתמשת בה ;אתתממט 05 | אתתספאע פס = 8 עסמ (ססהקפאא) = | ססמפבהמהזק1.ש = ע0א180סמ0 סט = םאמבהחם סט שפחדת = 8 ; (שחמאקםת82ק1 ,66הגמפהנת) מ1080100 = 0 ; הט 080 = ו ; (1+אספוונאו הסמסס) (מפטתפ2) = בממסשףאס8מצמת סט קסמגחמפת82ם1 = במגחטהסשפם1 סט קסמפאמפת2פם1 = 5201258%886ם1 סט משפט ההשמה הראשון אומר למערכת ההפעלה לצייר את כל החלון מחדש בכל פעם. שהמשתמש משנה את גודלו האופקי או האנכי. משפט ההשמה השני אומר למערכת. ההפעלה שפונקציית המשוב (חסווסחט 0311836%) זו הפונקציה 060106/. שני משפטר ההשמה הבאים מורים לפונקציה 89089108 לא להקצות מקום נוסף, וההוראה 18 מורה למהדר להשתמש במופע הנוכחי של התוכנית. שני משפטי ההשמה הבאים אחר כך, חס6זח ו-זספזוסח, טוענים את הסמל והסמן של החלון. בכל היישומים של חלונות חובה להגדיר צורת ברירת מחדל לסמן העכבר ולסמל היושוס. אפשר להגדיר ליישום גירסה מותאמת במיוחד של משאבים אלה, או שניתן להשתמש באחד הסגנונות המובנים, כפי שעשינו בתוכנית המסגרת. סגנון הסמל נטען על ידי פונקציית 7 בשם ()ח1036160, שהגדרתו מובאת להלן ; (86אעפק1 העפספ1 ,ספמדת מסאתשפנ8) 10441608 א200ו פונקציה זו מחזירה ידית לסמל. כאן, הפרמטר 56ח1ח מציין את הידית למודול המכיל. את הסמל, ואילו שם הסמל מצוין בפרמטר 6ו2%3פקו. כדי להשתמש באחד הסמלים. הקיימים במערכת, עליך להשתמש בערך !א עבור הפרמטר הראשון, ולציין את אחד. משמות המאקרו הבאים עבור הפרמטר השני. שם המאקרו לסמל = | תיאור אסנד10קקא 101 | הסמל בהתאם לברירת המחדל. 51156 101 | סמל מידע/חסוופוחזס!ה1 אסנדאויוא סאפ 101 | סמל בצורת סימן קריאה סאוו זז | סמל בצורת תמרור "עצורי. אסזד5טטס 101 | סמל בצורת סימן שאלה 4 הכח ומבוא ל-ספו + הערה: קיימים סמני מערכת נוספים. למידע נוסף פנה ל-א50ו. כדי לטעון את סמן העכבר, הפעל את הפונקציה ()10800050.. להלן הגדרת. הפונקציה (שתגאפפק1 תצפסק1 ,)פמנת מסָתפפותנמ) 50 ע2400, ג אספפטס הפונקציה מחזירה ידית לסמן. כאן מכיל הפרמטר ופח1! את הידית למודול המכיל את. סמן העכבר, ואילו הפרמטר ₪6 ג)!;פק! מכיל את שם סמן העכבר. כדי להשתמש באחד. הסמנים ממלאי המערכת, עליך להקצות לפרמטר הראשון ערך 011א, ואילו לשני עליך. להקצות שם של אחד מסמני המערכת, באמצעות שס המאקרו שלו. לפניך מספר מסמני המערכת הנפוצים ביותר. שם המאקרו לסמן = | תיאור סאה 196 | ברירת המחדל - מצביע בצורת ץ. 5 ספ | צורת צלב-כוונתת 185% 106 | צורת 1 דוא/ו 106 | צורת שעון חולל הוראת ההשמה שחטסז6הפזטח שאחרי הוראות אלו יוצרת ידית למברשת צבע, ושנר משפטי ההשמה הנותרים מציבים את ערכי ברירת המחדל של החלון עבור שם התפריט ושם מחלקת החלון. לאחר שהגדרת בצורה מלאה מחלקה לחלון שלך, היא נרשמת בחלונות 9% באמצעות. פונקציית 471 בשם ()56610955ו8, שתבניתה הטיפוסית מובאת להלן ; (55ג1סוס1* 5פהנספוחו 0059) 85ב1865201סת ספת הפונקציה מחזירה ערך המגדיר את סגנון החלון. 370% הוא 7/0606 שפירושו סהסעו. לכל מחלקת חלונות מוקצה ערך *יחודי. 0/0055 חייב. להיות המען של מבנה ב כיצד ליצור חלון לאחר שהוגדר סגנון החלון (או המחלקה), יכול היישום שלך ליצור בפועל חלון מאותו סגנון באמצעות הפונקציה ()00%חו/6319%ז0, שהגדרתה היא 0 | /* 01855 אסהת1ש 05 התגה */ ,שחבא5פבנסק1 הצפסק1 סאוט /* אסהת1א 05 51818 */ ,סתאאסמתנאק1 הצפסק1 /* 010606 01 שמע6 */ ,18ע0פאם סהסאם /* 68מבה201ססם 1856-עסקקט */ ,ל עה1 ,א פתג /* מסאת1ש 01 פמס1פהסת81 */ ,פמ1טאה עה1 ,ת186אה פתג פרק 2: תכנות בחלונות א9, סקירה ‏ 45 /* 808ה₪1 מהעגק 01 ש1מתמת */ ,ממסעקבהחם סאמות /* מתשה הנב 01 שנההגם */ ,ממסעת טאטוא /* ע0ס8שעם 05 ש1בתגת */ ,מסח8:פמדת /* 50ה1 288110881 0ס: צם%נסק */ הפעגפק1 פדסטק1 פא לו כפו שעולה מעיון בתוכנית השלד, ניתן להשאיר רבים מהפרמטרים המועברים לפונקציה ()/ו60חו/6/6306 לפי ברירת המחדל, או להקצות להם ערך 1)א. למעשה, במרבית המקרים הפרמטרים א, ץ, שש ותפפ | משתמשים במאקרו דוטא0ס5ט צו6, המורה לחלונות לבחור גודל ומיקום מתאימים לחלון, כאשר מדובר בחלונות שהסוג שלהם (00050//6) מורכב גם מ-40080 081 05 (במידה וסוגג החלון מורכב גם ‏ מ - 01110 5 אין אפשרות להשתמש במאקרו זה, משום שהרוחב והאורך של החלון יהיו - 0). אם איין לחלון חלון-אב, כמו במקרה של תוכנית השלד, אי יש להגדיר את הפרמטר זחסזגקח כ 085807 -סאעוחו (תוכל להשתמש גם בערך וטו עבור פרמטר זה). אס החלון אינו מכיל תפריט ראשי, חובה להקצות ערך וטא גם לפרמטר טחפוזח (במקרה זה, החלון ישתמש בתפריט שנרשם במחלקת החלון). כמו. כן, אם לא נחוץ מידע נוסף, כמו במרבית המקרים, יקבל גם הפרמטר וחגזגלק! ערך. וטא (הסוג סזסע! מוגדר ב-0606/₪ כ-*6וס. מבחינה היסטורית, 190010 בא במקום 906 0) זפוחוסק פָחסוי). פרמטר וה הינו מצביע לנתונים שהפונקציה 0103160000 צריכה להציב בהודעה 68818 %ש. עבור חלונות בנים בממשק מרובה ‏ מסמכים (%0), הערך חגזמלק! ‏ צריך ‏ להיות | מצביע ‏ למבנה ד0ט8ד65דא085דא0118. עבור רוב החלונות שאינם חלונות לקוח של זסוו, עליך להציבב שא ארבעת הפרמטרים הנותרים יוגדרו על ידי התוכנית שלך. הראשון, 806ו/20355פקן, מצביע למחרוות קבועה המסתיימת ב-)טא, שמכילה שם תקף של מחלקת חלון. אפשר ליצור שם זה בשני אופנים, על ידי התוכנית באמצעות השימוש ב-55ּספוָ או על ידי ערך מובנה (ערך שמוגדר ונמצא במערכת) של סוג חלון. כותרת החלון היא מחרוזת שהמצביע שלה הוא הפרמטר טחוהו!חו//פקו. המחרוות. יכולה להיות ריקה, אבל בדרך כלל נהוג לתת כותרת לחלון. סגנון (או סוג) החלון שיווצר בפועל נקבע עלל ידי הערך של הפרמטר 4%5//6, שמייצג את הסגנונות האפשריים של חלון. המאקרו שוססאזעוספקק והפטס 5/צ (בר השתמשנו), מגדיר חלו תקני המכיל תפריט מערכת, קו מתאר, לחצני הקטנה, הגדלה וסגירה. סגנון וה הוא הנפוץ ביותר, אך תוכל לעצב לעצמך חלון לפי הסגנון המתאים לך. כדי לעשות ואת, עליך להפעיל את. האופרטור 08 על פקודות המאקרו השונות של סגנונות שאתה מעוניין בהם. לפניך כמה מהסגנונות הנפוצים. מאקרו לסגנונות | | תיאור התכונה. ספקקג ופפ עו | חלון חופף עס קווי גבול. 90פקזוןא3ו 5+ | לחצן הגדלה. 6 זקתקבח/ ומבוא ל-ספו מאקרו לסגנונות = | תיאור התכונה א260נוונאזוי 5 | לחצן הקטנה. טא55% וו | תפריט מערכת. 0801 5 | פס גלילה אופק 050801 או | פס גלילה אנכ קיימיס הרבה ערכים נוספים. למידע מפורט חפש במדריכים המקווניס. הפרמטר זצח1טוחדח חייב להכיל את הידית של המופע הנוכחי של היישום. הפונקציה ()ו60חו/9%ו6163 מחזירה את הידית של החלון שהיא יוצרת, או ערך וטו אם לא ניתן ליצור את החלון. גם לאחר שנוצר, החלון אינו מוצג על המסך. כדי לגרום להצגתו, עליך להפעיל את הפונקציה ()אוסטחו/אוסו/5, שהגדרתה היא ; (אסת 186 עמשומ סאל ה) וסנתנאשיסגו מס הפרמטר 6חאוח מכיל את הידית של החלון להצגה. מצב התצוגה נקבע בפרמטר אסוזח. בפעם הראשונה שהחלון מוצג על המסך, עליך להעביר את הפרמטר 006חואוח בפונקציה ()חוג!אחוו כפרמטר אסוח. בקריאות הבאות לפונקציה זו, אתה יכולל להשתמש בערכים נוספים. בתוכנית השלד כלולה קריאה לפונקציה ()וסחו/306קט, למרות שמבחינה טכנית. אין צורך בכך בתוכנית השלד, מפני שהקריאה לפונקציה זו נחוצה כמעט בכל יישום. שתיצור לחלונות אפ למעשה, הפונקציה מורה לחלונות לשלוח הודעה ליישום שלך על כך שיש לעדכן את החלון הראשי לולאת ההודעות הקטע האחרון של הפונקציה חוגווחוו שבתוכנית 960614 עוסק בלולאת. 6חאו, שמטפלת בהודעות המערכת. כל תוכנית פאוסחו/ שתכתוב תשתמש בלולאת הודעות. (פ100 1659396). מטרתה בתוך הפונקציה לקבל ולעבד את ההודעות ששולחת חלונות. בעת ההרצה שלה, מקבל היישום הודעות ללא הרף. ההודעות נשמרות בתור ההודעות. של היישום עד שניתן לקרוא ולעבד אותן. הפורמט הרגיל של לולאת ההודעות מופיע להלן , 09 116) 550 [ (850) 8055580 1פמבעד (50) ספות פרק 2: תכנות בחלונות א9, סקירה ‏ 47 בכל פעם שהיישום שלך מוכן לקריאת הודעה נוספת, עליו להפעיל את הפונקציה ()699306א66, שהגדרתה מובאת להלן (אגמ פאצט ,תנת עומצט ,המאת פומות ,ספת 10056) 000055800 מססם את הפונקציה 661//655306 תכתוב, בדרך כלל, כמו בדוגמה זר ;(0,0 ,מנטה ,8856) 0608655806 מססם הפונקציה 66069306 מחצירה ערך אמת (פטזד) או שקד (89ז). היא מחזירה את הערך סט עד שהיא מקבלת את ההודעה דנטס אוו (במקרה של שגיאה הפונקציה תחזיר 1- . למשל: אם הערך ב-א/! הוא ידית לחלון בלתי תקין). טבלה 2.2 מפרטת. את הפרמטרים של הפונקציה 60/1095306. טבלה 2.1: הפרמטרים של הפונקציה 661/0655806. שם הפרמטר | סוג | | מטרה פופו | = 56 | החזרת מצביע למבנה מסוג 56/. לאחר טבלה זו תמצא את הגדרת המבנה 156 שחושו | סאוו | ידית החלון שמקבל את ההודעות. בדרך כלל מציבים. וטא עבור פרמטר זה, שמורה ל-661//699306 לקבל את. כל ההודעות עבור המטלה הנוכחית. חווזזסטו טפאט | = דאזט | ערך ההודעה המינימלי שצריך לקבל. בדרך כלל, מציבים 0 עבור פרמטר זה. אמווזפטו פוט | = דאנט | ערך ההודעה המקסימלי שצריך לקבל. אס תציב 0 עבור שני הפרמטרים חו91ז/508/נ ו-18חזסזופוט, הפונקציה 66069936 תקבל את כל ההודעות. כמו שראית בטבלה 2.2, הפונקציה 6001659306 מקבלת פרמטר מסוג 156!. 5ס6חואר מגדירה את הסוג 56! בקובץ הכותר ח.זספטחואו כמו שתראה להלן. 5 6 פע 6 606ת1 //‏ ;תאמ מא 10 69886ח //‏ ;5806פשח פאצט 6 מ4פמפא //‏ קההשבפט שאצט // 198548 16‏ :פב שתפתק1 864900 81866 41118600865ח // 0 ספסום 8 0056108668 מ6שש50 //;6ם שנס 10056108 הפס שמשצעגוה 3 8 זקתקבח/ ומבוא ל-ספו כל אלמנט במבנה מסוג 156 חשוב, אבל האלמנט (או למעשה הפרמטר) שתשתמש בר לרוב הוא האיבר 6פפפפסוח, שמתייחס לרבות מהגדרות פווסשחו לקבועי הודעות. תלמד יותר על קבועי הודעות בסעיפים שבהמשך ספר זה. השדה 6חאו! שבמבנה 056 מכיל את הידית של החלון שאליו מיועדת ההודעה. כל ההודעות של ו הן מספרים שלמים ב- 32 סיביות, וההודעה נשמרת בשדה 6 מידע נוסף הנוגע להודעות מועבר בפרמטרים ולאו ו-וחפזפקן.. הסוגג קוו הוא הגדרת 6061ק/6 ל-דא1ט, והסווג 1788 הדא הגדרת 666%ק/ ל-106 השעה שבה נשלחה ההודעה תצוין באלפיות השנייה בשדה פוחט. הרכיב (006א) זן יכיל את הקואורדינטות שבהן היה העכבר בעת שההודעה נשלחה. הקואורדינטות נשמרות במבנה דוז01ק, שהגדרתו נראית כך | 6809010 56506 6465פעט 10 צאצספ ן אם אין הודעות בתור ההודעות של היישום, הקריאה לפונקציה ()660655306 תחזיר. את השליטה לחלונות (נושא ההודעות יידון ביתר פירוט בפרק הבא). בתוך לולאת ההודעות, מופעלות שתי פונקציות. הראשונה בהן היא הפונקציה ()8051856%655896זד. פונקציה זו מקבלת הודעת מקש וירטואלי (כמו 148 אע שהמערכת יוצרת כאשר המשתמש מקיש על מקש כלשהו, ומשגרת את ההודעה המתאימה 6448 או לתור ההודעות של היישום (68 או מייצגת עבור 5אס6חוא את ההודעה על קבלת תו). אם ההודעה אינה של מקש וירטואלי, 088 אוו מחזירה. הודעת 1356 ואינה מעבדת את ההודעה. אף שהדבר אינו נחוץ בכל יישום, מרבית היישומים מפעילים את הפונקציה ()9%/655306ו3ופחזד, מכיון שהיא נחוצה לאפשר שילוב מלא של המקלדת בתוכנית היושום. לאחר שההודעה נקראה ותורגמה, היא נשלחת בחורה לחלונות 9% באמצעות הפונקציה. ()50300655395ו .0‏ הפונקציה 01808600/1655306. קוראת. לפונקציית. המשוב (חסטשחט! 63110866) שהוגדרה ברישום מחלקת החלון, כדי שתטפל בהודעה זו לרוב תשתמש בפונקציה 01503000/695306 כפי שתראה בהצהרה שלהלן. ; (890ק1 *0פו צפא00) 219086089659896 פָסַב למרות שהפונקציה 503000/165306ום מחצירה ערך מסוג פַחסו, התוכניות שלך יתעלמו בדרך כלל מערך זה, מכיון שחשימוש בו בתוכנית שלך חסר משמעות. הערה: לולאת ההודעות חייבת להכיל את הפונקציה 5081006655306וס, ‏ אחרת פונקציית החלון לא תקבל את ההודעות והתוכנית לא תוכל. לטפל בהודעות שהמערכת שולחת. פרק 2: תכנות בחלונות א9, סקירה ‏ 49 עם סיום לולאת ההודעות, הפונקציה ()חהאחוו מסתיימת בכך שהיא שולחת. לחלונות 9% את הערך שמכיל השדה וחפזגלאו.ָפוח. ערך זה הוא הקוד החוור המופק. כאשר התוכנית שלך מסתיימת. פונקציית החלון הפונקציה השנייה ביישום השלד היא פונקציית החלון. במקרה זה, נקראת הפונקציה. (060זקחא, אולם תוכל להעניק לה כל שם שתבחר. פונקציית החלון מעבירה את ארבעת החברים הראשונים במבנה 1456 כפרמטרים שלה. פונקציית החלון של יישום השלד מגיבה בצורה פעילח רק על שתי הודעות + 3% 065180 א/ו. הודעה זו נשלחת כאשר המשתמש מסיים את התוכנית. כשהיא מתקבלת, חייבת התוכנית שלך לבצע קריאה לפונקציה ()₪0655906פסק. הפרמטר לפונקציה זו הוא קוד יציאה המוחזר בתוך השדה ופזלאו.פפה, שבפונקציה ()חואחווו. הקריאה לפונקציה ()005400/0/655306 גורמת. למשלוח. הודעת ד01. אצ אל היישום, דבר שבתורו גורם לפונקציה ()660%699906. להחזיר ערך 56ו3!, וכך לעצור את התוכנית. 3% סאויואסס ואו הודעה זו תישלח כאשר המשתמש ילחץ על התפריט. המשתמש. יכול ללחוץ בתפריט בשני מקומות : ₪ ,6%ד. כאשר הוא ילח על 765 יופעל. סד 10%%. המערכת לא תעשה כלום וה רק הכנה לשימוש מאוחר יותר). כאשר המשתמש ילחץ על 54, התוכנית תפעיל את הפונקציה אא60חו5000פם שבעצמה. תסיים את התוכנית, ותשלח הודעה 65180 וא כל שאר ההודעות המתקבלות על ידי פונקציית החלון ()106ל6ח/ מועברות לחלונות. באמצעות הפונקציה ()6סזקוסחו/6ם, המכילה את ברירת המחדל לאופן העיבוד. צעד וה הוא צעד נחוץ, כיון שחובה לטפל בכל הודעה בדרך זו או אחרת. 5 כללים לקביעת שמות אס התכנות לחלונות א9 חדש עבורך, ייתכן שכמה משמות המשתנים והפרמטרים. בתוכנית השלד ובתיאור הנלווה נראו לך מוזרים. הדבר נובע מקביעת שמות אלה על פי כללום מסוימים שהומצאו על ידי מיקרוסופט לצורך התכנות החלונאי. כשמדובר בפונקציות, על השם לכלול פועל ולאחריו שם עצם. האות הראשונה של הפועל ושם. העצם יהיו רישיות. לקביעת שמות הפונקציות בספר זה, ישמשו אותנו ברוב המקרים, כללים אלה. 0 לבחו ומבוא ל-ספו טבלה 2.3: התווים המשמשים כתחיליות לציון טוג המשתנה. התחילית = | תיאור הנתון ₪ | בוליאני (סיבית אחת) > | תו (סיבית אחת = | מספר שלס ארוך ובלתי מסומן. | שדה-סיביות בן 16 סיביות (דגלים) ₪ | פונקציה = | ידית || | מספר שלם ארוך. | | מצביע ארוך ה | מספר שלם קצר ₪ | מצביע = | מספר שלם ארוך המכיל קואורדינטות של מסך = | מספר שלם קצר ובלתי מסומן ₪ | מצביע על מחרוזת שסיומה הוא ב-ווטא קפ = | מצביע ארוך, המצביע על מחרוזת שסיומה הוא ב-א סז = | מספר שלם ארוך המכל ערכי צבע 68 אשר לשמות של משתנים, מיקרוסופט בחרה להשתמש בשיטה מסובכת למדי של שתילת סוג הנתון בשם. כדי לעשות זאת, מוסיפים תחילית (65/ק) באותיות קטנות. לתחילת שם המשתנה, וזו מציינת את סוג המשתנה. השם עצמו מתחיל באות רישית. תחיליות הסוג מפורטות בטבלה 2.3. למען האמת, השימוש בתחיליות אלו שנוי במחלוקת, ואינ מקובל על הכל. מתכנתי חלונות רבים משתמשים בשיטה זו, אך יש. רבים אחרים שאינם משתמשים בה. בספר זה השתמשנו בשיטת מיקרוסופט כל שהדבר התבקש ונראה הגיוני, אולס אין וה מחייב אותך כלל. באפשרותך להשתמש. בכל מערכת כללים לקביעת שמות שתרצה. פרק 2: תכנות בחלונות א5, סקירה ‏ 51 פרק עיבוד הודעות כפי שהסברנו בפרק 2, חלונות מתקשרת עם יישומים על ידי משלוח הודעות. לכן, עיבוד ההודעות האלו הוא בעל חשיבות מכרעת בכל יישומי חלונות א9. בפרק הקודם. למדת כיצד ליצור יישום שלד לחלונות א9. בפרק זה, נרחיב את השלד, כך שיוכל לקבל. ולעבד כמה מההודעות הנפוצות ביותר. 1 מהן הודעות? חלונות אל מפיקה מיגוון רחב של הודעות. כל הודעה מיוצגת על ידי ערך שהוא מספר שלם ייחודי, בן 32 סיביות. קובץ הכותר ה.פווסשחווי מכיל שמות תקניים להודעות. אלו. כשתידרש להתייחס להודעה, תשתמש בדרך כלל בשם המאקרו של כל הודעה, ולא בערך עצמו. להלן שמות המאקרו של כמה מההודעות הנפוצות ביותר של חלונותת ור ונד תק וא פשסור א ו אסטו0 מ ]- מונתועוסס ואר לכל הודעה נלווים שני ערכים נוספים, אשר מכילים מידע הנוגע להודעה שאליה הם. קשורים. אחד הערכים הוא מסוג אהההק/ו, והשני הוא מסוג 1788. חלונות שנר הערכים האלה מתורגמים למספרים שלמים בני 32 סיביות. השמות המקובלים לערכים אלה הם וחפזפקאו ו-חזגּזפלו, בהתאמה. בדרך כלל, שמורים בהם פרטים כגון קואורדינטות לסמן או לעכבר, ערך של לחיצה על מקש, או ערכים הקשורים במערכת. כגון גודל התווים. בהמשך נברר את משמעות הערכים השמורים בפרמטרים וזמזפלוי ו-וחמזהק! לגבי כל הודעה שנעסוק בה. 2 קלח ומבוא ל-ספו כפו שהוכרנו בפרק 2, הפונקציה שמעבדת בפועל את ההודעות היא פונקציית החלון. של התוכנית. בוודאי תוכור שפונקציה זאת מקבלת ארבעה פרמטרים: הידית של החלון שההודעה מיועדת לו, ההודעה עצמה, ולבסוף הפרמטרים וחבזפקאו ו-וחבזקו לפעמים קורה ששתי פיסות מידע מקודדות אל תוך המילים המרכיבות את הפרמטרים וחגזגלאו ו-וזגזגלו. כדי לאפשר גישה נוחה לכל אחד מהחצאים של פרמטרים אלה, חלונות מגדירה שתי פקודות מאקרו, ששמותיהן ססאוס1 ו-סחסווז. פקודות אלו מחזירות את מילת הסדר-הגבוה ואת מילת-הסדר הנמוך של מספר שלם ארוך, בהתאמה. השימוש בהם הוא כזה. (8ש193) סו ; (בשבק1) סהסונ = א בהמשך תראה את פקודות המאקרו האלו בפעולה. למדת שתוכניות מגיבות לקלט מהמשתמש בפורמט של הודעות מערכת. בסעיפים: קודמים התוכניות בדקו את ההודעה סאג/אוו0 וז כדי לדעת אס המשתמש שלח פקודה לתוכנית, ואם צריך להגיב לבחירת המשתמש מתפריט או מתוך פקד שיצרו את. ההודעה. כאשר התוכנית פועלת באמצעות פעולות עכבר, חובה עליה לבדוק את הודעות פאוסחואו שמפורטות בטבלה 3.1 שלהלן. הודעות 005חו בתגובה לפעולות עכבר. טבלה 3.1: הודעות 5ו60ח%1 בתגובה לפעולות עכברר הודעה פירוש 650א או 5הטדקה6 4 | פאוסחוצו שולחת את ההודעה הזו לחלון שאיבד את לכידת העכבר (פזוס63 ספטסוו. ופסאסדד80 | וו | המשתמש לחץ על לחצן העכבר השמאלי פעמיים. אעוספאסדדט8 וא | המשתמש לחץ על לחצן העכבר השמאלי, והלחצן עדיין לחוץ. סטאסדדט8 ואו | המשתמש שחרר את לחצן העכבר השמאלי. ופסאסדדטפוא ואו | המשתמש לחץ על לחצן העכבר האמצעי פעמיים (רק. בעכברים בעלי שלושה לחצנים). אווספאסדדטפוי וו | המשתמש לחץ על לחצן העכבר האמצעי, והלחצן עדיון לחוץ (רק בעכברים בעלי שלושה לחצנים) קטאסדדטפו וא | המשתמש שחרר את לחצן העכבר האמצעי (רק. בעכברים בעלי שלושה לחצנים). שדאענד0 1055 ואו | המשתמש לח בעכבר בחלון שאינו פעיל כרגע. פרק 3: עיבוד הודעות ‏ 53 הודעה ב דד 8 סו ואר דד וס ואר קטאס דד 8 וס ואר וס טפוס ואר אצוספאסדדטפואסא ואר טפוס ואר ב וס דסא ואר וס דסא ור קדס ואר אסאס דדטפה ואר אסאס דדטפה ואר קטאסדדטפה וו פירוש המשתמש גרר את העכבר בחלון המשתמש לחץ על לחצן העכבר השמאלי פעמיים. בחלון, בשטח שאינו שטח הלקוח (163. 1ח0ו0-חסא). המשתמש לח) על לחצן העכבר השמאלי בחלון, בשטח. שאינו שטח הלקוח, והלחצן עדיין לחוץ. המשתמש שחרר את לחצן העכבר השמאלי בשטח שאינו שטח הלקוח של החלון. המשתמש לחץ על לחצן העכבר האמצעי פעמיים. בשטח שאינו שטח הלקוח בחלון (רק בעכבר בעלל שלושה לחצנים). המשתמש לחץ על לחצן העכבר האמצעי בשטח שאינו שטח הלקוח בחלון, והלחצן עדיין לחוץ (רק בעכבר. בעל שלושה לחצנים). המשתמש שחרר את לחצן העכבר האמצעי בשטח. שאינו שטח הלקוח של החלון (רק בעכבר בעל שלושה לחצנים). המשתמש גרר את העכבר בחלון, בשטח שאינו שטח הלקוח. המשתמש לחץ על לחצן העכבר הימני פעמיים בשטח שאינו שטח הלקוח בחלון. המשתמש לחץ על לחצן העכבר הימני בשטח שאינו שטח הלקוח בחלון, והלחצן עדיין לחוץ. המשתמש שחרר את לחצן העכבר הימני בשטח שאינו שטח הלקוח בחלון. המשתמש לחץ על לחצן העכבר הימני פעמיים. המשתמש לח) על לחצן העכבר הימני, והלחצן עדייך לחוץ. המשתמש שחרר את לחצן העכבר הימני. כאשר יישום מקבל הודעה מהעכבר, הערך וחגזגל! מכיל את קואורדינטות א ו-צ של סמן העכבר שעל המסך. 8ו0חו/ מאחסנת את הקואורדינטה + במילת הסדר-הגבוה. של וחפזפקו, ואת הקואורדינטה % - במילת הסדר-הנמוך. צריך להשתמש במאקרוס. סחסאוס ו-ססעוזו כדי להפריד בין שני הערכים, ולטפל בכל אחד מהס בנפרד 4 זקתקבחו/ ומבוא ל-ספו הסעיף הבא בוחן את ההודעה 1005606 אישו כדוגמה להודעת עכבר של 60%5חווא, וכולל קטע קוד שמראה איך שולפים את ערכי הקואורדינטות מהפרמטר ומק % הערה: במערכות חלונות מתקדמות יותר מ- 95 פאוס6חוו קיימות הודעות נוספות המתקבלות מהעכבר. לפורוט נוסף. עיין במדריכים המקוונים של מיקרוסופט. 2 ההודעה ₪005591/0/5 ואצו למדת בסעיף הקודם ש-פווסטחו/ו מעבירה ליישומים הודעות שונות כתגובה לפעולות. בעכבר. אחת ההודעות הנפוצות ביותר היא ההודעה 058%008/ |אא. 5אוסטחוער שולחת את ההודעה הזו לחלון בכל פעם שהסמן זז. אס אין חלון שכבר לכד את מידע העכבר, פאוסטחו// שולחת את ההודעה 0056%006! וא לחלון שבו נמצא הסמן. אחרת, היא שולחת את ההודעה אל החלון שלכד את העכבר. כשהתוכנית מקבלת את ההודעה 100569006 וו, היא צריכה לבדוק את מספר ערכים, לפני שהיא מגיבה להודעה 8 צא // הלא = פעסאום שספענוס 05 ה81610סם 581ת120עסמ // ;(מבעגק1) סה0אס1 = פספא פספפטס 0% מס1פנפסק 81ס1מצשט // ;(מבעגק1)סהסאנמ = מספץ / למדת בסעיף הקודם שהערך וזגקו מכיל את קואורדינטות המיקום א ו-צ של סמן. העכבר. הפרמטר וגאו מכיל את הערך 66/5/, אשר מציין אס מקשים וירטואליים. כלשהם לחוצים. הערך ₪655 יכול להיות כל צירוף של הערכים המפורטים בטבלה 3.2. טבלה 3.2: הערכים האפשריים של הפרמטר 55אאח. ערך תיאור דוס 6 | מקש 6 לחוץ. ואסדדטפ אוו | הלחצן השמאלי של העכבר לחוץ. אסדדטפוי! או | הלחצן האאמצעי של העכבר לחוץ. אסדדטפה אוו | הלחצן הימני של העכבר לחוץ. דחזוז5 אא | המקש 5/8 לחוא. בדי ללכוד את תנועות העכבר מתוך פונקציית ההודעות, על התוכנית להשתמש בקוד. דומה לוה שמוצג בקטע הבא: פרק 3: עיבוד הודעות ‏ 55 ו 0 5 [ 108 סהסו10 = פספאת (198588) 8100080 = פספצת תס )ופ צשמטם // בקטע קוד וה, התוכנית מציבה את המיקום הנוכחי של העכבר במשתנים 5ספאח 05-1/+ח בכל פעם שהמשתמש מזיז את העכבר. 3 קריאת לחצני העכבר בסעיף 3.2 למדת להשתמש בהודעה 0056/006ו ואו שנשלחת לחלון, כדי לאפשר לתוכניות להגיב לתנועות סמן העכבר על המסך. באופן דומה, הוספת קוד לתוכניותת כדי שיגיבו לפעולות לחצני העכבר, גם היא דבר פשוט. לדוגמה, כשרוצים שהתוכנית. תגיב ללחיצה כפולה של המשתמש בעכבר, בנקודה כלשהי שנמצאת בשטח הלקוח של החלון, התוכנית תשתמש בקוד שנמצא בפונקציה 09106ח//ו ודומה לקטע הקוד הזה ,פוא פאצט ,מאה סוח/מ) סספפבמו אסהמננתס נטפמתג (בשבפ1 מתתתק1 ,מבצבפא מתתתפו 160) ָ 1 אסצ 190 0 886 ;מס פע ,נתטאו ,"0116%68-שנמנוסם מסספטם" ,התא 680 טא צ אולם, כשרוצים שתגובת התוכנית תהיה שונה כאשר המשתמש מחזיק את המקש וז. לחוץ בומן הלחיצה על העכבר, אפשר לכתוב את קטע הקוד הזה סט 1 ו 856 פאס אע (מסתוו0 006 ₪ מהפגתא)) 18 | 1 0116%88-נמנוסם הספוטם" ,החאם) פס (א0 מא ,מנטון ,"משסם עשא 01עףהסס ספ 8 106 16-0116%68מגוסם מספטטם" ,תא טא ;(אס מא ,מנטון ,"משסם עשא 01ש%הסס פע 56 זלַח/ ומבוא ל-ספו אפשר לראות מהקוד שהתוכנית יכולה לבדוק אס המשתמש לוח כרגע על מקש' וירטואלי (/6 |גטטזו) נתון. היא עושה ואת על ידי ביצוע סאה הפועל על סיביותת (סאה/ 81096), בי ערך הפרמטר חגזגקאו לבין ערך המקש הווירטואלי שרוצים לבדוק. כל שהתוכניות שלך יילכו ויהיו יותר מורכבות, תרבה לבדוק את המקשים הווירטואליים בעת הטיפול באירועי העכבר. ראוי לזכור שלמרות ש-1606) מוסרת. רק מספר מסוים של מקשים וירטואליים ב-ופזפלווי בהקשר ללחיצות העכבר, היא תומכת במספר גדול של מקשים וירטואליים, כפי שתלמד בסעיף 3.5 4 תגובה לאירועי מקלדת למדת ש-00008/ו שולחת הודעות ליישום בכל פעם שהמשתמש מבצע פעילות כלשחי בעכבר. כך היא גם שולחת הודעות ליישוס בכל פעם שהמשתמש מקיש במקלדת. ההודעה ש-008חוו תשלח תהיה אחת מאלו שמפורטות בטבלה 3.3 טבלה 3.3: הודעות המערכת ש-0065ח1/ שולחת בעת פעולות מקלדת. הודעה תיאור פדענד0א/ אוו | הקשה בתוך חלון שאינו פעיל. הא ו | קוד ז501א של האות, אס המשתמש הקיש על מקש תו. ץפאדסרדפ6. ואוו | מאפשר לתוכניות לקלוט מקש חס (8א זסוז, או מקש מהיר) שהוגדר קודם לכן עבור החלון. +₪אדס3 וו | המשתמש הקיש על מקש חם. אעוססצ5א ואו | המשתמש הקיש על מקש. קטץפא ואו | המשתמש שחרר את המקש. 5 ואש | ההודעה נשלחת לחלון מייד לפני שהוא מאבד את מיקוד. הקלט מהמקלדת. 55 וו | ההודעה נשלחת לחלון מייד לאחר שהחלון מקבל את מיקוד הקלט מהמקלדת. +פאדסאד55 אע | מאפשר לתוכניות לקבוע יימקש חסיי עבור חלון. 550% וא/ו | קוד 85611 של האות שהמשתמש הקיש בעת שמקש וו לחוץ. אופ5%א5/5 ואו | המשתמש הקיש על מקש כאשר מקש ו לחוץ. קטץ6א5צ5 וא/ו | המשתמש שחרר את המקש וגם את המקש ו41. פרק 3: עיבוד הודעות ‏ 57 הפונקציה 155506ְ1ְח3זד שבלולאת ההודעות של המטלה יוצרת את ההודעה ההד0 יא אם היא מצליחה לפענח את התו כתו 85011. ככלל, היישום. משתמש. בהודעה א/ו00+א זו כדי לבדוק את מקשי הפונקציות (6/5א חסוטחט?), מקשי סמן (55א זספזס), המקלדת הנומרית (66/36 זסחוט!) ומקשי העריכה (5ץ6א 866), כמו 90600 ו-חאוסס6טפק. מקשים אלה מנצלים בצורה הטובה ביותר את קוד המקשים הוולרטואליים (60665 /881-66זו0), עליו נלמד בסעיף הבא: עם ואת, על התוכניות להשתמש ב-07/48 וו כדי לקבל אותיות (פססזבהס), ספות (פוסטוחטוא): וסימנים שניתנים בהדפסה (וסטוחץ5 6!סמוחוזק). השימוש בהודעה 8 וו כדי לטפל בהקשות אלו טוב יותר, מפני ש-85011 מציבה ערכים שונים עבור אותיות רגילות (1911615 066056 ואותיות רישיות (160095 וגזוקס). עם ההודעה אעוסס/פא א/ו, היישום חייב לבדוק את התו שהקיש המשתמש וג את מצב מקש ח5. ההודעה 6% ו מטפלת בהקשת 50. כשהמשתמש מקיש על מקש 1 ובעודו לחוץ - הוא מקיש על מקש נוסף, חיישום. מקבל ‏ את רצף ההודעות ‏ הבאות: א/ו00צ51566 או = 515078 ואו קטץ5א515 ואצ התוכנית צריכה להשתמש בהודעות אלו כדי לבדוק רצף הקשות הנלוות למקש ד)א. 5 מקשים וירטואליים (5ץ66 |בּש+זו/) למדת בסעיף הקודם שכדי לטפל בהקשה כתו 5011א, התוכנית צריכה להשתמש. בהודעה 34 א לפעמים, התוכנית עשויה לדרוש, או שתרשה למשתמש, להשתמש במקשים אחרים. בנוסף למקשי 85011 הרגילים, כמו לדוגמה, מקשי החיצים, מקשי המספרים במקלדת. הנומרית, וכדומה. כאשר משתמשים במקשים כאלה, צריך להשתמש בערכים של מקשים וירטואליים. השימוש במקשים וירטואלייס משחרר אותך מלהתחשב בסוג המקלדת של המשתמש, מכיון שהקוד הווירטואלי של מקש הפונקציה הראשון צריך להיות תמיד והה, ללא תלות ביצרן המקלדת או בסוג שלה. ההודעות א//ו0 5 ווו, קטצפא ואעו, ‏ אשוספ51565 או -קט+פ5156"8 או שולחות את קוד המקשים הווירטואליים בפרמטר וזאי של ההודעה. במכלול המבנה של קוד המקשים הווירטואליים, למספרים שבמקלדת הנומרית יש קוד מקשים וירטואלי נפרד. בנוסף, הקוד הווירטואלי עבור התווים ומקשי הספרות. שקול לערך 85611 של האות הרישית (ספמזפק0). במילים אחרות, ל-8 ו-א יש את הקוד 4 א/. לבסוף, שיס לב ששני מקשי 50/8 (הימני והשמאלי) יוצרים אותו קוד וירטואלי. טבלה 3.4 מפרטת את הקודים הווירטואליים של 71 32 חווץ. 8 זלבח/ ומבוא ל-ספו טבלה 3.4: קודי המקשים הווירטואליים של 8 32 חושא. קוד המקש אסדד9 א אסדדטפה א א א אסדדטפו א א פד אצ א אדפ א בוו 0 א טאפו אצ וו דוקה אצ א היו היו אפ א סופ אצ הויו ביוויו אצ ונה א אווסס א ערך (הקסדצימלי) ₪ ₪ ₪ / ₪8 0 6 פס 10 11 12 3 4 18 20 ₪ ₪ 3 / 55 5 27 28 השקול במקלדת או העכבר לחצן שמאלי של העכבר. לחצן ימני של העכבר. הטיפול ב-000₪01-8168%. לחצן אמצעי של העכבר, בעכבר עם שלושה לחצנים, או שני הלחצנים השמאלי וחימני בו-ומנית. מקש מס (88665865). טבלר (80ד). 4 ו ו = שוג 6 0 6 בב טפט סח האס חמק 6 7 סו 1 אוסזז סט וסזזה חפ סז האס פרק 3: עיבוד הודעות ‏ 59 קוד המקש אצ סו אע סופא אצ הפפ א אע מיוויון מו 27 אצ ויו הלויו הויו וו ויו וו 6 לוו 8 הלוו דוט אצ ספא אצ ייוו בוו אצ פסנענם אע 4 אע - 1 א ערך (הקסדצימלי) 5 25 6 ₪ 5 5 ו היו "₪ 6 8 "5 / 65 6 97 8 9 68 68 6 60 6 6 7 0 לבחו ומבוא ל-ספו השקול במקלדת או העכבר 0 וו ווק חן וו ו 9 2 1 0 0 0 1 0 6 7 8 0 ור חיק 0 הו מ ו 1 - 24 קוד המקש עוך השקול במקלדת או העכבר (הקסדצימלי) ו 90 ו 0 אע 1 0 6 הצגת המקשים הווירטואליים למדת שהתוכנית מקבלת מ-פאוס0חו בדרך כלל אחד משלושה סוגי קלט מקלדת. קלט תווי 85011 מוכרים, המועברים במשתנה וחזפוי של ההודעה הא וא; קלט. תווים לא מוכרים (60:חחָסטזחט), שאינם תווי מערכת (005190160 5100ע5-חסא) ומועברים ב-וחמזגקוו. של ההודעה א/ו0סץא ואו וקלט תווי מערכת (חפופקפ זסו0מזהת0) המועברים ב-חזפזפסוי של ההודעה אש51585+00 א/ו. גם למדת כוצד יכולה התוכנית לטפל בקלות בהודעות שמתקבלות מהעכבר. הטיפול בהודעות המקלדת קל ופשוט. לדוגמה, קטע הקוד הבא מציג תווים מוכרים בתוך תיבת עריכה של טקסט, ואם התו שאינו מוכר הוא מקש פונקציה, הקוד מציג תיבת הודעה שמציינת ואת פאנט ,התה פאטוא) 06עפ65%לט1ם אסהפננתס צמטפפה1 (מ98ב10 עתתהל1 ,מבבפט מתהתקור 3 האג | ( 01 180 ,6 001150 (ת458פט ,520816008) מששפמ1 (528016809 ,אסמצנסם 100 ,6מומ) 56ת1160ס :0 פע סלפ 0 856 (הבפגתא) 01600 1 אע 496 ,"068866 ע86 1 הס61סתנם" ,המאג 655496008 ;אס פע ,נפט (8%סע .92 אע 6896 ,*8868עק עשא 2 הס1מסתנם" ,ההאמ) 89600פטא אס פע ,נפטת (8%סע עפ 56868 עסא במטסט1ע הפמט // פרק 3: עיבוד הודעות ‏ 61 אפשר לראות שהתוכנית בודקת את הערכים הווירטואליים של מקשי הפונקציות. ש-00008/ מאחסנת בפרמטר חמומקאא, כדי לקבוע את המקש הווירטואלי שהמשתמש הקיש. 7 מבט נוסף על השימוש ב אעצספצםא אצ וסחוו. שולחת את ההודעה אעוסס/פא אוו לחלון שנמצא במיקוד הקלט של המקלדת, כאשר המשתמש מקיש על מקש שאינו מקש מערכת (/5 5/51971-חסא). מקש שאינו מקש מערכת הוא מקש שהמשתמש מקיש עליו ללא שילוב עם . בסעיף. 5 ראית ש-0005ח מעבירה בתוך הפרמטר וגזפלוו את קוד המקש הווירטואלי שהמשתמש הקיש. אך היא גם מעבירה בפרמטר וחגּזהקו את הערך בּבסע6או. הפרמטר. ו03ץ66! מגדיר מספר החזרות טחטס60 860636), קוד סריקה (0006/ה502), דגל מקש-מורחב (₪90 ע6א-400060ם), קוד הקשר (0986 זאטוחסס), דגל מצב-מקש קוד (180 50316-ץ69 פטסושסזק) ודגל מצב- מעבר (סכ1 51316-חס₪!פחגזד), כמו שתוכל לראות. בטבלה 3.5 ודעה טבלת 3.5: הערכים ש-5וו60חו/% מעבירה בתוך הפרמטר וחבזק| עם ההודעה 00 ?ו שו. סיבית. | תיאור 5 | מספר החורות. ערך וה הוא מספר ההקשות החוזרות כתוצאה מהחוקת. המקש לחוץ. 3 -16 | קוד הסריקה. הערך תלוי ביצרן הציוד טחסוחקוטףם וטס - ואס. ב 4 | מקש מורחב (ץ66 5/60666), כמו המקשיס 1 ו-600 הימניים שנמצאים. במקלדת המשופרת של 101 או 102 מקשים. כאשר ערך סיבית זו הוא 1, המקש הוא מקש מורחב; אחרת, המקש רגיל (שמאלי). - 25 | שמור, אונו בשימוש. 9 | קוד הקשר (6068 אאפחסס). הערך תמיד 0 עבור ההודעה אאוספצ:6 ואעו. 0 | המצב הקודס של המקש. סיבית זו נקבעת ל-1 אס המקש נלח) לפנ שליחת ההודעה; וערכה 0 אס המקש אינו לחוץ. 1 | מצב מעבר. סיבית זו לעולם אינה נקבעת עבור ההודעה א/ו0סץ5א יוא. כשהמשתמש מקיש על מקש הפונקציה 10", הפונקציה 60406חוא קובעת דגלל פנימי. כאשר 7106/ו00חו//090 מקבלת את ההודעה קט/65 או, הפונקציה בודקת אם הדגל הפנימי נקבע; אס כן, היא שולחת הודעה סא51500%%8 ו לחלון הראשי (אוס0חו//ו 6061 1-קסד). סקס חווט קובעת את ערך הפרמטר וחפזפקוי של ההודעה. ל-טאפוץ6 א 56. 2 הלבחו ומבוא ל-ספו תכונת החזרה האוטומטית (9300/6 )הפפסז-סזג) שיש ל-פווס6חוא. מאפשרת לה לשלוח יותר מהודעה אווסס+פא א/ אחת. אל היישום, לפני שהיא שולחת את ההודעה ק5/0א 8//ו. באפשרות התוכניות להשתמש במצב-קודם של המקש (סיבית. 0 כדי לקבוע אם ההודעה או65+00% וא מציינת את מצב המעבר הראשון, או את מצב המעבר החוזר. במקלדות המשופרות בנות 101 ו-102 מקשים, המקשים המורחבים הם מקשי וא 1-ו הימניים בחלק המרכזי של המקלדת; המקשים פח1, /06, סוחסוז, 6ח₪, קנ מק חווסס ססָּל, ומקשי החיצים בחלק שמשמאל למקלדת הנומרית, ומקש הלוכסן (/) ו-זוחם במקלדת הנומרית. ייתכן שמקלדות אחרות יתמכו בסיבית ההרחבה שבפרמטר 66/0303 ייתכנו מצביס בהם תרצה לקבל מחרוות שמייצגת את שם המקש. בסעיף הקודם. טיפלנו במקשים ידועים בתוך הוראת 60/פ. אולם ממשק 801 32 חווו מכיל את הרשימה של המקשים שיש להם קוד מקש וירטואלי, ובאפשרותך להשתמש בפונקציה. %פזסוח3 66165 כדי לקבל אותה. הפונקציה 6616630616 מקבלת מחרוות. שמיוצגת את שם המקש. משתמשים בפונקציה זא66166/80616 כמו בדוגמה זו 6 860 05 שם6ה4:גק 560088 // 19 06 במפח עסא 0% עמ5פטמ 05 2889085 // הפפפקם 355188 שחפת עשא 8 מטת1 אמ // 8 מ 1 / הפרמטר חָופ! מצביע למאגר שמקבל את שם המקש. הפרמטר 6טפח מגדיר את האורך המקסימלי, בתווים של שם המקש, כולל את התו המסיים )וא (הפרמטר 6 צריך להיות שווה לגודל המאגר שמוצבע על ידי הפרמטר חַופקו). הפרמטר זוי מגדיר את הפרמטר השני של הודעת המקלדת (כמו א/שס0/פא וא שהפונקציה :א300616ו/ץ66166 עומדת לטפל בו. החלקים של וחפזפלוי שהפונקציה מפענחת מפורטים בטבלה 3.6 טבלה 6 + הטיביות של הזפזבקאו ש-0 0010/96 מפענחת. סיביות | פירוש 3 | קוד הסריקה (0006 ח53). 4% | דגל מקש מורחב (ָג₪ /6א-90060ו50), כדי להגדיר מספר מקשים. במקלדת המורחבת. 5 | סיבית ייאל תתחשביי (י/6316 ז'חסם"'). היישום שקורא לפונקציה 661663676 קובע את הסיבית הזו, כדי לציין שהיא לא צריכה. להבחין בין וס שמאלי לבין ימני, או בין 50 שמאלי לבין ימנו, וכדומה. פרק 3: עיבוד הודעות ‏ 63 הפורמט של המחרוות של שם המקש תלוי בפריסת המקלדת 130000 66/9070 הנוכחית. מנהל ההתקן של המקלדת מחזיק רשימת שמות בפורמט של מחרוזת תווים, עבור מקשים שהשם שלהם גדול מתו אחד. מנהל ההתקן של המקלדת מתרגם את שמות המקשים לפי פריסת המקלדת המותקנת. שם של מקש תו הוא התו עצמו. התקליטור שמצורף לספר וה מכיל את התוכנית 665 אוסח5 (בתיקיה 5 6וס035קַחס800%559285), אשר מציגה שם של מקש בכל פעם שהמשתמש מקיש על מקש כלשהו. ב-6396 של ההודעה. אעוסס+65 או,. התוכנית מטפלת בהקשרי התקן (טסושפ 5פחסס), עליהם תלמד בהמשך. הנקודה החשובה שסעיף זה רוצה לציין היא הקריאה לפונקציה +616ו80ץ6א661, כפי שמוצג להלן (30 ,8תג5200 ,מבעבק1) :א0לסהפעם א התוכנית קוראת ל-10616ו/ץ66066, ואחר כך מוציאה את הפלט אל המאגר ומואנ של החלון. 8 משך זמן הלחיצה הכפולה בעכבר התוכניות מבצעות פעולות עיבוד שונות בעת קבלת קלט מהמשתמש. פעולה נפוצה של משתמש בתוכנית היא לחיצה כפולה 006-0/00פ) בעכבר, כאשר הסמן מוצב על אפשרות כלשהי בתפריט או שהוא מוצב על סמל כלשהו. לחיצה כפולה היא סדרה של שתי לחיצות בלחצן העכבר, כאשר השנייה מתרחשת פרק ומן מסוים לאחר הראשונה. אנו רוצים לשלוט בפרק הזמן שחולף עד הלחיצה השנייה, כדי ששתי הלחיצות תחשבנה לחיצה כפולה, ולא שתי לחיצות עוקבות. באפשרות התוכניות להשתמש. בפונקציה 5600060066 כדי לשלוט במהירות הלחיצה הכפולה של העכבר. הפונקציה 6ו0וד60/66/פ56!00 קובעת את משך הלחיצה הכפולה בעכבר. משך הלחיצה הכפולה הוא המספר המקסימלי של מילישניות שחולפות בין הלחיצה הראשונה לבין הלחיצה השנייה, ה'יכפולהיי. משתמשים בפונקציה 06ח/561000/60/66 בתוכניות, כמו שרואים בהגדרה שלהלן )9186 160116%מטספ 56% 00 1 66ה 018-0106 // 1 6הזט פאצט / הפרמטר |מחפוחזט: מגדיר את מספר המילישניות המקסימלי המותר בין הלחיצה. הראשונה לבין הלחיצה השנייה, כדי ששתיהן תיחשבנה לחיצה כפולה. אם נקבע לפרמטר זה הערך אפס, פאוסטחו/וו תשתמש בזמן ברירת המחדל של הלחיצה הכפולה,, אשר שווה 500 מילישניות. %. הערה: הפונקציה 6וחוד5600006066 משנה את משך הלחיצה הכפולה לכל החלונות שבמערכת. לכן, אס תשנה את משך הומן הזה בתוכנית. שלך, עליך להחזיר אותו לערכו הקודם לאחר שהתוכנית מסתיימת. 64 קלחו ומבוא ל-ספו כמו שתוכל לקבוע את משך הזמן בין שתי לחיצות עכבר שמווהות כלחיצה כפולה, תוכל גם לקבל את משך הלחיצה הכפולה הנוכחי בעכבר, באמצעות הפונקציה 6וחוד66%000/60/6%. ראינו שלחיצה כפולה היא שתי לחיצות עכבר רצופות בפרק ומן שאינו עולה על ערך שנקבע מראש. הו המספר המקסימלי של מילישניות שחולפות. בין הלחיצה הראשונה לבין הלחיצה העוקבת לה. משתמשים בפונקציה שוחוד06016%נו66100 בתוכניות כמו בהגדרה שלהלן. (03ע) 0011016 1מגוסס 0 פונצט אס הפונקציה 06חוז000/6016פ!66 מצליחה, הערך המוחזר של הפונקציה מגדיר את. משך הלחיצה הכפולה במילישניות. כדי להבין טוב יותר את הטיפול שמבצעות הפונקציות = 6וד6000ופט0ס!56 = |-6וחודא606וט0ס:66, = התבונן = בתוכנית 16 ופ 566 66%, שבתקליטור המצורף לספר זה 060 ו 56% 0300366%). בכל פעם שהמשתמש לוחץ לחיצה כפולה בעכבר, התוכנית מציגה תיבת הודעה שמציינת שהיא קיבלה את הלחיצה הכפולה. אך בכל פעם שהמשתמש בוחר את האפשרות 160 מהתפריט, התוכנית מנדילה את משך הלחיצה הכפולה בעשירית. השנייה. שים לב, שכאשר התוכנית מטתיימת, היא מחזירה את משך הלחיצה הכפולה. לערך המקורי שחיה לפני השינו. 9 החלפת לחצני העכבר ראית בסעיף 3.8, שיכולים להיות מצבי עבודה שונים שבהם צריך לשנות דברים שנקבעו מראש. אחד מאלה היה שינוי משך ההשהיה בין לחיצות העכבר, כדי שתיחשבנה לחיצה כפולה. כך גם ייתכן שצריך יהיה להחליף את לחצני העכבר ולהשתמש בלחצן הימני לביצוע פעולות שכרגיל נעשות על ידי הלחצן השמאלי, ולהיפך, להשתמש בלחצן השמאלי כדי לבצע את הפעולות שנעשות בדרך כלל על ודי הלחצן הימני. הפונקציה חסזוטפספטסויוקוו53 הופכת, או משחזרת, את פעולת לחצנ העכבר השמאלי והימני. 5אסחוו מאפשרת את החלפת הלחצנים כדי להקל. על מי שמשתמשים בעכבר ביד שמאל. בדרך כלל, רק לוח הבקרה ((7306 וסשחסס) קורא לפונקציה חסשטפספטסויוקויו ,53‏ למרות שאפשר לקרוא לפונקציה באופן חופשי בתוכניות. כשחייבים להשתמש בתוכניות בפונקציה חסז8ספטסוק53, צריך לקרוא לה כמו בהגדרה שלהלן מס סט 055056: צס שמממטמ // 9+ ₪008 0 הפרמטר 1593 מציין את התפקיד הנוכחי של לחצני העכבר: רגיל או הפוך. אם סאפ! שווה פחד, לחצן העכבר השמאלי מייצר הודעות לחצן ימני ולחצן העכבר הימני. מייצר הודעות לחצן שמאלי. אם קַגוופ! הוא 566, הלחצנים נמצאים בהגדרתם המקורית. בתקליטור שמצורף לספר וה תמצא את התוכנית 8 קאפ (בתיקיה 3 שמחליפה את המצב של לחצני העכבר ומשחורת אותם ולהיפך, בכל פעם: שהמשתמש בוחר באפשרות 765 מהתפריט. פרק 3: עיבוד הודעות ‏ 65 שים לב. העכבר הוא משאב משותף ולכן, הפיכת תפקוד הלחצנים שלו משפיעה על כלל היישומים. התוכניות צריכות להימנע מהחלפת לחצני העכבר ככל האפשר. ובמקרה הצורך, להחזירם למצב המקורי. הקשרי התקנים בתוכנית מהסעיף הקודם, הושג הָקשר התקן לפני שהתוכנית שלחה פלט לחלון, והוא: שוחרר לאחר שהפלט הופק. כעת נברר מהו הָקשר הַתקן סוחס 06/65). למעשה. והו נתיב פלט העובר מהיישום, דרך הדרייבר המתאים להתקן, אל שטח הלקוח של החלון. הקשר ההתקן גם מגדיר בצורה מלאה את מצב הדרייבר של ההתקן. לפני שהיישום שלך יוכל לשלוח מידע כפלט לשטח הלקוח של החלון, עליו להשיג הקשר התקן. עד אז, אין למעשה קשר בין התוכנית שלך לבין החלון, בכל הנוגע לפלט. לכן, חובה להשיג הקשר של התקן לפני משלוח הפלט לחלון. הפונקציה ()00אפד ופונקציות פלט אחרות דורשות ידית להקשר של התקן, לכן זהו כלל הנאכף מעצמו. ב בוח ה תרשים 3.1: כותרת חלון לדוגמה שהופק על ידי התוכנית ה4!) ו 0 עיבוד הודעה של דאז4ק וזע לפני שתמשיך בקריאה, הר את התוכנית 5/5 שוסו51 מהסעיף הקודם פעס נוספת,, והקלד תווים אחדים. כעת, הקטן והגדל מחדש את החלון. כפי שיתברר לך, התור האחרון שהקלדת לא יוצג כשהחלון ישוחור לגודלו הרגיל. זאת ועוד, אם החלון הוסתר על ידי חלון אחר ולאחר מכן נחשף מחדש, התו האחרון אינו מוצג עוד. הסיבה לכך פשוטה: ככלל, חלונות אינה רושמת לעצמה את תכולתו של חלון נתון. האחריות. לשמירת תכולת החלון מוטלת על התוכנית שלך. כדי לסייע לתוכנית במשימה זו, כל פעם שמתעורר צורך להציג מחדש את תוכנו של החלון, תישלח לתוכנית שלך הודעת. דאזא. או (הודעה זו תישלח גכ כאשר החלון מוצג לראשונה). כל פעם שהתוכנית. מקבלת הודעה כזו, עליה להציג מחדש את תכולת החלון. בסעיף זה תוסיף לתוכנית. משפט 6356, שמתפקידו לעבד את הודעת המאקרו דאו1ק ו + הערה: מסיבות טכניות שונות, תכולתו של חלון מוצגת מחדש באופן אוטומטי לאחר הזוה של החלון. דבר זה לא יתרחש אם החלון הוסתר על ידי חלון אחר, או שחלקו היה מחוץ לתצוגה, והוצג מחדש. 66 לבחו ומבוא ל-ספו לפני שנסביר כיצד להגיב על הודעת זאזאק וא+, רצוי להסביר מדוע חלונות אינה כותבת מחדש את החלון באופן אוטומטי. התשובה לכך קצרה ועניינית: במקרים רבים, לתוכנית שלך (היודעת בדיוק מהי תכולתו של החלון), קל יותר מאשר לחלונות. לכתוב מחדש את תכולת החלון. למרות שיתרונותיה של גישה זו הם נושא לוויכות. מתמשך בין מתכנתים, רצוי שפשוט תקבל ואת, כי אין זה סביר שהדבר ישתנה בקרוב הצעד הראשון בעיבוד הודעת דאזק יו הו הוספת משפט 656 למשפט האופ בתוך פונקציית החלון, הנה כך /* 000685 מתנפקס? 8 00888צק */ נצאדתק אא 486 /* סם ממ */ ;(טסטעטפםה1גם5 ,תת 6ה1גפה1ש6ם = סשת /* שָהעם8 טטקפטס */ ;((02160)562 ,ע58 ,1 ,1 ,סשמ) ממ0:אבד /* סם 2616886 */ ; (ססמעם8מת81ק80 ,מאת) טת1פטתם ופצ הבה נתבונן במשפט זה ביסודיות. ראשית, שים לב שהקשר ההתקן מושג באמצעות. קריאה לפונקציה (גּקְחומַָ8, ולא לפונקציה ()66006. מטעמים שונים, כאשר עתה עוסק בעיבוד של הודעת דא31ק וא/ו עליך להשיג את הקשר ההתקן באמצעות הפוקנציה ()חו3לחו860, שהגדרתה היא ; (פפק1 צסטתצפעוננתקקת ,המות סאאם) שה1גתה1מט ספ הפרמטר השני הוא מצביע אל מבנה מסוג 51806 דו1ק, שהגדרתו היא | 8002ע9ע10ת800: מסטפ0פ 6668קעט /* %5ם:מ0ם 460108 50 416ממת */ /6את ספא /* 2568ב שם מפנת ההו0:סם 11 שטצ: */ ;שפגעם? מססם /* 204280 10 206108 05 8068מ600281 */ ;סתוגקם: צסמת /* 20509068 */ סעסספשת+ מססם /* 6502068? */ ;0ף62קטשחד? מססם /* 68שע2656 */ ;[68]32ע6562מס5 עצמ הדונ תק [ הסוג 8501 הוא מבנה המגדיר את הקואורדינטות לפונה השמאלית-העליונהה והימנית-התחתונה של אצור מלבני. מבנה זה נראה כך || 680 6668קעט /* 1686 עשמקט */ 5007 ,165% בא10 /* 5מ16ע עשא10 */ קמסףמסם ,תע בא10 פה [ במבנה ד800ד1815אק, הרכיב 6030 מכיל את קואורדינטות אזור החלון שיש לצובעו מחדש. לעת-עתה אינך צריך להשתמש בתכולתו של מבנה זה; תוכל להניח שיש להציגג מחדש את כל החלון. פרק 3: עיבוד הודעות ‏ 67 נציג תוכנית שלמה, המסוגלת לעבד הודעות מסוג דאזאק ו התוכנית. נמצאת. בתיקיה 6 וק ואאו3003ת0. 8 0 106 "ה עמ 6הצגק א" שהטבסה41 <מ.58810> 1006סה1 (01832) 4601868 418 מטתד 32אנון 15 440116 8 מפנתת 32אנאן 15 446116 ה ספה מהמפצגטם // >פחדת פסונתלפוננ ;"צוצתקוחו" = ההפאסקתפפק1 תעפפסקת "%ה41ע אא" = 15271016 תעפפסק1 < (סמ1 *55תנססומה פפאסם) 95ת01560201ה מססם /* פַ15צ80 סמטקסטס 185ממ */ [80] 85% צמתם מסוותפפאת3 (פסתבםפתזת מסותפפאנה) תובעתוז צהפנמנעת 45 (06מ45מסה 186 ,שה411מסק1 12578 ,06מ68פה1עםפקם [ 4 תו פעחור 6 טאו קאתהסמחע 05 | אתתספאע פס 8 מ קפוהו ב 01 ₪ 0 ₪ 1 ₪ (סמאמקת82ם1 ,8סמ8:פהנמ) ה1088160 0 ; (מוסתהה 180 ,טא 08 = ו ; (1+אססוונאו הסנסס) (מפטתפ2) = במטספףאס8פעמת סט ;במפאמקתלפם1 = סמגחטה20פם1 סט קסמגאממת2 18 = שהם58%ג8201מ1 סט ( (5ש6) 18601866601895) 16 6 תצטסם+ דה = 6פחדת קת ק1) 0ה01 :ספ = 4מאר 1 לבחו ומבוא ל-ספו פרק 3: עיבוד הודעות ‏ 69 0 נלתלבחואו ומבוא ל-ספו לפני שתמשיך, הקלד, הדר והרץ תוכנית זו. נסה להקליד כמה תווים ולאחר מכן להקטין את החלון ולשחזרו לגודלו הרגיל. כפי שיתברר לך, בכל פעם שהחלון יוצג מחדש, התו האחרון שהקלדת יצויר מחדש באופן אוטומטי. שים לב שהמערך הגלובלי. 50 מאותחל ל-זטפזטס 16קו53, ושמחרוזת זאת מוצגת בעת שהתוכנית מתחילה לרוץ. הסיבה לכך היא, שהודעת דאזאק + מופקת באופן אוטומטי כל פעם שחלון נוצר. הטיפול בהודעות של דא1ק וו בתוכנית השלד פשוט למדי, ראוי להדגיש שבמרבית. הגרסאות הממשיות, הדברים יהיו מורכבים הרבה יותר, כי רוב החלונות מכילים. הרבה יותר פלט. האחריות לשחזור התכולה של החלון במקרה של שינוי גודל, או הסתרה מוטלת על התוכנית שלך. מחובתך לספק לכל תוכנית מנגנון כלשהו שבאמצעותו היא תוכל לבצע ואת. בתוכניות אמיתיות, הדבר נעשה באחת משלוש דרכים. 1. התוכנית יכולה להפיק מחדש את הפלט באמצעות חישובים מתאימים. דרך זו מתאימה כשאין צורך בפעולה כלשהי מצד המשתמש. 2. במקרים מסוימים אפשר לרשום ולשמור את רצף האירועים, ולהריץ אותם מחדש כל פעם שצריך לצייר מחדש את החלון. 3. התוכנית יכולה לשמור מסך וירטואלי, שתכולתו מועתקת אל החלון בכל פעם. שצריך לציירו מחדש. השיטה השלשית היא הכללית ביותר מבין השלוש (יישומה של גישה זו מתואר בהמשך הספר). איזו גישה היא הטובה ביותרו זה תלוי לחלוטין ביישום. ברוב הדוגמאות בספר זה איננו טורחים לצייר מחדש את החלון, מכיון שהדבר כרוך בתוספת ניכרת של קוד, שרק תטשטש את הנקודה שאנו מנסים להבליט בכל דוגמה. כדי ליצור יישומי חלונות ל תקניים, תצטרך לדאוג לשחזור החלונות בתוכניות שלך. 1 כיצד להפיק הודעת ד1₪ק ואצ תוכל לגרום לתוכנית שלך להפיק הודעת דוק אצ. ייתכן שתשאל את עצמך מדוע שיהיה צורך בכך, ואת מכיון שהתוכנית יכולה לצבוע מחדש את החלון שלה בכל עת. שתרצה. אבל ווהי הנחה שגויה. וכור, עדכון של חלון הוא תהליך יקר במונחי זמןן חלונות היא מערכת לריבוי משימות וייתכן שהיא מריצה במקביל תוכניות נוספותת שגס להן דרוש זמן 670, ולכן רצוי שהתוכנית שלך רק תגיד למערכת ההפעלה שהיא מעוניינת להפיק פלט, אך תניח לה להחליט מתי לבצע את הדבר בפועל. דבר זה מאפשר לחלונות לנהל את המערכת בצורה יעילה יותר ולהקצות. זמן 690 לכל המשימות הרצות בה. על פי גישה זו, התוכנית שלך תעכב כל פלט עד שתקבל הודעת. דאז. או ממערכת ההפעלה. בדוגמאות הקודמות התקבלה הודעה כואת רק כשהחלון נחשף מחדש לאחר שהיה מוסתר, או כאשר שוחור ממצב מוקטן לגודל רגיל. אולם, אס מעוכב כל הפלט עד לקבלת הודעת דוזאק + ואו מושג פלט/קלט אינטראקטיבי, חייבת להיות דרך פרק 3: עיבוד הודעות ‏ 71 כלשהי להודיע לחלונות שהיא צריכה לשלוח הודעת !71 ואו לחלון שלך בכל פעם. שיש צורך בהפקת פלט. כצפוי, תכונה זו גלומה בחלונות א9. וכך, בכל פעם שיש לתוכנית שלך מידע שהיא רוצה להוציא כפלט, היא רק מבקשת ממערכת ההפעלה. לשלוח לה הודעת זא1הק או כאשר תהיה פנויה לעשות ואת. כדי לגרום למערכת. ההפעלה לשלוח הודעת דא1ק א/ ,4‏ תפעיל התוכנית שלך פונקציית 1קא בשם (6316804/הח1. הגדרתה מובאת כאן (ספגפפם 8008 ,מסשתק1* צסמת פפאסם ,במשות סומוא) 608ת110850פטת1 מססם כאן, הפרמטר שחאח הוא הידית לחלון שאליו אתה רוצה לשלוח את הודעת דאז. א. הפרמטר 661חפ! מצביע על המבנה ז856, המכיל את קואורדינטות שטח החלון, אשר יש לציורו מחדש. ערך 01 בפרמטר זה מציין את החלון כולו. אם הפרמטר 081956 מכיל ערך סטז, יימחק הרקע של החלון. אס הוא מכיל ערך אפס, לא יחול שום שינוי ברקע. פונקציה זו מחזירה ערך לא-אפס אס סיימה בהצלחה, וערך. אפס אם לא סיימה בהצלחה (בדרך כלל הפונקציה מסייימת בהצלחה). כאשר הפונקציה ()66חטו₪ווגאח1 מופעלת, היא מודיעה לחלונות שהחלון אינו תקף עוד ויש לציירו מחדש. דבר זה, גורס למערכת ההפעלה לשלוח הודעת דאזאק אא לפונקציית החלון של התוכנית. לפניך גירסה חדשה של שלד היישום הקודם, המבצעת כל פלט על ידי הפקת הודעת. זז א.. יתר הקוד לתגובה על הודעות מכין את המידע המיועד להצגה, ולאחר מכן מפעיל ‏ את הפונקציה ()9060ז1₪0168. = התוכנית | נמצאת בתיקיה ק עש 03 <ה. 6008ת01> 4301086 "ה 2386 ופ" 41001086 <ה.95016> 43001086 188 )132( מטתע 32אצאן 18 6ת48651 8 מפנתת 2במצא 15 6ה001+ ה 35686 מהמצצטם // ;6פחדת מסונתתפ) ;"צוצתקואו" = שהפהסקתפפק1 ת57פסק1 ;"תס אא" | = 15291616 8ע5פסק1 ₪ (סאמ1 *55תנספאה פפאסם) 95ת8015%0201ה מססם /* 809188 מטקסטס 188ס */ ;"" = [80] 562 צמתם /* מ1008010 ה66ע0ם */ ,1 = ץ ,1 = א שתג מסוותפפאות3 ,ססהבםפתנת מסותפפתצה) תובעתגאז צהפונמדעת 48 (סתפמהסה 186 ,שת1ם4תס1 10578 ,06ה68פתנטםעקת 2 קקח ומבוא ל-ספו פרק 3: עיבוד הודעות ‏ 73 16 *88ה1ספאון עפממסס) 95ת601866901 מססם [ סא 558% נססוה? = 0 ;00עקבתאמ:ם1<-0אמ1 = ססעקנתאהזק1 אססט 10-00 = 01 ,מס = 0 סה 0 = 1 1 = סו 10-00 = 100 אס ;סע ףס מעמה<-6אמ1 = = בתטסשףַאס8מצעם אססט 6םןוטה26פם1<-6אמ1 = סתבאמהם2פק1 אססט ,82018580806מ1<-6אש1 = 52012580206ק1 אססט (55ה:סון) 512005 = 1 ; ("ממתאם" ,6סה58פ1 אםסא)ת1080100 = 1 סו ; (6089) א86018665018598 פנש ,הבעגקא אתתתפה ,ספמו עוצט ,במאת כומוט ) 00פפבחח אסהמננתס ענטפמתנ (מ858פ1 ונתהתקן [ 6 ספ ד טהעפעוותק 8 1 ו /* בא0עםע%0 00088צק */ נתתאס ו) 56ב /* צתע0ש 1856 עמקקט ת1 פעמהם 818018 */ 12 = ץ = א (מפצפסא (צפה) ,"ש%" ,51)858ת1צקב /* שםשסבתגהם 128פהעםב */ /* 20266 שתם 6מ1בם */ ;(1 ,תנש ,מאמ) 1102558605בטחד פע /* 2686 מת1צמס: 8 655ס0עם */ :פאדתק וז ספמ /* 06 66 */ ;(ססטעםםה1ק8 ,המאה):ת1גקה601ם = סשת /*אַת1צם5 ממקפטס */ ;((ע58)מ16עם8 ,עטפ ,צ ,א ,סשמ)ממ0) אס /* סם 610886ע */ ;(טסטעםםטת1בקם ,במחה) מת1 קשח פע /* ה0פ%טם 21608 8פבססעם */ :אאסםונסלצטמה (ק) 856 ;(*.מ408 15 תסססטם גהנה" ,ע%פ) עצוב /* מההעעטם 60 צ,% 868 */ ;(מצגפ1)סהסא0ן = א 4 התלח ומבוא ל-ספו /* 1003010 הפטסת */ ;(ממגפ1) פהסאנע = צ ;(1 ,טא ,4מאמ) 508ה60ב10נהטחד /* 502668 שמץ מת1מק */ 6 /* הסטטטכ 1658 8פסססעם */ :אאססאספדטםן וו 6פמם ;(".מא40 18 מספסטט 2658" ,:86) עסספספ /* ממסעצטם 60 צ,% 568 */ ;(ממעגפ1)פהסא0ן = א /* 1002610 בפטסח */ ;(מעגק1)פהסאנע = צ ;(1 ,מפטא ,4מאמ) 808ה50ב110הטחד /* ה66ע0ם שת: מת1מק */ וצ 00 9 856 |( פא) סוס ) 160 צפפס 188 0886 6 צנאם 188 886 ( 0 ופ שפצ + צסמצפפם 006 856 (0 0 0 0 ;((108288 ,מ98בפא ,הפא ,תאמ) ססעסא40ה601פ) מעטסם, 1 01 ג שים לב שהתוספו לתוכנית שני משתנים גלובליים חדשים, ‏ ו-+, המחזיקים את המיקום שבו יוצג הטקסט כאשר תתקבל הודעת דאזק ואוו כפו שאתה רואה, על ידי ניתוב כל הפלט דרך דא1 או, למעשה צמצמנו את גודלל התוכנית, ובמובנים מסוימים פישטנו אותה. כפי שכבר הזכרנו, התוכנית גם מאפשרת. באמצעות נוהל זה לחלונות אל להחליט על המועד המתאיס ביותר לעדכון החלון. 6% הערה: = יישומי חלונות רבים מנתבים את כל (או רוב) הפלט דרך זאזהק ואו, מהסיבות שפורטו לעיל. טכנית, אין שוס פסול בכך שהתוכניות הישנות מפיקות טקסט בעת שהן מגיבות על הודעה, גס אם גישה זו אינה הגישה הטובה ביותר לכל מצב. פרק 3: עיבוד הודעות | 75 2 הפקת הודעות של קוצב זמן ההודעה האחרונה שתידון כאן היא הודעת הפוא1ד וא/. באמצעות חלונות, תוכלל ליצור קוצב זמן (זפוחוז), שייצור פסיקות (פוקוזזפוחז) בתוכנית שלך במרווחי זמן קבועים מראש. בכל פעם שקוצב הזמן מופעל, הוא שולח הודעת תשווד ואו לפונקציית החלון שלך. השימוש בקוצב זמן הוא שיטה טובה 'ילעורר" את התוכנית בפרקי ומן קצובים. דבר זה שימושי במיוחד כשהתוכנית שלך רצה בתור משימת רקע. כדי להפעיל קוצב זמן, הפעל פונקציית 81 בשם ()9וחוו56, שהגדרתה היא שסמפתמווניי ,5תסתא מוצט (סצת )01 (סמנתפפ 1 הפרמטר שחאוח הוא הידית לחלון שמשתמש בקוצב הזמן. הפרמטר 15 מציון את הערך שיקשר עם קוצב הזמן הזה (מותר להפעיל בו-זמנית יותר מקוצב זמן אחד) הערך השמור ב-חִוּפָחפוי מציין את פרק הזמן באלפיות השנייה, כלומר, כמה ומן יעבור בין פסיקה לפסיקה. סחטחזק! הוא מצביע, המצביע על פונקציית קוצב הזמן שתופעל כל פעם שקוצב הזמן '"מצלצליי. פונקציה זו חייבת להיות פונקציית משוב 03/0360 המחזירה ערך 6811880% פז0, ומקבלת אותו סוג של פרמטרים כמו פונקציית החלון. אך, אס הערך של 6חטחזפו הוא +וטא, כפי שקורה פעמים רבות, תשמש לצורך זה פונקציית החלון של התוכנית. במקרה זה, כל פעם שקוצב הזמן "ייצלצליי, תישלח הודעת 1168 וא לתור ההודעות של התוכנית שלך, ופונקצייתת החלון של התוכנית תעבד אותה כמו כל הודעה אחרת. זוהי הגישה שננקוט בדוגמה הבאה. הפונקציה מחצירה סז אם סיימה בהצלחה. אם לא ניתן להקצות קוצב זמן, מוחור ערך אפס. לאחר שכיוונת קוצב ומן, הוא ימשיך להפסיק את התוכנית שלך בפרקי הזמן הקצובים עד שתסיים את היישום, או שהתוכנית שלך תקרא לפונקציה ()זפוחודוווא, שהגדרתה היא ;ופצת שאצט ,סמות סאאט) 811191865 מססם הפרמטר 6חוח הוא החלון המכיל את קוצב הזמן, ואילו פ1ח הוא הערך המוהה את קוצב הומן המסוים הזה. כל פעם שמופקת הודעת הפויו1ד וא/ו נשמר בפרמטר וחפזפקאי ערך 10 של קוצב הצמן, ואילו חחפזגקו מכיל את המען של פונקציית המשוב של קוצב הזמן (אם הוגדרה פונקציה כזאת). בדוגמה הבאה, יכיל הפרמטר וחגזּק! את הערך טא כדי להדגים את השימוש בקוצב ומן, משתמשת התוכנית. זסוחוד אא שלפניך (בתיקיה 3קַת6) בקוצב זמן ליצירת שעון. לשם כך היא משתמשת בפונקציות השעה. והתאריך התקניות של ++6/6, כדי לקלוט ולהציג את ומן המערכת ותאריך המערכת. הנוכחיים. כל פעם שקוצב הזמן י"מצלצליי, במקרה זה בערך פעם בשנייה, מתעדכנת. השעה. באופן זה, השעה המוצגת על המסך מדויקת בגבולות של שניייה אחת. 6 לבח ומבוא ל-ספו פרק 3: עיבוד הודעות ‏ 77 8 זלת2בחואו ומבוא ל-ספו פרק 3: עיבוד הודעות ‏ 79 + פמק 0 486 (0 0 וצ 0 ;((108538 ,מבצבפא ,הפ ,מאמ) ססעסא40ה601פ) מצטסם, 1 0 לאחר שלמדת כיצד תוכנית של חלונות 5% מעבדת הודעות, תוכל להמשיך וליצור תיבות הודעה ותפריטים, נושאים שיידונו בפרק 4. 0 לבחו ומבוא ל-ספו פרק 4 תיבות הודעה ותפריטים עכשיו, כשאתה כבר יודע כיצד לבנות שלד בסיסי לתוכנית חלונות שתדע לקבל ולעבד. הודעות, הגיע הזמן להתחיל בבדיקת המרכיבים של ממשק המשתמש של חלונות. אם. אתה לומד תכנות חלונאי לראשונה, חשוב שתבין שהיישומים שלך יתקשרו עם המשתמש בדרך כלל באמצעות אחד, או יותר ממרכיבי הממשק המוגדרים מראש. חלונות א9 תומכת בכמה סוגים של מרכיבי ממשק. פרק וה דן בשניים מהם: תיבות הודעה ותפריטים. אלה הם מרכיבי הממשק הבסיסיים ביותר של חלונות, שיופועו כמעט בכל תוכנית שתכתוב. כפי שיתברר לך, הסגנון הבסיסי של תיבת ההודעה ושל התפריט מוגדר מראש. מה שנותר לך לעשות הוא לספק את המידע המתייחס ליישום. שלך. בפרק זה תכיר את המושג משאב (65ז8690), מרכיב חיוני ברוב יישומי חלונות. 1 הפונקציה א165530680] החלון הפשוט ביותר בממשק הוא תיבת ההודעה. תיבת הודעה (80% %09936) מציגה. הודעה למשתמש, ודורשת תגובה מהמשתמש לפני שהתוכנית תוכל להמשיך בפעולתה. בסעיפים שנראה בהמשך נלמד ליצור תיבות דו-שיח מסוגים שונים. עם זאת, עבור תיבות דו-שיח פשוטות המקבלות קלט מהמשתמש, התוכניות. יכולות להשתמש. בפונקציה אס68מַ695א. פונקציה זו יוצרת, מציגה ומפעילה תיבת הודעה 80% 699306/א). תיבת הודעה מכילה הודעה וכותרת שמוגדרים על ידי היישום, בנוסף. לצירופים מובנים של סמלים ולחצנים. תיבת ההודעה אינה יכולה להציג חלונותת בעצמה. התוכניות שתכתוב תשתמשנה בצורה הכללית של הפונקציה 169580680 כדר להציג תיבות הודעה, כפי שתראה להלן. 4 10% שסחאם 05 16אמממ // וו סוחו אס 95806סח 1 %אםף 01 860285 //‏ ,מאשלק 1‏ הדמצה אמ // 069986 08 61816 05 8602685 // ,108ממהסקג ‏ הצפצס. אס 0658896 06 מ1עטם // >קעפטו צאדט / הפרמטרים שהפונקציה 165538 מקבלת מוסברים ברשימה שבטבלה 4.1> פרק 4: תיבות הודעה ותפריטים ‏ 81 נוסף לטקסט שתיבת ההודעה מציגה (כפי שנקבע על ידי הפרמטר ואפזקן) והכותרת. עבור תיבת ההודעה (שנקבעת על ידי הפרמטר חסוו30סטו), התוכניות תשתמשנה פעמים. רבות בפרמטר 6קעָזט כדי לשנות את הלחצנים והסמלים שרוצים להציג בתיבת ההודעה. טבלה 4.2 מפרטת את הערכים האפשריים שמקבל הפרמטר פפְעד לשליטה במספר הלחצנים וסוגיהס שמוצגים בתיבת ההודעה. בטבלה 4.1: הפרמטרים שהפונקציה 8105989680 מקבלת. דגל תיאור שחעצת | מוהה את החלון לו תהיה שייכת תיבת ההודעה שרוצים ליצור. אם. פרמטר זה הוא-11א', פירוש הדבר שאיין לתיבת ההודעה חלון לו היא שייכת. אפדק! | מצביע על מחרוות המסתיימת ב-11ט)! שמכילה את ההודעה שתיבת ההודעה צריכה להציגג חס%ק3ספן | מצביע על מחרוזת המסתיימת ב-011! שמשמשת את כותרת תיבת 6 ההודעה. אם פרמטר זה הוא -011ו!, התוכנית משתמשת בכותרת. ברירת המחדל שגיאה (זסזז). מגדיר קבוצה של דגלי סיביות 5 8%) הקובעים את תכולתה. והתנהגותה של תיבת ההודעה. פרמטר זה יכול להיות שילוב של. דגלים מקבוצת הדגלים. טבלה 4.2 מציגה את רשימת הדגלים. שהתוכנית יכולה להשתמש בהם, כדי לציין את הלחצנים המוכלום. בתיבת ההודעה. בטבלה 4.2: הערכים האפשריים שמקבל הפרמטר ץד לשליטה במספר הלחצנים. דגל פירוש 1 הדפ הדהס8, מו | תיבת ההודעה מכילה שלושה לחצנים : בטל (זס4), 2 נסה שנית (860), והתעלם (ִזְטְמָ1. 06 8 | תיבת ההודעה מכילה לחצן אחד: אישור 060). הדגל. 0 %8! הוא ברירת המחדל של הפרמטר קדו מסו0אס .פוא | תיבת ההודעה מכילה שני לחצנים: אישור (0%) וביטול (/63066). 6אא6+אדםה .18 | תיבת ההודעה מכילה שני לחצנים : נסה שנית (960) ו וביטול (/9069) 550 18 | תיבת ההודעה מכילה שני לחצנים : כן (65?), ולא (ס). 5500 .ו | תיבת ההודעה מכילה שלושה לחצנים : כן (65), ולא. (סא) וביטול (/6366). לבחו ומבוא ל-ספו בנוסף לשליטה בכותרת ובמספר הלחצנים שמוצגים עס תיבת ההודעה, באפשרות. התוכנית גם לקבוע אם יוצג סמל עם תיבת ההודעה, או לא. ברירת המחדל היא אססנסוו 8 (כלומר, לא). טבלה 4.3 מציגה רשימה של הערכים האפשריים שמקבל הפרמטר פע לשליטה בהופעת הסמל עס תיבת ההודעה. בטבלה 4.3: הערכים האפשריים שמקבל הפרמטר קד לשליטה בסמל תיבת ההודעה. דגל סד 1600 הו 16 ור 160 הור 8 160 160 פוא 16050 הו 160 ו 160 הו אסא 8 פירוש מציג בתיבת ההודעה סמל סימן קריאה. מציג בתיבת ההודעה סמל סימן קריאה. מציג בתיבת ההודעה סמל שמורכב מהאות | בתוך מעגל. מציג בתיבת ההודעה סמל שמורכב מהאות | בתוך מעגל. מציג בתיבת ההודעה סמל סימן שאלה. מציג בתיבת ההודעה סמל עצור. מציג בתיבת ההודעה סמל עצור. מציג בתיבת ההודעה סמל עצור. לא מוצג סמל כלשהו בתיבת ההודעה. הפונקציה 165530680! תומכת במספר רב של קבועים נוספים עבור הפרמטר עדנ אך הקבועים שנמצאים בטבלה 4.2 ובטבלה 4.3 הס השימושיים ביותר. כדי לראות את. רשימת כל הקבועים בדוק את העורה המקוונת של המהדר. הפונקציה ()סססָפפטו מחזירה את תגובת המשתמש לתיבה. הערכים החוזרים האפשריים הם. טבלה 4.4 הלחצן שנבחר * | הערך החוזר חן בי ה אפ 1 1 יי 1 0 סופ 2 יי ₪2 ג פרק 4: תיבות הודעה ותפריטים | 83 כדי להציג תיבת הודעה, הפעל את הפונקציה ()1655306804!. חלונות תציג את תיבת. ההודעה בהודמנות הראשונה שתוכל. אינך צריך להשיג הקשר התקן, או להפיק הודעת דא1 0%ו. הפונקציה ()א9530680 מטפלת בכל הפרטים האלה במקומך (כיון שכה פשוט להשתמש בתיבות הודעה, הן משמשות כלי נפלא לניפוי תוכנה, כאשר דרוש לך אמצעי פשוט להוציא פלט אל המסך). התקליטור שמצורף לספר וה מכיל את התוכנית 4655 אוסח5 (בתיקיה 68004 התוכנית 1655 שוסח5 אאומרת ייוסווש/י למשתמש וממתינה לקשה על מקש כלשהו. 2 הפונקציה 1655306866] בסעיף הקודם למדת להשתמש בפונקציה א69930680 כדי ליצור תיבת דו-שיח פשוטה. התוכנית 4655 שוס5 קוראת לפונקציה 699368969 כשהיא צריכה לוצורר תיבת ההודעה. הפונקציה 1695306869 משמיעה נגינה בפורמט 1//46 (0חזס/36/. פריט בקטע (6ח50] של מערכת הרישום מגדירה את תבנית פורמט גל הקול (6חט50 וחזס!סופ/ו) עבור כל סוג של קול. התוכנית תשתמש בפונקציה פפס8ססַפפטו לפי ההגדרה שלהלן. (פמעגר עעוצט) 558008600טו מססם הפרמטר סקץדט מגדיר את סוג הקול, כמו שמזוחה על ידי הכניסה בחלק [6חט0פ] של. רישום המערכת. פרמטר הקול עדו יכול לקבל את אחד הערכים שבטבלה 4.5. בטבלה 4.5: ערכים אפשריים של פרמטר הקול סע דט. ערך קול אפקקתקאטא | צליל סטנדרטי המושמע על ידי רמקול המחשב. א15הפד100₪5 18 | 97851005%ז55 (כוכבית). דהואה 100101 פוא | 5/5909 (סיימן קריאה). וו 100 ו | 6מ 5/9 (יד). אסנדפ 10000 פוא | 5519706500 (שאלה. אס 8וא | %/0630וחט5/51 (ברירת מחדל). התוכניות צריכות להשתמש בפונקציה מ66פטָפפטו כדי להשמיע קול פשוט, שמשתמשים בו בדרך כלל להתריע למשתמש על מאורע כלשהר 4 לבח ומבוא ל-ספו לפניך דוגמה פשוטה המציגה תיבת הודעה בכל פעם שאתה לוח על אחד מלחצני העכבר (הבאנו פה רק את לולאת ההודעות של התוכנית 165589680%. התוכנית. בשלמותה נמצאת בתיקיה: אספסמַ08046553) מש8ק אהתתקחו ,הפר קוודט ,מא סמו ) ססצפבחו אסהמנמהס צמטפמה1 ( מ8טת1 |עתהתק ב שה ( חפ )1 [ :0 0 856 ( ב 100 )156 |[ + לפמץ 108 856 ( 1 ו | 9090 ב" ,מ | 4580 | 46 וס תעתנם0אפאסס1 מע | סאפמצ מו טא (פפצסד ..68פ8סצם פבא פמ // 1 סע טספ 18% 856 ,מ ,"אסמפטסמה" ,6פהזת )50%ף10ג1ם ףוסה (ססתקסונם) 8 + צנאם 188 886 ( 8 פס סע 1 וצ /* מספמטם 5מח1ע פפסססעם */ :אאססאסעדטמה ותו 856 ו ,"מסספטם מגה" ,":פה0 פםצק" (פהסון0 תצמהצהסמת מו 0 פרק 4: תיבות הודעה ותפריטים | 85 6 לבחו ומבוא ל-ספו בכל פעם שאתה לוחץ על לחצן, מופיעה על המסך תיבת הודעה. למשל, לחיצה על הלחצן הימני של העכבר תגרום להצגת תיבת הודעה על המסך, לדוגמה. ב ₪ בעשע .-וכ11שטי ו טמא 00ב | :ב ||אןבן-1 1 פע | סאבע שו ₪ פשסעם פמט בע 0 סט 4) - -ן ו 0 הו = )טל 36% ססספק = 80000 סשפם. , 'מ0 גפ 588%" "080 בפסשם" -005[) 10-0530208 = מבמספבט תלדמ דפתדפסם בור תרשים 4.1 כפי שאתה רואה, בתיבת ההודעה מופיעים הלחצנים אאסטג, זה ו-06ח19. בהתאם לתגובה שלך, תוצג תיבת הודעה שנייה, שבה יצוין על איוה לחצן לחצת. לחיצה עלל הלחצן השמאלי של העכבר תגרום להופעת תיבת הודעה ובה סמל יעצור". תיבה זר מאפשרת לך להגיב ב-65 אל פא לפני שתמשיך, ערוך ניסיונות עם תיבות הודעה, נסה לגרום להצגת סוגים שונים של תיבות הודעה על המסך שלך.. 3 היכרות עם תפריטים אמצעי השליטה הנפו ביותר בחלונות הוא התפריט. כמעט כל החלונות הראשיים מלווים בתפריט מסוג כלשהו. תפריטים הם פריט שכיח וחשוב ביושומים, ולכן יש. במערכת ההפעלה תמיכה מובנית ומקיפה באמצעי זה. כפי שתראה, הוספת תפריט. לחלון נתון כרוכה בשלבים הבאים. 1. הגדרת התצורה של התפריט בקובץ משאבים. 2. טעינת התפריט כל פעם שהתוכנית שלך יוצרת את החלון הראשי שלה. 3. עיבוד הוראות הנובעות מבחירת אחד הפריטים מתוך התפריט. ככלל, תפריט הרמה העליונה מוצג לאורך חלקו העליון של החלון. תפריטי-משנה יופיעו בתצורה נשלפת (ְטֶס). כל שנאמר כאן אינו חדש עבורך, כי כך נוהגים ברוב התוכניות. לפני שנמשיך, חשוב להבין מהס משאבים וקבצי משאבים. פרק 4: תיבות הודעה ותפריטים | 87 4 כיצד להשתמש במשאבים מערכת ההפעלה חלונות מגדירה מספר סוגים נפוצים של עצמים כמשאבים (095זט8050). בעיקרון, משאבים הס עצמים המשמשים את התוכנית שלך, אך הוגדרר מחוצה לה. בין אלה ניתן למנות פריטים כגון תפריטים, סמלים, תיבות דו-שיח וגרפיקת מפת-סיביות. הואיל ותפריט נחשב למשאב, עליך להבין מהס משאבים בטרם. תוכל להוסיף תפריט לתוכניתך. משאב הוא עצם הנוצר בנפרד מהתוכנית שלך, אך מתוסף לקובץ ₪%6 כאשר התוכנית. שלך מקושרת. משאבים נשמרים בתוך קבצי משאבים ₪69 8950008), שהם קבצים. בעלי סיומת 86. ככלל, שם הקובץ אמור להיות זהה לשם קובץ ההפעלה של התוכנית. לדוגמה, אם התוכנית שלך נקראת 06.5%5א2, קובץ המשאבים שלה צריך להיקרא ב חלק מהמשאבים הם קבצי טקסט שאתה יוצר בעורת עורך הטקסט הרגיל. משאבי טקסט מוגדרים בדרך כלל בתוך קובץ המשאבים. משאבים מסוגים אחרים, כגון סמלים, קל יותר להפיק בעזרת עורך משאבים 50001 8650₪65), אבל יחד עם זאת, חובה לאזכר אותס בקוב המשאבים הקשור ביישום שלך. קבצי המשאבים המובאים. לדוגמה בפרק זה הס קבצי טקסט רגילים, כיון שתפריטים הס משאבים המבוססים. על טקסט. קבצי משאבים אינם כתובים ב- ₪ או ב- ++6, אלא בשפת משאבים מיוחדת, או שפת תסריט 0ק601), ויש להדרם באמצעות מהדר משאבים (ז16קוח0ס 690/65ה). מהדר המשאבים הופך קבצי 86 לקבצי 885 אותם ניתן לקשר (06:) עם התוכניות שלך כיצד להדר קבצי ₪0 תוכניות אינן משתמשות במישרין בקבצי משאבים. כדי שיוכלו לשמש את התוכניות, יש להמיר את קבצי המשאבים למתכונת ניתנת לקישור. לאחר שיצרת קוב 86, עליך. להדר אותו ולהופכו לקובץ 855 בעורת מהדר המשאבים (המכונה לרוב 86.5%5, אבל. אין זו חובה). כיצד בדיוק תהדר את קובץ המשאבים! דבר וה תלוי במהדר שלך. ואת ועוד, בחלק מסביבות הפיתוח המשולבות, שלב זה מתבצע באופן אוטומטי על ידי המערכת. בכל מקרה, הפלט של מהדר המשאבים יהיה קובץ בעל סיומת 885, ווהו הקוב שאותו תוכל לקשר עם התוכנית כדי לסיים את בניית היישוכ לחלונות אפ. % הערה: רצוי לעיין במדריך למשתמש הנלווה למהדר שלך. שס תמצא הוראות כיצד לכלול קבצי משאבים בתוכניות. 8 לבח ומבוא ל-ספו 5 סוגי תפריטים (65קץד טחסו/) שורת התפריט היא למעשה מכולה (ושחוגזחטס) למשאבי תפריט. ככלל, מרכזים את התפריטים בקבוצות שמספקות למשתמש מספר אפשרויות. תוכניות פאאסחז/ו משתמשות בשני סוגים עיקריים של תפריטים: תפריטים עליונים (פטחס! /16%6-קס1), שמוצגים תמיד, ותפריטים נשלפים או מוקפצים (פטח6! ק-פסק) שמוצגים בעת הצורך בלבד. התפריט העליון שנראה תמיד (נקרא גם התפריט "יהראשייי של התוכנית) הוא למעשה קבוצת פקודות שנראות בחלון שורת התפריט כל. הזמן, בהנחה שהתוכנית משתמשת בתפריט. עבור תוכניות מורכבות יותר, ייתכן שלא: יהיה אפשרי או מעשי, להכניס את כל פריטי התפריט לשורה אחת. במקרים אלה התוכניות יכולה להשתמש בתפריטי משנה (פחפוו-500) שמוצגים רק כאשר פונים: לפריט האב שלהם, או שמוצגים תפריטים נפתחים, או נשלפים למטה (פטחס!/ חאוסם-!ול), אד תפריטים הנזרקים למטה (פטחט% חצוסם-קסזם). כשבוחרים. אפשרות מתפריט ראשי כתוצאה מכך נפרש תפריט משנה ש-005חו// מרחיבה באופן אוטומטי, תרשים 4.2 מציג תפריט ראשי פשוט ותפריט משנה. תרשים 4.2: תפריט ראשי פשוט ותפריט משנה. הערה: אל לך לטעות ולהתבלבל, ולחשוב על תפריטים נשלפים (פחפ!! פ000-0) בהקשר של תפריטים תלויי הקשר (פחו 01-5050006 ה0ס) של 1 05 שספרים רבים מתייחסים אליהם כתפריטים נשלפים. תפריט תלוי הקשר הוא סוגג מיוחד של תפריט, אשר נלמד עליו בהמשך. 6 מבנה התפריט וס חוו בונה את תפריט התוכנית בצורה מדורגת, היררכית. התפריט מורכב מפריט. תפריט אחד או יותר, מאפשרות בחירה (חסוקס) אחת או יותר בכל פריט תפריט. ראשי; ומבחירה אחת או יותר בכל אפשרות (והו תפריט-משנה עם אפשרויות משנה, 5חסטקס-59). לדוגמה, תרשים 4.3 מציג מבנה פשוט של עץ תפריטים עבור תוכניתת כלשהי. שים לב למבנה ההיררכי: בתפריטים הראשיים יש מספר משתנה של אפשרויות, ובחלק מהן אפשרויות בחירה נוספות (תפריטי משנה) פרק 4: תיבות הודעה ותפריטים | 89 וס הי 1 0 7 ו ופ 1 ו 0 ד ה 7 הו וו תרשים 4.3: המבנה ההיררכי של תפריטים. חשוב לשים לב שבמבנה תפריט טוב, יש דרך אחת בלבד כדי להגיע לאפשרות מסוימת, או לבחירה מתוך אפשרויות התפריט. השמירה הקפדנית על צורתו ההיררכית של התפריט מגינה על המשתמש מבלבול בבחירה מתוך אפשרויות משנה 509-0000089 בתפריטים רבים. כאשר משתמשים במבנה תפריט המעוצב בקפדנות בצורה היררכית, המבנה שלו בתוכנית צריך להיראות כמו בסכימה של תרשים 4.2 ובתרשים 4.3. סד 6/0 18ס/ ספסוסו ה ו ו 0 תרשים 6.4: התפריט שנראה בתוכנית. 7 יצירת תפריט בקובץ המשאבים ברוב המקרים יוצרים את תפריטי התוכנית בקובץ משאבים. רוב סביבות הפיתוח של ++6 עבור פאוסשחוו מאפשרות ליצור תפריטים על ידי שימוש בטכניקות פשוטות של גרירה ושחרור. עם ואת, חשוב להבין איך התוכניות יוצרות תפריטים במקרה שבו חייבים ליצור תפריט באופן עצמאי. להלן קטע מן התוכנית טח (הנמצאת בשלמותה בתקליטור 608004) המציג דוגמה לבניית תפריט בקובץ המשאבים. ם טופ פפתצע אזסטם " פטפספ אזסטם צאט עפד ,"1%אשם" ממצצטופות וג 0 לבחו ומבוא ל-ספו פפמל 10% ,"ו9656ש" שטפסק אזסמם ממפצז ‏ %פ: ,"81 מסמ1" ממפצטו כפלז 15% ,"82 1:68" ממפנטופע 1" מפפצטו מצד מםז ,"83 מש וג "68610" פטפס -- שטספת 10% ,"...11086108קקת /8 סטסמה6" מפענטוות מגט סוט במספר סעיפים שיבואו בהמשך תבחן בפירוט את ההגדרות שתשתמש בהם להנדרת. תפריט בקובץ המשאבים; גס תבחן כיצד להשתמש בהגדרות אלו בתוכנית. בסעיף 4.8 שבהמשך תראה איך משתמשים בקובץ המשאבים במתארים (5ז06501010, או מילות. מפתח) 2070 ו-ואפדנטאפוי. חשוב לשים לב לכך שהמתאר 0150808866 שראית. בדוגמה הקודמת אומר למקשר של המהדר (ז8א1/0 %ז6ווחטס) שיש צורך למחוק את. מידע המשאבים המקורי אודות התפריט, לאחר שהתוכנית רושמת את התפריט במחלקת החלון. כמעט תמיד נשתמש במתאר 0150380815 עם הגדרות התפריט, כדי לשמור על שטחי הזיכרון ולשפר את מהירות עיבוד התוכניות. 8 המתארים 00 ו-ואם דנטאטוא בסעיף קודם ראית שהחלק המתאר את התפריט בקובץ המשאבים מתחיל בהוראה 85618 ומסתיים בהוראה סא5. תיאור תפריט יכול להכיל כל מספר של פריטים מסוג' קטקסק או מסוג אפחוטאטוו. עם ואת, צריך להיוהר מליצור יותר מדי תפריטים ראשיים, כי ייתכן שלא יהיה לכולם מקום בשורת התפריט, גם כשהחלון בגודלו הרגיל. בחלק של תיאור התפריט, המתאר קטקס מציין את החלק הראשי, העלוון, של התפריט. לדוגמה, בסעיף הקודם ראית שהפריט 16% נמצא בתפריט הראשי של התוכנית. השימוש בתו (4) בתוך המחרוות מציין שהמשתמש יכול להשתמש במקשי מהיר (ץ65 ז3609/6300) בצירוף א ולא בעכבר, כדי להפעיל את הפריט שנבחר בתפריט. פעמים רבות מתייחסים המתכנתים למקש המהיר כמקש קיצור של המקלדת 50100 6/00310א). במקרה של הפריט 5%ד, המקש המהיר הוא +. קוב המשאבים משתמש במתאר אפזוטא8!! כדי להגדיר כל פריט בתוך התפריט. לדוגמה, בתפריט המתאר את !1690 בסעיף 4.7 יש שלושה פריטי תפריט: פריט 81, פריט 92 ופריט 3, שים לב שבכל פריט יש התייחסות לקבוע, ועבור פריט %1 הקבוע שמתייחסים אליו הוא 1ו₪ד1 %פ1. בעורת הפונקציה 06וק6ח/ התוכנית תלכודד תחילה את ההודעות מסוג סאאואוא60 אצ. לאחר מכן, מילת הסדר-הנמוך של הערך. חובּזפקי שהפונקציה 06זל0חו מקבלת, מכילה את הקבוע המזהה את פריט התפריט. שנבחר על ידי המשתמש. לדוגמה, כדי לבחור באפשרות 1ואפד1 %פ1, התוכניתת פרק 4: תיבות הודעה ותפריטים ‏ 91 תשתמש בשתי הוראות 0/ו5. ההוראה הראשונה היא לאימות סוג ההודעה כ-סואויוזוס6 .61% ההוראה השנייה בודקת את הערך של וחזגלאו כדי לאמת את הפריט התפריט שנבחר על ידי המשתמש היה פריט 41 לפניך הקוד המתאים. ( וט . + סוס 0 856 ( (ט 0 )160 [ 1 1 56 0+ חספ // עפצ 1% 856 0+ עסמ // 9 הוספת תפריט לחלון היישום הגדרת תפריט בקובץ המשאבים (%0) אינה מספיקה להפעלת התפריט, או להצמדת התפריט לחלון היישום. בדרך כלל מצמידים תפריט היישוס להגדרת מחלקת החלון. שבפונקציה חומ!אחועו לפני שקוראים לפונקציה 86060855 כמו שראית בסעיפים. קודמים. וכור שקבעת בתחילה ערך לשדה 6וחגו!טחס!פק| במבנים 355 ספאאו ו-556%/ סְא/, כדי לבצע קישור מוקדס. הפונקציה ₪6081970855 תשייך עכשיו את. שם התפריט לכל חלון שהתוכנית תיצור ממחלקה זו. באפשרותך גם להשתמש בפונקציות 07696060 ו-טח1030%/6 כדי להצמיד את התפריט לחלון. כשקוראים לפונקציות 00%%חו/616319%, באפשרותך לקבוע לפרמטר שחס!זח את הערך שהפונקצייה טח1080%6 מחזירה. אחר כך תקרא לפונקציה עח10301%6 עם שם התפריט מתוך קובץ המשאבים כפרמטר של הפונקציה, כמו שתראה להלן ( אמות 108 == (מב בק )48 ; ("טאפואופםז" ,%פה1) 08 = תפסא ("טםאס.0" ,תו 0 = שת לבסוף, באפשרותך להשתמש בפונקציות טח6א560 ו-שח103016 להצמדת תפריט לחלון. אחרי שתיצור את החלון. עליך לקרוא לפונקציה טח6/ו56 עם הידית טחשאח כפרמטר. טח560%6 מקשרת את התפריט שהידית טחשאח מצביעה עליו אל חלון היישום שפתוח. כרגע, כפו שמוצג להלן ( ו 0 2 לבח ומבוא ל-ספו 0 שינוי תפריטים בתוך היישום בסעיפים קודמים למדת להשתמש בשיטות שונות כדי להצמיד תפריטים ליישום. אך מעבר לעניין תכנון תוכניות 6ס0חו)ו, אתה עשוי לפתח יישומים מורכבים יותר שנדרש בהם שינוי של התפריט כשהיישום מפעיל. ממשק התכנות 801 32ּחו// מספק. אוסף של פונקציות שאפשר להשתמש בהן בתוכניות, כדי לשנות תפריט בזמן פעולת. היישום. חלק מהפונקציות האלו נמצאות בנספח 1. ככלל, הפונקציות מאפשרות לשנות כל אלמנט תפריט לאחר שהצמדת את התפריט לחלון. 1 הודעות שנוצרות על ידי תפריטים בכל פעם שהמשתמש בוחר באחד מפריטי תפריט כלשהו, פאס0חו שולחת. את ההודעה. סאאויוווס6 ואו. אל לולאת ההודעות של התוכנית. בלולאת ההודעות. שבתוכנית צריך לבדוק את מילת הסדר-הנמוך של הערך וזזפסוי (וכור, הערך שמכיל. הפרמטר וחפזפלוו הוא מסוג סס/ופ), כדי לקבוע איוה פריט תפריט נבחר. ככלל, ההודעה סאאואואס6 4% היא היחידה ש-5אוס6חואו שולחת. לתוכניות כתוצאה מבחירת פריט בתפריט התוכנית. אס המשתמש בוחר פריט מתפריט המערכת, למשל, 005חו/ו תשלח במקום הודעה זו את ההודעה סאג/%8ז51500 זאו (שקרוב לוודאי תטפל בה על ידי הפונקציה ססזַו00חו6). ייתכן שהיישום שלך ידרוש מלולאת. ההודעות שתטפל בהודעות טאפואד1א1 אצ ו-קטקסקטאשואד1א1 וא//ו, אשר נשלחות על. ידי המערכת לחלון מייד לפני שהמערכת מפעילה את התפריט (תפריט ראשי או תפריט. נשלף, בהתאם להודעה). תפיסת ההודעות שאפואדזא1 וא ו-קטקסקטאפואדנא ואר מאפשרת ליישום לשנות תפריט או תפריטים, אם תצטרך לעשות זאת, מיוד לפני ש-0005חו/+ מציגה את תפריט היישום. התפריט ישלח את ההודעה ד86 188058 ו בכל פעם שהמשתמש בוחר בו פריט. כלשהו. הודעה זו מתוחכמת יותר מההודעה סאאויויו60 4וא,. מכיון ש-05ס6חואר יוצרת אותה אפילו אם פריט התפריט אינו פעיל (66ו8830). עס זאת, בדרך כלל משתמשים בהודעה ד56 188056 וזו רקי כדי להציג תפריט עורה תלוית-הקשר. הפעל את התוכנית חפ הנמצאת בתקליטור. 2 הוספת מקשים מהירים תכונה אחרונה שנדון בה לפני שנניח לנושא התפריטים, היא מקשים מהירים. מקש מהיר (/68 זסוגז0606) הוא מקש שאתה מגדיר, ואשר הקשה עליו גורמת לבחירה. אוטומטית באפשרות מסוימת מתפריט מסוים, אף על פי שאותו תפריט כלל אינו מוצג על המסך. במילים אחרות, תוכל לבחור פריט נתון במישרין, על ידי הקשה על מקש מהיר, ולעקוף לחלוטין את התפריט. המונח מקש מהיר מיטיב לתאר תכונה זו, מכיון פרק 4: תיבות הודעה ותפריטים | 93 שבדרך כלל משך הזמן הדרוש לבחירה בפריט מתפריט באמצעות מקש מהיר, קצר מוה הנדרש כשאתה קודם מפעיל את התפריט ואחר כך בוחר ממנו את הפריט הרצוי מקובל גס המונח מקש קיצור (66 זוסאזסח5), במקום מקש מהיר. בדי להגדיר מקשים מהירים עבור תפריט נתון, עליך להוסיף טבלת מקשים מהירים. לקובץ המשאבים של התפריט. המתכונת הכללית לכל הגדרות טבלאות המקשים המהירים היא; תמ :טסה 86 בעפסי [ [מס1טמס] [6קע5,] 1ש1טתשא ,1עסא [6פע>,] 2ס1טמא ,862 [6פע6,] 103טמ6א ,863 [6פע>,] מסנטה6א ,מעשא ו בדוגמה, 3/6 הוא השם של טבלת המקשים המהירים. הפרמטר 66 מכיל את. המקש הגורם לבחירת הפריט, ואילו פזטח6! הוא ערך 15 הקשור בפריט הרצוי הפרמטר ₪06 מציין אם המקש הוא מקש רגיל (ברירת המחדל), או מקש וירטואלי (נדון בנושא וה בהמשך). האפשרויות לבחירה הן אחת מפקודות המאקרו הבאות. זהפטאזסא, דוא, 51 ו--וסהדאס6. דהפטאזסא מונע הדגשה של פריט התפריט הנבחר בעת הלחיצה על המקש המהיר. 81 מציין את מקש אוא, 5111 מציין את מקש. %, ו- 607804 מציין את המקש |שס., הערך של הפרמטר /68 יהיה תו בתוך גרשיים, ערך מספרי המקביל להגדרת המקש כ-- ז0פא, או קוד למקש וירטואלי. אם תשתמש בתו נתון בגרשיים, המערכת תניח שמדובר בתו 85011. אס השתמשת בערך מספרי, עליך להודיע במפורש. למהדר המשאבים שוהו תו 5011, על ידי סימון 85011 עבור הפרמטר 98ש. אם זהו מקש וירטואלי, יש לכתוב צאדףזש במקום 6פף. אס המקש הוא אות רישית בתוך גרשיים, פריט התפריט המתאים ייבחר כאשר המשתמש יקיש על אותו מקש, בעת שמקש 508 לחוץ. אם זהו תו רגיל, הפריט. המתאים ייבחר בעקבות הקשה על אותו מקש בלבד. אס המקש הוגדר כתו רגיל, עם. אפשרות 6/ה, אצי לחיצה על זא והקשה על אותו מקש תגרום לבחירת הפריט המתאים. (אם המקש מיוצג על ידי אות רישית בצירוף 4, אזי יש ללחוץ על ₪/5 ו- 6 יחד עם: אותו מקש כדי לבחור את הפריט המתאים). אך אס ברצונך שהמשתמש ילחץ על מקש. וס ועל האות כדי לבחור בפריט מסוים, הוסף לפני שם המקש את התו * (למשל, א%). מקש וירטואלי (ע8א |גםוש) הוא קוד שאינו תלוי-מערכת. בין המקשים הווירטואליים נמנים מקשי הפונקציות 1? עד 512, מקשי החיצים, ומקשים נוספים. שאין להס הגדרה בטבלת 45011. מקשים אלה מוגדרים באמצעות פקודות מאקרו 4 לבחו ומבוא ל-ספו בקובץ הכותר .סאוו (או באחד מנגורותיו). כל פקודות המאקרו למקשים וירטואליים מתחילות ב- =6/. לדוגמה, פקודות המאקרו למקשי הפונקציות הם 1 אש עד ₪12 -א/. עליך לעיון בקובץ ח.פווסטחואו כדי לברר מהם קודי המאקרו עבור שאר המקשים הווירטואליים. כדי להפוך מקש וירטואלי למקש מחיר, עליך לציין בפרמטר /%6 את המאקרו המגדיר אותו, ובפרמטר פע הקלד זפאד1. כמובן שתוכל. לציין גם דא, 5/1 או 60180 כדי להגדיר את צירוף המקשים הרצוי. להלן מספר דוגמאות. -8011% שַה1פפסעם ע 801608 ; א מש1 ,"ה" 4 698106:ק עם 861606 : א מ / א-06+1 הַה6851פק עמ 861608 ; א 108 ,"ת" ג-316 685389טם עט 561668 ; ענה ,א מש1 ,"ג" 2 אַה1פפסצק עמ 561608 ; א ממד ,2ע אתה 8015682 אַה881שצק עמ 861608 ; שפזאם ,א מז ,2ע אע לפניך חלק מקובץ המשאבים 40606 בתוספת הגדרות למקשים מהירים עבור התפריט שפיתחנו בסעיף הקודם : מתטפ ממתפטסע 5הסצהתתם נמססה טאנפועצ פס שאה אפ 2 צפפעווצ סו , למאצתנעי וטספ פב ,בע אט שתפטאנסא ‏ ,11ספת ,שפד פד מ שתפטאנסא ‏ ,11ספת כשפעד אפ 3 1סתצאסס ( צמאפתנט ,193 פד 4 א תפו סו סט שים לב שהגדרת התפריט הורחבה, כך שיוצגו בה הקישורים בין מקשים מהירים לבין האפשרויות בתפריט. כל פריט מופרד מהמקש המהיר שלו בטאב. קוב הכותר .5סחוו נכלל כאן, מכיון שהוא מגדיר את פקודות המאקרו של המקשים הווירטואליים. 3 כיצד לטעון את טבלת המקשים המהירים אף שהגדרות המקשים המהירים שמורות באותו קוב משאבים כמו התפריט, וש לטעון אותן בנפרד בעורת פונקציית 71 אחרת, הנקראת (10868609630005, שהגדרתה היא ק (סמגת תעפספם ,מפמ1בנֶת מסתשפו00616286028)1ת1080 ממססת פרק 4: תיבות הודעה ותפריטים | 95 הפרמטר וצחזפוחד הוא הידית ליישום, ואילו סופא מכיל את שם טבלת המקשים המהירים. הפונקציה מחזירה ידית לטבלת המקשים המהירים, או ערך וא אם לא ניתן לטעון את הטבלה. עליך להפעיל את הפונקציה ()10304609/613005 מייד לאחר שהחלון נוצר. הדוגמה הבאה מראה כיצד לטעון את טבלת המקשים המהירים של אפוא/וו סת ; ("טופועצע" ,151856תסמ) 108800616586088 = 1שססתת הערך שמכיל הפרמטר 655 ישמש אותנו אחר כך ויסייע לטפל במקשים מהירים. למרות שהפונקציה ()5ז0ו10300609/3 טוענת את טבלת המקשים המהירים, תוכלל התוכנית שלך לטפל בהס (לבצע את הוראתם), לאחר שתוסיף פונקציית 801 נוספת. ללולאת ההודעות. פונקציה זו נקראת ()319%609613101!פחזד, והגדרתה היא (פפסוק1 סמועמ ,נפמסתת ממססהא ,שמשת סומעם) 006102850ת50ב1פממפע מ4 במקרה וה, מכיל הפרמטר שחו ידית לחלון שעבורו יתורגמו המקשים המהירים. 60 הוא הידית לטבלת המקשים המהירים שתשמש לצורך זה. זוהי הידית. המוחזרת על ידי הפונקציה ()1030%609/6130015. ולבסוף, 1655 הו מצביע, המצביע על ההודעה. הפונקציה ()086606130015והופחמזד מחזירה ערך טטזו אם היתה לחיצה על. מקש מהיר, וערך 356 א לא. הפונקציה מתרגמת כל הקשה על מקש מהיר להודעת. סאאויוויוסס יוא מתאימה. כאשר אתה משתמש בפונקציה ()8460963001%ו8ופחזד, על לולאת ההודעות. שלך להיראות כך ((0 ,0 ,תתט ,סָפמ8) 0000055806) שבגמ [ ) ((8₪98 ,נבססתת (תאמ) ע1255300610:800פהב1/)!12 /* בעמסמעסא 01 שפט 8110 */ ;(12:00055200)8080פהבעד /* 8008ה₪1 10 01ע%ה0ם מעוטשע */ ק(58ת8) 6858806אמשט8ס5ום 1 הפונקציה. זס)גז96ס646והופח3זד מתרגמת כל הודעה של טבלת מקשים מהירים (99906סו 307730/6ז3009/6). להודעה: מתאימה מסוג. 00190 אש ולשילוב. של קבועי תפריט. שים לב שהתוכנית בודקת את הפונקציה זס30ז46096פ)מ!פחבזד. כאשר פונקציה זו מטפלת בהודעה, הלולאה לא צריכה לאפשר את המשך הטיפול הרגיל, מכיון ש-ז0ז0ז008600/6הופח3זד קוראת בצורה אוטומטית לפונקציה 6זקנחאו. 6 לבחו ומבוא ל-ספו כדי לנסות את השימוש במקשיס מהירים, תמצא בתקליטור את התוכנית !666, (הבאנו פה רק את הפונקציה ()חוגיוחואו של התוכנית. התוכנית בשלמותה נמצאת בתיקיה: 008004609). פסוותלפונת ,ססהבופחנת מסותצפאנה | תןבעתוא צהפונמנעת 45 16 ,8ת1מ6ה0ק1 תצסלקת,ססתב)פתנטשעפת 0 [ 4 6 ומא | סאאט ספ ; בפססגת ממססהת .01888 שס8ת1ש מ610ב11קמם הנח סג שַב6מַשָבה // ו ;אתהספחט 05 | התתספתם פס 8 /* מס1ששמנת 406ה1ש */ ק00צקה תא (ססהפמותו) ו ₪ 01 0 ₪ /* פסתבספת1 515 0: ש[בהגת /*‏ ;ססהםספמצת ו ;( שממאקפתלפק1 ,ססהבמפחדת )10801000 0 /* 16ע55 00) */ הת 10 10 ו /* 1ע8 צספפגם *] ; (+אססווצוו ה0נסס) (מפטחפט) = בממספף%ס8מעמת סט קסהגומקת52מ1 = במגמטה26פם1 סט /* מחפת פפגנם אממת1א */ ;שממתשםה2פק1 = שהה%פפ2012פק1 סט ( 5 18 | 46 ( ( 06פ )8601466501095! | 15 ( שפמת )תעטם? ] ( ( ₪66 )1906501488ַשה! ) 16 בפבם ;( מפתתת )מעמס? = 6פמנ פרק 4: תיבות הודעה ותפריטים. 7 .610808 ה102:10נקקה תוגה פמ: מ8%בעם // 8 פא 1 2 1 פטס 5 ,0 ,פמטתפטספפט אס ,0 ,פמטתפטספפט אס טא גנט 1 טר ( בחאתו | 11 ( 8155ת )מצמס? ; ("טנפווצוע" ,מפמנת) 1088800616286055 = במססתת ( ה סמ ( חמ )הקט ( (0 ,0 ,תמטא ,8 )0610555846 )שבגמ ו )| ((2086 ,1סססתת ,שתאמ) ש0בעם081סת1260פה8ע !)18 ( 0 )2500500 1פהבצם ספ ;/( מפעבתא פה )תעטםם, 1 לפני שתמשיך לפרק הבא, רצוי שתערוך כמה ניסיונות בתכנות תיבות הודעה, תפריטים ומקשים מהירים. נסה את האפשרויות השונות ובדוק מה הן עושות. אנר נשתמש בתפריטים ובתיבות הודעה במרבית התוכניות שנציג בספר זה, ועל כן חשובב שתרכוש הבנה יסודית בנושא זה. 8 לבח ומבוא ל-ספו פרק היכרות עם תיבות דו-שיתח כשנתבונן היטב נראה שתיבת דו-שיח דומה לחלון נשלף (או חלון קופץ). היא מקבלת. קלט מהמשתמש למשימה מסוימת, כמו למשל, שם קובץ או מחרוות תווים לחיפוש. ההבדל העקרוני בין תיבות דו-שיח לחלונות נשלפים הוא, שתיבות דו-שיח משתמשות. בתבניות (פטוגוקוחפד) שמגדירות את הפקדים פ!סשחס6) שתיבת הדו-שיח מציגה משתמשים בסוג המשאב 018.06 כדי להגדיר תבניות אלו בקובץ המשאביס. באפשרותך ליצור את התבניות גס באופן דינמי בזיכרון בומן פעולת התוכנית. כמו כן, תיבות הדו-שיח פועלות באופן שונה מחלונות נשלפים בכך שהן משתמשות. בפונקציית ברירת מחדל מיוחדת לטיפול בהודעות שמפענחות את הקשות המקלדת, כמו מקשי החיצים ומקש הטבלר א טגז), אשר מאפשרים למשתמש לבחור בקלות. בפקדים שבתיבת הדו-שיח. ככלל, הפונקציה הנוספת לטיפול בהודעות וההצגה של תיבת הדו-שיח עושים את תיבת הדו-שיח לכלי המקובל ביותר לקלט פשוט מהמשתמש ועיבודו תיבות דו-שיח (ואמצעי הבקרה הכלולים בהם) הן נושא רחב. בפרק זה תלמד את יסודות הניהול של תיבות דו-שיח, כיצד ליצור אותן וכיצד לעבד הודעות שמקורן בתיבות דו-שיח. בפרקים הבאים, תשתמש בתיבת דו-שיח כדי לחקור כמה ממרכובי הממשק של חלונות אפ .5 כיצד צעת התקשורת בי 1 כיצד מתבצעת התקשורת תיבת הדו-שיח והמשתמש תיבת הדו-שיח (80% חָטוום) מנהלת את התקשורת עם המשתמש באמצעות פקדים. (פוסשחסס). פקד הו סוג מיוחד של חלון לקלט, או פלט. פקדים נמצאים "בבעלות' חלון-האב שלהם; בדוגמאות המובאות בפרק צה, חלון-האב הוא תיבת הדו-שיח הדוגמאות בפרק זה מתייחסות לשלושה מהפקדים האלה: לחצנים, תיבות רשימה, ותיבות עריכה. בהמשך הספר, נבחן את שאר סוגי הפקדים. פרק 5: היכרות עם תיבות דו-שיח = 99 חשוב להבין שהפקדים האלה מפיקים הודעות (עם כל גישה מצד המשתמש) אך גם' מקבלים הודעות (מהיישום שלך). הודעה שהופקה על ידי פקד מציינת את סוג האינטראקציה שהתחוללה בין המשתמש לפקד. הודעה הנשלחת לפקד מסוים היא למעשה, הוראה שהפקד יגיב עליה בפעולה כלשהי. בהמשך הפרק יובאו דוגמאות. להעברת הודעות מהסוג שתואר לעיל. 2 הגדרת סוגי תיבות דו-שיח בסעיף הקודם למדת שבאפשרותך להשתמש בתיבות דו-שיח בתוכנית כדי לספק למשתמש מידע, וגס לקבל ממנו מידע. יש שני סוגים עיקריים של תיבות דו-שיח תיבות דו-שיח מודאליות 8045 פָטוום. ו003//) | ותיבות ‏ דו-שיח ‏ לא-מודאליות. 8095 130 (1063-חס)! 0 10081655 כשתיבת דו-שיח מודאלית מוצגת על המסך, המשתמש אינו יכול להמשיך ביישום עדד אשר הוא יסגור את התיבה, ובדרך כלל - יקליד נתונים ויאשר, או ילחץ בלחצן כלשהו כנדרש. תיבת דו-שיח מודלית מגבילה את הגישה לשאר החלונות הנראים של היישום. שקרא לתיבת הדו-שיח. עם ואת, המשתמש יכול לעבור ליישומים אחרים בומן שיישום אחד מציג את תיבת דו-שיח מודאלית. תיבת הדו-שיח הפשוטה ביותר מסוג' וה היא תיבת ההודעה (804 655306ו/), שהשתמשת בה בפרקים הקודמים. התוכנית יכולה להגדיר גם תיבת דו- שיח מודאלית למערכת סגו 1003 וחפזפץפ. 5. תיבת דו-שיח מודאלית למערכת משתלטת על כל המסך, ואינה מאפשרת למשתמש לבצע עיבוד כלשהו בכל התכניות האחרות עד שהמשתמש גיב לתיבת הדו-שיח. ההיגיון לשימוש בתיבת דו-שיח מודאלית למערכת הוא רק למקרה של בעיה. רצינית שהמשתמש אינו יכול להתעלס ממנה, כמו למשל, שגיאת מערכת. אפשר ליצור תיבת דו-שיח מודאלית למערכת בשתי שיטות. הראשונה - על ידי הגדרת הסגנון הפסויפ+5 5או בתבנית של תיבת הדו-שיח והשנייה - על ידי שימוש בפונקציה /ו00חו/56057506310 כדי ליצור את תיבת הדו-שיח עצמה. 3 קבלת הודעות מתיבות דו-שיח תיבת דו-שיח היא למעשה חלון (אף שוהו חלון מסוג מיוחד). אירועים המתרחשים. בתוך תיבת דו-שיח נשלחים אל התוכנית שלך בעזרת מנגנון להעברת הודעות המשמש. גס את החלון הראשי. אולם הודעות מתיבת דו-שיח אינן נשלחות לפונקציית החלון. של החלון הראשי. במקום זה, כל תיבת דו-שיח שתגדיר תודקק לפונקציית חלון משלל עצמה, שנהוג בדרך כלל לכנותה פונקציית דו- שיח (חסטסחו ָסוו0). הגדרת פונקציה. זו צריכה להיות כך (מובן ששם הפונקציה נתון לבחירתך). ,655496 צאט ,ממ זתו8) סמו (ממצגת1 (ותתתק1 ,מבתגקט אתתתפר 0 הכפהו ומבוא ל-ספו כפי שאתה רואה, פונקציית דו-שיח מקבלת את אותס פרמטרים כמו פונקציית החלון. של החלון הראשי. עס זאת, היא שונה מפונקציית החלון הראשית בכך שהיא מחזירה. ערך טש או 56וג!. בדומה לפונקציית החלון של החלון הראשי, פונקציית חלון של תיבת דו-שיח תקבל הודעות רבות. אם הפונקציה מעבדת הודעה מסוימת, היא תחזירר ערך פטו. אס היא אינה מגיבה להודעה, היא תחזיר ערך 56 ככלל, כל פקד הכלול בתיבת דו-שיח יקבל מספר זיהוי משלו. כל פעם שהמשתמש מפעיל פקד נשלחת הודעה לפונקציית הדו-שיח, ובה יצוין מספר הויהוי של אמצעי הבקרה וסוג הפעולה שנקט המשתמש. הפונקציה תפענח את ההודעה ותנקוט את הפעולה המתאימה. תהליך וה והה לדרך שבה מפענחת פונקציית החלון הראשית של התוכנית את ההודעות שהיא מקבלת. שלא כמו תיבת הדו-שיח המודאלית, שומן פעולתה מוגדר, באפשרות תיבת הדו-שיח הלא-מודאלית לקבל וגם לאבד את מיקוד הקלט (פטסט! וופח1), כלומר, תיבת דו-שיח לא מודאלית יכולה להיות חלון פעיל או להיות חלון לא פעיל (כמו לדוגמה, בעת חיפוש במעבד התמלילים 6זס//). לתיבת דו-שיח לא-מודאלית יש ומן פעולה לא מוגדר. מכיוון שתיבת דו-שיח לא-מודאלית יכולה להיות חלון לא פעיל, התוכניותת שמשתמשות בה חייבות לוודא שניתנת האפשרות גם לתיבת הדו-שיח לקבל את ההודעות שנשלחות אליה. בדרך כלל תבנה לולאת הודעות עבור תוכניות שמכילות. תיבות דו-שיח לא-מודאליות, כמו שבדוגמה שלהלן ( (0 ,0 ,תתטת ,ספמ8) 0000555806) שבגמ |[ ((8888 ,0061685מבפמ) 55806ש0ף1810ם9ד || 1555שבסמפנתת) 45 [ ( 5050 ) 2500055800 נפתבפק פם בצורת הבניה המקובלת, הערך 65פַסּיִפַָח = מציין =ידית לתיבת הדו-שיח הלא-מודאלית. ‏ אם תיבת הדו-שיח הלא-מודאלית אינה פתוחה כרגע, הערך א חיוב. להיות ‏ ₪01 הפונקציה 10/3166 קובעת אם הודעה מ-6005חו+. מיועדת לתיבת הדו-שיח. אם כן, הפונקציה תשלח את ההודעה אל פונקציית תיבת הדו-שיח שמטפלת בהודעות, ולכן הפונקציה 0%659306)הפחמזד והפונקציה 030%699306פו לא יטפלו בהודעה. פרק 5: היכרות עם תיבות דו-שיח | 101 4 כיצד ליצור תיבת דו-שיח פשוטה תיבת הדו-שיח הראשונה שניצור תהיה דוגמה פשוטה שתכיל שלושה לחצנים: 866, הז ו-09ח63. לחיצה על לחצן 866, או על ח66ז6 תגרום להפעלת תיבת הודעה שתציין איזה לחצן נבחר. התיבה תעלם מהמסך בעקבות לחיצה על לחצן /63066. בדוגמה זו ובשאר הדונמאות בפרק זה, לא נעשה שימוש רב במידע שמעבירה תיבתת הדו-שיח. עס ואת, יש בחן כדי להדגים היטב את התכונות העיקריות של תיבותת הדו-שיח שישמשו אותך ביישומים שתכתוב. 5 קובץ המשאבים של תיבת הדו-שיח גם תיבות הדו-שיח הן משאבים הכלולים בקובץ המשאבים של התוכנית. לפני שתפתח. תוכנית העושה שימוש בתיבות דו-שיח, עליך לבנות קוב משאבים המגדיר תיבות דו-שיח. רכיבי תבנית תיבת הדו-שיח הגדרת תיבת דו-שיח מתחילה בהוראה 06.א01, שנכתבת לפני סדרת משאבי הפקדים. של תיבת הדו-שיח. המבנה הכללי של תבנית תיבת הדו-שיח דומה לתבנית המשאב שהשתמשת בה בסעיפים קודמים, כדי לתכנן תפריטים ופריטי תפריטים. המבנה הכללי של תבנית תיבת הדו-שיח 690% ,01800 ,קסצ ,165% םנמההת0פנם הסנתנק 611168מ16מם אץ56 | ... | 162ץ5% | 161ע56 פס מתצח " 18100ם" אסצעפגס אס "שתפוטתסם" ,5126 מהסע א ,סז ,165% ,10 1סע6ה00 ,"108ק8ס בסטסמסס" 1שמעצ1סע6הסס סא ,מש ,סז ,165% ,18 01ע0006 ,"0806108 בסטטמסס" 1שמעעבסעםהסס 61 ,מ%צ ,סז ,165% ,10 1סע6ה00 ,"108ק08 בסטסמסס" 1שמעצ1סע6הסס סא ,מש סט 81060006 הוא שם תיבת הדו-שיח. הפינה השמאלית-העליונה של התיבה תהיה בנקודה סד ,19 מימדי התיבה נתונים על ידי הפרמטר חז0ו/ו והפרמטר חח 2 זקא2כחווו ומבוא ל-ספו טבלה 5.1: טגנונות נפוצים לתיבות דו-שיח. הערך הפעולה שואי הססון 5 | יוצר תיבת דו-שיח מודאלית. 806% 5/ | כוללת קו מתאר אסזזק אס פא | כוללת פס כותרת. 10 5 | יוצר תיבת דו-שיח בסגנון חלון-בן קטקסק פע | יוצר תיבת דו-שיח בסגנון חלון קופ' 90%פקזויןא3ו. 5+ | כולל לחצן הגדלה. א680קזווזאזו 5 | כולל לחצן הקטנה שאשופ+5 5 | כולל תפריט מערכת. קסד85 אד וו | בחירת פקד בלחיצה על סד 85 או | התיבה נראאית כשהיא פעילה. ההגדרה 6קעדוסשחס6 מתייחסת לאחד מסוגי חלונות הבן שאפשר להשתמש בהם כדי ליצור פקדים בתיבת דו-שיח. ההגדרה 6קץזוסשחס6 חייבת לכלול את אחד הערכים. שברשימה המפורטת בטבלה 5.2. טבלה 5.2: הערכים האפשריים עבור הכניסה שקץדוסעוחס6 בהגדרת תיבת הדו-שיח. סוגי פקדים אפשריים הו הויו ו 0 זופדווסם | = אסדדטשאפטקפפס הווי הפצו ו 6 הי ג לפניך תיאר קצר של הסוגים. , אסדדטט פס אס סד סנס לחצן (חסטטום חפם) הוא פקד שהמשתמש ילוח עליויי (על ידי לחיצה בעכבר, או הקשה על מקש טגד עד שהלחצן הרצוי מואר, ולאחר מכן הקשה על זפוחט) כדיי לחולל תגובה מסוימת. לדוגמה, לחצן 0% שבו אנו משתמשים ברוב תיבות ההודעה, הוא פקד מסוג יילחצן". , תיבת סימון (804 00606) מכילה פריט אחד או יותר, ולצידם סימן "'*" (או אחר), או מקוס ריק. אם הפריט מסומן, פירוש הדבר שנבחר. אם תיבת דו-שיח מכילה. יותר משתי תיבות סימון, ניתן לבחור ביותר מפריט אחד. פרק 5: היכרות עם תיבות דו-שיח | 103 צ + > כפתור רדיו (חפזוטפ 83000) הוא בעיקרו של דבר תיבת סימון. ההבדל הוא, שניתן לבחור באפשרות אחת בלבד בכל פעם, ללא קשר למספר הכפתורים המוצגים. כפתור רדיו הוא תיבת סימון המוציאה מכלל אפשרות (טאופט/0א5) כל תיבת סימו. אחרת. תיבת רשימה 800 151) היא תיבה ובה רשימת פריטים, שהמשתמש רשאי לבחור. באחד מהם (או ביותר). תיבות רשימה משמשות בדרך כלל להצגת פריטים, כמו. שמות קבצים. תיבת עריכה (803 /86) מאפשרת למשתמש להקליד מחרוות תווים. תיבות אלו. מכילות את כל המאפיינים הנחוצים לעריכת טקסט. לכן, כשהתוכנית מבקשת. מחרוזת תווים, היא מציגה לפני המשתמש תיבת עריכה ומחכה עד שיסיים. להקליד את המחרוזת הרצויה לו. תיבה משולבת (803 חסטמחוטחוסס) היא צירוף של תיבת רשימה ותיבת עריכה. פס גלילה (ז88 ו/500) משמש לגלילת הטקסט בחלון. פקד סטטי (וסזוחס6 5/31) משמש ליצירת פלט טקסט (או גרפיקה) מהמשתמש, אך אינו יכול לקבל קלט. יצירת תבנית לתיבת דו-שיח בסעיף הקודם למדת על הגדרת המבנה הכללי של תבנית תיבת הדו-שיח, שכללה מטפר מרכיבים חשובים. ייתכן, שיהיה לך יותר קל להבין את הגדרת תיבת הדו-שיח, אס תנתח הגדרה של תיבת דו-שיח פשוטה, כמו בדוגמה שלהלן. (דוגמה זו תשמש אותנו ליצור תיבת דו-שיח ראשונה) 14 6 0 ,20 ,20 מממתסהה50נם הסמגנם 00מת1פסמט אסנעפגס ₪5 | מתמנפנע פ₪ | פטקסק פא | םאתתפתתססון פם מתצדם טאפואפצפ פוף "01810 טע" א10פטהס "86516 585 פע" ,8 פאסע [ 4 5ס64",1ת" ‏ אספצטמאפטטטמם 7 14, ,טא 100,"מ66טם" 7 פסצפמתד ₪5 | מנמצפנט פא | סמצמס פא ,"030061" פסצפמתת ₪5 | מנמצפנט בא | סמזאס פוף מ 5 | ספזאס פף קת2פח/וו ומבוא ל-0פו ההגדרות שלעיל יוצרות את תיבת הדו-שיח שמוצגת בתרשים 5.1 כשמסתכלים מקרוב על תיבת הדו-שיח שנוצרה, קל מאוד להבין את הרכיבים שלה המפורטים בקובץ המשאבים המוגדר. כל הוראה שבבלוק ההגדרות 506-חו899 יוצרת. פקד נפרד. הראשון הוא לחצן ברירת המחדל. לחצן זה מואר אוטומטית כאשר תיבת. הדו-שיח מוצגת. לפניך התצורה הכללית של הכרזה על לחצן. [6ע56 ,] משנשא ,מ6בגא ,ל ,א (סצפע ,"הַת1ע50" אסצצטממפט בדוגמה זו מכיל הפרמטר חַ50 את הטקסט שיופיע על הלחצן. 9810 הוא הערך הקשור אל הלחצן. הו הערך המוחזר אל התוכנית שלך עם כל לחיצה על הלחצן. הפינה השמאלית-העליונה של הלחצן תמוקם בנקודה +,א, וגודלו של הלחצן יהיה עלל פי ההגדרות בפרמטרים וטו ו- חִפַז. הפרמטר 58/6 קובע את אופיו המדויק של הלחצן. ‏ כדי להגדיר ‏ לחצן ‏ בעל סגנון ברירת מחדל, השתמש במשפט אסדדטפהפטקימס. למשפט וה פרמטרים והים לאלה של הלחצנים הרגילים (רק שהערכים 1885107 וו ו- אסדדט ופט 85 כבר כלולים בו, כך שנחסך הצורך להגדיר את סוג הפקד והפרמטרים שלו). ההוראה האחרונה בבלוק משתמשת במוהה 10031065 כדי ליצור את הלחצן פחסם. בדרך כלל, מציבים את המוהה 1204808 לכל לחצן שאמור לסגור את תיבת הדו-שיח, מבלי לשמור שינויים במקומות אחרים. הגדרת הרכיבים של תיבת הדו-שיח לפני פירוט הגדרות הפקד, תיבת הדו-שיח מגדירה מאפוינים סטנדרטיים משל עצמה. לדוגמה, תיבת הדו-שיח 551018.06ד בקטע הקודם, מתחילה עם חמש השורות הבאות. 6 ,0 ,20 ,20 מממהסההספצס סתגדם ססמתזסלטמט | אסנטפתס ₪5 | מתמנפדט פח | פטקסק פח | מאהתפנהססון ם מתצצם טסוו צ: "03810 6פשע" א10עפגס "56215 פהגם פע" ,8 פאסע פרק 5: היכרות עם תיבות דו-שיח | 105 השורה הראשונה מציינת את תיבת הדו-שיח עם המוהה 1851018.06. בשורה גם מוגדרים המידות של תיבת הדו-שיח. בדוגמה הקודמת, תיבת הדו-שיח מתחילה ב- 20. יחידות 080 למטה (פווח 83560 סָסוצום, יחידת מידה בתיבת דו-שיח להגדרת מיקום. וגודל) ו- 20 יחידות 080 משמאל לשפה השמאלית של שטח הלקוח בחלון הקורא (כלומר, הפינה השמאלית-העליונה של התיבה תהיה בנקודה [20,20] יחסית לשטח הלקוח של החלון). רוחבה של תיבת הדו-שיח הוא 180 יחידות 280 וגובהה - 70 יחידות ַ08. השורה השנייה והמשכה בשורה השלישית, מגדירות את הסגנונות שתיבת הדו-שיח משתמשת בהם כשהיא נוצרת. באפשרותך להשתמש בסגנונות החלון, אלה שמתחילים. ב-05 או 05 כסגנון של תיבת דו-שיח. צריך לכלול תמיד את הסגנון 151815 פ כדר לגרום להצגת תיבת הדו-שיח, ואי אפשר להשתמש בסגנונות 116808 5 אר אהו פאר משתמשים במילת המפתח אס1זק6, כמו שרואים בשורה הרביעית, עם תיבות דו-שיח שכוללות בהגדרת הסגנון שלהן את הסגנון אסזזקא6 5וו. ככלל, צריך לתת כותרת לתיבות הדו-שיח משתי סיבות: ראשית, הכותרת מוכירה למשתמש את מטרת. תיבת הדו-שיח; ושנית, היא מאפשרת למשתמש להזיז את תיבת הדו-שיח בתחום. המסך. הקפד לכתוב את המחרות של כותרת תיבת הדו-שיח בין גרשיים. לבטוף, מילת המפתח זו/0? אינה מגדירה רק את צורת הגופן (6/969קע1) שתיבת. הדו-שיח משתמשת בו, אלא גם את גודל כל פקד בתיבת הדו-שיח ואת תיבת הדו-שיח. עצמה. למילת המפתח זא0: תפקיד חשוב בקביעת גודלן של תיבות הדו-שיח, מכיוון ש-פווסחוו מחשבת את יחידות ה-080 כחלק יחסי מגודל הגופן. עבור רוב תיבותת הדו-שיח, גופן בגודל 8 נקודות, כמו 56 ח53 5א, זו בחירה טובה. חייבים לוודא ששם הגופן שנכתב בתוך הגרשיים זהה לשם הגופן שמוגדר במערכת; אחרת, קוב המשאבים לא יעבור את ההידור כנדרש. הגדרת הפקדים של תיבת דו-שיח (אספצטם ,באספצטם 100 ,"עס880 ש'טסצ 15 מפטע" מסמפאסס 12 ,66 ,45 ,םצאס פא | פסצפמתל פ₪ | אסצלטמאפטק 8 יטפמפטטי וסצטם 100 ,"עסקפא שט'טס 15 מפטק" א 4 שתי ההגדרות מקובלות; אך, כמו שלמדת כבר בדוגמאות הרבות שהיו לך עד כה, עליך לבחור באחת השיטות, או הנוחה לך יותר, ולהתמיד בשימוש בה בקוב המשאבים. עבור הפקדים עם פרמטר הרשות 58//6, הבחירות כוללות את הסגנונות 85707 פא ו-68007 05. הסגנונות 1885107 5 ו-ק680 5/ו שולטים בפעולת ברירת המחדל. של ממשק המקלדת, כמו שמוסבר בסעיף 5.8. צריך להשתמש באופרטור 08 (|) הפועל. על סיביות (9ס 810/86) כדי לשלב בין כל הסגנונות שאתה קובע לפקד. 6 זקא2פחווו ומבוא ל-ספו 6 הצגת תיבת דו-שיח עם המאקרו אספַפָסוגּום למדת שמגדירים בקובץ המשאבים את תבנית תיבת הדו-שיח. בסעיף זה ובמספר סעיפים אחריו, תלמד על שיטות שונות שאפשר להשתמש בהן להצגת תיבות דו-שיח. מבין כל השיטות האפשריות, השיטה הפשוטה ביותר היא באמצעות המאקרו אספסָטּום. מאקרו זה יוצר תיבת דו-שיח מודאלית ממשאב של תבנית תיבת דו-שיח. 1380 אינו מחציר שליטה לתוכנית שקראה לה, עד שפונקציית המשוב המוגדרת. מסיימת את תיבת הדו-שיח המודאלית על ידי קריאה לפונקציה 500 (תלמד יותר על הפונקציה חש בסעיף 5.14). המאקרו אספָסמ משתמש בפונקציה וזה קא80סָסו01, = שדומה לפונקציה 0103160058 המוסברת. בסעיף ‏ 5.12 בפירוט. ההגדרה של המאקרו 13/0980 היא כמו בדוגמה זור 48 110090 =006בםפה1 11685108כמם 60 [4חת //‏ ,ססהבמפחדת ,מסותלפאצת הס אסכ 81810 1000118158 // ,66בנקהסצ1 הצפצסקם 1008 צממאס 0 16הממה // מו שאו 0 אס 414109 60 65סמ1סק // שתנפף01410מ1 800פסנם המאקרו אספָטו/ם מקבל ארבעה פרמטרים, כמפורט בטבלה 5.3. טבלה 5.3: הפרמטרים של הפונקציה אס8 ַסומום. פרמטר תיאור הזה | מצהה את מופע התוכנית שקוב)ץ ההפעלה שלה מכיל את תיבת. הדו-שיח. פוגוקוחטדקו | מוהה את תבנית תיבת הדו-שיח. פרמטר זה יכול להיות המצביע. למחרוזת תווים המסתיימת ב-)טא, שמגדירה את שם תבנית. תיבת הדו-שיח; או שהוא יכול להיות ערך של מספר שלם המנדיר את מוהה המשאב של תבנית תיבת הדו-שיח. כאשר הפרמטר. מגדיר מוהה משאב, מילת הסדר-הגבוה חייבת להיות שווה לאפס, ‏ ומילת הסדר-הנמוך חייבת להכיל את המזהה. באפשרותך. להשתמש במאקרו 351188500865/% כדי ליצור ערך זה. העצה | מהה את חלון האב של תיבת הדו-שלח. 6חטסטווסקן || מצביע לפונקציית החלון של תיבת הדו-שיח. אס הקריאה ל-אס8פָסו0. מסתיימת בהצלחה, הפונקציה מחזירה את הפרמטר )]פסח. ‏ התוכנית תשתמש באופן עקבי בפרמטר 86506 בקריאה לפונקציה 609 שסוגרת את תיבת הדו-שיח. אם הקריאה ל-אספפָס00₪. ינה מצליחה, הפונקציה מחזירה את הערך 1-. פרק 5: היכרות עם תיבות דו-שיח | 107 המאקרו אספסָסוום. משתמש בפונקציה א5אוס6חו/63)9/ כדי ליצור את תיבת הדו-שיח, ‏ ואחר כך היא שולחת למאקרו תיבת הדו-שיח את ההודעה פאז ואצ (והודעה דאס*ד56 אוו, בתנאי שהסגנון. זאסזדפ5 05 הוגדר בתבנית). הפונקציה מציגה את תיבת הדו-שיח (ללא תלות בהגדרה של הסגנון זז 5 בתבנית), מעבירה את חלון האב למצב לא פעיל, ומתחילה בלולאת הודעות משלה לקבלת הודעות וביצוען עבור תיבת הדו-שיח. כאשר פונקציית הטיפול בהודעות של תיבת הדו-שיח קוראת לפונקציה פָטוסטת6, אספִסטבום הורסת את תיבת הדו-שיח, מסיימת את לולאת הודעות, מחזירה את חלון. האב למצב פעיל (אם הועבר למצב לא פעיל קודם לכן), ומחזירה לחלון שקרא לה את. הפרמטר ו/פפח. 7 לולאת ההודעות של תיבת הדו-שיח כשיוצריס תיבות דו-שיח, תיבת הדו-שיח משתמשת בפונקציית הודעות משלה, ולא בפונקציית ההודעות של 06זלחא שחלון האב משתמש בה. ייתכן, שבתוכניותת שתכתוב יהיו פונקציות הודעות שונות, אפילו כמספר תיבות הדו-שיח שיש בתוכנית, פונקציה אחת עבור כל תיבת דו-שיח. באפשרותך לתת כל שם שתבחר לפונקצייתת ההודעות, מכיון שאתה מוסר את כתובת הפונקציה בכל פעם שאתה יוצר תיבת דו-שיח. לדוגמה, בסעיף 5.9 בתוכנית 80%פוס תיבת הדו-שיח נוצרת על ידי הקריאה הבאה של הפונקציה אספחָומום. ; (00עפ1פ9656 (ססתקסתם) ‏ ,8מות "68601810" ,מפהנה) אספטסנגגצם הפרמטר האחרון, המצביע אל פונקציית ההודעות, מורה ל-פאוס0חואו לאן צריך לשלוח. את ההודעות שמיועדות לתיבת הדו-שיח. כפי שניתן לראות בקטע הקוד הבא, פונקציית ההודעות של תיבת הדו-שיח מבצעת טיפול דומה לוה שמבצעת הפונקציה ב ,סאגו עוגנ ,טנסמ מואשג) ססמס4ָנפ+פשע אסתמננתס ענטפמתג (8ש8ע1 עתתהק1 ,ממשבקא עתהתקור ( וט |[ 10 0 96 ספ וס 0 56 ( ב 0 )160 [ + 1008 856 ; ( 190% ,טנס )8100פתט סע 8 ז7א2כחוו ומבוא ל-ספו 100 856 ; ( מפסוות0פ1 ,טנס 8100 פה וצ 1 אפפ ה ( מפתתת )מצמ? 1 במקרה של פונקציית ההודעות של תיבת הדו-שיח שקטע הקוד מפרט, הפונקציה בודקת שתי הודעות בסיסיות: 06אזסדנא1 יו ו-סאוהואואס6 א/ו. כאשר הפונקציה. מקבלת את ההודעה 06 אזסזזו1 !ו, היא לא עושה כרגע כלום. כאשר הפונקציה מקבלת את ההודעה סא(יויו00 %, היא בודקת את הערך של מילת הסדר-הנמוך של הפרמטר וחּזפאו. כידוע לך, מילת הסדר-הנמוך של הפרמטר זאו מכילה את. הקבוע של הפקודה שנבחרה על ידי המשתמש. כשהמשתמש לוחת בעכבר על א0 (ו-חזמזקוו מכיל את הקבוע 1006), הפונקציה מחזירה 100%. עם ואת, כשהמשתמש לוח בעכבר על 63601 (ו-וחזפקאי מכיל את הקבוע 0003%/08, הפונקציה סוגרת את. תיבת הדו-שיח מבלי לשמור את השינויים שהמשתמש עשוי היה לעשות בתיבה. 8 השימוש במקלדת עם תיבות די כבר ראית ש-פוווסטחווצ תומכת במנגנון לוגי מיוחד לטיפול בתיבות דו-שיח, המתבטא בפונקציית תיבת דו-שיח לטיפול בהודעות. תמיכה זו כוללת גם אמצעים לבחירת פריטים בתיבת הדו-שיח על ידי הקשות מקשים כתחליף ללחיצות בעכבר. אפשר לחלק את הלוגיקה שבתוכנית לשימוש במקלדת לשלוש קבוצות: מקשים מהירים (מקשים חמים, 65/5 ₪00), שבעורתם בוחרים פריטים בחלון בשיטת "(אות)+שואי" כתגובה לפעולת הטבלר (80ז), אשר מעביר את המיקוד בין הפקדים, או כתגובה למקשי החיצים שנס הם מעביריס מיקוד בין הפקדים ובתוכס. -שיח הענקת תמיכה בתיבות הדו-שיח לצירוף "(אות)+16י' של המקלדת נעשה באותה דרך. שבה השתמשת עבור פריטי תפריט. בתוך מחרוזת הטקסט של הפקד צריך להכניס את. התו "8" לפני האות שרוצים להשתמש בה בצירוף ההקשה. לדוגמה, ההגדרה הבאה מיועדת עבור הפקד ווסדד055005%80, והיא משתמשת בצירוף ההקשות 6+0א כמקש. קיצור להפעלת הלחצן "הוחו" ,"אספצטמ" ,פאס 100 ,"4081856198" מסתפאס 2 ,48 ,66 ,45 ,סמצאס ₪5 | קסלפטתץ פוף | אסצצטממפטטפמס 8 פרק 5: היכרות עם תיבות דו-שיח | 109 לפעמים המשתמשים ימצאו שהשימוש בפקדי מקלדת נוח יותר מאשר לחצן העכבר. אולם כמו כל שאר האמצעים האחרים שעומדים לרשות המשתמש להפעלת התוכנית. בקלות, צריך להיוהר ולא להגדיר יותר מדי מקשים מהירים, מכיוון שהדבר רק עלולל לבלבל את המשתמש, ולא לעוור לו. כדי לתמוך בפקדי מקלדת בתיבות דו-שיח, חייבים. לקבוע מספר אלמנטים בתבנית תיבת הדו-שיח, ובכלל זה הסגנונות. קסד 5 ו-6₪07 פע הסגנון 148507 5/ מסמן כל פריט שמקבל את מיקוד הקלט כאשר המשתמש מקיש. על 130 או 80ד+0ח5. הסגנון סטסה6 5// מסמן התחלת קבוצה. כל הפריטים הרשומים בשפת תסריט בקובץ המשאבים עד להגדרת הסגנון הבא של 680 5אא, הם חלק מקבוצה אחת. המשתמש יכול להשתמש במקשי החיצים כדי לעבור בין הפריטים בתוך הקבוצה, אך הוא אינו יכול להשתמש במקשי החיצים כדי לעבור מקבוצה אחת לקבוצה אחרת. 9 תוכנית ראשונה ליצירת תיבת דו-שיח נציג את התוכנית השלמה ליצירת תיבת דו-שיח. כאשר התוכנית אס8פום הנמצאת. בתקליטור 6905 מתחילה לפעול, מוצג בשורת התפריט רק התפריט ברמה העליונה. על ידי בחירה באפשרות !60ד, המשתמש גורם להצגת תיבת הדו-שיח. מרגע. שתיבת הדו-שיח מוצגת על המסך, בחירה באחד הלחצנים תגרום לתגובה מתאימה. מסך לדוגמה נראה בתרשים 5.2, 6 1 טר 3 תרשים 5.2: פלט לדוגמה של התוכנית הראשונה ליצירת תיבות דו-שיח. 0 הכפהו ומבוא ל-ספו 1808 1106 ".סמנ" שמ1סה1 (132א) ‏ 4681868 415 מטתץ 32אנון 15 6ת44611 8 מפנתפ 32אצאן 15 440116 3 (0%80000000 > ()ה10פעםע600) (נססם) ₪6 32אצת פד ב 6 (צא 15) !) (001פ)/ 54 32אצא 15 325אנא 15 שה40661 ( (4> () 06606+5108) הסאס )דעס ) 2 15 56 ((25באדא 15)! 66 (עא 18)!) (נססם) ‏ 95אנא 15 שה40661 =סממספת1 מהמעעטם // = קמפחדת מסאתלפאצת ;"אסמטנס" = שהפאסקתפפק1 תפפסק1 "809 19108" 151 98פפספג ( 16 *55הןסטוחן 7פאא00 | 95ת018%0201ה מססם פסאותלפאונ ,ססהבםפהנת מסותצפונא ) ת|בעתגח צתפנמנעת 48 (שסתפ4תסת 186 ,סהנמנתסק1 הל5דק1 (סתם6פתנטםעקת 4 6 זוה | פא 55 תספות .01858 אסהת1א מ1108:10סקב מגגת שת5 שש6פ1מה // ו 8 ;אהתספתט 05 | אתתסטת 08 חא (00הפפוא) = | בסעקבמאתפםב סט = ע6א0188מ6 סט 0 ₪ 1 7 ;( סמגוממת2פם1 ,6סתגםפהדת )18160 0 סה 10 10 ו ; (ב+אמססווצון ה0נסס) (מפטחפה) = בתטספף%ס הפצמה סט קסמגומקת2פמ1 = במגחטהסעפם1 סט קסהגומקת2פק1 = 6הם580%ג2 15201 סט פרק : היכרות עם תיבות דו-שיח 111 2 הלבחו ומבוא ל-ספו פרק 5: היכרות עם תיבות דו-שיח | 113 4 הלבחו ומבוא ל-ספו ,גפ פוא ) וסנת אסממננתס ענטפמתת ה צאט הבטבטור שתפתפוו (198580 שתפתס 1 0156 655896 11 ₪ 56 ; (פטתע) םצע ב | ( (מ8צבפא) פתסא10) מ160פ 190 0886 0 ,בסה ) 40110 207 17 תעגל ; (98185) מעמםשע 1 שים לב למשתנה הגלובלי זצחזח. משתנה זה מקבל עותק של ידית המופע הנוכחיי המועברת לפונקציה ()חוגאחו\. הסיבה לקיומו של משתנה זה היא, שתיבת הדו-שיח. וקוקה לגישה לידית של המופע הנוכחי. תיבת הדו-שיח לא נוצרת במסגרת הפונקציה. ()חומ!וחו/+, אלא בפונקציה ()06זקח/ו, ולכ יש ליצור עותק של פרמטר המופע, כדי שניתן יהיה לגשת אליו גם מחוץ ל-()חוג!/חווו. 0 אתחול נתונים בתיבת דו-שיח בסעיף 5.7 למדת על פונקציית ההודעות של תיבת הדו-שיח, שמטפלת בהודעות. ש-פווסחו/ שולחת לתיבת הדו-שיח. במקרה של התוכנית 0%פ0/, פונקצייתת ההודעות מאתחלת את הפקדים (בערך שנמצא במשתנה הגלובלי), ולפי הקלט שהיא מקבלת מהמשתמש, שומרת את הערך של הפקד, במשתנה הגלובלי המתאים. פונקציית ההודעות משתמשת בפונקציות 504001910 ו-זא5001676. כדי לאתחל את הפקדים של תיבת הדו-שיח, ובפונקציות +ח9001ז6010/1 ו-61 664001007 . - כדי לקבל את ערכי הפקדים. פעמים רבות תשתמש בפונקציות אלו בתוכניות, כדי לאתחל את הפקדים ולקבל את הערכים שהם מכילים. להלן ההגדרות של פונקציות. אלו פרק 5: היכרות עם תיבות דו-שיח | 115 מס1פנפמדה 6ת1 ,מנפת סאאא) 6מ1ת565010156 מססם (519086 008 ,פט1גטגר עעאצט הנפצה 186 ,גתמ סאמוט) %א565010160056 מססם ; (56+188מ1 הצפצסקת מזףנפמדה 6ה1 ,מנפת סאאא) 6ה1ת010166 :00 ; (519066מ .001 ,0818866פלק1* תססם 01015פ1ת 186 שעמ סאמחם) 16 ת0 01016 (סהוסס<אגאה %ה1 ,מַתועמפמ1 הצפצסקם שים לב ששתי פונקציות 561 מחזירות ערך ו800, שמציין את הצלחת הפונקציה או כישלונה; וכך, שתי פונקציות 66 מחצירות ערך דאזט (6ספזה1 פחפפחט). עבור הפונקציה אַדוחפו1/פ601, הערך המוחזר מצייןך את מספר התווים שהפונקציה העתיקה למאגר פָחז5ק!. טבלה 5.4 מפרטת את הפרמטרים עבור ארבעת הפונקציות. ומראה את הפרמטר המתאים לכל אחת מהן. טבלה 5.6: הפרמטרים של הפונקציות זח1ו90ז5640/01, 61 7וח8ז560001, זח1רת0 664001 001 פרמטר פונקציות תיאור סח | 564 | מציין את תיבת הדו-שיח שמכילה את הפקד. ב 0 ביר הזזה | = וחזוחפנזטַו5610 | מגדיר אוה פקד לשנות. :564 | מגדיר את הפקד שצריך לקבל ממנו את הערך. 0 ביר טוט | = 56:01 | מגדיר את הערך של מספר שלס אשר מתייחסים. לספרותיו כמחרוזת טקסט שתוצג בפקד (בקיצור, מציג את המספר שיוצג בפקד). 6פ | 561000015 | מגדיר אם הפרמטר טוט מסומן (5/9096) אר לא מסומן (66ח0פחש). עבור זח660/010611, הוא: מגדיר אס הערך המוחזר מסומן או לא מסומן. אס פרמטר זה הוא 6זד, אז טוט מסומן. אם. פרמטר זה הוא סטזד והערך של טוט קטך מאפס, זח1וח9ז500001 מציבה את הסיימן מינוס. לפני הספרה הראשונה של המספר. אם פרמטר. זה הוא 5/96, טוט לא מסומן. 0 6 זקא2פחוו ומבוא ל-ספו פרמטר פונקציות. תיאור וכו | א דוח6ו5600/01 | עבור 76%6וחט5910/011, ַח50כ! מגדיר את. המחרוזת שצריך להציג בפקד. עבור 007ו6910/1, הוא מגדיר מאגר עבור המחרוות שבה הפונקציה מציבה את הערך. המוחזר מהפקד. (אות ראשונה - 6 | 6100100708 המדק | = +ח1ה100ס6610 | מצביע למשתנה בוליאני שמקבל את הערך שמציין הצלחה (פטזז), או כישלון (9356) של. הפונקציה. פרמטר זה הוא רשות, ויכול לחיות. וטא. כאשר ערכו -וא, הפונקציה אינהה מחצירה מידע על הצלחה או על כישלון. (אות ראשונה -.6) +חט60אמ!אח | זאסדוחסו01ו660 | הפונקציה מגדירה את הגבול של מספר התווים. שתקרא מהפקד למאגר המחרוזת שמוצבע על ידי 3 1 המאקרו 0080601310 בסעיף 5.6 השתמשת במאקרו אספָסוּ כדי ליצור תיבת דו-שיח מודאלית ממשאב של תבנית תיבת דו-שיח. גם למדת שלפעמים צריך ליצור תיבות דו-שיח לא מודאליות, בנוסף לתיבות המודאליות. באפשרותך להשתמש במאקרו 0309000 כדי ליצור תיבות דו-שיח לא מודאליות. המאקרו 09306000 יוצר תיבות דו-שיח לא מודאליות ממשאב של תבנית תיבת דו-שיח. המאקרו פַט6163190%0 משתמש בפונקציה. ,0763001300073‏ שמוסברת בפירוט בסעיף 5.12. את המאקרו 0310800 כותבים על פי ההגדרה שלהלן. ו שסת8ספה1 ה110210קקג 50 ב1החגת // ,פסהבמפחדת ,מסתתצפאצ בתפת 18%6קמסם אסם 812108 1868011168 //‏ ,ש6בנקתסלק1 הצסדס. 108 עשתאס 50 ב1מתמת // 0 חאו סוחו סק אסם 818108 0 עבטת1סק //‏ 6מ0ת100ג1סק1 ססתפםנת לו ניתן לראות, שהמאקרו פָ010390/30 מקבל ארבעה פרמטרים. המאקרו מָט9003ו0/63. משתמש בפונקציה 000/5חו/9%ו63ז0. כדי ליצור את תיבת הדו-שיח. אחר כך, 00ו6/03090/3 שולחת את ההודעה 111018606 ואצ (וגם. את דאסד55 א, א הוגדר בתבנית הסגנון זא5610 05) אל מאקרו תיבת הדו-שיח המאקרו מציג את תיבת הדו-שיח אם הוגדר בתבנית הסגנון 151815 א/+, ולבסוף = 0 מחזיר את ידית החלון של תיבת הדו-שיח. פרק 5: היכרות עם תיבות דו-שיח = 117 לאחר חזרה מהמאקרו חָט9ו6163190, היישום משתמש בפונקציה 00600 להצגת ‏ תיבת הדו-שיח (אם עדיו לא הוצגה). היישום משתמש בפונקציה 6170/0000 כדי להרוס את תיבת הדו-שיח. כדי להבין יותר טוב את הטיפול שמבצע חָ/6163190, התבונן בתוכנית 190 076866 שבתקליטור המצורף לספר זה (בתיקיה 608005). כאשר המשתמש בוחר באפשרות 7690, הפונקציה 06זק0חאצ יוצרת תיבת דו-שיח לא מודאלית פשוטה, כמו בקטע הקוד שלהלן 896 100 855 + (90661695ףנת!) 6+ ,וס "מַ269501810" ,6פהדת)096866018108 = 461658סעפנעת 2( 1656109906 (80800/) (%גסצם כאשר המשתמש בוחר באפשרות !1990, התוכנית פס .676866 בודקת כדי לקבוע אם היא מציגה כרגע את תיבת הדו-שיח הלא מודאלית. אם כן, היא אינה מבצעת עיבוד, אם לא, פַסופו ‏ 66866 משתמשת בפונקציה 003090 כדי להציג את תיבת הדו-שיח הלא מודאלית. 2 הפונקציה ו3ז0708+60131003 בסעיף 5.6 למדת להשתמש במאקרו אספַסְָטמום כדי ליצור תיבות דו-שיח מודאליות, ובסעיף 5.11 למדת להשתמש במאקרו 016390300 כדי ליצור תיבות דו-שיח לא מודאליות. כאשר חייבים ליצור תיבות דו-שיח לא מודאליות, אפשר להשתמש גם בפונקציה וח5ז3(0073ו6/63060. פונקציה זו (שהמאקרו 016319080 קורא לה כחלק. מהעיבוד שהיא מבצעת) יוצרת תיבת דו-שיח לא מודאליות ממשאב תבנית של תיבת. דו-שיח. הפונקציה וַבּזקְסט9ו6163190 מאפשרת גס להעביר ערך שמוגדר על ודל היישוס (פטו8/ 060066-חסוו63ופא), אל מאקרו תיבת הדו-שיח בפרמטר הזלו של ההודעה 06.זסדזא1 א/+. באפשרות היישום להשתמש בערך הפרמטר וחמזגק! כדר לאתחל את פקדי תיבת הדו-שיח. משתמשים בפונקציה ?6763060130 בתוכניותת, כמו בדוגמה הכללית הזר 1 630 עפומו 066גמפה1 ה1108510מתג 50 616הגמ // ,ססהגמפחדת ,מסאתלפאצת 591866 אסכ הַ81810 1000118158 //‏ ,שתבאב6בנקהסצמ1 הצפצסקת 1008 פפתאס 0 18הממת // חאו וחור 6עטססספם אס ח6ַ41810 60 עמת1סק // = סמנתטס1ג1ממ1 ססתפם זת שטנפט 6108ב2ו181ט1ת1 // עבק 1ה1א3 אתתתקם / הפונקציה 6163190030 מקבלת חמישה פרמטרים. הפרמטר וח8ז3קח1 מגדיר את הערך שצריך למסור לפונקציית תיבת הדו-שיח בפרמטר הפקו של ההודעה 06זסדזא1 א 8 הכח ומבוא ל-ספו הפונקציה ו3ז0103190₪/0075. משתמשת בפונקציה 6163160606 כדי ליצור את תיבת הדו-שיח. אחר כך, 6103060107 שולחת אל פונקציית תיבת הדו-שיח את. ההודעה 111018606 א (וגם את זאסד56 שו אם הוגדר בתבנית הסגנון זווסזד56 25). הפונקציה מציגה את תיבת הדו-שיח אם הוגדרה בתבנית הסגנון 5 א/צ. לבסוף, 093000030 מחזירה את ידית החלון של תיבת הדו-שיח אם: הצליחה ליצור את תיבת הדו-שיח. אחרי ש-6:63/90₪/0003738 חוזרת, היישום משתמש בפונקציה 500106006 להצגת. תיבת הדו-שיח (אם עדיין לא הוצגה). היישום משתמש בפונקציה 0050001000 כדר לפרק את תיבת הדו-שיח. כדי להבין יותר טוב את מהלך העיבוד שמבצעת הפונקציה. 616310010/00773, התבונן בתוכנית 018109 076866, שנמצאת בתקליטור המצורף. לספר (בתיקיה 8006559285). כאשר המשתמש בוחר באפשרות 1650, הפונקציה 6 יוצרת תיבת דו-שיח לא מודאאלית פשוטה, כמו שרואים בקטע הקוד שלהלן פפע 10 6486 ( 0861688פנסת! ) 48 ,"2656018108" ,56מ1ה)05686601810028588 = 0461658ע16עת ( משום1 (מעתהתק1) ,506 1ם65%ץ(ססהק0תם) ‏ ,מא 8%שצ התוכנית ַס015. 676866 מגדירה מבנה (6וע60טזו5) מסוג אזא160פ, כדי להחזיק בר את המצב הנוכחי עבור כל לחצן שבתיבת הדו-שיח, כמו בדוגמה זו 665 0 0 מ [ כאשר מתבצע אתחול לתוכנית (כלומר, כאשר הפונקציה 0067706 מקבלת. את ההודעה 685815 או התוכנית מקצה ידית למופע (69חפזפח1) של המבנה. כאשר המשתמש בוחר באפשרות !165, התוכנית מעבירה ידית זו כפרמטר אחרון בפונקציה הק ף .616319013/0‏ הפונקציה 105%0/07106 מקבלת: את הידית בפרמטר וחגזמקו ומשתמשת בערכים, כדי לאתחל את מצב הפקדים בתיבת הדו-שיח. פרק 5: היכרות עם תיבות דו-שיח | 119 3 ברירת המחדל לטיפול בהודעות של תיבת דו-שיח למדת שחובה ליצור בתוכנית פונקציית טיפול בהודעות תיבות הדו-שיח כדי לטפל, ולעבד, את ההודעות ש-פווסחוו שולחת לתיבות הדו-שיח. למדת שפונקציית תיבות. הדו-שיח לטיפול בהודעות מבצעת צעדים דומים לפונקציה 06ז7חאו, שמטפלת בהודעות החלון שבתוכנית שלך. כשלמדת על הפונקציה 6זק0חא, ראית שהתוכניות. צריכות להגדיר תמיד את פונקציית ברירת המחדל של פאוסטחו/. לטיפול בהודעות. (00זקאו00חו//00), במשפט 0356 האחרון של הוראת ח860/א5, כפי שמוצג להלן. 1 ((מ8פבפ1 ,ה8צבקא ,ענ ,ומ סה 3 6ם) הפוסל אס אתה מגדיר מחלקת חלון (0899 אוסטחואו) נפרדת כדי ליצור את חלון תיבת הדו-שיח, עליך גם להגדיר פונקציית ברירת מחדל לטיפול בהודעות של תיבות הדו-שיח, כמו שאתה נוהג בחלון הבסיסי. כדי להגדיר פונקציית ברירת מחדל לטופולל בהודעות עבור תיבות הדו-שיח, עליך להשתמש בתוכנית שלך בפונקציה 6סזקְטָום. הפונקציה 6ְִקַפְָם מבצעת את טיפול ברירת המחדל בהודעות עבור פונקציית חלון. ששייכת למחלקת תיבת דו-שיח שהוגדרה על ידי היישוכ 613 66ח660-חסו3ס!וסם. 5 א00). משתמשים בפונקציה 06/0/9706 בתוכניות, כפי שמוצג בדוגמה הכללית שלהלן. 6פף6901ס ענטפטג אסט 818108 60 16ממת // ,ףנפת פוא 8 צאט +6סשהגעגן 0בַ8פפטת 6פצן? // תפר 666%ח858ם ₪886 560088 // 194988 אתתתסם / הפונקציה 06/0/7106 קובעת את ברירת המחדל של מחלקת החלון שהוגדרה עבור תיבת הדו-שיח. פונקציה זו מספקת טיפול פנימי לתיבת הדו-שיח על ידי משלוח ההודעות לפונקציית תיבת הדו-שיח וטיפול ברירת מחדל לכל הודעה שפונקציית תיבת. הדו-שיח מחזירה כ-56ו3ח. יישומים שיוצרים פונקציות חלון מותאמות אישית עבור תיבות הדו-שיח המותאמות אישית, משתמשים לפעמים בפונקציה 0610/9766 במקום. בפונקציה 0600060106 לצורך טיפול ברירת המחדל בהודעות. יוצריס ביישומים מחלקות תיבות דו-שיח מותאמות אישית, על ידי הצבת מידע מתאים במבנה 01/455סא/ו ועל ידי רישום המחלקה על ידי הפונקציה פ5ספופה. חלק מהיישומים משתמשים בפונקציה 6610/2910 להצבת הערכים במבנה ולקביעת. שם תיבת הדו-שיח שהוגדרה. במקרים כאלה, היישום מגדיר לפחות את האיבר 6ו095581:פק1 לפני שהוא רושם את. המחלקה. בכל המקרים, אתה חייב לקבוע את ערך האיבר 69000603 של המבנה 5 פושו לפחות כ-האזאפ/סא1.601ס, עבור תיבות דו-שיח מותאמות אישית. 0 הכפהו ומבוא ל-ספו אסור לפונקציית תיבת דו-שיח לקרוא לפונקציה 0610706 ; כי הדבר יגרום להפעלה. רקורסיבית (ח₪4000 506זו860). כדי להבין יותר טוב את הפעולה של הפונקציה 6, התבונן בתוכנית אופ61, שנמצאת בתקליטור המצורף לספר וה (בתיקיה 0559285קח0). כאשר מתבוננים בהגדרת הפונקציה 67106חו, צריך לשים לב שההודעה 6855 אא במשפט 50/0608 מאתחלת את מחלקת תיבת הדו- שיח 0955 804 חָסוום).. הגדרת. המשאב עושה את תיבת הדו-שיח למחלקה נפרדת, כפי שמוצג להלן 0 ,0 ,0 מממתסהה50נם הסמגדם 00מת1סצסמל | מאתהקנהססון 5 מ טמפאפצפ פא ספת | תה מו 5 | פטפסק "018108 טשפ" א10פטתס "56215 פח58 פע" ,8 פאסע "פנסשטנם" פפתמס א 000 100 ,".01ש6ה0ם אסם אסשמס" ‏ אספאסטאס 39,, ""מסטטם 4410" 080508 | תטסתם 5א,13,32,37,10,נסצסתת 286",100גע" 'סנסת הת 5 0 ספ 56608",100" | אספעטמ0נסת 68005 116,8,50,14,₪5,מפסמסס0,"שתסס" 7 סט כשמפעילים את התוכנית 619 ובוחרים באפשרות /16%, התוכנית תשתמש במחלקה פָספטו8 כדי ליצור את תיבת הדו-שיח. עבור כל הודעת 5אוס6חוא שתיבת. הדו-שיח אינה מטפלת בה, 97106ו6/0 קוראת לפונקציית ברירת המחדל לטיפולל בתיבת הדו-שיח (במקרה של התוכנית ַפָופ6פ, פונקציית ברירת המחדל היא ב 4 סגירת תיבת הדו-שיח - פַס!001ח5 בסעיפים קודמים למדת ליצור ולהציג סוגים שונים של תיבות דו-שיח. ראית בקודד שהוצג בסעיפים אלה שחייבים להשתמש בפונקציה 5000/8/00 לסגירת תיבת הדו-שיח. המודאלית. הפונקציה טָסוו00ח5 מפרקת את תיבת הדו-שיח המודאלית, והדבר גורם. למערכת לסיים כל טיפול בה. משתמשים בפונקציה פָס0חפ כפי שמוצג להלן 0 אסט 818108 60 16שממת // ,ףנעמ סאא פמ 60 שטבמט // 6 / פרק 5: היכרות עם תיבות דו-שיח | 121 הפרמטר פופו הוא שם תיבת הדו-שיח שהפונקציה פָס60/9ח8 צריכה לפרק. הפרמטר. 6פפח מאפשר לתוכנית להגדיר ערך מוחור מהפונקציה שיצרה את תיבת הדו-שיח אל היושוס הקורא. אתה חייב להשתמש בפונקציה 8060/00 כדי לפרק תיבות. דו-שיח שיצרת על ידי הפונקציות 013/0080%, וחמזהקאספָטומום, ז66זוטחזאסם טסוו אר 0110010737 ח1אס8מָסומו. היישום קורא לפונקציה 8603 מתוך פונקציית תיבת. דו-שיח. אל תשתמש בפונקציה 50% לכל מטרה אחרת. פונקציית תיבת דו-שיח יכולה לקרוא לפונקציה פָט₪00 בכל זמן, אפילו בומן הטיפול בהודעה 06)אזסזזא1 ואוו אם היישום קורא לפונקציה פָטוסח8 בומן הטיפול בהודעה 11101806 !+ פאוסטחו/ו מפרקת את תיבת הדו-שיח לפני שהיא: מצינה אותה, ולפני שהיא מעבירה את מיקוד הקלט (פטסס: זשוסח1) לתיבת הדו-שלח. וח אינה מפרקת את תיבת הדו-שיח מיוד. במקום זה, היא קובעת דגל ומאפשרת לפונקציית תיבת הדו-שיח להחזיר את השליטה למערכת. המערכת בודקת. את הדגל לפני שהיא מנסה לקבל את ההודעה הבאה מהתור של היישום. אם הפונקציה חָסוו60ח6 קבעה כבר את הדגל, המערכת מסיימת את לולאת ההודעות, מפרקת את תיבת הדו-שיח ומשתמשת בערך שנמצא בפרמטר שפסהח כערך מוחזר מהפונקציה שיצרה את תיבת הדו-שיח. 5 כיצד להוסיף תיבת רשימה נמשיך ונבחן את תיבות הדו-שיח על ידי הוספת פקד לתיבת הדו-שיח שהגדרנר בתוכנית הקודמת. אחד הפקדים הנפוצים ביותר, אחרי הלחצנים, הוא תיבות רשימה (80 :15). להלן ההגדרה הכללית של משפט א115180: [16ע56,] תפַגשא ,140 ,צ ,א ,סזם: אספשפנב במקרה זה, פ181 הוא הערך המגדיר את תיבת הרשימה. הפונה השמאלית-העליונה. של התיבה תמוקם בנקודה +,א, וגודל התיבה יהיה על פי ההגדרות של הפרמטר שטוו והפרמטר זחחסא. הפרמטר 58/6 קובע את הסגנון המדויק של התיבה (ערכי 6 המשמשים אותנו פה הס אותס ערכים המופיעים בטבלה 5.1 כדי להוסיף תיבת רשימה, עליך לשנות את ההגדרה של תיבת הדו-שיח בקוב המשאבים | 108180686 = (הקבצים | לפני | השינויים | מופיעים = בתיקיה 0030051:5190715). הוסף תחילה להגדרת תיבת הדו-שיח את תיאור תיבת הרשימה המובא להלן. | פמנאס 5 | צפנצסן 185 ,75,28,96,39 ,11 סז אסמלפזת פסצפמתל ₪5 | ננסספט פא | תפתתסם ₪5 | מנמצפנט פא עתה, הוסף להגדרת תיבת הדו-שיח את הלחצן הבא: ,509 פפד,"ם1געת 01666" וט 2 זקא2חוו ומבוא ל-ספו לאחר שתכניס שינויים אלה, תיראה ההגדרה של תיבת הדו-שיח כך. 6 ,78 ,20 ,20 מממהסהה50צם בסמגדם 00מתזסצסמ אסנעפגס ₪5 | מנמצפנע פ₪ | פטקסק פמ | מאתתפנתססון פם מתצדם טאפופצ5 פא "018108 מע" א10עטתס "86516 5מ8ס פע" ,8 4 פ4",10שת" | אסלצטמאפטפטמם 4 100,"תטם" פמפטפ 0 פמפטפ 4 16",105טעת 861608" 0 פספפפתע פא | מנסהספט 181,75,28,96,39,05 סד 1 ב- לבסוף, עליך להוסיף לקובץ ח.5180%! גם את פקודות המאקרו האלו 12 0 3 55 ספ 906006 1 1 מגדיר את תיבת הרשימה שצוינה בהגדרת תיבת הדו-שיח שבתוך קוב המשאבים. 56181 100 הוא ערך 10 של הלחצן ₪1 56166. עקרונות בסיסיים בהפעלת תיבות רשימה כשאתה משתמש בתיבת רשימה, עליך לבצע שתי פעולות בסיסיות. ראשית, עליךך לאתחל את תיבת הרשימה כאשר תיבת הדו-שיח מוצגת לראשונה. כלומר, לשלות לתיבה את הרשימה שתוצג בה (לפי ברירת המחדל, תיבת הרשימה תוצג כשהיא ריקה). שנית, לאחר שתיבת הרשימה אותחלה, תצטרך התוכנית שלך להגיב בכל פעם: שהמשתמש יבחר בפריט כלשהו מתוך הרשימה. תיבות רשימה מפיקות סוגים שונים של הודעות. הסוג היחיד שישמש אותנו כאן הוא: ההודעה 081618 18%. הודעה כזו נשלחת כאשר המשתמש לוח בעכבר לחיצה כפולה. על אחד הפריטים ברשימה. הודעה זו מוכנסת לתוך (וחפזבקא)סהסא1ה כל פעם. שמופקת עבור תיבת הרשימה הודעת 603 א (חובה לכלול בהגדרת תיבת הרשימה דגל בסגנון צזזדסאז 185, כדי שתוכל להפיק הודעות מסוג 0810 אפ)) לאחר שנבחרה אפשרות מסוימת, עליך לבחון את תיבת הרשימה כדי לגלות איז פריט נבחר. פרק 5: היכרות עם תיבות דו-שיח = 123 שלא כמו הלחצן, תיבת רשימה היא אמצעי בקרה המקבל ומפיק הודעות כאחד. תוכל. לשלוח לתיבת רשימה מספר הודעות שונות, אולם בדוגמה שלנו, נשלח רק את שתי ההודעות שלהלן. שם המאקדו הפעולה 6וזחד5ס סא .18 | מוסיף מחרוזת (בחירה) לתיבת הרשימה 681008586 18 | מבקש את האינדקס של הפריט שנבחר 6 8 היא הודעה המורה לתיבת הרשימה להוסיף לרשימה מחרוות מסוימת. כלומר, המחרוות שצוינה הופכת לפריט נוסף בתיבה. מייד תראה כיצד להשתמש בהודעה זו. ההודעה 651008581 18 גורמת לתיבת הרשימה להחזיר את האינדקס של הפריט שהמשתמש בחר מתוך הרשימה. כל מספרי האינדקס של תיבות. רשימה מתחילים בסיפרה 0 (על כן, הפריט השלישי ברשימה יקבל אינדקט 2). כדי לשלוח הודעה לתיבת הרשימה (או לכל פקד אחר), השתמש בפונקציית זַא בשם. ()5660101000%1695306, שהגדרתה היא 1 ,70 15 ,את וא) 5586ש/ה60 5680101 באס (מ8שג10 מותתתס1 ,מבעבקו עתהתפוו הפונקציה ()000160%/655306ח56 שולחת את ההודעה שמכיל הפרמטר 100 לאותור פקד (בתיבת הדו-שיח), אשר מספר 10 שלו מופיע בפרמטר 15. הידית לתיבת הדו-שיח. נמצאת ב-חאוטח. כל מידע נוסף הדרוש להודעה כלול בפרמטרים וחבּזפק ו- וחזפק המידע הנוסף, אם ישנו, משתנה מהודעה להודעה. אם אין מידע נוסף להעברה לפקד, ערכי הפרמטרים וחפזגלאו ו-וחפזפק! יהיו שניהם אפס (0). הערך שמחזירה הפונקציה. (179553060חט11ה60ח5 מכלל את המידע המיועד לפא כיצד לאתחל את תיבת הרשימה הואיל ולפי ברירת המחדל תיבת רשימה מופיעה כשהיא ריקה, עליך לאתחל אותה כל. פעם שמוצגת תיבת הדו-שיח שאליה היא משתייכת. פעולה וו פשוטה למדי, מכיון שבכל פעם שמופעלת תיבת דו-שיח, נשלחת לפונקציית החלון שלה הודעת 6 פאז ואצ. לכן, עליך להוסיף את משפט 6356 שלהלן, למשפט 50080 החיצונר שבפונקציה () 165007106 ((5000)%105936). אסם 1186 16121:26ת1 // זפ ,1 מז ,נתמ) 01608655896 1 תס ; ("16ססת" (מותתתפת) ,0 ,הצתצפמסת 1 ,1 10 ,1עמ) 010655896 תס ; ("סטהגעס" (מתתתפת) ‏ ,0 ,הצתצפמסת מ ,1 10 ,עמ ) 1655896 תס ("+גספ"(מתתתפ )1‏ ,0 ,6צתצפמסת 1 ,1 1 ,1עמ) 1655896 הס (מנתתת1) ,0 ,6צהצפמסת 1 6 1 (" ב 4 זקא2פחווו ומבוא ל-ספו קטע זה גורם לטעינת תיבת הרשימה במחרוזות "6וסקה", "ססַחז0", "זבסקיי ו- "906ז6". הוספת כל אחת מהמחרוזות לתיבת הרשימה נעשית על ידי קריאה לפונקציה. ,56000/01060/8655306)(‏ אשר נעשית בעורת הודעת 6אזהדפססא, 8 הפרמטר ?| מצביע בכל מקרה על המחרוזת המיועדת להוספה (חובה להעביר את. הסוג אל 88%ק1). במקרה זה, המחרוזות מתווספות לתיבת הרשימה בסדר שבו נשלחו, אולם בהתאם לצורה שבה בנית את תיבת הרשימה, ניתן לגרום להצגת הפריטים בסדר האלף-בית. אם מספר הפריטים ששלחת לתיבת רשימה עולה על מה שניתן להציג בחלון התיבה, יתוספו לה באופן אוטומטי פסי גלילה אנכיים. כיצד לעבד הודעה על בחירת פריט לאחר שאותחלה, תיבת הרשימה מוכנה לשימוש. בעיקרון, קיימות שתי דרכים לבחירת אפשרות מתיבת רשימה. ראשית, המשתמש יכול ללחוץ בעכבר לחיצה כפולה. על אחד הפריטים בתיבה. דבר זה גורם להעברת הודעת סא8/ויו00 זא לפונקציית. החלון של תיבת הדו-שיח. במקרה זה, מכיל הפרמטר (וזגזפסוא)סהס/1.0 את ה-פ1 הקשור בתיבת הרשימה, ואילו הפרמטר (חהּזבקאו)₪1//080/ מכיל את ההודעה א 810 18%. לחיצה כפולה מודיעה לתוכנית מייד על הבחירה של המשתמש. הדרך. השנייה להשתמש בתיבת רשימה היא לסמן את אחד הפריטים. דבר זה איגו גורם. למשלוח הודעה לתוכנית, אך תיבת הרשימה אוכרת את הבחירה, ומחכה עד שהתוכנית. תבקש לדעת מהי. שתי השיטות מודגמות בתוכנית המובאת לפניך. לאחר שפריט מטוים נבחר מתוך תיבת רשימה, עליך לקבוע מיהו הפריט שנבחר על ידי שיגור הודעת 65100858 .15 לתיבת הרשימה. התיבה תחציר את מספר האינדקס של הפריט שנבחר. אם ההודעה נשלחת לפני שנבחר פריט כלשהו, תחויר התיבה ערך (1-)99 18 כדי להדגים את העיבוד של הודעת בחירה מתיבת רשימה, הוסף את משפטי 659 הבאים. למשפט ה-חסאוא5 הפנימיי (((וחזהקא)0ה0/ו000)1.0ו59). בפונקציה. ()106קוופד. כלי פעם שנעשית בחירה באמצעות לחיצה כפולה על פריט כלשהו, תופיע תיבת הודעה ובה. יוצג מספר האינדקס של הפריט שנבחר. אם המשתמש ילח על לחצן "וז 5160" , תדווח תיבת ההודעה גם על הפריט שנבחר. /* אנסתמק אם1 אס 115% ג 58מססעם */ :181 10 886 501000108 ב שבגח עספט 18 566 // תפס == (3 בא ) פתסאצא) 6+ ,1 1 ,סָנסה) 96882101668068986 = 4 א6ת) 666 // 0 ;(01 ,0 ,ממפהטספמם 1 ;(1 ,"% :15 118% 1 אמסתד" ,צ5)86>תעמפ (06 מז ,"206 ה56100:10" ,ע56 ,מַנסג) 08מ5890פשא ספ פרק 5: היכרות עם תיבות דו-שיח | 125 /* 8564תק תססם בת 16טפת 561665 */ בענטהקנם5 סד 450 ,1 10 ,018ת) 80101660658806ת96 = 4 // 65%)‏ נ(01 ,0 ,ממפהטסצם6 מצ (1- < 1501 ;(1 ,"96 :18 1185 ה1 אסאת1" ,ע80):מת1צקם 8 ("86160%60 מבטפת סא" ,1)858מת1צקב (מס ממ ,"סבג 501500108" (עשם ,נסמ) א4580020שות (%גפצם תיבת רשימה - התוכנית השלמה נמצאת בתיקיה 005115%80ַ68. פלט לדוגמה מתוכנית זו מופיע בתרשים 5.3 ו ור חן תרשים 5.3: פלט לדוגמה הכולל תיבת רשימה. 6 כיצד להוסיף תיבת עריכה הפקד האחרון שנציג בפרק זה הוא תיבת העריכה (גס8 80). תיבות עריכה שימושיות. במיוחד, כי הן מאפשרות למשתמש להקליד מחרוזות תווים לבחירתו. לפני שתוכל להשתמש בתיבת עריכה, עליך להנדיר אותה בקוב המשאבים שלך. עבור דוגמה זו, שנה את הקובץ 6ז-86/680% כך (ראה בתיקיה 86080 פ0קּו0) 6 ,178 ,20 ,20 מממתסההספצם הסמגצם ססמתזלטמט | אסצטפתס פא | מתמנפנט מא | פטקסק פא | האתתפנהמסון 8ם מתצצם טאפאפצ פא "018108 מפשע" א10עפאס פחבם פמ" ,8 פאסע 6 זקתכבחווו ומבוא ל-ספו אזסמם 4 4",105שת" ‏ אספצטמאפטפטמם 14, ,פא ס10,"מ66טם" 7 1 "03061" טפ מתסהספאסצטת 80,28,96,39,58,נצדם ספב ציס פוט גירסה זו מוסיפה לתיבה לחצן בשם 06 א/86, שתפקידו להודיע לתוכנית שסיימת את עריכת הטקסט בתיבת העריכה. היא גם מוסיפה לתוכנית את תיבת הרשימה עצמה. סז של תיבת הרשימה הוא 881 -15. הגדרה זו גורמת ליצירת תיבת עריכה תקנית. לפניך ההגדרה הכללית של משפט דאפדדוס> (56/06,] 861986 ,0106 ,+ ,א ,מדסם פאמצצצתם בהגדרה זו, 5010 הוא הערך המוה את תיבת העריכה. הפינה השמאלית-העליונה שלל התיבה תמוקם בנקודה +,א, וגודלה יהיה מכפלת הפרמטר תושו בפרמטר חטשו הפרמטר 58/6 קובע את הסגנון של תיבת הרשימה (הערכים לפרמטר זה הס אותם ערכים המופועים בטבלה 5.1. כעת, הוסיף את הגדרת המאקרו הבאה לקובץ ח.₪8080%. 107 1 10 3467108 תיבות עריכה מכירות הודעות רבות, ואף מסוגלות להפיק כמה סוגי הודעות. למטרות. דוגמה זו אין צורך שהתוכנית תגיב להודעות. כפי שיתברר לך, תיבות עריכה מבצעות. את פונקציית העריכה בעצמן. כדי לערוך טקסט אין צורך בקשר כלשהו עם התוכנית. התוכנית תחליט מתי מתאים לה לקלוט את תכולת תיבת העריכה. כדי לקלוט את התכולה הנוכחית של תיבת עריכה, השתמש בפונקציית 81 בשם (661010100018460, שהגדרתה הכללית היא קנ (אגעת מם1 ,ע56מ1 תלפק ,ה מה1 ,נקת מאשא)6א6לת₪6001016 צונו הפונקציה גורמת לתיבת העריכה להעתיק את התכולה הנוכחית של התיבה אל המחרוזת שהמצביע פק! מצביע עליה. סז מכיל את הידית של תיבת הדו-שיח הפרמטר 1ח מכיל את המספר המוהה של תיבת העריכה. המספר המירבי של תווים. שיש להעתיק מוגדר על ידי הערך אג!/ח. הפונקציה מחזירה את אורך המחרוזת. כדי להוסיף תיבת עריכה לתוכנית שלנו, הוסף את משפט 6356 הבא למשפט 560 של. הפונקציה ()06זק0/פ65ד. כל פע שהמשתמש ילח על הלחצן 06 86%, יופוע עלל המסך חלון הודעה, שיכיל את הטקסט הקיים כרגע בתיבת העריכה. פרק 5: היכרות עם תיבות דו-שיח = 127 4 תסשסטם אס אסם 5815 */ :א0ם1 50גם /* אסם 2616 סתם 05 68הס:ה0 צ18ם419 :(90 ,58 ,81 10 ,נעת)6א5ע191000ס 65 ;(08 א ,"פת1אמהסס אסם 416ם" ,ע86 ,בנממ) א0מ25200בה 1 מפםם, המאקרו 10% חוא ערך מובנה, המוגדר על ידי הכללת הקוב .5אוסחו/ בתוכנית.. בתרשים 5.4 מופיע פלט לדוגמה הנוצר על ידי תיבת העריבה.. שלוו מאיר תרשים 5.4: פלט לדוגמה הכולל טקסט מתוך תיבת העריכה.. 8 הכחא ומבוא ל-ספו פרק ממשק התקן גרפי 1 ממשק ההתקן הגרפי (10+6718060 66וע26 5סוהכְ3ּז6) ממשק ההתקן הגרפי - 601 (097069ה1 06/68 /65וחק3ז6) הוא. שם כולל לקבוצת פונקציות תיקיה, אשר מספקות ליישומי פאוסטחו/ ממשק גרפי עבור מסך ומדפסות, שאינו תלוי בהתקנים. ממשק ההתקן הגרפי הוא שכבת ביניים בין היישום לבון סוגי החומרה השונים. ממשק ההתקן הגרפי משחרר את התוכניתן מעיסוק בכל סוג של התקן בצורה ישירה, בכך שייתפקיד'' זה מוטל על ממשק ההתקן הגרפי, אשר יפותרי" עבוד התכניתן את בעיית ההבדלים בחומרה. יישום אסטחו מתוכנן היטב מתבצע באותה צורה על כל סוגי החומרה הנוכחיים ויפעל כראוי גם בכל חומרה חדשה שתיווצר בעתיד, מכיון שממשק ההתקן הגרפי "יפתור" כל שוני. למותר לציין, שהממשק צריך להתעדכן מעת לעת, כדי לאפשר את הגישור בין יישוס המשתמש לבין. סוגי החומרה החדשים. כל פונקציות ממשק ההתקן הגרפי ב- ּוו משתמשות בערכים בני 32 סיביות עבור קואורדינטות ממשק ההתקן הגרפי; אך ב- 9% פאוסחוו ו- 32חו//, מערכת ההפעלה. מתעלמת ממילת הסדר-הגבוה, דבר שבפועל גורם לקבלת ערך בן 16 סיביות עבור הקואורדינטות. רק ב- דא פאוסטחוו יכולים היישומים להשתמש בערך המלא בן 32 סיביותת 2 כדאיות השימוש בממשק התקן גרפי כפי שאולי דמיינת לעצמך, התוכניות צריכות להשתמש בממשק התקן גרפי כדי לייצר פלט במובן הכוללני, ולא להשתמש בפלט מבוסס טקסט או בפלט שאינו גרפי. יש סיבות רבות לשימוש בממשק התקן גרפי כדי לנהל את תכולת החלון. להלן כמה מהן. פרק 6: ממשק התקן גרפי ‏ 129 %+ אפשר להשתמש באותו הקשר התקן (פוחס6 6%65) עבור ההתקנים רבים. 1% אפשר לפרמט פלט בהקשר ההתקן, לפני שליחתו אל ההתקן. %+ אפשר לנהל גרפוקה ומידע חזותי אחר בחלון על ידי שימוש בהקשר התקן. 5 אפשר לשלוט בצורה שבה נראה (או מופיע) החלון (אחרי גלולה, שונוי גודל, וכדומה) בקלות רבה יותר, על ידי שימוש בהקשר התקן. באפשרות התוכניות לשלוח בקלות אל מדפסת או אל הקשר התקן אחר כל פלט. שמוקס קודם לכן בהקשר התקן של חלון. רבות מהתוכניות אשר הוצגו לפניך בספר וה השתמשו בהקשרי התקן, כדי לנהל נתונים בחלון התוכנית. בסעיפיס הבאים, נתמקד מקרוב ביתרונות ובשימושים של הקשרי ההתקן. 3 להבין יותר טוב את הקשר ההתקן הכלי הבסיסי ש-פווס6חוו משתמשת בו כדי לספק ליישום אי תלות בהתקן, הוא הקשר התתקן (אטוחס6 9%65) ובקצרה - 06. הקשר ההתקן הוא מבנה פנימי, אשר וס חוו. מנצלת להעברת נתונים להתקן פלט. במקום לשלוח פלט ישירות. אל החומרה, היישום שולח את הפלט אל הקשר ההתקן. פווסוחוא, ולא התוכנית שלך, שולחת אחר כך את הפלט אל החומרה. הקשר ההתקן תמיד מכיל עט (חטל) אחד כדי לצייר קווים, מברשת (8/050) אחת כדר למלא שטחים, גופן טחסז) אחד לפלט של תווים, וסדרת ערכים אחרים לשליטה בהתנהגות הקשר ההתקן. אם היישום דורש גופן שונה, על היישום לבחור את הגופן לתוך הקשר ההתקן לפני הצגת הטקסט. בחירת גופן חדש אינה משנה את הטקסט הקיים בשטח הלקוח של החלון. אפשר לדמות את הממשק שמספק הקשר ההתקן, לסכימה שמוצגת בתרשים 6.1 שלהלן. 0 סוה שה \ 99 וו שש 5 לוו (מסאסוש) ל ו (80085) וו ה 0-77 ₪0 ופפ שש תרשים 6.1: המודל הלוגי של הקשר ההתקן. 0 כו ומבוא ל-ספו 4 הקשרי התקן פרטיים בדרך כלל, יישומים משתפים ומקבלים הקשרי התקן מיד לפנ השימוש בהם, ומשחררים אותם מיד אחרי השימוש. ניהול הקשרי התקן לפרקי ומן קצרים הינו טוב ביישומים שאינס משתמשים לעיתים תכופות בהקשר ההתקן. יישום שוקוק לשירותי הקשר ההתקן באופן מתמיד, יכול ליצור חלון עס הקשר ההתקן הפרטי ששייך לו, עלל ידי הגדרת סגנון המחלקה 50/6 855ס) 6סאעס. 65 במחלקת הגדרת החלון. לאחר הגדרת הסגנון 6אצוס. 65, הקשר ההתקן מתקיים למשך החיים של החלון. היישום. ממשיך להשתמש בפונקציה 6606 כדי לקבל ידית להקשר ההתקן, אבל אינו צריךך להשתמש בפונקציה 861685606 לאחר שהוא מסייים את העיבוד בהקשר ההתקן (מכיו. שהקשר ההתקן הינו "פרטייי שלו). כאשר אתה משתמש בהקשר ההתקן הפרטי בתוכניות שמשנות את הערכים המוגדרים בהקשר ההתקן, אתה גורם לשינויים, כמו צבעי טקסט חדשים, עטים, ומברשות. שינויים אלה נשארים בתוקף עד שהתוכנית משנה אותם פעם נוספת. 5 נקודות מוצא ומדידת מרחק יש להקשר ההתקן שני מצבי מיפוי (0/006 פַוקְקָ/). מיוחדים, 16קסהד150 אוו ו-16ק0הד150א8 ו שאינם מוגבלים לגודל קבוע. שני מצבי מיפוי אלה משתמשים. בשני אזורים מלבניים, החלון (ש60חו/ ואזור התצוגה (וזספווסוו), כדי לגזור גורס. דירוג 9000 הָו563). והכוונה (חסטפזחסוזס). החלון מוצג בקואורדינטות לוגיותת (פסהחו00010 0/631)) ואזור התצוגה - בקואורדינטות פיזיות (08165ו6000 |3סופעחק) יחד הם קובעים איך מערכת ההפעלה ממפה יחידות לוגיות (פווח ו109/63) ליחידות. פיזיות (צוחט וגופעחק). הן החלון והן אזור התצוגה מכילים נקודת מוצא (חַפָזס), ערך א טחפואם->) וערך ע 0ח0ואם-+). נקודת המוצא היא נקודה אשר מתארת את אחת. מפינות מלבן התצונה. נקודת המוצא של אזור התצוגה וז זזספווסו) היא היסט 010960, או מרחק יחסי) מנקודת המוצא של החלון 01 אוסמחו/) ; חפַאם-< הוא. המרחק האופקי מנקודת המוצא עד לזווית שממולה; חפפאפ-צ הוא המרחק האנכי מנקודת המוצא עד לוווית שממולה. וסחוו. מגדירה גור דירוג אופקי על ידי חלוקת )חפואס-% של אזור התצוגה ב- 1ח9ז4פ-א של החלון. 0605 מגדירה גורם דירוג אנכי על ידי חלוקת זחסאאם-ץ של אזור התצונה וחפואפ-ץ של החלון. גורמי דירוג אלה מגדירים את מספר היחידות. הלוגיות אשר פאוסחוו ממפה אותס למספר פיקטלים (פאוק). בנוסף לקביעת גורמיי הדירוג, החלון ואזור התצוגה קובעים גם את הכיוון של אובייקט. פרק 6: ממשק התקן גרפי ‏ 131 6 קבלת הקשר התקן אל החלון התוכניות צריכות להשתמש בהקשרי התקן, כדי לבנות תצוגות גרפיקה וטקסט בשני ההתקנים, בהתקן חלון ובהתקן מדפסת. באפשרות התוכניות להשתמש בפונקציה 6 או 661005 כדי להשיג הקשר התקן עבור חלון. הפונקציה 6610054 משיגה את. הידית של הקשר ההתקן לתצוגה (6פ) עבור החלון המוגדר. באפשרות התוכניותת להשתמש בהקשר ההתקן לתצוגה על ידי קריאות עוקבות לפונקציות ממשק התקן גרפי, כדי לצייר בשטח הלקוח. הפונקציה 661065 היא הרחבה לפונקציה 66106 אשר מאפשרת ליישום שליטה רבה יותר על הדרך והזמן לביצוע גזירה (פַק01) בשטח הלקוח. את הפונקציה 61005 כותבים בתוכנית כמו בהגדרה שלהלן )0660 ספ 01 ש1תמת // וו מע פונס 0% 16מתמת // 1 8 מ68610ט0 6אם)מסס-₪108 // פפסאם אס / הפרמטר שח/וח מצהה את החלון שבו יבוצע הציור. הפרמטר פוסְחפָזו מנדיר אזור גזירה חספ הַוקווס) אשר אולי תחבר אותו עם האזור הגראה (חסוּפָפה 0/9006 של. חלון הלקוח. הפרמטר פס מגדיר כיצד היישום יוצר את הקשר ההתקן. הפרמטר 5 יכול להכיל צירוף כלשהו של הערכים שמפורטים בטבלה 6.1> במקרה שהקשר ההתקן לתצוגה אינו שייך למחלקת חלון, היישום חייב לקרוא לפונקציה ₪9/635606 כדי לשחרר את הקשר ההתקן אחרי צביעה. מכיון שרק חמישה. הקשרי התקן משותפים זמינים לתוכניות בכל זמן נתון, כישלון בשחרור הקשר ההתקן יכול למנוע מתוכניות אחרות את הגישה להקשר ההתקן. שתי הפונקציות. 6 ו661200% מחזירות את הקשר ההתקן ששייך למחלקת החלון, אם התוכנית. מגדירה 6145506 65, 6סאטוס 65, או 6סדאפחאק 65 כסגנון במבנה 355 ספאעו כאשר התוכנית רשמה את המחלקה. טבלה 1., + הערכים האפשריים של הפרמטר 55 עוך פירוש צוספאזשו וש | מחזיר את הקשר ההתקן בהתאם למלבן החלון, ולא בהתאם למלבן הלקוח. 6 06% | מחזיר את הקשר ההתקן מהמטמון (0366), ולא מחלון 6פא/ או 61/45506. באופן עקרוני, ערך זה עוקף ודורס (65שוזזאס) את 6פאאעוס. 65 ואת 6 סאק 6% | משתמש באזור הנראה סומח 6ומ/5ו/) של חלו האב. ערך זה מתעלם מסגנונות האב 0110071 5 ההק 05 61005 קובעת את נקודת המוצא של אזור הקשר ההתקן לפינה. העליונה משמאל של החלון המוגדר על ידי חשח. 2 כו ומבוא ל-ספו עוך פירוש 5 א%ס | אינו כולל את האזורים הנראים של כל החלונות. השכנים שמעל לחלון המוגדר על ידי 6חאוח. אפחם 011801 6% | אינו כולל את האזורים הנראים של כל חלונות הבן שמתחת לחלון המוגדר על ידי חח דה דט5פאסא 0% | אינו מאפס את המאפיינים של הקשר התקן זה. למאפייני ברירת המחדל, כאשר התוכנית משחררת. הקשר התקן זה. פד סקטשוסס 1.0061 6% | מאפשר לתוכנית ולמשתמש לצייר בהקשר ההתקן, אפילו אם יש קריאה ל-0306ק00106000 1 אחרת, הדבר יכול לגרום להוצאת חלון זה. משתמשים בערך זה כדי לאפשר לתוכניות לצייר בומן פעולת עקיבה (ח61300ק0 הזד א6אספט סא 06% | אינו כולל את אזור הגזירה שמוגדר על ידי טח מהאזור הנראה של הקשר ההתקן. שמוחזר על ידי א661065. א6חד556המדאן 6% | חיתוך 9900וטוח1) אזור הגזירה שמוגדר על ידי ססות עם האזור הנראה של הקשר ההתקן. שמוחזר על ידי 66:065%. =דאפד ו 90% | כאשר ערך וה מוגדר עם. פזהסקד768550א1 6%פ, הדבר גורם להקשר ההתקן שמוחזר על ידי 661005 להיות זמין בשלמותו. השימוש בפונקציה זאת יחד עם פדהסקטד550 המדא 0% ו-8דאס1ואע 6% והה לשימוש בפונקציה לחומ כדי להבין יותר טוב את פעולת הפונקציה 660005%, התבונן בתוכנית ווסו01 .שומזם, שבתקליטור המצורף לספר זה (בתיקיה 003006). התוכנית משתמשת בפונקציה 661005 כדי להשיג את הקשר ההתקן לשטח הלקוח של החלון, חוץ מאזור מסוים. התוכנית מציירת אחר כך מלבן אפור בשטח הלקוח, ללא האזור הפנימי (הלב. 7 יצירת הקשר התקן למדפסת התוכניות צריכות להשתמש בהקשרי התקן כדי לציור פלט בהתקן. בעוד שיש ל-00%%5חו/ הקשרי התקן מובנים (פרטי או ציבורי, וזה או סוופטפ), להתקני פלט. אחרים אין הקשרים קיימים. על התוכניות להשתמש בפונקציה 67630606 כדי ליצורר הקשר התקן אל ההתקן ושימוש בשם שמוגדר על ידי המתכנת. את הפונקציה 6 כותבים בתוכנית כפי שמוצג להלן. פרק 6: ממשק התקן גרפי = 133 פוט 188 60 צשסמנסק //‏ ,פשט20:1פק1 אעפע0ק1 שחפם 451065 הַמ1ע6615ק5 // 18 60 צשסמנסק //‏ ,152060106 אעפצסק1 שחפם 860106 המ1ע9 01 0ס5 // תפטא %0 865 ;שפט מס 80 //‏ ,סטמסמ20פק1 תצפפסק1 80 שש סמ1סק // פסס0עעשס עפאסס. 854 צששמבפם // הפונקציה 6631906 מקבלת את הפרמטרים שמפורטים בטבלה 4.2 טבלה 6.2: הפרמטרים של הפונקציה 681600ז0. פרמטר | תיאור זשוזסקפקו | *ישומים שנכתבו עבור גרסאות קודמות של פאוסחוו משתמשים. בפרמטר וה, כדי להגדיר את שם הקובץ (בלי סיומת) של מנחל ההתקן. ב- א9 00005חו// ויישומים מבוססי 32חו+, 01031906 . מתעלמת מפרמטר זה, שצריך להיות 1א, עס יוצא מן הכלל: אולר תרצה להשיג הקשר התקן לתצוגה על ידי הגדרת המחרוזת +15%/4ס. המסתיימת ב-+טו1. כאשר פרמטר זה שווה א 01501, כל שאר הפרמטרים חייבים להיות +שא!. בסביבת א 5ו00חו/א, הפרמטר. ז6שוז20פק! מצביע למחרוות תווים המסתיימת ב-1א אשר מגדירה .0159 עבור מנהל תצוגה, או שם מנהל התקן מדפסת, שבדרך כלל. הוא סקאז 0966:פקו | מצביע למחרוות תווים המסתיימת ב-1)א שמגדירה את שם התקן הפלט המסוים שהתוכנית משתמשת בו. מנהל ההדפסה מראה את שם. התקן הפלט, כמו לדוגמה ''80-! חספפם", שהינו שם פנימי שלל 5 ולא בהכרח שס סוג המדפסת. אתה חייב להשתמש. בפרמטר 5206665 סטס2פקן | וסחוי מתעלמת מפרמטר זה. אל תשתמש בו ביושומי לח יישומים מבוססי בוו צריכים להציב בפרמטר זה את הערך +שא, מכיון ש-אופזט20פק! קיים כדי לספק תאימות עם יישומים שנכתבו עבור גרסאות מוקדמות של פס0חוו/. בופאחזקן | מצביע למבנה מסוג פססוא/6ס שמכיל עבור מנהל ההתקן נתונר אתחול ייחודיים להתקן. הפונקציה 665ז6קסזפוחסוחטססם מקבלת. מבנה וה וממלאת אותו בהתאם להתקן המוגדר. הפרמטר ז8פאוחזקו חייב להיות 011)! אם מנהל ההתקן משתמש באתחול ברירת המחדל. (אם ישנה), שמוגדר על ידי המשתמש. 4 הכפהו ומבוא ל-ספו אס הפונקציה 003906 מצליחה, הערך המוחזר הוא ידית להקשר התקן עבור ההתקן המוגדר, אס 61630906 נכשלת, הערך המוחזר הוא 11שא. כמו שראית בטבלה 6.2, הפונקציה 61631906 מצפה בפרמטר האחרון שלה למצביע למבנה מסוג 08005 אשר מכיל עבור מנהל ההתקן את נתוני האתחול הייחודיים. להתקן. 1 32חו מגדירה את המבנה פססוועפפ כפי שמוצג להלן 7 321 0 0 0 --] סח --] ו --] 0 --] ו פפסוום 0 6 סח ספ 0 ספ 0 6 6 ספ ו ספ 0 ספ 0 6 ו ספ ו 6 0 6 ה ספ 0 ספ 2 [32] מ ספת 0 0 --] 0 ] 0 פפסוום 0 פפסוום 81 קפ בח פפסוום 81 סח פפסוום פפסוחופם [ מבנה הנתונים 08/0 מכיל מידע על אתחול ההתקן וסביבת העבודה של המדפסת. פרק 6: ממשק התקן גרפי ‏ 135 טבלה 6.3 מפרטת את האיבריס של מבנה הנתוניס טסו וט. טבלה 6.3: איברי המבנה שססויועטס. איבר תיאור 0006036 | מגדיר את שם ההתקן שמנהל ההתקן תומך בו (לדוגמה,, 13567380 ק4ו/ [סקיי במקרה של "1356726% קוו/ 61ק). מחרוזת זאת היא מיוחדת בין מנהלי ההתקנים. חסופז0/6פק5וח0 | מגדיר את מספר הגירסה של תיאור נתוני האתחול. שמבוסס עליהם מבנה הקשר ההתקן. ח0פזט/ושאוו0וח0 | מגדיר את מספר גרסת מנהל ההתקן של המדפסת, אשר מוגדר על ידי מפתח מנהל ההתקן. ו | מגדיר את הגודל, בבתים, של המבנה 28/08%%0. אם יישוס. מנהל רק את חלק הנתונים העצמאי של מנהל ההתקן, באפשרות היישום להשתמש באיבר זה כדי לקבוע את אורך. המבנה מבלי שיצטרך להתחשב בגרסאות שונות. 3פזסשזסחו | מכיל את מספר הבתים לנתונים פרטיים של מנהל ההתקן. אשר עוקבים למבנה 08/080. אס מנהל ההתקן אינר משתמש במידע ייחודי להתקן, קבע ערך וה לאפט. 5 | מגדיר אוה מהאיברים שנשארו במבנה 88/0 אותחל. כבר. סיבית אפס (מוגדרת כ-א4110דא16ה0. אפ) מתאיימה ל-חסוזחס:ז0ח0; יבית 1 (מוגדרת כ-176פהסקאק אפ), אשר מגדירה את 6ק5זסלוח0, וכך הלאה. מנהל התקן המדפסת תומך רק באיברים שמתאימים לטכנולוגיית המדפסת. !00/6 | בוחר את כיוון הדף. איבר זה יכול להיות ערך אחד משני הערכים הבאים: (1) זז4חדהסק דאפזהסום (לאורך), אר (2) 35675 דאפנהסואטס (לרוחב). לח | בוחר את גודל הדף להדפסה. אפשר לקבוע איבר זה לאפס, אס רוחב הדף ואורכו נקבעים על ידי האיברים. סח וזסקסקוח6 ו-ה:6!/)סקלוחט. אחזרת, באפשרותך. לקבוע את האיבר 0730615426 לאחד מרשימת הערכים. המובנים שמפורטים בטבלה 6.4. ףחס וקקוח | עוקף את אורך הדף שמוגדר על ידי האיבר קלחו עבור גודל דף שמותאם אישית או עבור התקנים, כמו מדפסות סיכות, שיכולות להדפיס על דף שאורכו אינו מוגבל. ערך זה, יחד עם שאר הערכים שבמבנה זה אשר מגדירים אורך פיוי, הס ביחידות של עשירית המילימטר. 6 כו ומבוא ל-ספו איבר ל - ב 0 ו 0 ו ב תיאור עוקף את רוחב הדף שמוגדר על ידי האיבר 506זקפקחח0. מגדיר את הגורס שבו המבנה 09/0610 מדרג (503/5) את הפלט המודפס. איבר זה מדרג את גודל הדף המודפס ביחס. לגודל הפיזי של הדף, ביחס של 60563/6/100. לדוגמה, גודל דף קווארטו (6061-5086) עם ערך 6015636 ששווה ל- 50. מכיל נתונים כמו דף בגודל 17822 אוני (כ- 43856 סי'מ), מפני שפלט הטקסט והגרפיקה יהיו במחצית האורך והרוחב המקוריים שלהם. בוחר את מספר ההעתקים שיודפסו אס ההתקן תומך. בריבוי העתקים. שמור - חייב להיות אפס. מגדיר את הרוולוציה של המדפסת. יש ארבעה ערכים. מובנים שאינס תלויים בהתקן זו ו טושפו פוא דא תס שחו אס איבר זה מכיל ערך חיובי שאינו קבוע טחפזפחס6-חסא!), אז הערך מגדיר את מספר הנקודות לאינץי (1קס = ז6ק פזסם. 6ח]) ולכן הופך לתלוי בהתקן. בחירה בין הדפטה בצבע לבין הדפסה בצבע אחד במדפסות. צבע. הערכים שלהלן הם ערכים אפשריים לפרמטר זה 8 ב בוחר הדפסה דו-צידית אוטומטית (אפוקטפ), או הדפסה. דו-צידית רגילה (5/066 וטטסס, עס הפיכה ידנית של. הנייר), עבור מדפסות שיכולות להדפיס בשיטת אפוטם: הערכים שלהלן אפשריים לפרמטר זה. ואפ קטפואם ו אדאוס?זהסוא .טפוס דט קטסום. מגדיר רזולוציית ציר + (חסטט8690-) של המדפסת. בנקודות לאינץ'. אס המדפסת מאתחלת איבר זה, האיבר עזוובטס!חחקוח6 מגדיר את רזולוציית ציר א (חס00שו8690-). של המדפסת, בנקודות לאנ. פרק 6: ממשק התקן גרפי | 137 איבר ו ] ו ו 3 ו פוסהזם. תיאור מגדיר איך המדפסת צריכה להדפיס גופני "ספץדסחד. איבר ה יכול להכיל אחד מהערכים שלהלן קאויודזם דדויום מדפיס גופני 6קץדטטזד כגרפוקה. צוהר פעולת ברירת המחדל במדפסות סיכות. סאסואעוסם -דדואוס גופני סקדטטזד נטענים כגופניס רכים. (פוחס? 508%). אוהי פעולת ברירת המחדל במדפסות. היולט-פקרד (756316 +661) אשר משתמשות בשפת. הבקרה למדפסת - 1 13 (סשחסם זסוחוזק) 50808 דוס מחליף הגופנים של ההתקן לגופני 6 טזד. ווהי פעולת ברירת המחדל במדפסות. סק מגדיר אס המדפסת צריכה להשתמש באיסוף עותקים,, כאשר מדפיסים עותקים רבים. השימוש. ב-8)56= 0601/16 מאפשר מהירות גבוהה ופלט ועיל. יותר, מכיון שהנתונים נשלחים למדפסת רק פעם אחת. עבור כל דף מודפס, ללא תלות במספר העותקים הנדרש. התוכנית שולחת את הדף למדפסת ומציינת את מספר. הפעמים שדרוש להדפיסו. האאיבר 000/86 יכול להיות. אחד מהערכים שלהלן. פטחד פד/) סאפ - איסוף כאשר מדפיסים העתקים. רבים. 6 פד 1 וססויוס - ללא איסוף, כאשר מודפסים. העתקים רבים. מגדיר את השם של התבנית (וחזס") שצריך להשתמש בה (לדוגמה, מכתב רגיל או מכתב רשמי). אפשר לקבל קבוצה שלמה של שמות באמצעות הפונקציה פוחזס*וזטחט של. ב מיישר את המבנה לגבול מילה כפולה (סהסטום). אינך צריך. להשתמש באיבר זה או לחתייחס אליו. מיקרוסופט שומרת. את השם והשימוש שלו, והדבר עלול להשתנות בגירסואת. עתידיות של פאוסחו/ו. מגדיר בסיביות לפיקסל את רזולוציית הצבע של התקן. התצוגה. לדוגמה, 4 סיביות עבור 16 צבעים, 8 סיביות עבור 6 צבעים, או 16 סיביות עבור 65536 צבעים. מגדיר את הרוחב, בפיקסלים, של משטח ההתקן הנראה. 8 :כו ומבוא ל-ספו איבר תיאור 0 1 תת מגדיר את הגובה, בפיקסלים, של משטח ההתקן הנראה. מגדיר את מצב התצוגה של ההתקן. הערכים שלהלן הם. דגלים תקפים עבור האיבר 905ץ3וקפוסוח. 65086 0 מגדיר שהתצוגה אינה התקן צבעוני. אם. לא קובעים דגל זה, התוכנית מניחה צבע. 050 ודא אס מגדיר מצב תצוגה בדילוג (06118086ח1. אם לא קובעים דגל וה, התוכנית מניחה שמצב התצוגה. הוא תצוגה בסריקה רציפה (9112666ז10. חסא). מגדיר את התדירות, בהר (מחזורים לשנייה), של התקן. התצוגה במצב עבודה מסוים. כמו שמפורט בטבלה 6.3, הפרמטר 603061508 מקבל קבועים מובנים שמתאימים לגודלי נייר נפוצים ובינלאומייס. טבלה 6.4 מפרטת חלק מגודלי הנייר המקובלים. טבלה 6.6: ערכים מקובלים לגודל הנייר. ערך דד | אשקאקוום 56| אפקהקוום. 4 אשקהקוום 08| השקאקוום דודה ד 5‏ השקה קואם. דא .שקה קום סצוסי ‏ מפקאקוום סדחהטס. משקהקוום. 7 שקה קוו 0 שא אסקאקואם 5 וסיאה: .אסקאקואם 69 .161 0 וסיותה= ‏ אסקהקואם גודל הנייר מכתב (601., 1/2 8 א 11 אונש ליגאל (0.6080, 1/2 8 א 14 אונש גיליון 84, 210 % 297 מילימטר א 11 וני הו5, 1/2 5 א 1/2 8 וני 0 1/4 7 א 1/2 10 אונ" פוליו (סווספ), 1/2 8 א 13 אונאי קווארטו (פזו), 215 א 275 מילימטר. גיליון 11 א 17 אנ מעטפות 810, 1/8 4 א 1/2 9 אונש טחמ 50 05, 7/8 18 א 11 אונ" ליגאל גרמני 0סחפ>, 1/2 8 א 13 וני פרק 6: ממשק התקן גרפי 139 הנתונים הפרטיים של מנהל ההתקן עוקבים אחרי האיבר %066ץ9וק8וסוז4. האיבר 3זפזסאוסוח מגדיר את מספר הבתים של נתונים פרטיים. היישומים שנכתבו עבור גרסאות קודמות של פווסשחוו משתמשים בפרמטר זטקט0?פפ! כדי להגדיר שם יציאה, או להדפיס לקובץ. היישומים מבוסטי 32חו אינם צריכים להגדיר שם יציאה היישומים מבוססי חואו יכולים להדפיס לקובץ על ידי קריאה לפונקציה 580006 עם המבנה 0061%%0, אשר הפרמטר 152000 שלו מגדיר את המסלול של שם קוב הפלט. כאשר אינך צריך יותר את הקשר ההתקן, קרא לפונקציה 0660606 למחוק אותו. כדי להבין יותר טוב את פעולת הפונקציה 61630606, התבונן בתוכנית ₪416 -חוז, שבתקליטור המצורף לספר זה (בתיקיה 3006ח8006559285). התוכנית מדפיסה שורה אחת של טקסט במדפסת, כאשר המשתמש בוחר באפשרות !16% מהתפריט. 06 יוצרת את הקשר ההתקן למדפסת. כמו שכתוב בקוד שבתקליטור, שם המדפסת הוא ''55-680 8זספס/א'", אבל באפשרותך לשנות אותו, כדי שיתאים למנהל ההתקן שנמצא במערכת שלך. תוכל להשתמש בפונקציה פוסוחוזוחטחם כדי לקבוע את. שם המדפסת שהתקנת במחשב שלך. הפונקציה 06זק6חא מכילה את הקוד המעשי שמטפל במשימות של התוכנית ₪16 )חוזם. 8 36603606 - יצירת הקשר התקן בזיכרון בסעיפים קודמים למדת שאפשר להשתמש בהקשרי התקן בתוכניות כדי לייצר פלט. לתצוגה ולמדפסות. עם זאת, התוכניות אינן יכולות לצייר ישר לתוך הקשר ההתקן. הפונקציה 0/03166010800/606. יוצרת הקשר התקן בזיכרון אשר מתאים להתקן שצוין. לפני שיישו יכול להשתמש בהקשר התקן בזיכרון לפעולות ציור, אתה חייב לבחור מפת סיביות (קגחשו8) ברוחב ובגובה הנכונים בתוך הקשר ההתקן. אחרי בחירת מפת סיביות, באפשרותך להשתמש בהקשר ההתקן כדי להכין דמויות שתתוכנית תעתיק אל המסך או המדפסת. בכל פעם שהתוכניות עובדות עם מפות. סיביות (אשר תלמד עליהן בסעיפים הבאים), התוכנית ממקמת תחילה את מפת הסיביות בהקשר התקן בזיכרון ואחר כך מעתיקה אותה אל הקשר התקן מסוים. את. הפונקציה 806ו10800ח61080660 כותבים בתוכנית כפי שמוצג להלן (0 1 80 00011600 6 עס ספ הפרמטר 66ו! מוהה את הקשר ההתקן. אס הידית ₪66 שווה -1טו,. הפונקציה 90 יוצרת הקשר התקן בזיכרון שמתאים למסך הנוכחי של היישום. אם הפונקציה 80/606ק0931660 מצליחה, הערך המוחזר הוא ידית להקשר התקן. בזיכרון ; ואס 800/606ק0306000ז6 נכשלת, הערך המוחזר הוא טא אפשר להשתמש בפונקציה 00300/606ח01030600 רק עם התקנים שתומכים בפעולות. רשת 30009ז6ק0 8597). היישום יכול לקבוע אס ההתקן תומך בפעולות רשת על ידי קריאה לפונקציה 661060690305. כאשר אין צורך יותר בהקשר ההתקן שבזיכרון, צריך לקרוא לפונקציה 09/6/06 כדי למחוק אותו. 0 הכפהו ומבוא ל-ספו כדי להביץ יותר טוב את פעולת הפונקציה 369/626ק0163/5600, התבונן בתוכנית. 8וט/8 עשמזם, שבתקליטור המצורף לספר וה (בתיקיה 608006). התוכנית טוענת. מפת סיביות וממקמת אותה בהקשר ההתקן שבניכרון, ואחר כך מעתיקה אותה לשטח הלקוח של החלון. כרגיל, הפונקציה 0060106 מכילה את הקוד המעשי של התוכנית ק8וח/8. ואמזם. 9 אחזור יכולות ההתקן התוכניות משתמשות בהקשר התקן כדי לנהל טקסט וגרפיקה ביישומים שלך לשתי מטרות, לתצוגה על המסך ועבור פלט להתקנים, כמו מדפסות או תוויינים (פזפוסוק). כאשר התוכנית חייבת להפיק פלט למדפסת או תוויין, ייה דרוש לנו מידע על יכולות. ההתקן לפני שנשלח אליו את הפלט. משתמשים בפונקציה 661060/690305 כדי לקבל. את המידע הייחודי אודות ההתקן המוגדר. את הפונקציה 66106/090305 כותבים כמ בהגדרה שלהלן. (א66תתת %ה1 ,46 ספא 050691660828 שג הפרמטר ₪66 מוהה את הקשר ההתקן. הפרמטר א66ח1ח מזהה את הפריט שצריך להחזיר. הפרמטר 06חזח יכול להיות אחד הערכים שמפורטים בטבלה 6.5. טבלה 6.5: ערכים אפשריים של הפרמטר <66ה1ח. אינדקס (או מפתח) | פירוש הפ הפשח | גרסת מנהל ההתקן. +06 אספד | הטכנולוגיה של ההתקן; יכולה להיות כל ערך מהערכים. שמפורטים בטבלה 6.6 25 | רוחב, במילימטרים, של המסך הפווי 8 | גובה, במילימטרים, של המסך הפוגי. 0255 | רוחב, בפיקסלים, של המסך. 5 | גובה, בקווי רשת, של המסך. 815%א10601 | מספר הפיקסלים בכל איינץי לוגי לרוחב המסך. 106010615 | מספר הפיקסלים בכל אינץ' לוגי לגובה המסך. מאזק5דז8 | מספר סיביות הצבעים הסמוכים עבור כל פיקסל. 85 | מספר מישורי הצבע. 5 | מספר המברשות בהתקן המסוים. פאשקויוטו | מספר העטיס בהתקן המסוים. פרק 6: ממשק התקן גרפי ‏ 141 אינדקס (או מפתח) פדס וטו ב קפ קפ קפ בב ב ב ספעהספפמווטא ב 10 פירוש מספר הגופניס בהתקן המסוים. מספר הכניסות בטבלת הצבעים של ההתקן, אס יש להתקן. עומק צבע (ח6901 זסוסס) של לא יותר מ- 8 סיביות לכל. פיקסל. עבור התקנים עם עומק צבע יותר גדול, 0 מחצירה 1-. רוחב יחסי של פיקסל ההתקן, שההתקן משתמש בו לציור קווום. גובה יחסי של פיקסל ההתקן, שההתקן משתמש בו לציור קווים. רוחב האלכסון של פיקסל ההתקן, שההתקן משתמש בו לציור קווים שמור. דגל אשר מציין את יכולות הגזירה של ההתקן. אם ההתקן. יכול לגזור למלבן, ערך הפרמטר הוא 1; אחרת, ערכר לאפס. מספר הכניסות בלוח הצבעים (86006ק) של המערכת. אינדקס זה תקף רק אס מנהל ההתקן מדליק את הסיבית. שדדפ )אק ₪6 באינדקס 851880%05, והוא דמין רק אם מנהל ההתקן תואם את גרסת 9% 605חו/ ומעלה. מספר הכניסות השמורות בלוח הצבעים של המערכת. אינדקס וה תקף רק אאם מנהל ההתקן מדליק את הסיבית. פדד6 אק ₪6 באינדקס 851580305, והוא זמין רק אם: מנהל ההתקן תואם א9 0005חוו ומעלה. רוולוציית הצבע הממשית של ההתקן, בסיביות לפיקסל. אינדקס וה תקף רק אאם מנהל ההתקן מדליק את הסיבית. פדדש אק ₪6 באינדקס 851580305, והוא זמין רק אם: מנהל ההתקן תואס 00%5חו/+ גירסה 9% ומעלה. עבור התקני ההדפסה, זהו רוחב הדף הפיצי, ביחידות. התקן. לדוגמה, למדפסת שהגדרותיה נקבעו להדפסה ב- ופ6000 בדף שגודלו 11 א 8.5 אינץ', יש רוחב פיזי של 0 יחידות התקן. שים לב לכך שהדף הפיוי כמעט תמיד גדול משטח ההדפסה שעל פניו, ולעולם אינו קטן ממנר 2 כו ומבוא ל-ספו אינדקס (או מפתח) 10 ב בב ב ב בי פירוש עבור התקני ההדפסה, והו גובה הדף הפוזי, ביחידות. ההתקן. לדוגמה, מדפסת שהגדרותיה נקבעו להדפסה ב- ופ6000 בדף שגודלו 11 א 8.5 אינץ', יש גובה פיוי של. 0 יחידות התקן. שים לב לכך שהדף הפיזי כמעט תמיד. גדול משטח ההדפסה שעל פניו, ולעולם אינו קטן ממנר עבור התקני ההדפסה, המרחק ביחידות התקן מהשפה. השמאלית של הדף הפוזי עד לשפה השמאלית של שטח. ההדפסה. לדוגמה, מדפסת שהגדרותיה נקבעו להדפסה ב- 60060 בדף שגודלו 11 א 8.5 אינץ', ואשר אינה יכולה. להדפיס במרווח 0.25 האינץ' שבצדו השמאלי ביותר של. הדף, יש היסט 0560, או מרחק יחסי) פיזי אופקי של 150 יחידות התקן. עבור התקני ההדפסה, המרחק ביחידות התקן מהשפה. העליונה של הדף הפיצי עד לשפה העליונה של שטח ההדפסה. לדוגמה, מדפסת שהגדרותיה נקבעו להדפסה ב- 60060 בדף שגודלו 11 א 8.5 אינץ', ואשר אינה יכולה. להדפיס במרווח 0.5 האינץ' העליון של הדף, יש היסט. 80!ו0, או מרחק יחסי) פיי אנכי של 300 יחידות התקן. עבור התקני תצוגה, תחת זא! פאאס0חו/צ, הו קצב הרענון האנכי הנוכחי של ההתקן, במחזורים לשנייה (2ו). קצב רענון אנכי של 0 או 1 מייצג את ברירת המחדל של קצב. רענון ומרת התצוגה (050ז₪61 06106 148760816% עוספום. 6. ערך ברירת מחדל זה נקבע בדרך כלל על ידי מתגים. שעל כרטיס התצוגה או על לוח האם של המחשב, או על ידי תוכנית תצורה, שאינה משתמשת בפונקציות התצוגה של 2, כמ לדוגמה חַו5/בספוְספַח. רוחב, בפיקסלים, של שולחן העבודה הווירטואלי (וגטטזו/. 20900), רק תחת דא %5סחוא. ערך צה יכול להיות גדול. מ-4087885! כאשר ההתקן תומך בשולחן עבודה וירטואלי או בתצוגות מרובות. גובה, בפיקסלים, של שולחן העבודה הווירטואלי וזו ק2690), רק תחת דא 0%5חו. ערך צה יכול להיות גדול. מ-8818585 כאשר ההתקן תומך בשולחן עבודה וירטואלו, או בתצוגות מרובות. פרק 6: ממשק התקן גרפי | 143 אינדקס (או מפתח) ואו דוט בינ בי בוו בי ו בטבלה 6.5 ניתן לראות. פירוש היישור המועדף של ההתקן עבור ציור אופקי, מיוצג על ידי פיקסלים רבים, רק תחת א 60%5חו. עבור ביצועי ציורר טובים, התוכניות צריכות ליישר חלונות אופקית לפ כפולות של ערך זה. ערך אפס מציין שלש ל-60/5ח/ו גישה מואצת להתקן, והקשרי התקן של ההתקן הזה יכולים. להשתמש ביישור כלשהו ערך אשר מציין את יכולות הרשת או הסריקה (זפפה 65טו//03080) של ההתקן, כמו שמפורט בטבלה 6.7. ערך אשר מציין את יכולות העקומה (690801/665 6 של ההתקן, כמו שמפורט בטבלה 6.8. ערך אשר מציין את יכולות הקו (038011065 6חו) של. ההתקן, כמו שמפורט בטבלה 6.9. ערך אשר מציין את יכולות הפוליגון (0801065מ) סוק של ההתקן, כמו שמפורט בטבלה 6.10. ערך אשר מציין את יכולות הטקסט 63 ז6%ד) של. ההתקן, כמו שמפורט בטבלה 6.11. שאם התוכנית דורשת מההתקן את טכנולוגיית מנהל ההתקןן, הקריאה ל-66106/690305 מחזירה אחד מערכי הדגלים שמפורטים בטבלה 6.> טבלה 6.6: ערכי הדגלים המוחזרים עבור סוגים אפשריים של טכנולוגיית מנהלי התקן. עוך סק ד אפ זספאא ד קפ ד 50 ד וס ד ש וזא דט ד קז ד פירוש תוויין ווקטורי (ז6וסופ 600 צג רשת / סריקה (ץוקפוס זפ מדפטת רשת / סריקה (זפוחוזק 5 מצלמת רשת / סריקה (זפוחוזק זפ רצף תווים (5090 ז616זהו0) קובץ-על (161306!, או קובץ 61306 קוב תצוגה (6/₪ וספ 4 זא32חווו ומבוא ל-ספו חשוב לשים לב לכך שאם הפרמטר 706 מוהה את הקשר ההתקן של קובץ-על משופר 161986 6פסחהחחם), טכנולוגיית ההתקן תהיה ו של ההתקן שהתייחסנו אליו קודם. כשנמסר לפונקציה 6386חחפ31פזס. כדי לקבוע אס ההקשר הוא הקשר התקן של קובץ-על משופר, צריך להשתמש בפונקציה 6ק6609/6011. לבסוף, אס התוכנית חייבת לזהות את תכונות הרשת של ההתקן שדנים בו, הקריאה ל-60106/090305 תכלול את הקבוע 8/451886305. כאשר התוכנית דורשת את תכונות. הרשת של התקן, הערך המוחזר של הפונקציה הוא ערך אחד או יותר מאלה המפורטים בטבלה 6.7. טבלה 6.7: הערכים האפשריים המוחזרים עבור הדרישה 5188085 א. יכולת. פירוש 6אזפאאהם ₪6 | דורש תמיכת פס (0זסקקט5 הַו0ח89) דופדזם ₪6 | יכול להעביר מפות סיביותת 4 ₪6 | יכול לתמוך במפות סיביות שגדולות מ- 646 קהואדז ז. ₪6 | יכול לתמוך בפונקציות 56101800 ו-66/018//5. שמססדפנם ₪6 | יכול לתמוך בפונקציה 561018//91006/65 1001 ₪6 | יכול לבצע מילוי צבע לפי אלגוריתס |0008 דטפדטס 60120 ₪6 | יכול לתמוך בעצמים של אפ פאוס0חוצ שדדפ )אק ₪6 | מגדיר לוח צבעים מבוסס התקן 56 86 | יכול לדרג (563106 01 63756 ) םוד הד5 ₪6 | יכול להפעיל את הפונקציה ז/6%08זו5 פטס דפ הד5 ₪6 | יכול להפעיל את הפונקציה זוז חס/ 5 בנוסף למידע הדרוש לתוכניות על יכולת הרישות של ההתקן 63 הַוסה), הן צריכות לעיתים קרובות מידע אודות יכולת ההתקן לצייר ולהפיק פלט בצורת עקומות (פזט0 6ש/וס). באפשרותך לבדוק את יכולת ציור העקומות בעת הצגת הדרישה 008086805. הדרישה 60880805 מחזירה ערך אחד או יותר מהערכים שמפורטים בטבלה 6.8. פרק 6: ממשק התקן גרפי | 145 טבלה 6.8: הערכים המוחזרים כתוצאה מהקריאה ל-65ע0₪. ערך פירוש שאסא 66 | ההתקן אינו תומך בעקומות. 5 06 | ההתקן יכול לצויר מעגלים. פזק 66 | ההתקן יכול לצייר פרוסות עוגה (9065/ 046 000 66 | ההתקן יכול לצייר מקטע אליפטי 86 00086 5 06 | ההתקן יכול לצייר אליפסות שפנו 66 | ההתקן יכול לצייר גבולות רחבים (6615ז80 0006 0 /ד5 06 | ההתקן יכול לצייר גבולות עס סגנון (80766:5 50//66) סםדפםס1/ו. 66 | ההתקן יכול לצייר גבולות רחבים ועם סגנוך 5 660 | ההתקן יכול לצייר פנים (זסוזטוח1. דפהסאטסה 06 | ההתקן יכול לצייר מלבנים מעוגלים (65פַח₪613 666חנוס) להתקן יכולות להיות אפשרויות ציור של עקומות, או שאינו יכול לעשות ואת. למרבית. ההתקנים יש גם יכולות ציור קווים מסוימות. באפשרות התוכניות לבדוק את יכולות. הציור של קווים עם הקריאה 11880405. טבלה 6.9 מפרטת את הערכים האפשריים המוחורים כתוצאה מהדרישה 41886405 טבלה 6.9: הערכים המוחזרים כתוצאה מהקריאה 11886875 ערך פירוש פווסא .16 | ההתקן אינו תומך בציור קוויס 5אז סק 16 | ההתקן יכול לצייר מצולע (פחזוץוסק) האוא 16 | ההתקן יכול לצייר סימן (31861/) אפאה סק 1 | ההתקן יכול לצייר סימנים רבים 1916615 6וטוט1. 8 16 | ההתקן יכול לצייר קווים רחבים. ספ 5 16 | ההתקן יכול לצייר קווים עס סגנון ספ דפפס1/ו 16 | ההתקן יכול לצייר קוויס רחבים ועם סגנון 105 פאז 16 | ההתקן יכול לצייר פגים (זספזח1. בנוסף למידע על יכולת ההתקן לצייר קווים ומעגלים, התוכנית דורשת במקרים רבים. לדעת על יכולת ההתקן לצייר מצולעים (ּחִסְָעו0ק) ובהם מלבנים, טרפזים וכדומה. באפשרותך לבדוק את יכולות ההתקן לעשות זאת, על ידי שימוש ב-00146081.0805, אשר מחזירה ערך אחד או יותר מהערכים שמפורטים בטבלה 6.10 6 כו ומבוא ל-ספו טבלה 6.10: הערכים האפשריים המוחזרים כתוצאה מהקריאה ל-01+608816805. עוך סא 6 סק 6 6 סקאז 6 50 6 סנו 6 פופ סק פ הסנו 6 6 1 פירוש ההתקן אינו תומך במצולעים. ההתקן יכול לצייר מצולעים ממולאים חילופית סוק /ה-318חזס6/). כלומר, 5ו00חו/ו ממלאת רק. את שטחי הפנים שאפשר להגיע אליהם מחוץ לצורה עלל ידי חציית מספר אי-זוגי של גבולות. התבונן בתרשים 6.2. ההתקן יכול לצייר מלבנים. ההתקן יכול לצייר מצולעים שכל שטחי הפנים שלהם. ממולאים סוסל ו/-06ו6ח₪//). התבונן בתרשים 6.2. ההתקן יכול לצייר קוו יחיד מדורג ההתקן יכול לצייר גבולות רחבים. ההתקן יכול לצייר גבולות עם סגנון. ההתקן יכול לצייר גבולות רחבים ועם סגנון ההתקן יכול לצייר פנים (ז00זטוח1. ב ב תרשים 6.2: מילוי הפולוגון לפי 816ח01)/א ולפי הוחו לבסוף, פעמים רבות התוכנית דורשת מידע על יכולות תצוגת הטקסט של ההתקן: באפשרות התוכניות לבדוק את יכולות תצוגת הטקסט של ההתקן על ידי קריאה לפונקציה 6600305 ע הפרמטר 18070805. פרמטר זה מייצג ערך המציין את יכולות תצוגת הטקסט. ראה טבלה 6.11 פרק 6: ממשק התקן גרפי ‏ 147 טבלה 6.11: הערכים האפשריים המוחורים כתוצאה מהקריאה ל-65דאפד. עוך פירוש 1/8 0 ד | יש להתקן יכולת דיוק של פלט תווי (605000זק )קט 730191 ת0). ד קס 6ד | יש להתקן יכולת דיוק של פלט תווי (0ופ0סזק קט 507086 5 0 6ד | יש להתקן יכולת דיוק של גזירה תווית. (חסופו6זק כו 5008 0 6 6ד | ההתקן יכול לסוב את התו ב- 90 מעלות. אאא 68 6ד | ההתקן יכול לסוב כל תור קפסאז א 5 6ד | ההתקן יכול לדרג בצורה נפרדת לאורך ציר + ולאורך ציר ץ. פוטס א5 6ד | להתקן יכולת דירוג של תווים כפולים. דא א5 6ד | ההתקן משתמש בכפולות של מספרים שלמים בלבד. לדורוג תווים. אזדווס6 54 6ד | ההתקן משתמש בכל כפולה שהיא לדירוג מדויק של התו. 5 ₪ סד | ההתקן יכול לצייר תווים בעלי משקל כפולל (הדגשה/עובי). שופ 1 6ד | ההתקן יכול להטות תווים. 5 אנ 6ד | ההתקן יכול לשלב קו תחתון. = 50 6ד | ההתקן יכול לצייר קוויס חוצים. 5 ₪ 6ד | ההתקן יכול לצייר גופני רשת (ח0: 80506 6 אש 6ד | ההתקן יכול לצייר גופני ווקטור (חס: ז600/) 555880 6ד | שמור; חייב להיות אפס. 5680 6ד | ההתקן אינו יכול לגלול על ידי שימוש בהעברת בלוק. סיביות (1305660ד 8-806%). כדי להבין יותר טוב את פעולת הפונקציה 66)009/000905, התבונן בתוכנית 6 66%, שבתקליטור המצורף לספר זה (06ַ0). התוכנית משתמשת בפונקציה. 6 כדי ליצור הקשר מידע למסך. התוכנית 646 666 משתמשת בהקשר שנוצר, כדי למצוא מספר הסיביות לפיקסל ומספר מישורי הצבע עבור הצג. התוכנית. 6 66% משתמשת ב-66106/6000905 כדי לעשות כל החלטה. הקוד שמבצע את העיבוד המעשי, נמצא כמו תמיד בפונקציה 6זקנחאו. 8 71א32חו ומבוא ל-ספו 0 הפונקציה 5%01]167165ץ36+5 לניתוח חלון התוכניות יכולה לנהל כמעט כל מאפיין שיש לחלון, בין אם הוא חלון-אב, חלון-בן, אר חלון פקד. אחת מפעולות הניהול המקובלת והנפוצה ביותר שהתוכניות חייבות לבצע היא עדכון גודל התצוגה הנוכחית, כדי שתתאים לגודל היחסי של צג המחשב. אפשר להשיג מידע זה, בנוסף למידע אחר על ההגדרות שנמצאות במערכת המחשב שלך, עלל ידי שימוש בפונקציה 665/50006065. פונקציה זו מקבלת קשת רחבה של מידות מערכת 160165 וח5/519) שונות ותצורת מערכת (חסטְבּזטטַחס6 5518₪). מידות. מערכת הן המימדים (רוחב וגובה) של האלמנטים שמוצגים על ידי 5אוס0חו/. כלל המימדים שמקבלת הפונקציה :606ו665/906. הס בפיקסלים. את הפונקציה כותבים כמו בהגדרה שלהלן. (1 ה 15 500 ע0059 פתג הפרמטר א06ת1ח מגדיר ‏ את מידת המערכת או את הגדרת התצורה ש-6015/50611005. צריכה לקבל. כל ערכי *6% 5% ה מידות רוחב. כל ערכי *+) 5% הס מידות גובה. 5 5ו0חו/ו מגדיר את הערכים המפורטים בטבלה 6.12> טבלה 6.11: מידות המערכת שניתן לאחזר על ידי הפונקציה 6645/516₪060765. ערך פירוש 5% | דגלים שמגדירים איך המערכת מסדרת חלונות. ממוזערים (כלומר מוקטנים לסמל). דסא 5% | ערך אשר מגדיר איך המשתמש איתחל את המערכת. שלושת הערכים האפשריים הס 0 - אתחול רגיל. טספ והחזסח), 1 - אתחול אל- כשל (811-59ה), ו- 2 - אתחול אל- כשל עם אתחול רשת (ושואו 51-5816 0% 6006א). אתחול אל-כשל (נקרא גם אתחול בטוח, ז5319800) עוקף את קבצי האתחול של. המשתמש. 0005590105 5% | מספר הלחצנים בעכבר; או אפס, אם לא מותקן עכבר. 6480808 5% | הרוחב של גבול החלון, בפיקסלים. ערך וה שקול לערך 8 8% לחלונות שיש להס מראה תלת מימדי 0 3-0 0+ 5% | הגובה של גבול החלון, בפיקסלים. ערך זה שקול לערך. 8 5% לחלונות שיש להס מראה תלת מימדי 0 3-0 פרק 6: ממשק התקן גרפי ‏ 149 עוך 10 0 מ 6 ואס 5% ב 0 5 6 6 ב ב קא32חו/ו ומבוא ל-0פו פירוש רוחב הסמן, בפיקסלים. אלה הס מימדי הטמן שנתמכים על ידי מנהל התצוגה הנוכחי. המערכת. אינה יכולה ליצור סמנים בגדלים אחרים. גובה הסמן, בפיקסלים. אלה הס מימדי הסמ שנתמכים על ידי מנהל התצוגה הנוכחי. המערכת. אינה יכולה ליצור סמנים בגדלים אחרים. כמו שווה 6 5%. כמו פוא פאז 5%. רוחב בפיקסלים, של המלבן סביב מיקום הלחיצה הראשונה בסדרת לחיצה כפולה. הלחיצה השנייה חייבת להתרחש בתוך מלבן וה, כדי שהמערכת. תקבל את שתי הלחיצות כלחיצה כפולה (שתי הלחיצות חייבות גם כן להתרחש בפרק זמן מוגדר). גובה בפיקסלים, של המלבן סביב מיקום הלחיצה. הראשונה בסדרת לחיצה כפולה. הלחיצה השנייהה חייבת להתרחש בתוך מלבן וה כדי שהמערכת תקבל. את שתי הלחיצות כלחיצה כפולה (שתי הלחיצות. חייבות גם כן להתרחש בפרק זמן מוגדר). רוחב בפיקסלים, של מלבן אשר ממורכו סביב נקודת הגרירה, כדי להרשות תנועה מוגבלת למצביע העכבר לפני שמתחילה פעולת גרירה. דבר זה. מאפשר למשתמש ללחוץ ולשחרר את לחצן העכבר בקלות, מבלי להתחיל בפעולת גרירה. גובה בפיקסלים, של מלבן אשר ממורכז סביב נקודת הגרירה אשר מאפשרת למשתמש להציו את מצביע. העכבר למרחק מוגבל לפני שמתחילה פעולת גרירה. מלבן כזה מאפשר למשתמש ללחו ולשחרר את לחצן העכבר בקלות מבלי להתחיל בפעולת גרירה. רוחב בפיקסלים, של גבול תלת-מימדי. 065068 5% הוא המקביל התלת-מימדי של 64808058 5%. גובה, בפיקסלים, של גבול תלת-ממדי. 065068 5% הוא המקביל התלת-מימדי של 61808058 5%%. עוך פירוש שות3הז50א1?א6 50% | עובי בפיקסלים, של המסגרת סביב היקף החלון שיש לו כותרת (חס6900), אך אי אפשר לשנות את גודלו. שוואהס5א01 58% הוא רוחב הגבולל האופקי. כמו 698/46 00 506. שות3הק50א1/) 50% | עובי בפיקסלים, של המסגרת סביב היקף החלון שיש לו כותרת (0ס6900), אך אי אפשר לשנות את גודלו. 0118508006 50% הוא גובה הגבול האנבי. כמו 68/6 60 .5 וא 54 | כמו 65128788 5%. 0/6 54 | כמו 6451287805 5%. 51508554 5% | רוחב שטח הלקוח עבור חלון במסך מלא. כדי לקבל. את הקואורדינטות של חלק המסך שהסריקה אינה. מכסה, קרא לפונקציה 0/ח61951ח3ז 55/0 עם. הערך שמחזירה 6019/519006065. 56885 1 ט) 5% | גובה שטח הלקוח עבור חלון במסך מלא. כדי לקבל. את הקואורדינטות של חלק המסך שהסריקה אינה מכסה אותו, קרא לפונקציה 6)1510/0וחזם 590 עם הערך 651/05 501 50 5% | רוחב בפיקסלים, של מפת הסיביות של הח שבפס. הגלילה האופקי. 050804 5% | גובה, בפיקסלים, של פס גלילה אופקי. 8 5% | רוחב בפיקסלים, של תיבת הגררה בפס גלילה. אופקי. 100% 5 | רוחב ברירת המחדל של סמל, בפיקסלים. ערך זה הוא בדרך כלל 3232, אבל יכול להשתנות כתלות. בתצוגת החומרה המותקנת. הפונקציה 10361600 יכולה לטעון רק סמלים במימדים אלה. א0ס1/ 59% | גובה ברירת המחדל של סמל, בפיקסלים. ערך זה הוא בדרך כלל 3232, אבל יכול להשתנות כתלות. בתצוגת החומרה המותקנת. הפונקציה 10361600 יכולה לטעון רק סמלים במימדים אלה. פרק 6: ממשק התקן גרפי ‏ 151 עוך 12 6 6 0 0% 0 ו ו ו ב ב ב הפחי ומבוא ל-0פו פירוש מימד א, בפיקסלים, של תאי שריג (66) עבור פריטים בתצוגת סמלים גדולים. כל פריט מתאים. למלבן בגודל זה כאשר מסדרים אותס. ערכים אלה תמיד גדולים מ-א06160 5% ומ-א0/100 5%%, אד שווים להם. מימד צ, בפיקסלים, של תאי שריג עבור פריטים. בתצוגת סמלים גדולים. כל פריט מתאים למלבן בגודל זה כאשר מסדרים אותם. ערכים אלה תמיד גדולים מ-4ז00160 5 ומ-6160 5%, או שווים. להם. ערך ברירת המחדל של מימד א, בפיקסלים, של חלון בגודל מקסימלי שאין לו אבב ערך ברירת המחדל של מימד +, בפיקסלים, של חלון בגודל מקסימלי שאין לו אבב ערך ברירת המחדל לרוחב המקסימלי, בפיקסלים,, של חלון שיש לו כותרת וגבולות שאפשר לשנות את. גודלם. המשתמש אינו יכול לגרור את מסגרת החלון לגודל שמעבר לרוחב צה. החלון יכול לטפל בהודעה 0אאזאהואאזוד66 וו כדי לעקוף ערכים אלה. ערך ברירת המחדל לגובה המקסימלי, בפיקסלים,, לחלון שיש לו כותרת וגבולות שאפשר לשנות את. גודלם. המשתמש אינו יכול לגרור את מסגרת החלון לגודל שמעבר לגובה זה. החלון יכול לטפל בהודעה 0אאזאאואאזוד66 וו כדי לעקוף ערכים אלה. רוחב, בפיקסלים, של הגדרת ברירת המחדל למפת. הסיביות שמשמשת לסימון פריט בתפריט. גובה, בפיקסלים, של הגדרת ברירת המחדל למפת. הסיביות שמשמשת לסימון פריט בתפריט. רוחב, בפיקסלים, של לחצני שורת התפריט, כמור סגירת בן במסמכים מרובים (זסוו). גובה, בפיקסלים, של לחצני שורת התפריט, כמור סגירת בן במסמכים מרובים (זסוו). רוחב מינימלי, בפיקסלים, של חלון. עוך או 5 בב 0קזזאזו ו 50% 6 6 0 ו 0 ב ב ב ב ב פירוש גובה מינימלי, בפיקסלים, של חלו רוחב, בפיקסלים, של חלון נורמלי מוקטן לסמל 6 ו גובה, בפיקסלים, של חלון נורמלי מוקטן לסמל וח רוחב, בפיקסלים, של תא שריג 691 61₪6) עבור חלון מוקטן לסמל. כל החלונות המוקטנים לסמל. (ממוצערים) מתאימיס למלבן בגודל וה כשמסדרים. אותם. ערכים אלה תמיד גדולים או שווים. ל-11250א61 59% ול-260זוזאזואי ‏ 50%. גובה, בפיקסלים, של תא שריג 691 616) עבור חלוך מוקטן לסמל. כלהחלונות המוקטנים לסמל (ממוזערים) מתאימים למלבן בגודל זה כשמסדרים. אותס. ערכים אלה תמיד גדולים או שווים ל-1280ו01119 54 ול-250נואזאזות ו 5%. רוחב עקיבה מינימלי של חלון, בפיקסלים. המשתמש אינו יכול לגרור את מסגרת החלון לגודל. שקטן מערך זה. החלון יכול לטפל בהודעה 0אזאאואאזוד66 וו כדי לעקוף ערכים אלה גובה עקיבה מינימלי של חלון, בפיקסלים. המשתמש. אינו יכול לגרור את מסגרת החלון לגודל שקטן מערך זה. החלון יכול לטפל בהודעה. 0אאזאהואאזוד66 וו כדי לעקוף ערכים אלה רוחב המסך, בפיקסלים. גובה המסך, בפיקסלים. רוחב, בפיקסלים, של לחצן בכותרת החלון. (חס0זק63 5'%ו00חס//), או בשורת הכותרת (88 טטוד, גובה, בפיקסלים, של לחצן בכותרת החלון. (חסווקם6 5'וסמחס/ו), או בשורת הכותרת (זבם 06. עובי, בפיקסלים, של הגבול שאפשר לשנות את גודלו מסביב להיקף החלון שהמשתמש יכול לשנות את. גודלו. 045126786 5%% הוא הרוחב של הגבול. האופקי. כמו 00-86 5%. פרק 6: ממשק התקן גרפי | 153 עוך ב 5 5 סז 5 ב ב 0 0 סקס 5 0 טאפותצס 5 05 5% 8 50 86508 50 6 64 3271חו/ו ומבוא ל-ספו פירוש עובי, בפיקסלים, של הגבול שאפשר לשנות את גודלו מסביב להיקף החלון שהמשתמש יכול לשנות את. גודלו. 051267806 5%% הוא הגובה של הגבול. האנכי. כמו 0/8 5% רוחב מומל של הסמל הקטן, בפיקסלים. סמלים. קטנים מופיעים בדרך כלל בכותרת החלון ובתצוגת. סמל קטן. גובה מומלץ של הסמל הקטן, בפיקסלים. סמלים. קטנים מופיעים בדרך כלל בכותרת החלון ובתצוגת. סמל קטן. רוחב של לחצני כיתוב קטנים, בפיקסלים. גובה של לחצני כיתוב קטנים, בפיקסלים. רוחב של מפת סיביות הח בפס גלילה אונכי, בפיקסלים. גובה של מפת סיביות הח בפס גלילה אנכי, בפיקסלים. גובה האזור הנורמלי לכיתוב, בפיקסלים. עבור גרסאות פווסשחו/ו התומכות במערך תווים של. בתים כפולים (2865, או זפוטזהת6 18ץ6-8וסנוסם. 6% והו הגובה של החלון בתחתית המסך,, בפיקסלים. גובה, בפיקסלים, של שורת תפריט אחת. גובה של כותרת קטנה (חסטקה6 !131ח5) , בפיקסלים. גובה של תתיבת הגררה (א80 פוחטחז) בפס גלילה. אנכי, בפיקסלים. ערך פטזד או שאינו אפס, אם מותקנת גרסת מערך. התווים של בתים כפוליס (0805) של 568.5 אחרת - 59/56, או אפס. ערך סטזד או שאינו אפס, אם מותקנת גרסת מנפה. השגיאות (50ז/ חַוְפַָ0ס) של .568 ; אחרת - 5556, או אפס. ערך פירוש דאםואא16)קסהסטאפוי 5% | ערך פטזד או שאינו אפס, אם התפריטים הנשלפים. כלפי מטה (פטחט!% חווסס-קסזק) מיושרים ימונה, יחסית לפריט התפריט המתאים; ואם הם מיושרים. שמאלה - 5356, אל אפט. כ )8 האמד65פזוי! 5 | ערך פטזד אם המערכת מותאמת לשפות. עברית/ערבית. 5695 טסו 5% | ערך פטזד או שאינו אפס, אם מותקן עכבר; אחרת = 56 או אפס. דו6פפהק פפו?ץ55 10 50 | רק תחת זא פאוסנחוא, ערך סטזד אר שאינו אפס,, אם מותקן עכבר עם גלגל; אחרת - 5556, או אפס. אדפ 5% | הפונקציה מחזירה ערך, שבו הסיבית הפחות. משמעותית נקבעת אס עובדים ברשת; אחרת, הפונקציה מחזירה ערך שבו הסיבית הפחות. משמעותית אינה נקבעת (כבויה או נקייה). סו שומרת את שאר הסיביות לשימוש עתידיי 5וססאזצואפק 5% | ערך פטזד או שאינו אפס, אם מותקנות ההרחבות. של מחשב העט של סח ; אחרת - 56ו5, אר אפס. 550085 5% | ערך סטזד אם תכונת האבטחה מופעלת ; אחרת - 6 5פאטס5עוסוז5 5 | ערך סוד או שאינו אפס, אס המשתמש מבקש מהיישום להציג מידע בצורה ויזואלית במקרים. שהמידע היה מוצג בפורמט קולי (וחזס: פומוא) ; אחרת - 556, או אפס. פוזוזסאוזאוס.51 5% | ערך סטד אם יש למחשב מעבד איטי (56-א00 אחרת - 56ו=. אסדדטפק אע 5% | ערך סטזד או שאינו אפס, אם הפונקציונליות של. לחצני העכבר מוחלפת; אחרת - 5", או אפס. אם הפונקציה מצליחה, הערך המוחזר הוא הערך של המערכת או הגדרת התצורה שביקשנו לדעת; אם הפונקציה נכשלת, הערך המוחזר הוא אפט. יכול להיות שמידות המערכת ישתנו מתצוגה אחת לאחרת. הקבוע ש6אתח₪/ 5 מגדיר איך המערכת מסדרת חלונות מוקטנים לסמל, ומורכב ממקום התחלה וכיוון מקום ההתחלה יכול להיות אחד הערכים שמפורטים בטבלה 6.13 פרק 6: ממשק התקן גרפי | 155 טבלה 6.13: ערכי נקודות ההתחלה. ערך פירוש = וויוסדד80 שו | מתחיל מפינה שמאלית תחתונה במסך (ברירת המחדל). זוז16ווסדד80 עה | מתחיל מפינה ימנית תחתונה במסך. שקול ל-ד16 ד 5 וחה. שפנו א | מסתיר חלונות מוקטנים לסמל, על ידי העברתם מהשטח. הנראה של המסך. דפ ק0ד א | מתחיל מפינה שמאלית עליונה במסך. שקול. ל-קסדדה 5 חה. זוו6נהקסד אאה. | מתחיל מפינה ימנית עליונה במסך. שקול לדה הד גח | קסדדההד5 /ווחה. הכיוון אשר המערכת מסדרת בו חלונות מוקטנים לסמל, יכול להיות אחד מהערכים. שמפורטים בטבלה 6.14. טבלה 6.14: ערכי הסדר האפשריים של סמלי חלונות. ערך פירוש אעוסס וא | סדר אנכי, מלמעלה למטה. דפ א | סדר אופקי, משמאל לימין דוז16ה הא | סדר אופקי, מימין לשמאל. קט שא | סדר אנכי, מלמטה למעלה. הסעיף הבא מפרט איך התוכניות יכולות להשתמש במידות מערכת 160/05 5540 בומן העיבוד שלהן. 1 הפונקציה 5+0₪11!1617165ץ06+5 בסעיף קודס למדת שבאפשרות התוכניות להשתמש בפונקציה 669/500006065 כדר להשיג מידע על המידות הנוכחיות של פאוסוחוו בכל מחשב נתון. ככל שהתוכניותת הופכות להיות יותר ויותר מורכבות, וככל שתבנה יישומים שיופעלו על מחשבים שונים, בדיקות מידות המערכת הופכת להיות חשובה לפני כל קביעת תצוגת מסכים, כי הדבר יכול להבטיח שתצוגת המסך תתאים גם למסכי 6404480 וגם. למסכ 8. לדוגמה, התוכנית וחפץ5 66%, שבתקליטור המצורף לספר זה (6%006), משתמשת ב-:60/0/ו6615/5197 כדי לבחון את המצב הנוכחי של גודל החלון, גודלל המסך ומידע אחר. כאשר המשתמש בוחר באפשרות !765 מהתפריט, התוכנית מציגה. את המידע בחלון. 6 3271חו ומבוא ל-ספו 2 קבלת הקשר התקן עבור החלון כולו התוכניות יפעלו בדרך כלל עם הקשר התקן אל שטח הלקוח של החלון, אך לפעמים. נדרש הקשר התקן עבור החלון כולו. כדי להשיג הקשר התקן לחלון כולו, באפשרות. התוכנית להשתמש בפונקציה 000006חו/661. פונקציה זו מקבלת את הקשר ההתקן (0פ) של החלון בשלמותו, כולל שורת כותרת, תפריטים ופסי גלילה. הקשר התקן לחלון מאפשר ציור בכל מקום בחלון, מפני שנקודת המוצא של הקשר ההתקן היא הפינה השמאלית העליונה של החלון, ולא הפינה השמאלית העליונה של שטח הלקוח. 69/0000 מציבה מאפייני ברירת המחדל אל הקשר ההתקן של החלון בכל פעם: שהיא מקבלת את הקשר ההתקן. מכיון ש-6006חוו%/66 מציבה מאפייני ברירת. מחדל להקשר ההתקן של החלון, מאבדים את המאפיינים שהיו קודם. את הפונקציה. %6ס6חו/660 כותבים כמו בהגדרה שלהלן (מ פצו) 66100 ספ הפרמטר שחצח מזהה את החלון עם הקשר התקן אשר 66001606 עומדת לקבל. אס הפונקציה מצליחה, הערך המוחור הוא ידית של הקשר התקן לחלון המוגדר; אם. הפונקציה נכשלת, הערך המוחזר הוא +וטאז, שמציין שניאה או פרמטר חח שאינר תקף השימוש ב-00800ח0614 מיועד לספק אפקטי צביעה מיוחדים בשטח החלון שאינר שטח הלקוח. הצביעה בכל שטח שאינו שטח הלקוח בחלון אזנה מומלצת. באפשרותך. להשתמש בפונקציה 60065ח6615/519 כדי לקבל את המימדים לחלקים שונים של השטח שאינו שטח הלקוח, כמו שורת הכותרת, תפריט ופסי גלילה. לאחר סיום: הצביעה, התוכנית חייבת לקרוא לפונקציה 86163500 כדי לשחרר את הקשר ההתקן. אי שחרור הקשר ההתקן של החלון יכול להשפיע באופן חמור על בקשות צביעה עוקבות של היושום. כדי להבין יותר טוב את פעולת הפונקציה 0000006ו/ ,661‏ התבונן בתוכניתת 6פחוו66%, שבתקליטור המצורף לספר זה (בתיקיה 00806). התוכנית משתמשת. בפונקציה 6סוס0חו//₪6 כדי לקבל הקשר התקן עבור החלון כולו. אחר כך היא משתמשת ב-6065א0ח5/6ץ6615 כדי לקבוע את מידות הגבולות והכותרת. לבסוף, התוכנית משתמשת בהקשר ההתקן של החלון כולו כדי לצבוע תבנית בשורת הכותרת. של החלון. הקוד המעשי מתרחש בתוך הפונקציה 6זקנחעו. פרק 6: ממשק התקן גרפי | 157 3 שחרור הקשר התקן שחרור אובייקט לאחר שהתוכנית מסיימת את הטיפול שלה באובייקט, הוא חלק חשוב בתכנות בשפת ++6. ניהול הקשרי התקן אינו יוצא מן הכלל. הפונקציה 06 משחררת הקשר התקן (06), כך שיישומים אחרים יכולים להשתמש בו. פעולת הפונקציה 86635606 תלויה בסוג הקשר ההתקן. היא משחררת רק הקשרי התקן משותפים והקשרי התקן לחלונות. אין לה שוס השפעה על הקשרי התקן מסוגג 5 (מחלקה) או פ)פאזק (פרטי). את הפונקציה 89635606 כותבים בתוכנית כמו. בהגדרה שלהלן. (ספג! 30 ,הזו פוא 635000 נשת שג הפרמטר 6ח//ח מוהה את החלון אשר הפונקציה 861635606 עומדת לשחרר את הקשר ההתקן שלו. הפרמטר 06 מוהה את הקשר ההתקן אשר הפונקצייה 861635606 עומדת. לשחרר. הערך המוחזר מגדיר אם 86695606 הצליחה לשחרר את הקשר ההתקן. אם: 0 מצליחה לשחרר את הקשר ההתקן, היא מחזירה 1; אס 861089906 אינה. מצליחה לשחרר את הקשר ההתקן, היא מחזירה אפס. היושוס חייב לקרוא לפונקציה 86/635606 עבור כל קריאה לפונקציה 66001060006. ועבור כל קריאה לפונקציה 66/96 אשר מקבלת הקשר התקן משותף. היישום אינר יכול להשתמש בפונקציה ₪6/635606 כדי לשחרר הקשר התקן אשר נוצר באמצעות. הפונקציה 61030606. במקרה האחרון, היישום חייב להשתמש בפונקציה 661806ם. 4 קבלת ידית חלון מהקשר ההתקן התוכניות עשויות לבצע פעולות כלליות בכל הקשר התקן נתון. אך לעיתים ברצונך. להימנע מביצוע עיבוד כלשהו בהקשר התקן שקשור עס חלון מסוים. עם הפונקציה 6פוחסזתאוסחז/ו, יכולה התוכנית להמיר את הקשר ההתקן לידית חלון. הפונקציה 6סו/וסחו מחזירה את ידית החלון שקשור עם הקשר התקן התצוגה הנתון פונקציות פלט אשר משתמשות בהקשר ההתקן מציירות בחלון אשר הידית שלו הוחזרה על ידי 6סוחסז"אוסטחוו. את הפונקציה 6סוחסזפאוסטחו\ כותבים בתוכנית כמו בהגדרה שלהלן. (פ ג 86 סה גו פוחו הפרמטר 20 מזהה את הקשר ההתקן אשר הפונקציה 6סוחסזזאוסנחוא עומדת לקבל. הידית שלו עבור החלון שקשור להקשר ההתקן. כאשר הפונקציה מצליחה, הערך המוחזר הוא ידית לחלון שקשור להקשר ההתקן לתצוגה; אם הפונקציה נכשלת, הערך המוחזר הוא א. 8 5271חו ומבוא ל-ספו > אזהרה: סיכוני השימוש ב--08606יו601 למדת שהתוכניות ישתמשו לעיתים תכופות בפונקציה 61631906 כדי להשיג הקשר התקן עבור המדפסת. עם זאת, התוכניות יכולות להשתמש ג ב-61631906 כדי להשיג הקשר התקן אל מסך הצג (מסך החומרה, לא שטח לקוח של חלון בודד, או אפילו שטח שולחן העבודה). כאשר משתמשים ב-6/63/900 כדי להשיג הקשר התקן אל המסך, התוכניות יכולות למעשה לצייר בכל מקום על פני המסך, ולא רק בתוך גבולות. שטח התוכנית. בנוסף לתוצאות הפוטנציאליות שאי אפשר לצפות להן, טיפול כזה אזינר מתאים לתקן של 1000068 כאשר מנסים להשיג הקשר התקן אל חלון במסך, עלל התוכניות שלך להשתמש תמיד בפונקציה 66:06, או בפונקציה לחומ ולא בפונקציה 0103606. פרק 6: ממשק התקן גרפי ‏ 159 פרק 1 מפות סיביות, קבצי-על וסמלים (805ום, 6181!65/! ו-5ח0ס6!) 1 מפות סיביות שתלויות בהתקן מפות סיביות הן בלוקים של נתונים אשר התוכניות יכולות להוציא ישירות כפלט אל התקן, כמו צג למשל. אפשר לחשוב על מפות סיביות כדרך לאחסון המידע של הפיקסל. ישירות מהמסך אל מאגר זיכרון. צביעת מפות סיביות על המסך היא יותר מהירה. מהשימוש בפונקציות ממשק ההתקן הגרפי כמו 86636 ו-610ח/1. החיסרון של מפות סיביות הוא בכך שהן צריכות כמות גדולה של זיכרון ומקום בדיסק, ואי אפשר לדרג אותן (56366) בצורה טובה, במיוחד אם הן מכילות טקסט. כאשר מדרגים מפת סיביות, היא מאבדת מהאיכות, וגורמת לעיוות הטקסט. פוסטחו. מספקת שתי סוגים של מפות סיביות: מפות סיביות שתלויות התקן (פ טופ "הסשהסקסס-00ם) ומפות = סיביות = שאינן = תלויות = התקן (פקפוחזום 1ח06ח00ס6ח209/00-1). מפות סיביות תלויות התקן הן תבנית ישנה, וכפר שמשתמע מהשם שלהן, הן פחות גמישות מאשר מפות סיביות שאינן תלויות התקן. כל. היישומים של לוו שתכתוב צריכות להשתמש במפות סיביות שאינן תלויות התקן. עם ואת, 00005חו/ מספקת את מרבית פונקציות ו שעוסקות במפות סיביותת תלויות התקן, כדי לאפשר ליישומי פווסחווו קודמים, בעלי 16 סיביות, לפעול. ככלל, יוצרים מפות סיביות באמצעות תוכנית ציור כמו הצייר של מיקרוסופט טחוגק 0508ז6/), אד עס עורך מפות סיביות, שנמצא בדרך כלל כמרכיב בסביבת פיתוח מוכללת (כמו 5.02 ++6 חפוזספ, או 5.0 ++6 וגטפו/). אחר כך מאחסנים את מפת הסיביות בדיסק עס סיומת שם קובץ 8%7. סו שומרת את מפת הסיביות. כמפת סיביות שאינה תלויית התקן, וממירה אותה למפת סיביות תלויית התקן כאשר התוכנית קוראות ל-ק003ו10309. אפשר להציב את מילת המפתח 811/07 לפני שם' קובץ מפת הסיביות, כדי שתוכל להוסיף מפות סיביות לקובץ המשאבים, כפי שמוצג בדוגמה הבאה פמט השק פמעצנם הש 0 321חווו ומבוא ל-ספו כדי להבין יותר טוב את התוכנית לניהול מפות סיביות, התבונן בתוכנית 801 ח56, שבתקליטור המצורף לספר וה (בתיקיה 00307). התוכנית טוענת את מפת הסיביות. חשק, ממקמת אותה בהקשר התקן שבויכרון, ואחר כך מציירת אותה בהקשר התקן התצוגה. קטע הקוד שלהלן מהקובץ 80 חק מציג את חלק העיבוד המעשי של התוכנית ות פהאפ זט ספת ספ 0 ספ עפסמפה ספה1 קממז1ע שמן 148 // ;( "חפם" ,6פתזת ) מםת:08001ם = קפהונפה// ;( "נסהאתנם" ,ףפתזג )קמהז104881 = ממתסגמם 88ע50 שת: השת: 8תם סקתשמ שהף ספת קמהזגם שמן מהגגת ‏ // ; ( תא )08500 = ספת (ספג! ) 521600 0568560088 = ספחפוע ( 18 ספהשאה | 01506001665 ;( 580008 ,0 ,0 (ססתשאמ ,60 ,60 ,10 ,10 ,ספת )15פ6גם ( עה )165600 ( ג מ 180 ( ש8מפ1פה )1060001665 תבנית מפת סיביות תלויית התקן פועלת כראוי בהעתקת חלקים של המסך לזיכרוך והדבקת חלקים אלה חורה למקומות אחרים במסך. עם ואת, כאשר היישום חיוב לשמור נתונים בקובץ בדיסק ואחר כך להציג אותו בהתקן אחר, תבנית מפת סיביותת תלויית התקן אינה טובה עוד. התבנית של מפת סיביות תלויית התקן מניחה שאתה מתכוון תמיד להציג את מפת הסיביות בהתקן שדומה להתקן המקורי שהמפה נוצרה. בו, והצבעים בהתקן האחר והים לאלה שבהתקן המקורי. לרוע המול, כאשר מציגים. את מפת הסיביות בהתקן אחר, הצבעים עלולים להיות שונים. מפת סיביות שאינהה תלויית התקן אינה גורמת לבעיות שמתעוררות בשימוש של תבנית מפת סיביות תלויית התקן. 2 מפות סיביות שאינן תלויות התקן לתבנית (פורמט) של מפת סיביות תלויית התקן יש מספר מגבלות, אך תבנית מפת. סיביות שאינה תלויית התקן מתגברת על מגבלות אלו. ההבדל המשמעותי ביותר בין מפת סיביות תלויית התקן לבין מפת סיביות שאינה תלויית התקן הוא בכך, שמפת. סיביות שאינה תלויית התקן מכילה טבלת צבעיס שמפת הסיביות משתמשת בהם. פרק ל: מפות סיביות, קבצי-על וסמלום | 161 הכותר (763060) של מפת הסיביות גם כן יותר מורכב בתבנית מפת סיביות שאינה תלויית התקן. מפת סיביות שאינה תלויית התקן, לעומת מפת סיביות תלויית התקן, אינה אובייקט גרפי; כלומר - היא מבנה נתונים. היישום אינו יכול לקבוע מפת סיביותת שאינה תלויית התקן אל הקשר ההתקן. התבנית של מפת סיביות שאינה תלויית התקן מורכבת משלושה חלקי נתונים נפרדים. החלק הראשון של קובץ מפת הסיביות שאינה תלויית התקן הוא המבנה 08 6וזס:אזקה/יוד81, אשר מוגדר ב- 1 32ּחו/ו כמו שרואים להלן | המהפאסטאונקתועד1מ 680 8סטצ50 6465מעט פפסאם אנ | 10 1 | באב 650ת19פ1ם | פפסא :מ | פתסף 6881080:קמסס1ט סתסום 1512018860 פפסום 159 אנ | בא10 159 פצ1ע | בא10 פפסאם ה68פסקה:12ס1מ פתסאם הט סוד תענה [ המבנה הפסטווס=א1ק/817 מכיל את האיברים שמפורטיס בטבלה 7.1 טבלה 7.1: איברים המבנה ה הפוס אזקהוד1ם. שם האיבר תיאור ופ | מספר הבתים שהמבנה צריך. זווא | רוחב מפת הסיביות, בפיקסלים. | גובה מפת הסיביות, בפיקסלים. אם ערכו של פוט חיובי, מפת הסיביות אינה תלוייית התקן בכיוון למעלה (פ-ח0זו80), ונקודת המוצא שלה היא הפינה השמאלית התחתונה. אם ערכר של וסוס שלילי, מפת הסיביות אינה תלויית התקן בכיווך למטה (חאוסס-קסז) ונקודת המוצא שלה היא הפינה השמאלית. העליונה. 808065 | מספר המישורים עבור התקן המטרה. ערך זה חייב לחיות 1 חט0סא/9ופ | מספר הסיביות לכל פיקסל. ערך זה חייב להיות 1, 4, 8, 16, 24 או ?3 2 זקא2חווו ומבוא ל-ספו שם האיבר סקסו 6 0 0 מ 0 תיאור סוג הדחיסה עבור מפת טיביות דחוסה מלמטה למעלה. סו אינה דוחסת מפת סיביות שאינה תלויית התקן. מלמעלה למטה). ערך זה יכול להיות אחד מאלה שמפורטים. בטבלה 7.2 מגדיר את הגודל של התמונה, בבתים. אפשר לקבוע את ערכו של איבר וה לאפס עבור מפות סיביות ₪68 81 הרזולוציה האופקית, בפיקסלים לכל יחידת מידה, של התקן המטרה עבור מפת הסיביות. היישום יכול להשתמש בערך זה כדי לבחור מפת סיביות מקבוצת משאבים אשר תואמת בצורה. הטובה ביותר את תכונות ההתקן הנוכחי. הרוולוציה האנכית, בפיקסלים לכל יחידת מידה, של התקן המטרה עבור מפת הסיביות. מספר הצבעים בטבלת הצבעים שמפת הסיביות משתמשת בהם. בפועל. אם ערך וה הוא אפס, מפת הסיביות משתמשת במספר. הצבעים המקסימלי, בהתאם לערך האיבר זחטס0א/8וט עבור מצב הדחיסה שמוגדר על ידי ח6550זקוחססוט. אס 51070566 אינו אפס והאיבר וחטססאפופ קטן מ- 16, אצ האיבר 54010566 מגדיר את המספר הממשי של צבעים שמנוע. הגרפיקה או מנהל ההתקן ניגשים אליהס. אס חט800וט שווה ל- 16 או יותר גדול, אז האיבר 510110566 מגדיר את גודל טבלת. הצבע שמפת הסיביות שאינה תלויית התקן משתמשת בה, כדי לבצע אופטימיזציה ללוחות הצבעים של פוסְחו/. אם זחטססטופוט שווה ל- 16 או 32, לוח הצבעים האופטימלי מתחיל מיד אחרי שלוש המסכות של המילים הכפולות (6זחדד 855 016סופנוסם). אסו מפת הסיביות היא מפת סיביות. ארוזה (ספותזום 286696), מפת סייביות שבה מערך מפת הסיביות נמצא מיד אחרי הכותר סַ15ז811%, ואשר. מתייחסים אליו על ידי מצביע יחיד), האיבר 910110560 חייב. להיות אפס או הגודל הממשי של טבלת הצבעים. מספר אינדקסי הצבעים, אשר הגדרת מפת הסיביות שאינה. תלויית התקן מציינת אותם כחשובים לתצוגת מפת הסיביות. אם ערך ה שווה לאפס, כל הצבעים חשובים. כמו שניתן לראות בטבלה 7.1 אפשר ליצור מפות סיביות מטה-מעלה דחוסות. כאשר התוכנית טוענת מפת סיביות דחוסה, היא צריכה לבדוק את ערך האיבר 09500זקח100פ כדי לקבוע את סוג הדחיסה. טבלה 7.2 מפרטת את הערכים האפשריים. של האייבר ח950זקוחססום. פרק ל: מפות סיביות, קבצי-על וסמלום | 163 טבלת 7.2: הערכי האפשריים עבור האיבר ח65510זקוח100ט. ערך תיאור 8 81 | פורמט שאינו דחוס. 8 81 | פורמט דחיסה קיידוד רצף (15ה, 560690 הפס |-חטה) עבור מפות סיביות עם 8 סיביות לכל פיקסל. פורמט הדחיסה הוא: פורמט של שני בתים שמורכבים מבית אחד שמשמש כמונה ואחריו בית שכולל את אינדקס הצבע. 4 81 | פורמט דחיסה קידוד רצף (8.5, 8060066 5090 1-חטוה) עברר. מפות סיביות עם 4 סיביות לכל פיקסל. פורמט הדחיסה הוא: פורמט של שני בתים שמורכב ממונה בתים ואחריו שתי מילים. לאינדקסי צבע. 5 81 | ציון שמפת הסיביות אינה דחוסה וטבלת הצבעים מורכבת. משלוש מסכות צבע של מילים כפולות, אשר מגדירות את. האלמנטים אדוס, ירוק, וכחול בהתאמה, לכל פיקסל. הערך 5 81 תקף עבור התוכניות הפועלות עס מפות סיביותת של 16 או 32 סיביות לפיקסל. המבנה 817%/871850 מחבר את המבנה ה08א18:0716קא11ד81 ואת טבלת הצבעים, כדיי לספק הגדרה שלמה של המימדים והצבעים של מפת הסיביות שאינה תלויית התקן היישוס צריך להשתמש במידע שמכיל האיבר 506וט כדי לאתר את טבלת הצבעים. במבנה סַַא8111801, כמו שרואים להלן. + 01156 (10899) ) ; ( (15126מ. 868062 1ח<-50 תדקפה 1פק) (סהסוו) 05 תומכת בפורמטים לדחיסת מפות סיביות שמגדירות את הצבעים שלהן עם 8 או 4 סיביות לפיקסל. הדחיסה מצמצמת את נפח האחסון בדיסק ובזיכרון אשר דרוש. עבור מפת הסיביות. בטבלה 7.2 למדת על כך ש-00005חו/ תומכת בשלוש תבניות (פורמטים) לדחיסה. כאשר ערך האיבר חסופפסזקוחססוט הוא ₪58 /81, התוכנית היוצרת דוחסת במקור את מפת הסיביות בפורמט קידוד רצף (815) עבור מפת סיביות בעלת 8 סיביות לפוקסל. התוכנית היוצרת יכולה להשתמש בפורמט קידוד רצף, כדי לדחוס במצב מקודד (060666) או במצב מוחלט (9וטו050א). שני מצבי העבודה יכולים להתרחש בכל מקום. באותה מפת סיביות. מצב העבודה המקודד (11006 5060666) מורכב משני בתים. הבית הראשון מגדיר את. מספר הפיקסלים העוקבים שצריכה פאוסשחו/ו לצייר על ידי השימוש באינדקס הצבע שמוכל בבית השני. בנוסף לכך, התוכנית אשר יצרה את מפת הסיביות יכולה לקבוע את הבית הראשון מווג בתים אלה לאפס, כדי לציין חילוף (856306) אשר מציין סוף שורה, סוף מפת סיביות, או דלתה (גו/6פ, כלומר, שינוי). הפירוש של החילוף תלוי בערך הבית השני של זוג הבתים, אשר יכול להיות אחד מאלה שמפורטים בטבלה 7.3 4 32371חווו ומבוא ל-ספו טבלה 7.3: הערכים האפשריים של הבית השני בווג הבתים. ערך | פירוש 0 | סוף שורה 1 | סוף מפת סיביותת 2 | דלתה. שני הבתים שבאים אחרי החילוף מכילים ערכים לא מסומנים. (פסטו3/ 60ַחופחט), אשר מציינים את ההיסט האופקי ואת ההיסט האנכר של הפיקסל הבא בתור, החל מהמקוס הנוכחי. מצד שני, במצב העבודה המוחלט (1060! 18טו050), הבית הראשון שווה לאפס והבית. השני הוא ערך בתחום 03 עד 851. הבית השני מייצג את מספר הבתים הבאים בתור, שכל אחד מהם מכיל את אינדקס הצבע של פיקסל בודד. כאשר הבית השני שווה ל- 2 או פחות, לחילוף יש פירוש דומה לוה של מצב העבודה המקודד. במצב העבודה המוחלט, התוכנית היוצרת חייבת להסב כל הפעלה במפת סיביות שאינה תלוייתת התקן על גבול מילה (0/016. אחרי המבנה אססאפְאּסאזקה/ד81, מפת הסיביות שאינה תלויית התקן מכילה את טבלת הצבעים. טבלת הצבעים היא קבוצה של מבנים מסוג 8690000 אשר מחזיקים. את צבע ה-₪68 לכל צבע שמשמש את מפת הסיביות. המבנה 868000 מתאר צבע שמורכב מהעוצמות היחסיות של הצבעים אדום, ירוק, וכחול. מספר המבנים מסוג 8680 הוא כמספר הצבעים של מפת הסיביות. 71 פשוסטחו מגדירה את המבנה. 868000 כמו שרואים להלן 58 56506 6465מע מ 06 0 0 המבנה 86800 מורכב מהאיברים שמפורטים בטבלה 7.4 טבלה 7.6: איברי המבנה 868008 איבר תיאור 6 | עוצמת הצבע הכחול. טָאה | עוצמת הצבע הירוק. 6 | עוצמת הצבע האדום. טָאה | איבר שמור של 05ו00חו/; חייב להיות אפס. פרק ל: מפות סיביות, קבצי-על וסמלום | 165 החלק האחרון של קובץ מפת הסיביות שאינה תלויית התקן מכיל את נתוני הפיקסלים הממשיים עבור מפת הסיביות. תלמד יותר על יצירה והצגה של מפת. סיביות תלויית התקן ועל מפת סיביות שאינה תלויית התקן בסעיפים הבאים. 3 יצירת מפות סיביות קובץ מפת סיביות הוא אחד משלושת הסוגים של קבצי מקור גרפיים של פאוסשחוא חא באפשרותך ליצור בתוכניות שלך מפות סיביות באמצעות הפונקציה 016318080 ולהציג אותן בחלון. פונקציה זו יוצרת מפת טיביות עס הרוחב, הגובהה ותבנית הצבע (מישורי צבע וסיביות לכל פיקסל) שמוגדרים על ידך. את הפונקציה 0703008080 כותבים כמו בהגדרה זר |) 0263608100 פתמע נמ 1 ,1060 סבהצגט // 1 6+ ג 18 ,תפמ סבחצגע // שה 6+ 16 עמ 4ספט פסתנק ע10סם 05 עשמחטת // ותפש צאט ץ015ת100 50 001268: 5ם1ם 05 עסממטה //‏ ,81:5002561ש פאצט ]/ 010 8ה1מ21והסם צפעצם 50 עבפתנסק //‏ 5:גמעק1* נסט עפאסס 010% ]1 / כאשר התוכניות קוראות לפונקציה קטחטופפוגטוס, פונקציה זר מצפה שיסופקו לה הפרמטרים שמפורטים בטבלה 7.5 טבלה 7.5: הפרמטרים של הפונקציה 87וח/168168. פרמטר תיאור הזוח | רוחב מפת הסיביות בפיקסלים. וזו | גובה מפת הסיביות בפיקסלים. 69805 | מספר מישורי הצבע שמשתמש בהם ההתקן. 080506961 | מספר הסייביות שדורש ההתקן כדי לוהות צבע של פיקסל אחד. 185 | מצביע למערך של נתוני צבע שההתקן משתמש בהם, כדי לקבוע את הצבעים במלבן של פיקסלים. אתה חייב ליישר כל קו סריקה שבמלבן לפי גבול מילה (עליך להשלים באפס קווי סריקה שאינם. מיושרים לפי מילה). אס פרמטר זה הוא 04ו, מפת הסיביות. החדשה לא תהיה מוגדרת. אס הפונקציה 80וחוו98ז03ז6 מצליחה, הערך המוחזר הוא ידית למפת הסיביות; אם הפונקציה נכשלת, הערך המוחצר הוא -11א. 6 71א32חווו ומבוא ל-ספו לאחר שיוצרים מפת סיביות, באפשרותך לקרוא לפונקציה 56/660066 כדי לבחורר במפת הסיביות לתוך הקשר התקן. התוכניות יכולות להשתמש בפונקציה 0163198090 כדי ליצור מפות סיביות בעלות צבע, בגלל סיבות ביצוע, חיישומים צריכים להשתמש בפונקציה 80ו/03008ז0 כדי ליצור מפות סיביות בצבע אחד (פקפוחזום סוחסזהסטהסוא), ולהשתמש בפונקציה 68₪085/פ/031ח01631960. כדי ליצורר מפות סיביות בצבע מלא. כאשר התוכנית בוחרת במפת סיביות בצבע שהוחזרה קודם. מ-ק08ש/99ו0163. לתוך הקשר התקן, 00005 חייבת לוודא שמפת הסיביות הזר מתאימה לפורמט של הקשר ההתקן שמקבל אותה. מכיון ש- 03010168 מקבלת הקשר התקן, היא מחזירה מפת סיביות שיש לה פורמט כמו זה של הקשר ההתקן המוגדר. לכן, קריאות עוקבות ל-:566/09(60 יותר מהירות. מאשר מפות סיביות בצבע שהפונקציה 0103008080 מחזירה. אס מפת הסיביות היא בעלת צבע אחד, צבע הקיידמה (ז0ו60 חטסזפָסזס") מיוצג על וידר סיביות "אפס" וצבע הרקע (זסו60 ַחְטסְזָ830) מיוצג על ידי סיביות "אחדי", עבור הקשר ההתקן של היעד. אם היישום קובע את הפרמטרים הזשוח ו-וחטח לאפס,, 6163/9980 מחזירה את הידית של פיקסל בגודל 1 על 1, במפת סיביות בעלת צבע אחד. כאשר אינך צריך יותר את מפת הסיביות, עליך לקרוא לפונקציה 0661609(66. כדי למחוק אותה. כדי להבין יותר טוב את פעולת הפונקציה 80ו/003008, התבונן בתוכנית ק8וחט/ 8‏ 676866, שבתקליטור המצורף לספר זה. התוכנית יוצרת מפת סיביות בעלת. צבע אחד כאשר המשתמש בוחר באפשרות !1690 מהתפריט. אחר כך היא מעבירה את. מפת הסיביות לתוך הקשר התקן שבזיכרון ומציירת מלבן ואליפסה במפת הסיביות. לבסוף, התוכנית מצינה את מפת הסיביות שמתקבלת. התוכנית מבצעת את העיבודד העיקרי שלה בפונקציה 6זקטחאו. 4 הצגת מפות סיביות התוכנית חייבת יילדחוףיי את מפת הסיביות לתוך הקשר התקן התצוגה, כדי שניתן יהיה להציג אותה. בתוכנית ק8וחא/8 .676366 יצרנו תחילה את מפת הסיביות, ואחר כך הוספנו אותה להקשר ההתקן כדי להציגה. כרגיל, התוכניות משתמשות בפונקציה. וו להצגת מפת סיביות. פונקציה זו מעבירה בלוק סיביות של נתוני הצבע המתייחסים למלבן של פיקסלים, מהקשר התקן המקור שאתה מגדיר אל הקשר התקן. היעד. עליך להעביר תחילה את מפת הטיביות אל הקשר התקן בויכרון (אשר אתה יוצר עס 309606קו9007ו0/63). אחר כך, עליך לקרוא לפונקציה 809 כדי להעתיק. את מפת הסיביות להקשר ההתקן הממשי. מפני שנוחל ההעתקה הממשי של 85% משתמש בפעולות רשת (פחס3זסק0 ז3516ה), אתה צריך לבדוק את ה-5ק6א₪516 של ההתקן לפני שמפעילים את ו/8/9 כנגד ההתקן. פרק ל: מפות סיביות, קבצי-על וסמלום | 167 את הפונקציה 89 כותבים כמו בהגדרה זו 005 11) 4601086 4650186108 60 416מגת // ,400686 סט 8695108610 08 868מ00541-< //‏ ,6פשעאמ 486 עפתעסס 5-1856בקט פ'816ת0:2ם, // ]5 // 0 ,6פשפלת 486 עסתעסם 5-1856סקט פ'816ת0:2ם? // 6 מ4610ה06461 05 91660 //‏ ,מ186אמ ממ4 מס61פה06501 05 361006 //‏ ,%מ10שת 46 46106 008 60 340616 // ,46856 סע 60080016'8: 50066 05 0005618856-א //‏ ,סטפאת 486 פפתפסס 1656-פשספט // 60080016'8: 50006 05 606810856-ץ //‏ (סטפלת 46 פפמפסס 1656-פשספט // 6 ח58610שקס 588565 //‏ מסאאם סאסאם / הפונקציה ז/8/9 מקבלת את הפרמטרים שמפורטים בטבלה 7.6 טבלה 7.6: הפרמטרים של הפונקציה +/8/:8. פרמטר 0 סא ה שוח ה ה 6 6 ו תיאור מוהה את הקשר התקן היעד. מגדיר את הקואורדינטה הלוגית א (00076/0319- ו63וס)) של הפינה. השמאלית העליונה של מלבן היעד. מגדיר את הקואורדינטה הלוגית ץ (00076/0319-צ 094631 של הפינה. השמאלית העליונה של מלבן היעדד מגדיר את הרוחב הלוגי של מלבן המקור ושל מלבן היעד. מגדיר את הגובה הלוגי של מלבן המקור ושל מלבן היעד. מוהה את הקשר התקן המקור. מגדיר את הקואורדינטה הלוגית א (031ו00076-א 604/61 של חפינה. השמאלית העליונה של מלבן המקור. מגדיר את הקואורדינטה הלוגית + (6007600319-+ 6/1631 של הפונה. השמאלית העליונה של מלבן המקור. מוהה את קוד פעולות הרשת (חסז3זפק0 ז56). קודים אלה מגדירים. איך הפונקציה צריכה לשלב את נתוני הצבע של מלבן המקור עם נתוני הצבע של מלבן היעד, כדי ליצור את הצבע הסופי הרצוי. טבלה 7.7 מפרטת חלק מקודי הרשת הנפוצים. 8 3271 ומבוא ל-ספו למדת שהתוכניות מבצעות פעולות רשת על מפות הסיביות כאשר ממקמים אותן בתוך. הקשר התקן. טבלה 7.7 מציגה חלק מקודי הרשת הנפוצים, אשר משמשים את התוכניות כאשר ממקמים מפות הסיביות בהקשר התקן. טבלה 7.7: פעולות רשת (חסוז5ז6ק0 זפ5ה) נפוצות אשר יבוצעו על ידי התוכניות בעבודה. עם מפות סיביות. עוך ב דפ 1 1 ונ דסא ד אק קד מו 0 ב 5 5 ב תיאור משתמש בצבע הקשור עם אינדקס אפס שבלוח הצבעים הפיוי , כדי למלא את מלבן היעד (צבע זה הוא שחור עבור ברירת. המחדל של לוח הצבעים). הופך את מלבן היעד. משתמש באופרטור הבוליאני פא כדי למזג את הצבעים של מלבן המקןר עם התבנית המוגדרת (חזפצהק 5060066) משתמש באופרטור הבוליאני 08 כדי למזג את הצבעים של מלבן המקור שעבר היפוך (866130/6 50166 666זשח1) עם. הצבעים של מלבן היעד. מעתיק אל היעד את מלבן המקור שעבר היפוך. משתמש באופרטור הבוליאני 08 כדי לשלב את הצבעים של מלבני המקור והיעד, ואחר כך הופך את הצבע שמתקבל. מעתיק את התבנית המוגדרת למפת סיביות היעד. משתמש באופרטור הבוליאני 08 כדי לחבר את הצבעים של התבנית המוגדרת עס הצבעים של מלבן היעד. משתמש באופרטור הבוליאני 08, כדי לשלב את צבעי התבנית. עם הצבעים של מלבן המקור שעבר היפוך. באפשרותך להשתמש באופרטור הבוליאני 08 כדי לשלב את תוצאת פעולה זו עס צבעי מלבן היעד. משתמש באופרטור הבוליאני סא כדי לשלב את הצבעים של מלבני המקור והיעדד מעתיק את מלבן המקור ישירות למלבן היעד משתמש באופרטור הבוליאני סא כדי לשלב את צבעי מלבן היעד שעברו היפוך עס הצבעים של מלבן המקור. משתמש באופרטור הבוליאני 08א כדי לשלב את הצבעים של מלבני המקור והיעד. משתמש באופרטור הבוליאני 08 כדי לחבר את הצבעים של מלבני המקור והיעד. משתמש בצבע הקשור עם אינדקס 1 שבלוח הצבעים הפיזי כדי למלא את מלבן היעד (צבע זה הוא לבן עבור ברירת המחדל של לוח הצבעים). פרק ל: מפות סיביות, קבצי-על וסמלום | 169 אם טרנספורמציות סיבוב או גוירה (0ג56, טרנספורמציה אשר משנה את האורך והכיוון הנראים של קוויס אנכיים או אופקיים באובייקט) נמצאת בפעולה בהקשר ההתקן של המקור, 89 מחזירה ציון שגיאה. אם יש טרנספורמציות אחרות בהקשר התקן המקור (והטרנספורמציה המתאימה אינה מופעלת בהקשר ההתקן של היעד), הפונקציה 809 מותחת, דוחסת, או מסובבת את המלבן שבהקשר ההתקן של היעדד כפו שדרוש. אם תבניות הצבע של הקשר התקן המקור ושל הקשר התקן היעד אינן תואמות, הפונקציה 89/6 מתאימה את תבנית צבע המקור לזו של תבנית היעד. כאשר ַו9ו8₪₪ כותבת קובץ-על משופר (%6130/6 6סחחחש), עלולה להייות שגיאה אס הקשר ההתקן של המקור מוהה הקשר התקן של קובץ-על משופר. 89/6 מחצירה שגיאה אם הקשרי ההתקן של המקור והיעד מייצגים התקנים שונים (כלומר צריך תמיד ליצור את הקשר המקור עס הפונקציה 800/906ק0163160070). כדי להבין יותר טוב כיצד הפונקציה 89 פועלת כחלק מתוכנית, התבונן בתוכניתת 5 עפ שבתקליטור המצורף לספר זה (בתיקיה 00007). התוכנית טוענת. מפת סיביות לזיכרון, ואחר כך מעבירה אותה אל שטח הלקוח של החלון. החלק. הפעיל של התוכנית נמצא בפונקציה סזקטְחע 5 יצירת מפות סיביות תלויות התקן (518) סח תומכת במפות סיביות תלויות התקן ובמפות סיביות שאינן תלויות התקן. בסעיף קודם יצרנו מפת סיביות תלויית התקן והצגנו אותה על המסך. הצגת מפות. סיביות שאינן תלויות התקן נעשית בדרך דומה. חובה להפוך כל מפת סיביות שאינה תלויית התקן למפת סיביות תלויית התקן, כדי שנוכל להציג אותה בהקשר התקן. משתמשים בפונקציה 85וחא9018ו0103 כדי ליצור מפת סיביות תלויית התקן מתוך מפת סיביות שאינה תלויית התקן, ואפשר ג לקבוע את הסיביות של מפת הסיביות. את הפונקציה 80וז/016319018 כותבים כמו כמו בהגדרה שלהלן 0568060 ענמ 0 460106 0 שנשממת // ספ פגחטוע 0 עשמה1סם //‏ ,מגתמםב* תמתתפאסקגנקתעפזם צפאסס. 105046 804 186פ // 6 מ101811246:0ה1 // סו 80 18161411286108 60 פ6מתנסם //‏ ,ו1ה1ממ1* נסט עפאסס מפחט1ט 50 עסטת1סק // ,נמעמ1* סעאצקתעפזם צפאסס. 8 886ש08-50ב00 // 01 צאט / 0 ה2פחווו ומבוא ל-ספו הפונקציה ק9וזו61636018 מקבלת את הפרמטרים שמפורטים בטבלה 7.8 טבלה 7.8 : הפרמטרים של הפונקציה 80וח01618018/0. פרמטר | תיאור 6 | מזהה את הקשר ההתקן. חווחמקן | מצביע למבנה מסוג ה06הפוסאזקהוידום. אם זוחזו! שווה לערך דזוו1 68%, הפונקציה תשתמש במבנה. אשסהשהוס<שוזקוד81 כדי להשיג את הרוחב והגובה הרצויים של מפת. הסיביות ומידע אחר. שים לב שערך חיובי עבור הגובה מציין מפת. סיביות שאינה תלויית התקן מלמטה-למעלה, וערך שלילי עבור הגובה. מציין מפת סיביות שאינה תלויית התקן מלמעלה-למטה. תסריט זה תואס את הפונקציה פ8וזא019ט01031. אחזוט! | קבוצה של דגלי סיביות אשר מגדירים כיצד מערכת ההפעלה מאתחלת. את סיביות מפת הסיביות. התוכנית יכולה להגדיר קבוע אחד בלבד לפרמטר וה. ערך הפרמטר חייב להיות ד1א1 08% או אפט. אם דגל זה נקבע, מערכת ההפעלה משתמשת בנתונים שהפרמטרים. אחזפקו ו- ווחסטו מצביעים עליהם, כדי לאתחל את סיביות מפת. הסיביות. אם דגל זה אינו נקבע, הפונקציה אינה משתמשת בנתונים. שמוצבעים על ידי פרמטרים אלה. אם זוח1ו80 שווה לאפס, מערכת. ההפעלה אינה מאתחלת את סיביות מפת הסיביות. אחזסקו | מצביע למערך של בתים, שמכיל את נתוני האתחול של מפת הסיביות. הפורמט של הנתונים תלוי ביבר זחטססטו8וט של המבנה סאזקא/ד1 אשר הפרמטר וחזפפ! מצביע עליו. ווחטקו | מצביע למבנה מסוג סַאזקאווד81 אשר מתאר את המימדים ותבנית. הצבע של המערך, אשר הפרמטר אוחזפם! מצביע עליור 6 | מגדיר אם התוכנית אשר ייצרה את מפת הסיביות גם מאתחלת את. האיבר 5ז0ו00זט של המבנה 81101850 ; וא כן, האס 5זסו00/וחם. מכיל ערכים מפורשים של אדום, ירוק וכחול (%68), או אינדקסים של לוח צבעים. הפרמטר ססַ05ש! חייב להכיל ערך אחד או יותר מהערכים. שמפורטים בטבלה 7.9 הפרמטר 6ף009 מקבל ערך קבוע אחד מתוך שני ערכים אפשריים. טבלה 7.9 מפרטת. את ערכי הקבועים האפשריים של הפרמטר סמַ51053. פרק 7: מפות סיביות, קבצי-על וסמלום ‏ 171 טבלה 7.9 הערכים האפשריים של הפרמטר 1005896. עוך פירוש 5 אק 08 | קובץ מפת הסיביות מספק טבלת צבעים שמורכבת ממערך של אינדקסים בני 16 סיביות בלוח הצבעיס הלוגי של הקשר ההתקן, אשר התוכנית מציבה לתוכו את מפת הסיביות. 605 ₪68 8זם | קוב מפת הסיביות מספק טבלת צבעים ומכיל ערכי ₪68 אם הפונקציה מצליחה, הערך המוחור הוא ידית למפת הסיביות, אם הפונקציה נכשלת, הערך המוחזר הוא וט כדי להבין יותר טוב את פעולת הפונקציה ק09ש/6/63)0018, התבונן בתוכנית קבוחטו 8‏ 018 076806 שבתקליטור המצורף לספר זה (בתיקיה 07קָ618). התוכנית. טוענת מפת סיביות שאינה תלויית התקן, מציירת את מפת הסיביות בהקשר התקן בויכרון, ואחר כך מתרגמת את הקשר ההתקן שבויכרון להקשר ההתקן של המסך (חלון ‏ התוכנית). ‏ כרגיל, ‏ קוד התוכנית שבפונקציה 06זקח/ של התוכנית קהוחז/ 8‏ 018 016866 מבצע את העיבוד המעשי. 6 מילוי מלבן בתבנית תוכניות משתמשות במפות סיביות, כדי להוסיף גרפיקה לתצוגת החלון. בנוסף לכך, תוכניות יכולות להשתמש בעטים ובהקשרי התקן בציכרון, כדי לצייר בחלון צורותת פשוטות או מורכבות. לדוגמה, התוכניות יכולות להשתמש בפונקציה 309 כדי לציירר מלבנים בהקשר התקן. הפונקציה 819% מציירת את המלבן הנתון לתוך הקשר ההתקן באמצעות המברשת הנוכחית, וו שנבחרה לאחרונה. הפונקציה 8 משתמשת בפעולת הרשת (חסוזזפק0 ז85506) הנתונה כדי לשלב את צבע המברשת ואת. צבע המשטח. את הפונקציה ז/0319 כותבים כמו בהגדרה שלהלן. 005 1) 00065 460106 50 ב1התמת // 6 ספ 5 פשהפסם 181%-צסקמט 05 .0028-% // 6 5 0 .06 // 5 ששהצסם 18%%-צסקמט 0% .0098-ץ // 6 5 90 .0 // 4 5 50 616ה6002: 05 ת106ט // שת 46 4 > 60 2500806616 08 תתפצמת // ,פופה 46 עטק צ4560 // 90 טסוו 2 זקא2חווו ומבוא ל-ספו הפונקציה 319 מקבלת את הפרמטרים שמפורטים בטבלה 7.10 טבלה 7.10: הפרמטרים של הפונקציה מק פרמטר תיאור 6 | מזהה את הקשר ההתקן. | מגדיר ביחידות לוגיות את קואורדינטת א של הפינה השמאלית. העליונה של המלבן אשר הפונקציה עומדת למלא. | מגדיר ביחידות לוגיות את קואורדינטת + של הפינה השמאלית. העליונה של המלבן אשר הפונקציה עומדת למלא. שוח | מגדיר ביחידות לוגיות את רוחב המלבן. וזח | מגדיר ביחידות לוגיות את גובה המלבן. קסאוו | מגדיר את קוד פעולת הרשת (6006 חסטזסק0 זסופה). קוד זה. יכול להיות אחד הערכים שמפורטים בטבלה 77.11 כמו שראית בטבלה וו, הפרמטר ₪80 מקבל מספר שונה של קודי פעולות רשת. טבלה 7.11 מפרטת את קודי פעולות הרשת השונים, אשר התוכנית תשתמש בהם. טבלה 7.11: הערכים האפשריים של קודי רשת. ערך תיאור +קססזאק | מעתיק אל מפת סיביות היעד את התבנית המוגדרת. דחפשזדאק | משתמש באופרטור הבוליאני 08 כדי לשלב את צבעי התבנית. המוגדרת ואת צבעי מלבן היעד דהפשא1ד5ם | הופך את מלבן היעד. 5 | משתמש בצבע הקשור עס אינדקס אפס שבלוח הצבעיס הפוני, כדי למלא את מלבן היעד (צבע זה הוא שחור עבור ברירת המחדל של לוח הצבעים) 55פאשדזוו | משתמש בצבע הקשור עם האינדקס 1 שבלוח הצבעים הפווי, כדי למלא את מלבן היעד (צבע זה הוא לבן עבור ברירת המחדל של. לוח הצבעים) ערכי הפרמטר קסחוו של הפונקציה 039 הם תת-קבוצה מוגבלת מהקוד המלא של 6 הפעולות המתייחסות לרשת תלת-מימדית (835191 /ְזַחז1); במיוחד, אינך יכול. להשתמש בקוד פעולה אשר מתייחס למלבן מקור. לעיון ברשימה המלאה של קודי הפעולות עבור רשת תלת-מימדית פנה אל העורה המקוונת של המהדר שלך. דע, שלא כל ההתקנים תומכים בפונקציה 919/0. צריך להשתמש בפונקציה 661099/690305 כדר לבדוק את תאימות ד81181 ₪6 של ההתקן, לפני שאתה קורא לפונקציה 03196 עבור ההתקן. פרק ל: מפות סיביות, קבצי-על וסמלום = 173 כדי להבין יותר טוב את פעולת הפונקציה 6ו9ו73, התבונן בתוכנית ₪661 זחוט שבתקליטור המצורף לספר וה (בתיקיה 07קח6). התוכנית מציירת בחלון התוכנית. תיבה אפורה עם גבול תלת-מימדי. התוכנית 866% 081 משתמשת בשלוש מברשות. סטנדרטיות כדי לצייר את המלבן שמרכיב את הגבול התלת-ממדי של התיבה הפונקציה 06ז00ח//ו של התוכנית ₪66 .₪81 מבצעת את העיבוד המעשי. 7 שימוש ב-56+018/15 ככל שהתוכניות הופכות ליותר מורכבות, ייתכן לעיתים צורך לשנות את ערכת הצבעים של מפת הסיביות (6וח0ה50 ז0ו0) 5'בוח8). למדת שמפות סיביות שאינך תלויות התקן מחציקות את מידע הצבע בכותר מפת הסיביות (863000! ₪085 באפשרותך להשתמש בצבעים שהתוכנית היוצרת אחסנה קודם לכן בכותר מפת הסיביות שאינה תלויית התקן, כדי לשנות את הצבעים של מפת סיביות נתונהה הפונקציה 56018405 משתמשת בנתוני הצבע שהיא מוצאת במפת הסיביות המוגדרת. שאינה תלויית התקן, כדי לקבוע את הפיקסלים במפת הסיביות. את הפונקציה 85 כותביס בתוכניות כמו בהגדרה שלהלן 46 0 450106 50 מנמחמת // 6 ספ 00 05 שנבתגמ // ופחמת פהאענמט 1186 5088 הַתנמ8689 // 56450 פאצט 8 508 05 טשמחמת // 50 פאנט חפוס 08 עבששב // ,טי סנס עפאסס 10% שפטססטפםפ 08 8442685 //‏ |נממ1* סעאנסתעזט צפאסס טג 1 00105 05 שסצט // 0016 פאצט / הפונקציה 5601816 מקבלת את הפרמטרים שמפורטיס בטבלה 7.12 טבלה 7.12: הפרמטרים של הפונקציה 56%018185. פרמטר תיאור 6 | מזהה את הקשר התקן. קוחטו | מוהה את מפת הסיביות אשר הפונקציה 561018185 עומדת לשנות על. ידי שימוש בנתוני הצבע ממפת הסיביות שאינה תלויית התקן. 5030903 | מגדיר את קו הסריקה ההתחלתי עבור נתוני הצבע שאינו תלוי התקן במערך שמוצבע על ידי הפרמטר 85אקן. 5 | מגדיר את מספר קווי הסריקה שמצאה הפונקציה במערך שמכיל. נתוני צבע שאינם תלויים בהתקן. 4 זקא2פחווו ומבוא ל-ספו פרמטר תיאור פוופצמן | מצביע לנתוני הצבע של מפת הסיביות שאינה תלויית התקן, אשר הפונקציה מאחסנת כמערך בתים. התבנית של ערכי מפת הסיביות. תלויה באיבר זחטססאו8ום של המבנה סַאַקאואד81 שמוצבע על ידי הפרמטר ווחטט ווחטקו | מצביע למבנה הנתונים 81171850 שמכיל מידע על מפת הסיביות. שאינה תלויית התקך 06 | מגדיר אם הגדרת מפת הסיביות מכילה את האיבר 015ו60ווחט של. המבנה 81171850 ; ואם כן, האם 015ו00וחט מכיל ערכים. מפורשים של אדום, ירוק, כחול (868), או אינדקסי צבע של לוח. צבעים. הפרמטר 00101056 חייב להיות אחד הערכים שמפורטים. בטבלה 7.13 בתוך טבלה 7.12 אפשר ללמוד שהפרמטר 1000/0058 מקבל מספר ערכים קבועים. מובנים. טבלה 7.13 מפרטת את הערכים שמקבל הפרמטר 07055ו00. טבלה 7.13: הערכים האפשריים של הפרמטר 1000107056. ערך פירוש 6005 4 18 | טבלת הצבעים מורכבת ממערך של אינדקסים בני 16 סיביות בלוח הצבעים הלוגי של הקשר ההתקן שמזוהה על. ידי הפרמטר 06 5 868 018 | מפת הסיביות מספקת טבלת צבעים שמכילה במפורש ערכי 8 אם הפונקציה מצליחה, הערך המוחזר הוא מספר קווי הסריקה אשר הפונקציה 5 העתיקה בהצלחה; אם הפונקציה נכשלת, הערך המוחור הוא אפס. וסחו משיגה מהירות אופטימלית בציור מפת סיביות כאשר הסיביות של מפת הסיביות הם אינדקסים בלוח הצבעים של המערכת. יישום יכול לקרוא לפונקציה 0000500065ו3וח0615/500 כדי לקבל את צבעי לוח הצבעים של המערכת ושל האינדקסים. לאחר שהיישוס מקבל את הצבעים והאינדקסים, הוא יכול ליצור את מפת הסיביות שאינה תלויית התקן. הפונקציה משתמשת בהקשר ההתקן שמווהה על ידי הפרמטר ₪66 רק אס אתה מציב את הקבוע 5 ואל 018 עבור הפרמטר 056ז0ו0סט!; אחרת, הפונקצייה מתעלמת מהפרמטר 6 לתוכנית שלך או לתוכנית אחרת אסור לבחור את מפת הסיביות שמזוחה על ודי הפרמטר פוחפה לתוך הקשר ההתקן, בשעה שהיישום קורא לפונקציה 065ח7/6010וח6619/50. נקודת המוצא של מפות סיביות שאינן תלויות התקן מלמטה-למעלה היא הפינה השמאלית התחתונה של מפת הסיביות; נקודת המוצא של מפות סיביות שאינן תלויות התקן מלמעלה-למטה היא הפינה השמאלית העליונה של מפת הסיביות. פרק ל: מפות סיביות, קבצי-על וסמלום | 175 כדי להבין יותר טוב את פעולת הפונקציה 5601805, התבונן בתוכנית פזסוסס. 6896 שנמצאת התקליטור המצורף (בתיקיה 07קָח6). תוכנית זו מציירת. מפת סיביות שאינה תלויית התקן בשטח הלקוח של החלון. בתחילה, התוכנית צובעת. את מפת הסיביות בצבעי שחור ולבן. כאשר המשתמש בוחר באפשרות שפד מהתפריט, התוכנית משנה את נתוני מפת הסיביות, כך שכל שני פיקסלים שחורים. עוקבים מחזירים את הצירוף של פיקסל כחול-שחור. הפונקציה 66זח מכילה את. הקוד המעשי של התוכנית. 8 פלט של מפת סיביות להתקן נתון באמצעות 000166 56+0181151 למדת שבאפשרות התוכניות להשתמש בפונקציה 510181 כדי לקבוע את סיביותת הצבע של מפת סיביות, בהתאם לערכים שמכיל הכותר של מפת הסיביות שאינה תלויית התקן. פעמים רבות, התוכניות חייבות לצמצם את מספר הצבעים של מפת סיביות שאינה תלויית התקן בשעה שהן מפיקות פלט אל התקן מסוים. לדוגמה, 605 חו חייבת למפות מפת סיביות של 256 צבעים למפת סיביות של 20 צבעים כאשר צריך להוציא את מפת הסיביות כפלט אל צג א6/. הפונקציה 501018010060/65 מציירת מפת סיביות שאינה תלויית התקן בהתקן שקשור עם הקשר ההתקן הנתון. בנוסף לכך, הפונקציה משתמשת בנתוני הצבע של מפת הסיביות שאינה תלויית התקן המקורית, כדי לקבוע את הפיקסלים במפת הסיביות המצוירת. את הפונקציה 56101851006/66 כותבים בתוכניות כמו בהגדרה שלהלן. 46 30018155 6אפפתסם 000108 05 שנההגם // הי 186-פבמקט 05 866ת00281-א // א 46 .9606 .068% 05 8שתט0ש // קט 05 שממת0201סס-ץ // 4 .006ע ,008% 05 צשתעמם // 01880 560880916 10506 // סו 06406 560880016 שפמ0. // 6 ספסוום 05 002010886ס-6 // 46 605ץ מסעוסט 01 פשתצמם // 05 9010866 600-ץ // 46 0פט50 05 שמשמש ]/ ץפצפג 3 1106 מבסם 5%צ91 // 5 פאצט 11868 5088 05 פשמממם // 650 עאצט 168 מ1ם מ16א ע8שטב 05 484:658 // ,פ6!מטם1* מנסט עפאסס 10 שפטוסטע%פ 0% 55סע800 //,1מעמ1* סקצקתעפזם צפאסס. טג // הנק עם המת // 00 אנט / 6 זקא2פחווו ומבוא ל-ספו הפונקציה 56101805100666 מקבלת את הפרמטרים שמפורטים בטבלה 7.14 טבלה 7.14: הפרמטרים של הפונקציה 008/66ד51018/05. פרמטר 66 סא פצ ו ו 6 6 ה בו הפו ב ב תיאור מוהה את הקשר ההתקן. מגדיר ביחידות לוגיות את קואורדינטת א (4-00016/0819) של הפונה. השמאלית העליונה של מלבן היעד. מגדיר ביחידות לוגיות את קואורדינטת + (60016/089-+) של הפינה. השמאלית העליונה של מלבן הועד. מגדיר ביחידות לוגיות את הרוחב של מפת הסיביות שאינה תלויית. התקן מגדיר ביחידות לוגיות את הגובה של מפת הסיביות שאינה תלוייתת התקן. מגדיר ביחידות לוגיות את קואורדינטת א של הפינה השמאלית. התחתונה של מפת הסיביות שאינה תלוייית התקן. מגדיר ביחידות לוגיות את קואורדינטת ץ של הפינה השמאלית. התחתונה של מפת הסיביות שאינה תלוייית התקן. מגדיר את קו הסריקה ההתחלתי במפת הסיביות שאינה תלויית. התקן מגדיר את מספר קווי הסריקה במפת הסיביות שאינה תלויית. התקן, במערך שמוצבע על ידי הפרמטר פזוצן. מצביע לנתוני הצבע של מפת הסיביות שאינה תלויית התקן, אשר התוכנית היוצרת של מפת הסיביות אחסנה אותם קוד לכן כמערך. בתים. מצביע למבנה הנתונים 81 שמכיל מידע על מפת הסיביותת שאינה תלויית התקן. מגדיר אס האיבר 5ז0ו00ווח של המבנה 1850ק8171%/4 מכיל ערכים. מפורשים של אדום, ירוק, כחול (868), או אינדקסי צבע של לוח. צבעים. הפרמטר 00101056 חייב להיות אחד הערכים שמפורטים. בטבלה 7.13 ניתן לראות, שהפרמטר 100000056 מקבל אחד משני ערכים מובנים. טבלה 7.13 מפרטת את הערכים שמקבל הפרמטר 0/0105 עם הפונקציה 561018//1006/65. פרק ל: מפות סיביות, קבצי-על וסמלום = 177 הפונקציה משיגה מהירות אופטימלית בציור מפת טיביות כאשר הסיביות של מפת הסיביות הס אינדקסים בלוח הצבעים של המערכת. היישום יכול לקרוא לפונקציה 065ח10ו6/קוח0פ/6619 כדי לקבל את צבעי לוח הצבעים של המערכת ואת האינדקסים. לאחר שהיישום מקבל את הצבעים והאינדקסים, הוא יכול ליצור את מפת הסיביות שאינה תלויית התקן. נקודת המוצא של מפות סיביות שאינן תלויות התקן מלמטה-למעלה היא הפינהה השמאלית התחתונה של מפת הסיביות; נקודת המוצא של מפות סיביות שאינן תלויות. התקן מלמעלה-למטה היא הפינה השמאלית העליונה של מפת הסיביות. על התוכנית. לצמצם את כמות האיכרון שדרושה לקביעת סיביות במשטח ההתקן מתוך מפת סיביות גדולה שאינה תלויית התקן. לשם כך, היא יכולה. לחזור. ולקרוא ל- 560018/070060/68 כדי לחלק את הפלט, פעולה שמציבה כל פעם חלקים שונים. ממפת הסיביות אל תוך המערך פופפו. ערכי הפרמטרים 0115600ופט ו- 650302065 מוהים את החלק של מפת הסיביות שמכיל המערך >אפוק|. הפונקציה 5101810066 מחזירה שגיאה אם תהליך אשר מופעל ברקע (6חטסזף836%) קורא. לה בומן שמסך 15-205/ מלא מופעל בקידמה (10006ףסזס=). כדי להבין יותר טוב את פעולת הפונקציה 6/ש561018/81008, התבונן בתוכניתת 05 2 אופזם שבתקליטור המצורף לספר וה (בתיקיה 07ק5ח6). התוכנית. משתמשת במפת סיביות שאינה תלויית התקן ובלוח צבעים מותאם אישית. התוכנית. מציירת את מפת הסיביות שאינה תלויית התקן בגודלה הנורמלי, ומשתמשת לצורך. זה בפונקציה 081006/65ו560019 ואחר כך משתמשת בפונקציה 5001000188 כדי להציג את מפת הסיביות ב- 200 אחוו מגודלה המקורי. העיבוד המעשי של התוכנית. 5 2 שופזם נעשה בפונקציות הטיפול בהודעות 685476 אש ו- זאזאק ואר שבפונקציה סזלטחעצ. 9 קבצי-על (16+81!65]) בסעיפים קודמים למדת על מפות סיביות. גם למדת ש- פווסחוו תומכת בשלושה סוגי גרפיקה בסיסיים. הסוג השני ידוע כ- קובץ-על (6186/6א). קבצי-על מכילים למעשה קריאות מקודדות לפונקציות של ממשק ההתקן הגרפי 06069 6100006 0060 635 חסווסחט 066ווטזח1). כאשר תוכנית מפעילה (ץ8וק) קובץ-על, התוצאה זהה, כאילו התוכנית הייתה משתמשת ישירות בפונקציות ממשק ההתקן הגרפי. למעשה, תוכל לראות קובץ-על כמאקרו גרפי יעיל. באפשרותך לאחסן קבצי-על בויכרון (אר כקובץ בדיסק), באפשרותך לטעון מחדש את קובץ-העל, וגס תוכל להריץ את קובץ-העל במספר כלשהו של יישומים שונים. בנוסף לכך, קבצי-על הם אינם תלויר התקן יותר מאשר מפות סיביות, מכיון שהמחשב (וההתקן) מפרשים את פונקציות. ממשק ההתקן הגרפי בהתבסס על הקשר התקן הפלט. א9 פאוסחו/ ו- דא פווסטחווו תומכות בקבצי-העל של 9% פאוסטחוו. עס זאת, שתר מערכות ההפעלה של 2חו תומכות גם כן בסוג החדש של קובץ-על משופר (696חהחחם. 6, וכך גם התוכניות שלך, צריכות להשתמש בקבצי-על משופרים. ההבדל העיקרי בין קובץ-על של אפ פווסחו לבין קובץ-על משופר הוא בכך שקבצי-על משופרים באמת אינם תלויים בהתקן וגם תומכים בפונקציות החדשות של ממשק ההתקן הגרפי של זקא 32חואו (זקא 601 32חוו/. 8 הככו ומבוא ל-ספו חשוב להבין שממשק 471 לבחו תומך באופן מלא בקבצי-העל של 16חוו. למעשה, זחא 32חו מכיל שתי קבוצות של פונקציות המיועדות לקבצי-על - קבוצה אחת עבור זחא 16חוו וקבוצה שנייה עבור 71 32ח/. לדוגמה, התוכניות יכולה לקרוא לפונקציה 7 כדי להריץ קובץ-על בן 16 סיביות. בדרך דומה, התוכניותת יכולה לקרוא לפונקציה 6!גופויוחחפַעמוק כדי להריץ קובץ-על בן 32 סיביות. ההסברים. שנציג בספר וה מתמקדים בקבצי-על משופרים, ולא בקבצי-על של 16ְחוו. 0 יצירה והצגה של קבצי-על (16%361165]) למדת שקובץ-על הוא סדרת הוראות של ממשק התקן גרפי שהתוכנית היוצרת אחסנה. קודם לכן במבנה כלשהו. השתמש בפונקציות של ממשק ההתקן הגרפי בהקשר התקן של קובץ-על, כדי ליצור קבצי-על. השתמש בהקשר התקן מיוחט (060/09 6010006 0) כבסיס עבור קובץ-העל שבו תחזיק מימדי תמונה עבור התקני פלט שונים. ההתקן המיוחס מתאים להתקן שבו מוצגת התמונה לראשונה. משתמשים בפונקציה 1600016 כדי ליצור קבצי-על. פונקציה זו יוצרת הקשר התקן עבור מבנה, או פורמט, משופר של קובץ-על. באפשרותך להשתמש בהקשר ההתקן הנוצר כדי לאחסן תמונה שאינה תלויית התקן. את הפונקציה 10300000%6135/6. כותבים. בתוכנית, כמו שניתן לראות בהגדרה שלהלן מע ספ 6%%פתסם 40010 08ה5020ם: 60 ב1מתמת // 95 ספ 50108 11002 8 50 עבמה1סק //‏ ,שממהש11תק1 תלפפסק1 פתנשתטסם 4 0: ששמהנסם //‏ ,םסבהמ1* צסמת צפאסס 1מסוסקס תג 50 עבטהנסק // מס1סם1ע0פממק1 תעפפסק1 שת1ע80 מ10סס1ע50 // הפונקציה 016130/6ח6163195 מקבלת את הפרמטרים שמפורטים בטבלה 7.15 טבלה 7.15: הפרמטרים של הפונקציה 8650/6030/6סז). פרמטר | | תיאור 6 | מזהה הקשר התקן מיוחס עבור קובץ-על המשופר. פוחפחטווק! | מצביע לשם הקובץ של קובץ-על משופר שהפונקציה צריכה ליצור. אס פרמטר זה הוא -1, קובץ-העל המשופר היה מבוסס איכרון והתוכן שלו יאבד כאשר משתמשים בפונקציה 1/61306חפסו6וט, כדי למחוק אותו. ו | מצביע למבנה מסוג 8567 אשר מגדיר את מימדי התמונה (ביחידות. של 0.01 מילימטר) שהתוכנית תאחסן בסופו של דבר בקוב-העל. המשופר. פרק ל: מפות סיביות, קבצי-על וסמלום = 179 פרמטר תיאור חסטקוז0פטסמן | מצביע למחרוזת אשר מגדירה את שם היישום, אשר יצר את. התמונה ובכלל וה גם כותרת התמונה. המחרוזת שמצביע עליהה הפרמטר חסטו0950ק! חייבת להכיל תו )וט בין שם היישום לבין שם התמונה וחייבת להסתיים בשני תווי.4וא. לדוגמה המחרוות. *יס5516 6078316ו86 פסוחקפז6 צאיי, שבה 0 מסמן את הת וטא!. א חסטקו650ספ! הוא -0א, אין כניסה מתאימה בכותר של קובץ-העל המשופר. סח משתמשת בהתקן המיוחסי שמזוהה על ידי הפרמטר 66861 כדי לרשום את הרוולוציה ואת היחידות של ההתקן שבו מוצגת התמונה במקור. אם הפרמטר 0686 הוא 611א, 5סחוו משתמשת בהתקן התצוגה הנוכחי לצורך ייחוס. האיברים 16 ו-67ד של המבנה ₪861 שמוצבעים על ידי הפרמטר :1860 חייבים: להיות קטנים מהאיברים זִַפָ ו-וזסזוסם, בהתאמה. הנקודות לאורך צלעות המלבן נכללות בתמונה. אם הפרמטר :2860 הוא 01 ממשק ההתקן הגרפי מחשב את המימדים של המלבן הקטן ביותר שמקיף את התמונה שצויירה על ידי היישום. התוכניות צריכה לספק את הפרמטר 86| כל שהדבר אפשרי. יישומים משתמשים בהקשר ההתקן שנוצר על ידי הפונקציה 0/6138/6ח95ו63ז) כדר לאחסן תמונה גרפית בקובץ-על משופר. התוכניות יכולה למסור את הידית אשר מזהה. את הקשר ההתקן הזה לכל פונקציה של ממשק התקן גרפ. לאחר שיישום מאחסן תמונה בקובץ-על משופר, הוא יכול לקרוא לפונקציה 6וזזסוחחסַהוק כדי להציג את התמונה בהתקן פלט כלשהו. כדי להציג את התמונה, פוסחוו. משתמשת במלבן שמוצבע על ידי הפרמטר 89₪ק1 ובנתוני הרוולוציה מההתקן המיוחס כדי למקם ולדרג את התמונה. הקשר ההתקן שמחצירה הפונקציה. 66 החם/פוק מכיל את אותם ערכי ברירת המחדל שקשורים עס כל הקשר התקן חדש כלשהו. יישומים חייבים להשתמש בפונקציה 6028/6815/%חו//660 כדי להמיר קובץ-על משופר לפורמט 5ס0חוו הישן של קובץ-על. שם הקוב של קובץ-על משופר צריך להשתמש בסיומת *וו8. כדי להבין יותר טוב את פעולת הפונקציה 1603(6חח63195ז6, התבונן בתוכניתת 80% ח06מ9פסז) שנמצאת בתקליטור המצורף לספר וה (בתיקיה 07ק6). התוכנית. יוצרת קובץ-על משופר של מלבן שממולא במברשת מסוג 01055-1/800066 (מללו על וידר תבנית רשת) בעת האתחול. התוכנית מריצה אחר כך את קובץ-העל מתוך הפונקציה. לטיפול בהודעות. דא1ק א//.. התוכנית מדרגת את קוב-העל בהתבסס על שטח הלקוח של החלון, ומשמעות הדבר שגודל המלבן משתנה ככל שמשנים את גודל החלון. פונקציות הטיפול בהודעות 685416 עו ו- דאזאק ו מבצעות את העיבודד המעשי בתוכנית זור 0 321חווו ומבוא ל-ספו 1 רשימה מפורטת של קבצי-על משופרים (6ד פחוזבּזוסוהטח" 5 6006ה ה חהם) התוכניות יכולות להפעיל קבצי-על לצורך שימוש חוזר בהוראות מאוחסנות של ממשק. ההתקן הגרפי. למעשה, באפשרותך לאחסן קבוצות רבות של הוראות בקובץ-על נתון כל קבוצת הוראות היא רשומה (86006) בקובץ-העל. יותר מאוחר, יתכן שתרצה לגשת ולהשתמש בקבוצת הוראות מסוימת מתוך קובץ-העל, או רק לבדוק אילו הוראות יש בור כדי לעשות ואת, תוכל להשתמש בפונקציה 6ו₪גז6אחחפוחטת= כדי להכין רשימה מפורטת (ס)גזשחוטח5) של כל הרשומות שבקובץ-העל. הפונקציה 16126/חחסוחטחם. מקבלת כל רשומה בקובץ, ומעבירה אותה לפונקציית המשוב (חסו6חט 031186 שאתה מגדיר, כדי להכין רשימה מפורטת של הרשומות שבמבנה קובץ-העל המשופר. פונקציית המשוב שמסופקת על ידי היישום מטפלת בכל רשומה כנדרש. הרישום נמשך. עד שפונקציית המשוב שמסופקת על ידי היישום מגיעה לרשומה האחרונה, או כאשר הפונקציה מחזירה אפס. את הפונקציה 85/6ז6אחחפוחטח= כותבים בתוכניות כמו בהגדרה שלהלן. 16016 תפות 008 60 16חמת // 6 6 שסמפמחם 60 ש1המאת // המופ 6 וק הממ 1 קספו 04110466 0ף ש%6ת01ם // 854 הס1וסהנ5 80%מ0811 0 ש6ת1סם // ,ף8ספ1 פדסטק1 506816 פַת81תוסם ס שששמ1סם // 1%* פספא עפאסס. 3 הפונקציה 161356 חשחווחם מקבלת את הפרמטרים שמפורטים בטבלה 7.16 טבלה 7.16: הפרמטרים של הפונקציה 1636 חח וחנות=. פרמטר תיאור 6 | מזהה הקשר התקן. התוכניות חייבות למסור ידית זו לפונקציית המשוב. זוחפח | מזהה קובץ-על משופר. 6חנגס6ואחחסק 1 | מצביע לפונקציית המשוב שמסופקת על ידי היישום. בוסק | מצביע לנתוני רשות של פונקציית המשוב. | מצביע למבנה מסוג 850 אשר מגדיר את הקואורדינטות של הפינה השמאלית העליונה ואת הפינה הימנית התחתונה של. התמונה. מבנה זה מגדיר את מימדי המלבן ביחידות לוגיות. פרק ל: מפות סיביות, קבצי-על וסמלום | 181 פונקציית הרישום של 81 (חססחט: חסטגזפוחטח6 1קא) משתמשת בפונקציית משוב, כדי לעבד את המידע שפונקציית הרישום מחזירה. הפונקציה 6125!6!/חחסוחטחם משתמשת בפונקציית משוב עם התבנית הכללית של הפונקציה 25/60106ז6/חחם. הפונקציה 67106ו/16138וחח= מעבדת את התבנית המשופרת של קוב-העל. את הפונקציה 16137/60106ח= כותבים בתוכנית כמו בהגדרה שלהלן | 160206 1ת8:סעתהם אסתםננתס 18 00 469406 50 16ממת // ,ספת ספ 16ממגה 6541116 50 עשמהצסק // ,16מבצאק1* התא םנהתדםנקוות מ // 8 64118סה 50 עשמתגסם // ,תתאמםנ* התע סהססמהמתמוקותם 001668 05 ממטסם // ,פס 46 [בחס1סקס > צספמגסק // ףגסט1 ותהת1 הפונקציה 2/60106ז6אחחש מקבלת את הפרמטרים שמפורטים בטבלה 7.17 טבלה 7.17: הפרמטרים של הפונקציה 161376706 חחם. פרמטר | תיאור 6 | מוהה את הקשר ההתקו שהתוכנית מוסרת לפונקציה ו ודו | מצביע לטבלה של ידיות הקשורות עם האובייקטים הגרפיים (עטים, מברשות, וכדומה) בקובץ-העל. הכניסה הראשונה מכילה את ידיתת קוב-העל המשופר. ואפ | מצביע לאחת הרשומות בקובץ-העל. התוכניות אינן צריכות לשנות. רשומה או (אם יש צורך בשינוי, התוכנית צריכה לבצע אותו על העתק. הרשומה). סח | מגדיר את מספר האובייקטים עם חידיות הקשורות בטבלת הידיות. בוספו | מצביע לנתונים כלשהס שמסופקים על ידי היושום. היישוס חייב למסור לפונקציה 86ו6אחחפוחטח= את כתובת פונקציית המשוב, כדי שתוכל לרשוס אותה. כמו עם שאר פונקציות המשוב שלמדת עליהן בסעיפים קודמים, השם 603560706אחחש שומר מקום לשס פונקציית המשוב שמסופקת על ידי התוכנית. התמונה מכילה נקודות לאורך צלע המלבן שמוצבע על ידי הפרמטר 66חםו. אם הפרמטר סח הוא -011א, 5וס6חוו מתעלמת מ-890ק!. אס פונקציית המשוב קוראת. לפונקציה %613/866086חחפעפוק, סח חייב לוהות הקשר התקן תקף. טחוש משתמשת בטרנספורמציות של הקשר ההתקן ושל מצב המיפוי, כדי לבצע את הטרנספורמציה על התמונה שמציגה הפונקציה 26866076ז6/וחחש/פוק. באפשרותך. להשתמש בפונקציה 86ז6אחחפוחטח5 כדי לשלב קובץ-על אחד עס קובץ אחר. 2 כו ומבוא ל-ספו כדי להבין יותר טוב את פעולת הפונקציה 2!6ז6ווחחסוחטחם, התבונן בתוכניתת 5 אומזם שבתקליטור המצורף לספר וה (בתיקיה 6₪8007). התוכנית טוענת. קובץ-על משופר ומציגה אותו בשטח הלקוח של החלון. כאשר המשתמש בוחר באפשרות /6ד, התוכנית מריצה שוב את קובץ-העל, אך הפעם היא משתמשת בפונקציה 3!6ווחחפוחטחם. ‏ פונקציית המשוב לוכדת את רשומת קובץ-העל דספהזסאזז5 המדאה .58 ומחליפה אותה במברשת בצבע אפור בחיר. העיבוד המעשי של התוכנית נעשה בפונקציות 06וק6ח/ ו-6ופשחפל. כאשר מהדרים ומפעילים את התוכנית 5035 אופזם, התוכנית מציירת תחילה את התמונות עם רשת ₪808 01055), ואחר כך מציירת אותן שוב באפור מלא. 2 הפונקציה 1!68165-]101/16%3/+30 תוכניות 32חו צריכות להשתמש במבנה קובץ-על משופר. ככל שרוצים שאותה תוכנית תפעל בפלטפורמות רבות, יהיו מקרים שבהס התוכניות תהיינה חייבות להמיר קובץ-על משופר לסגנון קובץ-על של 9% 006חוו. הפונקציה 061685 ממירה פורמט של רשומות קובץ-על משופר לפורמט רשומות קובץ-על של 60065חוו, ומאחסנת את הרשומות המומרות בחוצ המצוין בפרמטר המתאים. את הפונקציה כותבים בתוכניות כמו בהגדרה שלהלן. 1 6 60806664 שג 50 16שממת // ,הסה ממנטתדסאאאט 8 56₪פמט // ,55 עאצט פטס 60 צשסמ1סק // ,5565טממק1 מצצמק1 6 פַבמסה // א 6אשפתסם 060106 261696806 05 שנשממת // 6 הפונקציה ופפו613/חו//661 מקבלת את הפרמטרים שמפורטים בטבלה 7.18 אס הפונקציה 6035/6885/חו661 מצליחה והמצביע למאגר הוא 1ט', הערך המוחזר. הוא מספר הבתים שהפונקציה צריכה כדי לאחסן את הרשומות המומרות. אס הפונקציה מצליחה והמצביע למאגר הוא מצביע תקף, הערך המוחזר הוא גודל הנתונים של קובץ-העל, בבתיים; אם הפונקציה נכשלת, הערך המוחזר הוא אפס. הפונקציה. 613₪/6805חו// 660‏ ממירה ‏ קובץ-על משופר לפורמט קובץ-על של 05 כך שיישום אשר מכיר את הפורמט חישן בלבד יוכל להציג את קוב-העל. סח משתמשת בהקשר ההתקן המיוחס (040חס6 06466 66160096ה) כדי לקבוע. את הרזולוציה של קובץ-העל המומר. הפונקציה 06125/6815ו//660 אינה מבטלת את. תקפות הידית של קובץ-העל המשופר. היישום צריך לקרוא לפונקציה 61016066 כדי לשחרר את הידית כאשר היישום אינו צריך אותה עוד. פרק ל: מפות סיביות, קבצי-על וסמלום = 183 טבלה 7.18: הפרמטרים של הפונקציה 5ז%6127/681/חו//660. פרמטר | | תיאור זוחס! | מזהה את קובץ-העל המשופר. 608/01 | מגדיר את הגודל, בבתים, של החוצץ שהפונקציה. 601 מעתיקה לתוכו את הרשומות המומרות. !סק | מצביע לחוצ שהפונקציה 16815 60111615 מעתיקה לתוכו את הרשומות המומרות. אם 81| הוא 11א', 16169005/הו//. מחזירה את מספר הבתים שהפונקציה וקוקה להם, כדי לאחסן את רשומות קוב-העל המומרות. 6 | מגדיר את מצב המיפוי שהתוכנית צריכה להשתמש בו עס קוב-העל המומר. 61 | מזהה את הקשר ההתקן המיוחס. בגלל ההגבלות לפורמט קובץ-העל של פווסטחו/+, חלק מהמידע יכול ללכת לאיבודד מתוך קובץ-העל המתקבל. לדוגמה, הפונקציה יכולה אולי להמיר קריאה לפונקציה 00/8026 שנמצאת במקור בקובץ-העל המשופר, בקריאה לפונקציה פחוץו0ק שתהיה. בקובץ-העל של פווסחוו, מפני שאין פונקציה שקולה ל-86261/ו0ק בתבנית של קובץ. ו כדי להבין יותר טוב את פעולת הפונקציה 885ַפח660, התבונן בתוכניתת וא 885 %וסצחס6 שבתקליטור המצורף לספר זה (בתיקיה 083007). התוכנית. ממירה קובץ-על משופר נתון (במקרה זה, 6.6ק53) לקובץ-על סטנדרטי של א9 0005ח/. התוכנית שומרת אחר כך את קובץ-העל המומר כ- זוחאו.06קו530. העיבוד. המעשי של התוכנית נעשה, כרגיל, בפונקציה סזקטחע 3 סמלים (160₪5) פוסטחו\. תומכת בשלושה סוגים בטיסיים של קבציס גרפיים. למדת שבאפשרות התוכניות להשתמש במפת סיביות וקובץ-על כדי לנהל גרפיקה גדולה או קטנה בשטח הלקוח של החלון, ואפילו בחלון עצמו. סמלים (5חס0!) הס למעשה תת-מחלקה (0899-ט5) של מפות הסיביות. עם ואת, קבוצת הפעולות אשר תבצע באמצעות. סמלים קטנה ומוגבלת, ולכן פווסטחו\ מתייחסת לסמלים כסוג נפרד של קוב גרפי. סמלים הס מפות סיביות קטנות אשר פווסשחו/ו משתמשת בהם כמייצגים חזותיים של. אובייקטים, כמו יישומים, קבצים ותיקיות. ב- 9% פווסשחואו תראה סמלים רבים ושונים בממשק המשתמש. בגרסאות מוקדמות של פאוסטחוש או דא פאוסטחו, פגשנר בסמלים בעיקר במנהל היישומים (זטָח3/ ִבזפָסזק) 4 כו ומבוא ל-ספו יישום טיפוסי של אפ פאוס6חוו או דא פאוסחו/ו מכיל לפחות שני סמלים : סמל גדולל (32 א 32) וסמל קטן (16 א 16). פווסטחוא מציגה את הסמל הקטן בפינה השמאלית. העליונה של חלון היישום בשעה שהיישום מוקטן לסמל (66טחוחו/, אד ממוזער). 05 משתמשת בסמל הגדול עבור סמלי שולחן העבודה ועבור תצוגות סמל גדול. בדרך כלל יוצרים סמלים עם עורך התמונות (ז5/00 ססָבח1) של ערכת פיתוח התוכנה 500 6 זחסוחקסופטסם 876מ50) של א9 5אוס6חוא אד עסו עורך אחר, כמו למשל עורך. הסמלים של ++6 /3פו/. אחר כך משתמשים בהוראה 100% כדי להוסיף את הטמלים. אל קובץ המשאבים של היישום. דוגמה טיפוסית לשימוש בסמלים היא הרישום של מחלקת החלון הראשי. כמו שראית בתוכניות השונות שלמדת עד כה, התוכניות סמל בשעה שהן רושמות את מחלקת החלון (0259 69%חו על ידי קריאה לפונקציהה פפּסספוָה, כמו שרואיים להלן: ,968 םהה מסאותעפאתה) ת1בעתגא צהפונמנעת 45 ,06מ68פה1ש6פקן מסתתעפאצ (שסהפבתסה 18% ,שת1מבמסק1 אעפעקם 4 חור טטור .01858 918606 מ1108610מקה הצממ ש(ף צב155חָטת // ;אתהספחט 05 | אתתספתם פס 8 0 (00הפסאא) = | ססעקבמאתפ1 סט 01 0 0 0 ררה 1 שמפאמקתפפש1 ,08ה68פת1מ)ת1088100 = 0 וספת 100 ,8011) 106002805 9 ; (+אססווצון ה0.מסס) (מפטחפ8) = בתטסעף80%פעמת סט קסהפומקת52מ1 = במגחטהס2פם1 סט פומקת2פמ1 = 886א8201455ם1 סש ((666) 601586501458ת1) 18 פס ₪008 שצסון // כמו שניתן לראות, קטע הקוד הקודם רושם סמל עם השם שמכיל המצביע למחרוזת. וטק הפקו כסמל של החלון הראשי. בסעיפים שיבואו בהמשך, תלמד יותר כוצד להצמיד סמל לתוכנית. פרק ל: מפות סיביות, קבצי-על וסמלום | 185 4 יצירת סמלים כמו עם מפות סיביות וקבצי-על, פווסחו מאפשרת לך ליצור ולשנות סמלים בומן ריצה. התוכניות ישתמשו בדרך כלל בפונקציה 0163191600 כדי ליצור סמל בזמן ריצה. הפונקציה 6163161600 מאפשרת לתוכניות ליצור סמלים ממערכים בינריים, נתוניס שלל מפות סיביות, ומפות סיביות שאינן תלויות התקן. הפונקציה ח616318165 יוצרת סמל בגודל המוגדר, בצבעים המוגדרים ובתכניות סיביות מוגדרות. את הפונקציה 0103001000 כותבים בתוכניות כמו בהגדרה שלהלן )068661608 אאם: 6 1108010תקג 50 416מאמ // ,6סמ4םפהנמ פסאהלפאנט 100 ]/ 6 00 // ,תפות 46 10085%מ 308 18 משמג1ם 05 פממחמם // ,168 מצצם 408 מ1 61א1ק ששם 168 05 פשמממם // ,161 מצצם טג // עגעעג אפגחט1ע סאג סט עםממנסק // ,58צמסאתממ1* מפצם צפאסס עגעעג אפגחטנע תסא 60 צבפהנסק // ,58 צמתסאממ1* מפץם צפאסס / הפונקציה 6163161600 מקבלת את הפרמטרים שמפורטים בטבלה 7.19 הפרמטרים חו6ווח וזח חייבים להגדיר רוחב וגובה אשר נתמכים על ידי מנהל. ההתקן של התצוגה הנוכחית, מפני שהמערכת אינה יכולה ליצור סמלים בעלי גדלים. אחרים. כדי לדעת את הרוחב והגובה של הסמלים שנתמכים על ידי מנהל ההתקן של התצוגה, צריך להשתמש בפונקציה 6609/50070060065, כאשר מגדירים את הערך 0 5% או 100 59% טבלה 7.19: הפרמטרים של הפונקציה חס01081616. פרמטר תיאור 6סחספחזת | מוהה את מופע המודול שיצר את הסמל שוח | מגדיר את רוחב הסמל, בפוקסלים. סח | מגדיר את גובה הסמל, בפיקסלים. פשחמוק6 | מגדיר את מספר המישורים במסיכת סיביות 808 (854חטופ 008 של הסמל. ופאוקזו6 | מגדיר את מספר הסיביות לכל פיקסל במסיכת סיביות 08א של הסמל. אפסו טמן | מצביע למערך בתים שמכילים את ערכי הסיביות עבור מסיכת. סיביות 0 8/0854 סא3) של הסמל. מסיכה זו מתארת מפת. סיביות בעלת צבע אחד (קהותזום שוחסזה6סחסוו א 5וומ8ס4פקו | מצביע למערך של בתים שמכילים את ערכי הסיביות עבור מסיכת. סיביות 08א של הסמל. מסיכה זו מתארת מפת סיביות בעלת צבע. אחד, או מפת סיביות תלויית התקן בצבע מלא. 6 321חו/ו ומבוא ל-ספו הפונקציה. ח0/0300160 יוצרת את הסמל משתי מפות סיביות (אשר הפונקציה משתמשת בהן כמסיכות סיביות); האחת היא מסיכת סיביות סוז8 והשניוה - מסיכת. סיביות 08א. מסיכת סיביות סא היא תמיד מפת סיביות מונוכרומטית (בעלת צבע אחד), עם סיבית אחת לכל פוקסל. 6/03191600 מייחסת טבלת אמת עבור מסיכות. הסיביות הנפרדות ל-פוה ול-08א. תוצאות פעולה זו מוצגת בטבלה 7.20 טבלה 7.20: טבלת האמת של הפונקציה ח0103)0160 עבור מסיכות הטיביות אא ו-סא. (תצוגה) עְהוקפום ו סא וטוט ואה (שחור) 886% 0 0 (לבן) סשוח 1 0 (מסך) 507000 0 1 (מסך נגטיבי) 50600 50זססה. 1 1 כדי להבין יותר טוב את פעולת הפונקציה ח616306160, התבונן בתוכנית 160 .016846. שבתקליטור המצורף לספר זה (בתיקיה 6%8007). התוכנית מגדירה את ערכי הסיבית. של שתי המסיכות, מסיכת סא ומסיכת ה%0 של הסמל, כדי ליצור סמל בעל צבע יחיד. (1600 שוחסזה6סחסוא). כאשר הפונקציה 06זקחא מקבלת את ההודעה 085415 וואא, התוכנית יוצרת את הסמל; כאשר הפונקציה 0060/06 מקבלת את ההודעה זאזאק !, התוכנית צובעת את הסמל שבתצוגה. 5 יצירת סמלים ממשאב תוכניות יכולות ליצור סמלים במספר דרכים שונות. בדרך כלל הן אינן יוצרות שתי מפות טיביות ושתי מטיכות סיביות בזיכרון, כמו שעשתה התוכנית ח160 01686 שהוצגה קודס. כמו עס טבלאות מחרוזות (פפוט3ד הָו5) ומידע אחר המיועדים. לשימוש חוזר, אפשר לטעון את מרכיב הסיביות של הסמל מתוך קובץ משאבים ולהפוך את הסיביות לסמל ממשי. כדי לבצע עיבוד כוה, התוכניות משתמשות בפונקציה 65/ט08990ח0ז5ח076319160. פונקציה זו יוצרת סמל או סמן (00050) מסיביות משאב אשר מתארות את הסמל. את הפונקצה 66 כותבים בתוכניות כמו בהגדרה שלהלן. 200 610 5 פ0פפטס 05 1008 60 צשסמ1סם // מצצם 8866טט 046 18 668עם 05 ששמחמה // 086551 סאסוום 11984 פספטנם 05 160 // ,100 סט הט 09085? פאסת1 ו // 5 80סום פרק 7: מפות סיביות, קבצי-על וסמלום | 187 הפונקציה 65065הוח0ז'ח616319160 מקבלת את הפרמטרים שמפורטים בטבלה 7.21 טבלה 7.21: הפרמטרים של הפונקציה 7010500100 03/0160 0. פרמטר תיאור 5פפז | מצביע למאגר, אשר מכיל את משאב הסיביות של הסמל או הסמן. קריאה לפונקציות /0160001וח0ז107חסס1קטאסס 1 (ב- 9% 00%%5חו/, באפשרותך גס כן לקרוא לפונקציה 0760108 00ז10ח160 600 ו-1086865060 טוענת לרוב את. הסיביות האלו. 6 | מגדיר את הגודל, בבתיס, של קבוצת הסיביות שמוצבעת על ידי הפרמטר 65055זק. ח100] | מגדיר אס הפונקציה צריכה ליצור סמל או סמן. אס פרמטר זה הוא סטזד, הפונקציה יוצרת סמל; ואס הוא 5386, הפונקציה. יוצרת סמן. 06% | מגדיר את מספר הגירסה של תבנית הסמל או הסמן עבור משאב הסיביות שמוצבע על ידי הפרמטר 5זופפסזק. הפרמטר ז6//ו6 יכול לקבל את אחד הערכים שמפורטים בטבלה 7.22 טבלה 7.22: ערכי הפרמטר 69//61. פורמט ו 2.8 6005 | 000020000. 3.8 6005חז/ | 000030000. כל יושומי מיקרוסופט מבוססי 32 משתמשים בתבנית של א9 05סחוא עבור סמלים | וסמנים. ‏ הפונקצי ות 16901606 ו 1 ו- 0600 הוסז10ה160קטאסס. = 930 פוס0חוו, | מאפשרת ג לקרוא לפונקציות 8050095 וחסז 019101600 ו-600/5זוומסז187ח0ס1קט1.008). מאפשרות. ליישומי מסגרת ודפדפני סמלים לבחון ולהשתמש במשאבים דרך המערכת. כדי להבין יותר טוב את פעולת הפונקציה 68זט650הוחסז"חסס6768001, התבונן בתוכנית. 1600 ₪65 ע18ק5ום שבתקליטור המצורף לספר וה (בתיקיה 688007). התוכנית. 1600 ₪65 ע1ק5ם משתמשת באוסף של פונקציות לניהול משאבים כדי לאתר סמל בקובץ המשאבים, למצוא את המקום שלו בדיסק ולטעון את הסמל לציכרון. התוכנית. מציגה אחר כך את הסמל בשטח הלקוח של החלון. הטיפול המעשי קורה לאחר שהמשתמש בוחר באפשרות /76%. הקוד שמבצע טיפול זה נמצא בפונקציה סזק0חע 8 5271 ומבוא ל-ספו 6 הפונקציה 66%ו68%616071061ז60 התוכניות יודעות ליצור סמלים ממפות טיביות או ממוהה משאב. באפשרותן גם ליצור סמלים מערך של מבנה. משתמשיס בפונקציה :66/ו0108101600100 כדי ליצור סמלים: ממרכיבים שאינך מגדיר אותם בתוכנית, או בקובץ משאבים. הפונקציה יוצרת סמל או סמן ממבנה מסוג 1001850. את הפונקציה 66/ו6163)61600106 כותבים בתוכניות. כמו בהגדרה שלהלן ; (16001850 0עאםאס0ס1ק) 608ע81ת1ת6860100עס אססנט המצביע סזחוחססו מצבוע למבנה מסוג 16081850 שהפונקציה משתמשת בו כדי ליצור את הסמל או את הסמן. אס הפונקציה מצליחה, הערך המוחזר הוא ידית הסמל או הסמן שיצרה הפונקציה. המערכת מעתיקה את מפות הסיביות שבמבנה סא1א160 לפני יצירת הסמל או הסמן. היישום חייב להמשיך לנהל את מפות הסיביות המקוריות. ולמחוק אותן כאשר אין עוד צורך בהן. המבנה 1008150 מכיל מידע על סמל או סמן. 801 פאוסטחזו מגדיר את המבנה 100180 כמו שרואיס בדוגמה זו [ 1001 565006 6465מעף 10 | מס 0 | סאסמם 0 | ספסמם אדנמ אדנמ [ טבלה 7.23 מפרטת את איברי המבנה סא1ַו1001. טבלה 7.23: איברי המבנה 1600180 פרמטר | תיאור ח160 | מגדיר אם מבנה זה מגדיר סמל או סמן. ערך פטזד מגדיר סמל; ₪96 - מגדיר סמן. %ק5וסוזא | מגדיר את קואורדינטת א (0306ו0זס0ס->) של נקודת המגע 0סק5 00 של הסמן. אאם מבנה זה מגדיר סמל, נקודת המנע תמיד נמצאת. במרכז הסמל, והפונקציות אשר משתמשות במבנה 16081850 מתעלמות מהאיבר זסקפוסוזא. זסקפוסוזץ | מגדיר את קואורדינטת + (0/03ז600-+) של נקודת המגע 0סק5 00 של הסמן. אאם מבנה זה מגדיר סמל, נקודת המנע תמיד נמצאת. במרכז הסמל, והפונקציות אשר משתמשות במבנה 1601180 מתעלמות מהאיבר זסקוסוזן. פרק ל: מפות סיביות, קבצי-על וסמלום | 189 פרמטר | תיאור א55אוחסח | מגדיר את מסיכת סיביות מפת הסיביות של הסמל. אם המבנה מגדיר סמל שחור לבן, מסיכה זו מפורמטת, כך שהחצי העליון הוא מסיכת. הסיביות סא של הסמל והחצי התחתון הוא מסיכת הסיביות הס של הסמל. על פי תנאי זה, הגובה צריך להיות זוגי בכפולות של. שתיים. אס מבנה זה מגדיר סמל צבעוני, מסיכה זו מגדירה רק את מסיכת סיביות סאה של הסמל. זסו0סוחפח [ מוהה את צבע מפת הסיביות של הסמל. איבר וה יכול להיות רשות. אס המבנה מגדיר סמל שחור לבן. +01766ה61631816001 מספקת את. מסיכת סיביות סואה של %056וחפח עם הדגל 580 של הועד. באופן עקבי, ז06/ו0163101600106 משתמשת בדגל 58010005 כדי לספק את. מפת הסיביות הצבעונית (על ידי השימוש ב- 08א) ליעד. בקיצור, המבנה 100180 מגדיר את מפת הסיביות המונוכרומטית ומפת הסיביות הצבעונית, והפונקציה 106/6%ח0ס0163/01 מחברת את מפות הסיביות בהתבסס על הערכים שבמבנה 1850ו1601. כדי להבין יותר טוב את פעולת הפונקציה 0163181600106060, התבונן בתוכניתת 5 סאד שבתקליטור המצורף לספר זה (בתיקיה 00807). התוכנית 16005 סאד מחברת שתי מפות סיביות למפת סיביות שלישית ויוצרת סמל. כרגיל, העיבוד המעש של התוכנית נמצא בפונקציה 6זקטחאו. 7 הפונקציה 1030160 בסעיפים הקודמים למדת שאפשר להשתמש בתוכניות במספר שיטות שונות כדי ליצור סמלים בומן ריצה. כמו שראית בתוכניות אחרות, הן משתמשות על פי רוב בפונקציה. 301000 כדי לטעון לתוכנית סמל מקובץ המשאבים שלה. למדת שהפונקציה 1030100 מספקת לתוכניות דרך נוחה ויעילה לטעינת סמלים שכבר נוצרו. הפונקציה. 109301000 טוענת. את משאב הסמל המוגדר מקובץ ההפעלה (8%5.) שקשור למופע התוכנית. את הפונקציה ח1036160 כותבים בתוכניות כמו בהגדרה שלהלן ק (שהבהמ60נש1 ת190959 ,ַסתבםפהנמ מסותלפאעה) מ1080160 אססצט הפרמטר 65ח8זח1ח מוהה את מופע המודול אשר קוב ההפעלה שלו מכיל את הסמל שהפונקציה 10861600 צריכה לטעון. הפרמטר 65ח5זפוזח חייב להיות. 4ש כאשר הפונקציה. 10361600 צריכה לטעון סמל סטנדרטי (1600 5₪80080). הפרמטר 36ח160ק מצביע למחרוות המסתיימת ב-011 אשר מכילה את שם משאב הסמל שהפונקציה 10861600 צריכה לטעון. לחילופין, הפרמטר פוח9אחס16ק! יכול להכיל את. מוהה המשאב במלת הסדר-הנמוך ואפס במילת הסדר-הגבוהה. צריך להשתמש. במאקרו 818188500805א3ו% כדי ליצור ערך מוהה למשאב. כדי להשתמש באחד הסמלים המובנים של פאוסחו/, צריך להציב את הערך ₪01 לפרמטר 66חמזפחזה ולפרמטר 6ו%8ח0פ1ק! - את אחד הערכים שמפורטים בטבלה 7.24. 0 321חווו ומבוא ל-ספו 10301000 טוענת את המשאב רק אם התוכנית לא טענה קודם את משאב הסמל; אחרת, 10301600 מקבלת ידית למשאב הקיים. הפונקציה מחפשת את משאב הסמל שמתאים ביותר לתצוגה הנוכחית. משאב הסמל יכול להיות מפת סיביות צבעונית או מונוכרומטית. ח1036160 יכולה לטעון רק סמל אשר הגודל שלו מתאים לערכי מידותת המערכת 000% 514 ו- א₪1160 5%%. השתמש בפונקציה 1036100906 כדי לטעוך סמלים בעלי גודל אחר. טבלה 7.26: הסמלים המובנים ב-פאוסחו. ערך תיאור אסנזאס1קקא. 101 | סמל ברירת המחדל של היישום. 515815 101 | סמל כוכבית (451056, שימושי בהודעות מידע. אסנדהוא 50 101 | סמל סימן קריאה (זחוסק חסטופוחהאם, שימושי בהודעות. אזחרה) סאוו 101 | סמל תמרור "עצור" (ח160 ש6פַַח5-חפא, שימושי בהודעות. אזהרת רציניות) אסנדפטט0 101 | סמל סימן שאלה (816! חסופפטס, שימושי בהודעות אישור). ואוו 101 | הלוגר של פאוס0חואו. 8 הפונקציה 108011346 טוענת סוגים גרפיים רבים למדת שתוכניות יכולות להשתמש בפונקציה 10861600 כדי לטעון סמל מקוב המשאביס שלהן. התוכניות גם יכולות להשתמש בפונקציות ק10808(008 ו-ז0/50 1030 כדי לטעון מפות סיביות וסמנים, בהתאמה, מקובץ המשאבים של התוכנית. לחילופון, באפשרות התוכניות להשתמש בפונקציה ססָ1036109, אשר טוענת סמל, סמן, או מפת. סיביות. את הפונקציה 5סַ9וח0861) כותבים בתוכניות כמו בהגדרה שלהלן. 0 מנסואתה 6 156466 006 05 ש1שהגת // הפאנ 6 6מ) 0006818 // 6 05 1060615166 08 שמהם // הפאפפק1 8ע5ע10 6 05 שפצ // ,שטצצט פאצט 0 // 681568 6496 681568 // ו 8 6 / 8 אנט פרק ל: מפות סיביות, קבצי-על וסמלום | 191 הפונקציה פסָ9ח10901 מקבלת את הפרמטרים שמפורטים בטבלה 7.25 טבלה 7.25: הפרמטרים של הפונקציה 08011896 1 פרמטר | תיאור שחו | מזהה מופע של המודול, אשר מכיל את התמונה (טָחז1) שהפונקציה. 6 צריכה לטעון. צריך להציב ערך אפס לפרמטר זה כדי לטעון תמונת ו06%. חקו | מה את התמונה שהפונקציה 103610306 צריכה לטעון. אם. הפרמטר זפחוח אינו ₪014 והפרמטר 01080 איינו מכיל את ואס הס ה1, אז פופו הוא מצביע למחרוות המסתיימת ב-1ש)! ואשר מכילה את שם משאב התמונה שבמודול זפחוח. עם זאאת,, אם הערך של זפחוח הוא .₪011 ואינך מגדיר את הקבוע. יסאס 1, אז מילת הסדר-הנמוך של פרמטר זה חייבת להיות המוהה של תמונת 08% שהפונקציה 10361306 צריכה לטעון. קובץ הכותר ח.זספטחו/ו מגדיר את מזהי תמונת 081 (סָ0ח1 ואפס. 100005), שיש להכ קידומות (6659זק, תחיליות) שמפורטות. בטבלה 7.26 תחת א פווס0חו/+, אס הפרמטר 1086 מכיל את הערך וס הס 1, אד פופו הוא שם הקוב שמכיל את. התמונה. זא 0005ח/ אינה תומכת ב- 10001 .1 עד | מגדיר את סוג התמונה שהפונקציה טְ09ז10361 צריכה לטעון. פרמטר זה יכול להיות אחד הערכים שמפורטים בטבלה 7.27 6 | מגדיר בפיקסלים את רוחב הסמל או הסמן. אם פרמטר זה שווה. לאפס והפרמטר 6030 שווה ל- 06315176 .1, הפונקציה משתמשת בערכי מידות המערכת 60160 50% או 6008508 5% כדר לקבוע את הרוחב. אס פרמטר זה שווה לאפס והקריאה לפונקציה. אינה משתמשת ב- 2650115126 1, הפונקציה משתמשת ברוחב המשאב הממשי. סע | מגדיר בפיקסלים את גובה הסמל או הסמן. אם פרמטר זה שווה. לאפס והפרמטר 6030 שווה ל- 0615176 .1, הפונקציה משתמשת בערכי מידות המערכת 6/160% 59% או 0/008508 5% כדר לקבוע את הגובה. אס פרמטר זה שווה לאפס והקריאה לפונקציה אינה משתמשת ב- 6580115126 18, הפונקצייה משתמשת בגובה. המשאב הממשי. 6 | קובע איך הפונקציה טוענת את התמונה. מגדיר צירוף של הקבועים. שמפורטים בטבלה 7.28 2 לכו ומבוא ל-ספו כמו שניתן לראות בטבלה 7.25 התוכניות יכולה לטעון תמונות ו06%. במקריס כאלה, היא גס יכולה להגדיר אחד ממזהי התמונות שמפורטים בטבלה 7.26 טבלה 7.26: מוחי התמונות 106011065 הזו קידומת 8 6 0 פירוש מפות סיביות 05% (קפוחזום 081 סמלי 05% (5ח0 ואפ0) סמני 05% (5זספזנ6 %1פס). למדת שבאפשרות התוכניות לטעון באמצעות הפונקציה 1086100906 תמונה כלשחיי מתוך מספר סוגי תמונות. הפרמטר טסקעט מגדיר את סוג התמונה, והוא יכול להיות. אחד מהערכים שמפורטים בטבלה 7.27 טבלה 7.27 סוגי התמונה האפשר. עוך קוודום 66 ויד וד 100 66אווד באפשרותך לטעון את קוב או פירוש טוען מפת סיביות (קפוזוום 3 0805 טוען סמן (1501 8 0865 טוען סמל (ח60) 80 10865 התמונה עם מספר אפשרויות עבור תצוגת הקובץ. הפרמטר 1086 חייב להיות אחד או יותר מהערכיס שמפורטיס בטבלה 7.28 טבלה 7.28: אפשרויות הטעינה עבור קוב התמונה. עוך טס 1 0 א פירוש דגל ברירת המחדל, פירושו יילא ב באשר הפרמטר פקץדו מגדיר קאוד81. 1866, הוא: גורם לפונקציה להחזיר חלק 018 של מפת סיביות. במקום מפת טיביות תואמת 805 30016חסס) דגל זה שימושי לטעינת מפת סיביות מבלי למפות אותה לצבעי התקן התצוגה. פרק 7: מפות סיביות, קבצי-על וסמלום = 193 עוך בו ב ב קדס 1 1 ב 1 5 4 זא2פחווו ומבוא ל-ספו פירוש משתמש עבור סמנים או סמלים ברוחב או בגובה. שמוגדרים על ידי מידות המערכת, אם הקריאה. לפונקציה קובעת את הערכים 0400566 אד 6 לאפס. אם דגל זה אינו מוגדר והקריאה. לפונקציה קובעת את הערכים של 0/069/666. ו- 6/009%66 לאפס, הפונקציה משתמשת בגודלל המשאב הממשי. אם המשאב מכול מספר תמונות, הפונקציה משתמשת בגודל של התמונה הראשונה. טוען את התמונה מהקובץ שמוגדר על ידי הפרמטר. 96א2פקן. אם דגל זה אינו מוגדר, 6כ)!פכ| הוא: שם המשאב. מחפש בטבלת הצבעים עבור התמונה ומחליף את. הצללים (58065) של האפור בצבע התלת-מימדי המתאיס, כמו שרואים בטבלה 7.29. מקבל את ערך הצבע של הפיקסל הראשון שבתמונה ומחליף את הכניסה המתאימה שבטבלת הצבעים. בצבע ברירת המחדל של החלון (וססאז/ .00.08 כל הפיקסלים בתמונה אשר משתמשים בכניסה זאת. הופכים להיות בצבע ברירת המחדל של החלון. ערך. זה תקף רק לתמונות שיש להן טבלת צבעים מתאימה. אס 61086 מכיל שני הערכים. 10 1 ו-085 00130001 1 .1, א קפוא 0/0 .18 מקבל את העדיפות. עם ואת, הפונקציה 10301806 מחליפה במקרה זה. את הכניסה בטבלת הצבעים, וקובעת. 5 6010 במקום /וספאזווי 601.08. טוען את התמונה בשחור ולבן משתף את ידית התמונה, אם תוכנית אחת או יותר טוענות את התמונה פעמים רבות בו-ומנית. אס אינך קובע את 5/4850 1 קריאה שנייה לפונקציה 916 עבור אותו משאב טוענת את התמונה. שוב ומחזירה ידית שונה. אל תשתמש ב- 57085 .18 עם תמונות שאין להם. גדלים סטנדרטיים שיכולים להשתנות אחרי טעינה, או אשר התוכנית שלך טוענת מקובץ. כאשר טוענים קוב תמונה כקוב תלת-מימדי, 01 6008 ממפה את הצבעים עבורך. 5וס6חו מחליפה כל צבע שבעמודה הימנית של הטבלה 7.29 בצבע שבעמודה. השמאלית של הטבלה. טבלה 7.29: הערכיים התלת-המימדים הממופים של הפונקציה 108010086 צבע מוחלף ב: (128 ,128 ,₪68)128 ,63 אם: 305 6008 (192 ,192 ,686192 ,1 ב (223 ,223 ,868)223 ,65 1 3 00 כמו שצוין בהסברים שניתנו עד כה, התוכניות יכולות להשתמש בפונקציה 109018096 בכל מצב שאפשר להשתמש בו בפונקציות ח1086160, 108084087 אד 103000507 פרק 7: מפות סיביות, קבצי-על וסמלום | 195 פרק מבט מקרוב על פקדים נושא הפקדים (פ!סזוח60) הוצג לראשונה בפרק 5, במסגרת הדיון בתיבות דו-שיח פרק זה בוחן מספר פקדים נוספים, לרבות תיבות סימון, כפתורי רדיו, תיבות קבוצה, פקדי טקסט סטטיים, ופסי גלילה. כפי שיתברר לך, חלק גדול מהטכניקות, יחול גם. על הפקדים שפרק זה. % הערה: אם טרם קראת את פרק 5, העוסק בתיבות דו-שיח, עשה ואת עכשיו, כי אנו משתמשים בתיבות דו-שיח כדי להדגים את הפקדים בהם עוסק פרק זה. תיבת סימון (802 6160%) היא פקד (וסחסס) המאפשר למשתמש להפעיל אפשרות. מסוימת, או להשביתה. תיבת סימון היא תיבה קטנה, העשויה להכיל סימון "*! אד להופיע ריקה. לכל תיבת סימון קשורה תווית, המתארת את האפשרות שאותה תיבה מייצגת. אס התיבה מכילה סימן "*יי, התיבה מסומנת (01606%6), והאפשרות שהיא מייצגת נמצאת במצב פעיל. אם התיבה ריקה, אצי היא בלתי מסומנת, או נקיה (3186ס/ס), לפיכך, האפשרות שהיא מייצגת מושבתת. בדרך כלל תופוע תיבת סימון כחלק מתיבת דו-שיח, והגדרתה תופיע במסגרת ההגדרה של תיבת הדו-שיח בקובץ. המשאבים של התוכנית. כדי להוסיף תיבת סימון לתיבת דו-שיח, השתמש בפקודה 0180680%, שהגדרתה הכללית היא [שבע56 ,] 6מס1שא ,6ה14א ,צ ,א ,דפס ,"הַה1ש56" אסמאסטאס בהגדרה זו, מכיל השדה חָו5 את הטקסט שיופיע לצד תיבת הסימון. 6910 הוא הערך הקשור בתיבת הסימון. הפינה השמאלית-העליונה של תיבת הסימון תמוקם בנקודה +,א, והתיבה יחד עם הטקסט הגלווה אליה יהיו בגודל שיתקבל ממכפלת הפרמטר תושו בפרמטר חחִפָש. הפרמטר 56/6 קובע את הסגנון המדויק של תיבת הסימון. אם לא תציין במפורש סגנון מסוים, תוצג תיבת הסימון במתכונת ברירת המחדל, כאשר התכולה של חָ51 מוצגת מימין, והמשתמש יכול להגיע אל התיבה בעזרת מקש טגד. כפי שבוודאי ידוע לך בעקבות השימוש בחלונות א9, תיבות סימון הך בעצם מפסקים (ַפ6ְָפָד). כל פעם שאתה בוחר תיבת סימון היא משנה את המצב שלה. ממסומן ללא מסומן, ולהיפך. פעולה זו לא נעשית בהכרח באופן אוטומטי 6 1א52חווו ומבוא ל-ספו כשאתה משתמש בפקודה 6₪60680%, אתה יוצר למעשה תיבת סימון ידנית, שהתוכנית שלך חייבת לנהלה על ידי סימון והסרת הסימון מהתיבה כל פעם שהיא נבחרת (מייד יתברר לך כיצד). חלונות 9% יכולה לבצע עבורך את פונקציית הניהול הזר אם תיצור תיבת סימון אוטומטית. תיבת סימון אוטומטית נוצרת בעורת הפקודה 0100780680%, שתבניתה זהה לוו של הפקודה 80%א80ו6%. כאשר אתה משתמש. בתיבת סימון אוטומטית, חלונות מבצעת באופן אוטומטי את שינוי המצב בתיבה (ביך מסומן לבין לא-מסומן) כל פעם שהמשתמש בוחר בתיבה. 1 תיבות סימון אוטומטיות לפני שתמשיך, עליך לשנות בקובץ משאבים הבטיטי עבור תיבות הדו-שיח את שני החלקים הבאיים: את הפריט, שמכיל כעת פריט נוסף, 513005 - ואת ההגדרות לתיבת. הדו-שיח, כך שתחיל, תיבת סימון ידנית ותיבת סימון אוטומטית. הקלד עתה שני קטעים אלו , במקוס הקודמים זפתסהה50דם טאמו אספסעם אנספם "69118" פטפספ אנספט צצאם פד ,"6415" אטי פוט צפפץ אמצ "97658" מפעבטאטו 88 סד ,"556868" פע 1טאטו "פ5861" פטטספ אזסטם שטסמת 10% ,"...08ס16861נקקה 9 טטסמה%" אמצצטאט פוט סט 6 0 ,20 ,20 מנמהסהה0פנם 06מגנם 00מתזסצפמט אסנעפאס ₪5 | מנמנפנע ₪5 | פטקסק פא | מאתתפתתססון פם מתצדם שאפוופצ פאר "018108 מע" אס1עטתס "86916 585 פע" ,8 פאסע אנספם 4 פםסד,"4שא" | אספצטמאפטסטמם 14, ,טא 100,"מ66ט0" טפ 0013" - ו 1" 7 12 פפ1",1 א6מא66ס" אסאס | אסאסמנססצטת 85,"מסטסטם",082 פסד,"2 אסמאסטמס" 0 2 פא פאט פרק 8: מבט מקרוב על פקדים | 197 עליך גם להוסיף לקובץ הכותר ח.1א60680ת6, את הערכים הבאים. 2 051 פפ1 4065106 3 052 פפ1 6ת406%1 1 פטדאד5 10 6ת:%06% כל פעם שהמשתמש לוחץ בעכבר על תיבת סימון, או בוחר אותה ומקיש על מקש הרווח, נשלחת הודעת סאוואס6 ואו לפונקציית הדיאלוג ומילת הסדר-הנמוך של וחפזבלוי מקבלת את הערך המוהה הקשור לאותה תיבת סימון. אס אתה משתמש. בתיבת סימון ידנית, יהיה עליך להגיב לפקודה זו על ידי שינוי מצב התיבה. לשם כך, שלח לתיבת | הסימון ‏ הודעת 56704606 8% | בעורת | פונקציות | 1ק ()001010070/695906ח56. פונקציה זו נדונה בפרק 5. הגדרתה הכללית מובאת כאן פעם. נוספת, לנוחותך. ,100098 עעוצט ,78 6ת1 ,סמאבת סאמ ) 055866/עה0: 56080101 באס ((מ3עג19 אתתתסז ,מבצגקק ונתמתסור כאשר נשלחת הודעת 561041606 8%%, קובע הערך שמכיל הפרמטר וחפזפקו אם' התיבה תסומן, או תנוקה. אם זאו מכיל 1, אזי התיבה תסומן. אס הוא מכיל 0, התיבה תנוקה. לפי ברירת המחדל מופיעות כל תיבות הסימון כשהן ריקות. בעת משלוח הודעת 561060% 8%, לא נעשה שימוש בפרמטר וחפזפק! וכור, אם אתה משתמש בתיבת סימון אוטומטית, אזי מצב התיבה ישתנה באופן אוטומטי כל פעם שחיא תיבחר. אינך צריך לשלוח לתיבת סימון אוטומטית הודעת ו תוכל לקבוע מצב של תיבת סימון אס תשלח לה את ההודעה 6610180 %/8. התיבה תחויר ערך 1 אם היא מסומנת, וערך 0 אם לא. במקרה זה, יכילו וחגזבקאו וג חזזמקו ערך 0 לפניך התוכנית 08608801 המדגימה תיבת טימון ידנית ותיבה אוטומטית. כדי להבליט בדוגמה שלנו את ההבדלים בין שני הסוגים, מרגע שתיבת סימון ידניתת נבחרת, היא נשארת מסומנת תמיד ואין אפשרות לרוקן אותה. בדוגמה שלאחריה, תלמד איך לטפל בתיבות סימון ידניות (לא הבאנו פה את הפונקציות הבאות. ה חובואחו. מפני שלא בוצע בהם שום שינוי). <ה. 510008 301086 "מ. 1אספאסשתס" 43001686 (132א) ‏ 4681868 415 פטתע 32א 15 4001106 8 מפתתע 32א 15 6ם40011 5 8 ז7א32חוו ומבוא ל-ספו 080000000 > (06606991000) (002ם) 660 32אצא 15 ו 15 188 6 (צא 15) !) (001פ) 66 32אנא 18 325אנא 15 שה40681 ( (4> ( () 06006+5108) הסאס 1) מצע 10 ) 2 15 56 ((25באצא 15)! ₪6 (צא 18)!) (ססם) = 95אצא 15 שה40681 =סת8ספה1 שהעצטט // פחדת פסונתלפוננ /* בפאסם אסשת 08 5:80₪8 188ס */ ק5088082-0 ,0. 46 ;"אספטָנם" = שהפאסקתפפק1 ת57פסק1 0" 1529161 לספ ( סאם1 *55התסטוחן 87אא0 | 0186020195 מססם פסוותלפאונ ,בסהבםפהנת מסותצפותא ) ה[בעתגח צהפנמנעת 8ב 16 ,8ת651ה0ק1 תלפעק1 ,ססהגםפה1שםצקת 0 [ 4 6 ומא | פוא 85 סטוה .1858 אס0מ1א מ8610ם11קקג מגגת שת5 שששפ1מת // ה 0 ;אתהספחט 05 | התתסטתם פס 8 א ( הפוה ב ₪ 601 0 ₪ 7 ו ;( שממאקפתפפק1 ,ססהבמפמנה )10801000 0 (ווספתת 100 ,א 1000080 = 0 ; (ב+אססווצוו ה0מסס) (מפטהפ8) = בתמספף80%פעמת סט קסהפומקת2פ1 = במגמטהס2פם1 סט קסהפומסת2פש1 = 6ה8201258%8מ1 סט ( 95צא 18 | 45 ( ( 06פ )8601466501095! ) 15 | פמת )םת ] ( ( 866 )1906501488ַשה! ) 18 שפנב ( מפמתת )20 פרק 8: מבט מקרוב על פקדים ‏ 199 0 32371חואו ומבוא ל-ספו פרק 8: מבט מקרוב על פקדים ‏ 201 2 לבחו ומבוא ל-ספו פרק 8: מבט מקרוב על פקדים | 203 תוכנית זו מכילה שני משתנים גלובליים, 503051 ו-51052, המכילים את המצב של שתי תיבות הסימון. משתנים אלה מקבליט את הגדרתם עס הלחיצה על לחצן א0. בתוך תיבת הדו-שיח. כדי להגדיר מצב של תיבות סימון, בחר באפשרות פטס בתפריט הראשי. כדי לברר מצב של תיבות סימון, בחר באפשרות 513005 מהתפריט. הראשי (האפשרות ₪60 כלולה כאן רק כמראה מקום) כשתריץ את התוכנית ותבחר באפשרות פָטווּם מתוך התפריט הראשי, תופוע לפניך תיבת הדו-שיח הנראית בתרשים 8.1 הק ה 0 | ו תרשים 8.1: תיבת דו-שיח עם תיבת סימון לדוגמה. כיצד לנהל תיבות סימון התוכנית ליצירת תיבות סימון, כשלעצמה, סובלת משני ליקויים חמורים. ראשית, מצבה של כל תיבת סימון נקבע מחדש בכל פעם שתיבת הדו-שיח מוצגת. כלומר, המצב הקודס של כל תיבה אינו נשמר. שנית, ניתן לסמן את תיבת הסימון הידנית, אךך לא ניתן להסיר ממנה את הסימון. כלומר, תיבת הסימון הידנית אינה מפסק פופ במובן האמיתי של המילה, ואינה מתפקדת כמצופה מתיבת סימון. בסעיף זה, נלמדד כיצד לטפל באופן יעיל יותר בתיבות סימון. כיצד להעניק לתיבת סימון תכונות של מפסק יש לצין, שאמנם קל ופשוט יותר להשתמש בתיבות סימון אוטומטיות, אך אפשר בהחלט להפעיל תיבת סימון במתכונת של מפסק על ידי טיפול נכון בתיבת סימון ידנית. כלומר, התוכנית תצטרך לבצע את כל הפונקציות הניהוליות בעצמה, במקום. להניח לחלונות א לטפל בעניין. לשם כך, התוכנית תברר תחילה מה מצבה הנוכחי של. תיבת הסימון, ולאחר מכן תכתיב לה את המצב ההפוך. הדבר נעשה על ידי הכנסת. השינויים הבאים לפונקציית הדיאלוג (קובץ הכולל שינוי זה קיים בתקליטור, ושמו הוא: 8 686688081 . כדי להשתמש בו, החלף את 00668041 בקובץ הזה). /* .אסם אמשמם ההגה ע1[בטהגת ג 18 ב1מצ */ :נמ סד 6פגם /* 56255 168 מגה 50 ,אסם אספמם 186 20160556 פספג */ ((0 ,0 ,אסשאסעמם אמ ,081 מז ,מנס) 56266שעה0166נ80ה1,)!96 ;(0 ,1 ,אסממסצמפ עפ ,1מס סם1 ,הַבעמ) ש5586שאת101)6פ ה /* 015 15 מעגם */ 18 /(0 ,0 ,אסממסצמפ אפ ,1מס 100 ,| א586משעת0ו 040101 (מספם 4 זקתכבחווו ומבוא ל-0פו כיצד לאתחל תיבת סימון כאמור לעול, יופיעו תיבות סימון ידניות ואוטומטיות כאחת במצב ריק (כלומר, לא מסומן) כל פעם שתופעל תיבת הדו-שיח המכילה אותן. דבר ה נוח ורצוי בנסיבותת מסוימות, אך אין זה מה שהמשתמש מצפה לו כרגיל. ככלל, תיבות סימון מופיעות. במצב הקודם שהוכתב להן כל פעס שתיבת הדו-שיח מוצגת. אם אתה מעוניין שתיבות. הסימון ישקפו את המצב הקודם שלהן, עליך לאתחל אותן כל פעם שתיבת הדו-שיח. מופעלת. הדרך הפשוטה ביותר לעשות זאת היא לשלוח להן הודעות 5510066% א מתאימות כאשר תיבת הדו-שיח נוצרת. זכור, כל פעם שתיבת דו-שיח מופעלת, נשלחת. אליה הודעת 06)אזס!1אז א/. כאשר ההודעה מתקבלת, אפשר לקבוע את מצב תיבות הסימון (וכל דבר אחר) בתיבת הדו-שיח. קטע הקוד הבא מאתחל את תיבות הסימון 6 6 .1818/64 השסע %פט 8 אסע חַ41810 שתך */ /* .ע18661עקסטמם פסאסט אסשת שמט ;(0 ,56301 ,אסמאסצם5 א ,01 סם1 ,סַנסה) 1916608655896עמה6ם :(0 ,5680082 ,אסמאסצם5 וע ,02 מם1 ,סַנסה) 191668%658396מה6ם 2 מצ? לפניך התוכנית השלמה 2א6866680, הכוללת אתחול תיבות הסימון ומנהלת את תיבת הסימון הידנית. השווה את פעולתה לוו של התוכנית לדוגמה הקודמת. כפי שניתן לצפות, התנהגותה דומה עכשיו לוו של רוב היישומים השכיחים של חלונות. (התוכנית נמצאת בתקליטור בתיקיה 086668082 8ק8ת0), 2 הוספת פקדים סטטיים פקד סטטי (סזוחסס 51366) הוא אמצעי שאינו מפיק או מקבל הודעות. בקצרה, המונח. פקד סטטי אינו אלא תיאור של פריט שתפקידו מתמצה בכך שהוא מוצג בתוך תיבת. דו-שיח, למשל הודעה מילולית או תיבה המכילה סוגי פקד אחרים. בסעיף זה נבחןן שני פקדים סטטיים, תיבת הטקסט הממורכזת (804 :ד 16100ח6) ו-תיבת הקבוצה 80% 000ז6). שני האמצעים האלה נכללים בהגדרת תיבת הדו-שיח שבקובץ המשאבים. של התוכנית, בעורת התוכניות דא6ד6 ו-68000808, בהתאמה. הפקודה 618% מפיקה מחרוות המופיעה כשהיא ממורכות באזור שהוגדר מראש. לפניך ההגדרה הכללית של הפקודה דאשד6 616 ,] 86165 ,106 ,צ ,א הנצס ,"6א60" צא: בדוגמה, 9% מכיל את המלל שיוצג. 6110 הוא הערך הקשור בטקסט זה. הטקסט יוצג בתוך תיבה שפינתה השמאלית-העליונה היא בנקודה ,א, וגודלה הוא המכפלה של הפרמטר חו6ו/ בפרמטר חחמָש. הפרמטר 56/6 קובע את הסגנון המדויק של תיבת טקסט. אם לא נבחר שוס סגנון מלוחד, יופיע הטקסט בתיבה במתכונת ברירת המחדל. כלומר, המלל ב-16% יוצג כשהוא ממורכו בתיבה. תיבת הטקסט עצמה אינה מוצגת. היא רק מגדירה את השטח שמותר למלל לתפוס. פרק 8: מבט מקרוב על פקדים | 205 הפקודה 6800080% מציירת תיבה. בדרך כלל התיבה משמשת כדי לתחום חזותית. סוגי פקד אחרים, והיא עשויה להכיל גם כותרת עבור הקבוצה. הגדרתה הכללית של הפקודה 6800280% מובאת להלן [16ע56 ,| 64006 ,מ106א ,+ ,< ,6210 ,"61816" אסמקטסהם במקרה זה, ₪06 הוא הכותרת של התיבה. סזז6 הוא הערך הקשור עם המלל שיופועע בתיבה. הפינה השמאלית-העליונה תמוקם בנקודה +,א, וגודל התיבה יהיה המכפלה של הפרמטר וזו בפרמטר זְופפוז. הפרמטר 58/16 יקבע בדיוק את הסגנון של תיבת. הקבוצה. בדרך כלל אפשר להסתפק בהגדרות ברירת המחדל. כדי לראות את השפעת שני הפקדים הסטטיים האלה, הוסף את ההגדרות הבאות. לתיבת הדו-שיח בקובץ המשאבים שיצרת עבור הדוגמאות הקודמות 4 ,51 ,1 ,1 ,081 1 ,"פסאסמאססמס" אסמפטסהם 4 ,50 ,44 ,1 ,071 םד ,"מאשם 18 שגמ" עא: לאחר שהוספת את השורות, הדר מחדש את הדוגמה הקודמת, הרץ את התוכנית ובחר. באפשרות פס מתוך התפריט הראשי. תיבת הדו-שיח תיראה עכשיו כמו זו המופיעה בתרשים 8.2. וכור, הפקדים הסטטיים מעניקים חזות שונה לתיבת הדו-שיח, אך אין חס משנים את תפקודה. ו ל הי 3 ו תרשים 8.2: הוספת סוגי פקד סטטיים לתיבת דו-שיחח 3 כפתורי רדיו הפקד הבא שנבחן הוא כפתור הרדיו (חסט8 ס800). כפתורי רדיו משמשים לייצוג אפשרויות שאינן יכולות להתקיים יחד (פאופטסאש ץוומטטז!). כפתור רדיו כולל תווית, המופיעה בצד כפתור קטן. אם הכפתור ריק, האפשרות שהוא מייצג אינה פעילה. אם: הכפתור מלא, אזי האפשרות שהוא מייצג נמצאת במצב פעיל. חלונות אל תומכת בשני סוגים של כפתורי רדיו: ידניים ואוטומטיים. בדומה לתיבת הסימון הידנית, כפתורר הרדיו הידני מחייב אותך לבצע את כל הפונקציות הניהוליות. כפתור רדיו אוטומטי מבצע עבורך את כל הפונקציות הניהוליות. הטיפול בכפתורי רדיו מורכב יותר מהטיפול בתיבות סימון. בדרך כלל, ביישומים מופועים כפתורי רדיו אוטומטיים; על כן נבחן כאן רק סוג זה של כפתורים. 6 32371חווו ומבוא ל-ספו בדומה לפקדים האחרים, כפתורי רדיו אוטומטיים מוגדרים בתוך קובץ המשאבים של התוכנית, במסגרת של הגדרת תיבת הדו-שיח. כדי ליצור כפתור רדיו אוטומטי, השתמש בפקודה וזסדדט0108אסדא, שהגדרתה הכללית מובאת להלן. [16ע56 ,] פתסגסת (תמטצח (צ ,< ,תצמת ,"אַה5021" אספדטמסזסתתסצטת בהגדרה זו, מכיל חַ את המלל שיוצג בצד הכפתור. 881 הוא הערך הקשור בכפתור הרדיו. הפינה השמאלית-העליונה של הכפתור תמוקם בנקודה +,א, והכפתור יחד עם הטקסט הצמוד אליו, יתפוס שטח שגודלו ייקבע על ידי הכפלת הפרמטר שטוו בפרמטר זו. הפרמטר 56/6 קובע בדיוק את הסגנון של כפתור הרדיו. אם: לא צוין שום סגנון מיוחד, יופיע הכפתור במתכונת ברירת המחדל, כאשר המלל ב-פַח50 מוצג מימין לכפתור, והמשתמש יכול להגיע אליו על ידי הקשה על מקש טגד. בדרך כלל, כפתורי רדיו משמשים ליצירת קבוצות של אפשרויות שאינן יכולות. להתקיים יחד, אלא רק אחת בלבד 54096 /ווגנטט/א). כאשר אתה משתמש בכפתורי רדיו אוטומטיים ליצירת קבוצה כזו, חלונות 5% מנהלת את הכפתורים באופן אוטומטי במתכונת של "אחד בלבד". כלומר, בחירה בכפתור מסוים מבטלת את הבחירה בכפתור הקודס. לא ניתן לבחור ביותר מכפתור אחד בכל פעם. תוכל להכתיב לכפתורי רדיו (גם אוטומטיים) מצב ידוע, אם תשלח להם את הודעת. 6% %ם באמצעות פונקציית 71 בשם ()5606081890%0655306. הערך של וחגזבסו+ יקבע אם הכפתור יהיה במצב פעיל, או מושבת (מסומן, או ריק). אס וזפזפלו מכיל 1, אי הכפתור יהיה מסומן. אם יכיל 0, הכפתור יופיע ריק. לפי ברירת המחדל, מופיעים כל הכפתורים כשהם ריקים. העדה: גם אם תשתמש בכפתורי רדיו אוטומטיים, ניתן להפעיל ידנית יותר מאפשרות אחת, או להסיר את הסימון מכל האפשרויות באמצעות הפונקציה ()655509ַ9ו01ו00ח .59‏ אולם | הסגנון החלונאי המקובל מכתיב שימוש בכפתורי רדיו במתכונת של י"אחד בלבדיי, כאשר כל כפתור פעיל מבטל את כל השאר. אנו ממליצים מאוד שתקפיד לנהוג לפו כלל ה. תוכל לברר מצב של כפתור רדיו באמצעות משלוח הודעת 6510186 %/8. הכפתור יחזיר ערך 1 אם הוא פעיל, וערך 0 אם לא: כדי להוסיף כפתורי רדיו לתוכנית לדוגמה, הוסף תחילה את השורות הבאות להגדרת. תיבת הדו-שיח שבקובץ המשאבים. שים לב שתיבת קבוצה מתוספת כאן, ומכילה את. כפתורי הרדיו. הדבר אינו הכרחי כמובן, אך הקבצות כאלה הן כלי נפוץ בעיצוב תיבות. דו-שיח. 2 ,48 ,10 ,60 ,נמת פד ,"1 סמה" אספצטמסנסתהסצטת 2 ,48 ,22 ,60 ,מה ס1 ,"2 סמה" אספצטמסנסתהסצטת 4 ,51 ,1 ,58 ,082 1 ,"קטסטם 58010" אספפטסהם פרק 8: מבט מקרוב על פקדים | 207 לפניך התוכנית הקודמת, במתכונת מורחבת הכוללת גם שני כפתורי רדיו. כפתורי הרדיו הם מסוג אוטומטי, ולכן אין תוספות רבות לתוכנית. שים לב שמצב הכפתורים. נשמר בשני המשתנים הגלובליים 15130081 ו-2פופופטז. הערכים בשני המשתנים האלה משמשים לקביעת המצבים ההתחליים של הכפתורים ולהצגת מצב הכפתורים. בתגובה לבחירה באפשרות 503005 מהתפריט הראשי. כשתריץ את התוכנית 3א6866880, תיבת הדו-שיח תראה כמו זו בתרשים 8.3. 0 ה "מ 3א%86ספמס" 1086סה1 (132א) ‏ 4681868 415 מטתץ 32און 15 446116 8 מפנתפ 32אצאן 15 440116 0 (0%80000000 > ()ה10פעשע600) (נססם) 26 2באצת פד תא 15 40:18 6 (צא 15) !) (נססם) 56 2באנא 15 25באנאן 15 06:16 ( >4(‏ () 08 וט 6) האס ) מעיע סנ כבמזו 19 55 ((325אצא 15)! 68 (סא 15)!) (מססם) ‏ 5פאנק 15 שמנ:400 =סתמספה1 שמצצטם // פחדת פסונתלפוונ /* בפאסם 00668 08 868008 68בסג */ ;%49082-0פטש , /* בפאסם 60%ה0 08 פטסבשם פהבסג */ 2-0מ26םפמצ , 486 60868081- מע 486 ;"אסמטנם" = שהבאסקת2פק1 תעפפסק1 0" 152 תפפפסקג ( סאם1 *5פהתסטוהן 7פאא0 | 0186020195 מססם ,655806ח עאצט ,תמ סאאט) סמ0פ18100פ אסהם1נהם עמ50ם18 מצ66אם (מ8פ8פ1 וותתתס1 ,הבעגקש אתתתקה פסוותדפאד ,בסהבופהנת מסותצפגנה | הןבעתגח צהפונמנעת פב 15 ,8ה651ה0ק1 ת57ל10 ,ססהגופה1שםצקת 0 |[ 4 6 זו | פע 55 תסו .01858 אסהת1א ה1108610קקב מגגת שת6 ע%0פ1מפת // 8 71א32חו/ו ומבוא ל-ספו פרק 8: מבט מקרוב על פקדים ‏ 209 0 3271חאו ומבוא ל-0פו ;[852]255 עפתם | (685806ה) 0160 5 | ( (בש בק 00 1) 660 5 8 ו ,"251018106" ,ספהצת) 18100808 810 3 (00פ0 זט ( םטע טל 10 886 ;("ה6350%86 18 1 אסמאשסהס" ,:86)עק0ע0פ (81ג0ם5פמם) ]1 ;("ה50%86ה6 מס 18 1 אסמאסשמס" ,802)ע80:00 156 ;("ה6360%64 18 2 אסטא0שמ0" ,:86) 505086 0086802 )11 ;("ה60%8ס פסת 15 2 אסמאסשמס" ,465086)568 156 ; ("מ60%50תש 15 1 410ה" ,:86)בסעסט (81ג20:פמע) ,1 ; ("מ60%58מ6 פסה 18 1 10בגת" ,4:026)852 18 ;("%8סשמם 15 2 410בת" ,:2026)88פ (552082מע) ,1 ;("0060%68 6סם 18 2 84010" ,465086)85 186 וס פא ,"" ,802 ,4מת) א0מ98800שון 0 1 סע /* הפצףסצק שֶ: ש5בה1תעשם */ :צסתצפמק וח 856ם (0 0 פע 4 ה 526018158 וסח 58008פש עתם 5פמססעק 95 באמבהגח משם */ /* .6ה6ת0:ב80 ה86180 הַת0681שעק שמף (80ע108 ,מבעג2ש ,5586שח ,6תחמ) 00פקשס8ה1תשם מעטס? ו 0 /* .ס1ססתגת מַ81210 נקחצפ ה */ 01 ,המש סמאא) 6מנפפ16ג1 אסתמננהס ענטפטתג (מהש8ק1 ממתתתק1 ,ה8שגקש מהתתקאה )| (85808שת) 150 פרק מבט מקרוב על פקדים ‏ 211 8 .018012168 חפסם %פגו פגג( אסם הַ1810 שתד */ /* .ע581!צקסעמקג פתסמסטם 28610 8תם בסאסם אסשמם פמט /(0 ,1פגםם:פטם ,אסממסלם5 4 ,נמ תד ,8 605586 /(0 ,2פ80:פטם ,אסממסלם: 6 ,02 1 ,8 הש /(0 ,1פמם8:פם+ ,אסממסלם: 4 ,גמת 1 ,8 6055 /(0 ,2פגם8:פמ? ,אסממסלם: אא ,2מת תד ,8 ה 1 על 5 |( ( בק )66 אפ 1 856 (0 ,4608 4100 סח 1 מעםם, 10 856 /* 168מג1צט פטף5:8 אסם %ספתס 410281 66פממט */ ,1 18 ,0מא4ת) 80101608/0658806ת36 = [פפ%8פטם 7 8סם 48 // 0 ;(0 ,0 ,אספמסעפם עמ ,02 18 ,0מא4מ) 8010160806658896ת36 = 8982 )פמ 7 אס 48 // 0 :(0 ,0 ,אספמסעפם עמ /* 8נמב1עמט פג0ם:ם אסכ א%ששתם 1ממס1ף שמגנמט ומת */ ,1 10 ,0מ46ם) 8658896ה6210166מ86 = 1פט640פט5 טסט 48 // -:(0 ,0 ,אספאסספם עמ ,2 10 ,806 600655806 080101 ספמ 48 //‏ :(0 ,0 ,אספאסעפם עמ 2 (0 ,468 4100 סח 1 תעםם, /* .אסם אסשהם השסבהגת ע11פטהגת 8 15 1018 */ :1מ0 פ1 שפמם /* 5:805 155 שהתגתם 50 ,אס אסמתם 18% 50160868 עשפמ */ ((0 ,0 ,טספ ₪ ,51 10 ,ה 606 ד4010ה50!) 16 ;(0 ,1 ,06מאסל50 אה ,081 10 ,8ת0) 801016055 /* 055 15 תעגט */ 186 ;(0 ,0 ,06מ4ספ50 א ,081 10 ,6ת0) 00101605 1 תעשם, 8 ל 2 הכפהו ומבוא ל-ספו תרשים 8.3: תיבת דו-שיח עם כפתורי רדיר פרק 8: מבט מקרוב על פקדים | 213 פרק 9 הקדמה לפסי גלילה (315ם |500) כמו שלמדת, חלון יישום יכול להציג דברים אחדים. מפעם לפעם החלון מציג אובייקט. נתונים 00600 03), כמו מסמך או צורה גרפית, שגדולה משטח הלקוח של החלון. כאשר יש לחלון פס גלילה (ז83 !/500), באפשרות המשתמש לגלול את אובייקט הנתונים שבתוך שטח הלקוח כדי לראות את כל המסמך או את כל הצורה הגרפית. חלון היישום צריך לכלול פס גלילה כאשר התכולה של שטח הלקוח גדולה ברוחב אור באורך מגודל שטח הלקוח של החלון. בגלילה סטנדרטית יש שלושה מרכיבים: החיצים משני הצדדים, רוחב פס הגלילה או האורך שלו, והגררה (פוחטחד) של פס הגלילה (וו התיבה הקטנה שהמשתמש גורר לאורך פס הגלילה). לדוגמה, תרשים 9.1 מציג חלון שבו פסי גלילה צמודים לשפות שטח הלקוח של החלון, בקצותיהס יש חיצים ובתוכס - גררה. תרשים 9.1: חלון עם פסי גלילה פנימיים והמרכיבים שלהם. 1 סוגי פסי הגלילה למדת בסעיף הקודס שלכל פס גלילה סטנדרטי (ז88 !560 50300870), ללא קשר במקומו ובכיוונו, יש תכונות כלליות המשותפות לו עס פסי גלילה אחרים. למעשה, יש שתי קטגוריות של פסי גלילה. הקטגוריה הראשונה היא פסי גלילה בשטח הלקות. (835 |ו0ז56 68זה-זח0ו(ס). פסי גלילה אלה יכולים להיות אנכיים או אופקיים, ואולי יופיעו כפסי גלילה סטנדרטיים או כפסי עקיבה (ז83 86%ז1). הקטגוריה השנייה היא. פסי גלילה שאינם בשטח הלקות (8975 ||0ז56 63זה-)ח06-חס)!). פאוסטחוא. מצמידה. את פסי הגלילה שאינס בשטח הלקוח לגבולות החלון. 4 3271חווו ומבוא ל-ספו 2 הוספת פסי גרירה לחלון הוספת פס גרירה מחוץ לשטח הלקוח באפשרותך ליצור ביישומים שלך פסי גלילה שאינם בשטח הלקוח, באמצעות המבנה. 5 או שהתוכנית מוסרת לפונקציה שסשְחו/%פ03/ס. כאשר מצמידים פס גלילה. לשפת החלון, פווסשחוו מחסרת באופן אוטומטי את רוחב פס הגלילה מתוך שטח הלקוח של החלון, כך שציור בשטח הלקוח לא יוצג אף פעם על פסי הגלילה. באפשרות. התוכנית גם לקרוא לפונקציה 505003 כדי להצמיד את פסי הגלילה לשפה הפנימית של החלון. בנוסף להצמדת פס הגלילה לשפה הפנימית של החלונות, מערכת ההפעלה מצמידה. באופן אוטומטי פסי גלילה לתיבות רשימה (8045 5%)) ולתיבות משולבות (ספוחסס. 5 כאשר רשימת הפריטים גולשת מעבר לגודלו של חלון הרשימה. באפשרות התוכניות גם להצמיד פסי גלילה לתיבות עריכה (8065 50). עם ואת, תיבות עריכה. בעלות שורה אחת (ח-פַ/5) תומכות רק בפס גלילה אופקי, בשעה שתיבות עריכה. מרובות שורות (6ח/) 6וקטוט!) מאפשרות תמיכה בשני פסי גלילה: אופקי ואנכי הוספת פס גרירה כסוג פקד לתיבת דו-שיח פקד פס הגלילה מחייב שימוש בכמה טכניקות מיוחדות. כדי להוסיף פקד פס גלילה כסוג פקד לתיבת דו-שיח, השתמש במשפט 888 508011, שהגדרתו הכללית היא: [16ע56 ,] 6מ10שא ,שו ,₪ ,פזפפ האפננסאספ בהגדרה זו, 5810 הוא הערך הקשור עם פס הגלילה. הפונה השמאלית-העליונה של פס. הגלילה תמוקם בנקודה +,א, וגודלו יהיה מכפלת הפרמטר תושוו בפרמטר אחספ הפרמטר 5/6 יקבע במדויק את סגנון פס הגלילה. לפי ברירת המחדל, הסגנון הוא: 2 585, היוצר פס גלילה אופקי. כדי ליצור פס גלילה אנכי, ציון 5 585 עבור הפרמטר 56/6. אם אתה רוצה בפס גלילה שיגיב להוראות מהמקלדת, כלול גם את הסגנון 85107 פא למשל, השורה הבאה יוצרת פס גלילה אנכי פסצפפמד ₪5 | צתפט 585 ,70 ,10 ,10 ,130 ,301 סז התמגנסה0ם פרק 9: הקדמה לפסי גלילה = 215 3 קבלת הודעות מפסי גלילה שלא כמו שאר הפקדים, פסי גלילה המתפקדים כפקדים אינס מפיקים הודעות סאאויוווסס וו. במקוס זה, פטי גלילה, בין אס הס פקדים ובין אס הס פטי גלילה של חלון, שולחים הודעות 50801 או או 456804 א/ו אל היישום, על פי פס הגלילה שעליו לוחצים, האופקי או האנכי. מילת הסדר-הנמוך של הפרמטר ומוק מודועה. לפונקציה המטפלת היכן היה העכבר כאשר המשתמש לחץ על הלחצן שלו. כתלות. במקום שבו היה העכבר בומן של הלחיצה, 5או0חו/ שולחת אחת מעשר הודעות אל התוכנית. תרשים 9.2 מראה את המקומות האפשריים ללחיצה בעכבר ואת ההודעה המתאימה שמקבל החלון. וה (8663566) 51710 0קפ ואט 50 (05506ק) 30197806 50 תרשים 9.2: חלק מההודעות ש-1060%5/% יוצרת כתוצאה מלחיצה בעכבר על פסי הגלילה. כאשר המשתמש משחרר את לחצן העכבר לאחר לחיצה במקום כלשהו בפס הגלילה, וסחוו שולחת את ההודעה 60508011 ואצ אל היישום. אס המשתמש הזיו את. הגררה בעורת העכבר, פאוסטחוא יוצרת את ההודעה 0511108קפואטוד 58 כאשר המשתמש משחרר את לחצן העכבר. 4 קביעת הטווח של פס הגלילה (ספח5015610!!₪3) לפני שתוכל להשתמש בפס גלילה כפקד, עליך להגדיר את הטווח שלו. הטווח של פס. גלילה קובע כמה מצבים יתקיימו בין שני קצות פס הגלילה. לפי ברירת המחדל, הטווח של פסי גלילה לחלונות הוא 0 עד 100. לפסי גלילה המתפקדים כפקדים יש טווח ברירת מחדל של 0 עד 0, לכן, יש להגדיר את הטווח לפני שניתן יהיה להשתמש. בפס הגלילה כפקד. כדי לקבוע את הטווח של פס גלילה, השתמש בפונקציה (0(!85960ז56156, שהגדרתה היא :+ ,ומנ שה1 ,2168 185 ,0משת פאשא) 06ה3ה1 8650501 מססם ;(ףת81שס? מ800 ,אמח שג 6 7א32חווו ומבוא ל-ספו במקרה זה, שחאוח היא הידית המגדירה את פס הגלילה. בפסי גלילה של חלונות, זוי ידית החלון, בפסי גלילה המתפקדים כפקדים, אוחי הידית של פס הגלילה (וכור שפסיי גלילה שהם פקדים, מעבירים את הידית שלהם ב- וגזגקו). הערך של חשוחוו יקבע איוה פס גלילה עומד לקבל הנדרת טווח. אם אתה עוסק בקביעת הטווח של פס הגלילה האנכי של חלון מסוים, חייב פרמטר זה להכיל את הערך דחפ 58. אם אתה עוסק בקביעת הטווח של פט גלילה אופקי של חלון נתון, חובה לרשוס את הערך 7 כדי להגדיר את הטווח של פס גלילה שהוא מסוג פקד, עליך לרשום את הערך 67 58. הערכים בשדות חווח ו- אפוח קובעים את הטווח. הערכים המותרים הס בין 0 ל-32,767. אס 6ח03שז מכיל ערך טטזו, אזי פס הגלילה יצויר מחדש לאחר קביעת הטוות. אס הוא: מכיל ערך 66ז, לא יוצג פס הגלילה מחדש. הפונקציה מחצירה ערך לא-אפס אם יצאה לפועל בהצלחה, וערך אפס א לא. 5 קביעת מצב הגררה בפס גלילה (56+50101]005) פטי גלילה הס פקדים להפעלה ידנית. לפוכך, חייבת התוכנית שלך להזיו את תיבת הגררה על פי הצורך. לשם כך, השתמש בפונקציה ()561560/1005, שהגדרתה הכללית. םי - 16 ,מס1תא טת1 ,שתשת סאאמ) 2011905 46 5 כאן, תווח היא הידית המגדירה את פס הגלילה. בפסי גלילה של חלונות, זוה ידית. החלון; בפטי גלילה שהס פקדים, ווהי הידית של פס הגלילה. הערך של חסוחי יקבע איוה פס גלילה יקבל הגדרות לתיבת הגרה שלו. אס אתה עוסק בקביעת מצבה של גררה בפס גלילה אנכי, יש להקצות לפרמטר זה את הערך דחפ 58. אס אתה עוסק בקביעת מצבה של גררה בפס גלילה אופקי, עליך להקצות לפרמטר זה את הערך 7 58. אבל בפקד פס גלילה, חייב ערך זה להיות 61 58. הערך של 05 יקבע את. מיקומה של תיבת הגררה. ערך זה חייב לייצג מיקום המצוי בתוך גבולות פס הגלילה. אם הערך של זחו3ק6ז הוא פנוז, יצויר פס הגלילה מחדש לאחר קביעת מיקום תיבת הגררה. אם הערך הוא 356!, לא יוצג פס הגלילה מחדש. 6 תוכנית ליצירת פסי גלילה (בתוך תיבת דו-שיח) בסעיף זה תוצג תוכנית פשוטה שתדגים לפניך כיצד ליצור פס גלילה אנכי בתוך תיבת. דו-שיח, ולטפל בהודעות ממנו. לתוכנית זו דרוש דו-שיח המוגדר כך. 4 ,154 ,20 ,20 מנמהסתה50נם 0מגדם 00מתזסצפםי אסנפקתס ₪5 | מתמנפדט ₪5 | קטפסק פא | מאתהאנתססון 5 ממ' טאפצופצפ פא פרק 9: הקדמה לפסי גלילה = 217 "889 505011 8 פַתפט" אסצעטהס "86516 585 פע" ,8 פאסע אזסטם 38 פס20816108",1 ממטתצ" 0 פסצפמהל ₪5 | פתפט 581,140,0,10,70,885 ספד 50011 סט לפניך התוכנית ז0/!88ז56 ליצירת פסי גלילה בשלמותה (בתקליטור 68009). היא מגיבה להודעות 1160 58, | א/וסספווז! 58, 68 הק 58 6000 58 אסנדופסקפויוטאזד 58 ו- א6ההדפאטווד 58 בהתאם לתזוות תיבת הגררה. שים לב שקביעת מצב הגררה הראשוני נעשית כתגובה להודעה 06אזסדזא1 .= כמו כן, היא מציגה את המצב הנוכחי של הגררה בתיבת הקבוצה ''חסו50סק פוחטחדיי (התוכנית. משתמשת לצורך זה בפונקציה : פסלאוסח5). מצב זה ישתנה ככל שתציו את הגררה. בתרשים 9.3 תוכל לראות פלט לדוגמה מהתוכנית. נקודה נוספת: שים לב שמצב הגררה מוצג על ידי משלוח פלט טקסט אל שטח הלקוח של תיבת הדו-שיח בעורת. הפונקציה ()19:0. על אף שתיבות דו-שיח משרתות מטרה מיוחדת, בסופו של דבר הן חלונות, ולחלונות אלה יש מאפיינים בסיסיים כמו לחלון הראשי 014066 >9188005 .< 014066 >55010 .< ".502011888" 106סה41 "ת. 0500208" במט1סת41 (81832) 4681868 415 מטתץ 32ונא 15 6ה001+ 8 א 15 ה401 3 4 0 >תאמטותת 4051106 /* פּחַת1ע80 מטקסטס 188סה */ ;[255] 862 צבתם א 4% /* ה1068510 מטססוס ממסעפטם */ ; 35686 מהמפעמם // ;חדת מסונתת5) ;"ממהעע" = סהפאסקתפפמ1 תפפסק1 ;"מ1168610קקת 014100 185166 869011888" | = 1529116 תעפפסקן ₪ (סאמ1 *55תנספומו פפאסם) 01860201295ה מססם (פספה 10% ,טנסה מאאא) פספשסגם 18ס 8 71א32חוו ומבוא ל-ספו פרק 9: הקדמה לפסי גלילה = 219 (שב *55ה1סטאאו עפאס0) ₪691866581895 מססם [ ה ססומר אב ו ב 11 ססר 01ב 001 סו ב סו = ו לב סו ב פס אס ,סע ףאסםמעמם<-סאמ1 = = 4הטסשףַאמ8מצעת אססט קשהממוטהו/2פם1<-סאמ1 = סתבאמהם/2פק1 אססט ,806ון8201258מ1ק-סאמ1 = 6ה5502ב125201 אססט ( סוק 12005 1 ; ("1ת8/8" ,06ת868מזת. %ם0א) ת1088100 1 0 ; (66069)א86018669018598 פנש ,הבצגתא אתתתקה ,ספפו עמצט (במות כומוה | 00עפבמה אסהמננתס נטפטתנ (88ש198 שתסתס ב 9 1 ו 00 106 886 ( ( פא ) תס ) 1608 [ צפפע 188 0886 ,מ ,"2686018106" ,טפמדת )18108508 ( 06שפ1656010 (69800מם) 8%ע צעאם 188 6886 (8 מ עס פע [ וצ + צסהצפפם 006 886 (0 0 %צ ו (88ע8ק1 ,מבצפא ,ספא ,0מאמ) ססעסא80ה1סע) מעטסם, 1 (01 ג 0 3271חווו ומבוא ל-ספו 0 ,פפעט צאצט ,נפת פאא₪ )506סף1ם6פשע אסממנותס ענטפטב ( מב85פ1 מתתתק1 ,הבלא אתתתקה /* מס1ס1פסק אסם 811862 */ ;0 = פסם מה1 2:8610 ( 8 | 1 [ ו ,מס 88 ,(581 ס016,10ה)ת06%019166 (פאאא) ) 8006 0696011 1 אתאססותת פע 86 |( בק 00 1) 66 5 סט 88 886 (++פסם הת = 05 ( )5 ;(1 ,08 ,תד 32 ,תב:גק1 (סאאט))0:962011908 (08 ותמ ) פאס (%מסצם ב פטטאדן 88 0886 8 = 008 (45)00560 ;(1 ,פסם ,תד 5 ,מבצבק1 (סאאם))0:302011808 (08 18 ) סמ 0 88 856 /* ה10פ1פסק ממסצעטם 65 */ ;(מבצבפא) פתסאצא = פסם ;(1 ,08 ,תד ם3 ,תב:בק1 (סאאט))0:96201108 (08 פמ ) אס לספ טוט 88 856 /* ה10פ1פסק טמסצעטס 966 */ ;(מב:בפא) פתסאנא = פסם ;(1 ,פסם ,תד 52 ,חבצבק1 (סאאט) )0596201108 (08ם ואפ ) פס ל תס 88 856 =+ 05 = )5 ;(1 ,8סם ,תד 32 ,מבצגק1 (סאאט))0:96201108 (08 ומת ) 08 סמ סע פרק 9: הקדמה לפסי גלילה = 221 2 הלבחו ומבוא ל-ספו 5 תרשים 9.3: דוגמת פלט מהפעלת תוכנית לוצירת פסי גלילה. אצל מתכנתי חלונות מתחילים נוצר משום-מה הרושם, שפסי גלילה הם עניין מסובך. למעשה, פסי גלילה הם אחד מאמצעי הפיקוד הפשוטים ביותר של חלונות. 7 הפונקציה -5010!!831/ש50 למדת שבאפשרות התוכניות להצמיד פסי גלילה לחלונות הן בזמן יצירת החלון והן לאחר שהחלון נוצר. כדי להצמיד או למחוק פס גלילה מחלון שנוצר כבר, משתמשים בפונקציה זג5001!8או50. פונקציה זו מציגה או מוחקת את פס הגלילה שהוגדר. את. הפונקציה ז88ו/50/50 כותבים כמו בהגדרה שלהלן 0 סט צגם 505011 (ז1ש אסטמנא 05 מ1מתמת // פא 9 48 509011 // 46 10 ע1116מ1פ1ט צמם 509011 // אפ סט 1 הפרמטר 6ח//ח מוהה פקד של פס גלילה או חלון עם פס גלילה סטנדרטי, על פי הערך. של הפרמטר זהפאו. הפרמטר אוסחפפ מגדיר אס פווסטחוו מציגה או מוחקת את פס הגלילה. אם אס הפפ שווה ל-פנחד, פאוסטחוו מציגה את פס הגלילה; אחרת, פאופשחואר מוחקת אותו. הפרמטר זגפוי מגדיר את פס הגלילה ש-מווס6חו תציג או תמחק. פרמטר זה יכול להיות אחד הערכים שמפורטים בטבלה 9.1. טבלה 9.1: הערכים האפשריים עבור הפרמטר זה8/א. ערך פירוש דסמ 58 | מציג או מוחק את פסי הגלילה הסטנדרטיים האופקיים והאנכיים של. החלון. וד 58 | מציג או מוחק את פקד פס הגלילה. הפרמטר 0ח/ח חייב. הידית של פקד פס הגלילה. 2 58 | מציג או מוחק את פסי הגלילה הסטנדרטיים האופקיים של החלון. דהפט 58 | מציג או מוחק את פסי הגלילה הסטנדרטיים האנכיים של החלון. פרק 9: הקדמה לפסי גלילה = 223 % הערה: אין צורך לקרוא לפונקציה ז3פ!ו60פאוסח5 כדי להחביא פס גלילה בומן הטיפול בהודעה של פס גלילה. לאחר הצגת פסי הגלילה נרצה בדרך כלל לשלוט בצורה שבה המשתמש מפעיל אותם. אחד הפקדים המקובלים (06זוחס6 חסוחוחטס) שתוסיף ברוב המקרים לפס גלילה הוא: הפקד המאפשר הפעלה או אי-הפעלה של אחד החיצים או שניהם בפס הגלילה. כדי לעשות ואת, משתמשים בפונקציה ז88וו5פוַח5. הפונקציה. זספווסזס5פופַחם. מאפשרת הפעלה או אי-הפעלה של אחד החיצים או של שניהם. משתמשים בפונקציה. 6031650018 בתוכניות כפי שמוצג שלהלן ) 14502011885מאת 005 פפט 505011 פס 018006 60 616ממת // וו סא 5198 פע פפט 566011 // אצ 8 אספפם שאמ 509011 // 5סצפגט עאצט / הפרמטר שח/וח מזהה חלון או פקד של פס גלילה, על פי ערך הפרמטר 8ַ5809וא. הפרמטר 58065 מגדיר את סוג פס הגלילה, והוא יכול להיות אחד הערכים שמפורטים בטבלה 9.1. הפרמטר פווסזזוו מגדיר אם החיצים של פס הגלילה מופעלים. או שאינם מופעלים, ומציין איוה חץ מופעל או שאינו מופעל. הפרמטר פאוסזז ו יכול. להיות אחד הערכים שמפורטים בטבלה 9.2. טבלה 9.2: הערכים האפשריים עבור הפרמטר זזה . עיך פירוש 80 158815 ₪58 | גורס לשני חיצי פס הגלילה להיות במצב לא-פעיל. אס 0158815 ₪58 | מעביר את החץ התחתון בפס גלילה אנכי למצב לא-פעיל. זז 558-0158865 | מעביר את הח השמאלי בפס גלילה אופקי למצב. לא-פעיל. קטדו 15845 .858 | מעביר את הח השמאלי בפס גלילה אופקי למצב. לא-פעיל, או מעביר את הח העליון בפס גלילה אנכ למצב לא-פעיל. זווא 015815 ₪58 | מעביר את החץ הימני בפס גלילה אופקי למצב לא-פעיל. אפדא 015815 558 | מעביר את הח הימני בפס גלילה אופקי למצב לא-פעיל, או מעביר את החץ התחתון בפס גלילה אנכי למצב לא-פעיל. קט 15815 ₪58 | מעביר את הח העליון בפס גלילה אנכי למצב לא-פעיל. 804 = ופאש 858 | גורם לשני החיצים של פס הגלילה להיות במצב פעיל. שתי פונקציות אלו יחד, נותנות אפשרות לתוכניות לנהל את רוב הפעילות של פס הגלילה הדרוש להן. 4 הכפהו ומבוא ל-ספו 8 המיקום והטווח של פס הגלילה ברוב המקרים, היישום משנה את הטווח כדי לשקף את גודל המסמך או התמונה. מיקום הגררת (פוחטחד) הוא הערך שנמצא בטווח שבו היא נמצאת. לדוגמה, אם הטווח הוא מ-0 עד 100 ומיקום הגררה הוא 50, אזי הגררה נראית באמצע פס הגלילה. באפשרותך ג לקבוע את גודל הדף (509 6סָק) של פקדי פס הגלילה. גודל הדף מיוצג את מספר התוספות בטווח פס הגלילה, שהדף יכול להציג בו-ומנית. לדוגמה, אם הטווח הוא מ-0 עד 100 וגודל הדף נקבע ל-50, פירוש הדבר שהדף יכול להציג חצ מטווח הפקד בכל זמן נתון. יש להשתמש בפונקציות 0/ח1ו/56/5000 ו-6615070//1000 כדר לקבוע ולקבל את טווח פס הגלילה, מיקום הגרה וגודל הדף, במקוס בפונקציות הישנות (585001005 ך- 0615001005 9 קבלת הערכים הנוכחיים של פס הגלילה כפי שלמדת, לפסי גלילה יש ערכי ברירת מחדל מסוימים בעת שמוסיפים אותם לחלונות התוכנית. אך למדת שהתוכניות משנות את הקביעות האלו במהלך הביצוע שלהן. פעמים רבות התוכניות חייבות לבצע פעולה מסוימת המבוססת על קביעות אלו. כדי שתוכנית תוכל לדעת את ההגדרות הנוכחיות של פס הגלילה, עליה להשתמש. בפונקציה 0וחזוו660500. הפונקציה 0/חזוו66/500 מקבלת את הפרמטרים של פס הגלילה, ובכלל זה את המיקום המינימלי והמקסימלי של הגלילה, את גודל הדף ואת. המיקום של תיבת הגלילה (804 !(5₪0, או הגררה). את הפונקציה 00זו/661500. כותבים בתוכנית כפי שמוצג שלהלן 0 505011 1% שס8מ1ש 05 16ממת // אא 9 פמ 509011 // (פפפה? 486 1 500 שפטפסמפ50 05 פשמתנסם //‏ 4פק1 0עא1 18508011 פאס ]1 ₪ כמו שאפשר לראות, הפונקציה ס/חזוו66500 מקבלת שלושה פרמטרים. הפרמטר ופפו, עליו תלמד יותר בהמשך סעיף זה, מחזיר ערך של 50א1ו50801. הו מבנה שמוגדר במערכת 5606 5190-060066ץ5 א), בעל האיברים הבאים. 3990801100 56906 686%מע [ צאט פוט ;הצאה 16 אבאה 406 פה פאעט פה 46 46 7 פרק 9: הקדמה לפסי גלילה = 225 שתי הפונקציות 6650/1100 ו-565070//[0/0 משתמשות במבנה 50א5680111. טבלה 3 מפרטת את איברי המבנה הזה. טבלה 9.3: איברי המבנה 5680111850. איבר תיאור 6 | מגדיר את הגודל בבתתים (095ע8), של המבנה 5080111850 95 | מגדיר את הפרמטרים של פס הגלילה, שצריך לקבוע או לקבל. איבר זה יכול להיות שילוב של הערכים שמפורטים בטבלה 9.4. חוויוח | מגדיר את מיקוס הגלילה המינימלי. אמא | מגדיר את מיקוס הגלילה המקסימלי. שא | מגדיר את גודל הדף. פס הגלילה משתמש בערך וה כדי להחלוט על. הגודל הפרופורציונלי המתאים של תיבת הגלילה (804 ו/5010) 5קו | מגדיר את המיקום של תיבת הגלילה. 605 | מגדיר את המיקום המיידי של תיבת הגלילה שהמשתמש גורר. כרגע. באפשרות היישום לקבל את הערך הזה בזמן הטיפול. בהודעת שינוי המצב אסאהד8ו/ד 58. היישום אינו יכול לקבוע את מיקום הנלילה המיידי. הפונקציה סוחזוו561500 מתעלמת. מאיבר זה. כמו שראית בטבלה 9.3, האיבר 185% יכול לקבל אחד ממספר ערכים מובנים. טבלה 9.4 מציגה את הערכים האפשריים שהפרמטר 185% יבול לקבל. טבלה 9.4: הערכים המובנים האפשריים שהפרמטר 891858 יכול לקבל. ערך פירוש ו 515 | שילוב של 65 *51, 205 51 ו-65אח -51. ו015860050%0 51% | משתמשים בערך זה בתוכניות רק כאשר קובעים את. הפרמטרים של פס הגלילה. אם הפרמטרים החדשים. שקובעים לפס הגלילה גורמים לכך שלא צריך אותו יותר, חייבים להעביר אותו למצב לא-פעול במקום. להסיר אותו. 8 "51 | האיבר סח מכיל את גודל הדף עבור פס גלילה. פרופורציונלי 5 51 | האיבר 05לח מכיל את המיקום של תיבת הגלילה. 8 51 | האיברים חו/וח ו-אפ/ח מכילים את הערך המינימלי והמקסימלי של טווח הגלילה. 6 71א52חווו ומבוא ל-ספו הפרמטר ח/וח שבפונקציה /ח1ו01ש615, מציין פקד פס גלילה או חלון עם פס גלילה. סטנדרטי (ז83 וו560 036ח513), על פי ערך הפרמטר זהפחז. הפרמטר ז83ח מגדיר את. סוג פס הגלילה שצריך לקבל עבורו את הפרטרים, והואא יכול לקבל אחד מהערכים. שמפורטים בטבלה 9.5. טבלה 9.5: הערכים האפשריים שהפרמטר 088 יכול לקבל. עוך פירוש 58 | מקבל את הפרמטרים עבור פקד פס גלילה. הפרמטר חח חיוב. להכיל את הידית של פקד פס גלילה. 2 58 | מקבל את הפרמטרים עבור פס גלילה אופקי סטנדרטי של החלון. דפ 58 | מקבל את הפרמטרים עבור פס גלילה אנכי סטנדרטי של החלון. לבסוף, הפרמטר |פק! מצביע למבנה מסוג 5680111850 שהאיבר 985% שלו, ברג הכניסה לפונקציה, מגדיר את הפרמטרים של פס הגלילה שצריך לקבל. לפני שחוזרים, הפונקציה מעתיקה את הפרמטרים המוגדרים לאיברים המתאימים של המבנה. הערך. של האיבר 1%856 יכול לחיות שילוב של הערכים שמפורטים בטבלה 9.6 (שים לב שהפונקציה 0/חז661500/1 מקבלת רק ערכים מסוימים של האיבר 55 טבלה 9.6: הערכים האפשריים של האיבר א19/85 שבמבנה 5080111850 ערך פירוש 8 51 | מעתיק את דף הגלילה לאיבר טמ של המבנה 5680111050 שמוצבע על ידי הפרמטר ופפ 05 515 | מעתיק את מקום הגלילה לאיבר 705ח של המבנה 5080111860 שמוצבע על ידי הפרמטר ופפ 516 | מעתיק את טווח הגלילה לאיברים חוו%ח ו-אפוי/ח של המבנה. 5680110 שמוצבע על ידי הפרמטר ופפ הפונקציה 0/ח///661560 מאפשרת ליישומים להשתמש בערך מיקום גלילה בן 32 סיביות. (פטו/ פ-32). למרות שההודעות שמציינות את מיקום פס הגלילה, 35080 ואו ו-ו0ה56 או מאפשרות ערך בן 16 סיביות (פטו3/ פ-16) בלבד עבור מיקום הנתונים, הפונקציות טוחזוו561500 ו-0וחזוו661500 מאפשרות להשתמש. בערך של 32 סיביות עבור מיקום הנתוניס של פס הגלילה. לכן, היישום יכול לקרוא ל-0/ח1ו/0י66090 כאשר הוא מטפל בהודעות 8568011 א או 50804 אא, כדר להשיג את מיקום הנתונים של פס הגלילה באמצעות ערך של 32 סייביות. ההגבלות על השימוש בערך של 32 סיביות עבור מיקום הנתונים של פס הגלילה מתייחסות לגלילת תכולת החלון בזמן אמת (6וחוד 1ג₪6). היישו מיישם גלילת ומן אמת על ידי טיפול בהודעות )45080 ואו או .4ו5080 ו, שמכילות את ערך שינור פרק 9: הקדמה לפסי גלילה = 227 המצב 66תחדפווט/ד 58, וכך הוא עוקב אחר מיקום תיבת הגלילה (טוחטחד) כאשר המשתמש מזיז אותה. לרוע המול, אין פונקציה שמקבלת ערך בן 32 סיביות של מיקוס תיבת הגלילה כאשר המשתמש מזיז אותה. מכיון ש-661560/110/0 מאפשרת. לקבל את המיקום הסטטי בלבד, היושום משיג רק ערך בן 32 סיביות של מיקום הנתונים לפני, או אחרי פעולת הגלילה. 0 גלילת תוכן החלון הפעולה החשובה ביותר שפסי הגלילה מבצעים היא מתן אפשרות למשתמשים לגלול. את תוכן החלון. השליטה בגלילת החלון נעשית באמצעות הפונקציה אְסטְחו/שו5001. פונקציה זו גוללת את התכולה שנמצאת בשטח הלקוח של החלון המוגדר. משתמשים. בפונקציה 5%ו60חו56/0//00 בתוכניות כמו שרואים בהגדרה שלהלן 16 0 01 60 אסבת1ש 05 ש1מממת // וו סא 509011188 81:ה20נצסת 05 ממטסתם // 4 8ה5020111 1081סעסט 05 מתטסחם // ג 10 שפטמסטע%פ 01 8002658 //‏ ,0502011צק* צסמת - | 50011 10 בענוסטעםפ 01 8085685 // = ,00110עק* צסמת צפאסס 08ם: מצגם // 100שסע ב6בקט 05 16מממ // אמט 10% שעגטסטעםם 06 2849085 // שסםתק1 סט 8 011108ע50 // 8 פאצט / הפונקציה א5סַחו/ו/560 מקבלת שמונה פרמטרים, שאת מרביתם אפשר לצפות. טבלה 9.7 מפרטת את הפרמטרים שמקבלת הפונקציה א5סְחו/ש50011. טבלה 9.7: הפרמטרים של הפונקציה א5אוסח1/ו/56101. פרמטר תיאור שחצוח | מאהה את החלון שפונקציה א6ַ/סחו/560/14 אמורה לגלול את שטח. הלקוח שלו. + | מגדיר את טווח הגלילה האופקית ביחידות התקן. פרמטר זה חייב. להיות שלילי כדי לגלול שמאלה. 6 | מגדיר את טווח הגלילה האנכית ביחידות התקן. פרמטר זה חייב. להיות שלילי בדי לגלול כלפי מעלה. 8 32371חו/ו ומבוא ל-ספו פרמטר ו ב 8 ו ב תיאור מצביע למבנה ₪50 שמגדיר את חלק שטח הלקוח בחלון שפונקציה 50/0/00 אמורה לגלול. אס פרמטר זה הוא 1, הפונקציה 5001/0100 גוללת את כל השטח. מצביע למבנה 8567 שמכיל את קואורדינטות מלבן הגזירה. (6ו₪601300 הַחוקווס). הפונקציה אפווסטחווו/5010 משפיעה על חלקי. ההתקן שנמצאים במלבן הגזירה. פווס6חוו צובעת חלקים. שהפונקציה גוללת מחוץ המלבן פנימה; 1100006 ינה צובעת. חלקים שהפונקציה גוללת מתוך המלבן החוצה. מוהה את האזור שהפונקציה א5או00חו/4וו560 מגדירה כדי להחזיק. את האזור שהגלילה הופכת אותו ללא תקף. הפרמטר פְגקְטחטָז יכול להיות א. מצביע למבנה מסוג ₪86 שמקבל את גבולות המלבן שהגלילה. הופכת אותו ללא תקף. הפרמטר סוטפטחפָזח יכול להיות )א מגדיר דגליס ששולטים בגלילה. פרמטר זה מקבל אחד הערכים. שמפורטים בטבלה 9.8. כמו שציינו בטבלה 9.7, הפרמטר 5סָ! יכול לקבל אחד ממספר ערכים מובנים שבמערכת. טבלה 9.8 מפרטת את הערכים האפשריים של הפרמטר פסָּח. אם הפונקציה מצליחה, הערך המוחזר הוא א588610 51971 (אזור מלבני שאינו תקף), א0ז856אש קויוסס (אזור שאינו מלבני ואינו תקף; המלבנים חופפום), או א8610ה וטא (אין אזור תקף); ואס הפונקציה נכשלת, היא מחזירה את הערך ה0ה68. טבלה 9.8: הערכים האפשריים עבור הפרמטר ₪₪695. עוך פירוש 85 שופ | מוחק את האזור החדש הלא-תקף, על ידי שליחת. ההודעה %א8₪558%6 או לחלון כאשר כוללים את. הדגל ₪855 5 עם הדגל שד10/א1 5 =דהסזושא1 5 | גורם לאי תקפות האזור שמווהה על ידי הפרמטר. 8 אפ 568011.0011 5 | גולל את כל חלונות הבנים שנחתכים 1615600 חיתוך) עס המלבן שמצביע עליו הפרמטר ו65610זק. 6% גוללת את חלונות הבנים כמספר הפיקסלים. שמצוין בפרמטרים א6 ו-ץ6, ושולחת הודעת. פס או לכל החלונות הבנים שנחתכים עס המלבן וו6500זם, אפילו אם הם אינם זזים. פרק 9: הקדמה לפסי גלילה = 229 אם בקריאה. לפונקציה מוגדרים | הדגלים 6דאס1טא1 /50 ו-56ה₪ 50, 0005חו/ו//5070 אאינה מסמנת את האזור שהיא גוללת כלא תקף. אם לא נקבע אף לא אחד משני דגלים אלה, א0005חו/וו560 מסמנת את האצור שהיא גוללת כלא תקף. וס6חוו אינה מעדכנת את האזור עד שהיישום קורא לפונקציה ע000חו9184ק, אר שהוא קורא לפונקציה 866340604 (מגדיר את צוסאשדהסקט ופה או את הדגל ש6855%0 שופף), אד מקבל ההודעה דאזאק %!א מתור ההודעות של היישום. אס יש לחלון את הסגנון אה 0117011 05ו, האזורים המוחזרים שמוגדרים על ידי סז ו-036קסזק מיצגים: את האזור הכולל שעל 5וס6חו לעדכן, ובכלל זה. אזורים שבחלונות הבן. אם בקריאה לפונקציה 560//0006006% מוגדר. הדגל שח 50801.0 5%, אזי פאאסטחוו אינה מעדכנת את המסך כראוי אם המשתמש גול רק חלק של חלון בן. פווסטחוו אינה מוחקת את החלק הנגלל של חלון הבן שנמצא מחוץ למלבן המקור, ואינה צובעת מחדש את חלון הבן ביעד החדש שלו. כדי להזיז חלונות הבן שאינם נמצאים כולם במלבן שמוגדר על ידי |/500סזפ, השתמש בפונקציה פסקאוסטחו/%ז06/0. 5וס0חו/. ממקמת את הסמן מחדש אם נקבע הדגל אשהס50801.011 5 ומלבן סמן הטקסט חותך 1619960) את מלבן הגלילה. 0005חו/4. מציינת את כל קואורדינטות הקלט והפלט (עבור !6501זק, - 601זם, 6 ו-סוה0קטחפָזח) כקואורדינטות לוגיות, ללא קשר אם יש לחלון את סגנון המחלקה 6פאע. 65 או 15506 65. השתמש בפונקציות טוק ו-וסוק כדי לתרגס מקואורדינטות לוגיות ולקואורדינטות לוגיות, אם יש צורך בכך. כדי להבין יותר טוב את פעולת הפונקציה אַאס0ַחו/ו// ,560‏ התבונן. בתוכניתת אוסחו/+ /01ז56 שנמצאת בתקליטור המצורף לספר זה (618009). התוכנית צוס6חו/ !5610 מאפשרת למשתמש להוסיף מדי פעם שורה לחלון התוכנית. כשמספר הקווים עובר את השטח הקיים במרחב החלון, פס הגלילה הופך לפעיל. כאשר המשתמש לוחץ בעכבר על הח העליון או על החץ התחתון, הגררה זזה שורה. אחת בכיוון המתאים. 1 ההודעה 5126 וזש בסעיף הקודם למדת על התוכנית אוסחו !/0ז56, שאיפשרה למשתמשים לבחור בפס הגלילה כדי לנוע למעלה ולמטה בחלון. התוכנית מפעילה את פס הגלילה כאשר תכולת החלון ארוכה מדי מכדי להציג אותה בגודל החלון הנוכחי. אם ניסית את התוכנית אוס6חו/ !5610 והגדלת את החלון, ודאי ראית שפס הגלילה הפך להיות. שוב לא-פעיל, לאחר שהגדלת את החלון במידה מספיקה להצגת כל הטקסט. התוכנית. 00160 567011 לוכדת את הודעת המערכת 5125 זא ומעדכנת. את פס הגלילה, לאחר ששינית את גודל החלון 5 פסעחוה ש(ט 0-081001266: ,51260 15 אסהתנא שמ: שמגו עצסשם // צגם 502011 שת: 865 28 צ18קפ41 הגש 68ב 8מ116ם שמ: 18ב // 0 0 3271חווו ומבוא ל-ספו 9125 0 56 ו ספה ( 82606 ,6ממ )0110605 / 0םםסט .260% = פשתגנספפם ( 008ם1תטאת > מפה1תקפסת | :4 [ 00 / 5080120 )412605 = 6פ81מ0. 51 קמסתק עעם | מסאתת עצפ | פסק 38 = 6פגם 21 7 = המו תטאה = אגעם. 1 ;פפת!1מפפה = 6מַגעת. 51 /פספפטסה = 8סעם.21 ;(מפסם מנמתום 58 ,צהמט 58 ,4האג) צ1080201188מפהם ;| פעת ,81 ,פתמט 58 ,המת )50ה0:9620111 1 8 ; (מצסה מממתפנם 58ם ,להמט 58 ,0מאג)ע1880201188מממם 1 סע במקרה של התוכנית אוסשחוש /(0ז56, משפט 6356 של 5125 וזו בודק את מספר השורות שיכול החלון להציג כנגד מספר השורות שמוצגים כרגע. אס מספר השורות. האפשרי גדול ממספר השורות המוצגות, התוכנית מעבירה את פס הגלילה למצב לא-פעיל; אחרת, התוכנית משנה את גודל הגררה (אם יש צורך בכך) ומציגה את פס הגלילה החדש שהותאם לגודל החלון. משתמשים בהודעה 5175 וא כדי לבדוק את גודל החלון הנוכחי ולהחליף פריטים. כלשהם שנמצאים בחלון שהמקום שלו תלוי בגודל החלון. לדוגמה, אם יש לך תיבת עריכה (803 86) בחלון שמציג כותרת והמשתמש משנה את גודל החלון, תרצה בוודאי לשנות את גודל תיבת העריכה בהתאמה עס החלון. הפעולה שיבצעו התוכניות. כאשר הן מקבלות את ההודעה 5126 ו תהיה שונה, בהתבסס על סוג שינוי הגודל. שעשה המשתמש. ההודעה 5126 זו מעבירה קבוע שמייצג את סוג שינוי הגודלל בפרמטר וזבזהלאו. טבלה 9.9 מפרטת את הערכים האפשריים של הפרמטר וזמזסוו. פרק 9: הקדמה לפסי גלילה = 231 טבלה 9.9: הערכים האפשריים של הפרמטר זאש בהודעה 512 וא עיך פירוש =פזואאוא 5128 | 5אוסשחוו שולחת את הודעה לכל החלונות הנשלפים (0-קסק. אוסשחו/ו) כשהמשתמש מגדיל למקסימום חלון אחר כלשהוו ססקזוווזאאו 5128 | המשתמש הגדיל את החלון לגודל מקסימום. ש50/ 5126 | פוסטחוצו שולחת את הודעה לכל החלונות הנשלפים כאשר המשתמש משחור חלון אחר כלשהו לגודל שהיה לו קודס. ססקזויונאזוו 5175 | המשתמש הקטין את החלון לגודל מינימוס. 85510850 5125 | המשתמש שינה את גודל החלון, אבל אף לא אחד מהערכים. ססקנוונוונוא 5126 אר ס5קנאזאאו 5126 ישימים. בנוסף, ההודעה 5126 או מעבירה מידע על החלון החדש בפרמטר וחמּזקו. מילת. הסדר-הנמוך של חוגזגלו מגדירה את הרוחב החדש של שטח הלקוח, ומילת הסדר-הגבוה של וחּזגק! מגדירה את הגובה החדש של שטח הלקוח. 2 ההודעה דאז2ק ואצו למדת שהיישוס מקבל את ההודעה 5126 ואו בכל פע שהמשתמש משנה את גודל. החלון. פווס6חו ג תשלח ליישום את ההודעה דאזק אצ אחרי ההודעה 5126 אא בכל פעם שהמשתמש משנה את גודל החלון. למעשה, היישום מקבל את ההודעה דאזאק. או כאשר פווס6חוו, אד יישום אחר, מבקש לצבוע חלק מחלון היושום שלך פאוסחוו ‏ שולחת את ההודעה זא[אק או כשהתוכנית קוראת לפונקציה 0319 אר ל-אס6חוו3זסה ; או שהיא שולחת את ההודעה לפונקציה 6 כאשר היישום משתמש בפונקציה 6600699306 או בפונקציה 6 כדי לקבל אאת ההודעה דא/1ק וע הפרמטר וחגזפקוי של ההודעה דאזק | מכיל את הערך 86. הערך 06 הוא ידית. להקשר התקן (אוחס6 06/08). פרמטר זה מצהה את הקשר ההתקן שבו וחור צובעת. אם הפרמטר וגזגסווי הו 11 היישוס צריך להשתמש בהקשר ההתקן של ברירת המחדל (במקום ליצור הקשר התקן פרטי, פוטס 6006 ופעזק). מספר פקדים משותפים משתמשים בפרמטר לוי כדי שיהיה אפשר לצייר בהקשר התקן. אחר מוה של ברירת המחדל. חלונות אחרים יכולים להתעלם בצורה בטוחה מ-חפזמק או הפונקציה 06זקואס6חו/0ם הופכת את אזור העדכון סופ 035ק0) לתנקף (31/0919/. יכול להיות שהפונקציה תשלח גם הודעת דאזק6! וא לפונקציית החלון, אם 5וס6חוו חייבת לצבוע את חלון המסגרת (פוחבז אוסחו//, ובנוסף היא שולחת את ההודעה ₪8456866%0 א אם 05ו60ח/4 חייבת למחוק את הרקע של החלון. 2 זקא2חווו ומבוא ל-ספו המערכת שולחת את ההודעה דא1אק וו כאשר איין הודעות אחרות בתור ההודעות. של היישום. 9306פסואתפוהקפם. מחליטה לאן לשלוח את ההודעה. 000009936 מחליטה איזו הודעה לשלוח. 661//65306 מחצירה את ההודעה דאזאק וו כאשר אייך הודעות אחרות בתור ההודעות של היישוס, ו-0300/1655306פוס שולחת את ההודעה. לפונקציית החלון המתאימה. יכול להיות שהחלון יקבל הודעות דאזאק ו פנימיות כתוצאה מהקריאה לפונקציה. הבטה עם הדגל דאזהק התמדא /וסא. במקרה כזה, ייתכן שלחלון אין אזור עדכון. היישוס צריך לקרוא לפונקציה 661006316996 כדי להחליט אס יש לחלו. אזור עדכון. אס 660020308866 מחזירה אפס, היישוס אינו צריך לקרוא לפונקציות. לחומ ו-וחו3קמהם. אכ היישוס אינר קורא לפונקציה 0309860ק6600, אזור העדכון לא יעודכן כראוי, או שלא יעודכן כלל.היישום חייב לחפש במבנה הנתונים. הפנימיים שלו כל הודעה דוזק זאו כדי לבדוק אם יש צורך בצביעה פנימית כלשהי עליו לעשות ואת משתי סיבות: ייתכן שאזור העדכון שאינו 1א, או קריאה לפונקציה. 8600160 עס הדגל דאזהקהאהסדח1 שופ היא שגרמה להודעה דוק ואר פוסחוו שולחת הודעה דאזאק 0% פנימית רק פעם אחת. אחרי ש-009059806. מחזירה הודעת דאזגק זא פנימית, או לאחר ש-4ו00חו0319%ק/ שולחת 6001055306 לחלון, 0000265 אינה משגרת הודעות דאזאק נוספות. היא ממשיכה לשלוח הודעות רק לאחר שהתוכנית מודיעה שהחלון לא תקף (אוסנחוו סחד 565וח1), אר עד שהתוכנית קוראת פעם נוספת ל-או00חו//ו3ז60ה עם הדגל דאזהק הסדא אוה בחלק מהפקדים המשותפים, עיבוד הודעת ברירת המחדל זאזאק וו כולל את בדיקת. הפרמטר וחמפזהקאו. אם חומזגלאו אינו -011א, הפקדים מניחים שהערך הוא ידית של הקשר התקן והם ישתמשו בהקשר ההתקן הזה לצביעה. כדי להבין טוב יותר את הטיפול של התוכנית בהודעה 107 א/ו, התבונן בתוכנית %ו04:060. 567011 שהוצגה. בסעיף 9.11. 3 שינוי מצב פסי הגלילה פעיל ולא-פעיל התוכניות יכולות לנהל בקרה ושליטה מוחלטת על פסי הגלילה. אחת הפעילויות. הנפוצות המבוצעות על ידי התוכניות בעבודה עס פסי גלילה היא להביאם למצב פעיל. (סופַח5) או למצב לא-פעיל (6ו580ום). כפי שראית בסעיף 9.11, לדוגמה, התוכנית. יכולה להפוך את פס הגלילה ליילא-פעיליי, ולמעשה לבטל אותו, כאשר המשתמש' משנה את גודל החלון עד שהוא יכול להציג את כל מה שמוכל בו. כדי להביא את פסיי הגלילה למצב פעיל ולמצב לא-פעיל, משתמשים בפונקציה ז6560/83ו8ח5. הפונקציה. ז0(!83ז801650ח5 גורמת לחץ אחד או יותר, של פס הגלילה, להיות במצב פעיל או במצב. לא-פעיל. משתמשים בפונקציה ז0/!83ז80801656 בתוכניות כמו שרואים בהגדרה. הבאה. פרק 9: הקדמה לפסי גלילה = 233 ) 8562011985 1טאתם 008 פ8ט 509011 צם 918606 0 16ממת // וו סא סט פס 809011 // צאט 8 אספפם פמ 509011 // סגא צאט ו כפי שאפשר לראות, הפונקציה ז6500//83ו63 מקבלת שלושה פרמטרים. הפרמטר שוח מאה חלון או פקד פס גלילה, על פי ערך הפרמטר 80505פאו. הפרמטר 580905 מגדיר את סוג פס הגלילה. הערכים של פרמטר זה יכולים להיות אחד מאלה שמוצגים. בטבלה 9.10 טבלה 9.10: הערכים האפשריים של הפרמטר 58/1895 ערך פירוש ודסט 58 | מאפשר הפעלה ואי-הפעלה (הבאה למצב פעיל או למצב לא-פעיל) של. החיצים שבפסי הגלילה האופקייס והאנכיים שמוגדרים בחלון מסוים. הפרמטר שח/ז חייב להיות ידית החלון. ד 58 | מוהה את פס הגלילה כפקד פס גלילה. הפרמטר 80/06 חייב להיות. חידית של פקד פס הגלילה. 7 58 | מאפשר הפעלה ואי-הפעלה של החיצים בפס הגלילה האופקי שבחלון. הפרמטר שחש חלוב להיות ידית החלו. דהפ 58 | מאפשר הפעלה ואי-הפעלה של החיצים בפס הגלילה האנכי שבחלון. הפרמטר ₪6 חייב להיות ידית החלון. לבסוף, הפרמטר פווסזואווו מגדיר אם חיצי פס הגלילה הם במצב פעיל או במצב לא-פעול, ומצייץ איזה חיצים צריכה הפונקציה זגפוו0ז956ח₪ להעביר למצב פעול אד למצב לא-פעיל. הפרמטר פווסזזאוי יכול לקבל את אחד הערכים שמפורטים בטבלה 1. שים לב שכל הפרמטרים מתייחסים לביטול הפעלה של אחד החיצים, או שניהם. טבלה 9.11: הערכים האפשריים של הפרמטר זזה /. עוך פירוש אד80 158815 ₪85 | מבטל הפעלת שני החיצים של פס הגלילה. אצוסס 01585 585 | מבטל הפעלת הח התחתון בפס גלילח אנכי. ד 015815 .85 | מבטל הפעלת הח השמאלי בפס גלילה אופקי. קטד 15815 885 | מבטל הפעלת הח השמאלי בפס גלילה אופקי, או מבטל הפעלת החץ העליון בפס גלילה אנכי. דוו6נפ. 0158815 .585 | מבטל הפעלת החץ הימני בפס גלילה אופקי. 4 3271חווו ומבוא ל-ספו ערך פירוש. אסזה 015815 ₪85 | מבטל הפעלת החץ הימני בפס גלילה אופקי, או מבטל. הפעלת החץ התחתון בפס גלילה אנכ קט 0158815 ₪85 | מבטל הפעלת החץ העליון בפס גלילה אנכי. 80 150815 ₪85 | מבטל הפעלת שני החיצים בפס גלילה. אם הפונקציה מצליחה להביא את החיצים שמוגדרים על ידי הפרמטר פאסזהו למצב. פעיל או למצב לא-פעיל, הערך המוחזר ממנה אינו אפס. אם החיצים נמצאים כבר במצבם כנדרש, או שארעה שגיאה, הערך המוחזר הוא אפס. בתקליטור שמצורף לספר וה תמצא את התוכנית 0188016 80/6חש, שגורמת לפס. הגלילה האנכי שיהיה במצב פעיל או במצב לא-פעיל כתלות בגודל החלון ותכולתו. שים לב כיצד התוכנית בודקת בעורת הפונקציה 67106ח/ את גודל החלון ותוכנו בכל. פעם שהחלון מקבל את הפקודה 5175 א/+. תוכל לראות שפסי הגלילה עוברים למצב פעיל או למצב לא-פעיל, בהתאמה, לאחר שהחלון מקבל את ההודעה 5125 ואו והתוכנית מטפלת בפקודה זור %. הערה: התוכנית לא מגיבה על לחיצות העכבר על החיצים. 4 הפונקציה 50101!6 בסעיפים הקודמים למדת על מספר פונקציות של פסי הגלילה ועל ההודעות שהן יוצרות. בשלב זה חשוב להבין איך יכולות התוכניות לגלול חלונות שמציגים גרפיקה או פריטים שאינם שורות טקסט. ככלל, כאשר מציירים בחלון פריטים שאינם טקסט,, משתמשים בהקשר התקן כדי לעשות זאת. אפשר גם להשתמש בהקשר התקן כאשר מציירים טקסט בחלון, למרות שמשתמשים בדרך כלל בגישה בלתי ישירה אל התוכן. כאשר גוללים הקשר התקן בחלון, משתמשים בדרך שונה לגלילת הקשר ההתקן או חלק מהקשר ההתקן. הפונקציה 560/06 גוללת מלבן של סיביות בהקשר ההתקן בכיוון אופקי ואנכי. את הפונקציה 560/06 כותבים בתוכניות כמו בדוגמה שלהלן 00 אפס 400166 05 מנבממת // ,ספ ספ מ 509011 81ץת120צסת // 46 מ 50:011 1081פצסט // ה 0₪ף בעממסטע:ם 05 248588 //‏ ,562011שע1* צסמת דצמו 001 // עס1 שעטססטםם 05 8882088 // 5608816 6ת1מס013 // 299108 הַה0111ע50 05 מ1תמת // הת את שס1 שענטסטפםם 08 8444688 // 1 6 0 שפ1* עסמה צפו / פרק 9: הקדמה לפסי גלילה = 235 הפרמטריס שמקבלת הפונקציה 5601106 מפורטים בטבלה 9.12 טבלה 9.12: הפרמטרים שמקבלת הפונקציה 5610/0. פרמטר ספת 9 1 ב זפ 8 8 תיאור מציין את הקשר ההתקן שמכיל את הסיביות שהפונקציה 6פו5001 צריכה לגלול. מגדיר את הגודל, ביחידות התקן, של גלילה אופקית. פרמטר זה. חייב להיות ערך שלילי כדי לגלול שמאלה. מגדיר את הגודל, ביחידות התקן, של גלילה אנכית. פרמטר זה חייב. להיות ערך שלילי כדי לגלול כלפי מעלה. מצביע למבנה מסוג ₪86 שמכיל את הקואורדינטות של המלבן הנגלל 86013 הַווו5010). מצביע למבנה מסוג ד850 שמכיל את הקואורדינטות של מלבן הגזירה (9/9ח86613 הַוּווס). הפונקציה 560/06 משפועה על חלקי ההתקן שמוגדרים במלבן הגזירה. פאוס6חו צובעת חלקים. שהפונקציה גוללת מחוץץ למלבן ופנימה; 6006חו אינה צובעת. חלקים שהפונקציה גוללת מפנים המלבן והחוצה. מציין את האזור שאינו מכוסה על ידי תהליך הגלילה. 5001190 מגדירה את האזור הזה, והוא אינו בהכרח מלבני. מצביע למבנה מסוג 8561 שמקבל את הקואורדינטות של המלבן שתוחס (₪601500/6 הַחוחט80) את אזור העדכון (חסו86 006318 הנגלל. זהו השטח המלבני הגדול ביותר שיש צורך בצביעתו. כאשר הפונקציה חוזרת, הערכים שבמבנה נמצאים בקואורדינטות לוגיות, ללא תלות במצב המיפוי של הקשר ההתקן שמוגדר. הדבר מאפשר ליישומים להשתמש באזור העדכון בעת קריאה לפונקציה הסה וח1, אפ יש צורך בכך. אס הפרמטר 0306ק6זק! הוא -011, פאוסחו/ אינה מחשבת את מלבן העדכון. אס שנר הפרמטרים 618קטחפָזח ו-6318קסזקו שודים ל-8011, פאוסחו/ אינה מחשבת את אזור. העדכון. אס הפרמטר טוג6פטחפזח אינו 04, וסחוי ממשיכה כאילו יש לה ידיתת תקפה לאזור שתהליך הגלילה (שהוגדר על ידי 06ו/500) אינו מכסה. כדי להבין טוב יותר את הטיפול שמבצעת הפונקציה 06ו/560, התבונן בתוכנית 20 561010 שנמצאת. בתקליטור המצורף לספר וה. התוכנית מציירת סדרת קווים בחלון; ואז, כאשר מנסים לגלול את החלון עם פס הגלילה, התוכנית גוללת רק חלק מהחלון. למרות שיכול להיות שקוד התוכנית 86 56101 אינו ברור כל כך, הפונקציה מבצעת פעולה פשוטה למדי: גלילת חלק מהחלון. התוכנית 6 !56100 יוצרת הקשר התקן ואחר כך קובעת שהאזור ש-06וו560 מעבירה יהיה קטן ב-20 יחידות משטח הלקוח. של החלון. אחר כך התוכנית קוראת לפונקציה 560/15 כדי לגלול את המלבן ימינה. 6 3271חו/ו ומבוא ל-ספו פיק 10 הטיפול בטקסט בפרק וה נעסוק בשטח הלקוח סז זח6וס) של החלון, ונבדוק היבטים שונים של ניהול טקסט במסגרת חלונות א9. גם נפתח כמה טכניקות חשובות המפשטות את הצביעה מחדש של חלון לאחר ששוכתב. לסיום, נדון בפרק זה כיצד להשתמש ביישום. בגופני טקסט נוספים. כמו ברוב ההיבטים האחרים של סביבת חלונות 9%, נתונה בידי המתכנת שליטה כמעט. בלתי מוגבלת על הדרך שבה יוצג הטקסט וינוהל במסגרת שטח הלקוח של כל חלו נתון. לפיכך, אין באפשרותנו לעסוק בפרק זה בכל ההיבטים של הטיפול בטקסט באמצעות תוכנת חלונות. עם זאת, תוכל בקלות להמשיך ולחקור היבטים נוספים של הטיפול בטקסט לאחר שתבין את היסודות שנציג בפרק זה. נפתח את הפרק בדיון במערכת הקואורדינטות של החלון, וכיצד הטקסט ממופה עליה. לאחר מכן נעסוק בפונקציות 1 לטקסט ולמסך. פונקציות אלו יסיועו לך בבקרה ובניהול של פלט הטקסט אל שטח הלקוח של החלונות. 1 הקואורדינטות של חלון הפונקציה ()וסואטד היא הפונקציה החלונאית לפלט בצורת טקסט. היא מציגה מחרוות בקואורדינטות שהוגדרו עבורה, שתמיד מתייחסות לחלון עצמו. לכן, מיקום. החלון על המסך אינו משפיע כלל על הקואורדינטות המועברות לפונקציה ()100אפד. לפו ברירת המחדל, הפינה השמאלית-העליונה של שטח הלקוח בחלון נמצאת בנקודה. 0, 0. הערך א גדל ככל שנעים ימינה, והערך + גדל כל שנעים כלפי מטה. עד כה השתמשת בקואורדינטות החלונות עבור הפונקציה ()0א9ד וכדי למקם מרכיבים שונים בתוך תיבות דו-שיח, מבלי להזכיר באופן מיוחד למה מתייחסות הקואורדיאטות האלו. בנקודה וו רצוי להבהיר כמה פרטים. ראשית, הקואורדינטות. המוגדרות עבור ()0:אטד הן קואורדינטות לוגיות (03005ו00016 00831 כלומר, היחידות המשמשות את הפונקציה (ופונקציות נוספות לתצוגה בחלון, לרבות הפונקציות הגרפיות בהן נדון בפרק הבא) הן יחידות לוגיות (וח 6וָ10). חלונות. ממפה את היחידות הלוגיות והופכת אותן לפיקסלים בעת התצוגה בפועל של הפלט. פרק 10: הטיפול בטקסט ‏ 237 עד כה לא היה צורך לעסוק בהבדל הזה כלל, מכיון שלפי ברירת המחדל יחידות לוגיות. והות לפיקסלים. ובכל ואת, חשוב להבין שניתן לבחור במצבי מיפוי שונים שבהס ברירת המחדל הזו, הנוחה בדרך כלל, לא תתאים. 2 הגדרת צבע הטקסט והרקע לפי ברירת המחדל, פלט טקסט לחלון באמצעות הפונקציה ()0א9ד יופיע בשחור על גבי הצבע הנוכחי של הרקע. אך תוכל לקבוע את צבע הטקסט ואת צבע הרקע באמצעות הפונקציות ()ז0ו56016100 ו-()01ו5618600, שהגדרותיהן מובאות להלן 0105 0 0010995 ,00 80| ע10ססאם86 עעהתס10ס0ם 0 סנס 0105 הפונקציה ()56/160000 קובעת את צבע הטקסט הנוכחי בהתקן הקשור עם 66 לפ הערך שמכיל הפרמטר 600 (או צבע קרוב לערך וה, שההתקן מסוגל להציג. הפונקציה ()ז56186000 קובעת את צבע הרקע לטקסט, לפי הערך השמור בפרמטר זס וס (או גוון קרוב לו). עבור שתי הפונקציות, מוחזר הערך של הצבע הקודס. במקרה. של שגיאה, מוחור הערך זא הס. הצבע מוגדר כערך מהסוג +0010888, שהוא מספר שלם בן 32 סיביות. חלונותת מאפשרת להגדיר צבעים בשלוש דרכים. הראשונה, והנפוצה ביותר, לפי ערכי 868 (אדוס, ירוק כחול). בשיטה זו, נעשה שילוב בין העוצמות היחסיות של שלושת הצבעים, והצירוף הוא שמחולל את הצבע הרצוי. שיטה שנייה, להגדיר צבע כערך אינדקס בטבלת צבעים לוגית. שיטה שלישית, ערך 868 המתייחס לטבלת צבעים. בפרק זה, תעסוק בשיטה הראשונה בלבד. אל הפונקציה ()560164/0001 או הפונקציה ()56980001 מועבר מספר שלם ארוך, המכיל צבע 868 בית (9ץ8) הצבע בית 0 (בית מסדר-נמוך) אדוס בית 1 ירוק בית 2 כחול. בית 3 (בית מסדר-גבוה) חייבת להכול 0. כל צבע בערך ₪68 מצוי בטווח שבין 0 ל-255, כאשר 0 מייצג את העוצמה הנמוכה ביותר, ו-255 מייצג את העוצמה הגבוהה ביותר. לדוגמה, המספר השלס הארוך שלפניך מפיק צבע מגנטה בוהק. 5 00 55 00 אף שמותר לך בהחלט לעצב ידנית ערך =6010886, חלונות מגדירה את המאקרו (₪680 המבצע עבורך את העבודה. להלן מתכונתו הכללית. (סטנ2 186 ,מססעם שה ,260 מה1)ממה עעתתס01ש 8 3271חו/ו ומבוא ל-0פו בדוגמה זו, 66, חפסו ו-פטופ חייבים להכיל ערכים בטווח שבון 0 ל-255. לכן, כדר ליצור צבע מגנטה בוהק, השתמש ב-(255 ,0 ,868)255 וכדי ליצור לבן, השתמש ב-(255 ,255 ,868)255. כדי ליצור שחור, השתמש ב- (0 ,0 ,868)0. ליצירת צבעים: אחרים, נסה צירופים שונים של שלושת צבעי היסוד בעוצמות משתנות. לדוגמה, המאקרו (100 ,100 ,868)0 יוצר צבע טורקיו בחיר. תוכל לערוך ניסיונות כדי לקבוע צבעים המתאימים ליישום שלך. 3 כיצד לקבוע את צבע הרקע לתצוגה באמצעות הפונקציה ()56:86/006 באפשרותך לשלוט בהשפעה שתהיה לטקסטט שבמסך על צבע הרקע. לפניך הגדרתה הבללית. ו 15 ,00 00 6090006 46 הפונקציה קובעת מה יקרה לצבע הרקע הנוכחי כאשר טקסט (וסוגים אחרים של פלט). יוצג על המסך. הפרמטר 66 מכיל את הידית להָקָשר ההֶתקן המושפע. הפרמטר 1065 מכיל את הערך הקובע את מצב הרקע, וערך זה חייב להיות אחד משתי פקודות המאקרו: 09005 או דואפהאק5\חד. במקרה של שגיאה, הפונקציה מחזירה את ההגדרה הקודמת, או ערך 0. אס הערך ב-₪009 הוא שַסָאלס, אזי בכל מקרה של פלט טקסט, הרקע ישתנה לצבע הרקע הנוכחי. אם הפרמטר ₪006 מכיל את הערך דאפההק5אףד, אצי צבע הרקע לא ישתנה. במקרה זה, אין שום השפעה לפונקציה ()0₪ו00א5618. לפי ברירת המחדל, מצב. הרקע הוא פְטא0. 4 כיצד לקבל את נתוני הטקסט לתווים אין גודל אחיד. כלומר, בחלונות רוב גופני הטקסט הס יחסיים. לפיכך התו אינו תופס אותו שטח כמו התו /א. כמו כן, גובהם של תווים ואורכם של הקווים היורדים (החלקים הייתלויים" באותיות כמו פ ו-) אינו והה בכל הגופנים. נוסף לכך, ניתן לשנות את גודל המרווח בין הקוויס האופקיים בכל תו. העובדה שמאפיינים אלה (ונוספים) ניתנים לשינוי אינה חשובה במיוחד, אלא שחלונות דורשת ממך, כמתכנת, לנהל ידנית כמעט את כל הפלט שמוצג כטקסט. חלונות מספקת רק תמיכה מוערית לפלט טקסט אל שטח הלקוח בחלון. פונקצייתת הפלט העיקרית היא ()0טד. הפונקציה מסוגלת להציג רק מחרוות טקסט שתחילתה בנקודה מוגדרת. אין היא מסוגלת לפרמט פלט, או לבצע באופן אוטומטי פעולה כמו החזרת שורה או מעבר שורה. ניהול הפלט המיועד לשטח הלקוח של כלי חלון נתון לחלוטין בידך פרק 10: הטיפול בטקסט ‏ 239 לאור העובדה שלכל גופן גודל משלו (והגופנים עשוייים להשתנות תוך כדי ההרצה של התוכנית), חייבת להיות דרך לקבוע את גודל הגופן הנוכחי ומספר תכונות נוספות. שלו. לדוגמה, מהעובדה שאפשר לכתוב טקסט בשורות עוקבות משתמע, שיש דרך לברר את גובה הגופן ואת מספר הפיקטלים המפרידים בין שורה לשורה. פונקציית. זא המשיגה את המידע על הגופן הנוכחי נקראת ()661790160165, הגדרתה היא (פ1ע6ףהפק1 סצתצמווד אמ 1 ,₪6 40| 0001 מססם במקרה וה, הפרמטר 66 היא ידית להתקן הפלט, והערך שהוא מכיל מושג בדרך כלל. באמצעות הפונקציה ()66106, או הפונקציה ()חז3קחו869. מוואדק! הוא מצביע אלל מבנה מסוג 6זאדטוודאפד, שיכיל עם חורתו את נתוני מידות הגופן הנוכחי. לפניך הגדרת מבנה 16ד6ואדאפד. 68 ו /* 5086 68 6מ49שת 60681 */ ;6מ8610מם סא10 /* 1186 שפפם שסמ4 שמ */ ;6ה06פהה: סא10 /* 4680688658 08 גַמַ=8ה10 */ /680686ממ: סא10 /* 8580%6:8מ0 שע0ם4 5866 */ ;8ה:811686ה:6:תדה: אס /* 508 הטפ 40806 */ ;8ה8116841ה:6אשה: סא10 /+ 01862 806686 */ ;מ146א82ת60טתאם סא10 /* 01862 תטמ1אפה */ ;מ828166ה0א8ום סא10 /* 61806 */ 0610062 0ב /* פומס: 9060181 60 88668 מ0186 שמאס */ נהַההתצםטסא: סא10 /* 490666 201568681 */ ;6064ק5ה10101264םה: סא10 /* 490666 1081מטסט */ ;צ600ק5ה10101264מהו1 /* 8086 ה1 ש6םסםטגתם 11586 */ קפממ860ענעה: מצצם /* 086] ה1 8:00565(ם 1886 */ קע8מ60,מח) מצצמ /* 088580666 4658016 */ /85מ6588160מה: מצצם /* פמשס0 א84שצם 50 64פט ע00858056 */ קפממ0א4עמה: מצצם /* 168116 18 6+0-מסה */ /4116נחו מצצם /* 0846811868 11 26+0-מסת */ /11866אשבהטה: מצצם /* שטסאסטפ6ם 11 56%0-מסה */ קמט0אסטםופה: מצצם /+ 1086 0% ץ8011: תה מש6צם */ /* 1460014166 866 8580%6%מ0 */ ק8286%מסה) מצצם ן רוב הערכים שהפונקציה משיגה לא ישמשו אותך בפרק זה, אך שניים מהם חשובים. מאוד, מכיון שהם משמשים לחישוב המרווח האנכי בין שורות הטקסט. ערך זה הכרחי אם אתה מתכוון להוציא פלט בן יותר משורה אחת לחלון. יישומים המבוססים על עמדות דמויות מכונת כתיבה (00050/95), מאפשרים רק גופן אחד בעלל גודל קבוע, לעומת ואת, כאן ייתכנו מספר סוגי גופנים, שונים זה מזה במידותיהם. ובצורתם. וצ 0 321חווו ומבוא ל-ספו כל גופן מגדיר את גובה התווים שלו ואת המרווח הנדרש בין שורות טקסט. כלומר, אי אפשר לדעת מראש את ערך הקואורדינטה האנכית (%) של שורת הטקסט הבאה. על מנת לקבוע היכן היא תתחיל, עליך להפעיל את הפונקציה ()660761/6065, כדר להשיג שני ערכים: גובה התווים והמרווח בין שורות טקסט. ערכים אלה שמורים. בשדות חס ו-6ח/636!החזפואסותז, בהתאמה. חיבור שני הערכים נותן לך את מספר היחידות האנכיות בין שורה לשורה. + העדה: וכור: הערך שמכיל השדה חַח31)9300חזפזאשחחז, הוא למעשה, מספר היחידות האנכיות שיש להשאירן ריקות בין שורת טקסט אחת לבאה אחריה. ערך זה אינו והה לגובה הגופן. אם כך, דרושים לך שני הערכיס כדי שתוכל לחשב היכן תתחיל שורת הטקסט הבאה. להלן תראה יישום של עקרון זה קיימת גירסה משופרת של 816דפויודאפד, ששמה 6זהדטודאפדו!. הגירסה החדשה. וה לישנה, פרט לכך שנוספו לה ארבעה שדות חדשים בסופה. השדות האלה מספקים. תמיכה לגופנים מסוג 6ְץדפטזד (להם תכונות משופרות לשינוי קנה המידה). לפניך השדות החדשים שנוספו ל-10הדפואדאס דווטא /* 0+ 01 שמע: 0102:68ה1 */ ;5מַבנעתפת סתסאם /* םס תב 05 5128 */ ;8ם20!פמפה פאצט /* 361086 5מ0+ */ ;6מ10ש ו /* ַ106א עשפסמצגתם ַבעסטב */ ;מ018%שטתמפה למטרות פרק זה, אין צורך בשדות אלה, אך הם עשויים להביא לך תועלת ביישומים. שתכתוב. רצוי לעיין במדריכי 1 כדי לקבל מידע נוסף. 5 חישוב אורך המחרוזת התווים בגופן הנוכחי אינם בגודל זהה, ולכן אין אפשרות לדעת מהו אורך המחרוזת. ביחידות לוגיות, לפי מספר התווים שבמחרוות. כלומר, התוצאה המוחזרת על ודי הפונקציה ()ח%0/9 חסרת משמעות לניהול הפלט אל חלון, מכיון שהתווים הס ברוחב. משתנה. חלונות 9% מכילה את הפונקציה ()00010032ח660160154:0 שפותרת בעיה זור הגדרתה היא 00ת1ע5256ק1 ת19089 ,06 ססג) 6901832 אם0 0076 מססם (ס2נפמ1 15128 ,188 שתג פרק 10: הטיפול בטקסט ‏ 241 במקרה זה ₪66 היא הידית של התקן הפלט. הַחוטפנפּקו מצביע אל המחרוות שאת. אורכה ברצונך לדעת, והשדה ח6! מכיל את מספר התווים שמהם מורכבת המחרוות. רוחבה וגובהה של המחרוות מוחזרים, ביחידות לוגיות, במבנה 5176, שהמצביע 6ק5פו פונה אליו. מבנה 5126 מוגדר כך 5 1 /* 6תשגסת */ לאחר הפעלת הפונקציה ()0032ו170ח0א667615, יכיל השדה 6% את אורך המחרוזת. מסיבה ואת ניתן להשתמש בערך שמכיל שדה זה לקביעת נקודת ההתחלה של המחרוזת הבאה המיועדת להצגה, אם ברצונך להציג אותה בהמשך לפלט הקודם. 6 כיצד להשיג את נתוני מידות המערכת חלונות מנהלת ומתרגמת באופן אוטומטי קואורדינטות לוגיות לפיקסלים, אך לעיתים. תרצה לדעת מהו גודל התצוגה בפועל, במחשב שבו אתה מריץ את חיישום שלך. כדי להשיג נתונים אלה ומידע נוסף, השתמש בפונקציה ()6615/519₪/6065, שהגדרתה. היא 00558 פתג בהגדרה וו עליך לציין בשדה )גחו איזה ערך ברצונך להשיג. הפונקציה (6015/518₪060650 מסוגלת להשיג עבורך 39 ערכים שונים. הערכים לקואורדינטות. של המסך מוחורים בפיקסלים. בטבלה 10.3 מוצגות פקודות מאקרו עבור כמה מן הערכים הנפוצים ביותר טבלה 19.3: הצגת פקודות מאקרו עבור כמה מן הערכים הנפוצים ביותר. הערך המידה שהוא מחזיר 50% ואס 5% | רוחב שטח הלקוח כשהוא מוגדל. 90150856 5 | גובה שטח הלקוח כשהוא מוגדל. 0160 .5% | רוחב סמל גדול. 160 5% | גובה סמל גדול. 51008 5% | רוחב סמל קטן. 5160 5% | גובה סמל קטן 0050888 5 | רוחב המסך בכללותו 0/5088 59% | גובה המסך בכללותו 2 הכהו ומבוא ל-ספו 7 הדגמה קצרה של פלט טקסט לאחר שלמדת על חלק מפונקציות הטקסט של חלונות א9, בוודאי תמצא תועלת. בהדגמה קצרה של המאפיינים אלה. הקוד השלס של התוכנית 1600 נמצא בתיקיה 006%ד10ֶח6. כל פעם שתבחר את האפשרות פד מהתפריט הראשי, תגרום להצגת מספר שורות טקסט. הטקסט יופוע בשחור על רקע טורקיו. הפלט לדוגמה מופוע בתרשים 10.1 הצגנו פה רק את קטע התוכנית של פונקצית ההודעות. המצבפאי מתתתקוו הפו צהנט ,בהאו כו ) 6םצש8חאו אסאמממתס המטפמת1 ( מגעמק1 מתהתק1 ספמ ספת 0 128 ( פַפ )1 תפ 0 456 /* 8588מ000261 ה66ע0ם 6 */ תסו )15 םה500ע0005 = האגה ; 0/5088 מפ) 2165 66/ה500ע05 0 = צאגה (שפט + סט 0 86 ( ב 100 )0156 [ מל 108 856 /* :אפטמסס 450168 668 */ ;(ממאמ)86:20 = ספת /* 190%מ 00 010% מאשם 866 */ ((0 ,0 ,86500 ,)00500108 /* 186סגףעטם 50 ע010ם בממסעטאסגם 566 */ ;((25 ,135 ,45)פסת ,ססת) 06000105 /* 8ש1עסמה :504 60% */ (6 0 או 814 18 פתס: שמ" ,ע61)86הבצק 8658 חס ".98 פרק 10: הטיפול בטקסט | 243 4 הלבחו ומבוא ל-ספו + צסמצפפם 006 שפמם 0 0550 וצ ה ;( ( הגעגק1 ,מבצבתא ,העט ,תאמ )ס0צפאסבה01פשם )תעטםם, 0 פרק 107 זו פד 6 כאשר נוצר החלון לראשונה, מתקבלת הודעת 685415 ו והמספרים השלמים הגלובליים 80% ו-צאפוז מאותחלים לפי הקואורדינטות של המסך, באמצעות הפונקציה 665/50060/650. ערכים אלה אינס משרתים כל מטרה בתוכנית זו, אך הם ישמשו אותנו בדוגמאות שבהמשך. שים לב שהתוכנית מכריזה על שני משתנים גלובליים, א ו-+, ומאתחלת את שניהם. בערך 0. משתנים אלה יכילו את המיקום הנוכחי שבו יוצג הטקסט בחלון. התוכנית. תעדכן את הערכים השמורים בהם באופן שוטף לאחר כל פעולת פלט. החלק המעניין בתוכנית נמצא ברובו בהודעת סאאאווס6 שו נבחן את ההודעה בפירוט, נתחיל עם משפט דפפד 10% 6356. כל פעם שמתקבלת הודעת דפטד וז1, מושג הָקָשר של התקן. לאחר מכן נקבע צבע הטקסט לשחור, וצבע הרקע נקבע לטורקיו הקשר ההתקן מושג כל פעם שמתקבלת הודעת 1651 %ם1, ולכן יש להנדיר את הצבעים. כל פעם מחדש. כלומר, לא ניתן להגדירם פעם אחת בלבד (למשל, בתחילת התוכנית). לאחר שנקבעו הצבעים, מושגים נתוני המידות של הטקסט. עתה, מתבצע פלט של השורה הראשונה. שים לב שהיא נבנית בעורת הפונקציה ()חוז50, ולאחר מכן נשלחת. בפלט באמצעות הפונקציה ()6006ד. פונקציית 1, ופונקציית ()טסואפד, לא עורכות טקסט. עיצוב הפלט נתון בידיך, כמתכנת, ועליך לבנותו, ולאחר מכן להציגו באמצעות ()90%ד. לאחר שהמחרוות הוצגה, מקודמת קואורדינטת ץ לשורה הבאה על ידי החלת הנוסחה שפיתחת קודם. פרק 10: הטיפול בטקסט ‏ 245 התוכנית ממשיכה ומוציאה כפלט את השורה: "הו זאשח סז חס | פוחדי.. לפנר שתימחק השורה כתוצאה מהקריאה הבאה לפונקציה ()שחוזק5, מחושב אורך המחרוזת באמצעות קריאה לפונקציה ()070/0832ח66/191019. הערך המתקבל משמש. לקידום קואורדינטת א לסוף השורה הקודמת, לפני הדפסת השורה הבאה. שים לב שכאן, קואורדינטת + אינה משתנה. דבר זה גורם להצגת המחרוזת הבאה מייד לאחר המחרוות הקודמת. לפני שהיא ממשיכה, מקדמת התוכנית את + לשורה הבאה, ומאפסת את א, כלומר, ממקמת אותו בקואורדינטה השמאלית הקיצונית. דבר זה גורס להצגת קטע הפלט הבא בתחילת השורה הבאה. לבסוף, מוצגים מימדי המסך כולו וקואורדינטת + מקודמת לשורה הבאה. כל פעם: שאתה בוחר באפשרות 185, מוצג הטקסט במיקום נמוך יותר בחלון, וכך לא נמחק. הטקסט הקודס. כתוצאה מכך, מוצגת כל קבוצת שורות מתחת לקבוצה קודמת. 8 פתרון בעיית הצביעה מחדש (9חו623א) בעורת התוכנית הקודמת הדגמנו כמה מפונקציות הטקסט והמערכת, אך גם נתקלנר שוב בבעיה בסיסית, שנדונה לראשונה בפרק 3. הבעיה היא, שהטקסט הולך לאיבודד כאשר אתה מריץ את התוכנית, מציג טקסט ולאחר מכן מפעיל חלון אחר המסתיר את. החלון הנוכחי. כשתשוב ותחשוף את החלון, תגלה שחלק הטקסט שהוסתר על ודי החלון נעלם. הסייבה לכך היא שכל תוכנית צריכה לצבוע מחדש את החלון שלה כשהיא: מקבלת הודעת דא1 א/, אך התוכנית הקודמת לא עושה זאת. דבר וה מעלה את השאלה הגדולה: באיזה מנגנון יש להשתמש כדי לשחזר תוכן של חלון שהוסתרז כפיי שהוכרנו קודם, קיימות שלוש שיטות בסיסיות: אפשר להפיק מחדש את הפלט אם. הוא מתהווה באמצעות שיטות חישוב כלשהי. שנית, אפשר לשמור עותק מכל אירוע תצוגה, ולהציג לאחר מכן ייהקלטה" שלו. שלישית, תוכל לנחל חלון וירטואלי ולהעתיק את תוכנו אל החלון הממשי כל פעם שתתקבל הודעת 085476 א/ו. השיטה. הרווחת ביותר היא כמובן השלישית, ובה נעסוק בפרק זה. כפי שיתברר לך, חלונותת מספקת תמיכה ניכרת לשיטה זו 9 רעיון החלון הווירטואלי תיאור באופן כללי, כיצד יתבצע פלט באמצעות חלון וירטואלי (שוסטחואו ומנמזועו. תחילה, יווצר הקשר וירטואלי של התקן, אשר יהיה תואם להֶקשר ההֶתקן הממשי לאחר מכן, ייכתב כל הפלט אל הקשר ההתקן הווירטואלי. כל פעס שתתקבל הודעת. דאזאק %, תוכן הקשר ההתקן הווירטואלי (החלון הווירטואלי) יועתק אל הקשר ההתקן הממשי, ויגרום להצגת הפלט בחלון שעל המסך. כך תמיד ישמר רישום של התכולה הנוכחית של החלון. אם אותו חלון יוסתר, ולאחר מכן ישוב וייחשף, תתקבל הודעת דאזק זו ותוכן החלון ישוחזר באופן אוטומטי. 6 321חווו ומבוא ל-ספו 0 פונקציות 1 נוספות כדי ליצור חלון וירטואלי ולהשתמש בו, עליך להשתמש בכמה פונקציות קא. בארבע מהן | כבר עסקנו: (0631900000300/6000, = (5016000060, = ( 0100 וב-()8/8/6. בנוסף, נשתמש בפונקציות ()80ש/800/98ק616306000 ו-()88ק, שיתוארר שוב בקצרה, לרענון. הפונקציה ()ק5ו/68וט30קוח163900) יוצרת מפת-סיביות שתואמת את הקשר ההתקן. שצוין. מפה זו יכולה לשמש כל הקשר התקן השמור בזיכרון (שנוצר באמצעות הפונקציה ()0163090000800606), בתנאי שהוא תואס את הקשר ההתקן שצוין לפניך הגדרתה הכללית. ;ונשת 6מ1 ,1060 פמ1 ,06ת ססמ) קגת1621מ861קמ6000ב6ם פתמפנמ בדוגמה, 6 היא הידית להקשר ההתקן שמפת-הסיביות תתאים לו. מימדי המפה מוגדרים על ידי הערכים בפרמטרים חו0אאו ו-זחפופה. ערכים: אלה נתונים בפיקסלים. הפונקציה מחזירה ידית למפת-הסיביות התואמת, או ערך )0 במקרה של כשל. הפונקציה ()ו? ממלאת שטח מלבני בצבע ובדוגמה של המברשת (050ז8) הנוכחית. מברשת היא עצם המגדיר כיצד ימולא חלון (או אזור כלשהו). מילוי של שטח בעורת. מברשת הוא פעולה המכונה בדרך כלל צביעה (פָוחוק). לפניך הגדרתה הכללית של הפונקציה )פומ 10 18 ,צ שה1 ,3 שת3 ,סאמ ססא)1פ:גע מססם 1 (5585אאם סהסום ,6ת במקרה וה, 66 היא הידית של ההתקן שיש למלא. הקואורדינטות א ו-ץ מגדירות את. הפינה השמאלית-העליונה של השטח שיש למלא. רוחבו וגובהו של השטח מוגדרים. לפי הערכים שמכילים הפרמטרים האשואו ו-ח60ה. הערך המועבר בשדה 0083506 קובע איזה שימוש ייעשה במברשת. הוא חייב להכיל, כערך, אחת מפקודות המאקרו שלהלן 8516 | משמעות 8.0655 | האזור מופיע בשחור (התוכנית מתעלמת מהמברשת) 5פאפדזווו | האזור מופיע בלבן (התוכנית מתעלמת מהמברשת) ץקססדגק | המברשת מועתקת אל האצור דהפ/ונדק | פעולת ה0 בין המברשת לאצורר דהפעוונד5ס | באזור מתבצע היפוך (התוכנית מתעלמת מהמברשת) לכן, אם ברצונך להחיל את המברשת הנוכחית ללא שינוי, בחר בערך +קס6זאק לפרמטר 8516ו0. הפונקציה תחציר ערך לא-אפס אם סיימה בהצלחה, וערך אפס אם לא. כעת, כשידוע לך אילו פונקציות ישמשו אותך, תוכל לראות כיצד ליצור חלון וירטואלי. פרק 10: הטיפול בטקסט ‏ 247 1 יצירת חלון וירטואלי והשימוש בו התחל בחזרה על הנוהל שיושם. כדי ליצור אמצעי פשוט ונוח לשחזור תכולת חלון. לאחר שהתקבלה הודעת זאזה או תנהל התוכנית חלון וירטואלי וכל הפלט ייכתב אל אותו חלון. כל פעם שמתקבלת בקשה לצביעה מחדש, תועתק תכולת החלון. הווירטואלי אל החלון המופיע פיסית על המסך. יישם שיטה זו כעת. יצירת החלון הווירטואלי ראשית, יש ליצור הקשר התקן וירטואלי, אשר תואם את הקשר ההתקן הנוכחי. דבר שיתבצע פעם אחת בלבד, כאשר התוכנית מתחילה לרוץ, בעת שמתקבלת הודעת פדאפה0 %/. אותו הקשר התקן תואם ימשיך להתקיים כל ומן שהתוכנית רצה לפניך הקוד המבצע פונקציה זר פצתפה ו 896 /* 00:8108%68 מ06עספ 066 ד ; (5פה050 %פ) 0059550000%5168 = אאפת ; (פפה0פצ 5%) 55000065168ע0605 = צאבת /* 1086 עצסתסה 16מ1)הקחסם ב סאמח */ (8מ) 0פ66 = ספת 20800 = סחסת ; (צאגת ,אצפה ,ססם) קבח)1881מ1: 01680000 = שגמם ( 5 0 100 ; (8פטתם ְדאא) 0655:00%00[668 = מפטעמת ( 0 01000 (צ289008 ,צאפה (אצגה ,0 ,0 ,סבתסת):נפסגת (ספ ,חומ 685000 1פת 8%פצ הבה נבחן את הקוד הזה מקרוב. ראשית, הפונקציה משיגה את מימדי המסך. נתון זהה ישמש ליצירת מפת-סיביות תואמת. לאחר מכן, מושג הקשר ההתקן הנוכחי הפונקציה = יוצרת | הקשר התקן ‏ תואם בויכרון | בעורת | הפונקציה (108119/6060ח6163160. הידית להקשר ההתקן נשמרת בשדה 66וחפוח, שהוא משתנה גלובלי. נוצרת מפת-סיביות תואמת. כך נוצר מיפוי ביחס של אחד-לאחד בין החלון. הווירטואלי לחלון הפיסי. מימדי מפת-הסיביות הס אלה של גודל המסך חמירבי. דבר המבטיח שמפת-הסיביות תהיה תמיד גדולה די הצורך, לשחוור מלא של החלון ללא: תלות בגודלו (למעשה, ניתן היה להשתמש בערכים נמוכים מעט יותר, הואיל וקווי הגבול של החלון אינס נצבעים מחדש, שיפור פעוט זה נתון בידך, כתרגיל). הידית למפת-הסיביות נשמרת במשתנה הגלובלי זופח. עתה מושגת ממלאי המערכת. מברשת לבנה, והידית שלה נשמרת במשתנה הגלובלי חפטזפה. המברשת מוצבת בהקשר ההתקן שבויכרון, ולאחר מכן הפונקציה ()03088 צובעת את כל החלון 8 32371חוו ומבוא ל-ספו הווירטואלי בעורתה. כך, החלון הווירטואלי יקבל רקע לבן, התואם את הרקע של החלון הפיסי (וכור, הצבעים האלה בשליטתך, הצבעים שאנו משתמשים כאן מקריים). לבסוף, התוכנית משחררת את הקשר ההתקן הפיסי, בעוד שהקשר ההתקן. שבזיכרון ממשיך להתקיים עד שהתוכנית מסתיימת. כיצד להשתמש בחלון הווירטואלי לאחר שהחלון הווירטואלי נוצר, כל הפלט ינותב אליו (המקרה היחיד שבו הפלט מנותב בפועל לחלון הפיסי הוא קבלת הודעת זא81 %). לפניך גירסה מתוקנת של הודעת 1851 אפ1 אשר משתמשת בטכניקת החלון הווירטואלו: | לפפע 10 486 /* 21906 50 010% מאםם 868 */ ;((0 ,0 ,68)0ת ,60תשמ) 00105: 00104 /* מהםעבמפהבע) 50 46סח בממספקאסגם 50% */ ( דוק ונתת )0 /* 5ש1עסמה מאםם 608 */ 2 ,80 0 ;(זמש861מ5.ת5 ,".תפַגת 15מאנק %18 18 פהס? במצ" ,צ8ם)5םת1עסט /* הַת1םפ מטקסטס */ ;((160)855ע0ם , :6ב ,צ , ,סמחשת) ממו0: אש /* 1186 מאשם */ ;0ה116861הת:6םאמח:.ת: + םה10שאמם.ם + ל = צ .1106 מאסת שת: תס 18 18מת" ,צ56) עסספסם /* מת1עםפ פטקזטס */ ;((ע86)ה16ע6ם ,צשם ,צ , ,סבתשת) מו0) אבל /* את1צ50 ג 05 מִסַפַה16 בממקמסס */ נ(85196 ,(168)568ע86 ,852 ,66משה) 632ת01ע6ה0ם :0020 ;(8126.08 ,"סָה10 168תט 818 18 הַת1צזם פטס1טםעם" ,צ5)86םת1עמט /* 50188 פטס1טםצק 01 008 0: בסתבט8ג */ (2128.0% = א ;((160)855ע50 ,ע6ם ,צ ,% ,סמחסת)ממ0) אבצ /* 6ה11 ףא6ם */ ;0ה16881בהת63םאמת5ית: + 6ה10שאתם הט + ץ = צ /* א 86 */ 00 = א (צאפת /אצפת ,"%4 %8 :פת30פתסה81 הששעספ" ,צ5)86םת1עסט ;((865)ת16ע6ם ,צשם ,צ ,% ,סבמשת) ממס)אטל /* 6ה11 מאסת */ ;6ת116881הת02םאמת: ת: + מה10סאתם חן + ץצ = צ ((1 ,טוה ,6ממ)558606ג110בטד ספ פרק 10: הטיפול בטקסט ‏ 249 גירסה זו מנתבת את כל הפלט לשדה 6שוחחז ומפעילה את הפונקציה (פג/ 1 כדי לגרום לעדכון החלון הפוסי. שים לב שגירסה זו גם קובעת את מצב הרקע ומציבה אותו על זא6ה857ד. הדבר גורס להצגת הטקסט בחלון ללא כל שינוי בצבע הרקע. בכל פעם שמתקבלת הודעת דוק ואצ, מועתק תוכן החלון הווירטואלי אל ההתקן הפיסי, באמצעות קטע הקוד הבא: /* 06685 מתנמסס: 8 00888צק */ :ו /* ספ 66 */ ;(טסטעם5םה81ק8 ,בתאג) פה1גקה1פָט = ספת /* ה68ע50 ספתס מְהַגה1 עעסחסח עקסס (מסת */ ;(צ580008 ,0 ,0 ,בשחה (צאגת (אאגת ,0 ,0 ,ססה)1:15ם /* 0 2616886 */ ;(מסטעםפמת1גםם ,בתחמ) מת81פ8הם לצ כפי שאתה רואה, הפונקציה (ו₪09 משמשת כאן להעתקת התמונה ‏ מ- 9066 ל-6פח. וכור, הפרמטר 5%0007% מעתיק את התמונה כמות שהיא, בלא שינוי, מהמקור אל היעד. כל הפלט נשמר ב-6וחפוח, ולכן משפט וה גורם להצגת הפלט. בפועל. אם החלון הוסתר ולאחר מכן נחשף מחדש, תתקבל הודעת דאזהק וזוא, ותכולת החלון תשוחזר באופן אוטומטי. יש דרכים רבות לגשת לשחזור תוכן חלון. השיטה שתוארה ישימה בקשת רחבה של נסיבות, ובדרך כלל פועלת ביעילות. התוכנית שלך מקבלת את הקואורדינטות של האזור שיש לצובעו מחדש, ולכן תוכל לייעל באופן ממשי את השיגרה הקודמת על ידי שחזור בררני של אותו חלק חלון שנהרס (נסה להכניס שיפור וה בעצמך). התוכנית השלמה לחלונות וירטואליים לפניך התוכנית השלמה חועוופטטווט המדגימה את נושא החלונות הווירטואליים. (התוכנית בשלמותה נמצאת בתיקיה : חוצופנזוע10קת0) <. 50184008 1006 <.565180> 166סה1 <מ.56810> 166סה41 "ת. תוא1פטסצ 1" שבטבסה41 /* .0% 058296( 2 60ב2)פהסתסם */ (1832א) 46018680 418 מטתץ 32ונא 15 6ם4001 8 פפנתת 2במנא 15 6ת4001 5 0 32071חו/ו ומבוא ל-ספו 00| (001ם) 26 2באצא 15 | צא 18 43110 א 15 !) (8003) 46 2בותא 15 -25באבא 15 בה51 40 ( (4> ( ( () 6660658108) פתסאס) פצצמס) א 18 54 ((325אדא 15)! ₪6 (עא 15)!) (מססם) ‏ 5פאנא 15 6מ%8691 =סתמ6פה1 מהמעעטם // = קמפחדת מסאתלפאצה ( שאם1 *5פהתססוחו 97אא00 | 95ה8018%0901ה מססם ;"ממהעאו" = בהפאסקתפפמ1 תפפפסק1 "פרק 10.11 ה1א81ט10ט " 1059 /* פחַת1עספ ממקפטס 188סה */ ;[255] 552 צבתם /* 10680108 מטפסמס מהמעצמס */ 7-0 ,0-א פתג /* פהס!פתסת1 ת50266 */ ;צאבה |אאמה שג פסוותלפאונ ,ססהבםפהנת מסותצפַנה ) תנבעתגח צהפנמנעת פב (שסתפ4תסת 18% ,סהנמנתסק1 הצסדק1,ססהגופה1טםצקת 4 6 ו | פא 55 סטוה .01888 אסת1ש מ610ב116קעם הנח סמש מַבממשָבה // 7 2 קמתתספתט 05 | אתתסםהא 05 = 8 /* מס1פשחנ? אסשה1ש */ ק0סצקטהא (ססתספותו) ב 60015 = געסאמבתחמם סט /* פסתפספת1 5315 ס: שנבהגת /*‏ ;ססהה6פמזת תס ;( שתמאקקתעפק1 ,ססהבמפמנת )10881000 0 /* 18ע50 ה0) */ הת 100 10 0 /* 1ע80 צספפגם *] ; (ב+אססווצוו ה0נסס) (מפטאפט) = במגספף%ס8מעמת סט קסהגומקת2פמ1 = במגחטה26פם1 סט /* שהפה 1855ם אסשת */ קסהפאממת2פ1 = שהב201258%פם1 סט ( 95אצא 18 | 11 ( ( אפ )8601466501095! | 15 פמתס )תפטסע ] ( ( ₪66 )61906901488ה! ) 18 בפנם ( מפתתת )תסל פרק 10: הטיפול בטקסט ‏ 251 2 ללחו ומבוא ל-ספו ב ,אס 5 אס תק 1<-סשק1 = שחבאנוהו520ק1, אססר ;52018550886ק1<-6ק1 = 5201458(406ק1 אמט .95 8088ה1 10% פממסה1ם 54068 // 7 . - (59ה:סטוח)) 512005 = 005126 אסס ;("זתעם" ,פסהבםפחדה. אפסא)ת1086160 = מפתססצת אסס |;/( ₪068 )860186650185988 מפגטם> 15 תב 95 פשסמה1א עם 081158 18 מס1פסתםת גמד */ /*. הטפטף מטםפפשת סת5 הסע: 8068פמת הבעגקא אתתתפה ,ספפן פמצט ,המאת כומוט | 00פפבחח אסהמננתס ענטפטתנ ( הבטגפ1 עתתתק1 ספ ספ הכ דסטהדפעוותק ו 190 :קצב /* שנשהגת 460108 1מטטעגט שמ6 6ע0:ם */ סבתפת ספא 21261 /* מפתסגם [הטספנט שמם 028 */ ;סגמת קמותנמא 5:2:1 /* ש1בתפת תפטעם סנץ 55020 */ קמפועמת מפטתמא 212610 ( פא )0160 0 + פפתמתס 0 896 /* 00026108588 ה06ע0ם 65 */ ( ו )0605 = הנמת תפצ מ5) 2105 066ה506ע0005 = לאמ /* שאַג10 ענסתפה 18כ1זמקהסם ב באפה */ (8ווה) ₪60 = ספ 0 9600 (צאגת ,אצפח ,ססת) 80ה0261216810ה04:600עס = שגפה 1 )016050608 ; (8טתה מעעאא) 0%5600%00[606ם (אפטהםא) = הפטעפה 5 (מפגם ,600 ) 1505003665 (צ239008 ,צאפה (אאה ,0 ,0 ,סבתסת):1פוגת ( 0 100 צ פרק 10: הטיפול בטקסט ‏ 253 4 הלבחו ומבוא ל-ספו פרק 10: הטיפול בטקסט ‏ 255 856 00 00 (מצפא) ם: )11 (מצפא) ם: [ [ 60110 ; (מטה?) עס [ נ8%פצם כשתריץ את התוכנית, תיווכח בשיפור מיידי. ראשית, כל פעם שתסתיר ולאחר מכן תשוב ותחשוף חלון מסווים, תכולתו תשוחזר. 2 כיצד לשנות גופנים כפו שבוודאי ידוע לך, אחת המטרות העיקריות של חלונות. 9% היא לאפשר שליטה מלאה על ממשק המשתמש. לפיכך היא מכילה קשת רחבה ומגוונת של מאפיונים. מבוססי-טקסט, לשימושך. אחד המאפיינים רבי העוצמה ביותר הוא אוסף הגופנים (פוחס?). כאשר תשתמש בחלונות, תוכל לבחור מכמה גופני מערכת. תוכל גם לוצור גופנים אישיים משלך. בסעיפים הבאיים נעסוק בנושאים אלה. הגופנים המובנים במערכת גופני המערכת (פוחס= ח81) הס עצמים המובנים במערכת, שניתן לבחור בהם באמצעות הפונקציה ()665/00609(60. בעת כתיבת ספר זה, חלונות תומכת בשבעה גופנים מובניס. פקודות המאקרו הקשורות בגופניס אלח מובאות לפניך שם המאקרו תיאור הגופן זאסי ספאד אא | גופן בעל מרווחים קבועים. דוס האש זפאא | גופן בעל מרווחים משתנים. דוס דוטאפם מסנעפם | גופן ברירת המחדל של ההתקן זאסי 601 דפס | זחסו 601 זוטמוסם דאס פאז 0 | הו ואס דאס 8%%ד5%5 | גופן המערכת של חלונות אפ. דוס ספאןז אשד515 | גופן המערכת של גרסאות קודמות של חלונות. 6 32071חו/ו ומבוא ל-0פו גופני המערכת הס גופני תווים המשמשים את חלונות לכיתוב בתפריטים ובתיבות. דו-שיח. גרסאות קודמות של חלונות השתמשו בגופן מערכת בעל מרווחים קבועים בין התווים חס) חסאוק 9א=), אבל בגרסאות המתקדמות יותר, מ-3.6 5סחואו ואיילך, גופן המערכת הוא בעל מרווחים משתנים. הבחירה והשימוש בגופן מובנה פשוטים מאוד. התוכנית שלך תצטרך ליצור ידית מסוגג זאספוז לגופן. ‏ לאחר מכן עליה לטעון את הגופן הרצוי בעורת הפונקציה (604ן6615/00%00, המחזירה ידית לנופן. כדי לעבור לגופן הנבחר, בחר אותו על ידי הפונקציה ()5960:00[60, עם הגופן החדש כפרמטר. הפונקציה תחזיר ידית לגופן הקודם (שאולי תרצה לשמור, ולחזור אליו לאחר סיום השימוש בגופן שנבחר). התוכנית 5חס₪ שלפניך מדגימה את שינוי הגופנים. היא מוסיפה לתפריט אפשרות. חדשה - ח0?. כל פעם שתבחר באפשרות זו, ייבחר לסירוגין (במתכונת של מפסק) גופן ברירת המחדל של המערכת, או גופן 51 המשתנה. 514008 106 <מ. 565189> 014066 <56810.8> 66טבסה1) "ת. פמחסת" 66ט1סה41 /* .אס 0555896 ב 50ב2ופהסחסם */ (132א) 46818680 515 פעתץ 132 15 4001106 8 מפנתע 0132 15 6ם4011+ ב (80000000 0 > () 0090765810) (00ם) 56 32אצא: 6 (צא 15) !) (8001) / 86 2באצא : ((4> ( (() 0655468 05) הסוס 1) מס ) 6 (25באצא 15)| 66 (מא 15)!) (מ00ם) = 5פאצא 15 שה%46%1 עא 15 400116 5ננו 18 401108 ו 5 8066ספה) ממסעפטם //‏ ;פפמדת מסתתתפו |( סאם1 *5פהתסטותן 7פאא00 | 0186020195 מססם ;"ספתע9!" = שהפאסקתפפק1 אע5ל0ק1 "פרק 10.12 פ6מסע * 8 /* פחַת1עשפ מטקטטס 188סה */ ;[255] 862 צבתם /* 10680108 מטקטוס מהמעצמ */ 7-0 ,0-א פהג /* פהס!פחסת01 ה50286 */ ;לצבה ,לאה שג פסוותדפאונ ,ססהבםפהנת מסותצפנה ) תןבעתוח צתפנמנעת פב (שסמפ4תסה 186 ,סה1מנתסק1 הלפדק1 ,ססת68פתנטםעקת פרק 10: הטיפול בטקסט ‏ 257 8 32371חאו ומבוא ל-0פו פרק 10: הטיפול בטקסט ‏ 259 200 15 תג 95 פשסבה1א ע 081158 18 מסנססתםת גמד */ /*. פטפמף 86פפשה סת5 מסע: 58008פשת ,הבפגתא אתתתפה ,ספמ עמצט ,4מות סומוה ) 00פפבחה אסהמננתס נטפמתנ ( הבטגפ1 עתחתק1 ספ הכ לס טהלפעוותק קט סעתלמותאמל 18610 1960 :קנ / = ה6160פפהס? 262610 /* שנשהגת 460166 1מטסעגט שמ5 6ע0:ם */ קסבתפת ססא 212610 /* מפתסום [הטספנט שמ: 026םם */ ;שגמת קמותזמא 2:2610 /* ש1בהפת תפטעם סז 55026 */ קמפועמת אפטתמא 5:2610 /* 4168הגת מת0 סט 50090 */ ;פאשתם ,185סמ תאספא 262610 ( 8 | 1 [ /* 8588מ000281 ה08ע0ם 665 */ פפתמתס וו 856 50 56) 0050080021 = אצמת (5098 09 58) 105 066ה0 :065578 = צאבה /* 400168 שסגמ1 ץנסהשה 16מ1מהקחסם ב הלמח */ () 0650 = ספת ; (ספגן) 600 00008151 02685 = 86תסה (צאמה (אאגת ,ספמ) 58 1681מ024550080851 = מגה 2( ,)606 501606001 ; (מפטהם מעדאזז) 60 [06%5500%00 (מפטהפה) = מפטפטת ; (מפגעפת ,60תשם) 0105001805 עפססצת ,צאגת |אאגת ,0 ,0 ,66תפה)+נמסגס /* %ה50 אשת 60% *] ; (פווספ. הש 1פואה) 60% 0666000 (פאסטמ) = פששמת גנט ופ קת32ח//ו ומבוא ל-0פו פרק 10: הטיפול בטקסט ‏ 261 2 נסת2בח/ו ומבוא ל-ספו ,טנסה סאאא )טטספת אסאמנוהס ענטפטב פאצט ב בפוף עתהתקוו (198580 שתפתס ב (88806) 50166 [ 0 50 ; (פטתע) מצמסצ 00 0 886 (פטבפא)פת0א10 | 46 הק הסוס | 1 1% פאס (פטאע ,בסה מַ10גסאתם ; (מטחע) תפשש עפ ; (8188ת) מעג00, התוכנית השלמה נמצאת בתיקיה 5וחסת10קחס., הב ] ב ב 00ח פ01סק 16 45 וחסו סז , סו פאחט 156 סו 0108 פנוסושס1י -סח!) זאסח סת1 חס סו סוחד 3 ו פיט טאי 111 טסופ 8 שח ו וה 1 תרשים 10.2: פלט לדוגמה מהתוכנית חס?. כיצד ליצור גופנים אישיים אף שהדבר אולי נראה מסובך, למעשה מאוד פשוט ליצור גופן אישי. יצירת גופניםם אישיים מעניקה לך שני יתרונות בולטים. ראשית, גופן אישי מעניק ליושום שלך מראה ייחודי שיבדיל אותו מכל שאר היישומים. שנית, יצירת גופן מאפשרת לך לשלוט בדיוק רב במה שקורה כאשר הטקסט יוצא כפלט. לפני שתתחיל, חשוב שתבין. שאינך עומד להגדיר גופן חדש, אלא להתאים גופן קיים כך שיענה בדיוק על דרישותיך (כלומר, אינך צריך להגדיר את הצורה של כל תו בגופן שאתה יוצר). פרק 10: הטיפול בטקסט ‏ 263 כדי להגדיר גופן משלך, השתמש בפונקציה (חס0163)05, שהגדרתה הכללית היא. 8ת6א0300פם 16 ,1060 סה1 ,6מ10שא מה1) פהססםםםסעם צאסעם ,1641 פמסאע ,761955 שה ,מ64610מ16ע0 ממ4 ,6שמ1867ע56 ספסאם ,6מ11מ86מט סאסום ,256015108 מאסאם ,0042566 סאסמם ,ע115גמס סאסוום ,מ601910עקםננס סהסום (פממנומסת הצפסס1 ,21660 סהסום גובה הגופן מועבר בפרמטר זַחטפז, ורוחבו בפרמטר חזטו/. אם ח01/ מכיל אפס, חלונות תבחר ערך מתאים המבוסס על היחס גובה/רוחב (8360 :5000ה) הנוכחי הערכים ב-וחטשּ! וב-חזשוא נקובים ביחידות לוגיות. ניתן להוציא טקסט כפלט אל החלון בכל זווית רצויה. הזווית שבה יוצג הטקסט נקבעת על ידי הפרמטר זחפוח9ק6503. עבור טקסט אופקי רגיל, יכיל הפרמטר הזה ערך. ). אם לא, יצוין בפרמטר זה ערך במעלות שבו יש לסובב את הטקסט על צירו. ערך זה. רשום ביחידות של עשירית המעלה, ולכן, לדוגמה, הערך 900 יגרום לסיבוב הטקסט 0 מעלות על צירו, כך שהפלט יחיה אנכיי ניתן לקבוע את הזווית של כל תו בנפרד בעורת הפרמטר חסווגוחפוזס. גם כאן יחידות. המידה הן עשיריות המעלה, והן משמשות לציון הזווית של כל תו ביחס לקו האופקי. הפרמטר וחטשו קובע את השקלול המועדף ו 6166זק) של הגופן בטווח שביך 0 ל-1000. ערך 0 מייצג את שקלול ברירת המחדל. כדי להגדיר שקלול רגיל, השתמש. בערך 400. להדגשת תווים, השתמש בערך 700. תוכל להשתמש גם בפקודות המאקרו המופיעות ברשימה הבאה לציון שקלול הגופ סט א אנד א 1 וה וא א ו 0 שא דא א צאפו א כדי ליצור גופן נטוי, הקצה לפרמטר !ז1 ערך לא-אפס (בגופן רגיל, יכיל פרמטר זה ערך אפס). כדי ליצור גופן מודגש בקו תחתי, קבע לפרמטר פחוו66חט ערך לא-אפס. כדי לקבל גופן ללא קו תחתי, קבע לפרמטר זה ערך אפס. ליצירת גופן "מחוק", קבע לפרמטר זח50166 ערך לא-אפס. ליצירת גופן ללא קו מחיקה, קבע ערך אפס. הפרמטר :63196 קובע איזו סדרת תווים רצויה לך. בדוגמה הבאה נשתמש בסדרת. דספאא'0 1פ%ה. הפרמטר חספססוק מציין את דרגת הדיוק המועדפת של הקלט, כלומר אייזו מידה של תאזימות צריכה להתקיים בין מאפייני הפלט בפועל לבין מאפיונר הגופן שביקשת. בדוגמה המופיעה בפרק נשתמש ב- 7856 :05 דטס. הפרמטר 4 521חווו ומבוא ל-ספו 0פספזקטו1ס. מגדיר את מידת הדיוק של הגזירה. המונח נתוני גזירה (פַופפוסי 90500זק) מתייחס לאופן שבו כל תו החורג מגבולות הגזירה אמור יילהיקטם". הערך. המשמש אותנו בדוגמה הבאה הוא 88015 ד)0אפ0 611 (תוכל למצוא במדריך ₪01 שלך ערכים תקפיס אחרים לפרמטריס 0811566ס, חס0פ60ז ו-חסופוססזטקונס). הפרמטר /ףווגט קובע את דרגת ההתאמה בין הגופן הלוגי לבין הגופנים הפוסיים. שהתוכנית מספקת בפועל להתקן הפלט שהוגדר. הפרמטר יכול להכיל אחד משלושה. ערכים צדנואטס דוטאפפס +דנואטס. דואחס זאטס *חסאק הפרמטר חטזוה, פסיעה, מגדיר את המרווח בין התווים ואת המשפחה שאליה משתייך. הנופן שנבחר. גם פרמטר זה יכול להכון אחד משלושה ערכים. סוטאטס דל ספאה דוק 5 ונה קיימות שש משפחות אפשריות של גופנים. 0 5 ססות 5 אוסה ‏ שא ב כדי לייצר ערך עבור הפרמטר חשאל, עליך להפעיל חס על אחד מערכי החשוק ואחד הערכים של משפחת גופנים. מצביע לשם הגופן מועבר באמצעות פוח3)זחס5. מותרים שמות באורך של עד 32 תווים. הגופן שאתה מגדיר חייב לחיות מותקן במערכת שלך. הפונקציה ()9500ו6:63 מחצירה ידית לגופן אס סיימה בהצלחה, וערך ₪01 אם לא. % הערה: 4 חשוב להבין שמבחינה טכנית, הפונקציה ()/6316700ז6 אונה יוצרת. גופן חדש. היא רק מתאימה אותו במידת האפשר, על סמך המידע. שאתה מספק למערכת, לגופנים הפיסיים הממשיים שיש במערכת. חובה למחוק את הגופנים שנוצרו בעזרת הפונקציה ()8ח016319:0 לפני סיום התוכנית. כדי למחוק גופן, הפעל את הפונקציה ()0661809(6. לפניך תוכנית +ח050פט6 המדגימה שני גופנים אישיים. הראשון מבוסס על גופן אסא זסוזנוסס, השני על הגופן 6010 /חנטחפ6. כל פעם שתבחר את הפריט זחס* פס . מתוך התפריט, ייבחר ויוצג גופן חדש. פרק 10: הטיפול בטקסט ‏ 265 התוכנית משתמשת בקובץ משאבים כמו התוכנית בסעיף הקודם. 108 01008 <. 02186פ> 1006סה1 <מ.50810> בבסה "ה טמסת6פנס" שמטבסה1 /* .אס 055896 50ב2ופהסתסם */ (132א) 46818680 415 מטתץ 32נון 15 שת4011+ 8 מפנתת 32אנון 15 446116 0 (0%80000000 > ()ת10פעשע600) (מססם) 26 32אצ7 פד עא 15 40:16 6 (צא 15)!) (8001)/ 68 32אצא 18 325אנא 15 שה40661 ( (4> () 06006+5408) הסוס 1) עס ) 2 15 56 ((25באנא 18)! 66 (צא 18)!) (ססם) ‏ 95אצא 15 שה40661 =סת68פה1 מהמעעמס // = מפחדת מסנתלפאצת ( סאם1 *55התסטותן 87אא0 | 186020195 מססם "ממהעפו" = בהפאסקתפפמ1 תפפסק1 "פרק 10.12 68מספ " ו /* פחַת1עפ מטקטטס 188סה */ ;[255] 862 צבתם /* 10080108 מטפטמס מהמעפמם */ 02-? ,0- פתג /* פהס!פהסת01 ת50266 */ ;צאבת ,לאה פתג פסאותלפאנ ,ססהבםפהנת מסותצפותא ) הןבעתוח צתפנמנעת 48 (שסמפמסה 18% ,שה1תמתסק1 ת10757 (ססתם:פהנטשצקה 4 6 ומא | פוא 55 נספוה? .01888 אס10א מ4610ם11קקב מגגת סתף שששפ1ממת // 0 ו ב ;וותפספתט 05 | אתתסטאא 05 = 8 /* מס1פשחנ? 6סשה1ש */ קססצקטהא (ססתספותו) ב ₪ 01 6 0 6 32071חו/ו ומבוא ל-ספו פרק 10: הטיפול בטקסט ‏ 267 ( 16 *55המסטותו עפוא00 | 1866581895 מססם [ סו 558% נססוה? = ו ;00עפ6מאת1ק1<-סא1 = שסעקנהאהזק1 אססט 8 0001<-סאק1 = בעסאמ. 0001 אססט 10-00 = בעםאמבמאטם אססט /6סה2מפהדת<-0אק1 = | ססהבספחזת אססט 1 = סו מב 100 אס 40מפמ<-6שק1 = 4מ5040%9500טת, אססה !2 5ק1<-סשק1 = שהבאטהם/52ק1 אסס /82018590806ק1<-86ק1 = 52012580206ק1 אססא .95 88ס6מ1ן עס? פממסה1ם 4068 // 0-5 : - (55ה:סטוח)) 812005 = 005126 אסס ("םצתעם" ,8סה8םפחדה. אפסא)ה1086100 = מפתס0סצת אסס |( 86068 )8ם8601566501859 תפגטם> 15 תג 95 פמסבה1א ע 681188 18 מס1ססתגת גמד */ /* פטפנף 586פשה סה5 מסע? 58008פשת ,הבפגתא אתתתקה ,ספמו עמצט (במות סמוע | 200פבמח אסהמננתס ענטפמתנ ( הבפגפ1 עתתתקב ספמ ספת כ ד טתדפעוונתק קת) סתתלמותאמל 562610 190 ד 086401 68616 /* שנשהת 460108 [מטטעגט שמ6 6ע0:ם */ קסבתסת ספא 5:881 /* מפתפגם [הטספנט שמף בע60פ */ ;שגמם קממתנמא 262610 /* שנבתפת תפטעם שנץ 55026 */ קמפועמת אפטתמא 562610 [2פחת ,1פאשתם ,185סה פאספא 52616 /* 158התגת שמס+ שמף בע00ם */ ;"5015ת" = [40]שתמה? עמהם 5:8:10 /* שה0) 05 מחמח */ 8 32071ח/ו ומבוא ל-ספו 1 8 ( 0 פה )ו 856 /* 00028108558 ת08ע0ב 66 */ ( ו 5 5 68 יי מ /* 804108 שסגה1 שעסתסה 110 םבקמסם ג בצמת */ (8 ווה ) ₪60 = ספ 0 2680000 = ב חס (צאגת ,אצבה ,ססמ) 80ה0861016810ה2045000ס = שגפמ ( 0 160006 ; (מפטתם מעעאא) %560000[606סם (אפטהםא) = הפטעפה ( ג 0 01600608 (289008% ,צאפה ,הצפה ,0 ,0 ,סבתשת)16פוגק /* 0% אשת ב ב%מסעם */ ,אפסו את ,0 ,0 ,0 ,5)14מס0ם25סעם = 081שהה ,שספתתמס צפאה ,0 ,0 00 פדספתס שמטתפפס טס ,פדסמפפ פמטהפמם צנ ,צדנמתטס הנטמפמם ,מהתסצאסם סע | אסצצק ענטמעמם (" ו טס" 5001900 את ,0 ,0 ,0 ,20)%ת625000עס = 682שחה ,פספתהס צפאה ,0 ,0 ,0 (פצסמתס פנטתפפם 00 ,ספ פעטתפמם פצנס ,צנמ תטס המטתפמם ,מהתסצאסם פע | אסצנק ענטמפמם ו 0 1500 וצ :0 0 856 ( גפ )הס )160 ו + צפמץ 18% 856 הקפה +: 0+ ₪086 8תב 180% 50 00108 מאם: 56% */ 0,000 ,90500 ,666 0610010 תונותע ,40 0ב פרק 10: הטיפול בטקסט ‏ 269 0 323חואו ומבוא ל-ספו פרק 10: הטיפול בטקסט ‏ 271 ,סנפ מאאא ) ווסעת אסממונתס ענטפפתת ה וט הבטבפאו החתפו (198580 שתפתס ב (85808שת) 160 [ 6 ; (פטתת) מצ6? 00 0 886 (מ8פמפא) מפסא10 | 46 ( פא הסוס | | 80110 ; (מטחע) מעגטם, ו פע פלט לדוגמה מופיע בתרשים 10.3 [] פרק 10.12 חס ו סטפום מס ו .חח ואל 16 15 1ח10 ה | חַחס! פ!וחו 156 85 53 פטסושפז .6חו! הסח 106 חס 15 וח | 16010 501600 שת 15טאצע 14 15 ממ0 שמ 106 פסבמט 132 15 שמבצס: פטטצקם:2 -1426 סלפת פס מס 15 פבמה 0 800 :פמסצכתסמ01 5080 .שמ 8[סטכוקן 20 8 +מס! 6מ1/ שַגס[ 65ווו 219 15 ₪ַ56110 פמסנט0? .1126 +כסגו 116+ מס 15 שוג ד 0 800 :11010610118) ננססנסם תרשים 10.3: פלט לדוגמה מהתוכנית המפיקה גופנים אישיים. 2 זקתכבחווו ומבוא ל-ספו 3 הפונקציה 65ו1וַח3-]+חס-]וההטח 5וסחוו מאגדת גופנים למשפחות, בהתבסס על סדרת מאפיינים משותפים לכל גופן במשפחה. באפשרות התוכניות להשתמש בפונקציה 65!וחג'וחס?חזטחם כדי לוהות. במשפחת גופנים מוגדרת את הגופניס הזמיניס בהתקן מוגדר. בדרך כלל משתמשים. בפונקציה 5ס!ווחגטחסזוחטח= כדי לקבוע באיזה גופנים באפשרותך להשתמש בהתקן מוגדר, וגם כדי להשיג מצביע למבנה זא06%0) שהתוכנית יכולה להשתמש בו יחד עם. הפונקציה 5סוווחיוחס"וחטח כדי ליצור את הגופן עבור ההתקן המוגדר. את הפונקציה 65!וחמחט*וחטחם כותבים כמו בהגדרה שלהלן. ) 31108תבת 6 תספמוהם 45 0 400168 60| מנחמת // ,6 ספ 559108 שמשת-8011] ס צשטמנסק //‏ ,צ1במהטפפק1 אעפצסק1 > מספומצ תכ 6 0תפוענאנםפאוס: מ610סחט? 08110806 50 צססתצסם // 1168מקטפ-11086100מקה 01 685שמג // 198588 מתתתק1 0 טבלה 10.1 מפרטת את הפרמטרים שהפונקציה 65ווחג*)חס"וחטחש מקבלת. טבלה 10.1: הפרמטרים שהפונקציה 5 ?חס וחטחש מקבלת. פרמטר תיאור 6 | מזהה את הקשר ההתקן. ץוווח3פקפקן | מצביע למחרוות המסתיימת ב-01, אשר מגדירה את. שם המשפחה של הגופן המבוקש. אאם /!52931ק! שווה. ל-+0א, הפונקציה 65!וחפלשחס<"הוטחם בוחרת באקראי וממספרת גופן אחד בכל משפחה זמינה. הפיחס 'וחטחסק! | מגדיר את כתובת המופע של פרוצדורת המשוב שמוגדרת. על ידי היישום. למידע אודות פונקציית המשוב 0860ו631. חסס6חטת), התבונן בפונקציה 6זקוחב)חס=וחטהם. חובּזק! | מצביע לנתונים המסופקים על ידי היישום. הפונקציה מעבירה את הנתונים לפונקציית המשוב יחד עם המידע אודות הגופן כאשר הפונקציה 65ווחזג*זחסוחטח= מצליחה, הערך המוחזר הוא הערך האחרון שהחזירה פונקציית המשוב. ואת אומרת שהמשמעות נקבעת על פי המימוש המסוים. שלו. הפונקציה 65פ'וחס"חחטחם מקבלת את שמות הסגנונות שקשורים עם גופן 6עדפטזד. עם 65!ווחביטחסתוחנות, באפשרותך לקבל מידע על סגנונות גופן לא רגילים. (לדוגמה, מיתאר, שחוטטס). הפונקציה 65!ווחפ'וחס"חוטחט מקבלת מידע אודות כל גופך בעל שם של צורת גופן (569/פטץ!) שמוגדר על ידי ץ!וחזג"קפטו, ומוסרת אותו לפונקציה. פרק 10: הטיפול בטקסט | 273 אשר 6סזלחוג>וחס?וחטחסק! מצביעה עליה. פונקציית המשוב המוגדרת על ידי היישום. יכולה לעבד את מידע הגופן כנדרש. הספירה נמשכת, עד שאין גופנים נוספים, או עד שפונקציית המשוב מחזירה אפס. את פונקציית המשוב כותבים כמו בהגדרה שלהלן | 6סמשתבת)הספתטוהם אסתםנתס 46 שפטססממ55 פאסתםסמעטום הג %0 עסמהנסם // ,1%שם1 *צאסתסס םקות פעגססמםץ5 10תממותאמקומת 50 עשטהגסם // (משתק1 *סצתצממקאממאפות המצם חס? שמ // ,פמעטהסעת פה4 34 60ה4601-ה1168510מקת // מבצמק1 תהק לו כמו שאפשר לראות, פונקציית חמשוב מקבלת ארבעה פרמטרים. הראשון הוא מצביע למבנה מסוג דא6%01650. המבנה דז0111.0050/₪ מגדיר את מאפייני הגופן, השם. המלא של הגופן וסגנון הגופ המבנה 1.06:0%7טא8 מוגדר ב- 1ק 32חו/ו כפי שרואים להלן ) פוסק: 65 61910 | שא0ט106 מנטע 18]שתפאנננת,1ם | אאסם ;[28זפמסתע 5ם]16ע:5158 תתאסם ; [128 מס וס סס וטו [ טבלה 10.2 מפרטת את איברי המבנה דוו06%0 ואטאט. טבלה 10.2: איברי המבנה ז06=00.וטאם. פרמטר תיאור 61.00 | מתייחס למבנה מסוג זא106:0 אשר מגדיר את מאפייני הגופ סוחמזוו=!61 | מגדיר שם ייחודי לגופן. לדוגמה, "5976 5505 11316 8006 6קד סט ד תקוח זחס הי 6566 | מגדיר את סגנון הגופן, כמו לדוגמה, י3/6ז1 80/6". המבנה. שנהדפוודאפד מכיל מידע בסיסי אודות גופן פיוי. כל הגדלים. נתונים ביחידות לוגיות; כלומר, הס תלויים במצב המימוי הנוכחי של תצוגת ההקשר. שלושת הפרמטרים הנותרים מגדירים מידע ספדסטזד ייחודי ואת טוג הגופן (מתוך פקצדהאס: מסז/סם, פק/ידדאס? הפדפתה, ‏ או פקודדאס מקצדפטאד, ‏ או צירוף כלשהו של שלושת הערכים). 4 זקא2פחווו ומבוא ל-ספו כדי להבין יותר טוב את פעולת הפונקציה 65!ווחגאוחספוחטחם, התבונן בתוכניתת 55!/א. וחוחש, שבתקליטור המצורף לספר זה (בתיקיה 5וחסזו/ה = חווח=10קהום). התוכנית משתמשת בפונקציה פפוווחפּ*וחספוחטח= כדי למלא תיבת רשימה (80% 008 הכוללת את שמות הגופנים הזמינים מסוג פמְעדטד. כאשר המשתמש בוחר באפשרות. פד מהתפריט, התוכנית מציגה דוגמה למחרוזת טקסט בפורמט הגופן שנבחר כרגע. הקוד המעשי של התוכנית 5סחסף!|8 וחשחם נמצא בפונקציות 06ז60חא), חס וחטחם, ו-10706ח6=0חו. הפל לדוגמה מופיע בתרשים ‏ 10.4 בדה ב 0% 1 סוקופ תרשים 10.6: פלט לדוגמה מהתוכנית 15חס*!ה . הוטחפ. 4 הצגת גופנים רבים עם ו למדת שתוכניות יכולות להשתמש בפונקציה 0163900 כדי ליצור גופנים. עם זאת, מספר הפרמטרים בקריאה אחת ל-)ח9:0ו0163 מספיק בכדי להפוך את השימוש ב-וח070310"0. למתיש. חלופה טובה יותר היא הפונקציה 96זו6319:00100ז0, אשר יוצרת גופן לוגי שיש לו את כל המאפיינים שמוגדרים במבנה מסוים. כתוצאה, באפשרותך לבחור את הגופן כגופן הנוכחי בהקשר התקן כלשהו, כמו בדוגמה זו ; (1015* עאוסת106 עפווסס) 2815608 6הסת5)הסעם עאספ פרק 10: הטיפול בטקסט | 275 הפרמטר !/פ! מצביע אל מבנה מסוג א106%0 אשר מגדיר מאפיונים של גופן לוגי, המבנה 106:0%7 מגדיר את המאפיינים של הגופן, כמו שרואים להלן. | 5891069085 שסטפופ 668קעם 0 0 0 110 אס ו 7 פפצם 190 מפצם 195010 מפצם 19085 מפצם 1100%0260181080 מפצם /6618100:קם15011 מפצם הצצ פהתה0 )1101 מפצם 01 [51558 סע ש1] 086 0 ן כאשר מתבוננים מקרוב במבנה 10600%7, אפשר לראות שאיבריו מתאימים לפרמטרים של הפונקציה 600ו03ו6. למעשה, האיברים מקבלים ערכים כמו הפרמטרים של הפונקציה זח016319%0, אם הפונקציה 1106066ח0ז0606 מצליחה, הערך המוחור הוא ידית לגופן לוגי; אם. הפונקציה 070300:00006760 נכשלת, הערך המוחור הוא !א הפונקציה 07630001 יוצרת. גופן לוגי עם: המאפיינים שמוגדרים במבנה זא06:0+ כאשר בוחרים את הגופן עם הפונקציה 566₪09(6, ממפה הגופנים של ממשק ההתקן הגרפי מנסה להתאים את הגופן הלוגי עם גופן פיסי קיים. אס ממשק ההתקן הגרפי אינו יכול למצוא התאמה מדויקת, הוא מספק חלופה אשר מאפייניה תואמים. את המאפיינים הדרושים ככל האפשר. כאשר אין צורך יותר בגופן, צריך לקרוא לפונקציה 066160066 כדי למחוק אותו. התוכנית 5חס!/, וחטחש שהוצגה בסעיף הקודם משתמשת בפונקציה במקוס הקריאה 003190065 עס ארבע עשר הפרמטרים, התוכנית קוראת ל-010600601ח016316*0 עם פרמטר אחד בלבד, כפי שמוצג להלן (816) 056866908618618666 = מתסעם וכור, התמיכה של חלונות לגופנים ולטקסט רחבה למדי. בוודאי תרצה לחקור תחום. זה בעצמך. בפרק הבא נמשיך ונבדוק את האפשרויות למשלוח פלט לחלון באמצעות. עבודה עס גרפיקה. 6 ז7א2בחווו ומבוא ל-ספו 19 עבודה בגרפיקה מערכת חלונות א9 כוללת אוסף עשיר וגמיש של פונקציות גרפיות, לנוחותו של המתכנת. אין זה מפתיע, שהרי ווהי מערכת הפעלה גרפית. אך תופתע אולי מהמידה שבה שלובה הגרפיקה במערכת התצוגה החלונאית. למעשה, חלק גדול ממה שלמדת. אודות טקסט בפרק הקודס, יפה גס לגרפוקה. לדוגמה, המברשת המשמשת לצביעת. חלון, משמשת גם למילוי של עצם. בפרק זה נדון בכמה מהפונקציות הגרפיות של חלונות, ונדגים כיצד הן פועלות. הפרק גם בוחן מספר מאפיונים הקובעים בדיוק כיצד ימופה פלט נתון על החלון שאליו הוא מיועד. נדון בנושאיים כגון קביעת מצב המיפוי הנוכחי, כיצד לשנות את הקואורדינטות הלוגיות הקשורות בחלון נתון, וכיצד להגדיר את שטח התצוגה (0ז0ק/6/ו). לגורמים אלה השפעה מכרעת על אופן הצגת הגרפיקה והטקסט על המסך. וכור שהדיון בגרפיקה ובנושאים הקשורים לגרפיקה בפרק וה אינו אלא נגיעה בפנר השטח. מערכת הגרפיקה של חלונות א9 היא בעלת עוצמה, ויש להניח שתרצה להמשיך. ולחקור אותה בעצמך. 1 מערכת הקואורדינטות לגרפיקה מערכת הקואורדינטות לגרפיקה היא וו המשמשת את הפונקציות המבוססות על טקסט ‏ הנדונות בפרק 10). פירוש הדבר שלפי ברירת המחדל, הפנה השמאלית-העליונה ממוקמת בנקודה 0,0; והיחידות הלוגיות שקולות כנגד פיקסלים. וכור שמערכת הקואורדינטות והמיפוי של יחידות לוגיות למתכונת של פיקסלים. נתונים בשליטתך וניתן לשנותס (בהמשך הפרק יתברר לך כיצד). חלונות א9 שומרת כל הומן ערך של מיקום נוכחי (חס6פסל 6חפזזנס), המשמש פונקציות גרפיות מסוימות, שגם מעדכנות אותו. כאשר התוכנית שלך מתחילה לרו), מתאפס המיקום הנוכחי ומוצב על 0,0. זכור שהנקודה המייצגת את המיקום הנוכחיי היא בלתי נראית. כלומר, אין שום "סמןיי גרפיקה על המסך. המיקום הנוכחי הוא' המקום הבא בחלון, שבו יתחילו לפעול פונקציות גרפיות מסוימות. פרק וז: עבודה בגרפיקה = 277 2 עטים ומברשות מערכת הגרפיקה החלונאית מבוססת על שני עצמים חשובים: עטים ומברשות. כבר עסקנו במברשות בפרק 10. כל המידע הזה חל גם על הפונקציות הגרפיות המתוארות. בפרק. לפי ברירת המחדל, צורות גרפיות סגורות, כגון מלבנים ואליפסות, מתמלאים. בעורת המברשת הנוכחית. עטים (צח9?) הם משאב המצייר קווים וקשתות. לפי הוראות מפונקציות גרפיות מסוימות. לפי ברירת המחדל, צבע העט שחור, והוא מצייר קו בעובי פיקסל אחד. בידך האפשרות לשנות את התכונות האלו. עד כה עבדת רק עם עצמים ממלאי המערכת. בפרק וה תלמד כיצד ליצור מברשות ועטים מותאמים אישית. זכור דבר חשוב אחד לגבי עצמים אישיים שהתאמת לעצמך חובה למחוק אותס לפני סיום התוכנית באמצעות הפונקציה ()61609(6%ו6ם. 3 הגדרה של פיקסלים תוכל לקבוע את צבעו של כל פיקסל נתון באמצעות הפונקציה ()06ו56 של זַקא, שהגדרתה הכללית היא: 7 עפתהס0נ0ס ,? 8ה1 ,א שה ,46מ ספא) 61א8601 עמהתסנסם במקרה זה, 66ו! היא הידית להקשר ההתקן הרצוי. הקואורדינטות של הפיקסל שאת. הגדרתו מבקשים לקבוע נתונות על ידי א ו-+, והפרמטר זס/60 מכיל את הגדרת הצבע (דיון בסוג הנתונים +001.0885 מופיע בפרק 10). הפונקציה מחזירה את הצבע המקורי של הפיקסל, וערך 1- במקרה של שגיאה, או במקרה שהמיקום שצוין נמצא מחוץ לגבולות החלון. 4 שרטוט קווים כדי לשרטט קו, השתמש בפונקציה ()דפחו1, אשר מציירת קו בעורת העט הנוכחי. לפניך הגדרתה הכללית. שת ,6 שת1 ,66מ ססא)690ה11 מססם 6 מכיל את הידית להקשר ההתקן שבתוכו יש לצייר את הקו. הקו ישורטט מהמיקום הגרפי הנוכחי, אל הנקודה הנתונה על ידי הקואורדינטות א ו-+. לאחר מכן יעודכן המיקום הנוכחי ויקבל את הערכים +,א. הפונקציה מחזירה ערך לא-אפס אם. סיימה בהצלחה (כלומר, הקו צויר), וערך אפס אם לא. יש מתכנתים שמופתעים מכך שהפונקציה ()670ח/) משתמשת במיקום הנוכחי כנקודת. יציאה, ולאחר מכן מגדירה את המיקום הנוכחי לפי נקודת הסיום של הקו ששורטט. (במקום להותירה בלא שינוי). יש לכך סיבה טובה. פעמים רבות, כאשר מציגים קווים, קורה שקו אחד מתחיל בסופו של הקו הקודם. במקרה כוה, הפונקציה (00610 פועלת באורח יעיל ביותר כי אינה צריכה להעביר זוג קואורדינטות נוסף. כשאינך מעוניץ במתכונת כזו, עליך לקבוע את המיקוס הנוכחי בכל נקודה הרצויה לך באמצעות הפונקציה ()06105/ שמייד נעסוק בה, עוד לפני הקריאה לפונקציה 0 8 71א32חווו ומבוא ל-ספו 5 קביעת המיקום הנוכחי כדי לקבוע מיקוס נוכחי, השתמש בפונקציה ()6105א0א, שהגדרתה הכללית היא: ;(צסססם1 שאצספפ1 ,% 6מ1 ,א שמ1 ,500 86א) אמספסטמות מס הפרמטר 66 מכיל את הידית להקשר ההתקן. הקואורדינטות של המיקום הנוכחי החדש נתונות על ידי +,%. 100016 הוא מצביע אל מבנה זאז0ק, המחזיר את המיקום. הנוכחי הקודם. לפניך הגדרת מבנה 901 | 6200010 5סע:ם 465שמעל 10 0 צס ן אס תקצה לפרמטר 00070קן ערך 1ש', הפונקציה 0461086 לא תחציר את המיקום. הנוכחי הקודם. הפונקציה ()0/6105// מחזירה ערך לא-אפס אם סיימה בהצלחה, וערך אפס אם לא: 6 ציור קשתות תוכל לצייר קשת אליפטית 0 וג6קום, מקטע של אליפסה) בצבע העט הנוכחי באמצעות הפונקציה ()6, שתבניתה הכללית היא: סנ 16 ,1060 שת1 ,צקט את3 ,אקט פת1 ,סמ סת8) שעת מססם ; משתש שמ1 ,אנתס שת1 ,262257 סה1 ,%:5622 שחצ אאטו-+1 0 4 תרשים 1.1 ון הפעולה של הפונקציה ()6א. בדוגמה זו, 6 היא הידית להקשר ההתקן שבו תצויר הקשת. הגדרת הקשת נעשית. באמצעות שני עצמים. הראשון, הקשת עצמה, הוא חלק של אליפסה הכלואה במלבן (6ו0ח₪6619 הַוחט80) שפינתו השמאלית-העליונה נמצאת בנקודה צקט,אקט, ופינתר פרק 11: עבודה בגרפיקה = 279 הימנית-התחתונה בנקודה. +אוסו,אאוס. אותו חלק של האליפסה המצויר בפועל (הקשת), מתחיל בנקודה שבה מצטלבים הקו העובר דרך מרכו המלבן והנקודה הנתונה על ידי /30),576ו5. הוא מסתיים בנקודה שבה מצטלבים הקו העובר דרך מרכו המלבן ודרך הנקודה הנתונה על ידי +66,%ח6. הקשת מצוירת בניגוד לכיווך השעון, מהנקודה 30,9136ז5. בתרשים 11.1 מודגמת פעולת הפונקציה ()6א. הפונקציה ()6 מחזירה ערך לא-אפס אם סיימה בהצלחה, וערך אפס אם לא: 7 כיצד להציג מלבנים באפשרותך לחולל תצוגת מלבן (פוַח8601), שיצויר בעט הנוכחי, באמצעות הפונקציה (601300/60ה, שהגדרתה מובאת כאן 100 18 ,108 שת1 ,צקט שה1 ,קט שמ1 ,00ת ססמ) 816ה80:2ה מססם 6 היא הידית להקשר ההתקן. הפינה שמאלית-העליונה של המלבן נתונה על ידי צסט,אקט, והפינה הימנית-התחתונה נתונה על ידי צווסו,אווסו. הפונקציה מחזירה ערך. לא-אפס אם סיימה בהצלחה, ואפס במקרה של שגיאה. המלבן יתמלא באופן אוטומטי, על ידי המברשת הנוכחית. תוכל להציג מלבן מעוגל (סַ963 060ח80), מלבן שפינותיו מעוגלות במקצת, באמצעות הפונקציה ():806860, שהגדרתה הכללית מובאת להלן 10 16 ,צקט שת1 ,הקט טה1 ,300 ססמ) 06שההוסה מססם (לסטעמס מת1 (אפטעטם 10% ,108% שג חמשת הפרמטרים הראשונים והים לאלה המופיעים בפונקציה ()פפַח890. צורת. עיגול הפינות נקבעת על ידי ערכי הפרמטרים אפוחנ ו-!פצזוס, המגדירים את רוחבה וגובהה של האליפסה המתווה את הקשת. הפונקציה מחזירה ערך לא-אפס אם סיימה. בהצלחה, וערך אפס במקרה של שגיאה. המלבן המעוגל מתמלא באופן אוטומטי עלל ידי המברשת הנוכחית. 8 כיצד לצייר אליפסות ופרוסות עוגה כדי לצייר אליפסה (56פו/8) או עיגול בעורת העט הנוכחי, עליך להשתמש בפונקציה (0560ו//8, שהגדרתה הכללית היא ;אס פת1 ,106% 15 ,צקט פה1 |)קט פה ,סטג ספא) 11156 מססם בדוגמה, 06 היא הידית של הקשר ההתקן שבו תצויר האליפסה. כל אליפסה מוגדרת. באמצעות המלבן התוחם אותה. הפינה השמאלית-העליונה של המלבן נתונה על ידי צסט,אקט, והפינה הימנית-התחתונה נתונה על ידי צאוסו, אאוסו. כדי לצייר עיגול, הגדר ריבוע במקום מלבן 0 321חווו ומבוא ל-ספו הפונקציה מחצירה ערך לא-אפס אס סיימה בהצלחה, וערך אפס אס לא. האליפסה מתמלאת על ידי המברשת הנוכחית. פרוסת העוגה (5/09 6ק) היא צורה קרובה לאליפסה. פרוסת עוגה היא עצם המורכב מקשת ומשני קוויס אל מרכו האליפסה, אחד מכל קצה של הקשת. כדי לצייר פרוסת. עוגה, השתמש בפונקציה ()6וה, שהגדרת הכללית מובאת להלן /%אס1 שת1 ,1060 שת1 ,לקט פה ,אקט %ת1 ,0במ סת₪)15ע מססם ; תס שת1 ,אמתס 18 ,268289 עת' :582 פת4 במקרה זה, ₪66 היא הידית להקשר ההתקן שבו תצויר פרוסת העוגה. הקשת של הפרוסה מוגדרת באמצעות שני עצמים. הקשת היא חלק מאליפסה, הכלואה במלבן שפינתו השמאלית-העליונה ממוקמת בנקודה צקט,אפט, ופינתו הימנית-התחתונה בנקודה אוס,אשוסו. אותו חלק של האליפסה המצויר בפועל (הקשת של הפרוטה), מתחילה בהצטלבות של קו היוצא ממרכז המלבן ועובר דרך הנקודה הנתונה על ידי ובו זז5, ומסתיימת בהצטלבות של קו היוצא ממרכז המלבן ועובר דרך הנקודה. ח0%,0ח6. הפרוסה מצוירת בעט הנוכחי ומתמלאת על ידי המברשת הנוכחית. הפונקציה ()96 מחזירה ערך לא-אפס אם סיימה בהצלחה, וערך אפס במקרה של שגיאה. 9 כיצד לעבוד עם עטים עצמים גרפיים מצוירים בעזרת העט הנוכחי. במלאי המערכת קיימים שלושה עטים 6% פאחאו ו-!|טח. ניתן להשיג ידית לכל אחד מהס באמצעות הפונקציה ()6615406600(66, שנדונה בשלב מוקדם יותר בספר. פקודות המאקרו עבור עטי המערכת הן אפק 81/46%, אק דוו ו-אפק .1ו, בהתאמה. ידיות לעטים הן מסוגג אפו למעשה, עטי המערכת (פחשק 5106%) מוגבלים למדי ובדרך כלל תגלה שנוח לך להגדירר עטים משלך עבור היישום שאתה כותב. הדבר מתבצע בעורת הפונקציה ()ח01631906, שהגדרתה הכללית היא: :(00108 שפתה0010 ,1860 1 ,16ע56 6ה1)ת6לם)68צם אמק הפרמטר 5% קובע את סוג העט שייווצר, וחייב להכיל אחד מהערכים הבאים. שם המאקרו סגנון העט. אפס 5ק | מקווקוו דססוופ אס 5ק | קו-נקודה 5 סד5300א 5ק | קו-נקודה-קו דסם 75 | מנוקד פואתאתפפזפא 05 | עט מלא בתוך גבולות של אזור תחום. וטא 05 | איך 50 5 | קו רצוף. פרק וז: עבודה בגרפיקה = 281 הסגנונות המנוקדים ו/או המקווקווים חלים על עטים בעובי של יחידה אחת בלבד. העט פוא8זםס091ו1 .5 הוא עט מלא, שיהיה כולו בתוך גבולותיו של העצס שיצויר, גם כאשר עובי העט עולה על יחידה אחת. לדוגמה, אם עט בסגנון 516?885א1 5 ובעובי העולה על יחידה אחת משמש לציור מלבן, אזי צידו החיצוני של הקו יחיהה בתוך גבולות המלבן (כאשר משתמשים בעט רחב מסגנון אחר, ייתכן שהקו יחרוגג בחלקו מגבולות העצם). עובי העט מוגדר באמצעות הפרמטר חזשאו, שהערך שלו הוא ביחידות לוגיות. הפרמטר. זסוסס, שהוא ערך של 0010885 (שנדון בפרק 10), קובע את צבע העט. בדוגמאות של פרק זה יוגדרו כל הצבעים בעורת ערכי 68 לאחר שנוצר העט, הוא מוצב בהקשר התקן באמצעות הפונקציה ()56160:00(60. לדוגמה, קטע הקוד הבא יוצר עט אדום ולאחר מכן בוחר בו להיות העט הנוכחיי ;הספת עמק :(0 ,0 ,90)255+ ,1 ,80110 5פ)ה68:626טם = השקטסתם ( 80 ,186 1005003608 וכור, לפני סיום התוכנית עליך למחוק כל עט אישי שיצרת באמצעות הפונקציה 661600600 0 כיצד ליצור מברשות אישיות מברשות המותאמות אישית לצרכיך (0065ז8 חחסופטס) נוצרות בצורה דומה לעטים. אישיים. קיימים מספר סגנונות של מברשות, הנפוצה היא חפטזפ 50/66. מברשת מלאה. נוצרת בעורת הפונקציה ח05ז016316501/68, שהגדרתה הכללית היא (ס1סם שמתהסנ0ס)80גו0568655011085 אפטהפ צבע המברשת מוגדר באמצעות ערך הפרמטר זסוסס, והפונקציה מחזירה ידית לאותה. מברשת. לאחר שנוצרה המברשת האישית, היא מוצבת בהקשר ההתקן באמצעות הפונקציה (56/60109[904. לדוגמה, קטע הקוד הבא יוצר מברשת ירוקה, ולאחר מכן בוחר בה להיות המברשת הנוכחית. פטממה6566ת שפטאפם ((0 ,255 ,0) 08ה) 2081080110 050 ,80 1005003668 0 בדומה לעטים אישיים, חובה למחוק גם מברשות אישיות לפני סיום התוכנית. סוגים נוספים של מברשות, שבוודאי תרצה לחקור בעצמך, הס מברשות עס קווקווים. או עם דוגמאות, ‏ הנוצרות | באמצעות ‏ הפונקציות | ו וב-()ת5טז8ח016319731107, בהתאמה. 2 זקא2בחווו ומבוא ל-ספו 1 מחיקת עצמים אישיים חובה למחוק עצמים אישיים 090605 וחסופס) לפנ סיו התוכנית. פעולה. זר מתבצעת באמצעות הפונקציה ():06/61609(60. זכור, אין למחוק עצם המוצב באותו זמן בהקשר התקן כלשהו. 2 הדגמת עבודה בגרפיקה התוכנית ₪011 שלפניך מדגימה את הפונקציות הגרפיות השונות שתוארו לעיל. תוכנית זו משתמשת בטכניקת החלון הווירטואלי שעסקנו בה בפרק 10. היא מכוונתת את הפלט להקשר התקן המצוי בויכרון. לאחר מכן מועתק תוכן החלון אל החלון. הפיסי בכל פעם שמתקבלת הודעת זאזאק זא (וכור, גישה זו לפלט מאפשרת עדכון אוטומטי של תוכן החלון כאשר מתקבלת הודעת זאזאק א/) התוכנית בשלמותה נמצאת בתקליטור 1166011ק8ס. < 104008 ה <565186,3> 1006סה1 <מ.56810> 66ט1סה41 "ת. 00111" 1086סה1 ".5650906" 1001066 /* . פתס1מסתט? 01 66ב:ופהסחסס */ (132א) 46818680 518 מטתץ 32צא 15 6ת4001 8 פפנתת 32מצא 15 שת001+ 0 (0%80000000 > ()מ10פעשע600) (נססם) ₪60 32אצו א 15 1 6 | 15) ) (מסס) ₪6 2בעאו 18 1325 ( >4(‏ () 6408 06) הסאס ת) מעיעס:נ) 2בוצא 18 ₪6 ((25באדא 15)| 46 (פא 18)!) (מססם) = 5פא 1 4001108 15 =סמספת1 מהמעעמס // = ;מפחדת מסנתלפאצה ( סאם1 *5פהתססוהו פאס | 186020195 מססם ;"ססהעו" = בהפוטקתפפמ1 תפפסק1 (" פרק 11 041110 " = 16ש1ל2פק1 אעפפסס1 /* פחַת1ע0 ממקסטס 188סה */ ;[255] 862 צבתם פרק וז: עבודה בגרפיקה = 283 4 הלבחו ומבוא ל-ספו פרק 11: עבודה בגרפיקה | 285 .95 4088ה1ו ע0? במהסה10ם 4068 // ל 2 - (55ה:סטוח)) 512005 = 05126 אסס ("מנתעם" ,8שת8:פחדה. אפסא)ה1086160 = מפמססזת אסס ;( 86068 )860186650185988 תפגםם> 15 תג 95 פסבה1א עט 081188 18 מס1ססתםת בצמל */ /* פטפנף 6םפפשה סת5 מסע: 58068פשת הבפגתא אתתתקה ,ספמ עמצט (במות כומות | עבמ אסהמננתס צנטפמתנ ( הגפגק1 עתתתק1 ספמ ספת כ ד טתדפעוונתק ;הכוסה ,מפקאס1נטצת ,תסקפטנפת ,מסקהססעסה ,הקפהה אפפ 262610 /* שנשהגת 460168 [מטטעגט שמ6 6ע0:ם */ קסבתסת ספא 2:261 /* מפתסום [בטספנט שמף 0096ב */ ;סגמת קממתזמא 12610 /* 41הגת תפטעם שמ 55026 */ קמפטעמבנסת ,תפועמת מפטתמא 562610 ( מ )1 [ אפ ₪ 456 ( ו )0055565 = אמ ( 0 )6105 ה50ע05 0 = לאמ /* 809108 סִסגה1 עעכתפה 10מ1טבקמסם ב בלמת */ (8ו) ₪60 = ספה 96500 = מ חס (צאגח ,אאפה ,ססת) ק8ה0211216830ה04:600עס = מנפה (8 ,646 616050008 ; (מפטת מצאא) 6%5600%00[666ם (אפטהטא) = הפטעפה ( ג 0 01600608 (צ89008ק ,צאפה (אצה ,0 ,0 ,סבמסת):1ם:גק ;((908)255,0,0 ,1 ,50210 5ק)מ6ק0ץ02מם = השקם0שחת ;((68)0,255,0ת ,2 ,50210 0268)25:בשעם = תסקהסשעמה ;((968)0,0,255 ,3 ,50112 5ק)ת0266096 = מסקסטנפה /((0 ,255 ,808)255 ,4 ,1מ50 פק)ת085096עס = מסקס1נטעם 6 3231חווו ומבוא ל-ספו פרק 11: עבודה בגרפיקה = 287 8 32271חא ומבוא ל-ספו פרק וו: עבודה בגרפיקה = 289 0 3237חואו ומבוא ל-ספו התוכנית מציגה תפריט ראשי המאפשר לך להציג קווים (ועוד שני פיקסלים), מלבנים ואליפסות. היא גם מאפשרת לאפס את החלון, כלומר למחוק את תוכנו ולאפס את המיקום הנוכחי שלו. פלט לדוגמה מובא בתרשים 11.2. א ה א | תרשים 11.2 ולט לדוגמה מהתוכנית להדגמת עבודה בגרפיקה 3 הבנת מצבי המיפוי ואזורי התצוגה פונקציות הטקסט והגרפיקה של חלונות פועלות לפי יחידות לוגיות, שחלונות מתרגמת. אותן ליחידות פיסיות (למשל, פיקסלים) כאשר היא מציגה עצם. האופן שבו מתבצע התרגום מיחידות לוגיות ליחידות פיסיות נקבע באמצעות מצב המיפוי (פחופקטוו 6 הנוכחי. לפי ברירת המחדל, יחידות לוגיות והות לפיקסלים. אולם באפשרותך. לשנות את היחט בין יחידות לוגיות ליחידות פיסיות על ידי שינוי מצב המיפוי נוסף לשינוי האופן שבו חלונות ממפה את הפלט אל חלון נתון, תוכל להגדיר שתי תכונות נוספות המשפיעות על התרגוס של יחידות לוגיות ליחידות פיסיות. ראשית, תוכל להגדיר את אורך ורוחב החלון במונחים של יחידות לוגיות שאתה תקבע. שנית, תוכל לקבוע את המימדים הפיסיים של אזור התצוגה. אזור התצוגה (זסקאו6ו/) הוא: אזור מסוים המתקיים בתוך גבולות החלון. מרגע שהוגדר אזור התצוגה, כל הפלט. יוגבל לגבולות אלה. בסעיף זה נבחן את הפונקציות המאפשרות לקבוע את מצב המיפוי, את מימדי החלון. ואת גבולות התצוגה. קביעת מצב המיפוי כדי לקבוע את מצב המיפוי הנוכחי, השתמש בפונקציה ()560/%0%066, שהגדרתה. היא (ס 1 ה )360 שת פרק וז: עבודה בגרפיקה = 291 הפרמטר 66 מכיל את הידית להקשר ההתקן. הפרמטר 06טוח מגדיר את מצב המיפוי, ויכול להיות אחד הקבועים שלהלן מצב המיפוי הפעולה 06 הד150אוא. ואוא | הופך יחידות לוגיות ליחידות שהגדרתן נתונה בידי המתכנת, עס צירים בעלי קנה מידה שרירותי 15ו6אמזו ואוא | הופך כל יחידה לוגית ליחידה פיסית בת 0.001 אונ. 6והדפווזוו ויו | הופך כל יחידה לוגית ליחידה פיסית בת 0.01 מיימ. 6נקסדס5 אא | הופך יחידות לוגיות ליחידות שהגדרתן נתונה בידי המתכנת, עם צירים בקנה מידה מושווה (הדבר יוצר יחס. רוחב/גובה של אחד-לאחד). 6והדפואס | ואוו | הופך כל יחידה לוגית ליחידה פיסית בת 0.1 מיימ. 615אשס. ואו | הופך כל יחידה לוגית ליחידה פיסית בת 0.01 אזנן. דפ ואו | הופך כל יחידה לוגית לפיקסל אחד של ההתקן. לוד או | הופך כל יחידה לוגית לאחד חלקי עשרים של נקודת. דפסים, או 1440/1 האינץי, בקירוב. הפונקציה ()561/%80/066 מחצירה את מצב המיפוי הקודס, או ערך אפס במקרה של שגיאה. לפי ברירת המחדל, מצב המיפוי הוא דאפד וו אפשר לשנות את מצב המיפוי מכמה סיבות. ראשית, אם אתה רוצה שהקלט של התוכנית יוצג ביחידות פיסיות, באפשרותך לבחור את אחד המצבים המשקפים את העולם הממשי, כגון 816ד6וא0 1 ו1. שנית, ייתכן שתרצה להגדיר לתוכנית שלך את היחידות המתאימות ביותר לאופי התמונה שאתה מציג. שלישית, אולי תרצה לשנות. את קנה המידה של התמונה המוצגת (כלומר, ייתכן שתרצה להגדיל, או להקטין את תצוגת הפלט). לבסוף, ייתכן שתרצה להגדיר יחס גובה/רוחב של אחד-לאחד בין ציר א לציר +. לאחר שתעשה זאת, כל יחידת א תייצג אותו מרחק פוסי כמו יחידת ץ. הערה: זזכור: שינוי מצב המיפוי משנה את אופן התרגום של יחידות לוגיות ליחידות פיסיות (פיקסלים). כיצד להגדיר את גבולות החלון בחירה במצב המיפוי 16ק0הד150 וא אר 6נקסהד50זווא, ואו תאפשר לך להגדיר את. גודל החלון במונחים של יחידות לוגיות. למעשה, כאשר אתה בוחר אחד ממצבי המיפוי הללו, אתה חייב להגדיר את מימדי החלון (מצבי המיפוי הללו פועלים לפי יחידות שהוגדרו בידי המתכנת, ולכן מבחינה טכנית גבולות החלון אינם מוגדרים עדד אשר תגדיר אותם). כדי להגדיר את מימדי החלון באמצעות אורך ציר א וציר +, השתמש בפונקציה ()00%/5054חו//561, שהגדרתה היא 16 0 0 0 מס נ(5196 5פדפס1 ,1086080 שחצ 2 זקא2חווו ומבוא ל-ספו הפרמטר 66 מציג את הידית להקשר ההתקן. זחס)אפא ו-1חפזאט מגדירים את האורך. האופקי והאנכי החדשים, הנמדדים ביחידות לוגיות. המימדים הקודמים של החלון. נשמרים במבנה 5125, ש-506 הוא המצביע שלו. אם הפרמטר 56 מכיל ערך !0א, אזר התוכנית מתעלמת מהמימדים הקודמים. הפונקציה מחזירה ערך לא-אפס אם סיימה בהצלחה, וערך אפס אם לא. הפונקציה ()5%ַַא00חו56 משפיעה רק כאשר מצב המיפוי הוא 150180016ו4%, א/, או 150180716 %/%. הגדרת מבנה 5125 היא: | 585128 569006 6665פצט ו ;עס 1006 2 | זכור, שינוי המימדים הלוגיים של חלון אינו גורס לשינוי גודלו הפיסי על המסך בפעולה זו אתה פשוט מגדיר את גודל החלון במונחים של היחידות הלוגיות שבחרת. (למעשה, אתה מגדיר את היחס בין היחידות הלוגיות המשמשות את החלון, והיחידות. הפיסיות [פיקסלים] המשמשות את ההתקן). לדוגמה, אפשר להגדיר את מימדיו של חלון כ- ‏ 1004100, או 75%50. ההבדל הוא היחס בין יחידות לוגיות לפיסקלים בעת שתמונה מוצגת על המסך. כיצד להגדיר אזור תצוגה כפי שהכבר הוכרנו, אזור תצוגה טזספווסו) הוא אזור מוגדר בתוך חלון, המקבל פלט. תוכל להגדיר את מימדי אזור התצוגה באמצעות הפונקציה ()5015זסקוו6ו5, שהגדרתה הכללית היא: אא 36 0 0 5601 מססם /(2126 195128 ,מתש)אמל מב הפרמטר 66 מכיל את הידית להקשר ההתקן. הפרמטרים 49060 ו-99? מגדירים. ביחידות פיקסל את מימדי הציר האופקי והאנכי של אזור התצוגה. הפונקציה מחזירה ערך לא-אפס אם סיימה בהצלחה, וערך אפס אם לא. מימדיו הקודמים של אזור התצוגה מוחזרים במבנה 5126, שהפרמטר 525 מצביע עליו. אס 526 מכיל ערך 1שא, אצי התוכנית מתעלמת מהמימדים הקודמים. לפונקציה ()א5606/05 תהיה השפעה. רק כאשר מצב המיפוי הוא 16קסהדס15אה-1אוא, או 16ק80ד150 ואו תוכל לקבוע אזור התצוגה כל גודל הרצוי לך. כלומר, הא יכול להשתרע על כל שטח. החלון, או לתפוס רק חלק משטחו. עבור מצב המיפוי זאד ויוו, שהוא ברירת. המחדל, גודל אזור התצוגה וגודל החלון והים. הפלט ממופה באופן אוטומטי מהקשר ההתקן של החלון (ביחידות לוגיות) אל אזור התצוגה (פיקסלים), וקנה המידה משתנה בהתאם. לפיכך, על ידי שונוי מימדי % ו-+ של אזור התצוגה, למעשה אתה משנה גודל של כל תמונה שתוצג בתוך תחום זה. כך, שאם אתה מגדיל את מימדי אזור התצוגה, יגדל בהתאם גם תוכנו. לחילופין, אם תקטין את המימדים, יקטן בהתאם תוכנו של אזור התצוגה. דבר זה נראה בתוכנית. לדוגמה הבאה. פרק וז: עבודה בגרפיקה = 293 קביעת נקודת המוצא של אזור התצוגה לפי ברירת המחדל, נקודת המוצא של אזור התצוגה היא הנקודה 0,0 בחלון. אפשר לשנות אותה באמצעות הפונקציה ()5ףזסשזסקוא6ו50%, שהגדרתה היא ;(018099 לספס ,צ פה1 ,א שמ1 ,46 ספא) 5601000 מססם הידית של הקשר ההתקן מועברת בפרמטר 866. נקודת המוצא החדשה לאזור התצוגה, כשהוא נתון בפיקסלים, מועבר בפרמטרים +,א. המוצא הקודם מוחזר במבנה דא01ק, שהפרמטר פַז0/00: מצביע עליו. אם פרמטר זה מכיל ערך |טא, התוכנית מתעלמת מנקודת המוצא הקודמת. החלפת נקודת המוצא של אזור התצוגה לובשת אופי שונה כאשר מדובר בתמונות. המוצגות בחלון. תוכל לראות את השפעת הדבר בתוכנית לדוגמה המובאת כאן. תוכנית לדוגמה לקביעת מצב המיפוי התוכנית 601611 הבאה היא גירסה מורחבת של התוכנית הגרפית הקודמת, והיא כוללת הגדרת מצב המיפוי, מימדי החלון ומימדי אזור התצוגה. פלט לדוגמה מתוכנית זו מוצג בתרשים 11.3. התוכנית מגדירה מצב מיפוי 16ק0ד150א3, ואוא, קובעת את מימדי החלון ל- 200א200, ואת גודלו הראשוני של אזור התצוגה ל- 40%40. כשתריץ את התוכנית, כל פעם שתבחר באפשרות וח מתוך התפריט הראשי, יוגדל כל אחד מצירי אזור התצוגה בעשר יחידות, דבר שיגרוס להגדרת התמונה בתוך. החלון. בחירת האפשרות פס מתוך התפריט תגרום להזות נקודת המוצא של אזור התצוגה ב-50 פיקסלים, בכיוון ציר א, ובכיוון צור + <ה 0008ת91> 301086 3161086 >559188.3< 41001086 >55010.8< "מ 10009611" 4301886 ".5650566" 1006סה1 /* .8מהש:אם מעסמאסנט שמ: 8ת2 אסתגא ש: ,06סת הַה1קקגת סמל משם */ (132א) ‏ 4681868 415 מטתץ 2בונא 15 6ה4001 8 פפנתת 2באצא 15 6ת4001 0 (0%80000000 > ()ה16פעםע600) (נססם) 26 32אצז פד ע 15 40:18 6 (צא 15) !) (נססם) 66 32אנא 15 25באנאן 15 461106 ( 64 (‏ () 08 וט 6) אסאס 1) מעיע סנ פבמזן 15 55 ((325אצא 15)! 68 (סא 15)!) (מ0סם) - 5פאנק 15 שתנ4301 4 3231חווו ומבוא ל-ספו =סתמספת1 מהסעעמס // = קתפחדת מסנתדפאצה |( סאם1 *5פהתססותן לפא60 | 5186020195 מססם "ספתע9!" = שהפאקקהפפק1 1002998 5 78ק 11 11וצסמאס1ט" 102598 פסונתפפאצט (שסתפ4תסת 306 (שה41ת: 1 /* חַת1עספ ממקסטס 18סה */ ;[852]255 צמתם /* 10020108 שמפטמס מהמעצמם */ ;7-0 ,0- פתג /* פהס!פתסת1 ת50286 */ ;צאבה |אאה שג ,בסהגופחנת מסותצפנא | הנבעתגז צהפונמדעת פב ספ 101578 (ססה68פתנטם:קת 4 6 ו | פוא ו 10606 מ110810פקם הצממ ב(ף צב155חָטת // 8 ו ;מתתספתט 05 | אתתמםהא 05 = 8 /* מס1ששמנת 6ס4ה1א */ ק00צקםמא (ססהפמותו) ו ₪ 01 ₪ 0 /* בסהבופה1 18ת: 50 ש1בתגת /*‏ ;מסתםםפתדת = = פסתבספתדת סט ;( שממאקפת2פק1 ,ססהבמפהדת )10881000 0 /* 16ע59 00ש) */ הת 10 10 ו /* 1ע8 צספפגם *] ; (ב+אססווצוו ה0נסס) (מפטהפט) = במספף80%מעמת סט /* מחמה 1858ט א קסהגומקת52מ1 = במגאטהס2פם1 סט ו60ת1 */ קסהפאמקת2פמ1 = שהם201258%פם1 סט ( 95אצא 18 | 41 ( ( 06פ )8601466501095! ) 15 | פפמת )תצטם? ] ( ( 606 )8601866:01888 | 15 6186 ( תת | 20 פרק 11: עבודה בגרפיקה = 295 6 32371חאו ומבוא ל-ספו ב ,אס ,ב מב 5 1801ב סו 1521 ססר 85006 108501 סט .95 8אסה1ן עס? פממסה1ם 4068 // 0 2 - (55ה:סטוח)) 812005 = 005126 אסס ("םנתעפ" ,68ת8:פחדה. אפסא)ה1086160 = מפמ00נת אסס |( 86068 )860186650185988 תפגטם> 15 תג 95 פמסבה1א ע 681158 18 מסנססתגת גמד */ /* פטפנף 86פפשה סת5 מסע, 58008פשת ,הבפגתא אתתתקה ,ספמו עמצט (במות כומות | עבמ אסהמננתס צנטפמתנ ( הגפגפן עתתתק1 ספמ ספת הק ד טתדפעוונתק ;הנסה ,מפקאס1נטצת ,תסקפטנפת ,מסקהססעסה ,הפק0סהת אפ 262610 /* ש[שהגת 460166 [מטסעגט שמ5 שע0:ם */ ;סבתסת ססא 252610 /* מפתסום [בטספנט שמף בע0םם */ ;שגמת תנמא 2:2610 /* 41הגת תפטעם שמץ 55026 */ קמפטעמבנסת ,תפועמת מפטתמא 562610 07 = סע ,0 = 6%עם שה1 5:2610 ( מ )01 / 6 ( )00 = אמ תפצ מ5) 0662105ה506ע005 = צאמת /* 804108 ססגה) שעסתשה 16ע1םמקמ0ם ג בעמת */ (8) ₪60 = ספה 26500 = ס חס (צאגת ,אצבה ,ססמ) 80ה0861016810ה2045000 = שגפמ ( 0 016000 ; (מפטתם מעעאא) 0%8600%00[606ם (אפטתםא) = הפטעפה ( ג 0 01600 (289008% ,צאפה (אצה ,0 ,0 ,סהתסת)%נפוגק פרק 11: עבודה בגרפיקה = 297 8 32371חאו ומבוא ל-0פו פרק וז: עבודה בגרפיקה = 299 0 זקה2בחו/ו ומבוא ל-0=ו פרק 11: עבודה בגרפיקה 301 |02 קת2בח//ו ומבוא ל-80ו ,סנפ מאאא ) ווסעת אסממונתס ענטפפתת ה וט הבטבפאו החתפו (198580 שתפתס ב (85808שת) 160 6 ; (פטתת) מצ6? 0 0 886 (מ8פמפא) מפסא10 | 46 פא הסוס | | 80110 ; (מטח?) מעגסם, ו פע תרשים 11.3: פלט לדוגמה מתוכנית לקביעת מצב המיפוי, הגדלות ונקודות מוצא שונותת בפרק הבא נשוב לנושא הפקדים, ונתחיל בבדיקת הפקדים הנפוצים של חלונות א9. פרק 11: עבודה בגרפיקה = 1303 וק 12 פקדים משותפים בפרק זה יוצג אחד הרכיבים המלהיבים ביותר של חלונות 9%: פקדים משותפים (פוסחס0 חסוחוחסס). בפרקים הקודמים למדת אודות הפקדים התקניים שנתמכים עלל ידי חלונות 9% וגרסאות מוקדמות יותר של חלונות. הפקדים החדשים משפרים מאוד את ממשקי היישומים השונים מבחינה תפקודית וחוותית כאחד. הם משלימים את הפקדים התקניים ומקנים למחשב גמישות ויתר עוצמה. בעורתם נראה היישום כאילו "ינתפריי במיוחד לצרכיךך הטבלה הבאה מתארת את הפקדיס המשותפים בהם תומכת חלונות אפ. טבלה 12.1: תיאור הפקדים המשותפיט בהס תומכת חלונות אפ. פקד תיאור תיבות גרירת רשימות = | תיבת רשימה שמאפשרת גרירה של פריטים. פקדי כותרת. כותרות טורים. פקדי "מקשים חמיסי = | תומכים במקשים חמיס (קיצורי דרך) שיוצר המשתמש. רשימות של תמונות. רשימה של תמונות גרפיות. פקדי תצוגת רשימות = | רשימת סמלים וטבלאות. סרגלי מצב. אמצעים חזותיים לציון מצב השלמת המשימה. גליונות תכונותת תיבת דו-שיח של תכונות. פקדי עריכה מתקדמים | תיבת עריכה מתוחכמת. חלונות סטטוס. סרגל המציג מידע שקשור ליישום. פקדי כרטיסיה תפריט מבוסס-כרטיסיה (דומה ללשוניות של תיקיות. קבצים) סרגלי כלים. תפריט מבוסס על גרפיקה. 4 321חווו ומבוא ל-ספו פקד תיאור תווית הלחצן תיבות טקסט זעירות שנפרשות במקום בו מוצב הסמן. מיועדות בדרך כלל לתיאור לחצנים בסרגל הכלים. סרגלי עקיבה פקדים שמבוססים על וחלן (מזכירים פס גלילה, אך דומים לפקד העוצמה של מערכת סטריאו). פקדי תצוגת ע' תצוגה במבנה של עץ. פקדי למעלה/למטה. חיצים בכיוון מעלה ומטה. כשהם קשורים לתיבת ו עריכה הם נקראים פקדי חוקף. פקדים אלה נקראים פקדים משותפים (ט0זוחס חסוחוז0ס), מכיוןך שהם מייצגים. קבוצה גדולה שמנוצלת על ידי מספר גדול של יישומים. בוודאי פגשת בפקדים אלה אור בחלקם במהלך עבודתך בחלונות. פרק זה עוסק בתיאוריה וביישוס של פקדים משותפים בתוכניות. בנוסף הוא מטפל בסרגלי כלים ובתוויות הלחצן (בהמשך נעסוק בפקדים משותפים נוספים) 1 הכללה ואתחול של פקדים משותפים בטרם תוכל להשתמש בפקדים המשותפים, עליך לכלול בתוכנית את קוב הכותר התקני חזוסוווזס6. בנוסף, עליך לוודא שספריית הפקדים המשותפים מקושרת אל התוכנית שלך (בעת כתיבת הספר, ספרייה וו נקראה 00/01/32.18, אך מומל שתעיין בתיעוד של המהדר שברשותך). יישומים העושים שימוש בפקד משותף אחד או יותר, חייבים לקרוא תחילה לפונקציה. ()וסחססחסוחוחס0כ6וח .1‏ פונקציה. וו מבטיחה את טעינת ספריית .גוס של הפקדים המשותפים מהדיסק, ואת אתחול תת-מערכת הפקדים המשותפים. להלן משפט ההגדרה לפונקציה (001) 01 00 מס 284 1 המקום המתאים להצבת הקריאה לפונקציה זו הוא אחרי המחלקה של החלון הראשי בתוכנית. פקדים משותפים הם חלונות בטרם תמשיך, חשוב להבין שכל הפקדים המשותפים הס חלונות-בנים. יוצרים אותם. באחת משלוש הדרכים הבאות: על ידי קריאה לפונקציה ()אוס6חו/9%ו3סזס, על ידר קריאה לפונקציה ()00005ו//0/6309, או על ידי קריאה לפונקציית ממשק תכנות יישומים (לא) ייחודית לפקד (הפונקציה ()אַאס6חו/6:6316 מאפשרת לציין מאפיונר סגנון רבים). פקדים משותפים הם למעשה חלונות, לכן ניתן לנהל אותם באופן דומ לוה של חלונות אחרים בתוכנית. פרק 12: פקדים משותפים ‏ 305 פקדים משותפים רבים שולחים לתוכנית הודעות מסוג סאהואואסש שא אר אזדסא ואו כשהמשתמש מפעיל אותם. במקרים רבים מגיבה התוכנית על ודי הודעת פקודה באמצעות פונקציית 1 שנקראת ()5606/%655309. להלן ההגדרה לפונקציה זור ,0 פאנצט ,תוומ סא8) 60685896מ50 צמטפמתג (מ1858 מנפתק1 ,ה8פמקש ממהתתקה במקרה זה, שחאווח היא ידית הפקד, ויו היא ההודעה שברצונך לשלוח אל הפקד, והפרמטרים וחפזגלאו ו-וחפּזהק! מכילים מידע נוסף שקשור להודעה. הפונקציה מחזירה. תגובה מהפקד, אם יש כזו. סרגל הכלים הפקד המשותף הנפו ביותר הוא סרגל הכלים (00031). רכיב וה הוא במהותו תפריט. גרפי שאפשרויות הבחירה שלו מיוצגות על ידי סמלים בצורת לחצנים. לעיתים קרובות. מתלווה לסרגל הכלים תפריט תקני המהווה אמצעי חלופי להפעלת אפשרויות שונות. ליצירת סרגל כלים, הפעל את הפונקציה ()0315ו016319100, לפי דוגמה זר סתסא ,456/16 מתסוום ,טמא כאחחת) םעפמ 001ד68)0צס פוחו 6פמתת מסותלפוד ,פתסם:טפתטת פמ1 ספטמ פע ,תנקתה סתסט 0 טפתותת פח+ ,1006 אהס6סטם 5ה1 ,מ186אה60סטם שח+ ספוא %ח1 ,ת66נאקא שחג (5596 צמוצט במקרה זה, חח היא היידית של חלון האב שסרגל הכלים שייך לו. הסגנון של סרגל הכלים מועבר באמצעות 6%56/86. סגנון סרגל הכלים חייב לכלול את. 0 5+ ויש אפשרות שיכלול גם סגנונות כגון 808058 5/צ או 151815 א קיימים שני סגנונות ייחודייס לסרגל כלים שתוכל לכלול. הסגנון 101195 =/דפמד למשל, מאפשר להציג תוויות לחצן לרכיבי ההפעלה השונים (בהמשך הפרק נרחיב בנושא התוויות). הסגנון > וקו 785/15 מאפשר להציג סרגל כלים ארוך. הפרמטר 10 מעביר את המזהה 1600086 שקשור לסרגל הכלים. הפרמטר טוט מעביר את מספר הלחצנים שבסרגל הכלים. הפרמטר זז מעביר את. ידית המופע של היישום. הפרמטר 8710 מעביר את המוהה של משאב מפת-הסיביות. שיוצרת את סרגל הכלים. פחסזוט8 מצביע אל המבנים (69ז60ט50) של המערך דד880ד, שאליו מועברים נתוני הלחצנים. פחסשטפוחטא מציין את מספר הלחצנים שבסרגל הכלים. 8 מכיל. את הרוחב של הלחצן, ו-וחסשאחסטט8 מכיל את גובהו. חוטווקוא מכיל את רוחב הסמל של הלחצן, ו-וחסאקו8 מכיל את גובהו. אס משתני הרוחב והגובה של הלחצן מכילים את הערך 0, התוכנית תתאים בעצמה את מימדי הלחצן לגודל מפת-הסיביות. הנתונה. 5056 מכיל את גודל המבנה של אסדטפד. 6 כו ומבוא ל-ספו הפונקציה מחזירה ידית לחלון של סרגל הכלים. לכל לחצן קשור מבנה אסדדטפפד אשר מגדיר את תכונותיו השונות. להלן המבנה אסדדטפפד | אסצצטמטע 565006 6465מעט 110 486 1 + מצצם 1 מצצם פא פהסאום 15 פח4 סט ממ [ קסזו8: מכילל את האינדקס של תמונת מפת-הסיביות של הלחצן. האינדקס של הלחצנים מתחיל ב-0, והם מוצגים משמאל לימין הפקודה הקשורה ללחצן נמצאת ב-6חפוחוח600ו. הלחיצה על הלחצן יוצרת הודעת. סאאויוויוסס ו אשר נשלחת אל חלון האב. הערך המספרי של 806וחוח000 נשמר בחלק הנמוך של המילה וזאי המשתנה 8550306 מכיל את המצב ההתחלתי של הלחצן. הוא יכול להיות אחד, או יותר. מהערכים שמציגה הטבלה הבאה. טבלה 12.2: הערכים של המשתנה 550366 מצב משמעות 0116050 פדאד85ד | לחצן לחו. ₪ ופאש דהד5פד | לחצן פעיל. אפספזו 185116 | לחצן מוסתר ובלתי פעיל. שדהאזואהמדטסא פדד85ד | לחצן אפור ובלתי פעיל. 851108855606ד | לחצן לחו. קההא מדאד5פד | הלחצנים הבאים נמצאים בשורה חדשה. פרק 12: פקדים משותפים | 307 המשתנה 56/5 מכיל את סגנון הלחצן, ויכול לקבל צירוף חוקי כלשהו מתוך רשימת. הערכים הבאים. טבלה 12.3+ הערכים של המשתנה 55/6 סגנון משמעות אסדדטם ם ודספד | לחצן תקני = .יד85ד | הלחצן מחליף את מצבו ממסומן ללא-מסומן. ולהיפך, בכל פעם שלוחצים עליו 0880668000 = דד | לחצן סימון שהוא חלק מקבוצה בלעדית. טס וו ק680 = ידפפד | לחצן תקני שהוא חלק מקבוצה בלעדית. 56 6/ד95ד | מפריד לחצנים (בסגנון שחפוחוח600! חייב לקבל. את הערך 0 שים לב לסגנון 56 85115ד. סגנון וה משמש לקביעת מרווח בין לחצנים בסרגלל הכלים, ומאפשר להפריד את הלחצנים לקבוצות. השדה 6030 מכיל נתונים המוגדרים על ידי המשתמש. השדה פַו0פ! הואא אינדקס. המחרוות הקשורה ללחצן. אם איין ברצונך להשתמש בו, קבע לו את הערך 0. תצורת המחדל של סרגלי הכלים מאפשרת להם לפעול באופן אוטומטי לחלוטין ללא כל צורך בהתערבות מצד התוכנית. יחד עם ואת, ניתן לטפל בהם ידנית באמצעות. שיגור הודעות בקרה (16553065! וסחס0ס) מפורשות בעזרת הפונקציה ()5001655906. להלן שלוש הודעות שכיחות. טבלה 12.6: הודעות בקרת (16553065! (סעוחמ) הודעה אסדד 06008 8ד אסדדטפם ₪81 8ד אסדדטפסזוו 8ד 8 3271חווו ומבוא ל-ספו משמעות. לחיצה או מחיקה של לחצן. וחפזפל/ו חייב להכיל את. מספר הציהוי של הלחצן. וחפזהקו יקבל ערך שונה מ-0. עבור לחיצה, או 0 במקרה של מחיקת לחצן. קביעת מצב הפעילות של הלחצן. וחפזס/ו חייב להכול. את מספר הציהוי של הלחצן. וזזקו יקבל ערך שונה. מ-0 להפעלת הלחצן, או 0 לביטול הפעלתו. הצגה או הסתרה של לחצן. וחפזלוו חייב להכיל את. מספר הזיהוי של הלחצן. וחּזק! יקבל ערך שונה מ-0. להסתרת הלחצן, או 0 להצגתו. סרגלי הכלים גם מסוגלים ליצור הודעות שתפקידן להסב את תשומת ליבה של התוכנית לפעולות שונות הקשורות בסרגל הכלים. אם סרגל הכלים פשוט, אין צורךך להתייחס להודעות אלו (כל ההודעות מסוג וה מתחילות במחרוות -א18, ניתן ללמודד עליהן באמצעות קובץ הכותר ת.אשוחוחסס, או מתוך תיעוד ספריית ממשק תכנות היושומים, ז0א), יצירת מפת-סיביות של סרגל כלים כדי להשתמש בסרגל הכלים עליך ליצור תחילה את התמונות הגרפיות שמכילים. הלחצנים, בעזרת עורך הדמות. תהליך יצירת הגרפיקה של הלחצן דומה ליצירת סמל בודד. עם ואת, יש להביא בחשבון נקודה חשובה: קיימת רק מפת-סיביות אחת שקשורה לסרגל הכלים, ועליה להכיל את כל דמויות הלחצנים. מכאן, אס סרגל הכלים מכיל שישה לחצנים, אצי מפת-הסיביות שלו חייבת להגדיר שש דמויות. לדוגמה, מפת-הסיביות של סרגל כלים שמכיל שישה לחצנים שכל אחד מהם בגודל. 6 סיביות, תהיה בגובה של 16 סיביות ובאורך של 96 סיביות (6416). סרגלי הכלים המוצגים בפרק זה כוללים שש דמויות, כל אחת בגודל 1615 סיביות. כלומר, יהיה עליך ליצור מפת-סיביות בגודל 1696 סיביות. תרשים 12.1 מראה כוצד מציג עורך הדמויות את מפת-הסיביות שיוצרת תוכנית ההדגמה שמובאת בפרק זה סרגל הכלים ישמש כתפריט חלופי עבור תוכנית הגרפיקה המופועה בפרק 11. שמור את מפת-הסיביות בקובץ בשם קוו8. 88 ו100. הוה ושע 8 [ א תרשים 12.1: מפת-הסיביות של סרגל הכלים במצב עריכה. פרק 12: פקדים משותפים ‏ 309 תוכנית לדוגמה של סרגל כלים פשוט התוכנית 016001412 הבאה (נמצאת בתקליטור 12ַספאו03012) מוסיפה סרגל. כלים לתוכנית הגרפיקה שבפרק 11. סרגל הכלים מכפיל את אפשרויות התפריט, ומאפשר להציג שורות, מרובעים ואליפסות. ניתן גם להזיו את ראשית הצירים, להגדיל את התמונה ולהציג תפריט עזרה. להלן התוכנית של סרגל הכלים. 0 106 < 1 > 1006סה1 <.565188> 166סה1 <.56810> 166סה1) "ת.12טעסקאם1/" שבטבסה1 ".2050208" 01006ה /+ .פטת8סאם מעסמאש1ט שמ 884 אסמת1א שמ) ,סה בהנמפפה שמף 68פ */ (132א) 46110680 48 מטפץ 32אצא 15 4867106 8 פפנתף 32אדא 15 שת44671 0 (0%80000000 > ()99100ם660) (001ם) 66 32אתאן ד פוה 15 367106 6 א 15) !) (001ם)- 66 2באנא 18 25באצא 15 4069186 ((4> ( (() 655108 65) פהסאס1) צעמ ) 2באתאו 15 66 ((325אדא 15)! 66 (מא 18)!) (מססם) = 5פאצא 15 שה%8671 310 065ת68פה) ממסעצטם //‏ ;פפחדת מסאתת5) ( סאם1 *5פהתסטוהו 8)א0 | 0186020195 מססם ( 1016001085 18 ;"ססתעפו" = בהפוקקתפפק1 תפפסק1 2" 012מ0גט פרק 12" 1529161 8שפפסט1 /* פחַת1ע0פ ממוקסטס 18סה */ ;[255] 862 צבתם /* 10080108 מטקטוס מהמצצטם */ 7-00 ,0-א פהג /* פמס!פהסת1ם ה0286ב */ ;צצבת ,לאה פתג ממ פוחו [5 סנ ןתטא!] ‏ סש שגומ אספייטם עד קת32ח/ו ומבוא ל-0פו פרק 12: פקדים משותפים ‏ 311 2 סלאו ומבוא ל-ספו 0001<-0אפ1 = 4>מא0150טם, אסס 10-00 = בעסאמבה0פם אססט 06ה2ספהזת<-0אק1 = בסהב)פחזת אססט = סו 0 ת<-0א1 = 100 אס 186-540 = 5046%950088טת, אססר הק 1<-סש1 = שחבאנוה5200ק1, אססר ;2018550886פק1<-6שק1 = 6ה5201458%4ק1 אמסא .95 8088ה1ן עס? פממסה10ם 54068 // / : 0 (59ה:סטוח)) 512005 = 5126טס אסס ;("תנתעם" ,פסה8םפחדה. אפסא)ה1086160 = מפת00ס1ת אסס |( 66068 )8ם8601866201859 תפטם> 15 תג 95 פשסבה1א עע 681158 18 מס1טסתגת גמד */ /*. פטפטף 80פפשת סת5 הסע: 8068פמת הצקא אתתתפה ,ספפגו פמדט ,במות כומוט | 0ספפבחח אסהמננתס נטפטתת ( הגפגפ1 עתתתק1 ספ ספ ד טתעפעוותק ;הנס ,תשמאס1נסעמ ,מסקפטנפת ,הסקמססעסת ,הסמטסהת אמק 10סבמט /* שנשמגת 460108 [מטטעגט סמש 6ע0:ם */ סבתסת ספא 56261 /* מפתפגם [הטסענט שמ: 6026פ */ ;שגמם קמותנמא 202616 /* ב[4הגת תפטעם שמ 55026 */ קמפמעמבנסת ,מפועמת אפטתמא 512610 07 = לַע ,0 = 6%עם שה1 262616 ( ו )1 4 0 6 ( )60 = אמ תפצ 5) 2105 0595068066 = צאמת /* 809108 ססגה1 עעכתפה 10מ1סבקמסם ב בלמת */ 8 660 = ספה 0 026 = חס פרק 12: פקדים משותפים | 313 4 הלבחו ומבוא ל-ספו פרק 12: פקדים משותפים ‏ 315 6 7א32חאו ומבוא ל-ספו פרק 12: פקדים משותפים 317 8 3271חאו ומבוא ל-0פו פרק 12: פקדים משותפים ‏ 319 0 32371חאו ומבוא ל-0פו רוב הקוד בתוכנית אינו דורש הסבר נוסף. נתאר אותו בקצרה (וכור, כל שורות הקודד שאינן מתייחסות לסרגל הכלים, הוסברו בפרק 11). נתוני סרגל הכלים שמורים במערך 5חטוש8פ). הפונקציה ()6100/831וח1 מאתחלת את המערך. שים לב שהמבנים החמישי והשביעי במערך הם למעשה, מפריד לחצנים. הפונקציה ()חוג!וחוו קוראת. לפונקציה ()ו0ח0סחסוחוח660וח1. לאחר מכן, נוצר סרגל הכלים וידית משוייכת ל-0חאפו. כל אחד מלחצני סרגל הכלים מקביל לאפשרות בחירה בתפריט הראשי. ליתר דיוק, כלל לחצן (למעט המפריד) קשור אל מספר מזהה (פ1) בתפריט. כשלוחצים על לחצן כלשהו, המספר המוהה הקשור אליו נשלח אל התוכנית כחלק מהודעת ‏ 00 יוא כאילו בחרו באפשרות התפריט המקבילה. למעשה, אותו משפט 6356 מטפל בלחיצות. הלחצנים ובבחירה מתוך התפריט. סרגל הכלים הוא חלון, ולכן ניתן להציגו, או להסתירו ככל חלון אחר באמצעות הפונקציה ()60%חו/00ח5. להסתרת החלון, בחר באפשרות ‏ 66וובתוך. זפטוסטד (הסתר סרגל כלים) בתפריט אוו (אפשרויות). להצגתו מחדש, בחר אסחפ ‏ בתוך זגטפסד (הצג ססרגל כלים). מאחר שסרגל הכלים חופף חלקית את אזור הלקוח בחלון. הראשי, עליך לאפשר למשתמש להסיר את סרגל הכלים אם אין צורך בו. ניתן לראות. בתוכנית שפשוט מאוד לעשות זאת. ראוי לציון נקודה נוספת בתוכנית. שים לב לקוד המופוע תחת המשפט 6356 דטספא, אפ1. כשבוחרים וספ (עורה, באמצעות התפריט הראשי, או בלחיצה על לחצן ק|6), נשלחת ההודעה אסדדט8א0/180 .8 וגורמת ללחיצת הלחצן וז שבסרגל. הכלים. לאחר שהמשתמש טוגר את תיבת ההודעה 60 חוזר הלחצן באופן ידני. מנגנון זה מאפשר ללחצן להישאר במצב לחוץ, כל עוד מוצגת תיבת ההודעה קפא כך. הדגמנו כיצד ניתן לטפל בסרגל הכלים באופן ידני במסגרת התוכנית. תרשים 12.2 מציג פלט לדוגמה של תוכנית סרגל הכלים. 0 ו םאט תוס וש מ | - ומ תרשים 12.2 ולט לדוגמה של תוכנית טרגל הכלים. פרק 12: פקדים משותפום ‏ 321 הוספת תוויות לחצן בוודאי הבחנת שחלונות 9% מציגה על המסך חלונות טקסט זעירים כשסמן העכבר שוהה על גבי סרגל הכלים במשך שנייה בקירוב. חלונות אלה נקראים תוויות לחצן (פקטוססד). תוויות הלחצן אינן חיוניות לפעולתו, אך יש לכלול אותן ברוב סרגלי הכלים, מכיון שהמשתמש מצפה לראות אותן. בקטע זה נוסיף תוויות לחצן לסרגל. הכלים. כדי להוסיף תוויות לחצן לסרגל הכלים, עליך לכלול תחילה את הסגנון 005 דד בעת יצירת הסרגל. סגנון זה מאפשר שיגור הודעות אנדס ואר כשהסמן שוהה מעל לחצן כלשהו במשך שניוה בקירוב. עם קבלת הודעת זהנדסא א/וו, יצביע וחפזפקו אל מבנה דאפדק1ד001ד, המוגדר באופן הבא: 5 [ ות האור 1 תתקב [80] 599686 טבמ פסונתלפוונ 15פט פאצט 1 הסט [ האיבר (ז6פוח6!!) הראשון של דאפדק1דו00ד הוא המבנה 8פו!ו', המוגדר כך. 565006 6465פעט [ /* בסצמתסם 08 418מה */ קהסעת4תאת סאמ /* מז 1מעמתסם */ /מ0עק18 מאצט /* 006 ה1116610מסת */ 20867 פאצט ;תסו ן כשמגיעה דרישה להצגת תווית לחצן, 6066 יכיל את זאפדספפא אד ו-6500 וביל. את המספר המוהה (10) של הלחצן הנדון. קיימות שלוש דרכים להצגת תווית הלחצן המבוקשת; ניתן להעתיק את הטקסט של התווית אל המערך ‏ 86זא9 של זאשזק1דו00ד, להצביע אל הטקסט בעורת :216%פק!, או לספק את המספר המזהה של משאב המחרוזת. כשבוחרים באפשרות משאב המחרוות, א26ק! מקבל את המספר המוהה של המחרוות ו-ופחוח חייבת להיות הידית של משאב המחרוות. הדרך הקלה ביותר היא להצביע בעזרת זאטז;פק! אל מחרוות שמספקת התוכנית. לדוגמה, משפט 6 הבא מגיב לבקשה של תווית לחצן בתוכנית הגרפיקה. 2 כו ומבוא ל-ספו /* םע מ500151 0 בהסספם: */ 194580 (47פצט10100101) = מאשמעם (צאממסמפון אע == 0086.ע08<-56%1ע1) 18 (608ע18, ש₪ם<- 966 160 5 856 1 נ"68ת11" = 6א8296ם1<-מאמשעעי וע תע ספת 100 856 : ;"806168 טסה" = 8270%6כ1<- :אמ אמצ פפד מס 100% 856 "21110865" = 5א6ל42ם1<-0א66עצ הפצ 1 /"050 שמהגתס" = 5296%5ם1<-:4לד 8%פצ 1 18 886 "8186 088" = 429686ם1<-מאש6עעי 8%שצ (%מסעם לאחר שנבחר הטקסט המתאים והשליטה חורה למערכת ההפעלה, תוצג תווית הלחצן באופן אוטומטי. אין התוכנית צריכה לבצע פעולה נוספת כלשהי. כפי שנוכחת לדעת, השימוש בתוויות הלחצן הוא אוטומטי ופשוט מאוד להוסיפן ליישומים. תוכנית סרגל הכלים בשלמותה, כולל תוויות לחצן לפניך תוכנית סרגל הכלים ₪ -12זזסקאוטוט בשלמותה, כולל תוויות לחצן. גירסה זר מנצלת את קובץ המשאבים וקובץ הכותר ששימשו את הגירסה הקודמת. התוכנית. נקראת 0 12מזסטוושו והיא נמצאת בתקליטור 5 12אזסקאושש12ק6. תרשים 12.3 מציג פלט דוגמה של התוכנית. 1008 < 91 > 106סה1 <565180.3> 01066ה1 <56810.5> 166סה1 "ה.ם 12פעסמאם1ע" בהטבסה41 ".2650268" 1006סה1 פרק 12: פקדים משותפום ‏ 323 /* .פפתסמאם מעסקאםנט שמ: 4ת2 אסתנא ש) ,סת הַהנקקגה שמש 6%ם */ (1832א) 46018680 418 מטהד 32זאן 19 4401106 8 מפתתס 32נן 15 4401106 3 (0%80000000 > ()מ10פעםע600) (נססם) 26 2באצת פד תא 15 40:10 6 (צא 15) !) (001פ)/ 66 2באנא 15 325אצא 15 שה40661 ( (4> (() 65508 0) הסוס ) 20 2 15 56 ((25באצא 15)! 66 (פא 18)!) (נססם) ‏ 95אצא 15 בה40681 =סתמספה1 מהסעעמם // = קמפחדת מסאתדפאצת ( 6אם1 *5פהןסטוחן 7פאא0 | 0186020195 מססם 2 ( 1016200185 18 "ממתעון" = בהפאמקת2פק1 תעפפסק1 8ש1מ01סם מט1א 12מעסמא0גט פרק 12" 52101 8עפפסקב /* 10020108 שמקטטס מהשעצמס */ 7-02 ,0- פתג /* פהס!פתסת01 ה50266 */ ;לצבה ,לאה שג ממ פאחו ; וסינ מוזטו!] 8 מסמטגופמ>. אספיטם מע פסוותדפאונ ,בסהבופהנת מסותצפַנא ) תןבעתגח צהפנמנעת 5ב 16 ,8ת651ה0ק1 תל5לק1 ,ססהגופה1שםצקת 0 |[ פה 6 ו | פע 55 נספו? .01858 606ה₪1 מ1108610מקם הצממ ש(ף צב5פ1חָסת // - ;אתהספחט 05 | התתסטתם פס 8 /* מס1ששחנת 6ס8ה1א */ ק00צקםתא (ססהפפותו) ו = 00א0180מ0 סט = 8ש6אש4ת0מ0. 0 /* בסתבופה1 18ת: 0 15התגת /*‏ ;מסתם6פתדת = | פסתבספתדת סט 4 לכהו ומבוא ל-ספו פרק 12: פקדים משותפים ‏ 325 6 ה32חו ומבוא ל-ספו 15 תג 95 פשסבה1א ענ 081158 18 מסנססתםת גמד */ /*. פטפמף 86פפשה סת5 מסע: 58068פשת הבפגתא אתתתפה ,ספמ עתצט (4מות סומוה ) 00פפבחח אסהמננתס נטפמתנ ( הבטגפ1 עתתתק1 פמ ספ סע אפ 1 סספקת ד טהץפעוותק ,0068ס3+611 ,תשקשטנם( ,מ6קה0566( ,השמטשאת אפפא 568610 0 /* שנשהגת 460166 1פטסעגט שמ5 6ע0:ם */ קסבתסת ססא 25261 /* מפתסום [בטספנט שמ: 0026 */ ;שגמת פמותזמא 2:2:16 /* ב[4הגת תפטעם שמ) 55026 */ קמפטעמבנסת ,מפועמת אפטתמא 512610 07 = צפעס ,0 = 6%עם מה1 262616 ( פַפ )1 [ תפ 0 858 ( ו )00556 = אמ 0 )6105 ה5ע05 0 = לקמה /* 809108 סִסגה1 עעסתשה 10ע1סבקתסם ג בלמת */ (8ו) ₪60 = ספה 268000 = ס חס (צאגת ,אצבה ,ססמ) 80ה0861016810ה2045000 = שגפמ (18 ,₪46שה) 1605003668 ; (מפטתם מצעאא) 6%5600%00[666ם (אפטהטא) = הפטעפה (מגעם ,)1605003665 (289008% ,אבה ,הצפה ,0 ,0 ,סבתשת)16פוגק (((68)55,100,80ת ,1 ,50015 פק)מסקם"סעם = ה6ק0שחה ;((8)0,255,0ת ,2 ,50210 0268)25:בשעם = תסקהטשעמה ;((968)0,0,255 ,3 ,50119 5ק)ת0246096 = מסקסטנמה ;((0 ,255 ,255)מת ,4 ,דם50 5ת)ה08:20עס = השקש110צה /* תשק 8558016 שמש *] (ה8606ו ,66ח6ה) 8616060060 (אפפא) = משקטבסת 01 01000 פרק 12: פקדים משותפים | 327 8 32371חאו ומבוא ל-0פו פרק 12: פקדים משותפים 329 0 זקת2בח/ו ומבוא ל-60ו פרק 12: פקדים משותפים ‏ 331 + צטספה 10% 486 /*208860ק 88 מספסטם עוסמם אסמם */ תק 1) ,אסאס מע ,האס ) 58806 (1 (מאהתקא) ,צטסמה סד ,"אסמ6טסמה" ,6פה1ם | א0פף10ה1ם ( גוסה (00פ10ם) /* הססומכ מנשג פמ) 6שפשח */ וס 6586 (06 פוא ודטספת סד ה [שפט א 108 486 ( 8 6 0 1 וצ /* 26086 מת1גקסת ב 06685עם */ נעאדתק ומן ספמ /* 6ם 668 */ ;(ססטעץפםה1גם2 ,6תאת) מת1גפה1סם = ספת /* 46608 מעסאט1ט 84ב 806ה1 ,במסה הַהנמקגת 50% */ ונת וע ו ; נממטא ,200 ,200 טא ,ל 0 0 6 נטות ,00 ,פע )001 /* מ66עספ סמתס בהַגה1 עעסחסה עמסס ואסה */ ;(צ580009 ,0 ,0 ,66תשח ,צאפה ,אאת ,0 ,0 ,סעמ)6נמוגם /* ספ 18886שע */ ;(ססמעם58ת81ק2 ,במות) מת1בקבתם %צ + צסמצפפם 06 856 (מקמשתה) 808 61650001 10 (מ6ט81) 80% 0001 610% ( 10 1 )808 61050003 /* 860105 עעסתסת סמ5 8816%6 */ <; (ס4הפה) 00ט1סם (0 0 %צ 616 ;( ( מבצגק1 ,תבנהקא ,הפמו ,המאת ) 00שק40ת0001ם | תעמ ם? 0 2 זא2בחווו ומבוא ל-ספו פרק 12: פקדים משותפים ‏ 333 114 ?2 = 080ש181 [2]שה0םםממם ו /5פפפנמתם עת1 = 6מ8מת1800 [2]שה0םמממם ,ממתפתום מפתל85? = 1830266 [2]שהסםםמממו ;וסצצטם ממצל5פץ = 183616 [2]שמס>םמממם = 460868 [2] 608 :מממ ף ;0 = הַת3ע155 [2]שמס6םמממם /* ע0מבעג00פ הסססטמ *] ;0 = 080ז181 [3]שה0םםממם ו / = 0888ת1400 [3] פה0םםמממף ,ממתפתום מפתלפםץ = 1830260 [3]שהסםממםף ;פמ ממצע85ת = 1856/16 [3]שהסםםמממף = 6868 [8]3ה60םטמםף ;0 = אַת1ע155 [3]פתס6םטממף ;3 = 080ש181 [4]פת60םממםף /128פ עפז = 4מ88ת1800. [4]פה0ממממף ,ממתפתום מפתלפמץ = 1830266 [4]פהסםםמממו ;וסמדטם ממצלפפץ = 183616 [4]שהס6םמממף = 88868 [8]4ה0)םטמםף ;0 = אַת1ע155 [4]פתס>םמממף ;4 = 1810080 [5]פתסםממםף ;08 עפ = 888ת1800. [5] פהסםמממם ,ממתפתום מפתלפםץ = 1830266 [5]פהס>םמממף ;וסידטם ממצלפפת = 183616 [5]שהס>םמממף = 868פא8. [5]פה60םטמם 3 ;0 = אַת1ע155 [5]פתס>םטממם = 080ז181 [6]פהס6םמממם / = 140080884 [6] פה0םםמממם ;ממתפתום מעתלפהץ = 1850266 [6]שה0)ממממו ;פמ ממעלפהץ = 1856/16 [6]שהס)ממממם = 82868 [8]6מ0)םמממם ;0 = הַת1ע155 [6]שתס>םמממף 5 = 088ז181 [7]שה60םמממם ;צטסמג עפז = 14000888 [7]שת60םטממם ;מממפתום מפתלפמץ = 1830266 [7]שה0ממממו ת32ח/וו ומבוא ל-0פו ;ווסצצטם ממעעפמץ = 1826/16 [8]7ה60ממטמף 0 = ב6מסא8. [5]7ה60םטממף = 1859186 [8]7ה60םטממף ₪ 0 קל ומהומהוסטאהם אפ שנמם, ואום ומר אם, ו 3 תרשים 312.3 לט דוגמה של תוכנית סרגל הכלים בשלמותה, כולל תוויות הלחצ בפרק הבא תמשיך לחקור את הפקדים המשותפים, פקדי מעלה-מטה (שנקראים ג פקדי חוק5), פסי עקיבה (5וג8 1136%) ופי התקדמות (8315 הק פרק 12: פקדים משותפים ‏ 335 פיק 13 פקדים משותפים נוספים בפרק וה תמשיך לסקור את הפקדים המשותפים של חלונות א9. כאשר תתמקד בפקד מעלה-מטה (חוסס-ק0), פס העקיבה (ז7136698) ופס ההתקדמות (ז83 סק 1 פסקדי מעלה-מטה אחד הפקדים השימושיים ביותר הוא פקד מעלה-מטה ((סשחס0 חווסס-ק0). פקד זה הוא, למעשה, פס גלילה (ז83 ו/50) ללא הפס! הוא מכיל רק את החיצים שבקצות פס. הגלילה, אך אינו מכיל את הפס שביניהם. בוודאי הבחנת כי קיימים יישומי חלונותת שפסי הגלילה שלהם קטנים ולמעשה, חסרי משמעות. קיימים גם מצבים שאינם מתאימים לעקרון של פס גלילה, אך מפיקים תועלת מהשימוש בחיצים. כדי לתת מענה למצביט כדוגמת אלה, יצרו מפתחי חלונות 9% את הפקד מעלה-מטה, הדומה מאוד לפס הגלילה. ניתן להפעיל פקד מעלה-מטה באחת משתי דרכים: כפס גלילה עצמאי, ובשילוב עם. פקד נוסף, שנקרא חלון חבר (ווסטחוו /8066). חלון החבר הנפוץ ביותר הוא תיבת עריכה (80% 56). במקרה זה, נוצר פקד חוספ (או זשחחופ). כשמשתמשים בפקד חוסף, המערכת מספקת את כל התקורה הדרושה לטיפול בפקד באופן אוטומטי, ולכן קל מאוד להוסיפו ליישומים. בפרק זה נציג שתי דוגמאות לפקדי מעלה-מטה. בדוגמה הראשונה ניצור פקד עצמאי, ואילו בשנייה נשלב את הפקד עם חלון חבר, כדי לקבל פקד חוקפ. להזכירך, פקד ח/קפ הוא למעשה, פקד מעלה-מטה מקושר לתיבת עריכה. יצירת פקד מעלה-מטה ליצירת פקד מעלה-מטה, הפעל את הפונקציה ()/0ח60חאו0סק003160. המתוארת. להלן ו 16 0 6ת1 0 46 סהסוופ) 01 תס הסט טטם+ה6צס. פוחו ,0 6ת1 ,6תמעגתת סוחות ,מא שב אגות שת1 ,קמטטפת קוחהו ,מפתדת מסַתצפאצ נ(50428208 שה1 (מגת ממ4 6 321חווו ומבוא ל-ספו כאן, הפרמטר 50/6 מציין את סגנון הפקד. פרמטר זה חייב להכיל את הסגנונותת מוזו פו, 15185 פא ו-8שסחס .פ/ו, ויכול להכיל גם סגנון אחד, או יותר מאלה המופיעים בטבלה 13.1. המשתנים א ו-ץ מעבירים את הקואורדינטות של הפונה השמאלית-עליונה של הפקד. שוש ו-וחִסטו מצלינים את רוחב הפקד וגבהר זחפזפקה מעביר את הידית של חלון האב. המספר המוהה הקשור לפקד מוגדר על ודי הפרמטר 19. חח מעביר את ידית המופע של היישום. 8066 מעביר את ידית החלון. החבר. אאם לא קיים חלון חבר, פרמטר זה חיייב לקבל ערך טא. טווח הפעולה של הפקד מועבר על ידי הפרמטרים 8%/) ו-חו/ו. אם אפו! קטן מ-חווא, הפקד ינוע בכיוון ההפוך. המיקוס ההתחלתי של הפקד (חייב להיות בתחום שהוגדר עבורו) מועבר על ידי 180905 הפונקציה מחזירה ידית אל הפקד. טבלה 13.1: הסגנונות של פקד מעלה-מטה. סגנון משמעות. א16\, פס | מיישר את הפקד לצידו השמאלי של החלון החבר. ד א16א. פס | מיישר את הפקד לצידו הימני של החלון החבר. 5פ)שסהאא 5 | מאפשר הפעלה של מקשי החיצים (כלומר, מאפשר להזיו את הפקד בעזרת מקשי החיצים). יססטפסדטא 5פט | החלון החבר הוא החלון הקודם בסדר החלונות. 2 5פט | פקד מעלה-מטה הוא אופקי (תצורת המחדל של פקדים אלה היא מאונכת). פפואפטסודסא 5סט | אין שימוש בפסיקי הפרדה בערכים גדולים (ישים לפקדי חוספ בלבד). דאז/יססטפד55 005 | מארגן אוטומטית את הטקסט בחלון החבר כשמשתנה. מיקום הפקד, מאפשר לחלון החבר להציג את המיקום. הנוכחי של הפקד. תאצ 005 | מיקום הפקד יחוור להתחלה בעת ניסיון להציזו מעבר לנקודת הסיום. פרק 13: פקדים משותפים נוספים ‏ 337 הודעות פקד מעלה-מטה כשלוחצים על אחד מחיצי הפקד, הוא שולח הודעת 90801 אוו אל חלון האב שלו. וחמזגק| יכיל את הידית של הפקד. הודעות 0568011 וא עשויות להישלח על ידי פקדים שונים, ולכן יש לבדוק אס ההודעה שב-וחפּזפק! נוצרה על ידי פקד מעלה-מטה. לקבלת המיקום החדש, שלח הודעת 651005 | אל הפקד (נייתן לשלוח את הודעות. הבקרה באמצעות ()596%655396). הפונקציה מחזירה את המיקום הנוכחי של הפקד. בנוסף להודעת 661905 0%%, פקדי מעלה-מטה מגיבים להודעות נוספות. טבלה 13.2 מציגה את ההודעות הנפוצות ביותר. לדוגמה, התוכנית יכולה לקבוע את מיקום הפקד בעורת הודעת 561005 וסט. טבלה 13.1: הודעות מעלה-מטה מקובלות. הודעה 338 6618 וסט וט וט 5 וסט וסט ד ופט משמעות. מקבלת את הידית של חלון החבר, שנמצאת בחלק הנמוך. במילה של הערך המוחזר. ב הק/ו הדא 0. ג הוא 0. מקבלת את המיקוס הנוכחי, שנמצא בחלק הנמוך במילה. של הערך המוחזר. וחב ב// הדא 0. ג הוא 0. מקבלת את התחום הנוכחי. הערך המקסימלי נמצא: בחלק הנמוך במילה של הערך המוחזר, והערך המינימלי נמצא בחלק הגבוה במילה של הערך המוחזר. ב בק// הדא 0. ג הוא ס. מגדירה חלון חבר חדש. מחזירה את הידית של החלון החבר הישן. חבז בקע הוא הידית של החלון החבר החדש. וק הוא 0 קובעת את המיקום נוכחי. חב בלו הוא 0. 3 173 הוא המיקום הנוכחי החדש. קובעת את התחום הנוכחי. וקו הווא 0 1331 הוא החלק הנמוך של המילה מכול את הערך. המקסימלי; החלק הגבוה של המילה מכיל את הערך. המינימלי. ת32ח/וו ומבוא ל-0פו הפעלת פקד מעלה מטה התוכנית חושספקט הבאה יוצרת פקד מעלה-מטה עצמאי בתוך תיבת דו-שיח. בדוגמה. זו הפקד אינו מקושר לחלון החבר. תחום הפקד הוא 0-100, ומיקומו ההתחלתי 50. כל. פעם שמשנים את מיקום הפקד (באמצעות לחיצה על החץ), מוצג המיקום החדש באזור הלקוח של תיבת הדו-שיח. התוכנית בשלמותה נמצאת בתקליטור חוססקט13קו) . (הבסיס לתוכנית זו היא 0 תיבת הדו-שיח בתוכנית מכילה את הפקד מעלה-מטה. תרשים 13.1 מציג דוגמת פלט. של התוכנית. הפקד נוצר כאשר מאתחלים את תיבת הדו-שיח באמצעות הקוד הבא: 8 0268 = 8 (מתמנפזט פא | תפפהסם בא | מתזאס פוף ,10 10 עגפת אסספט פד 6פמצת טר 50 ,0 ,100 עס 37 גלט של תוכנית הדוגמה הראשונה של פקד מעלה-מטה. פרק 13: פקדים משותפים נוספים ‏ 339 הקריאה לפונקציה ()סטחסחווססקטפו6/63 יוצרת פקד מעלה-מטה במיקום 10,10 בתוך תיבת הדו-שיח. גודל הפקד בפיקסלים הוא 50א50. הפקד הוא חלון-בן של תיבת. הדו-שיח, ולכן הידית שלה (6חו0) מועברת כידית אב. המספר המזהה של הפקד הוא: אעוססקט פ1. הדוגמה שלפנינו היא פשוטה ואינה וקוקה לערך זה, אך תוכניות אחרות עשויות להזדקק לו. וזו היא ידית המופע של התוכנית. הפרמטר החבר מקבל ערך 011 כיון שאין כאן שימוש בחלון חבר. תחום הפעולה של הפקד הוא 0 עדד 0, והמיקום ההתחלתי הוא 50. כל פעם שניגשים אל הפקד, נשלחת הודעת 058011 וז אל תיבת הדו-שיח. הקוד שמטפל בהודעה יוצג בהמשך. וחפזגלו מכיל את הידית של הפקד. הידית נבדקת ומוחזרת על ידי הפונקציה ()סטתסחווססק90ו63ז6, במטרה לוודא את והות הפקד שיצר את ההודעה. הדוגמה שלפנינו כוללת פקד אחד בלבד, ולכן הפעולה נראית. מיותרת. לעומת זאת, יישומים מעשיים עשויים להכיל פקדים רבים, שכל אחד מהם. מסוגל ליצור הודעה, ולכן עליך להקפיד לבדוק את והות הפקד. /* 01עתסס מ806-ט תב 06658עק ע1בפמהבת /*‏ :0/5001 אא 456 (חבשבק1 (סומומ) ==6תא8) 15 ((0 ,0 ,פספדמ6 מפט ,0708ט) 08555800ה56 = סקט ; ( (סקמט) ס8סו10 ("%0" ,65)52005562מ1צקפט ( גפ )8600 = ספמ ספ 0 " ,30 ,55 ,ספה)5ס6 אע ;((168)82005552עץפ ,42805562 ,30 ,55 ,ספמ)5טסמאמל (ספו ,6 נסמ) 1589600פת 0 / לקבלת המיקום החדש של פקד מעלה-מטה שולחים הודעת 661905 00% באמצעות. ()56001695306. המיקום נמצא בחלק הנמוך של הערך המוחור, והערך מוצג באזור הלקוח של תיבת הדו-שיח. 2 יצירת פקד חוק5 אין רע ביצירה של פקד מעלה-מטה עצמאי ובשימוש בו, אך בדרך כלל הוא קשור לתיבות עריכה. כשפקד מסוג וה משולב עם תיבת עריכה, נקרא פקד חופפ. חלונות אפ. עושה שימוש נרחב בפקד חוקפ, והיא מספקת אמצעי תמיכה מיוחדים עבורו. למעשה, פקד חוק> הוא אוטומטי לחלוטין ואין צורך לייעד לו משאבים כלשהס מתוך התוכנית. כדי ליצור פקד חוף, עליך להגדיר פקד עריכה כחלון חבר של פקד מעלה-מטה. לאחר מכן, יוצג המיקום החדש של הפקד בתיבת העריכה בכל פעם שיחול שינוי כלשהו בפקד. בנוסף, אם תשנה ידנית את הערך שבתיבת העריכה, יתבטא הדבר מייד בפקד. 0 321חווו ומבוא ל-ספו תוכנית לדוגמה של פקד חוק5 יצירת פקד חוספ היא תהליך פשוט המתבצע בשני שלבים. ראשית, הוספת תיבת עריכה. לקובץ המשאבים של התוכנית. שנית, העברת ידית התיבה כחלון חבר בעת יצירת פקד. מעלה-מטה. התוכנית בשלמותה נמצאת בתקליטור חוקפ13קַ3ת0. תרשים 13.2 מציג דוגמת פלט של התוכנית. | מא תרשים 13.2: דוגמת פלט של תוכנית ההדגמה של פקד חוסף. כדי להבין כיצד נוצר פקד חזסף, עיין בקוד של 06נסדנוון ו 6350 להלן 1 0 56 1 10 ,66868מ)6650191%68 = במאאסמפת 00 = מ | פנמנפנט ₪5 | תפסהסם פא | פתזאס פא ,685נמאסצמת פפט | פאצעססטמצפט פפט 1010 0 ,אאספפט פד 1 0 1000 1 תיבת הדו-שיח מוגדרת בקובץ המשאבים, ולכן התוכנית חייבת לקרוא לפונקציה (ְ1ְָ610 כדי לקבל את הידיות שלה. להלן ההגדרה של ()00/0106. (18 6מ1 ,18108עמ סאחם) 6501016 פומ הפונקציה וַחִפוזָפ661 מחזירה ידית אל הפקד שנבחר. הידית של תיבת הדו-שיח שמכילה את הפקד מוגדרת ב-פטווסו. 10 מעביר את המספר המוהה של הפקד. במקרה של שגיאה, מחזירה הפונקציה ערך 1וטא'. פרק 13: פקדים משותפים נוספים ‏ 341 ברגע שהתקבלה הידית של תיבת הדו-שיח, היא מועברת כחלון חבר אל הפונקציה ()00ח60חאו016316000. ברגע שנוצר הפקד בשילוב עס תיבת העריכה בתור החלון החבר שלו, חל קישור אוטומטי של השניים, ונוצר פקד חוקף. 3 פס העקיבה אחד הפקדים המצודדים ביותר מבחינה חוותית, הוא פס העקיבה (זהטאגזד), שנקרא: לעיתים גם פקד גררה (5/691). פקד זה מוכיר בצורתו את הגררה המצויה בסוגי ציוד אלקטרוני רבים, כגון מערכות סטריאו. פקד וה מכיל מתג שנע בתוך מסילה. התוכנית. מטפלת בו באופן דומה, למרות שמראהו שונה לחלוטין מפס הגלילה. פסי עקיבה שימושיים במיוחד כאשר שתתוכנית מיועדת לפיקוח על התקן אמיתי לדוגמה, פסי עקיבה הם אמצעי מעולה לשליטה באקוולייור גרפי וקביעת עקומת התדרים שלו. ליצירת פס עקיבה, השתמש בפונקציה ()630600/, | או בפונקציה ()64ו000ו/0103161.. האחרונה. מספקת מפרט מוגדל יותר של סגנונות. אין צורך במפרט הסגנונות המוגדל עבור פס העקיבה בדוגמה שתוצג בפרק, אך ייתכן שתמצא לו שימוש ביישומים שתכתוב. מחלקת החלון (0859 אוסחו/) של פס העקיבה הוא 5 800888ד, ולמעשה זהו העיצוב של החלון. סגנונות של פסי עקיבה מגוון סגנונות עומד לרשותך ביצירת פס עקיבה. הנפוציס שבהס מופועים בטבלה 13.3 ברוב המקרים תכלול את הסגנון 5א16דסדטא ‏ 85ד, מכיון שהוא מציג סימני מידה ועירים לצד מסילת הגררה. סימנים אלה הס הסרגל (סקאלה) של פס העקיבה. טבלה 13.3: אפשרויות הטגנון של פס העקיבה. סגנון האפקט החזותי שלו דא 85ד | סימני מידה לצד מסילת פס העקיבה 2 85ד | פס עקיבה אופקי (ברירת המחדל) דחפ 85ד | פס עקיבה אנכי סדדספ 85ד | סימני מידה בתחתית הפס (ברירת המחדל) קסד 85ד | סימני מידה מעל הפס. דפ 85ד | סימני מידה משמאל לפס. 16 85ד | סימני מידה מימין לפס. הדספ 85ד | סימני מידה משני צידי לפס. 2 זא32חווו ומבוא ל-ספו משלוח הודעות פס העקיבה בדומה לפקדים משותפים אחרים שפגשת, גם כאן מעבירים הודעות אל פס העקיבה באמצעות הפונקציה ()5600%/699306. טבלה 13.4 מציגה את ההודעות הנפוצות של פס. העקיבה. קיימות שתי הודעות שיהיה עליך לשלוח כמעט תמיד. 5578865 וד ו-561905 18%. הודעות אלו קובעות את תחום הפעולה של הפקד ואת מיקומו ההתחלתי, בהתאמה. לא ניתן לקבוע מאפיינים אלה בעת יצירת הפקד בעורת 0 ( טבלה 13.6: הודעות אופייניות של פס העקיבה. הודעה ד הד אד 60 פד 5 ד ב 566 אד 566 פד משמעות. קבלת המיקוס הנוכתי. וחבו לאו וא 0. וקו הצא 0 קבלת התחום המקסימלי של פס העקיבה. בבק הא 0. וק הדא 0. קבלת התחום המינימלי של פס העקיבה. וב לאו וא 0. ו ק! הדא 0. קביעת המיקום הנוכחי. וח בובא מקבל ערך שונה מ-0 לצורך ציור הפקד מחדש, או 0 בכל מקרה אחר. ₪3 03| מכיל את המיקום החדש. קביעת תחום הפעולה של הפקד. וח בובא מקבל ערך שונה מ-0 לצורך ציור הפקד מחדש, או 0 בכל מקרה אחר. ₪3 03| מכיל את תחום הפעולה. קצהו התחתון של. התחום נמצא בחלק הנמוך של המילה, ואילו חלקה. הגבוה מכיל את קצהו העליון. קביעת התחום המקסימלי. הח בהאי מקבל ערך שונה מ-0 לצורך ציור הפקד מחדש, או 0 בכל מקרה אחר. ₪ 03| מכיל את הערך המקסימלי של תחום הפעולה. קביעת התחום המינימליי חוזהקווי מקבל ערך שונה מ-0 לצורך ציור הפקד מחדש, או 0 בכל מקרה אחר. חוּזהל! מכיל את הערך המקסימלי של תחום הפעולה. וחגז3ל! מכיל את הערך המינימלי של תחום הפעולה. פרק 13: פקדים משותפים נוספים ‏ 343 טיפול בהודעת פס עקיבה כשפונים לפס העקיבה, נוצרת הודעת הגלילה )8080 /. החלק הנמוך של המילה. וחבזבקאו מכיל ערך שמייצג את מהות הפעולה. וחפזגק! מכיל את הידית של פס העקיבה. שיצר את ההודעה. טבלה 13.5 מציגה חלק מההודעות המקובלות של פס העקיבה. טבלה 13.5: הודעות ח00063000ח אופייניות של פס העקיבה. הודעה משמעות. ואסדד80 8ד | נלח מקש סאפ ; הגררה הגיעה עד לערך המינימלי דסא ד | סיוס פעולת פס העקיבה. אצוסספאז פד | נלח מקש חץ ימינה או חץ למטה. לטסא ד | נלחץ מקש ח שמאלה או חץ למעלה או0פפ6. 8ד | נלחץ מקש 060%, או לחיצה בעכבר לפני הגררה. אק 8ד | נלחץ מקש 60ק, או לחיצה בעכבר אחרי הגררה. אסנדן05קפויוט1ד פד | הגררה הוזוה בעזרת העכבר. א6חדפויוטזד ד | הגררה נגררה בעזרת העכבר 0 8ד | נלחץ מקש פואסו? תוכנית הדגמה של פס העקיבה התוכנית 113 הבאה מוסיפה פס עקיבה לתוכנית הקודמת של פקד חוקף. כשתריי אותה, תיווכח לגלות כי כל שינוי בפס העקיבה גורר שינוי מקביל בפקד חוף, ולחיפךך באופן וה ניתן להדגים שליחת הודעות וקבלתן על ידי פס העקיבה. תרשים 13.3 מצוגג דוגמת פלט של התוכנית. התוכנית בשלמותה נמצאת בתקליטור 13וא638013. ה תרשים 13.3 יוגמת פלט של תוכנית פס העקיבה. 4 321חווו ומבוא ל-ספו עם הצגת תיבת הדו-שיח נוצריס הפקדים חוף ופט העקיבה. תחום הפעולה של פס. העקיבה נקבע ל-0 עד 10 בעת יצירתו, והגררה מוצבת על הערך 5 (התחום והערך ההתחלתי האלה ניתנים גם לפקד חוק). שים לב שהתחום נקבע בעורת המאקרו (560א//, אשר מצרף שני ערכים שלמיס (ִזטפח1) לערך שלס ארוך. זוהי תבנית. הפקודה ; 49 פפסא ,106 סתסא) סאסזפאתוו ספסוום הפרמטר אופ! מכיל את החלק הנמוך של המילה הכפולה של הערך הארוך, והפרמטר. סח מכיל את חלקה הגבוה. המאקרו ()6806/% שימושי מאוד במקריס שיש צורך. לקודד שתי מילים לערך שלם ארוךך כל שינוי בפקד חוף גורר הודעת 2508011 ו ושינוי מיקומו של פס העקיבה בהתאם /* 1סע6ת0ם 80₪8-קט 206585 */ :0/5001 א 450 | ( עב (פצשוא) ==08 )1 ((1 ,תנטא ,1ממ 10 ,ַבפת)5תדת86010156 = 5ס0%0ב2ף ,1 (עתהתקאו) ,507708 אב 0 ; (פ0ס80% (נתהתקם) 1 מצטטם, משפט 636 שתואר מקבל את הערך החדש מתיבת העריכה באמצעות קריאה לפונקציה ()00זוח9ז1/פ601. הפונקציה זהה לפונקציה ()ַאפדוַחִפוזְָו660, שלמדת בפרק 5, למעט העובדה שהיא מחזירה את הערך השלם השקול לתוכן בתיבה, ולא טקסט. לדוגמה, אם התיבה מכילה את המחרוזת 102, ()8ה0610/010671 תחזיר את. הערך 102. מובן שהפונקציה ישימה לתיבות עריכה שמכילות ערכים מספריים בלבד. ווהי התבנית שלה. 12 הג ,100ג1קת )16 ת60 0101 (510068 מסס₪ ,ע0עעס* מססם ומוס מעביר את ידית האחיזה של תיבת הדו-שיח שמכילה את פקד העריכה. פד מעביר את המספר המזהה של תיבת הדו-שיח. אם תיבת העריכה אינה מכילה ערך. מספרי חוקי, תחויר הפונקציה את הערך 0, שהוא ערך חוקי לכל דבר. לכן, הצלחת. הפונקציה, או כשלונה מובעים על ידי משתנה שהמצביע אליו נמצא במשתנה זסזזם. משתנה וה יקבל ערך שונה מ-0 במקרה שהערך המוחזר הוא חוקי, ו-6 במקרה של שגיאה. אס תעדיף להתעלם משגיאות מסוג וה, תוכל להגדיר )ש! במקום הפרמטר בפונקציה. הפונקציה תחזיר ערך עם סימן (6חפ50) במקרה שהפרמטר 6ַ6חִחפ שונה. מ-0, או ערך ללא סימן בכל מקרה אחר. לאחר שנשלמו ההגדרות בתיבת העריכה, הן מועברות לפס העקיבה באמצעות הפונקציה ()5600%655306. כך, כל שינוי בערך פקד חוספ יתבטא באופן אוטומטי בפס. העקיבה. פרק 13: פקדים משותפים נוספים ‏ 345 כל תנועה של פס העקיבה גורמת לקבלת הודעת )456804 א/, שמטופלת כך. /* 20512668 פא עבמא0ב) */ :םתסת50ג אא 450 /* צגמאסםצם ססה */ (אשעם (מב:גק1(קאום) =! במאאסגצצה) ,1 | ( (מ8צבפא) פתסא10) 166 0-ל 56 /* ש1מהמאם 18מם עמק +/ 0 ל 86 /* 6ם 0111 מ0ף80פפפת בנג */ אאספמטד1 מל 486 /* 806 שץ ת1 68868סמצם */ /* .ע04 */ :אסצצנפספמעטמץ פע 480 המעט מע 456 וטפד1 29 6886 ופטפסתק ל 486 אאספפסתק 25 486 ,087905 מע ,800000:תג) 8608005580 = 08 א0געם 0 ;(1 ,08ק6%גע: ,1מם פד ,ַנפמ) 50:010160016 1 6 כשהמשתמש מציו את הגררה של פס העקיבה, מתעדכן המיקום באופן אוטומטי, והתוכנית פטורה מלטפל בכך. התוכנית מקבלת את הערך החדש של פס העקיבה לאחר הזותו, ומנצלת אותו לעדכון פקד חוקף. הערך שמכילה תיבת העריכה של פקד זה נקבע בעורת הפונקציה ()8ח1וסו5610/01. הפונקציה מבצעת את הפעולה ההפוכה. של הפונקציה ()%ח6610/01861 שתוארה לעיל. וכך היא נכתבת ,12 6ה3 ,4100 נפת סאא) 5650101660186 מססם (66ת510 מסס ,4108ט פאוצט הפרמטר פָסוגוסח מעביר את ידית האחיוה של תיבת הדו-שיח, שמכילה את פקד העריכה. 10 מעביר את המספר המוה של תיבת הדו-שיח. טופ מכיל את הערך שיש. להציב בתיבת העריכה. א הפרמטר 50066 מכיל ערך שונה מ-0, ניתן להעביר מספרים שליליים. אחרת, מתייחסים לערך שהוא מכיל כמספר ללא סימן (6חפפח) במקרה של הצלחה מחזירה הפונקציה מספר שונה מ-0, ובמקרה של כישלון היא מחזירה 0. בדוגמה, ניתן להויו את פס העקיבה בעורת העכבר, או המקלדת. למעשה, המספר הגדול של ההודעות מסוג = 18 מיועד לתמוך בממשק המקלדת. נסה לבטל מספר הודעות ובדוק את התוצאות. הזיקה בין פס העקיבה ופקד חוקפ בתוכנית שהצגנו היא שרירותית לחלוטין, ונועדה. לצורך המחשה בלבד. ניתן לשלב ביישומים פסי עקיבה שפועלים בצורה עצמאית. 6 321חווו ומבוא ל-ספו 4 פס התקדמות פס ההתקדמות (88 695ז00זק) הוא אחד הפקדים הפשוטים מתוך הפקדים המשותפים החדשים. בוודאי ראית כבר פס כוה בפעולה. פס התקדמות הוא חלון צר וארוך שמציג את התקדמות הביצוע של משימה ממושכת. לדוגמה, פסי התקדמות מקובלים מאוד בתוכניות התקנה, תוכניות העברת קבצים ותוכניות מיון יוצרים | את פס ההתקדמות בעורת הפונקציה ‏ ()00310000000, = אר ()0000/86ו/6703161, בעזרת הגדרת מחלקת חלון 855 01 55פ068הק. שיגור הודעות פס התקדמות התוכנית מנצלת את הפונקציה התקנית ()5606655306 כדי לשלוח את הודעות פס. ההתקדמות (פס ההתקדמות אינו יוצר הודעות כלשהן). בדרך כל יישלחו הודעות. לקביעת תחום הפס והצגת מהלך התקדמות המשימה. טבלה 13.6 מציגה אחדות. מההודעות הנפוצות של פס ההתקדמות. תחום המחדל של פס ההתקדמות הוא 0 עד 100, אך ניתן לתת לו כל ערך בין 00 ל- .65,535‏ הצגת התקדמות המשימה תועשה בדרך כלל באמצעות הודעת דןקסד5 8ק. ההודעה גורמת לפס להתקדס במנות קבועות מראש, שנקראות פסיעות. (5009). גודל המחדל של פסיעה הוא 10, אך תוכל לשנותו לפי הצורך. הפס ילך ויתמלא ככל שתקדם את מיקומו. פס ההתקדמות משמש להצגת ההתקדמות בביצוע המשימה, ולכן במצב מלא הוא מייצג השלמת המשימה ב-100% תוכנית פשוטה של פס התקדמות התוכנית פפפַזפַָסזם הבאה מדגימה כיצד משתמשים בפס ההתקדמות. התוכנית יוצרת. תיבת דו-שיח שמכילה פס התקדמות ולחצן שנקרא פ655זסָסזק. תחום פס ההתקדמות. הוא בין 0 ל-50, וגודל הפסיעה שלו 5. בכל פעם שלוחצים על הלחצן, מתקדם פס ההתקדמות פסיעה נוספת. ברגע שהפס מלא, נעלמת תיבת הדו-שיח מהמסך באופן אוטומטי. טבלה 13.6: הודעות נפוצות של פס ההתקדמות. הודעה משמעות 5 ומק | מקדם את פס ההתקדמות בפסיעה בגודל מסוים. מוחזר המיקוס הקודם. וחפזמקאו מכיל את גודל הפסיעה החדשה. חובּזבק| הוא 0. 5505 ואפק | קביעת המיקום של פס ההתקדמות. מוחזר המיקום הקודם. וחמּזקאו מכיל את המיקום החדש. חוּזבק! הוא 0. פרק 13: פקדים משותפים נוספים ‏ 347 הודעה משמעות 8 98% | קביעת התחום של פס ההתקדמות. התחום הקודם מוחזר. כשערכו המקסימלי בחלק הגבוה של המילה, וערכו המינימלי בחלקה הנמוך. הדא 0 וחהּזהק! מכיל את התחום. ערכו המקסימלי בחלק הגבוה של. המילה, וערכו המינימלי בחלקה הנמוך. קפד5ד56 אק | קביעת מנת ההתקדמות (הפסיעה). מוחזר גודל הפסיעה. הקודם. חזהזהל/ו מכיל את הפסיעה החדשה. הבוק הוא 0. דקפז5 ואפק | קידום הפס בהתאם לגודל הפסיעה. וחפזמקוו הוא 0. חובזהק! הוא 0. תרשים 13.4 מציג דוגמה של פלט התוכנית של פס ההתקדמות. [; 11001655 3 816 וכ ו תרשים 3.4 יוגמה של פלט התוכנית של פס ההתקדמות. התוכנית בשלמותה נמצאת בתקליטור 655זָזק13תס. יש לוכור שפס ההתקדמות נועד לתת למשתמש ביטחון שהתוכנית מתקדמת באופן תקין. לכן אתה צריך לעדכן את פס ההתקדמות בתדירות גבוהה. וכור, המשתמש. סומך על המידע שמציג פס ההתקדמות, שמעיד שהתוכנית עדיין פועלת. אס תשנה את. הפס לאט מידי, משתמש קצר רוח עלול לאתחל את המחשב במחשבה שהתוכנית. קרסה! בפרק הבא תמשיך ותלמד על פקדים משותפים נוספים: שורת המצב (850 518005), פקד הכרטיסיה ((סטחס6 טבד) ופקד תצוגת העף (ו0חס6 אאסוע סוד 8 32371חווו ומבוא ל-ספו וק 14 מבט נוסף על פקדים משותפים בפרק זה תוצג סקירה נוספת על הפקדים המשותפים של חלונות א9. נתמקד הפעם. בחלון המצב (וווססח!/ 53005), פקד הכרטיסיה (וסשחס6 טגד) ופקד תצוגת עץ (6פזד חס אוסוש). לתשומת לבך, חלונות א9 כוללת פקדים משותפים נוספים שאותם. תרצה בוודאאי לחקור בעצמך. 1 חלון המצב לעיתים יש צורך לדווח למשתמש על מצב משתנים, מאפיינים או פרמטרים בתוכנית. בעבר הגדירה כל תוכנית לעצמה את הדרך בה נעשה הדבר. חלונות 9% הנהיגה פקד תקני למטרה זו, שנקרא חלון המצב (ו00חו 513005) אר שורת המצב (880 513005 חלון המצב הוא שורה שמוצגת לרוחב תחתית המסך, וכוללת מידע הקשור לתוכנית. תיווכח לדעת שקל ליישם את שורות המצב. שילוב שורת מצב ביישוס כרכיב שגרתי מאפשר ממשק עקבי להצגת מצב חיישום. יצירת חלון מצב ניתן ליצור שורת מצב בעורת הפונקציה (010300502005/0002. בנוסף, יש להביא בחשבון ששורות מצב הן חלונות, ולכן ניתן ליצור אותן בעורת ()10306/006000 אר (00/ו60חו616306,. בציוך מחלקת החלון ש51810501//59%. כדי להמחיש. זאת, ניצור שורת מצב בעורת הפונקציה ()00ח//9ו0163 (תוכל, כמובן, לעשות זאת בכל' דרך אחרת). חלון מצב יהיה בדרך כלל חלון בן. יוצרים אותו בעזרת הסגנון 151815 5ו, ולכן הוא: גם יוצג באופן אוטומטי. הקוד הבא יוצר חלון מצבב 55 5070501) 0566601860 = 8מאפטט 568 /* 68פט ססת */ ,"" ,מתפנפנט בא | סמנאס פף /* 1000268 ת10פ1פסק הג 8128 */ ,0 00 ,0 00 פרק 14: מבט נוסף על פקדים משותפים ‏ 349 /* מהסעגם 01 1שהגת */ ,המאת טא /* 388816 שסמ4מפה1 */ ,%פמצת טא כפי שמשתמע מההערה בתוכנית, לא מעבירים את הפרמטרים של גודל החלון ומיקומר אל הפונקציה ()אוַחוו6:6319. חלון המצב מתאים את עצמו אוטומטית לחלון האב, ולכן אין צורך בפרמטרים אלה. חלון המצב מתחלק בדרך כלל לחלקים (למרות שאין כל פסול בחלון שמכיל חלק אחד. בלבד). ניתן לכתוב טקסט בכל אחד מחלקי החלון בנפרד, כאשר ההתייחסות לחלקים. השונים נעשית באמצעות אינדקס (האינדקס של החלק הראשון הוא 0). הודעות חלון המצב חלון המצב אינו יוצר הודעות כלשהן, אך התוכנית יכולה לשלוח הודעות מצב באמצעות הפונקציות התקניות ()5600/695308. טבלה 14.1 מציגה. את ההודעות. הנפוצות של חלון המצב. טבלה 18.1: ההודעות הנפוצות של שורת המצב הודעה 150 קד 58 ד 58 משמעות. קבלת הקואורדינטה של צד ימין של כל אחד מחלקי החלון. מחזירה את מספר החלקים של שורת המצב. וחבזפקוי מציין את מספר חלקי חלון המצב. וחפזבק! הוא מצביע אל מערך של מספרים שלמים (0ח1) שיקבל. את הקואורדינטות של צידו הימני של כל חלק. גודל המערך צריך להיות לפחות כמספר החלקים בשורה. קבלת הטקסט מהחלק שצויין. המילה הנמוכה בערך המוחזר מכילה את מספר התווים בטקסט. המילה הגבוהה מכילה ערך. שמתאר כיצד להציג את הטקסט. אם היא מכילה את הערך 0, הטקסט יוצג בגובה נמוך מהחלון. אם היא שווה. ל-דט0ק20 -581, הטקסט יוצג גבוה החלון. אס היא שווה ל-0885ה080 -581, הטקסט יוצג ללא גבול (80106). זאו מציין את האינדקס של החלק המבוקש. ובזק! מצביע אל מערך תווים שמיועד לקבל את הטקסט (ודא: שהמערך גדול במידה הדרושה ויכול להכיל את הטקסט). קת32ח/ו ומבוא ל-0פו הודעה משמעות. 55 58 | ציון מספר החלקים בשורת המצב. מחצירה ערך שונה מ-0. במקרה של הצלחה, ו-0 במקרה של כישלון. ובלוו מציין את מספר החלקים. ובזק! הוא מצביע אל מערך של מספרים שלמים, שמכילים. את הקואורדינטות של הצד הימני של כל אחד מחלקי השורה. דאפדדק6 58 | הצגת הטקסט בחלק השורה שנבחר. מחזציר ערך שונה מ במקרה של הצלחה, ו-0 במקרה של כישלון. וחבזבּל/ו מציין את האינדקס של חלק השורה אשר יקבל את. הטקסט ואת אופן הצגתו. התוכנית מבצעת פעולת 0 בין האינדקס וערך התצוגה. אם ערך התצוגה הוא 0, אזי הטקסט. יופיע בגובה נמוך מהחלון (ברירת המחדל). אס ערך התצוגה הוא דטסק0ק 581, הטקסט יוצג גבוה מהחלון. אם הוא: 0805 -581, הטקסט יוצג ללא גבול (801690). אם ערך התצוגה הוא שוההסחטוזצוס -581, יוצג חלון האב. וחבזפק! הוא מצביע אל מחרוות המיועדת להצגה. כמעט כל היושומים שולחים הודעות 551985 58 שתפקידם לקבוע את מספר החלקים של שורת המצב, ג זאפדז56 58 שכותב טקסט בחלק מוגדר של חלון המצב. להלן התהליך הכללי ליצירת שורת המצב. 1. צור את חלון המצב. 2. קבע את מספר החלקים בחלון בעורת הודעת 5610815 58. 3. כתוב טקסט בכל אחד מהחלקים, בעזרת הודעת זאודד55 58. מרגע ששורת המצב עברה את שלב האתחול, תוכל לעדכן את חלקיה השונים בהתאם. לצורך, על ידי שיגור הודעת דאפדד59 58 הפעלת שורת המצב התוכנית 93 .50365 הבאה (בתקליטור 6₪8014) מציגה את ההגדרות של תיבת הדו-שיח באמצעות שורת מצב. תיבת הדו-שיח מכילה פקד חוק5 ושתי תיבות סימון 8069 6866%). בכל פעם שחל שינוי באחד הפקדים, מתעדכן הסטטוס שלו בשורת. המצב. פרק 14: מבט נוסף על פקדים משותפים ‏ 351 להלן תוכנית שורת המצב (ז9פ 569805). תרשים 14.1 מציג פלט לדוגמה של התוכנית. <ה. 5916008 101086 <ה. בשףשמחסם> 41001886 "מ צבט פש5580" 4301086 <ה.55016> 43061086 מטפד 1832 15 6ה40661 /* .צגכ פט21:ם ב ב6ב+ןפהסחסם */ 3 פפהתקחטות 4401106 356866 מהמפעגם // פפחדה פסונתלפווצ "808ט8680" = בהפאסקתפפק1 ת0957ק1 ("צגם 8ג80ב5פ ב הַתנפע" | = 271:16פק1 תעפפסק1 (0ש1 *5פת1ססומ פאסס) 0186820195 מססם ; [8 הלפט ספא 486 ; (בתזזת פעמוא) 1016568005 18סט מעםסאם 5 פחו מסוותפפות3 ,הספת מסותפפאנה) תובעתגז צהפונמנעת 45 (שסתפ4תסת 186 ,סהנמנתסק1 1057 ,ססהגופה1טםצקת 4 ח סאחור 55 תסו קאתהסמחע 05 | אתתספפע פס 8 40 מ (ססתקפזהו) ב 01 ₪ ₪ ו 0 ₪ (סמבאמסת82ם1 ,68מ5:8הדמ) ת1088160 0 וספת 100 ,)0800 ו ; (1+אספוננאו הסמסס) (מפטתפ2) = במטספףס8מעמת סט ;במפאקקתלפם1 = סמגמטהס2פ1 סט ;סמפאממת182 = 1820128088 סט 2 3271חו ומבוא ל-ספו פרק 14: מבט נוסף על פקדים משותפים ‏ 353 4 הלבח ומבוא ל-ספו )| (685888ת) 160 1 /* עגט 8ג8ב86 בגט 1811181126 */ ;(שנקה) פט6ם9%ם1תד ;(881 מז ,ַַמ)מ8602181%6 = במאאסממה 0568660000 = שמאמט | מממדפנט ₪5 | הפסהסם פא | סנאס פה ,108האסצנת פפט | צאצצספטמעפ פסט 10 10 7 ,וטספ פד 1 0 ; (2/מ316 ,106 ,משגת ; (פט9פ) מעםם, /* בסצשת0ס 8008-קט 88מססעק */ :ם01ת50/ 10 56ם ) (הע בק (סמום) ==886ג) 45 ;(1 ,תמטא ,גמם פז ,מנסה)%מ1ת060010155 = פסקשט (8סקטט ,"%6 :מ606-קט" ,ע51)85ת1צקב 50 58 ,5626506 ) 0655806 ;56 (מתתתע1) ,0 (אתתתקא) 1 ג (פטתע) מעמסע 0 5 | ( (מ8צבפא) פתסא10) 180פ /* 1 א0מ0%שתש 88מססעק */ :081 10 פמ ,1 פ1 ,16סת) 801016080658806ת36 = 568005081 :(0 ,0 ,אספאסספם עמ ;("אס 1 הס1סמס" ,51)865ת1עספ (80205081) ,1 ;("9פ0 1 מס1סמס" ,51)852ת1עק5 156 5 55 ,6 05806 :56 (מתתתפ1) ,1 (אתתתקק) ; (פטתפ) תעטםם, /* 2 אסמאסהם 8פשססעם */ :082 10 286 ,92 פ1 ,סנסה) 80101608/6658896מ56 = 258008082 :(0 ,0 ,ספאסספם אמ ;("אס 2 הס1סמס" ,51)869ת1עספ (80205082) ]1 ;("פפס 2 מס1שמס" ,ע51)85ת1עקט 186 5 5 ,6 05806 :56 (משתתתפ1) ,2 (אתתתקק) ; (פטהפ) תעטשם, פרק 14: מבט נוסף על פקדים משותפים ‏ 355 6 זקת2חו/ו ומבוא ל-60ו 5 5 5 (פספגם (ותתתסם) ,פצהתקמטוו (אתתתקאה) ,0 (אתפתפא) ,1פעע50 58 ,6מ88ט0 1568 855806 (("10 :0אס-קט" (אתתתסם) ,1 (אתפתפ) ,%1םעע50 58 ,6מ88ט5680ת) 6048058806 ;("צש0 :1 תס1שקס" (שתמתסם) ,2 (אתהתפ) ,דמעמ 58 ,3568008886 855806 ;("פש0 :2 הס1סקס" (אתמתסם) לתוכנית דרוש קובץ המשאבים הבא: <ה. 4008ת01> 0106ה1ף "ה 56865" פט1סה1ף טאפו טאוועצת |[ שנס 158 ,"6018108" מפענטופע פמפא עפ1 ,"6861" מפשנטופע סט טסה טונמונצ [ צפאצאנט ,6סמגזט עמז ,2ע אט צפאצתנט ,פמסא עם1 ,1ע אא 2 ,50 ,18 ,18 מסמתנם מסצע "ש8ם 58608 8 866ש6פמסהשם" א10עעמס טופמפצט ₪5 | אסצצפהס פ₪ | פטפספ פא | מאהתענתססות 8ם מתצלפ |[ ,4 ,37 ,34 ,92 ,חמפפא 10 ,"משמשמ" אסעצטמאפטפ פסצפמאל פ₪ | מממדפנט פא | סמצאס פא ,4 ,37 ,53 ,92 ,1008 ,"אס" אסעצטמאפטפ פסצפמתל פ₪ | מממצפנט פא | סמצמס פא | פנצאס פא | 1899 ₪5 ,12 ,30 ,10 ,10 ,גמם סד פאמצטנסם הפמתסה ₪5 | מתמנפנע פף 2 ,48 ,40 ,10 ,1מס פד ,"1 תס1טקס" אסמאסטאססצטת 2 ,48 ,60 ,10 ,02 10 ,"2 מס1טפס" אסמאספאסספטת פרק 14: מבט נוסף על פקדים משותפים ‏ 357 קובץ הכותר דרוש גם הוא לתוכנית:א. 636 0 פסמתזק פד 385110 11| פתסא מז 4401108 12| אוסספט 1 401108 13 1מם פז 4001108 14 1 פז 4001108 15 2 מז 3001108 6 צספסת מז 4401186 5 ₪ ₪-- | 2 הפונקציה ()05/305ח1 שמופיעה בתוכנית, יוצרת את חלון המצב ומאתחלת אותו שורת המצב מחולקת לשלושה חלקים שווים. חלוקת השורה מתבצעת בעורת פונקציית 871 שנקראת ()0860ח681016. הפונקציה מקבלת את הגודל הנוכחי של אזורר הלקוח של החלון שנבחר. זוהי תבנית הפקודה. (600הק1 פסמתפ1 ,שמא סוחאא) 58606ה650116 מססם שוח הוא הידית של החלון הנדון, ו-866פ! הוא מצביע אל המבנה ז856, אשר מקבל את מימדי אזור הלקוח של החלון. שורת המצב מורכבת משלושה חלקים, ולכן רוחב תיבת הדו-שיח מחולק לשלושה (הרוחב. מתקבל באמצעות הפונקציה ():8860ח60/0). תוצאת החלוקה מתורגמת. לנקודות הקצה של חלקי החלון, אשר מוצבות במערך 5זק. זכור, יש להעביר לחלון. המצב את נקודת הקצה של כל אחד מהחלקים, ולא את רוחבם. לאחר שנקבעו חלקי. השורה, ניתן להציג בהם את הטקסט. הפונקציה ()פָסו מעדכנת את הטקסט שבכל אחד מהחלקים, בכל פעם שחל שינוי בפקד. הדבר נעשה על ידי משלוח הודעת ז6%ד551 58 לחלק הקשור אל הפקד ששינה את מצבו. 8 3271ח/ו ומבוא ל-ספו נקודה נוספת אודות חלונות מצב: אם משנים את גודל חלון אב, הוא יקבל הודעת 8 ו עליך לשלות הודעת 5126 תא אל חלון המצב בעורת הפונקציה ()0%/655306ח56, כדי לאפשר את שינוי גודל חלון הבן במקביל. לדוגמה, אס ברצונך לאפשר שינוי אוטומטי בגודל חלון המצב שבדוגמה הקודמת, כאשר חל שינוי בגודלל תיבת הדו-שיח, הוסף את משפט 6356 הבא לפונקציה ()טפָסוום. עליך, כמובן, ליצור את תיבת הדו-שיח בעורת הסגנון 512580% 5או. 56 (ממצ8פ1 ,עתתתקא ,5128 104 ,80 )8058806 8%פצ תוכל לנסות להוסיף זאת בעצמך, אך וכור שהשיטה לא תגרום לחלקים עצמם לשנות. את גודלם. השורה תתארך עד שתמלא את החלון. כדי לשנות את גודל החלקים, עליך. לשלוח הודעת 56108815 58 בציון גודלי החלקים החדשים. 2 פסקדי כרטיסיה אחד הפקדים המעניינים ביותר מבחינה חזותית, הוא פקד הכרטיסיה ((סשחס6 טגד. פקד הכרטיסיה מתפקד ככרטיסיה של תיקיית קובץ. בחירה בפקד זה מציגה את התיקיה הקשורה אליו בחזית התצוגה. הפעלתו של פקד הכרטיסיה קלה ופשוטה, אך מסובך במקצת לתכנת אותו. בסעיף זה נציג את את העקרונות הבסיסיים של פקד הכרטיסיה, ובסעיף הבא נמשיך ונעטוק בתכונות נוספות שלו. יצירת פקד כרטיסיה יוצרים פקד כרטיסיה באמצעות הפונקציה ()ו00חו16916 אה ( 0 ובציון מחלקת החלון 148608180% 6ע. פקד כרטיסיה יהיה בדרך כלל חלון-בן. הוא: יווצר בעורת הסגנון 151815 פו, ולכן יוצג אוטומטית. הקוד הבא יוצר פקד כרטיסיה = ב חזומו עו 0סם, ]- ,סתזאס ₪5 | פסצפמהל ₪5 | מנמנפנט פא 0 /* מהפצגק 05 ב1ההמ */ ,המאת וט /* 18התגת מסמ2:פה3 */ ,זפהדת מפטא / לאחר יצירת הפקד, ניתן לשלוח הודעות מהיישום אל פקד הכרטיסיה, או בכיווך ההפוך, בכל פעם שניגשים אל הפקד. פרק 14: מבט נוסף על פקדים משותפים ‏ 359 פריטי כרטיסיה מוגדרים על ידי מבנה אפד1 6, המוצג להלן ואט וט וט 1 46 7 מבצהק1 וותתתק1 0 ן הערך שמכיל המשתנה אפטחז קובע אס איברי המבנה ט1קפק, 11306 אר חחמזמקו מכילים נתוניס חוקיים, כאשר המבנה מקבל נתונים מפקד הכרטיסיה. המשתנה או יכול להכיל אחד, או יותר מהערכים הבאים. ערך במשתנה 185% משמעות. 16 =ז0ד | 516%, 96פחז1! ו-וזהזבק! מכילים נתונים. 8 1615 | 11₪0896 מכיל נתונים. הפאק =01ד | זבזבל מכיל נתונים. זאטד =01ד | 5218%%ק מכיל נתונים. בעת הגדרת כרטיסיה, מצביע 5216 אל המחרוזת שתוצג בה. כשמתקבל כל המידע אודות הכרטיסיה, יצביע זאטזקפם אל מערך שיקבל את הטקסט. במקרה זה, הערך שב-א600161%0 מצלין את גודל המערך שאליו מצביע זא6ד2פם. אס הפקד קשור עם רשימת דמויות, אוי יכיל טוח את האינדקס של הדמות הקשורה לפקד שנבחר. אם הפקד אינו קשור לרשימת דמויות כלשהי, 6טָטוחו חיוב לקבל את הערך 1-. חזבּזהק! מכיל נתונים שמוגדרים על ידי היישום. שיגור הודעות אל פקד כרטיסיה הפונקציה ()5606/%655306 מאפשרת לשלוח מספר סוגי הודעות אל פקד הכרטיסיה. טבלה 14.2 מציגה חלק מההודעות הנפוצות ביותר. ההודעות נשלחות באופן תדיר, ולכן הונהגו פקודות מאקרו מיוחדות שמפשטות את שליחתן. להלן פקודות המאקרו המתאימות להודעות שבטבלה 14.2. בכל המקרים, 6ח/וטגזח היא הידית של פקד הכרטיסיה. 0 321חו/ו ומבוא ל-ספו פספהק1 (ה10מצעפקס מססם ,בהאמגצת פאאא) מסםתספטנת בצוסמגע פצסטי ה ; (חזומפג פוחוא) 1568 1666811 בע שסמנגעי מססם (1086 %ה1 ,4הממבפמ סאאא)ה660166נסס בפשסמגתי מס ( מב שחו ) 066002501 2 ,א66מ1 16 ,תאמגתת פאאות) 6651660 1עוסמגע מססם (תאומ ית פזת80) הגוסמ 80, ;1560 8שצ: 1070 פאס ,46%ת1 מת1 , סטמ מ168םעספד (א1886 16 ,ההאמבפת סאזוט) 506002501 486 0 ; 1568 שפד : 0 46 486 0 46 0 (1668 מפד סעקם ,166% פמ1 ,מהממגסת כותות) 5662660 בפוסמגע מססם בעקרון, קל יותר להפעיל את המאקרוס מאשר לקרוא לפונקציה ()5600//655306. טבלה 14.2: ההודעות הנפוצות ביותר של פקד הכרטיסיה. הודעה משמעות ד0פדפטנסא. 10% | תרגו מימדי תצוגת הפקד לגודל החלון. זאו מציין את הפעולה. כשהוא מקבל ערך שונה. מ-0, מתקבל מלבן החלון. כשהוא 0, מתקבל אזור. התצוגה. וחבזפק! מצביע אל מבנה 8501 שמכיל את. הקואורדינטות של האזור המיועד לתרגום. בסיוס. הפעולה יכיל המבנה את הקואורדינטות המתורגמות. פאפד \ופדם ופפ סד | ביטול כל כרטיסיות הפקד. מחזירה ערך שונה מ-0. במקרה של הצלחה, ו-0 במקרה כישלון. בק הדא 0 חובזהק! הוא 0. אפדנפד9 ופפ סד | מוחקת את הכרטיסיה שנבחרה. מחזירה ערך שונה מ-0. במקרה של הצלחה, ו-0 במקרה כישלון. וחבּזמקו+ מצ"ין את האינדקס של הכרטיסיה המיועדת. למחיקה. חובזהק! הא 0. 661008586 0%ד | מחצירה את אינדקס הכרטיסיה הנוכחית שנבחרה. אם. לא נבחרה כרטיסיה, תחזיר את הערך 1-. חקו הדא 0. חוּזבק| הוא 0. זט סוט דנד66 סד | מחצירה את מספר הכרטיטיות. חקו הדא 0. הבוק הוא 0. פרק 14: מבט נוסף על פקדים משותפים ‏ 361 הודעה משמעות 61 6 | מקבלת מידע על הכרטיסיה שנבחרה. מחזירה ערך. שונה מ-0 במקרה של הצלחה, ו-0 במקרה כישלון. חובּזקו+ מציין את האינדקס של הכרטיסיה. הפקו מצביע אל מבנה 118 16 שמקבל את נתונר הכרטיסיה. אפדנדה1855 יסד | יוצרת (מכניסה) כרטיסיה חדשה. מחזירה ערך שונה. מ-0 במקרה של הצלחה, ו-0 במקרה כישלון. חובּזקו+ מציין את האינדקס של הכרטיסיה. וחגזפק! מצביע אל מבנה 118% 76 שמתאר את הכרטיסיה. 5610858 0%ד | בוחרת כרטיסיה. מחזירה את האינדקס של הכרטיסיה. הקודמת שנבחרה. מחצירה 1- אם לא נבחרה כרטיסיה כלשהי לפני הכרטיסיה הנוכחית. ובלוו מציין את האאינדקס של הכרטיסיה הנוכחית. שנבחרה. הבוקו הא 0. אפדנד56 סד | קובעת נתונים בכרטיסיה שנבחרה. מחזירה ערך שונה. מ-0 במקרה של הצלחה, ו-0 במקרה כישלון. חובּזקו+ מציין את האינדקס של הכרטיסיה. חגּזהק! מצביע אל מבנה ואפ1 .76 שמכיל את המידע אודות הכרטיסיה. פקד כרטיסיה אינו מכיל כרטיסיות כלשהן בעת יצירתו, ולכן התוכנית חייבת לשלוח. אליו לפחות הודעת !ושדוד568א1 100 אחת. קיימת הודעת פקד שלמרות שהיא שימושית, היא אינה כלולה באף אחת מהדוגמאות שבפרק זה: 6פמדפטנס, ואסד. הודעה זו מיועדת לקבל את מימדי אזור התצוגה של פקד הכרטיסיה. זכור, החלון שלל פקד הכרטיסיה שאתה יוצר כולל את הכרטיסיות וגם את האזור שבו יוצג המידע, אד תיפתח תיבת דו-שיח. אזור התצוגה הוא החלק של חלון הפקד שאינו כולל את הכרטיסיה (כלומר, האזור בו ניתן להציג פריטים אחרים). מאחר שזה האזור בו מוצג מידע הקשור לכרטיסיה, תצטרך לדעת את מימדיו הודעות 008630000 של הכרטיסיה כל גישה אל פקד הכרטיסיה יוצרת הודעת /קנדסא א (אד ח6300הטסא טבד 6., פקדי כרטיסיה יכולים ליצור שני סוגי קודים של הודעת שינוי בחירה 6 -חסוו :)50‏ 58000865 אסד = ו-שאז6אאה500 אסד. | ההודעה 5810616 אד נשלחת כאשר בחירת הכרטיסיה ‏ עומדת להשתנות; 8 אד נשלחת לאחר שנבחרה כרטיסיה חדשה. 2 1א32חווו ומבוא ל-ספו עם קבלת הודעת 011% א/, יצביע וחמזבק! אל המבנה ₪ו1. השדה 6006 המהווה. חלק ממבנה זה יכיל את קוד החסטג6טטח. הידית של פקד הכרטיסיה שיוצר את ההודעה, נמצאת בשדה חחסז0חאוח. תוכנית הדגמה פשוטה של פקד כרטיסיה לפניך תוכנית 401ח69טמד קצרה ופשוטה להדגמה של פקד כרטיסיה. (התוכניתת נמצאת בתקליטור |סשחסססגד3014ה6) . התוכנית יוצרת פקד ובו שלוש כרטיסיות. הכרטיסיות מסומנות בטקסט 6ח0, סאד ו-6סזחד. כשבוחרים כרטיסיה חדשה, משתקפת העובדה בהצגת הודעה מתאימה. תרשים 16.2 מציג דוגמת פלט של התוכנית. 1008 < 1 > 101006 <56810.5> 66בסה41 סט ת0סמבע" 106סה1 מטהד 32נאן 18 401106 3568006 מהמפעגם // 1 פסאתץ5: ו פאחו גצ פוחו /"ם1עשחסם" = שהבאסקתפפק1 ת57פסק1 "מ1168610פעת 6810מ06" | = 15291616 10298 ₪ (0ש1 *5פתנססומו עפאסס) 95ת8018%8201ה מססם מסוותפפות3 (ססת8םפתזת מסוותפפאנה) תובעתוז צתפונמדקת 46 (שסמ45תסה 186 ,סהןמנתסק1 10578 ,ססהגופה1שםצקת פל 0 ו 5 סתז עסמה קאתהסמחע 05 | אתתספאע פס = 8 ;ססעפטהא(ססהפפוה/) = | ססעקבמאת:ם1 סט = ע0א0180מ0 סט = בעסאמבתחמם סט > תס ; (חמאזקת2פק1 ,6סה2מפהנת) מ1080100 = 0 ; (סתהה 100 ט )08 = ו פרק 14: מבט נוסף על פקדים משותפים | 363 4 קלחו ומבוא ל-ספו פרק 14: מבט נוסף על פקדים מטותפים ‏ 365 6 הכח ומבוא ל-0=ו תרשים 4.2 גלט לדוגמה של התוכנית הראשונה של פקד הכרטיסיה. טרם יצירת הפקד, קוראת התוכנית לפונקציה ():6610/60860, כדי לקבל את גודלל החלון הראשי. הפקד שנוצר לאחר מכן מתאים בגודלו לאזור הלקוח של חלון האב וממלא אותו בשלמותו. הדבר נעשה באופן שרירותי, אך מקובל למדי. לאחר יצירת פקד הכרטיסיות, נוצרות בו שלוש כרטיסיות. הפונקציה ()06ז1/007 מציגה הודעה באוור התצוגה של הכרטיסיה, ומדווחת על בחירת כרטיסיה חדשה, כל פעם שההודעה הזדסוא /או מקבלת קוד מסוג ד 3 הפעלת פקדי כרטיסיה קל להפעיל פקדי כרטיסיה, אך יצירתס מסובכת למדי, מכיון שלכל כרטיסיה קשורה. בדרך כלל תיבת דו-שיח. כל פעם שבוחרים בכרטיסיה חדשה, יש להסיר מהתצוגה את. תיבת הדו-שיח הנוכחית, ולהציג תחתיה תיבת דו-שיח חדשה. כמו כן, לרוב צריך להתאים את תיבות הדו-שיח השונות לאזור התצוגה של פקד כרטיסיה. פקדי כרטיסיה ותיבות הדו-שיח שלהם כרוכים בנושאים נוספים ומסובכים שאינס כלולים. בספר. למרות ואת, נלמד בסעיף זה שיטה כללית לשילוב פקד הכרטיסיה ביישומים. אס תבין את העקרונות הבסיסיים, תוכל להוסיף ולשפר בעצמך את פקדי הכרטיסיה. ביישומים שתכתוב. העובדה שניתן לבחור כרטיסיה חדשה בכל עת, מרמות על כך שיש לשלב תיבות דו-שיח לא-מודאליות 006/659/).. תיבת: דו-שיח. לא-מודאלית מאפשרת להפעיל חלקים אחרים ביישום מבלי לסגור אותה לפני כן (בניגוד לתיבת דו-שיח מודאלית, אותה יש לסגור כדי להפעיל חלקים אחרים בתוכנית). בדרך כלל, כשבוחרים כרטיסיה. חדשה, היישום סוגר את תיבת הדו-שיח המוצגת ולאחר מכן מפעיל את התיבה הבאה. ניתן לסגור תיבת דו-שיח בכל עת, ולכן צריך לנקוט בפעולה המתאימה (כגון שמירת. ההגדרות שלה) בטרם מציגים את התיבה הבאה. פרק 14: מבט נוסף על פקדים משותפים | 367 נעבור לתוכנית 800/2ד (בתקליטור 30002ז608014) אשר תאפשר לנו ללמוד כוצדד להפעיל פקד כרטיסיה. התוכנית יוצרת פקד ובו שלוש כרטיסיות: פחסטקס, חשוק ו-526 6סָּ0. כל אחת מהכרטיסיות קשורה לתיבת דו-שיח לא-מודאלית. הראשונה היא מהסוג שיצרנו בתחילת הפרק עבור שורת המצב (ו83 519005). שתי הכרטיסיות. הנוספות הן ריקות ולמעשה, רק תופסות מקום (9ז86000/06), אותן שילבנו לצורך. ההדגמה. תרשים 14.3 מציג פלט לדוגמה של התוכנית. <. 0184008 בסה < 1 65ה0> 101066 <56810.5> 166סה41 "12.8ַסמת" בבסה מטחד 32ַזאן 18 345110 3 פפהתקאטת 3051106 ; (מותתתק1 ,ממתהתקאן ,חוד ,תומ/א) בסתגת טנס אסתם1זתס מססם ; (מותתתק ,ממתהתקא ,חווד ,סזמ/א) 2סתגת טנס אסתם1מתס מססם ; (מותתתק ,מממהתקאן ,קאד ,תזמ/א) 3סתגת טנס אסתם1נתס מססם 2 (4חזות פעחוה) 1015868008 18ס 35686 מההצפצטם // 6פחדת פסונתלפוננ ו פאחו הדי פאחו פא <מנטו (מאאא) = פנתמ פומ /"10עשהסם" = שהפאסקתפפמ1 ת7פפסק1 ;"מ1168610קקת 10ש6ה06" | = 15291616 אפפסק1 ; (60ש1 *1855ספואא דפאסס) 8018%6201295ה מססם ; [פתתקצוטו 95 46 מסוותפפות3 (ססתםפתצת מסותפפאנה) תובעתגז צהפונמדקת 46 (שסמ45תסה 186 ,סה1מנתסק1 10578 ,ססהגופה1שםצקת פע 10 4 55 נספוו ;אתהפמתט 05 | אתתספפע 09 = 8 8 מ קפוהו ב ₪ 6015 8 3271חו ומבוא ל-ספו פרק 14: מבט נוסף על פקדים משותפים ‏ 369 0 323חאו ומבוא ל-ספו פרק 14: מבט נוסף על פקדים משותפים ‏ 371 2 לבחו ומבוא ל-0פו /+ 1 אסם 360% 85שססעק */ :081 ם1 פמ ,1מס פ1 ,מנסמ) 801016080658806ת50 = 218005081 ;(0 ,0 ,אספאסצפם אם ;("אס :1 הס1ממס" ,ע1)86>ת1עמפ (85205081) ,1 ;("פפס :1 מס1פםס" ,51)858ה1עק5 156 50 58 ,505086 055806 :56 (ממתתפ1) ,1 (אתתתקק) 1 מס /* 2 אסט 360% 88מססעם */ :02 ם1 שממ ,082 פ1 ,מנסת) 8010160800658806ת36 = 558005082 ;(0 0/0 ,אספאסצפ אפ ;("אס :2 הס1סקס" ,51)86%ת1עקט (8020802) 15 (("פפס :2 מס1מםס" ,51)858ת1צק5 156 5 5 ,6 05806 ;(מ56 (מתתתפ1) ,2 (אתתתקאן) 1 מעםם, /* פמסגמםס 86ש: */ :למפתת 10 886 (2/ מש1 (מנפתקם) ,0 ,51208 עמ ,608 0 ,0 (שתפתטא) ,50 5 ו 0 ; ("10 :מ406-מט" (עתתתקם) ,1 10 ,ַע) 660655806 5660101 :(0 ,0 00פ08לפם אמ ,2 ד ,301) 016000655806 56601 :(0 ,0 06פסלפם אמ ,1 (שתהתקא) ,תדל 50 5 ,6 0580 ("פעס :1 מס1טמס" (עתתתקם) ,2 (שתפתט) ,דל 50 5 ,6 050 ("פעס :2 מס1שמס" (אתתתקם) 1 מס 856 1 10 856 0 0 1 תעםם, 1 0 פרק מבט נוסף על פקדים משותפים ‏ 373 374 הלבחו ומבוא ל-ספו "תתא" /* עבש 262005 ג ם6בשצס */ 105015 תיפ) 080 86001ספם = האפטס ספת /* [קהפאם 18ת: 1 64פג ססת */ ,"" ,מתפנפנט בא | סמנאס פא וו ה טא תת מנטת 58 ,5 5 ג (פמפמס (ותתתקת) ,פצהתקמטוו (אתתתפאה) ,0 (אתפתפא) ,%1פעע50 58 ,6מ88ט80 156 855806 ("10 :חאסם-קט" (אתפתסם) ,1 (אתאתפש) ,דאמעל50 58 ,6מ88ט5680ת) 606858806 ;("צש0 :1 תס1סקס" (שתמתסם) ,2 (אתהתפ) ,דמעמ 58 ,8880ט25680) 6048658806 ;("צפס :2 הס1סקס" (שתמתסם) (סשיב *88ה1סטאוו עפומסס) 860586690195 מססם. [ 558% 1סטוהת 1 = ו ;06עקבתאמ8ם1<-סאמ1 = = ססעקנהאהזק1 אססט 0-00 = 001 סה ב סו 1 ו לב סו ב 100 אס ,פס מממה<-סאמ1 = = 8תט0ע4ַא80מצעת אסס 1 ב 11 אס ,82018580806מ1<-6אמ1 = 52012580206ק1 אססט ( )12005 ו 188 אםסמ) 1088100 סה 8608 ) א8598 8601866501 תפגטם> פרק 14: מבט נוסף על פקדים משותפים | 375 התוכנית וקוקה לקובץ המשאבים הבא |66 108 בה "ה.מ8ם" =0ט1סת43 86 ,16 ,2 ססמזם במסצע הפמתסה ₪5 | מנמנפנט בא | תצאס פאלם [ ,4 ,37 ,34 ,92 ,ספא 10 ,"565שת" אסעצטמאפטפ פסצפמגד ₪5 | מממצפנט פא | סמצמס פא ,37 ,53 ,92 ,1008 ,"אס" אסעצטמאפטפ פסצפמתד פ₪ | מממצפנט פא | סמצאס פא | נצאס פא | 1899 ₪5 ,12 ,30 ,10 ,10 ,גמ סד פאמצענסט הפמהסה ₪5 | מתמזפנע פו 2 ,48 ,40 ,10 ,1מס עד ,"1 מס1טפס" אסמאספאסספטת 2 ,48 ,60 ,10 ,082 מ1 ,"2 תס1טפס" אסמאספאססצטת 6 ,158% ,16 ,2 ססמתזס 2מסצע תפמתסם ₪5 | מתפנפנט פא | סמזאס ₪5 מתצצם [ ,4 ,37 ,53 ,92 ,1008 ,"אס" אסעצטמאפטפ פסמפמתד ₪5 | מממצפנט פא | סמצאס פא 12 ,10 ,10 ,1 ,"מ160ע מפססמס" צאמעב 2 ,8 ,40 ,10 ,נפת סד ,"01668 תסָא" אספצטמסנסתתספטת 2 ,52 ,60 ,10 ,2מת 10 ,"מ9166 הג01א" אספעטמסנסתפספטת 12 ,48 ,80 ,10 ,882 סד ,"תס16ע שסם" אספצטמסנסתתספטת 866 ,16 ,2 6סמתזם במסצע תפמתסם ₪5 | מתפנפנץ פא | סמזאס 5 מתצצם [ ,4 ,37 ,53 ,92 ,1008 ,"אס" אסעצטמאפטפ פסצפמתל פ₪ | מממצפנט פא | סמצמס פא 702 ,10 ,10 ,2 ,"8126 מַ 8‏ שפססמס" צאמעב 2 ,48 ,40 ,10 ,83 סד ,"11צחפ" אספצטמסנסתתספטת 2 ,48 ,60 ,10 ,4מת 10 ,"601" אספעטמסנסתפספטת 2 ,48 ,80 ,10 ,95 ס1 ,"מ" אספשטמסנסתתספטת קת32ח/וו ומבוא ל-0פו לפניך קובץ הכותר ח.15: 0 מסעתזק פד 4401108 11| פתסא וז 4401188 12| אוסספט 1 4801108 13 1 מז 3001106 חח 1 פז 4001108 15 2 מז 3001108 6 ספת מ1 4401188 07 1מת 5 3401106 18 עפת מז 4001108 109 בת פז 4001108 0ב רו 1 5 15 3001108 החלק המעניין בתוכנית נמצא במשפט דסא א// 6356, של הפונקציה ()06זקטחוא, שמוצג כאן פעם נוספת לנוחותך. 5 380ע198 (הסמומוק1) = עטקמה | (פסותא5010 אס == 00688<-עפקחה) ]1 40 1אעס5 פס (ְשַנסה) 18 < (מסשפ4מאת<- צמפחת (סאאם) ) ב6פענס 65 1עמסמגת = צממתטחמם) ( )160 8 ,"נמסצע" ,6פה1ת) 056866014100 = פנסת (61מט81009 1 ,6מאמגצת 9 1 ,"2ממצע" ,31886 056866014108 = נסת (62מ1810090ם ,6מאמגעת 2 ,"מע" ,3188%) 05686601810 = בס (63מ1810090 ,6מהמגצת וע 1 0 שני אירועים קורים בכל פעם שבוחרים כרטיסיה חדשה. הפונקציה (50001060%סם. מסירה מהמסך את תיבת הדו-שיח הקשורה לכרטיסיה המוצגת (כידוע, לסגירת תיבת. דו-שיח לא-מודאלית יש לקרוא לפונקציה ()אוסטחווץסט5טס, ולא ל-()פסוגומחם, פרק 14: מבט נוסף על פקדים משותפים = 377 כמקובל בתיבות דו-שיח מודאליות). בשלב הבא מתקבלת הבחירה בכרטיסיה הנוכחית והפונקציה (6:63100/990 יוצרת את תיבת הדו-שיח שלה (וכור, או הדרך ליצור תיבות דו-שיח לא-מודאליות). בטרס תתקדם, עליך להפעיל את התוכנית במצבים שונים, כשאתה משנה את תיבות. הדו-שיח ופקדי הכרטיסיה. ניתן לקשר תוויות לחצן (100/005). לפקדי כרטיסיה, משימה רבת-אתגר שתוכל לנסות בעצמך. - יי ו ו ו 4 פסקדי תצוגת עץ הפקד האחרון שיסוקר בפרק זה הוא פקד תצוגת עץ ((סשח00 אופוצ 66זד). פקד זה משמש להצגת מידע באמצעות מבנה עץ. רשימת הקבצים של ז6זסוק סו מהווה דוגמה לפקד תצוגת עץ. עץ מרמו על מבנה היררכי של נתונים, ולכן. יש להשתמש בו להצגת מידע היררכי בלבד. פקדי תצוגת ע הינם רבי-עוצמה ותומכים. במגוון אפשרויות גדול. למעשה, ניתן לכתוב ספר שלם שיעסוק בפקדי תצוגת עצ בלבד! לכן, יתמקד סעיף וה ביסודות של פקדי תצוגה אלה. כאשר העקרונות יחיר נהירים לך, תוכל לשכלל את השימוש בפקדי תצוגת עץ ולשלב בהם רכיבים נוספים. יצירת פקד תצוגת עץ פקד תצוגת ע הוא חלון אשר נוצר באמצעות הפונקציה ()/0030600600. אר ()84ו0103161/:000, ומבוסס על המחלקה שוַ56/18חד 6/+. פקד תצוגת ע הוא בדרך. כלל חלון בן שנוצר באמצעות הסגנון 151816 -5//, ולכן הוא מוצג באופן אוטומטי 18507 05 אף הוא כלול אוטומטית בפקד. תצוגות ע מאפשרות לכלול סגנונותת קרובים בעת יצירתם, ראה למשל בדוגמה הבאה. 8 :כו ומבוא ל-ספו סגנון משמעות. 5 5/ד | שורות מקשרות בין ענפי העצ. דססדא5פוו1! 5/וד || שורות מקשרות בין השורש והענפים. פאסדד580/ 5/ד | לחצני כיוץ'/הרחבה משמאל לכל ענף. שילוב הסגנונות 8511085 5ד ו- דססהזה55א1/ 5/ד גורם להצגת שורות לכל אחד מהמרכיבים בעץ, וכך למעשה מתקבל המראה האופייני של העף. שילוב הסגנוך פווסדדט58 5/וד מאפשר להוסיף את לחצני ההרחבה והכיווץ התקניים. לחצנים. אלה מציגיס את הטימן + אס ניתן להרחיב את הענף להצגת רמה נוספת אחת לפחות,, או את הסימן - במקרה שהענף הורחב במלואו. ניתן גם ללחוץ על הלחצנים כדי להרחיב את הענף או לכווץ אותו. בעת יצירת הפקד נכללים כל שלושת הסגנונות. הקוד הבא יוצר חלון תצוגת עץ תקנית עשת 3 | סתנאס בא | פסצפמתד ₪5 | מנמנפנט פא פאספלטמפתא 5 | 5מאצמפתא פט ד תפמ 75 7 /* הצק 05 ב1ההמ */ ,שמת וט /* ב1התגת פסתגספה3 */ ,ספהצת ממטא / ברגע יצירתו, פקד תצוגת העץ ריק מפריטים. בסעיף הבא נתאר כיצד למלא את העץ בתוכן שיגור הודעות אל תצוגת עץ פקדי תצוגת עץ מגיבים להודעות אחדות. טבלה 14.3 מציגה כמה מהנפוצות שבהן. תדירות השימוש בהודעות פקד תצוגת העץ גבוהה מאוד, ולכן קיימות לשם כך פקודות. מאקרו מיוחדות. להלן פקודות המאקרו שמקבילות להודעות בטבלה 14.3. בכל המקרים, 6ח/6זדח מכיל את הידית של פקד הכרטיסיה. (מפפצת ממפדממתפה ,שתקססעעת כו/8)מ610:0168 80168מצע מססם 6דת אמדמםהצא ,6מהמסנעת תומוא הבא 2600108 001 (מש6נת מצד שתקם (במקסשנתת פאאא)ה1:0מסם 00108שצע מססם צסטתצפנתפפתד טצק1 ,סמאססעתת כוהזא) מסםנסעספה1 אבגטבסעע ממנטממתקה 4 (מ10מסג פנדט (הספצת אמְדמםהצא ,6מקשסנעת סומאא) 561608 2600188 .מס [מ0810ג תו פרק 14: מבט נוסף על פקדים משותפים | 379 תוכנית הדוגמה שבפרק מכילה שתי הודעות בלבד, ‏ חשחנדה6פא1 הזד סאאקא8 ואד. מובן שהיישום שלך יכול להכיל הודעות נוספות. טבלה 16.3: הודעות נפוצות של תצוגת העץ. הודעה דוד מ .אד סאאאקא אוד 6 אד ד אד 5050 משמעות. מוחקת ריט מתוך רשימת העץ. מחזירה ערך שונה מ-0. במקרה של הצלחה, ו-0 במקרה כלשלון. חוּזהק! הא 0. וחּזבק! מכיל את הידית של הפריט המיועד למחיקה. מרחיבה או מכווצת את רשימת העץ ברמה אחת. מחזירה. ערך שונה מ-0 במקרה של הצלחה, ו-0 במקרה כישלון וחפזבקו מציין את הפעולה. הפעולה חייבת להיות אחת. מהפעולות הבאות. פא ו0ספעיד (כיוו העץ), 05685507 | 0פ/רד (כיווץ הע ומחיקת פריטי הבנים), טלא 6/ד (הרחבת העץ), אד 5 ד (מעבר בין שני מצבים). חוּזהק! מכיל את הידית של הענף ברמה הגבוהה יותר (ענף. אב מקבלת את מאפיוני הפריט. מחזירה ערך שונה מ-0 במקרה. של הצלחה, ו-0 במקרה כישלון הבוקו הא 00 חמק מכיל את המצביע אל מבנה 118% /יד שמקבל את המידע אודות הפריט. מכניטה פריט לעץ. מחזירה ידית אל הפריט שהוכנס לעץ, אר וטא במקרה שהפעולה נכשלה. בוק הדא 0. חבזבק! מכיל את המצבוע אל מבנה 1855815180 ד שמכיל את המידע אודות הפריט. בוחרת פריט מתוך תצוגת העץ. מחזירה ערך שונה מ-0. במקרה של הצלחה, ו-0 במקרה כישלון. וחבזפקו+ מציין את הפעולה שמתייחסת לפריט שנבחר. במקרה של 6381 א6ד, הפעולה תהיה בחירת פריט. במקרה של 6ד 0₪07011‏ א6/ד, הפריט יסומן לצורך גרירה ושחרור (סוס-חה-חָבּזס). במקרה של 1857/1518 אסעד, התצוגה תיגלל כדי שהפריט שנבחר יופיע בראש הרשימה. וחפזם?! מכיל את ידית הפריט. 0 321חווו ומבוא ל-ספו ו כשפריט מסוים נבחר, המידע עליו יופיע במבנה 1558151806 עד הבא בק עמ ם הקט (עסם)תשעספהנם אמצממהקה ה קת ל סנ )חפזפקה היא ידית אל אב הפריט. אם לפריט אין אב, אזי שדה זה צריך להכיל את ד0סא 1/ד. הערך שב-וחטוזטספוזו! קובע את אופן הכנסת פריטים לעץ. אם הוא מכילל את הידית של הפריט, הפריט החדש ייכנס לע לאחר הפריטי. אחרת, וח9ז611פחזח יכול. לקבל אחד מהערכים הבאים. ערך המשתנה ו60ז5911ה1ת משמעות. זפפזז 1/ד | הכנסת פריט חדש לראש הרשימה 5 | ד | הכנסת פריט חדש לסוף הרשימה. 501 1ד | הכנסת פריט חדש לפי סדר האייב. התוכן של וזו מתאר את הפריטי. זהו מבנה ופד1. עד, שמתואר להלן | אפצז ץע מסטע וט מע מם הק 7 פאצט אנט 1 6 7 1 011 46 מצ8ק1 ותהתק1 ן הערך שמכיל המשתנה ₪5 קובע מי מאיברי המבנה 118% ד מכיל נתונים חוקיים. כשהמבנה מקבל מידע מפקד תצוגת העץ. להלן הערכים שהוא יכול לקבל. ערך במשתנה 1856 | | המשתנה (או משתנים) שמכיל(ים) את הנתונים. = וסאגו ד | וחפוזת פד הד =ז/וך | 50316, 100035%מ51 פד ד | 1 דפק, 60 פרק 14: מבט נוסף על פקדים משותפים ‏ 381 ערך במשתנה 35% | | המשתנה (או משתנים) שמכיל(ים) את הנתונים. ד | 96חנר ד 581 =ז/רד | 6סַ08ה1501601601 א וז אנד | סוחס תהק | אנד | החבזקו האיבר 5136 במבנה מכיל את המצב של פקד תצוגת העץ. להלן מספר מצבים נפוצים. סטטוס משמעות. 15850 .15/ד | פריט מבוטל. סמדווזוקס. 5זעד | פריט מסומן לצורך פעולת גרירה ושחרור סאקא עד | הענף שמסתעף מהפריט הורחב במלואו (ישים. לפריטי אב בלבד). טקא 115 | הענף שמסתעף מהפריט הורחב כדי רמה אחת, א יותר (ישים לפריטי אב בלבד). 00550 15ד | פריט בפוקוס. 580780 115 | פריט נבחר. המשתנה 513009256 קובע איוה מצב כרטיסיה יש להציב, או לקבל. זה יכול להיותת אחד, או יותר מהערכים בטבלה הקודמת. כשמכניסים פריט לעץ, ז19%;פק מצביע אל המחרוות שתוצג בעץ. כשמתקבל המידע הנוגע לפריט, חייב 216% להצביע אל המערך שיקבל את הטקסט. במקרה זה מציין 6016 את גודל המערך ש-אט1;פק מצביע אליו. ‏ אחרת, אין התייחסות ל- :6 אס קיימת רשימת דמויות שמקושרת עם פקד הכרטיסיה, 16 יכיל את האינדקס. של התמונה הקשורה אל פקד הכרטיסיה. אם לא קיימת רשימת תמונות, וזו יכיל. את הערך 1-. 906ו56/669010! מכילה את הסמל שנבחר מתוך הרשימה, אס קיים כזה. כאשר מתקבל מידע אודות פריט כלשהו, יציין 6006 את מספר הבנים הקשורים. עימו חבּזבק! מכיל נתונים שמוגדרים על ידי היישום. 2 זא32חווו ומבוא ל-ספו הודעות של תצוגת העץ כשנכנסים אל פקד תצוגת עצ נוצרות הודעות וזדסא ואאו, כלומר, העץ העץ שולח הודעות (6993065/// ח800063000). קיימות מספר הודעות מהעץ הקשורות אל פקדי תצוגת עצ. להלן ההודעות הנפוצות ביותרר הודעת הסוג06 00 = | משמעות. דודש ו אשד | פריט נמחק. 6אנסואקאשויופד .אוד | ענף עומד להתרחב, או להתכווץ. ספסאאקאפויומד ,אשד | ענף הורחב, או כווץ. 58106 אעד | פריט חדש עומד להיבחר. 8650א/0 58 אד | נבחר פריט חדש. כשמתקבלת הודעת קזדסא אע יצביע חזמוגלו אל המבנה זפפהד /אא. לפניך הקוד של המבנה ע18/ספהד אא 565066 6465מע 5 פאר 0010ב פאצט ומצע שד 15 אמצ ער ספ ן השדה הראשון של /ו5918חד %א! הוא המבנה התקני סחויוא. קוד ההודעה ייכנס אל. השדה 6006 של הסוזואו'. השדה וחסו=6חאוח באותו מבנה יכיל את הידית של פקד העא אשר הפיק את ההודעה. השדה 86000 מכיל מידע ייחודי להודעה מהפקד. המבנים 80/0 ו-או6וחפא מכילים. מידע אודות הפריט הקודם שנבחר (אם ישים) ושל הפריט החדש שנבחר (אם ישים) פופוק מכיל את נתוני המיקום של העכבר בעת הפקת ההודעה. במקרה של ההודעות 5610106186 אד ו-048650 561 אעד, מתאר 19016 את. הפריט שנבחר קודם, ו-אושאוחפזו מתאר את זה שנבחר וה עתה. במקרה של ההודעות. 6אזסאאקאפואפד עד ו-ססאהקאפואסד1 א/יד, האיבר אושאוחפאו מתאר את הפריט. שהוא האב של הענף שהורחב. במקרה של ההודעה |וטד1ד6 06 א/יד מתאר 0/6וחפא: את הפריט שנמחק. פרק 14: מבט נוסף על פקדים משותפום | 383 תוכנית הדגמה של תצוגת עץ התוכנית 6% .1766 הבאה (בתקליטור ו 96זד8014) מדגימה פקד תצוגת עצ. היא יוצרת פקד ולאחר מכן מכניסה אליו חמישה פריטים. התוכנית גם כוללת תפריט. שמאפשר להרחיב ענף בודד, את העץ כולו, או לכווץ ענף יחיד. כל בחירה של ענף חדש. בעץ באה לידי ביטוי בחלון התוכנית. תרשים 14.4 מציג דוגמת פלט של התוכנית. 0 106 <. 1 > 1006סה1 <.565180> 166סה1 "ת.1מ שמשל" ממטבסת1 (81832) 4601868 418 מטתע 32וצא 15 6ת001+ 8 פפנתת 32מנא 15 6ה001+ 3 5 ו 16 ספה מהמפעמם // 1 פסונהץ 5 /"ם1עסהסם" = שהבאסקתפפק1 ת57פסק1 "11085108מקת 0210ה00, 1529161 לספ (0ש1 *55תנססומ פאסס) 0186520195 מססם 018 10169566 )0046( ; ;(5* 38% ,46 ססא)מעסק0ע 18 שפצ פוחו ; [אטוז] 604 שמימ טמהמ ץע 0ם6צעם 4מננמפהצ מסוותפפאונ3 ,ססתבםפתנת מסותפפאנה) תובעתגאז צהפונמדעת 48 (שסתפ4תסת 18% ,סהנמנתסק1 10578 ,ססהגופה1טםצקת 14 4 ור 55 נספוה קהנפת1ח צסמת תת םואת ת32ח//ו ומבוא ל-0פו פרק 14: מבט נוסף על פקדים מטותפים ‏ 385 16 "אפ" /* 0098ב800102 1088 */ ה ("טאפועצוו" ,ססתבםפהזת) 8ע1084800810:8%0 = בשססתת ה סמ קט 00 550 55 בר ו 0 ד 1 [ (888ק. 856) תעגם, (שב *55ה1סטאאה עפאס0) 6918%6581895 מססם [ סא 558% נססוה? ב ו 1ב 11 ססר 01ב 001 אס ב סו 1 0 לב 1 סו ב 0 שגס1, אס ,סע ףסגמעמה<-סאמ1 = = 4הטסעףַאמ8מצעם אססט 6הםוטה2פם1<-סאמ1 = | סתבאמהםו2פק1 אססט ,82018580806מ1<-סאש1 = = 0206מ5ב8201ק1 אססט ( סו 12005 ו )10100 1 סור (א06א6) א86018669018598 תפגטם, ,הבעגתא אתתתפה ,ספמגו עמדט ,4מות כומו | סספפבחו אסהמננתס נטפמתת (88ש198 שתפתט ב 6 [56166108]80 89תם 68616ם לש סממה* תפפור 50 5טת1גם צסטהצפצוונתק 46 קת32חו/ו ומבוא ל-0פו 8 1 ו 0 0 886 ( (מבפא) הסוס ) 160 [ + סאתפאם 108 0886 ,66 פמ660פעם ,566%840601עה) המהקאם 960168 ; (סאתפאם משצ פע מ אופא 10% 886 (++1 ;שטא16 502)1-00 ,401 סש עצם) הבא 001%עם ; (פאתפאם פט ופ םס 18% 886 ,6מ6פמ660פעם ,40661הא66פעה) בממקאם 960168 ג (מפפה 011 משצי ופ צפפל 188 886 פע צעאם 188 0886 (8 מש פע [ צ סו 0 86 1239800 (הסאעוק1) = פטשמת | (ממסוות5050 ותוד == 0068<-עטקמה) :1 ;(1 ,מצטת ,6תמ)1162608608בטחד פה אםאהס35<- (עטקמה (הפנטממהל עאשם) ) )15 (".שתס" ,861600108) עקסעסט = 11668 א6אחם16<- (מססחה (ממצשממהל מוקם) ) )11 196 ("-80ת" ,581600108) 56 ( 17 פה ([2] מופסעצת == משטדה. אסאה155<- (עטקתה (מפצטממהץ עאקם)) )15 ;(".6פעמע" ,מ86160010) עקסעטט 18 אשאהס25<- (עטשמה (מפנטממעהל עאשם) ) )15 ;/(". צטסת" ,מ86160810) עסעטם 19 500 2<- (עסקמה (הפצטממהל עאשם) | )15 /(".שט1ת" ,ת86160810) עקסעסט 1 60 156<- (ףקמת (אפצטממתץ עא12)) = 6ה6שנ600פעה 1 פע 07 ( 666 131( 7 ( פרק 14: מבט נוסף על פקדים משותפים ‏ 387 8 הכח ומבוא ל-0=ו התוכנית וקוקה לקובץ המשאבים הבא להלן קובץ הכותר ה.6ש: פרק 14: מבט נוסף על פקדים משותפים ‏ 389 [<זם- ] מ בו זט 15 01601100 תרשים 16.4: דוגמת פלט של פקד תצוגת העא. הפונקציה )1061166 מאתחלת את פקד תצוגת הע. שים לב שהידיות של כל הפריטים. נמצאות במערך 0ח/6%פודח. ידיות אלו משמשות לויהוי פריטים בעת בחירתם מרשימת העץ. זחפזז0טטזדח מזהה את הפריט הנוכחי שנבחר. ידית זו נועדה למקרה. שהמשתמש מרחיב, או מכווץ ענף כלשהו בעורת התפריט. הפונקציה ()06זקח/ מטפלת בהודעות +01 או שמתקבלות בעת בחירת פריטים. חדשים. ערכו של אפאחפאא נבדק כנגד רשימת הידיות של הפריטים שבמערך 6ח/סזדה. כאשר נמצאת ידית תואמת, מדווחת הפונקציה על הבחירה החדשה. הדוגמה שהבאנו ממחישה את ההיבטים הבסיסיים של פקדי תצוגת העץ, ומציגה את. הנושא באופן כללי ביותר. לדוגמה, תצוגת העץ מאפשרת לגרור פריטים מע אחד ולשחרר אותם בעץ אחר. נושא זה ואחרים תוכל לחקור בעצמך.. 0 זקתכבחווו ומבוא ל-ספו פרק 15 ניהול זיכרון 1 מודל הזיכרון 32חו/ כפו שאולי הצלחת לנחש מסעיפים שכבר למדת, מודל הזיכרון של 32חו מקל מאודד על ניהול הזיכרון. המודלים קטן (03ח5), גדול (ְפָז3)), וענק (ָספָטז) אינם קיימים עוד בגרסת 32 סיביות של פאוסטחוו (פאוסטחוו אפ-32). מכיון שאין מודלים של זיכרון, תוכניות 2חוו אינן מבדילות יותר בין זיכרון קרוב (/3) ורחוק (31?). בלי סגמנטים (פזח6וח559), התוכנית והנתונים שלה ממוקמים באותו זיכרון ליניארי, שהופך את הטיפול בתוכניות גדולות ובקטעי נתונים לפשוט וקל יותר. בסביבת העבודה של 2ּחווו, לכל תהליך יש מרחב כתובות וירטואליות של 32 סוביותת משלו, שמגיע עד ארבעה ג'יגה-בית (468, 6035195 4). 5ו0חו) מקצה למשתמש שנר גייגה בית בויכרון הנמוך (00000000א0 עד =799958א0), ושומרת על שני גייגה בית: בויכרון הגבוה (80000000א0. עד =קקקקת:קאס) עבור גרעין המחשב (5'ס)טקוחס0. 61חזסא). הכתובות שמשתמשים בהן התהליכים אינן מייצגות עוד מקומות פוסיים: ממשיים בויכרון. במקום ואת, גרעין מערכת ההפעלה (התוכנה הבסיסית של מערכת. ההפעלה ששולטת במעבד, בויכרון, במטלות, ועוד) מחזיק עבור כל תהליך מפת דף 090 מק ששתמשת לתרגום כתובות וירטואליות (800/65595 |גטטזוע). לכתובות. פיסיות, כפי שדרוש. תהליך (0099זק). אינו יכול לכתוב מחו למרחב הכתובות שהוקצה לו (וכך יש הגנה מפני פגיעת תהליך אחד באחר). פא 32חואו, ממשק התכנות של 32 סיביות, תומך בפונקציות ההקצאה 6ו1א610931. ו-1063/106. בסביבת 32חוו, הקצאות גלובליות ולוקליות והות למעשה. בסביבת 6חו, הקצאה לוקלית (חסטגססוא !6063 היתה במרחב הכתובת של התהליך והקצאה גלובלית (חסטגסטו1 ו3פ0ו6) היתה מחוץ למרחב הכתובות שלו. בסביבת 2 מערכת ההפעלה מקצה את שני סוגי הזיכרון במרחב הכתובת של התהליך. עצמו, וכך היא מאפשרת לגשת לשני סוגי הויכרון ישירות מתוך התוכניות, על ידר שימוש במצביעים בני 32 סיביות. עם זאת, כמו שנלמד בהמשך, ייתכן שהקצאה לוקלית תורמת לכך שקל יותר להבין את התוכניות, ואסור לזלול בהיבט זה. פרק 15: ניהול זיכרון ‏ 391 סביבת העבודה של חואו מציגה שתי שיטות חדשות שבהן יכולות התוכניות לנהל את. הזיכרון: מנהל זיכרון וירטואלי (6סָח8ז! ץזסוחסו! וגוז ומנהל ערימה לוקאלי (זסֶח3! 630 10631). פונקציות 1 לניהול הזיכרון הווירטואלי דומות לפונקציות. זא המטפלות בניהול הזיכרון הגלובלי, אלא שהתוכניות יכולות לקבל מלאי (8690006) בלוקים גדולים של זיכרון וירטואלי ואחר כך להקצות אותם כנדרש. מנהל הערימה (130996 3630 החדש שונה ממנהלי הערימה שמשתמשים בהם בדרך כלל. מנהל הערימה החדש מאפשר לתוכניות ליצור ערימות רבות (05ס 6וקטוט!) וגם: ערימות. נפרדות (16205 31316ק56). הערימות הרבות מאפשרות שימוש יעיל ופשוט להקצאת כמויות קטנות של ויכרון (כמו הזיכרון שדרוש למצביע בודד). בסעיפים שיבואו בהמשך, תלמד יותר על הדרך שבה פווסוחוא מנהלת את הציכרון. כמו כן, תלמד עלל חלק מהפונקציות שמשתמשים בהם בתוכניות כדי לנחל בצורה יעילה את הזיכרון הגלובלי והווירטואלי של פשוסטחזו. 2 זיכרון גלובלי וזיכרון לוקלי בסעיף קודם למדת שבמודל הליניארי בן 32 הסיביות של יישומי 32ח/, פאוס6חואר (ולכן גם התוכניות שלך) אינה מבדילה בין זיכרון גלובלי לבין ויכרון לוקלי. כתוצאה מכך, 5סחוו (ולכן ג התוכניות שלך), אינה מבדילה בין ערימה גלובלית לבין ערימה לוקלית. על כן, האובייקטים של הציכרון שהתוכניות מקצות על ידי השימוש. בפונקציות 3/0106פס!6 ו-06ו16318 הינם זהים. פווסחוו מקצה את הזיכרון כפרטי (פופאוזק ח1), בדפים שמורים (פסמָּ ספשוחזוחס6, כלומר: דפי זיכרון שאינם נגישים. לתוכניות אחרות) עם אפשרות גישה לקריאה/כתיבה. זיכרון פרטי (עזסוחס!י! פואוזק) הוא זיכרון שתוכניות אחרות, ואפילו תוכניות שרצות (או פועלות) כרגע, אינן יכולות. לגשת אליר הפונקציות 6/0930 ו-06ו/1.00318 יכולות להקצות בלוק של זיכרון בכל גודל שיכולל להיות מיוצג על ידי 32 סיביות ולהתאים לויכרון הקיים, כולל מקום האחסון בקובץ. הדפדוף 6 הפ שנלמד עליו יותר בהמשך. אובייקטי הזיכרון שמוקצים בתוכניות יכולים להיות באחד משני מצבים: קבוע (במקומות מסוימים בויכרוף) או בר- העברה (10/80/6א). כאשר מקצים אובייקט זיכרון קבוע, הוא יישאר במקום הנתון. שלו בזיכרון הפיסי למשך כל משך החיים שלו. את האובייקטים שניתן להעביר אפשר לסמן כניתנים למחיקה 08376300 ב- א.3 פווסטחו/%, אובייקטי זיכרון שניתנים להעברה היו חשובים לניהול הזיכרון לעומת זאת, ב-2ּחו, משתמשים בתוכניות בויכרון וירטואלי, ולכן המערכת יכולה לנהל את הזיכרון מבלי שתהיה השפעה כלשהי על הכתובות הווירטואליות. כאשר המערכת מעבירה דף זיכרון, 605חו ממפה את הדף הווירטואלי למקום חדש. התוכנית משתמשת בויכרון בר-העברה כדי להקצות זיכרון שניתן למחיקה, אשר התוכנית תשתמש בו לעיתים קרובות וגס תמחק אותו מדי פעם (למשל, עבור מערכים. קטנים, מצביעים, וכדומה). 2 זקא32חווו ומבוא ל-ספו 3 הזיכרון הווירטואלי בסעיפים קודמים הצגנו את המונח זיכרון וירטואלי (/חסוחסו! והוטזו/). בסעיף הקודם. הסברנו שמנהל הזיכרון הווירטואלי מאפשר לתוכניות לראות את זיכרון המחשב הפיסי, ואת קובץ הדפדוף (שהוא בדרך כלל גדול יותר) - כגוש אחד של זיכרון רציף. כדי לאפשר לתוכניות לנחל את הציכרון בדרך זו, מנהל הזיכרון הווירטואלי מאפשר לתוכניות לעבוד עם מפות (805). המתייחסות לציכרון הממשי, במקוס לעבוד עם. הזיכרון הממשי עצמו. מכיון שעובדים עם זיכרון רציף מדומה, ולא עם גוש זיכרון אמיתי רציף, המעצבים של פאוסטחווו קראו למודל הזיכרון הוה בשם מודל הזיכרון הווירטואלי 1066 עזסוחפוי ומוזוע). תרשים 15.1 מציג מודל לוגי, שמראה כיצד 5ו0חו/ו משתמשת בציכרון וירטואלי כדי לגשת לזיכרון פוסי. בתובות הזיברון הפיר ב וה משמן בנגה בתובות זיכדון וירטואלר 6-ו ץע וחור 1 == וקפוה השעמ 2 185 פפ +-------ץ 1006 תרשים 15.1 : 5ו60חו/ משתמשת בציכרון וירטואלי כדי לגשת לזיכרון פוסי. בגלל הדרך שבה 6005חו. מנהלת את הזיכרון הווירטואלי, מרחב הכתובות הווירטואליות של כל תהליך גדול הרבה יותר ממרחב הכתובות הפוסיות של כל התהליכים ג יחד. פווסחוא. משתמשת בכונן הקשיח כמקום אחסון נוסף, של הזיכרון הווירטואלי. כמות הזיכרון הכללי שעומדת לרשות תהליך כלשהו, הינה הסכום של הזיכרון הפיסי ושל מרחב המקום החופשי שבקובץ הדפדוף (₪6 הו של פאוס0חוו, שנמצא בדיסק הקשיח. קובץ הדפדוף הוא קובץ בדיסק ש-60%05חוא משתמשת בו כדי להגדיל את הזיכרון האפקטיבי של המחשב. סח מארגנת את מרחב הזיכרון הווירטואלי בדפים (סטָק), או יחידות זיכרון (חסוח6/ 07 פזוחט). גודל. הדף תלוי במחשב המארח (0050). באפשרותך לקרוא לפונקציה 0/ח1ו6615/510 כדי לדעת מה גודל הדף במחשב. למדת שבמודל הזיכרון 32חוו, מערכת ההפעלה מספקת לכל תהליך (06059זק) את. מרחב הציכרון הפרטי שלו. כאשר מטלה (6גזחד) מופעלת בתהליך, היא יכולה לגשת. לויכרון ששייך לתהליך שלה בלבד. הזיכרון ששייך לתהליכים האחרים נסתר מפני פרק 15: ניהול זיכרון = 393 המטלה הפועלת, ואין לה גישה אליו. מכיון שלכל תהליך יש מרחב זיכרון וירטואלי פרטי של 468, הוא יכול לראות את הזיכרון כאילו הוא נמצאא במרחב הכתובות. 0 עד שחקפקקא0. שני תהליכים שפועלים בו-ומנית יכולים לאחסן זיכרוך בכתובת 0412341234 מבלי לפגוע זה בוה. שימוש באותה כתובת לא היה אפשרי, אם: שני התהליכים היו משתמשים באותו מרחב זיכרון. במציאות, מנהל הזיכרון הווירטואלי ממפה את הכתובת הווירטואלית לכתובת פיסית. ממשית - שיכולה להיות בויכרון הפיטי של המחשב, או בקובץ הדפדוף. מה שחשוב הוא, שהיישום יתייחס לכתובת הזיכרון 012341234 - ולא משנה אם היא נמצאת בויכרון הפוסי ((/ה) בכתובת ממשית 00012345א0, או בסקטור 14352 שבכונן הדיסק. של המחשב. לכן, מנהל הזיכרון הווירטואלי מאפשר לך להפעיל תוכניות רבות. בו-ומנית, מבלי לגרום לך לבחון כל הזמן אם תוכנית אחת אינה פוגעת בויכרון של תוכניות אחרות שפועלות במקביל במערכת. ב- 5וס6חו%+, מערכת ההפעלה מחלקת את מרחב הזיכרון הווירטואלי בן ה-8א4 של כל. תהליך לארבע מחיצות. המחיצה הראשונה, במרחב הכתובות 0400000000 עד 00039008 (מחיצה של 4/8 בתחתית מרחב הציכרון הווירטואלי) מיועדת לשמירת. תאימות עם 15-05 ועם פווטוחו/וו בגרסת 16 הסיביות. אסור שהיישומים של לּחוא+ יקראו או יכתבו במחיצה זו. אס היישום מנסה לנשת לזיכרון זה, מערכת ההפעלה. מחוירה מצביע .)א והדבר עלול לגרו לאי-יציבות (שמובילה לנפילת התוכנית, נעילת מערכת ההפעלה, וכדומה). סח משתמשת במחיצה שבמרחב הכתובות 0400400000 עד -0790958 עבור החלק הפרטי של התהליך; זהו מרחב כתובות שאינו משותף 300/65 60ז8חפחו 6, תהליכים אחרים של 032וו אינם יכולים לקרוא מזיכרון זה או לכתוב בו, אד לנשת בצורה כלשהי לנתונים של תהליך אחר שמאוחסנים בחלק זה, שגודלו כ- 268 עבור היישומים שלך, אתה צריך להחזיק את רוב החומר של התהליך שלך בתוך אזר מוגן זה. 5ס0ח//ו משתמשת ב- 268 הנותרים של מרחב הציכרון הווירטואלי של התהליך כדי ‏ לאחסן בו קבצים משותפים וקבצי מערכת ההפעלה. כאשר עובדים עם הזיכרון במרחב הכתובת של התוכניות, צריך להימנע מהגישה למרחב כתובת שמעל ל- 80000000א0, אלא אם התוכנית שלך מנסה באופן מפורש לגשת לקובץ משותף או אל קוב מערכת. 4 מבט נוסף על ערימות (25ן163]) למדת בסעיף 15.3 ש-0008ח1/ מקצה מרחב כתובות וירטואלי של 468 עבור כל תהלוך. מופעל. פונקציות הערימה (פחסטסחט פבסו) של לח מאפשרות לתהליך ליצור ערימה פרטית 657 סוהאזק), שהיא למעשה בלוק של דף אחד או יותר במרחב הזיכרון של התהליך. הפונקציה 6300/0366 יוצרת ערימה בגודל נתון, והפונקציותת 6 ו-869ק68/ מקצות: ומשחררות את הזיכרון שבערימה. כאשר יוצרים ערימות בתוכניות פאוסחואו, הערימה מתחילה בכתובת 079955 וממשיכה לגדול, אס דרוש, בתחום ה-2/8 של הזיכרון השמור לתהליך ( 6 0055 06 4 321חווו ומבוא ל-ספו באפשרות האובייקטים מסוג ערימה לצמוח באופן דינמי בתוך התחום שהוגדר להם. בעת שנוצרו על ידי הפונקציה 46901638 הגודל המקסימלי של הערימה מגדיר את. מספר דפי הזיכרון שנמצא במלאי הערימה (₪656065 מ3ס). הגודל ההתחלתי מגדיר. את ההקצאה הראשונית של מספר הדפים השמורים (0פ)וחוחסס) לקריאה/כתיבה. וסחוו. מקצה אוטומטית דפיס נוספים מהמרחב השמור 50369 86507460) של הערימה, כאשר הדרישות של 7630/06 עוברות את הנודל הנוכחי של הדפים שכבר הוקצו פס 6סזאווחחזסס). כלומר, 5ואס6חו מקצה דפים חדשים לשימוש התוכנית. מתוך מלאי האיכרון שלה. לאחר ש-605חו מקצה (פטווחוחסס) דפים לערימה, היא אינה משחררת דפים אלה עדד שהתהליך מסתיים, ‏ או עד שהתוכנית מפרקת את הערימה עם הפונקציה 00500369. מכיון שלויכרון המוקצה בערימה על ידי התוכניות עם ₪680106 יש מקום קבוע במרחב הזיכרון הווירטואלי של התהליך והמערכת איינה יכולה לדחוס את. הערימה, צריך לכתוב את היישומים כך שיגרמו למינימוס של פיצול בערימה. הזיכרון של ערימה פרטית נגיש רק לתהליך שיצר אותה. אס תיקיות קישור דינמי (37זפ/1 אחו-6והחמחעם, בקיצור 11ס) יוצרת ערימה פרטית, 005חו. יוצרת. את הערימה הואת במרחב הכתובת של התהליך שקרא לתיקיית הקישור הדינמי (תחת. א9 605חו, מעל 8000000א0). אך רק התהליך שקרא לתיקיית הקישור הדינמי יכולל לנשת אל המידע של תיקיית הקישור הדינמי - הערימה הפרטית שנוצרה. פירוש. הדבר, שתהליכים רבים שמפעילים את אותה תיקיית קישור דינמי, יכולים לגרום. למספר רב של ערימות פרטיות שנוצרות לתיקיה זו, אבל כל מופע של תיקיה יכול לגשת לערימה פרטית אחת בלבד. 5 הקצאת בלוק זיכרון מהערימה הגלובלית למדת שבאפשרות התוכניות להשתמש במספר טכניקות כדי להקצות סוגים שונים של ציכרון בסביבת א9 פאוסנחוא ו- ד/ פואסטחו\. אחת ההקצאות הנפוצות היא הקצאת זיכרון מהערימה הגלובאלית, אשר דומה להקצאת הזיכרון שביצעת כבר בתוכניותת 5, באמצעות פונקציות כמו ₪306 ו-3106. משתמשים בפונקציה 6003/4166 כדר להקצות זיכרון מהערימה הגלובלית. פונקציה זו מקצה מהערימה את מספר הבתים. שפי שמוגדר בפרמטר שלה. כותבים את הפונקציה 6100341106 כמו בהגדרה שלהלן ) 6109181106 מתמסנטט 8001 8110080108 100% // ,138עט פאצט 1106 60 5שףעט 08 צסמחטה // ואט ₪ הפרמטר פס מגדיר כיצד רוצים להקצות את הציכרון. אם הפרמטר פס הוא: אפס, ברירת המחדל היא הדגל ספאז" 6%6%%. מלבד הצירופים שאינס תואמים, אשר מובאים בטבלאות שלהלן, כאשר התוכנית קוראת לפונקציה 06ו/ו6/093 באפשרותה. פרק 15: ניהול זיכרון = 395 להשתמש בכל שילוב של דגלים שמפורטים בטבלאות. כדי לציין אם הפונקציה הקצתה זיכרון קבוע (66א₪) או בר העברה (10030/6/), צריך להגדיר את אחד הדגלים. שמפורטים בטבלה 15.1 טבלה 15.1: סוגי הקצאת זיכרון לשימוש עס 61058181!06. דגל פירוש ספא ואפוא6 | מקצה זיכרון קבוע. התוכניות אינן יכולות לשלב דגל זה עם: הדגל 10/6886 616% אוו 6 01508081 %פ/6. הערך המוחזר מצביע לבלוק הזיכרון, כדי שאפשר יהיה לגשת. אליו פטס 6% | מקצה זיכרון בר-העברה. התוכניות אינן יכולות לשלב דגל. זה עס הדגל 1650 6%8%. הערך המוחזר הו ידית של. אובייקט הזיכרון, המייצגת ערך בן 32 סיביות, והיא פרטית. לתהליך הקורא. כדי לתרגם את הידית למצביע, צריך להשתמש בפונקציה 00311066ו6. הד | משלב את הדגל 1850 6% עם הדגל זזא2601 65% שבטבלה 15.2 6 | משלב את הדגל 815הפשסו 698% עם הדגל. דואז2680 66% שבטבלה 115.2 בנוסף לדגלים שמצוינים בטבלה 15.1, הפרמטר פסוט יכול להכיל כל ערך מהערכים. שמפורטים בטבלה 15.2, מלבד המקומות שהטבלה מציינת שאי אפשר לשלב את הדגל. עם דגל אחר. טבלה 15.2: ערכי דגלים נוספים לשימוש עם הפונקציה 61088181!06. דגל פירוש מהאוופפסס 6/8 | מקצה זיכרון שמשמש פונקציות חילוף נתונים דינמי (6פַה560 813 ווהפחץם, בקיצור פסם), עבור תקשורת. במסגרת חילוף נתונים דינמי. דגל זה שימושי לתאימות. עם יישומי 16חו. חלק מה*ישומים יכולים להשתמש. ב-0085%885 618% כדי לשפר את פעולות חילוף הנתונים הדינמי, ועל התוכניות להגדיר את הדגלל פס 66% אם הן ישתמשו בזיכרון לחילוף. נתונים דינמי. רק יישומים שמשתמשים בחילוף נתונים. דינמי, או הלוח (000316ו01) המשמש להתקשרות בין תהליכים, צריכים להגדיר את הדגל 05185 6/16%%. 1508085 611₪%% | מקצה ציכרון שאפשר למחוק אותו כשאינו דרוש עוד (והר זיכרון שאינו קבוע בכתובת ספציפית במרחב הכתובת. הווירטואלית של התהליך). התוכניות אינן יכולות לחבר. דגל וה עם הדגל 150 6/6%. ייתכן שחלק מהיישומים מבוססי 32חו/ו יתעלמו מדגל זה. 6 321חווו ומבוא ל-ספו דגל פירוש הפוצ | אפ | 2חוו מתעלמת מדגל זה. 871 32ח/% מספק דגל זה. לתאימות עם גרסאות קודמות של פוסטחווו. דסאקווס6סא פוא | אינו מדוחס או מוחק זיכרון כדי לספק דרישות להקצאת. אכרון. 150%0פסא 616% | אינו מוחק זיכרון כדי לספק דרישות הקצאת הציכרון. ספאאהם. דסא ואפויז6 | 32חוו מתעלמת מדגל זה. 871 32ח/% מספק דגל זהה לצורך תאימות עם גרסאות קודמות של פשוסחו/ זהנדסא ואוו | 32חוו מתעלמת מדגל זה. 1ק ₪032 מספק דגל זהה לתאימות עם גרסאות קודמות של פשוסטחזו. שה5 ישו | מקצה זיכרון שמשמש את פונקציות חילוף הנתונים. הדינמי 568 0318 6וחמחעם, בקיצור שספ), לתקשורת במסגרת חילוף נתונים דינמי. כמו הדגל. פס ו 25801 68% | מאתחל את הזיכרון באפס. בנוסף להגדרת סוג הזיכרון שעל הפונקציה 6/0036 להקצות, התוכנית חייבת. לפרט באמצעות הפרמטר 68/6055 את מספר הבתים שצריך להקצות. אם פרמטר שווה לאפס, והפרמטר חַגט מגדיר את הדגל 5 81פסו 6%6%, הפונקציה תחזיר ידית לאובייקט זיכרון ש-08חו מסמנת כניתן למחיקה. אם הפונקציה מצליחה, הערך המוחזר יהיה הידית של אובייקט הזיכרון החדש שהוקצה; אם הפונקציה נכשלת, הערך המוחזר יהיה וטא אם הערימה אינה מכילה די שטח חופשי כדי לספק את הדרישה, 6100341106 מחזירה. וטא. מכיון ש-06או3פס/6 משתמשת בערך ₪011 כדי לציין שגיאה, פווסשחו/ו לעולם. אינה מקצה כתובת וירטואלית שערכה אפס. לכן קל לגלות את השימוש במצביע טא. פווסטחוו יוצרת את כל הזיכרון עם גישה להפעלה, ואינה מחייבת פונקציה מיוחדת כדי להפעיל באופן דינמי קוד שנוצר. פווס0חו// מבטיחה שציכרון שהוקצה על ידי התוכנית עם הפונקציה 6093/06 יקבע על פי גבולות של 8 בתים ‏ סוץ8 8 3 0005חו/ מגבילה את הפונקציות >סוהו3פס!6 ו-1063/0106 להקצות יחד עד 65,536 ידיות לכל תהלוך, עבור ציכרון 68866ש0! 616% (עבור זיכרון שמוקצה גלובלית) ועבור זיכרון 058845 15% (עבור זיכרון שמוקצה לוקלית). הגבלה זו אינה חלה. על זיכרון 0פא1 68% או ספאזי 8י). אם הפונקציה 6100841106 מצליחה, היא מקצה לפחות את כמות הזיכרון שנדרשה בקריאה לפונקציה. אס הכמות שבפועל ש-0ו/6/00810 מקצה גדול יותר מהכמות שנדרשה בקריאה לפונקציה, היושום יכולל להשתמש בכמות כולה. כדי לדעת את מספר הבתים שהוקצו בפועל על ידי הפונקציה 6, משתמשים בפונקציה 610931506. פרק 15: ניהול זיכרון = 397 כדי להבין יותר טוב את פעולת הפונקציה 06ואו6/008, = התבונן ‏ בתוכנית. 6 |8פס/6, = שנמצאת | בתקליטור = המצורף | לספר | וה | (בתיקיה 5פבת)8006559285). התוכנית מקצה זיכרון כדי לאחסן מחרוזת. כאשר מתחיל היישום, הקוד שמטפל בהודעה 685416 א/ יוצר מאגר בן 27 תווים (26 בתים וה-11 המסיים). כאשר המשתמש בוחר !6ד, התוכנית מציגה את המאגר ואת תוכנו על המסך. 6 שימוש ב-6!008]864!!06 כדי לשנות גודל ערימה באופן דינמי למדת בסעיף 15.5 שבאפשרות התוכניות להשתמש בפונקציה 60931806 כדי להקצות. ציכרון בערימה הגלובלית. אך פעמים רבות, התוכנית חייבת להקצות בלוק זיכרון מחדש, לאחר ההקצאה הראשונה. אפשר לעשות צאת על ידי הפונקציה 06ו61003/864. פונקציה וו משנה את הגודל או המאפיינים של אובייקט זיכרון גלובלי מוגדר. הגודל יכול לגדול או לקטון, בהתאם לקריאה. את הפונקציה 6003/863/06. כותבים: בתוכניות, כמו בהגדרה זר ) 1106ת4186מ₪10 מתמס1טט 60%מס עעסמסה 910281 שת: 50 ב1התמת // 00 10% סמ 05 5126 אשת // ,9868 סהסאם 001605 208110068 50 שמת // טפאט ₪ הידית וחשווח מוהה את אובייקט הזיכרון הגלובלי ש-6ו6003/861. מקצה מחדש. אחת משתי הפונקציות 6/003/0/06/ או 6/003/864106/ החצירו ידית ואת קוד הפרמטר 0408005 מגדיר את הגודל החדש, בבתים של בלוק הזיכרון. אם הפרמטר 5 שווה לאפס והפרמטר פסטוחט מגדיר את הדגל 5 8אפשס) ‏ 6%5%, הפונקציה. מחזירה את הידית של אובייקט ציכרון ש-פווסשחואו סימנה כניתן למחיקה. אם הפרמטר 08065 שווה לאפס והפרמטר 5סטוחט מגדיר את הדגל טסו שו6, פונקציית 01 מתעלמת מהפרמטר 08/065. הפרמטר פסָו מגדיר כיצד להקצות מחדש את אובייקט הזיכרון הגלובלי. אס הפרמטר פסטחט מגדיר את הדגל +תופסו 8%א6, הפרמטר פסטוחט מגדיר את המאפיינים של אובייקט הזיכרון, ופונקציית 1 מתעלמת מהפרמטר 8065ו6, אחרת, הפרמטר פסוט שולט בהקצאה. מחדש של אובייקט הציכרון. 8 71א52חוו ומבוא ל-ספו כאשר קוראים לפונקציה ,6/093/88%/06‏ התוכנית יכולה לשלב את הדגל +זנססוי אפוא6 עס אחד או שני הדגליס שמפורטים בטבלה 15.3. טבלה 15.3: דגלים שמתאימים לשימוש עס הדגל אנ סו 6%ו6. דגל 15 ו ב פירוש מקצה ויכרון שניתן למחיקה, כאשר מגדירים גם את הדגל 008% 6%5%. פווס6חו מתעלמת מדגל זה, אם. האובייקט הוקצה מקודס כבר- העברה (05א), אר אס הוגדר הדגל 10/5815 68%. עבור דא! פווסחו/ו בלבד: משנה אובייקט זיכרון קבועע לאובייקט זיכרון בר-העברה, כאשר מגדירים את הדגל. סו ו אם הפרמטר פסטט אינו מגדיר את +זזססו 6%6%, הוא יכול להיות כל שילוב של הדגלים שמפורטים בטבלה. טבלה 15.4: דגלים נוטפים עבו דגל ב ו 250 ו 14 ור הפרמטר בוח פירוש כאשר 0008065 שווה לאפס, 10068815 676% מוחק. את בלוק הזיכרון הקודם בר-ההעברה ואשר ניתן למחיקה. כאשר מונה הנעילה טחטסס 6066 של האובייקט אינו שווה לאפס, או אם הוא אינו בר-העברה וניתן למחיקה, הפונקציה נכשלת. כאשר 00895 אינר שווה לאפס, 10068865 6/16% ואפשר למערכת. להעביר את הבלוק שהוקצה שוב למקום חדש, מבלי לשנות את המאפיינים בר- העברה (פוסַסוו) או קבוע (80אח) של אובייקט הזיכרון. אס האובייקט קבוע, יכול. להיות שהידית אשר הפונקציה מחזירה תהיה שונהה מהידית המוגדרת על ידי הפרמטר וחסווח. כאשר האובייקט בר-העברה, התוכנית יכולה להעביר את. הבלוק מבלי לגרום לידית האובייקט להיותת בלתי-תקפה (9ו14806 שחד חַוְוּח1), אפילו אם. קריאה קודמת לפונקציה 6/03/6066 נועלת את. האובייקט כרגע. כדי להשיג את הכתובת החדשה של בלוק הזיכרון, צריך להשתמש ב-10031806%. מונע מ-65ו00חו/ מלדחוס או למחוק ציכרון לצורך. סיפוק דרישת הקצאת הזיכרון. גורס ל-5וס6חו/+ לאתחל את תוכן הזיכרון הנוסף. באפס, כאשר אובייקט הזיכרון גדל. פרק 15: ניהול זיכרון = 399 אם הפונקציה מצליחה, הערך המוחזר הוא הידית של אובייקט הזיכרון שהוקצה מחדש; אם הפונקציה נכשלת, הערך המוחזר הוא 1שא. אס 8906וגפס/6 מקצה מחדש אובייקט בר-העברה, הערך המוחזר הוא ידית של אובייקט הזיכרון. כדי להמירר את הידית למצביע, צריך להשתמש בפונקציה 60031106. אם 06ו0018601ו6 מקצה. מחדש אובייקט קבוע, הערך המוחזר של הידית יהיה הכתובת של הבית הראשון של בלוק הזיכרון. כדי לגשת לזיכרון, באפשרות התהליך פשוט להשתמש בהמרת סוג 6950) של הערך המוחור למצביע. אס 609318606 נכשלת, היא אינה משחררת את. הזיכרון המקורי, והידית והמצביע המקוריים יישארו תקפים. כדי להבין טוב יותר את פעולת הפונקציה 003186%06ו ,6‏ התבונן בתוכנית 6 61058 שנמצאת בתקליטור המצורף לספר זה (בתיקיה 018015). התוכנית. פועלת במידה רבה כמו התוכנית 1106 ו6/088. עם זאת, התוכנית ₪60/106 6/0931 גס מקצה מחדש עוד 27 בתים של זיכרון כדי להציג את האלף-בית באותיות קטנות כאשר המשתמש בוחר באפשרות 11650 7 מחיקת בלוק זיכרון שהוקצה בוודאי השתמשת בעבר בפונקציות 66 ו-661686. כדי למחוק (50316ו0). זיכרוך שהוקצה בתוכניות. כאשר מקצים או מקצים מחדש זיכרון מהערימה הגלובלית, צריך. להשתמש בפונקציה 6093108636 כדי לשחרר את הציכרון לאחר שהתוכנית סיימה את השימוש בו. הפונקציה 310/86316פס/6 מוחקת בלוק זיכרון גלובלי שהוקצה קודם. על ידי השימוש בדגל 0150880886 אפוא6. מונה הנעילה של אובייקט הזיכרון שרוצים למחוק חייב להיות אפס, או שהפונקציה תיכשל במחיקת הזיכרון. משתמשים. בפונקציה 6003101936 בתוכניות כמו בהגדרה שלהלן 10 תפנב 0% צפסתסת 16081 סט 0 16ממת // 15 הסט / הפרמטר שופ מצהה. את אובייקט הזיכרון הגלובלי שרוצים למחוק. אם הפונקציה מצליחה, היא מחזירה את הידית של אובייקט הזיכרון (כלומר, הידית חשופו0ח). אש הפונקצייה נכשלת, היא מחזירה את הערך )טא הפונקציה 5636וס!3מסו6 מוחקת רק אובייקטים גלובליים שהתהליך הקורא הקצה עלל ידי השימוש בדגל 015680815 6%/6%. אס התהליך מנסה למחוק אובייקט קבוע אור נעול, הפונקציה נכשלת. למרות שהפונקציה 5036ו0ו6/003 מוחקת את בלוק הזיכרוך של האובייקט, ידית האובייקט נשארת תקפה. התהליך יכול להעביר באופן עקבי את הידית אל הפונקציה 6100318806 כדי להקצות בלוק זיכרון גלובלי אחר שמוגדר עלל ידי אותה ידית. כדי להבין טוב יותר את פעולת הפונקציה 086316ו6003, התבונן בתוכנית 66 |8פס61 שנמצאת בתקליטור המצורף (בתיקיה 0115 0 321חווו ומבוא ל-ספו 8 הפונקציה 766-]1008 בסעיף הקודם למדת על הפונקציה 6/093/0186316, אשר התוכניות משתמשות בה, כדיי למחוק בלוקים של זיכרון שהוקצו קודס, ולהשאיר את ידית הזיכרון שנמחק לשימוש. בעתיד. עם זאת, כאשר יודעים שהתוכנית לא תשתמש יותר באותו בלוק זיכרון, ואם. רוצים לשמור על התוכנית מלהשתמש באותו בלוק זיכרון, או אם לא בטוחים אם התוכנית הקצתה את הציכרון על ידי השימוש בדגל 150880865 6/16%, התוכנית. יכולה להשתמש בפונקציה 8/65ו6/093. כדי לשחרר אובייקט זיכרון. הפונקציה 036 משחררת את אובייקט הזיכרון הגלובלי המוגדר וגורמת לידית האובייקט. של הציכרון להיות לא-תקפה. משתמשים בפונקציה 61003666 בתוכניות כמו בהגדרה. שלהלן מו .010881 ) פע 61081 הסט הפרמטר וחפווח מציין את אובייקט הזיכרון הגלובלי שרוצים לשחרר. כאן, לא כמו בפונקציה 0/863/6ו6/008, כאשר הפונקציה 6003/8169 מצליחה, הערך המוחזר הוא: 1וטא. אס הפונקציה 6003805 נכשלת, הערך המוחזר יהיה שווה לידית אובייקט. הזיכרון הגלובלי. חריגה מסוג הרס ערימה (חסווקטזזס6 קבטו או שגיאת גישה (חס0גוסו 00695א) = אסנזא סז 400855 אסנדק5סא6 - יכולה לקרות כאשר התהליך מנסה לבחון את הזיכרון או לשנות אותו, לאחר שכבר שחרר את הזיכרון קודם לכן. אס הפרמטר ויפוח שוזה ל- 1 15166פס/6 נכשלת והמערכת תיצור חריגה מסוג שגיאת גישה. שתי הפונקציות 6/0096 ו-1063/566 = משחררות ‏ אובייקט ‏ זיכרון ‏ נעול 00600 = עזסות6//-106666). = לאובייקט. ציכרון נעול יש מונה נעילה. גדול מאפס. הפונקציה 6003/06 נועלת אובייקט זיכרון גלובלי (המונע מפונקציה אחרת למחוק. את אובייקט הזיכרון) ומגדילה את מונה הנעילה של האובייקט באחד. הפונקציה 60031006 מבטלת את הנעילה של אובייקט הציכרון ומפחיתה את מונה הנעילה. באחד. לקבלת מונה הנעילה של אובייקט זיכרון גלובלי, צריך להשתמש בפונקציה סו + העדה: תתת זא פאסטחוו, אם היישום מופעל תחת מנפה שגיאות גירסה (086) של זא 5סחווו, כמ שמופץ בתקליטור ואסח פ6 אס5, הפונקציות 6003/5166 ו-063/5169. מכניסות נקודת עצירה לפנר שחרור האובייקט הנעול. דבר וה מאפשר למתכנת לבדוק בדיקה כפולה של ההתנהגות הדרושה. כאשר במצב וה מקלידים 6 בומן השימוש במנפה השגיאות (פפַפ060), תתבצע פעולת השחרור. פרק 15: ניהול זיכרון 401 9 הפונקציות 6/003/1.06% -16 0313 כאמור, באפשרות התוכניות להשתמש בפונקציות 6003166 ו-6100886806. כדר להקצות זיכרון מהערימה הגלובלית. אך כמו שראית, שתי פונקציות ההקצאה מחזירות ידית אל הזיכרון המוקצה. עם זאת, תרצה שרוב התוכניות תשתמשנה בויכרון עס מצביע. באפשרותך להשתמש בפונקציות 600316 ו-6/003/868/06 כדר להמיר בקלות את הויכרון שהוקצה למצביע וחורה שוב אל הידית. הפונקציה 6% נועלת אובייקט ציכרון גלובלי ומחוירה מצביע אל הבית הראשון בבלוק. הזיכרון של האובייקט. אין באפשרות התוכניות להעביר או למחוק את בלוק הזיכרו. הקשור עם אובייקט זיכרון נעול. עבור אובייקטים של זיכרון המוקצים על ודי השימוש בדגל 085 61416%, הפונקציה מגדילה את מונה הנעילה שקשור עם. אובייקט הציכרון. את הפונקציה 6/008106% כותבים כפי שמוצג לחלן. 6109811008 פצסטקת 60%נמס עפסמסה 610081 סת6 05 2882085 // 010 / הפרמטר וזח שבפונקציה 6/0931106% מצהה את אובייקט הזיכרון הגלובלי. אחת. משתי הפונקציות 6003101066 או 06וחוגפס/6. מחזירות. את הידית הזאת. אם הפונקציה 6ואו3פס|6 מצליחה, הערך המוחור יהיה מצביע לבית הראשון בבלוק הזיכרון; אס היא נכשלת, הערך המוחזר הוא א. מבנה הנתונים הפנימי של כל אובייקט זיכרון מכיל מונה נעילה שמאותחל באפס. עבור אובייקטים של ויכרון מסוג בר-העברה (6וטפעס!), 6/0991106%. מגדילה את המונה באחד, והפונקציה 6%טוחטופ6/0 מפחיתה את המונה באחד. עבור כל קריאה שהתהליך מבצע ל-6/09311066 = עבור אובייקט, התהליך חייב לבסוף לקרוא ל-06%/ח0ו6/093. התוכנית אינה יכולה להעביר או למחוק זיכרון נעול, אלא אם כן התוכנית מקצה מחדש את אובייקט הזיכרון על ידי שימוש בפונקציה 6ו003/864ו6. בלוק הזיכרון של אובייקטים נעולים נשאר נעול, עד שהתוכנית מורידה את מונה הנעילה של בלוקי הזיכרון לאפס, ואו באפשרות התוכנית להעביר, או למחוק את הזיכרון. לאובייקטים של זיכרון שהוקצו על ידי השימוש בדגל ס5אז 616% יש תמיד מונה נעילה שערכו אפס. עבור אובייקטים אלה, ערך המצביע המוחור שווה לערך הידית. המוגדרת. אס התוכנית מחקה כבר את בלוק הזיכרון המוגדר, או אם גודל בלוק. הזיכרון שווה לאפס בתים, הפונקציה 60931106% מחצירה 01. ערך מונה הנעילה של. האובייקטים הנמחקים הוא תמיד אפס. את הפונקציה 003106%ו6 כותבים בתוכניות. כמו בקטע הקוד שלהלן :(27 ,פאא6) 6108181106 = השעת מהמסנטט ת095ק1 ((מפעמ) 81506%מ610 (578ת1) = תסק) 65 משעת) :4 (מתט 2 זקה2בחווו ומבוא ל-ספו בקטע קוד וה מקצים ידית ל-27 בתים של זיכרון (המשתנה וחפואו), אחר כך נועלים. את הזיכרון הזה במצביע וחפוק והדבר גורס באותו ומן לחמרה לסוג מחרוות. כמו שלמדת, התוכניות משתמשות פעמים רבות ב-31106%פ6/0 כדי להמיר ידיות זיכרוך למצביעים. בדרך כלל, משתמשים בפונקציה 6003188006 כדי לחמיר מצביע לידיתת איכרון. הסיבה העיקרית להמרת המצביע חזרה היא ההכנה לפקודה 8108ו0/003. את. הפונקציה 6093/8066 כותביםם בתוכניות כמו בהגדרה זר ) 6104188018 מתמסנט 106% עעסחסה 010281 שמ% ס צסטמנסק //‏ מסאק מצסטסק1 לו הפרמטר וח6וום הוא מצביע לבית הראשון של בלוק הזיכרון הגלובלי. הפונקציה 06% מחזירה מצביע זה. אם הפונקציה 6093/888066 מצליחה, הערך המוחזר הוא, ידית של אובייקט הזיכרון הגלובלי המוגדר; אס הפונקציה 1003182066 נכשלת, הערך המוחזר הוא א כאשר הפונקציה 600306 = מקצה. אובייקט. זיכרון על ידי השימוש בדגל הטסו 6//6%, היא מחזירה את ידית האובייקט. הפונקציה 6093/106% ממירת ידית זו למצביע אל בלוק הזיכרון, ו-6/093/08006 ממירה את המצביע בחזרה לידית. בדרך כלל, כותבים את הפונקציה 6100318066 כמו שרואים בקטע הקוד שלהלן (מששם) 1008188816 = הסוא תמסט ( ו 10% מנט = מס ; (מממתפטסון ואפוע ,1+ (26*2) ,מפעת) 100נתסה81מ010 = השעת במקרה המסוים הזה, התוכנית יוצרת את הידית, ואחר כך מבטלת את הנעילה שלה. (שחרור הזיכרו. אחר כך, התוכנית מקצה מחדש את הזיכרון, כמו שנדרש. לעיתים. תחוור ותמיר את הידית שוב למצביע. 0 בדיקת זיכרון המחשב למדת ש-8וס6חו מחזיקה מידע אודות הזיכרון הפיסי ואודות הזיכרון הווירטואלי של המחשב. פעמים רבות, התוכניות תדרושנה מידע על גודל הזיכרון החופשי, אשר התוכניות ‏ (היישומים) ‏ יכולות ‏ לגשת אליו. ‏ אפשרות להשתמש בפונקציה 3 כדי להשיג מידע על המצב הנוכחי של ציכרון המחשב. בסיום. פעולתה, הפונקציה מחוירה מידע על הזיכרון הפיסי והווירטואלי. ‏ משתמשים בפונקציה 6/008116000/51365 בתוכניות כמו שרואים בהגדרה שלהלן 101 פצסטר עפסהפה שמ) 60 שפסתנסק //‏ 6%::ממק1 פטצהץפצהסונטעפ 1 // ו פרק 15: ניהול זיכרון ‏ 403 הפרמטר זמ!/8ק! מצביע למבנה 17%18%08%515705 אשר מכיל את המידע אודות. הזיכרון התקף שמוחזר על ידי 305ו5/מסוחסויוו003ו6. לפני הקריאה לפונקציה 6 03ס/6, התהליך הקורא צריך לקבוע ערך לאיבר חופַח0049 של מבנה וה. המבנה 108%515705א6 מכיל מידע על הזיכרון התקף כרגע. ממשק התכנות. קה 5סחווו מגדיר את המבנה 6/0₪%515705ו!, כמו בדוגמה זור | 05 תשפצהסעפם ‏ 565006 6465מעט (5 טפ תלפצהסוומונ) ‏ 515608 // פאס 8פג מ1 עעסהסה 05 שהסצסק // טאו עצסחסה 81ש1פצתם 0% בשמצט // 01 סהסאם עמ עפסחשה 81ס1פעתק ש6שף // שמא סהסאם יתנ 05 ששפעם // = /90:102000115אם סהסאם 6 198 05 פשפעם 5566 // = /869116ט1צפעת0 סאסאם קפ 2882685 05 8שפעמ עשפמ //‏ ;1הטטצ090:8101ם סהסאם =פפעם עספט 68ע+ //‏ ;1במטצנט831עמאם סהסאם ונפו [ כמו שאפשר לראות, המבנה 46/!08%515105. מאחסן מידע חשוב אודות זיכרוך המחשב הזמין כרגע. טבלה 15.5 מסבירה את איברי המבנה 5105ד5/הסואפו באפשרות היישום להשתמש בפונקציה 805ו5עוסוח/שומסו6 כדי לקבוע כמה זיכרוך ניתן להקצות ליישום, מבלי להתנגש עם יישומים אחרים. המידע שמחזירה הפונקציה. 036 משתנה במהירות, ואין הבטחה לכך ששתי קריאות עוקבות לפונקציה זו יחוירו את אותו המידע. טבלה 15.5: איברי המבנה 10₪515105פו איבר תיאור חוסָחו0 | מציין את גודל המבנה. על התהליך הקורא לקבוע ערך לאיבר זה לפני הקריאה ל-519005/ףסוח/א/טס/6. 56ץזסוחו | מגדיר מספר בין 0 ל-100 שנותן מידע כללי אודות הניצול. הנוכחי של הזיכרון. הערך 0 מציין שהציכרון אינו בשימוש. והערך 100 מציון שימוש מלא. תומוד | מציין את מספר הבתים הכולל של הציכרון הפוסי. עחל!ובּהוו0 |. מציין את מספר הבתים הכולל של הזיכרון הפיסי הזמין 6ו65חקו1סדוו | מציין אאת מספר הבתים הכולל שכל התוכניות יכולות לאחסן. בקובץ הדפדוף (6/₪ סָק). שי לב, מספר זה אינו מייצג את הנודל הפיסי הממשי של קוב הדפדוף בדיסק. 6וסָהקוומצהשונ. | ציין את מספר הבתיס הזמין בקובץ הדפדוף. 4 321חווו ומבוא ל-ספו איבר תיאור ובנטחוו13סדו₪ | מציין את מספר הבתים הכולל ש-6005חו/ו יכולה לתאר באצור. המשתמש של מרחב הזיכרון הווירטואלי של התהליך הקורא: והטטזוש!ובא/ו | מציין את מספר הבתים בזיכרון שאינם במלאי השמור. (65660זח) רשאינכו מוקצים (066א!וחוחס6חט) באזור. המשתמש שבמרחב הזיכרון הווירטואלי של התהליך הקורא. כדי להבין יותר טוב את השימוש בפונקציה 0/53005וח6/ו61003, התבונן בתוכנית. 95 וח6!! ו61003, שנמצאת בתקליטור המצורף לספר זה. התוכנית בודקת את מצב הזיכרון הנוכחי ומחזירה את גודל הזיכרון אל חלון התוכנית. 1 יצירת ערימה בתוך תהליך בסעיפים קודמים למדת להקצות זיכרון לתוכניות מהערימה הגלובלית. אך כמו שלמדת קודם, התוכניות מקצות גם בלוקים קטנים יותר של זיכרון מערימה לוקלית. (פרטית). הפונקציה 369006305 יוצרת אובייקט ערימה שהתהליך הקורא יכולל להשתמש בו. הפונקציה שומרת מלאי (65006ה) של בלוק רציף במרחב הזיכרון הווירטואלי של התהליך, ומקצה מקוס אחסון וירטואלי ראשוני מוגדר מבלוק המלאי. את הפונקציה 63016315 כותבים בתוכנית, כמו בהגדרה שלהלן. א מנפוותה 6 811008610 סמש // 10 סאסום מפשג 416181 // ,181815126מצאם סאסום 6 קפסת משת1אמה // 6 סאסוום ו הפרמטר פחסטקס! מגדיר מאפייני רשות (דגלים) לערימה החדשה. דגלים אלה ישפועו על הגישות הבאות לערימה החדשה, באמצעות קריאות לפונקציות הערימה סו ק3ס3!, 66זלבסאז, 6סווהפהקבסה, ו-5026כבסוא). באפשרותך להגדיר דגל אחד או יותר מהדגלים שמפורטים בטבלה 15.6 טבלה 15.6: הדגלים האפשרייס עבור הפרמטר 5חסוזק0. דגל תיאור אסנדק5סאם מדההםווס6 קגסוו | מגדיר שהמערכת תיצור הודעת חריגה, כדי לציין כישלון של פונקציה. לדוגמה, היא: תציין שאין מספוק זיכרון (/זסוח6/-01-וס), במקוס להחזיר טא פרק 15: ניהול זיכרון = 405 דגל תיאור 518 סו לאסו | מגדיר שהערימה לא תשתמש בפעולה הדדית מסוג חסופטואס ופנטוח, כאשר פונקציה הערימה מקצות ומשחררות זיכרון מהערימה. ברירת המחדל, כאשר לא מגדירים את הדגל. 6 0סא לאפאא, היא להפעיל גישה סדרתית אל הערימה. הסדרת הגישה לערימה. (406055/ 687 07 230000ו/50118) מאפשרת. לשתי מטלות או יותר להקצות ולשחרר זיכרון מאותה ערימה בו-ומנית. הפרמטר 6/1/0556 מגדיר את הגודל ההתחלתי של הערימה בבתים. ערך וה קובע את הכמות ההתחלתית של האחסון הפיסיי ש-630070366! מקצה לערימה. סז קבטו מעגלת את הערך כלפי מעלה, לגבול הדף הבא. כדי לדעת את גודל הדף במחשב המארח צריך להשתמש בפונקציה 0/ח1וח665500. אבו הפרמטר 56חחטח%2/ו אינר אפס, הוא מציין את הגודל המקסימלי, בבתים, של הערימה. הפונקציה טסְַטו1 מעגלת את הערך פקפחחטוח/5ווו₪ כלפי מעלה אל גבול הדף הבא, ושומרת בלוק מלאי בגודל הוה במרחב הזיכרון הווירטואלי של התהליך עבור הערימה. אם הפונקציותת 6 או 36986106 מבצעות דרישות להקצאות שעוברות את גודלה של כמות. האחסון הפיסיי ההתחלתית כפי שהוגדרה על ידי 56וג0וח1וו6, המערכת מקצה דפים. נוספים של אחטון פיסי עבור הערימה, עד לגודל המקסימלי של הערימה. בנוסף, אס 6קפחטוחואמ/וו0 אינו שווה לאפס, הערימה לא תהיה מסוגלת לצמוח, ומתקבלת הגבלה אבסולוטית : הגודל המקסימלי של בלוק זיכרון בערימה יהיה מעט. קטן יותר מ- 0400075968 בתיםי (גודל מרחב הכתובת הפרטי של התהליך). דרישות. להקצאת בלוקים גדולים יותר ייכשל, אפולו אם הגודל המקסימלי של הערימה מספיק גדול כדי להכיל את הבלוק. אם קפוחטוחואמוו6 הוא אפס, הוא מציין שהערימה יכולה לצמוח. רק שטח הזיכרון הזמין מגביל את גודל הערימה. דרישות. להקצאת בלוקים גדולים מ- 0400075588 בתים אינן נכשלות אוטומטית; המערכת. קוראת ל->סווגוו כדי להשיג את הזיכרון הדרוש לבלוקים בגודל כזה. יישומים החייבים להקצות בלוקים גדולים של זיכרון צריכים לקבוע לפרמטר 010506 את הערך אפס. כאשר הפונקציה מצליחה, הערך המוחזר הוא ידית לערימה החדשה שנוצרה; אם הפונקציה נכשלת, הערך המוחזר הוא וטא. כדי להשיג מידע מקיף יותר אודות השניאה, עליך לקרוא ל-ז351110 66%. הפונקציה 63006308 יוצר אובייקט ערימה פרטי, שהתהליך הקורא יכול להקצות. ממנו בלוקים של ציכרון, על ידי שימוש בפונקציה 6סואפא. הערך ההתחלתי שיהיה. יקבע את מספר הדפים השמורים (פפטָק 86שווחוחסס) שיהיו בהקצאה הראשונית של 8 עבור הערימה. הגודל המקסימלי קובע את מספר הדפים שבמלאי 9069 865766). דפים שמורים אלה, יחד עס הדפים שבמלאי, יוצרים בלוק רציף 6 321חווו ומבוא ל-ספו במרחב הזיכרון הווירטואלי של התהליך שבו יכולה הערימה לצמוח. אם 66ופפטו? מבצעת דרישות שחורגות ממספר הדפים השמורים, פִואסְחו/ מקצה אוטומטית דפים. נוספים ממלאי הדפים השמורים, בהנחה שאמצעי האחסון הפוסי צמין. רק התהליך שיצר את אובייקט הערימה הפרטי יכול לגשת לזיכרון שמאוחסן בערימה. הפרטית. אם תיקיית קישור דינמי (04) יוצרת ערימה פרטית, היא עושה ואת במרחב. הזיכרון של התהליך שקרא לה. יותר מכך, הערימה נגישה רק לאותו תהליך. המערכת. משתמשת בזיכרון מהערימה הפרטית, כדי לאחסן מבני תמיכה בערימה קפסו 505 0ס0ט5); לכן, לא כל הגודל של הערימה ומין לתהליך. לדוגמה, אם הפונקציה 11630406 דורשת 6468 מערימה שהגודל המקסימלי שלה הוא 64%8, הדרישה יכולה להיכשל בגלל תקורת המערכת. אס לא מגדירים את הדגל 56811176 סא לאשו (ברירת המחדל הפשוטה), הערימה תסדיר את הגישה בתוך התהליך הקורא. הסדרת הגישה (ח3000ו56₪) מבטיחה שלא תהיה התנגשות בשעה ששתי מטלות או יותר מנסות להקצות או לשחרר זיכרון בו-ומנית מאותה ערימה. קביעת הדגל 56818176 סו! קאשוו גורמת לביטול חסימת ההתנגשות ההדדית בערימה. ללא הסדרת הגישה, שתי מטלות או יותר שמשתמשות באותה ידית של הערימה, עשויות להקצות או לשחרר זיכרון בו-ץמנית, דבר שעלול לפגום בערימה. לכן, באפשרותך להשתמש בצורה בטוחה בדגל 56811126 סא קאפ רקי במצבים. הבאים %+ כאשר לתהליך יש מטלה אחת בלבד. + כאשר יש לתהליך מטלות רבות, אך רק מטלה אחת קוראת לפונקציות הערימה עבור ערימה מסוימת. 3% כאשר יש לתהליך מטלות רבות, והיישוס מספק מנגנון משלו לחסימת התנגשויות. (חסופטא והטטטו%) בעת גישה לערימה מסוימת. 2 ניהול הזיכרון של תהליך מוגדר באמצעות פונקציות הערימה כפי שלמדת, התוכניות צריכות להקצות כמות קטנה של ויכרון מערימת הזיכרון שמשמשת את התהליך. התוכניות משתמשות בדרך כלל בפונקציה 66וסַמט₪ להקצאת. בלון זיכרון כוה מתוך הערימה. הזיכרון שמוקצה על ידי 6908106 אינו בר-העברה. (סוטהצסו! ז00!). את הפונקציה 1/63/06 כותביםו בתוכנית כמו בדוגמה זר )681106 פצסטשת א6סנט מ4שת 866ע1פם שג 60 16שממת // ,64 שנסאתט 5 1סצטמסס 811068610 מפשת // סוס 6 60 668עם 05 ששמחטת // 65 ספסאום פרק 15: ניהול זיכרון = 407 טבלה 15.7: הדגלים עבור הפרממטר 95ַ5או. דגל פירוש 60515 מדהחשאס6 קהשו | מציין שמערכת ההפעלה תיצור חריגה. (חסטקססאם) כדי לציין כישלון פונקציה, ולא: תחציר +טאז, כמו למשל במצב שאין מספיק. זיכרון (עזסוחוא-ז0-וס). 5 סא לאפוו | מציין שהערימה לא תשתמש באפשרות מניעת. התנגשות (חסופטוטא |מוסט!א) כאשר הפונקציהה 6300 ניגשת לערימה. צהסוופוא 2580 קאה | מצלין ש-פאוסטחוו תאתחל את הזיכרון שהוקצה, בערך אפס. הפרמטר קבוח מגדיר את הערימה שממנה מקצה 160/06 את הזיכרון. פרמטר זה הוא ידית המוחזרת על ידי אחד משתי הפונקציות 4690070306 אר 1770095510087, הפרמטר 5סַ0 מגדיר מספר דרכים לשליטה בהקצאת זיכרון מהערימה. קביעת אחד משני הדגלים האלה עוקפת את הדגל שצוין בומן יצירת הערימה עס 6סוְַבסו באפשרותך להגדיר דגל אחד, או יותר, עבור הפרמטר פַג00₪, מאלה המפורטים. בטבלה 15.7 לבסוף, הפרמטר 08665 מגדיר את מספר הבתים ש-06ו1630%1 מקצה. אם הפרמטר. פס מגדיר ערימה "שאינה צומחתי, 000865 חייב. להיות פחות: מ- 7858א0. קוראים לפונקציה 63006366 עם ערך שאינו אפס, כדי ליצור ערימה "שאינה צומחתי". אם הפונקציה מצליחה, הערך המוחזר הוא מצביע לבלוק הזיכרון שהוקצה; אס הפונקציה נכשלת והדגל 005011085 פדאהפא66 קהשוא. לא הוגדר, הערך המוחזר הוא 1א. אם הפונקציה נכשלת והדגל 605711085 60616 קפוא לא הוגדר, הפונקציה אולי תיצור חריגה עם ערך של שגיאה, כפי שמפורט בטבלה 15.8 טבלה 15.8: ערכי השגיאה של הקצאה שגויה בערימה. עוך פירוש צחסוופוא סא 5דד5 | ההקצאה שרצינו לבצע נכשלה בגלל חיסרון בזיכרון הזמין או פגס בערימה. אסנדא וזש 460555/ 5105 | ההקצאה שרצינו לבצע נכשלה בגלל פגם. בערימה, או פרמטריס שאינס מוגדרים היטב. שים לב שפגם ערימה יכול לגרום לאחת משתי החריגות; הדבר תלוי בסוג הפגם. אם: 6 מצליחה, היא מקצה לפחות את כמות הזיכרון שדרשה התוכנית הקוראת. אם הכמות הממשית ש-8/06ק09ו1 מקצה יותר גדולה מהכמות שנדרשה על ודי התוכנית הקוראת, התהליך יכול להשתמש בכל הכמות. באפשרותך להשתמש בפונקציה 06ַ5ְבסאז, כדי לקבוע את הגודל הממשי של הבלוק שהוקצה. 8 הכהו ומבוא ל-ספו כדי לשחרר בלוק זיכרון שהוקצה על ידי 8630106, צריך להשתמש בפונקציה 6. ויכרון שהוקצה על ידי 1/6306 אינו בר-העברה. מכיון שהזיכרון אינר בר-העברה, אפשר שהערימה תהפוך למקוטעת (6פְחטְחְָז=). שים לב: אם לא מגדירים את הדגל צהסוופון 2580 קא6ו, פוסחו/. אינה מאתחלת לאפס את הזיכרון שהוקצה. כדי להבין טוב יותר את פעולת הפונקציה 06וא53סא, ‏ התבונן בתוכנית 5 635א, שנמצאת בתקליטור (8015ו0).התוכנית יוצרת ערימה, אחר כך משתמשת ב-6308/06! כדי להקצות ציכרון מהערימה שנוצרה. היא מתייחסת לזיכרו. שהוקצה כמערך דינמי של מחרוזות. כאשר המשתמש בוחר את האפשרות !655סו1א. מהתפריט, התוכנית מקצה זיכרון מהערימה, כדי לאחסן בו מחרוזת חדשה. היא גם. מצהירה על מצביע לזיכרון שההקצאה הקודמת הוסיפה למערך. אם לא נשאר מקום. פנוי במערך, התוכנית משתמשת ב-63058%/06₪ כדי להרחיב אותו. כאשר המשתמש. בוחר באפשרות !166 מהתפריט, התוכנית משחררת את הזיכרון שהוקצה למחרוזת. האחרונה. כאשר התוכנית מגלה שהמשתמש שחרר מספיק זיכרון כדי להשאיר כמות. מספקת של מקום שאינו מנוצל, התוכנית מקצה מחדש את הערימה כדי לצמצם את המערך. בנוסף, בכל פעם שהתוכנית מקצה מחדש את הערימה, היא משתמשת בפונקציה 86קו63060 כדי לדחוס אותה. 3 בדיקת גודל הזיכרון שהוקצה מתוך הערימה כפו שלמדת, תוכניות פווסוחוו מקצות פעמים רבות כמות קטנה של זיכרון לוקל מערימה פרטית. בסעיפים קודמים יצרנו ערימה והקצאנו זיכרון מתוכה. התוכניותת יכולות להשתמש גם בפונקציה 869/06ק₪69 להקצאה מחדש של שטחי זיכרון מתוך הערימה, וב-6ס! - כדי לשחרר זיכרון שהוקצה מהערימה. בנוסף, התוכניותת צריכות להשתמש תמיד בפונקציה ץספססקפסוז כדי לפרק ערימות פרטיות שיצרו. אך פעמים רבות, נרצה בומן הריצה של התוכניות לבדוק את גודל ההקצאה שנעשתה מהערימה. כדי לעשות ואת צריך להשתמש בפונקציה סק5ְטאא, אשר מאפשרת לבדוק. את גודל בלוק הזיכרון שהוקצה מהערימה. הפונקציה 630506 מחזירה את הגודל, בבתים, של בלוק זיכרון שהוקצה מהערימה על ידי הפונקציות 6308/06 אר 6 את הפונקציה 690508 כותבים כמו בדוגמה שלהלן ) 36305156 ספסוום מגסה פמץ 50 ב1התמת // ,קבאה הנקות 8 1סצשתסם 5188 קפשם //‏ ,5פַ18טא0 ספסמם 50₪ 812 מעטמשע סם עעסתפה 50 עשמתגם // | ממאק1 מצסטסק1 / פרק 15: ניהול זיכרון ‏ 409 הפרמטר קַבשוח מגדיר את הערימה שבלוק הזיכרון נמצא בה. אחת משתי הפונקציות. 8 או 6610009560 מחזירות את הידית הזאת. הפרמטר פטָו0 מגדיר. מספר דרכים לשליטה בגישה לבלוקים של הזיכרון. כרגע, באפשרותך להגדיר את הדגל 560181126 0 ק%ש; אך פווסוחוו שומרת את שאר ערכי הדגלים לשימוש. עתידי. באופן ספציפי הדגל 558181126 .00 קהפו₪ עוקף (66וזזפצס) את הדגל המתאים. שהוגדר בפרמטר 005(וק0 כאשר השתמשת בפונקציה 6300618 ליצירת הערימה. לבסוף, הפרמטר וח6/וקו מצביע לבלוק הזיכרון שהפונקציה צריכה לחשב את הגודל שלו. והו מצביע שהפונקציה 63006 או 06ו861ק₪69 מחזירות. אס הפונקציה 1630526 מצליחה, הערך המוחזר הוא הגודל, בבתים, של בלוק זיכרוך שהוקצה; אם הפונקציה נכשלת - הערך המוחזר הוא אחקאט. כדי להבין יותר טוב את פעולת הפונקציה 508ק69או, התבונן בתוכנית 5126 קסוא, שנמצאת בתקליטור המצורף לספר זה (בתיקיה 15קו6). התוכנית יוצרת ערימה ומקצה בלוק זיכרון באורך 20 בתים שמאותחל באפס. אחר כך, התוכנית קוראת לפונקציה 4556 כדי להציג את גודל הבלוק שהוקצה. 4 הקצאת בלוק זיכרון וירטואלי בתוכניות הפועלות תחת פאוסחווו, מקצים בדרך כלל זיכרון על ידי שימוש באחד משלושה סוגי הקצאה: הקצאה מהערימה הגלובלית, הקצאה מהערימה הפרטית, אד הקצאה ישירה של זיכרון וירטואלי. ראית שהשימוש בזיכרון וירטואלי מקנה לתוכניות אפשרויות נוספות ושליטה על תהליך ההקצאה. אך כמו בשאר סוגי ההקצאה, הקצאת הציכרון נעשית עס פונקציות. 6. הפונקציה 6סואוממזו שונה מפונקציות הקצאה אחרות בוה שהיא מקצה למלאי (86597065) או שהיא משרלינת (טווחוחס6) אזור של דפים במרחב הזיכרון הווירטואלי של התהליך הקורא. פווסשחוו מאתחלת באופן אוטומטי באפס את הויכרון שהוקצה בתוכניות על ידי השימוש בפונקציה 6סואוהטזוצ. את הפונקציה זו כותבים כמו בהגדרה שלהלן. 1106 פטס 1 פצסטסת ומח עס 20862 60 ה20010 01 288:688 //‏ 55סצמנתק1 מצסטק1 מסגָםם 05 8186 // סוס 8110680108 05 שסצט // ,6קעדת0 181106861 סתסאום )סע 60085ג 01 שסצט // 5190866 סחסאום 0 321חוו ומבוא ל-ספו הפונקציה 84/06נז/ מקבלת את הפרמטרים שמפורטים בטבלה 15.9 טבלה 15.9: הפרמטרים של הפונקציה 81106טפזוש. פרמטר תיאור 6055 | מצלין את כתובת ההתחלה של האזור שרוצים להקצות. אס. התוכנית מקצה את הזיכרון כמלאי, 6ס0חווו מעגלת כלפר מטה את הכתובת המוגדרת לגבול של 6468 הבאים. אס. התוכנית כבר שמרה את הזיכרון שהוקצה כמלאי, והיא: קוראת כעת ל-06!ואוגנטזו/ כדי לשריין יכרון, 5וס6חוו מעגלת. כלפי מטה לגבול הדף הבא. כדי לדעת את גודל הדף במחשב. המארח, השתמש בפונקציה 0/ח6615/51901. אם פרמטר זה שווה ל-1א', המערכת קובעת היכן להקצות את האזור. 6 | מציין את גודל האזור, בבתים. אם הפרמטר 12001655 שווה. ל-1ו0, %5ו60חו// מעגלת כלפי מעלה את ערך ₪56 לגבול. הדף הבא; אחרת, הדפים המוקצים יכילו את כל הדפים. שמכילים בית אחד או יותר בתחום מ-4667655פ| עד (059ו6פ1 8 +). כלומר, תחום 2 בתים שנכלל בגבול הדף גורם. ל-ווס6חו\ לכלול שני דפים באזור המוקצה. שש דחס/811063/ | מציין את סוג ההקצאה. באפשרותך להגדיר כל צירוף דגלים. המפורטים בטבלה 15.10 ווק | מציין את סוג הגנת הגישה (ח010000זל 400055). כאשר משתמשים ב-08/106ז כדי לשריין דפים, באפשרותך. להגדיר כל אחד מהדגלים שמפורטים בטבלה 15.11, יחד עם. מצייני דגלי ההגנה 6080 2368 או 63046 סו 2865 כפר שדרוש. מתוך טבלה 15.9 למדת שמשתמשים בפרמטר 8106300076 כדי לשלוט בהקצאה שמבצעת 06//פנוע.. באפשרותך לציין כל צירוף של הדגלים שמפורטים בטבלה 6, כדי לשלוט בהקצאת זיכרון וירטואלית. טבלה 5.10 + הערכים האפשריים של סוגי ההקצאות עבור הפונקציה 31106והנוזוש. דגל פירוש דזוווס6 פו! | מקצה אחסון פיסי בויכרון או בקובץ הדפדוף שבדיסק עבורר אזור הדפים המוגדר. כלומר, הוא מגן על חלק ממרחב. הכתובות של הזיכרון הווירטואלי של התהליך מפני קריאות. הקצאה אחרות של אותו תהליך. הניסיון לשריין טחוס דפים שכבר שוריינו, אינו גורס לכישלון הפונקציה. כלומר, התוכנית יכולה לשריין תחום של דפים שכבר שוריינו, אוד לשריין דפים מחדש מבלי לדאוג לכישלון. פרק 15: ניהול זיכרון 411 דגל פירוש 5558 16% | שומר כמלאי תחוס של מרחב כתובות בציכרון הווירטואלי של התהליך, מבלי להקצות אמצעי אחסון פיסי כלשהו. כל. הקצאה אחרת (כמו של הפונקציה 6סו1פוח, או של הפונקציה. 6 אינה יכולה להשתמש במלאי ה עד שהתוכנית. משחררת את התחום. התוכניות יכולות לשריין דפים. מהמלאי על ידי קריאות עוקבות לפונקציה > והטטזוצ. אאוסס קסד פוא | מקצה זיכרון בכתובת הגבוהה ביותר האפשרית. בגלל דרך ההקצאה של הדף הווירטואלי, ‏ באפשרותך לשלוט בגישה לדפים הווירטואליים ששוריינו על ידי הפונקציה 6סוופומו. כמו שרואים בטבלה 15.11, באפשרותך להגדיר סוג אחד של הגנה לדף (56008 6סָק), יחד עם המציינים: 608 7466 ו-06%036א 465. טבלה 15.11 מציגה את דגלי ההגנה שבאפשרותך. להשתמש בהם כאשר אתה מקצה דפים וירטואליים. טבלה 5.11 + דגלי ההגנה האפשריים עבור הקצאות דף וירטואליות. דגל פירוש +ואססאפה 65ק | מאפשר מצב גישה לקריאה בלבד לאזור הדפים. ששוריינו. הניסיון לכתוב לדפי קריאה בלבד גורס לשגיאת גישה. אם המערכת מבדילה בין גישה לקריאה בלבד וגישה להפעלה, הניסיון להפעיל קוד באזור החיוב גורם לשגיאת גישה 01 0695 זאו סה 866 | מאפשר שני מצבי גישה: גישה לקריאה וגישה לכתיבה לדפום באזור הדפים ששוריינור דסא 65ק | מאפשר רק מצב גישה להפעלת דפים באזור. המשוריין. הניסיון לקרוא או לכתוב לדפי הפעלה. בלבד גורס לשגיאת גישה. סאפה דא 7868 | מאפשר שני מצבי גישה: גישה להפעלה וגישה. לקריאה לדפים באזור המשוריין. הניסיון לכתובב לדפי הפעלה וקריאה בלבד גורם לשגיאת גישה. דנה/וסאפה ₪506 68 | מאפשר את הגישה להפעלה, לקריאה, וכתיבה. לדפים באזור המשוריין 2 זקה2בחוו ומבוא ל-ספו דגל פירוש סההט6 66 | דפים באזור נעשים דפים שמורים (600/6. 5. אם תוכנית מנסה לקרוא מדף שמור או לכתוב בדף כוה, הדף השמור גורס למערכת. ההפעלה להדליק את דגל החריגה של מצב. שמירה 7806 6088 51105 ולכבות את מצב הדף השמור. לכן, דפים שמורים משמשים. להתראת גישה חד-פעמית. הדגל 60 968 הוא מציין הגנה לדף. היישום משתמש בו עם אחד משאר דגלי ההגנה של הדף, אך עס הבדל אחד: היושום אינו יכול להשתמש בו עם 00860655 9406. אחרי קריאה. שנכשלה, או פעולת כתיבה הגורמת למערכת. ההפעלה לכבות את מצב דף שמור, הגנת הדף שברקע מופעלת. אס מתרחשת חריגה של דף שמור בומן קבלת שירות מהמערכת, השירות. מחזיר בדרך כלל מציין מצב של כישלון (בסעיף 5 תמצא הסבר אודות דפים שמורים). 5 66אק | חוסם כל גישה לאזור הדפים שוריינו. הניסיוך לקרוא מדף, לכתוב לדף, או להפעיל דף באצור שהגישה אליו נחסמה - גורם לשגיאת גישה, שנקראת שגיאת הגנה כללית (60, (66063. 0 6 65 | מאפשר לא לשנות את הדפים שהוקצו קודם עם הדגל 6017 %ו. צריך להגדיר את מאפיוני החומרה לזיכרון הפיסי, כמו לדוגמה, "יללא מטמון' (63606 ס)/). מיקרוסופט אינה ממליצה על שימוש כללי בדגל זה. דגל זה יכול לשרת. מנהלי התקן (לדוגמה, מיפוי מאגר של מסגרת. וידיאו) שאינס משתמשים במטמון. דגל זה הוא: מציין הגנה לדף, שתקף רק כאשר משתמשים בו בשילוב עס אחד מהגנות הדף השונותם. מ-00000855- 866 אס הפונקציה 06!אוהטטזו מצליחה, הערך המוחור הוא כתובת הבסיס של אזור הדפים שהוקצה; אם הפונקציה נכשלת, הערך המוחזר הוא טא פרק 15: ניהול זיכרון / 413 6 זו יכולה לבצע את הפעולות הבאות. 3% לשריין אזור של דפים שקריאה קודמת לפונקציה 6סוונזוץ העבירה למלאי. 3% להעביר למלאי אזור של דפים חופשיים. %: להעביר למלאי ולשריין אזור של דפים חופשיים. באפשרותך להשתמש ב-06ו4גומוו כדי להעביר למלאי בלוק של דפים, ואחר כך לקרוא שוב ל-6ו וגו כדי לשריין דפים בודדים מבלוק המלאי. קיוס בלוק של דפים מאפשר לתהליך לשמור על תחום הכתובת הווירטואלית שלו, מבלי לנצל אחסון. פיסי עד שנוקקים לו. כל דף במרחב האיכרון הווירטואלי של התהליך נמצא באחד משלושה מצבים שמפורטים בטבלה 15.12 טבלה 15.12: המצבים האפשריים של זיכרון וירטואלי. מצב פירוש 8 | התהליך לא שריין או לא שמר למלאי דף זה, ולכן הדף אאינו נגיש. לתהליך. 3/66ופטטזו יכולה לשמור במלאי, או בו-זמנית לשמור במלאי וגס לשריין דף חופשיר חופשי פסה | פונקציות הקצאה אחרות אינן יכולות להשתמש בתחום הכתובות, אבל היישום אינו יכול לגשת לתחום ו-ו60חוא אינה משייכת אמצעי אחסון פיסי עם הדף. 06/ו3נמו/ יכולה לשריין דף שבמלאי, אבל. אונה יכולה להעביר אותו למלאי פעם נוספת. הפונקציה 6אומנוו יכולה לשחרר דף הנמצא במלאי, ולהפוך אותו לדף חופשי. שמור במלאיי חס | פאוסטחווץ מקצה ציכרון עבור דף, וקוד מוגן שולט בגישה. המערכת. מאתחלת וטוענת כל דף משוריין ליכרון הפוסי רק בניסיון הראשון. לקרוא או לכתוב לדף זה. כאשר התהליך מסתיים, המערכת משחררת. את האחטנה של הדפים המשוריינים. 6והטטזו/ יכולה לשרייץ דף שכבר שוריין. כלומר, אפשר לשריין תחום דפים, ללא קשר אם כבר שוריינו, והפונקציה אינה נכשלת. סז=!מוזו יכולה לבטל שריון שלל דף משוריין, לשחרר אמצעי האחסנה של הדפים, או שהיא יכולה. בו-ומנית גס לבטל שריון וגם לשחרר דף ששוריי. משוריין אם הפרמטר 2067655|. הוא ₪011 הפונקציה משתמשת בפרמטרים 100055 ו-0506ו0 כדי לחשב את אזור הדפים ש-4106נזו/ מקצה. המצב הנוכחי של כל תחום. הדפים חייב להיות מתאים לסוג ההקצאה שמוגדר על ידי הפרמטר 6קץדחסטבססוא0; אחרת, הפונקציה נכשלת ו-6סואוגנטוו אינה מקצה את הדפים. דרישת התאימות אינה מונעת שריון דפים שכבר שוריינו (ראה טבלה 15.12). 4 321חו/ו ומבוא ל-ספו כדי להבין טוב יותר את פעולת הפונקציה 6טאוגומזו, | התבונן בתוכנית 6 ו ופצטזו/, שנמצאת בתקליטור המצורף לספר זה (בתיקיה 00515). תוכנית. זו מעבירה למלאי מגהבית אחד (1%8) של זיכרון וירטואלי, כאשר היא שולחת את ההודעה 685%15 א/ו. כאשר המשתמש בוחר באפשרות התפריט 16, התוכנית. משריינת ומשתמשת ב- 8א70 של ויכרון וירטואלי. ראשית, התוכנית מציבה ערכים. בכל בלוק של 5 בויכרון שהוקצה. שנית, התוכנית משנה לקריאה בלבד, את אפשרות. הגישה לכל בלוק הזיכרון ששוריין. שלישית, התוכנית ניגשת לערך בזיכרון ומציגהה אותו בתיבת הודעה. לבסוף, התוכנית מנסה להציב ערך בזיכרון, והדבר גורם לשגיאת. הגנה. התוכנית 06366ו81/ |העפזו' משתמשת בבלוק הקוד ה630-ץ כדי לגלות את. שגיאת ההגנה. 5 דפים שמורים (23065 0ְַ603) למדת בסעיף 15.14 שיישום קובע את דגל מציין ההגנה 6080 2865 עבור דף ציכרון, כדי להגדיר דף שמור (מָק 60816). באפשרותך להגדיר דגל וה יחד עם דגלי הגנהה אחרים לדפים, באמצעות הפונקציות 06ו331נזוץ, 661זסזק|נסזוש (-005סססזק|בנסזו. תוכל גם להשתמש בדגל 60%80 7466 עם כל דגל הגנה אחר לדפים, מלבד הדגל חפ אס תוכנית מנסה לגשת לכתובת שנמצאת בדף שמור (ַפסָק 6036), מערכת ההפעלה. יוצרת מצב חריג 66אק ‏ סההט6 55 (80000001א0). מערכת ההפעלה גם מוחקת. את דגל 60380 466ק, ומסירה את המצב השמור מדפי הזיכרון. המערכת אינה מפסיקה ‏ את הניסיון | הבא לגשת לדפי ההזזכרון עם המצב החרב 55 אס מתרחש מצב חריגה של דף שמור בזמן קבלת שירות מהמערכת, השירות מופסק ובדרך כלל מחזיר ערך כלשהו שמציין מצב כישלון. מכיון שהמערכת מסירה את המצב. השמור מדפי הזיכרון, הקריאה הבאה לאותו שירות של המערכת לא תיכשל בגלל מצב. חריג 66 60 518105 (אלא אם כן, מישהו אחר החציר את המצב השמור). לכן, דף שמור מספק התראה חד-פעמית בעת גישה לדפי זיכרון. הדבר עשוי להיותת שימושי ליישומים שחייבים לבקר גידול של מבני נתונים דינמיים גדולים. לדוגמה, חלק ממערכות ההפעלה משתמש בדפים שמורים 0065 60876) כדי ליישם בדיקת מחסנית אוטומטית. בתקליטור המצורף לספר זה תמצא את התוכנית 6686-0896 (בתיקיה 008015), שמדגימה את ההתנהנות החד-פעמית של הגנת דף שמור, וכיצד הוא יכול לגרום. לכושלון שירות של המערכת (התוכנית יוצרת קלט לחלון 005). כשמהדרים ומפעילים. את התוכנית 5986 - 66878, היא מציגה במסך את הפלט הבא 0 88628885 86 668עם 512 016668 1 = שמעפם ,00380000 86 1006 מסת80 0 86 4פעצחסת 100% 288 < פרק 15: ניהול זיכרון = 415 שים לב שהניסיון הראשון לנעול את בלוק הזיכרון גורם. ליצירת מצב חריג 8 סחאט6 פטדאד5. הניסיון השני מצליח, מכיון שהניסיון הראשון חסיר את ההגנה של דף שמור מבלוק הזיכרון. זיכרון וירטואלי מקנה אמצעי נוסף ויעיל להקצאת בלוקים גדולים של זיכרון. עםם ואת, הצגת היתרונות של זיכרון וירטואלי לשימוש בתכנות קשה ומורכבת בדרך כלל. אחת הדרכים הקלות להצגת יתרונות הזיכרון הווירטואלי היא לחשוב על מערך גדולל של מבנה מורכב, אולי מבנה הדומה לגיליון אלקטרוני. נניח שצריך ליצור מערך דו-ממדי, ההגדרה יכולה להראות דומה לוו שלהלן. [256] [200] צתתתתפסהת1 6011 אם גודל המבנה ו/69 הוא 128 בתים, דרושים לאחסנה 65,533,600 בתים של זיכרוך פיסי (לפי החישוב: 200 + 256 > 128). ברור, שזו כמות משמעותית של זיכרון פוסי שצריך להקצות לגיליון האלקטרוני - במיוחד כאשר רוב גליונות העבודה לא ישתמשו בכמות תאים שמתקרבת להקצאת תאים רבה כזאת. כתחליף, אפשר להשתמש ברשימה מקושרת כדי ליצור את סוג המבנה של הגיליון האלקטרוני. על פי התפיסה של רשימה מקושרת, צריך ליצור מבנה !61 לתאים שבגיליון האלקטרוני אשר מכילים נתוניס, ולא לתאים הריקים. עס ואת, השימוש. ברשימה מקושרת מקשה מאוד על השגת תוכן התאים. לדוגמה, אם התוכנית דורשת. את התוכן התא בשורה 5 שעמודה 10, חייבים לעבור דרך הרשימה המקושרת כדי למצוא את התא, ומכאן ההאטה בהפעלה. ציכרון וירטואלי מציע פשרה בין ההגדרה של המטריצה הדו-מימדית לבין מימוש. מורכב של רשימות מקושרות גדולות. עם זיכרון וירטואלי מקבלים את הנישה המהירה ואת פשטות הגישה הנובעת מטכניקת המטריצה, וגם את יכולת האחסון המעדיפה של רשימה מקושרת. כדי להעריך טוב יותר את היתרונות של טכניקת הזיכרון הווירטואלי, התוכנית צריכה לבצע את הדברים שלהלן 1. לשמור אזור מלאי שיחיה גדול במידה מספקת כדי להכיל את כל המטריצה של המבנים מסוג וו6₪. כפי שלמדת, שמירת אזור כמלאי אינה צורכת זיכרון פוסר 2. להקצות כתובת זיכרון באזור המלאי שבו המבנה 9 צריך להיות כאשר המשתמש מכניס נתונים לתוך תא כלשהו. 3. לשריין עבור המבנה 09 אמצעי אחסנה פיסי מספיקים המיועדים לכתובת הציכרון שהוקצתה בצעד 2. 4 להציב את האיברים של מבנה 60 החדש. אחרי ביצוע המיפוי הפיסי למקום המתאים, התוכנית יכולה לגשת אל אמצעי האחסון. מבלי ליצור שגיאת גישה (חסטג/ס1) 66055). ברור, שטכניקת הזיכרון הווירטואלי היא: שיפור משמעותי לעומת שאר הטכניקות, מפני שהתוכנית משריינת אמצעי אחסון פוסי. רק כאשר המשתמש מכניס נתונים לתאים של הגיליון האלקטרוני. מכיון שרוב התאים בגיליון האלקטרוני ריקים, התוכנית אינה משתמשת במרבית אזור המלא באפשרותך להקצות זיכרון וירטואלי כדי שהתוכנית תוכל לגשת מהר יותר למספר גדול של איברים, בלי הקשיים והוויתורים שנעשים במודלים קודמים של זיכרון. 6 1א32ח/ו ומבוא ל-ספו 7 שחרור זיכרון וירטואלי למדת שבאפשרות התוכנית להשתמש בפונקציה 6סואוגנפזו/ כדי להעביר למלאי אר לשריין דפי זיכרון וירטואלי. לאחר ההעברה למלאי או לאחר השריון של דפי זיכרוך וירטואלי, התוכנית יכולה להשתמש בפונקציה 6פזפוומוט כדי לשחרר או לבטל חיובב של דפים אלה. הפונקציה פופו משחררת אזור של דפים או מבטלת את השריון שלהם (או שניהם) במרחב הכתובות הווירטואליות של התהליך הקורא. משתמשים. בפונקציה 6זזונזו כמו שרואים בהגדרה שלהלן | 8 81 טטש 1 001 16668האסס 05 560108 08 3449688 // 0 מסגמצ 05 8186 // ,85196 ספסאום 540108שקס 1866 05 שסעט // ,סקעט6צטאם סאסמם / הפרמטר :106/05 מצבוע לכתובת הבסיס של אזור הדפים שהפונקציה 66זזוגומזוי אמורה לשחרר. אם הפרמטר 606106186 מכיל את הדגל 6855 ₪1 ואפוא, הפרמטר 5 חייב להיות כתובת הבסיס שהפונקציה 106וטזו/ החזירה כאשר העבירה. למלאי את אזור הדפים. הפרמטר 000526 מגדיר את הגודל, בבתים, של האזור ש-8166/ה0ז = אמורה לשחרר. אם הפרמטר 008067706 מכיל את הדגל 55 פוו, הפרמטר 04828 חייב להיות אפס; אחרת, אזור הדפים שעומדים לטפל בהם יכיל את כל הדפים שמכילים בית אחד, או יותר, בתחום שנמצא בין ערך. הפרמטר 3661655ק| ועד 1661055+00/506. כלומר, תחוס של 2 בתים שנמצא בגבול. הדף גורם ל-66זזופטטזו/ו לשחרר את שני הדפים. 05166106 מגדיר את סו פעולת. השחרור. כאשר קוראים לפונקציה 66זזופוזוצ, משתמשים בדגל אחד, אך לא בשני הדגלים שמפורטים בטבלה 15.13 טבלה 5.13 הדגלים עבור הפרמטר 097/6ז-/0. דגל פירוש 500 אאפוו | מבטל את שריון אזור מוגדר של דפים משוריינים. ניסיון לבטל שריון דפים שאינם משוריינים אינו גורס לכושלון הפונקציה. כלומר, התוכניות יכולה לבטל שריון תחום של. דפים ששוריינו, או של דפים שלא שוריינו קודם, מבלי שיהיה צורך לדאוג לכישלון 6 שו || משחרר את האזור המוגדר של דפים שבמלאי. אם התוכנית. מגדירה דגל זה, הפרמטר 656 חייב להיות אפס, אד שהפונקציה תיכשל. פרק 15: ניהול זיכרון = 417 התוכניות יכולה להשתמש בפונקציה 6פוחוגנזו כדי לבצע אחת משלוש הפעולות. האלו + לבטל שריון אזור של דפים משוריינים, או של דפים שאינם משוריינום. 3% לשחרר אזור של דפים במלאי. 3 לבטל שריון ולשחרר אזור של דפיס משוריינים, או דפים שאינם משוריינים כדי לשחרר אצור של דפים, כל תחום הדפים חייב להיות באותו מצב (כולם במלאי, אד כולם משוריינים) והפונקציה 65זזובטטזו חייבת לשחרר את כל אזור המלאי המקורי באותו ומן. אס השתמשת קודם ב-6טואוהטטזו כדי לשריין רק חלק מהדפים שבאזור המלאי המקורי, עליך לקרוא ל-66זזוהנטזו כדי לבטל את שריון הדפים המשוריינים, ואחר כך לקרוא ל-6זוגוו שוב כדי לשחרר את כל הבלוק. הדפים ששוחררו על ידי שימוש ב-69זוגנמזו/ הםו דפים חופשיים, שתקפים לפעולות. של הקצאות עוקבות. ניסיון לכתוב לדף חופשי או לקרוא מדף חופשי, יגרום להודעת חריגה מסוג שגיאת גישה (חסווגוסו 860955). 6סוחופנטווץ. יכולה לבטל שריון של דף שאינו משורין; כלומר, הפונקציה 6זחוגנטזו יכולה לבטל שריון של תחום דפים כלשהו הכולל דפים משוריינים ושאינם משוריינים, מבלי שיהיה צורך לדאוג לכישלון ביטול השריון של דף משחרר את האחסון הפיסי שלו שנמצא בזיכרון או בקובץ' הדפדוף בדיסק. אם התוכנית מבטלת שריון דף אבל אינה משחררת אותו, מצב הדף. משתנה למלאי וקריאה עוקבת ל-6ס!אוהטוזו יכולה לגרום לשריון חוזר שלו. הניסיוך לקרוא מדף או לכתוב לדף שבמלאי גורס להודעת חריגה מסוג שניאת גישה. המצב הנוכחי של כל תחוס הדפים חייב להיות מתאים לסוג פעולת השחרור שמוגדרת. על ידי הפרמטר 6קץ91סזוו6. אחרת, הפונקציה 65זזוטּו נכשלת ולא משחררת, אד לא מבטלת שריון של דף כלשהו. 8 ניהול דפי זיכרון וירטואלי דפ זיכרון וירטואלי מיועדים להרחיב את גישת התוכניות לזיכרון וגם לעוור לתוכניות בהקצאת בלוקים גדולים של ויכרון במרחב הזיכרון הווירטואלי. פעמים. רבות, נדרש מידע על תחום הדפים שבתחום מרחב כתובות הציכרון הווירטואלי של התהליך. הפונקציה /זסטסגטטזוץ מספקת מידע על תחום הדפים שבתחום מרחב הזיכרון הווירטואלי של התהליך הקורא, כמו שרואים להלן ) טס בפט+ 7 ספסוום 6108מצ 01 658ש840 // 18 1000 // 2402688 8‏ ,562:ממב אסנעתאהסעאד סדפגם צהסוטוק 16%פט ה10םמתע0פ1 // מ 05 5128 // 10 ספסאום / 8 71א32חוו ומבוא ל-ספו הפונקציה /זסטומוזו/ מקבלת שלושה פרמטרים, כמפורט בטבלה 15.14 טבלה 5.14 הפרמטרים של הפונקציה סט /פנטזוצ. פרמטר ‏ | תיאור 5 | מצביע לכתובת הבסיס של אזור הדפים ש-ץזסט0ומווו בודקת. פאוסטחו מעגלת ערך זה כלפי מטה, לגבול הדף הבא. כדי לדעת מה גודל הדף במחשב המארח, השתמש בפונקציה 0/ח1וח6649/500. ז6ש8ק! | מצביע למבנה מסוג 1/00/10 88516 זחוא ש-ץוטס ופטחו מחוירה בו את המידע על תחום הדפים המוגדר. חַח6%1.9 | מגדיר את גודל המאגר, בבתים, שמצביע עליו הפרמטר ז816כו. /זסטסומטטזועי מספקת מידע על אזור של דפים עוקבים מכתובת התחלתית מוגדרת, בעלת המאפיינים הבאים. 1 המצב של כל הדפים אותו דבר עם הדגלים דיווס פוא 555806 אפון, שפח אסויו, סדהענהק ווסוא, סםקקהוא ותפוו, אר 66 המד שור אם הדף ההתחלתי אינו חופשי, כל הדפים שבאזור יהיו חלק של ההקצאה הראשונית של דפים שהקריאה של הפונקציה 6סוונמזוץ העבירה למלאי. הנישה של כל הדפים אותו דבר עם הדגלים צאססגשה 65אק, דנה הפה 65הק, 0360555 ש6אק, ק0מדנחש אק דטסטאם 68אק, פפהמדט0א= 65ק, | סההט6 ש6הק, | מדןה/סאשה פדטשםאם 68אק, דנא דטספאש 466ק, או ₪008 שאק הפונקציה עזטט וטו קובעת את מאפייני הדף הראשון באזור. אחר כך היא טורקת. דפים עוקבים עד שלסיום הסריקה של כל תחום הדפים, או עד שהיא מוצאת דף עם. קבוצת מאפיינים שונה. /חפטסופופזוצ מחזירה את המאפיינים ואת גודל אזור הדפים. בעל אותם המאפיינים. לדוגמה, אם יש אזור חופשי בגודל 40/8 והתוכנית קוראת ל-ץסטסונטזוו עם דף באזור שאחרי 10%8, הפונקציה מציגה סטטוס 885 אפוו וגודל של 308 הפונקציה. /פטסמומזו מדווחת. על אזור דפים בזיכרון של התהליך הקורא, והפונקציה +5/חסט0פומזוע מדווחת על אזור דפים בזיכרון של התהליך המוגדר. בתקליטור שמצורף לספר וה נמצאת התוכנית עושטס ומטפווש (בתיקיה 5, שבתחילה היא מקצה בלוק זיכרון וירטואלי בגודל 7068. אחר כך היא קוראת לפונקציה עזפוסוגנסזו/ץ, שמחזירה את גודלו חממשי של האצור שתפוס על ידי הזיכרון. שיס לב, גודל האזור מתחלק ב- 4096 בתים (48), שזה גודל הדף של מחשבי 6 פרק 15: ניהול זיכרון = 419 פרק 16 תהליכים ומטלות 1 הבנה יותר טובה של תהליכים אחת התכונות הבולטות ביותר של פאוסטחו/ היא התמיכה שלה בריבוי משימות (%1009569/), שמשמעותה - הפעלת תהליכים אחדים בזיכרון בו-ומנית. בשלושים. הסעיפים הבאים, תלמד יותר על ניהול תהליכים (0605505וק) ומטלות (6365זח1), אחת. המיומנות החשובות ביותר למתכנתי סח תהליך (00955זק) הוא אובייקט הבעלים של כל משאבי היישום. תהליך של 0065חו, בתורו, יכול ליצור מטלה אחת או יותר. מטלה (6גזחד) היא נתיב ביצוע בלתי תלוי בתוך תהליך, אשר מנצל חלק ממרחב הכתובת שלו, קוד ונתונים גלובליים. לכל מטלה יש קבוצת אוגרים (זטפסָסה) נפרדת, וגם מנגנון קלט נפרד הכולל תור הודעות פרטי. 9% סח ו-דו). פאוס0חוו. מקצות. קטעי ומן מעבד (0לס). לכל מטלה בנפרד, מטלה-אחרי- מטלה (636זחד-ץ630-8זחד) וכך הן מנהלות. את מנגנון ריבוי המשימות. מפעילות כל משימה על פי העדיפות שמוקצית לכל מטלה. אפשר לתאר ואת כקבוצת. מטלות שמסודרות זו אחר זו, ועל פי סדר עדיפות שנקבע, המטלה המבקשת שירות. מוצגת לפני כל חברותיה ופועלת, עד אשר מטלה אחרת עדיפה יותר תזכה לקבל את שירותי המערכת (110100356 6קחססזק). בנוסף, תהליך כולל גם הקצאות זיכרון גלובליות, דפים וירטואליים ועוד. תרשים 1 מציג מודל לוגי של הקשרים בין תהליכים ומטלות. 0 321חווו ומבוא ל-ספו ב זז ו זו 200 זו 30 ות 41 ות ות תרשים 16.1: הקשר בין תהליכים ומטלות. למדת ש-פווסטחוו+ מקצה זיכרון וירטואלי לתהליכים ככל שנדרש להם. לכן, כאשר לוקחים בחשבון את מודל הזיכרון למחשב שמריץ תהליכים רבים בו-ומנית, חשוב לוהות איוה תהליך הוא התהליך הפעיל (6א/6). הקביעה מיהו התהליך הפעיל כרגעע חשובה, מכיון ש-פווסחוו. מצמידה באופן אוטומטי עדיפות גבוהה יותר לרוב הדרישות לומן מעבד שיוצאות מטעם התהליך הפעיל. בסעיף 16.25 תמצא דיון מפורט. בניהול עדיפויות המטלות על ידי מערכת ההפעלה. בנוסף, 00066חו מקצה בדרך כלל. ציכרון פיסי נוסף, כדי להאיץ את ביצוע התהליך הפעיל כרגע. תרשים 16.2 מצוג דוגמה למודל זיכרון עבור שלושה יישומים הפועלים בו-ומנית. היישום הפעיל הוא: ו בו בו ו |[ 0 שי סו [ סו ן ' ' ' וח עה הק 0 עסו 06 ומק ו 06 0 סוחסה 06 הס תרשים 16.2: דוגמה למודל יכרון לשלושה יישומים שפועלים בו-ומנית. פרק 16: תהליכים ומטלות ‏ 421 עם ואת, כאשר נוצר מאורע על ידי המשתמש או על ידי פווסטחו/, אשר גורם לכך שהתוכנית השנייה ק/ 566006 תהיה פעילה, פווסטחווצ מקצה זיכרון פיסי נוסף עבור התוכנית הזו ונותנת לה מרחב זיכרון רב יותר לפעולה, כמו שמוצג בתרשים 16.3 מקה סזוחו 00000 כ 0 0 ו ססוו ] סז ו ו 9 0 ' וק 0 עסוחסוח [08ופעחק. וה 06 88 ו 06 9000 סח 06 הק תרשים 66.3 יוגמה אחרת למודל זיכרון לשלושה יישומים שפועלים בר-ומנית. בחמשת הסעיפים הבאים תלמד את הדרכים ליצור ולנהל תהליכים ומטלות. צריך להבין תחילה את יסודות הבניה לההפעלה של תהליכים (שבעיקרון אינם אלא מכולות, 0615ו13ח00, של מטלות) לפני שנעבור לנושא המטלות. 2 יצירת תהליך למדת שבדרך כלל התוכניות מופעלות כתהליך אחד, אשר יכול להכיל מטלה אחת או יותר. הפונקציה 6163971000 יוצרת תהליך חדש ואת המטלה הראשית שלו (הידועה גם בשם תהליך-בן, 00955זק ₪וו03). התהליך החדש מפעיל את קוב ההפעלה. שהוגדר. 0103001005 מאפשרת לתהליך האב, 7106955 זחסזגל (כלומר, התהליך שקורא לפונקציה 003100/06055) להגדיר את סביבת העבודה של התהליך החדש, ובכלל זה את תיקיית ההפעלה שלו, ברירת המחדל לתצוגה על המסך, משתני הסביבה. והעדיפות. 5וסחו. מוסרת את שורת הפקודה ואת תכולתה לתהליך הבן. את הפונקציה 0103190100655 כותבים כמו בהגדרה זור 0 ה 45004018 01 חמה // 6מ8מ1168610סמתק1 תעפפסק 1 הפ 118 8המהחסם // 10 1 ,סטמ ש66ת653ססמסק1 פפצטמנאצסת צצ1תט0ם 19 8001 ע15עגן00פ 88משסצם // ,618 56ה644פמצק1 פפצטמנאצסת צצ1תט0םפק1 86618 86016 688צת> // 18 68מבם1עסות1 16מממה // ,8168ת8מ)1עשתמדט מססם ח10סבצם // 7 >תסהה10עחם ששה 50 צפסת1סק // ,סמפמתס+1שתפק1 פדסטק1 במ 2 זקא2בחווו ומבוא ל-ספו +הפפעגס 50 עשפת1סק //‏ ,ע:6050צ1פטתסצענסק1 תעפפסק1 במפת צע8190050 // ספוונפטצהתצפ 6+ עשטתנסם // ,10ה1מטםעב5%ק1 כ 006551880+086108מסק1 א10להאהסטו1 800858פק1 1 ה 60 צ6פתגסק | / כמו שאפשר לראות, הפונקציה 0031971009 מקבלת פרמטרים רבים. טבלה 16.1 מסבירה את הפרמטרים האלה. טבלה 16.1: הפרמטרים של הפונקציה 016190100855. פרמטר תיאור ו3)חס:3סופקקן | מצביע למחרוזת המסתיימת ב-1שא, שמגדירה את המודול שצריך להפעיל. אפשר לשלב במחרוות זו את הנתיב השלם ואת שם הקוב של המודול שצריך להפעול, או שהמחרוות יכולה להגדיר שם חלקי. כאשר המחרוזת. מגדירה שם חלקי בלבד, הפונקציה משתמשת בכונן ובתיקיה הנוכחיים כדי להשלים את ההגדרות. הפרמטר. 96 חס163פקפ! יכול לקבל את הערך טו!, אך במקרה זה שם המודול חייב להיות הפריט הראשון במחרוזת 361:08וחוחסקו, המופרד בתו בקרה (רווח, אד תו אחר בלתי נראה, 65קפסזוח/). המודול המוגדר יכול להיות יישוס מבוסס 32חו/+ או סוג מודול אחר (לדוגמה, %5-005 או 05/2), אם במחשב. המקומי פועלת מערכת ההפעלה המתאימה. הערה תחת זא 5ווס6חו\, אםו המודול שצריך להפעיל הוא יישום. 6 הסיביות, 6וחבאחסווג6וקפאק! צריך להיות -ווטא, והמחרוזת ש-6ח:1חמהזוחססק! מצביע עליה צריכה להגדיר את המודול שצריך להפעיל. 66 חהווחס0קן | מצבייע למחרוות המסתיימת ב-+%1 שמגדירה את שורת. הפקודה שצריך להפעיל. הפרמטר 6חו)6חהחווחססקו יכרל. להיות 1טו, אך במקרה כזה הפונקציה משתמשת. במחרוות שהפרמטר פחוו!חסוו63ופפאק! מצביע עליה. כשורת הפקודה. אם שני הפרמטרים 60086 סו1פק ו ו-906106החוח0סכ! אינם 11א, הפרמטר 96 0ו30!קאק! מגדיר את המודול שצריך להפעיל, ו-01/06חחזוח0סק! מצביע לשורת הפקודה. התהליך החדש. יכול להשתמש בפונקציה 6600080610 כדי לקבל את. כל שורת הפקודה. תהליכי הביצוע של תהליכים בשפת 6 (010669565 סוחוד-חטו 6) יכולים להשתמש גם. בארגומנטיס זג וזה פרק 16: תהליכים ומטלות = 423 פרמטר 14 1 ב תיאור אם פוחהאחס3סווקאק! הלא +01!, הרכיב הראשון של. שורת הפקודה שמופרד בתו בקרה (רווח או תו בלתי נראה אחר) מגדיר את שם המודול. אס שם הקוב אינר מכיל יומת (חסופח416ם), פו0חו/ו מניחה שהסיומת היא. 5. אם שם הקוב מסתיים בנקודה () בלי סיומת, או ששם הקוב מכיל את פירוט הנתיב, 5א60חו/ו אינה מצרפת. 5אפ. אם שם הקוב אינו מכיל נתיב תיקיה, 5אס6חו/ מחפשת את הקובץ שצריך להפעיל לפי הסדר הבא: 1 התיקיה שממנה נטען היושום. 2 התיקיה הנוכחית של תהליך האב. 5 98 00%5חו/': תיקיית פווסחו/+ של המערכת. השתמש בפונקציה /01160108ח66455/9 לקבלת. הנתיב של תיקיה זו. 4 זו פאוסטחוו: תיקיית 32 הסיביות של מערכת. 4/0005 (ע6030₪זו חו516ע5 5ו00חואו 32-8%). השתמש בפונקציה /ז6000ו01וח5/9ץ6015 כדי לקבל. את נתיב התיקיה. שם התיקיה הוא בדרך כלל. גנ 5. זו פאוס0חו/: תיקיית 16 הסיביות של מערכת. ו (/116108 5/5008 605חוש 6ו16-0). איך פונקציה של לבחו שמקבלת את נתיב התיקיה הזו, אך הפונקציה מחפשת בה. שם התיקיה הוא בדרך כל |5%5181. 6. התיקיה פוווסטחוו: כדי לקבל את נתיב התיקיה הצר השתמש בפונקציה /66106006108. שם. תיקיה זו בדרך כלל הוא פאוסטחואו. 7 התיקיות שמפורטות במשתנה הסביבה ופ של. 1 כאשר התהליך שאתה רוצה ליצור באמצעות הפונקציה הוא יישום מבוסס 5.005 או מבוסס. 05 הפרמטר 6/06ח8וחוח00ק! צריך להיות שורת. הפקודה מלאה, שהרכיב הראשון שלה זה הוא שם. היישום. מכיון שהפונקציה 0163197106055 פועלת גם. ביישומים מבוססי 32חו/, יש לקבוע את הפרמטר 6106 5וחוחססק! כשורת פקודה מלאה גס עבור תוכניות. 2 מצביע למבנה 4118180785 ד550081, שקובע אם. תהליך הבן יכול לרשת את הידית המוחזרת. אם. הדא 4ש, תהליך הבן אינו יכול. לרשת את הידית. קא32ח/וו ומבוא ל-80ו פרמטר הערה: ב > הערה 1 ו תיאור במערכת ₪1 40/0600 האייבר ז9זקו8/06501ו500ט| של המבנה מגדיר מתאר אבטחה (91זקו0650 /5900118) עבור התהליך החדש. אם 5פטפוז609סזקםו. הוא ‏ נוא התהליך מקבל את ברירת המחדל של מתאר האבטחה. תחת 9% 5ו00חו/, הפונקציה 0163169106955. מתעלמת. מאיבר ז0זקו0500010/0050! של המבנה. מצביע למבנה 11180165 ד550081 שקובע אם. תהליך הבן יכול לרשת את הידית המוחזרת. אם: טוט 63זחדקו הוא-011, תהליך הבן אינו יכול. לרשת את הידית. במערכת ₪ 40/6048 האייבר ז9ז0ו8/00501ו500ט| של המבנה מגדיר מתאר אבטחה (91זקו0650 /5000118) עבור המטלה הראשית. אם פסשטטוזטה6זחדקו. הוא ‏ וטא המטלה מקבלת את ברירת המחדל של מתאר האבטחה. במערכת 9% 0005חו/, הפונקציה 0163197106055 מתעלמת. מאיבר ז0זקו5000/0/0050פ! של המבנה. מציין אם התהליך החדש יורש ידיות מהתהליך הקורא. אם כן, כלומר פטזד, התהליך החדש יורש כל ידית פתוחה. שאפשר לרשת מהתהליך הקורא. לידיות שעברו בהורשה יש את אותו הערך והגישה כמו לידיות המקוריות. מגדיר דגלים נוספים ששולטים במחלקת העדיפות (0/055 /6וז0וזק) וביצירת התהליך. אפשר להגדיר את דגלי היצירה המוצגים בטבלה 16.2 בכל צירוף, מלבד אלה שמצוינים בהערות המתאימות. הפרמטר 0/070310081905 קובע גכו כן את מחלקת העדיפות. החדשה של התהליך, ש-5אוס6חו) משתמשת בה כדי לקבוע את טדר העדיפויות של מטלות התהליך. אס פויוסטחוץ+ ינה מגדירה דגל של מחלקת עדיפות. כלשהי מאלה שמוצגים בטבלה 16.2, ברירת המחדל שלה. היא 55 צדןחס1חק ‏ והואפסו!. עם את, כאשר מחלקת. העדיפות של התהליך היוצר היא: 5 107 1015, עדיפות המחלקה של תהליך הבן גם היא 01455 281081 101 אפשר להגדיר כל דגל. מדגלי העדיפות שמפורטים בטבלה 16.3 פרק 16: תהליכים ומטלות = 425 פרמטר ו ספ זפט ו 01 תיאור מצביע לבלוק סביבה של התהליך החדש. אם פרמטר זה הוא 04, התהליך החדש משתמש בסביבה המוגדרת של התהליך הקורא. בלוק סביבה מורכב מבלוק שמסתיים ב-)01! ומכיל מחרוזות המסתיימות ב-01)!. התבנית של כל מחרוזת הוא טטופע=פוחּח. מכיון שהמחרוזת. משתמשת בסימן השוויון כאופרטור, אסור להשתמש. בסימן וה בשס של משתנה סביבה. אם יישום משתמש. בבלוק סביבה, במקום להציב )א בפרמטר צה, ₪5ו0חו/ ינה מעבירה לתהליך החדש את המידע של התיקיה הנוכחית אודות כונני המערכת. בלוק סביבה יכול להכיל תווי 006066 או תווי 5ה. אם: בלוק הסביבה שמצביע עליו חסוחחסזושתפכ! מכלל תוור 005 קובעת את הדגל. סנ 600זוט 096 בשדה 0/070310081905. אמ הבלוק מכיל תווי 451, דגל זה. נמחק. שים לב לכך ששני בתים של אפסים (260 סוד 5 מסיימים בלוק סביבה של 51: אחד הבתים. לסיום המחרוות האחרונה, ועוד בית אפסים כדי לסיים. את הבלוק. לסגירת בלוק 00/6066 דרושים ארבעה בתתים. של אפסים: שני בתים עבור המחרוזת האחרונה, ועוד שני בתים של אפסים כדי לסיים את הבלוק. מצביע למחרוזת המסתיימת ב-וט! שמגדירה את הכונן והתיקיה הנוכחיים של תהליך הבן. המחרוות חייבת להכיל פירוט שלס של הנתיב ושל שם הקובץ, וגס את אות הכונן (לדוגמה, ":8'). אם פרמטר זה הוא 1שא, פוס6חו/ יוצרת את התהליך החדש בכונן ובתיקיה של. התהליך הקורא. 5אוס0חו/ו תומכת באפשרות זו בעיקר. עבור מעטפות מערכות הפעלה שחייבות להתחיל בהפעלת. יישום ולהגדיר את הכונן ההתחלתי שלו ואת תיקיית. ההפעלה. מצביע למבנה 5788107180 המגדיר כיצד החלון הראשי של התהליך החדש צריך להופוע. מצביע למבנה 1508/4110 7806855 שמקבל את. המידע המוה עבור התהליך החדש. כמו שראית בטבלה 16.1, הפרמטר פ5סָכו6 מקבל דגל יצירה אחד או יותר ודגלל מחלקת עדיפות אחת. טבלה 16.2 מפרטת את דגלי היצירה האפשריים. 6 ז7א32חווו ומבוא ל-ספו טבלה 16.2: דגלי היצירה האפשריים של הפרמטר 8/51505. דגל שססוי. םאיס מדופאס. ב 60 00055ק /ופו דפס סע וסט דה הקס5 מדהפהס פירוש התהליך החדש אינו יורש את מצב השגיאה. 1006 ז0זז5) של התהליך הקוראא. במקום. זאת, 6163190106655 נותנת לתהליך החדש. את מצב השניאה של ברירת המחדל. הנוכחית. היישום קורא ל-%%066ז5618110 כדר לקבוע את מצב השגיאה של ברירת המחדל. הנוכחית. דגל זה שימושי במיוחד עבור יישומים של מעטפות מרובות מטלות (0סו1פקה 5711 הזח ד-מו/) שאסוור. להתיר בהן שגיאות חמורות. התנהגות ברירת. המחדל של 6168190106655 היא שעל התהליך החדש לרשת את מצב השגיאה של התהלוך. הקורא. שימוש בדגל זה משנה את התנהגות. ברירת המחדל הזר התהליך החדש יורש קונסול חדש (005016> במינוח החלונאי הוא הממשק של תוכניות. מבוססות-טקסט, ובקיצור - מסוף פשוט לא: גרפי), ולא יורש את הקונסול של תהליך האב. אי אפשר להשתמש בדגל זה יחד עם הדגל. פוטס התהליך החדש הוא תהליך השורש של קבוצת תהליכים חדשה. קבוצת התהליכים. כוללת את כל התהליכים שהם צאצאים. (בנים) של תהליך השורש החדש הזה. המזהה. התהליך של קבוצת התהליך החדשה, והה למזהה התהליך ש-6065חו+ מחזירה. בפרמטר חס)והוחזס1ח066551זסכן ב-₪7 065חו) בלבד: דגל זה תקף רק כאשר מתחילים יישום 5ס6חוו מבוסס 16 סיביות. אם קובעים דגל זה, 00%5חו/ מפעילה את. התהליך החדש במכונת 205 וירטואלית פרטית - ו (6ח/36ו 05 |הנסזועש). לפר ברירת המחדל, 05ו00חו/ מריצה אאת כל. יישומי 5ווסחו מבוססי 16 סיביות 16-40 8506 0 כמטלות. ב-ואפע יחידה משותפת. פרק 16: תהליכים ומטלות = 427 דגל סע וסט ד הקס5 מדהפהס. ופוסו ספההוו5 פדאפהס 50590 פדתפהס. ה ב 8 הכהו ומבוא ל-ספו פירוש היתרון בהפעלת תהליך מכונות 005 וירטואלית נפרדות הוא בכך שנפילה (01850). מחסלת (11א, פעולת סיום התהליך לפני שהואא מגיע לסיומו הטבעי) רק את מכונת 005. היחידה שמריצה את אותו תהליך; כל תוכנית. אחרת כלשהי שמופעלת במכונת 005 שעדיין פועלת, ממשיכה בפעולתה. ליישומי פאוסשחווצ מבוססי 16 סיביות ש-0005חו מפעילה. מכונות 005 נפרדות יש תורי קלט טטפח1 5 נפרדים. על כן, אס אחד מהיישומים. נעצר, שאר היישומים האחרים, הפועלים. במכונות 005 אחרות, ממשיכים לקבל קלט. ד 60005חו/: הדגל תקף רק כאשר מתחילים. ביישום 65ו00חו/ מבוסס 16 סיביות. אם: המפתח 6130/1050087806/001 שבמקטע אר בקבוצת פאוסטחוו של הקוב 1א1.אזץ שווה. ל-שטזד, דגל זה גורם לפונקציה לעקוף (0/66) את המפתח, ולהפעיל את התהליך החדש ב-פצ המשותף. 5 יוצרת את המטלה הראשית של. התהליך החדש במצב מושהה (5000066 58) ואינ מפעילה את התהליך החדש עד שמטלה אחרת (בתהליך אחר) קוראת. לפונקציה 686זח6 פסה אם קובעים דגל זה, בלוק הסביבה סוחס ק! משתמש בתווי 6068/. אם. לא קובעים דגל זה, בלוק הסביבה משתמש. בתווי זפאא. אם קובעים דגל וה, 5אוסחו מתייחסת. לתהליך הקורא כתוכנית ניפוי (פַט60, תוכנית שירות, הכלולה לעיתים במהדרים או בפרשנים, ומסייעת לתוכניתנים למצוא: ולתקן שגיאות תחביר ושגיאות אחרות בקודד המקור) והתהליך החדש הופך להיות עוד תהליך שתוכנית הניפוי של התהליך הקורא: מנפה. המערכת מודיעה לתוכנית הניפוי על. דגל פירוש 55 טפש | כל אירועי הניפוי (פוחפום פַטסם) שמתרחשים בתהליך שנמצא בבדיקה. אס. יוצרים תהליך וקובעים את הדגל הזה, רק. התהליך הקורא (זה שקרא ל-0163197106095) יכול לקרוא לפונקציה חעפסטטפסזס>או. 5 15 ואס 8806 | אם לא קובעים דגל זה ו-5וסחו// מנפה כרגע. את התהליך הקורא, התהליך החדש הופך להיות עוד תהליך שמנופה על ידי המנפה של. התהליך הקורא. אס התהליך הקורא אינר תהליך ש-5ו60חו\ מנפה כרגע, לא מתרחשות. פעולות ניפוי כלשהן כתוצאה מדגל ה. 5 פפוסאדפס | עבור תהליכים מסוג קונסול, אין לתהליך החדש גישה לקונסול של תהליך האב. התהליך החדש יכול לקרוא לפונקציה 006 אחר כך כדי ליצור קונסול חדש. אי אפשר להשתמש בדגל זה עם הדגל. ב כבר למדת שאפשר לבחור דגל אחד או יותר עבור הפרמטר פפָג91א6. אך אפשר להגדיר. רק דגל עדיפות מחלקה אחד לפרמטר פסָג6. דגל עדיפות המחלקה חייב להיות אחד. הערכים שמפורטים בטבלה 16.3 טבלה 16.3: דגלי העדיפות האפשריים של הפונקציה 0168160706655. דגל ץד 10קק 16 פירוש מציין תהליך שמבצע משימות זמן קריטי 7955 6-618₪631חו7) ש-6005חו\ ייב להפעיל. מיד עבור התהליך, כדי שיפעל נכון. מטלות של תהליכי מחלקה בעדיפות גבוהה (/6וזסוזל-190 55 יוצרות פסיקה למטלות שנובעות מתהלוכיי מחלקה בעדיפות נורמלית (ץףוזסזק-|בוחזסות 55 או עדיפות המתנה (/0016וזק-0616, ולכך גם מתבצעות מיד. לדוגמה, רשימת המשימות. 150 956) של וסחוי חייבת להגיב במהירות. כאשר המשתמש קורא לה, ללא תלות בעומס על. מערכת ההפעלה. חייבים לנקוט בוהירות רבה. כאשר משתמשים בקביעת מחלקה בעדיפות. גבוהה, מכיון שקביעת עדיפות כזו ליישוס שצורך זמן מעבד רב, עלולה לגרום לחסימת המעבד מפני יישומים אחרים. פרק 16: תהליכים ומטלות = 429 דגל פירוש 5 הזאק 16 || מצב המתנה - 51846 1616 - מציון מצב של. אובייקט, או התקן שניתן להפעלה, אך אינו בשימוש, או שהוא ממתין לפקודה שתורה לו להתחיל לפעול. 5 +דנהסנהק 1015 | מציין תהליך שהמטלות שלו מופעלות רק כאשר המערכת במצב המתגה (166) ומטלות של תהליך אחר כלשהו במחלקה בעדיפות גבוהה, יכול. לקבל שירות לפניו, כמו לדוגמה, שומר מסך. תהליכי בן יורשים את המחלקה בעדיפות. המתנה. 5 +הזהסנהק .והואאסוא | מציין תהליך נורמלי בלי רשימת צרכים מיוחדת. 55 +ידנהסזהק פואנדאפה | מציין תהליך שנקבעה לו העדיפות הגבוהה ביותר האפשרית. המטלות במחלקה בעדיפות ומן אמת (01355 /6וזסוז שוחוד-631ה) מקבלים שירות לפני כל שאר התהליכים, ובכלל זה תהליכים של מערכת ההפעלה שמבצעים משימות חשובות. לדוגמה, תהליך זמן אמת שמופעל יותר מאשר לפרק זמן קצר מאוד עלול לכך שמטמון הדיסק לא יפעל, או שהעכבר לא יגיבב בנוסף. ליצירת תהליך, 0708100100955 = יוצרת גם אובייקט מטלה. הפונקציה 5 יוצרת את המטלה עם מחסנית התחלתית שגודלה מוצג בכותרת התמונה (ז6306!/ סַוח1) של קובץ ההפעלה של התוכנית המוגדרת. המטלה מתחילה. להתבצע מנקודת הכניסה המוגדרת בכותרת זו. 0103007100955 יוצרת: את התהליך החדש ואת ידיות המטלות החדשות עם וכויות גישה מלאות. עבור שתי הידיות, אם: הפונקציה אינה מספקת מתאר אבטחה (ז0וק690 /5900116), התוכניות. יכולות. להשתמש בידית בכל פונקציה שדורשת ידית לאותו טוג של אובייקט. כאשר הפונקציה. מספקת מתאר אבטחה, התוכניות מבצעות בדיקת גישה בכל השימושים העוקבים של הידית לפני שחס מורשים לגשת למטלה. אם בדיקת הגישה דוחה את אפשרות הגישה,, התהליך הדורש אינו יכול להשתמש בידית לקבלת גישה למטלה. פוסחו מציבה בתהליך מזהה בן 32 סיביות. המוהה תקף עד שהתהליך מסתיים. התוכניות יכולות להשתמש במזהה וה כדי לוהות את התהליך או להגדיר אותו עבור הפונקציה 55ססזקחסקס לפתיחת ידית לתהליך. פאוסחוו מציבה למטלה ההתחלתית. של התהליך מזהה בן 32 סיביות. המוהה תקף עד שהמטלה מסתיימת והתוכנית יכולה. להשתמש במזהה זה כדי לוהות במפורש את המטלה במערכת. מזהים אלה מוחזרים. במבנה 11008110 6555הק. 0 321חווו ומבוא ל-ספו כאשר אתה מגדיר שם יישום במחרוזות 6וח8ח6300קהק| אר שח/חבהזוחסספו, ייך כל צורך ששם הקובץ של היישוס יכיל טיומת, אלא רק במקרה של יישום מבוסס 5 או מבוסס פאוס0חו/), שסיומת שם הקוב שלו היא 60%%. המטלה הקוראת. יכולה להשתמש בפונקציה 6טקח1וס30//ו כדי לחכות עד שהתהליך החדש מסיים. את האתחול שלו ומחכה לקלט מהמשתמש, בלי שיהיה. קלט ממתין. השימוש ב-166טטופחזזסיטו3/ יכול להיות שימושי עבור הסינכרון בין תהליך האב לבין תהליך. הבן, מכיון ש-6163000106055 חוזרת מבלי לחכות שהתהליך החדש יסיים את האתחול. שלו. לדוגמה, התהליך היוצר צריך להשתמש ב-6טטקחזזס*א לפני שהוא מנסה למצוא חלון שקשור לתהליך החדש. הדרך המומלצת של מיקרוסופט לסגירת תהליכים היא באמצעות הפונקציה 5, מכיון שהיא מודיעה לכל תיקיות הקישור הדינמי (5!פ) שצמודות לתהליך על כוונת הסיום. אמצעים אחרים לסגירת תהליך אינם עושים זאת. שים לב, כאשר מטלה קוראת ל-800010669, הפונקציה מסיימת את שאר מטלות התהליך מבלי לתת להן הודמנות להפעיל קטע קוד נוסף כלשהו (כולל קוד הסיום של המטלה של תיקיות קישור דינמי מוצמדות. סח מפעילה. ברצף (09קו9ו56). את 00706055 ותד 100 6זחד0!6וח86ס67681, ותהליך שמתחיל (כתוצאה מקריאה ל-016800010605) ביניהם. בתוך התהליך. מאורעות אלה יכולים לקרות בכל זמן נתון במרחב הכתובות, ופירוש. הדבר שחלות הגבלות אל. %: במהלך התחלת ההפעלה של התהליך ואתחול שגרות תיקיית הקישור הדינמי, התוכניות יכולה ליצור מטלות חדשות, אבל הן אינן מתחילות להתבצע עדד ש-608חו/ מסיימת את אתחול תיקיית הקישור הדינמי של התהליך. %: מטלה אחת בלבד יכולה לפעול במהלך האתחול של תיקיית הקישור הדינמי, או בשיגרת ניתוק (סחווטסח ח0636) בכל צמן נתון הפונקציה 80010665 אינה חוזרת, כל עוד יש מטלה פעילה באתחול תיקיית. קישור דינמי, או שגרות ניתוק. התהליך הנוצר נשאר במערכת עד שכל מטלות התהליך הסתיימו והקריאה לפונקציה 6 סגרה את כל הידיות של התהליך ואת המטלות שלו. הקריאה ל-010596%/800/6. חייבת: לסגור את הידיות אל התהליך ואל המטלה הראשית. אם התוכנית אונה וקוקה לידיות אלו, עדיף לסגור אותן מייד לאחר ש-6006ח// יוצרת. את התהליך כאשר מטלה אחרונה בתהליך מסתיימת, מתרחשים האירועים האלה. 1% פאוסחו/ו סוגרת באופן בטוח את כל האובייקטים שנפתחו על ידי התהלך. %+ מצב הסיום של התהליך (שמוחזר על ידי 06955ז6618%/000697) משתנה מערכר ההתחלתי 011/86 .51111 למצב הסיוס של המטלה האחרונה שמסתיימת. פרק 16: תהליכים ומטלות ‏ 431 לו פווסשחוו קובעת את אובייקט המטלה של המטלה הראשית למצב אות 511 5/00366). כך היא מספקת את כל המטלות שחיכו לאובייקט.. 5וס6חו/ קובעת את אובייקט התהליך למצב אות, וכך מספקת את כל המטלות. שחיכו לאובייקט. אס התיקיה הנוכחית בכונן 6 היא 08181581865, יש משתנה סביבה בשם שהערך שלו הוא 5 (6:8181818. כמו שהוסבר קודם בעניין חחסוחחסזושחסקו, מידע כוה על התיקיה הנוכחית של כונן המערכת אינו ידוע אוטומטית לתהליך חדש כאשר הפרמטר זחשוחחסזווחפק! של הפונקציה 0763190100955/ אינר 011 היישום. צריך להעביר ידנית את המידע על התיקיה הנוכחית לתהליך החדש. כדי לעשות זאת, היישוס חייב ליצור בצורה ברורה את מחרוזות משתנה הסביבה א=, לפי סדר האלף בית (מכיון ש- דו! פווסטחו/+ ו- 9% פווסחוו משתמשות בסביבה ממוינת), ואחר כך. לשים אותן בבלוק הסביבה, כפי שהוסבר קודם בעניין אחסון הבלוק. אחת הדרכים להשגת המשתנה של התיקיה הנוכחית עבור כונן % היא לקרוא לפונקציה פוחַאוטבקווש6605, (. .,":א"), שמאפשרת ליישום להימנע מסריקת בלוק הסביבה. אם המטלול המלא המוחזר על ידי סוחג)תזק!וט"661 הוא :א, התוכנית אינה. צריכה להעביר את הערך הזה הלאה כמידע סביבה, מכיון שתיקיית השורש היא תיקיית ברירת המחדל הנוכחית עבור כונן % של התהליך חדש. הפונקציה 5 מחצירה את הידית שיש לה גישת 400555 .)א 806855? אל אובייקט. התהלוך. התיקיה הנוכחית המוגדרת על ידי הפרמטר /0ו60זופ)חסזזסקו היא התיקייה הנוכחית. של תהליך הבן. התיקיה הנוכחית בפרמטר 6ח/61חפוחהזס0ק! היא התיקיה הנוכחית של. תהליך האב. שים לב: במערכת ! פאוסחו, כשפונקציה יוצרת תהליך בשעה שמוגדר דגל העדיפותת 6807 00855הק שופ פדא6ה6, מערכת ההפעלה מבצעת קריאה בטוחה ל- (פנחד, 5600050/90019900197)8011 עבור התהליך החדש; כלומר, התהליך החדש כולל אות שינוי למצב לא פעיל, הנובע מצירוף המקשים 6+!ז60. הדבר מאפשר למעטפות (69ח5) טובות לטפל בצירוף המקשים 0₪1+6 בעצמן, ולהעביר אות וה לתת-תהליכים באופן מבוקר. 01+81636 אינו אות מעבר למצב לא-פעיל, ו-%7 פאוסחו יכולה אולי להשתמש בצירוף זה כדי להפסיק את התהליך ואת קבוצת התהליך. 2 זקא2בחווו ומבוא ל-ספו 3 סיום תהליכים למדת שתוכניות מופעלות במסגרת תהליך ובסעיף 16.2 למדת איך יוצרים תהליך. כמו. במרבית ההקצאות או ביצירת עצמים בתוכניות, ווהי אחריות המתכנת לצאת מתהליך שסיים את תפקידו. משתמשים בפונקציה 80106655/₪ כדי לסגור את התהליך. שמתבצע כרגע. הפונקציה 0070655 מסיימת. את התהליך ואת כל המטלות הקשורות בו וחוורת למקום שממנו קראו לה, כמו שרואים להלן ואט פסה 5 411 805 0066 684 // צאט לו הפרמטר 0066)פט מגדיר את קוד היציאה מהתהליך ומכל המטלות שמסתיימות עלל ידי התהליך כתוצאה מהקריאה לפונקציה 5400/0665. משתמשים בפונקציה כדי לקבל את ערך היציאה של התהליך, ובפונקציה משתמשים כדי לקבל את ערך הציאה של המטלה. צריך תמיד לקרוא ל-₪4100/0685 כדי לסיים תהליך. הפונקציה 119106955 מספקת. סגירה חלקה ונקיה של התהליך, אשר כוללת את הקריאה לפונקציית נקודת הכניסה (חסנשחטה זחוסק-/מוחם) של כל תיקיות הקישור הדינמי (0115) הצמודות, עם ערך שמציין שהתהליך מסיים את ההצמדה אל תיקיית הקישור הדינמי. אם תהליך קורא: ל-8000106995ח/וחזד כדי לסייים את פעולתו, הוא אינו מודיע על כך לתיקיות הקישור הדינמי ש-0066חו/ ולי הצמידה לתהליך.. לאחר שכל תיקיות הקישור הדינמי עיבדו ערך סיום כלשהו של התהליך, הפונקציה 5 מסיימת את התהליך הנוכחי. סיום תהליך כרוך בפעולות הבאות. 1. הפונקציה 540006695 סוגרת את כל ידיות האובייקט שהתהליך פתח. 2. כל המטלות של התהליך מסיימות את פעולתן. 3. המצב של אובייקט התהליך הופך למסומן (3166ח5/0), והדבר גורס להפעיל מחדש (06ח₪5) מטלות כלשהן שהמתינו לתהליך שיסתיים. 4. המצב של כל מטלות התהליך הופך למסומן, והדבר גורם להפעלה מחדש של מטלות כלשהן שהמתינו לתהלוך שיסתיים. 5. מצב הסיוס של התהליך משתנה מ-011/6א. 5111 לערך של קוד היציאה של התהליך. סיום תהליך אינו גורס ל-פאוסחו לסייים את תהליכי הבן. סיום תהליך אינו גורם. בהכרח להסרת. אובייקט התהליך ממערכת ההפעלה. המערכת מוחקת. אובייקט. תהליך כאשר התוכנית סוגרת את הידית האחרונה של התהליך. פווסטחו/וו מפעילה. באופן סדרתי את הפונקציות 0000605 | 4ג6זחד)0ש, = הזת ד)03ום, ו פרק 16: תהליכים ומטלות ‏ 433 בנוסף לכך, פווסטחוו מפעילה באופן סדרתי תהליך שמתחיל (כתוצאה מקריאה ל-6168090106055) עם התהליכים הקודמים שבתוך התהליך הקורא. רק אירוע אחד מתוך אירועים אלה יכול לקרות במרחב הכתובת בכל ומן נתון; כלומר, התהליך מקיים את המגבלות הבאות. % בומן התחלת הפעלת התהליך ושגרות האתחול של תיקיות הקישור הדינמי, התוכנית יכולה ליצור מטלות חדשות, אבל הן אינן מתחילות לפעול עד שמסתיים. הליך האתחול של תיקיות הקישור הדינמי עבור תהליך זה. רק מטלה אחת בתהליך יכולה להיות בכל זמן נתון באתחול של תיקיית קישור דינמי, או בשגרה מנתקת (סחטטסה 0156 5 5 אינה חוזרת עד שאף לא אחת מהמטלות נמצאת באתחול תיקיית. הקישור הדינמי שלהן, או בשגרות מנתקות. 4 יצירת תהליכים - תהליכי בן למדת שאפשר להשתמש בפונקציה 0103197/06655 כדי להתחיל בהפעלת תהליך אחר. כאשר אתה מתכנן יישומים מורכבים יותר, תפגוש פעמים רבות במצבים שבהם תרצה. לבצע בלוק קוד אחר למילוי משימה כלשהי. אפשר לקרוא מהתוכנית לפונקציה שתבצע את המשימה. עם זאת, פונקציות הן סדרתיות בטבען, ומשמעות הדבר היא שהקוד אינו יכול להמשיך בביצוע עד לאחר סיום פעולת הפונקציה. תחליף לשיטה שבה משתמשים בבלוק אחר של קוד לביצוע המשימות השונות בתוכניות הוא ליצור מטלה חדשה בתהליך, ולתת לה לסייע בהמשך העיבוד. השימוש. בריבוי מטלות (05גשזחד 6וקטוטי) מאפשר לקוד התוכנית להמשיך בעיבוד בומן שהמטלה החדשה מבצעת את המשימה הנדרשת ממנה. לרוע המזל, השימוש בריבוי מטלות פעמים רבות גורס לבעיות תזמון (פוחפוטסזק חסווהקוחסזהשחץ5), כאשר חובה על. המטלה הקיימת יילראותיי את תוצאות המטלה החדשה. על תומון תלמד בסעיפים. הבאים. הגישה האחרת היא יצירת תהליך חדש, שנקרא תהליך בן (06055ז0 011/0), שתפקידר לתמוך באפשרות הביצוע של פעולות במקביל. תהליכים מאפשרים לתוכניות להמשיך במסלול העיבוד העיקרי שלהן, בשעה שהן מטילות על תהליך בן לבצע תהליך עיבוד משני כלשהו. אפשר גם לעכב את פעולת התוכנית בשעה שתהליך הבן פועל במטלה שתוצאותיה דרושות להמשך פעולתו של התהליך העיקרי. בסעיפים הבאים נעסוק בתהליכי בן ובמטלות. השימוש בשני כלים חשובים אלה יעוור לך להבין טוב יותר את. ההבדלים ביניהם, ואיך אפשר להשתמש בשניהם בתוכניות. ככל שתוכניות פואסשחו שלך נעשות מורכבות יותר, תשתמש יותר ויותר ברכיבים: שאין תלות ביניהם, וכאלה שהס משותפים. רכיבים אלה יכולים לחיות, לדוגמה, תיקיות קישור דינמי, שפועלות מתוך התהליך הנוכחי של התוכנית (אובייקט פנים: תהליכי, 0960 06955זק-10) ; או שרתיםם אוטומטיים (56₪0615 חסטפוחסזטא) לקישור 4 321חווו ומבוא ל-ספו והטבעה של אובייקטים 015 - 8606068 800 הַחח1 096%), שפועלים מחו לתהליך הנוכחי של התוכנית (אובייקט חוץ תהליכי, 0060 00995זק-0-זס). ספר זה. לא דן הברחבה באובייקטים מסוג 5פפססזק-ח! או באובייקטים מסוג 655סזק-!ס-)ס. 5 עובדים יותר עם תהליכי בן כמו שלמדת, התוכניות יכולות לשלוט בדרך שבה הן פועלות עם תהליכי בן. אך כמעט. כל תהליכי הבן דורשים גישה לנתונים המוכלים במרחב הכתובת של תהליך האב. ככלל, כאשר תהליך בן מבקש גישה לנתונים של תהליך האב, צריך להריץ את תהליך. הבן במרחב כתובות משלו, אך לאפשר לו גישה לנתונים הרלוונטיים במרחב הכתובת. של תהליך האב. השליטה בגישה למרחב הכתובת של תהליך האב מאפשרת לך להגןן על נתונים שאינס רלוונטיים לתהליך הבן מפני פגיעה לא מכוונת. 132 מאפשרת. מספר שיטות להעברת נתונים ביץ תהליכים שונים: חילוף נתונים דינמי פסס - 06 6-13חוהחץכ), קישור והטבעה של אובייקטים 01 - 806 הַחח! זספנטס. 6 ח5), צינורות (פסקל), חריצי דואר (5ו0ו5 !0181 וכדומה. אחת הדרכים המקובלות ביותר, וגס הפשוטה ביותר, להשתתף בנתונים היא להשתמש בקובץ ממופה-זיכרון (6 סקקה!-ץזסחוסוא. קובץ ממופה-ויכרון הוא קובץ מסוג מיוחד, שמאפשר לשמור אזור של מרחב כתובות. (50809 8607655 01 חספה ה 6חספה) ולשריין אמצעי אחסנה פיסי עבור האור הזה, בדומה להקצאת זיכרון וירטואלית. אך לא כמו הזיכרון הווירטואלי, בקבצים הממופים בויכרון אמצעי האחסנה הפיסי בא מקובץ שקיים כבר בדיסק, ולא מקובץ הדפדוף (₪6 פַוָ9?) של המערכת. אחרי מיפוי הקובץ, אפשר לגשת לכל חלקיו, כאילר התוכנית טענה אותו לציכרון משתמשים בקבצים הממופים האלה עבור שלוש המטרות שלהלן. המערכת משתמשת בקבצים ממופי-זיכרון כדי לטעון ולהפעיל קבצי הפעלה וקבצי תיקיות קישור דינמי. השימוש בקבצים ממופים חוסך במקוס שצריך עבור קובץ הדפדוף, וגס בומן שחיישום צריך כדי להתחיל לפעול. 1% אפשר להשתמש בקבצים ממופי-זיכרון כדי לגשת לקבצי נתונים בדיסק. השימוש: בקבצים הממופים חוסך ביצוע פעולות קלט ופלט בקבצים ושימוש בחוצצים. להעברת תכולת הקוב שפועלים עליו. % אפשר להשתמש בקבצים הממופים כדי לאפשר לתהליכים רבים שפועלים באותה. מחשב לשתף נתונים ביניהם, כמו שלמדת עד עכשיו. רבים מאובייקטי התקשורת של לבחו משתמשים במבנה קבצים ממופי זיכרון, מכיון שוהו כלי חוק וקל לשימוש. בסעיפים שתלמד מאוחר יותר תלמד כיצד ליצור קבצים. ממופי ויכרו. פרק 16: תהליכים ומטלות = 435 אם רוצים ליצור תהליך חדש, וגם רוצים שיבצע עבודה כלשהי בומן שתהליך האב ממתין לתוצאה (לדוגמה, לכתוב קטע נתונים לקובץ שתהליך האב יקרא יותר מאוחר), תהליך האב יכול להשתמש בקוד שדומה לקוד שלהלן 10 א0תעתאהסעאד 5פמססתק ו (501 ,590906 02000) 00688ע0208:00 = 55060688 מ00ם (960088) 48 [ 16 8664 108965 סת טסץ 85 5008 85 416הג ב8שטמ) שנט 1086 // 8 ו 106 ; (מלצוודשאת1 ,685סספעת. ג) 006 00 1ףת1פעסת6 1ב ספמ שמצ // ; (80080 56881 ,עשת 1 0 16 00658פם שנס 1086 // ( ו 10 / קטע הקוד הזה יוצר את התהליך החדש 06ח0699%3זק. אם הוא מצלית, קטע הקוד סוגר את הידית המיותרת כדי לשחרר ומן 0?0, ואחר כך ממתין לתהליך שישלים את העיבוד שלו. לאחר שהתהליך משלים את העיבוד, המשתנה 0008900006 מכיל את המידע על קוד היציאה של התהליך, וקטע הקוד סונר את ידית התהליך. אם היה כישלון בטעינת התהליך, קטע הקוד אינו מבצע עיבוד כלשהו. 6 הפעלת תהליך בן מנותק (06055ק 601!6 6%367660) בסעיף 16.5 למדת ליצור תהליך בן וגס להפסיק 39 את הפעלת המטלות הנוכחיות. עד שהתהליך מסתיים. במקרים רבים התוכניות מתחילות בתהליך אחר כתהליך בן מנותק (00955זק 08/6 20066ז6כ), שאינו מוצמד לתהליך האב. תהליך בן מנותק הוא: תהליך אשר תהליך האב יוצר בומן הפעלתו, ולאחר מכן, כשתהליך הבן מתחיל להתבצע, תהליך האב אינו מעוניין בתקשורת כלשהי עם תהליך הבן, או שתהליך האב אינו דורש שתהליך הבן יסיים את עבודתו, כדי שהוא עצמו יוכל להמשיך לפעול. הרצת תהליכי בן מנותקים מאפשרת לתוכניות לטעון תוכניות אחרות מבלי לדאוגג לומן הניהול שלהן או למהירות הביצוע שלהן. כאשר מפעילים תוכנית סייר 5וס6חו/% (זסזסוקא5 פווסטחואו) לדוגמה, הסייר יוצר תהליך חדש, ואחר כך מתעלם. מהתהליך החדש וממשיך במה שנדרש ממנו לעשות. 6 כו ומבוא ל-ספו כאשר התוכניות יוצרות תהליך בן מנותק, התוכנית חייבת ליצור תחילה את התהליך,, ואחר כך לסגור את ידיות התהליך החדש ואת המטלה הראשית שלו. קטע הקוד שלהלן מציג כיצד אפשר ליצור תהליך בן חדש מנותק, שאינו מוצמד (801 ,59906 00| 00088ע0208:00 = 55060088 מ00ם (000658פ5) 41 [ ( ו ו 10 ( 88 1 7 הבנה מעמיקה יותר של המטלות בסעיפים קודמים למדת ליצור ולנהל תהליכים. כל תהליך של לו מכיל מטלה. אחת או יותר. ראוי לוכור שמטלה היא נתיב פעילות בתוך תהליך. בכל פעם ש-פוסחו מאתחלת מופע חדש של תהליך, מערכת ההפעלה יוצרת מטלה ראשית חדשה עבורו. המטלה הראשית מתחילה כאשר פאוסטחווו טוענת את התוכנית. המטלה,, בתורה, קוראת לפונקציה חומאחווו וממשיכה בפעולתה עד שהפונקציה חוב/חוצ מסיימת את העיבוד שלה (סיום העיבוד של המטלה) והתוכנית קוראת ל-0010099/₪. כדי שיטיים את התהליך. עבור הרבה יישומים, המטלה הראשית שיוצרת מערכת ההפעלה היא המטלה היחידה שהתוכנית צריכה. עם זאת, התהליכים יכולים ליצור מטלות נוספות כדי לעוור להם בביצוע משימותיהם. הרעיון שעומד מאחורי יצירתת מטלות נוספות הוא להשתמש בכמה שיותר ומן מעבד וביעילות מירבית. כאשר אתה יוצר מטלות נוספות, אתה שולח למערכת ההפעלה דרישות נוספות לקבלת זמן מעבד. כמו שתלמד בהמשך, מטלות נוספות מאפשרות לתוכניות לבצע ביתר יעילות עיבוד ברקע, לבצע חישובים מורכבים, ופעולות מבוססות זמן ואירוע חס 804 חוד 5 88566), כמו גם ביצוע משימות תכנות מתקדמות. בסעיפים הבאים נדון מתיי ליצור ומתי לא ליצור מטלה. כאשר אתה חושב מה מופעל כרגע במערכת, תוכל להעור בכך שתחשוב על המטלות. כארוזות בתוך תהליך. המערכת מאפשרת למטלות השונות לפעול ולחזור ולפעול, כתלות בעדיפות (/זוזוזק) כל מטלה, וללא קשר אם הן שייכות לתהליך אחד או לתהליכים שונים. תרשים 16.4 מציג מודל לוגי של מספר תהליכים, שכל אחד מהם. מכיל מטלות רבות שפועלות במערכת ההפעלה 5או00חו/, כמו כן סדר אפשרי להקצאת. ומן מעבד עבורן. פרק 16: תהליכים ומטלות = 437 2 008 1 008 סוחס 551 | 188 || עסוחסו וח0ופע5] 188 וס 60 | 108 |[ סוס זה ] 168 ות סוק | 108 = || עמסוחסו0 פפסססזק] ‏ 168 ד 5 הסוחד 2 ד | 80הך 0008 | 107086 3 7-=-- 101680 1 ------ 707080 2 == [ 1701686 4 == תרשים 16.4: המודל הלוגי של תהליך-מטלה. 8 הערכת הצורך במטלות בסעיף קודם למדת שהתוכניות משתמשות פעמים רבות במטלות כדי להבטיח שלחלקי. היושוס השונים תהיה גישה למשאבי המעבד. ההחלטה מתי להשתמש במטלות. נוספות ומתי לא להשתמש בהן, היא פעמים רבות ההחלטה החשובה ביותר שעושים. בעת תכנות בסביבת פוסוחואו. לדוגמה, התבונן בתוכנית גיליון אלקטרוני. תוכנית זו חייבת לבצע חישובים חוורים. כאשר המשתמש משנה את הנתונים שבתוך התאים. החישובים החוזרים לגליונותת אלקטרוניים מורכבים לעיתים ודרוש ומן מה כדי לבצעס. על כן, יישום המתוכנן היטב אינו צריך לבצע חישוב חוזר לגיליון האלקטרוני לאחר כל שינוי שעושה המשתמש. במקום ואת, עליו להפעיל את החישוב החוור של הגיליון כמטלה נפרדת, בעלת עדיפות יותר נמוכה מזו שיש למטלה הראשית. כאשר משתמשים בשתי מטלות, המטלה הראשית תמיד תפעל בומן שהמשתמש מקליד, ואו מטלת החישוב החוור בעלת העדיפות הנמוכה לא תוכל לגשת למעבד. כאשר המשתמש מפסיק לחקליד, המטלה בעלת העדיפות הנמוכה מתחילה להתבצע, בעוד המטלה הראשית ממתינה למשתמש שיתחיל שיתחיל שוב בהקלדה. אפשר ליישם את העיקרון שלמדת זה עתה, של השימוש במטלות, גם עבור תוכניותת מורכבות שמבצעות קבוצות של משימות רבות. פעילויות ברקע גם כן מפעילות מטלות. נוספות. 8 הכהו ומבוא ל-ספו לפניך מספר מצבים נוספים שבהם יש תועלת משימוש במטלות. + יצירת מטלה נפרדת לביצוע משימות ההדפסה של היישום, כדי לאפשר למשתמש. להמשיך ולהפעיל את היישום עצמו בזמן ההדפטה. יצירת מטלה נפרדת כדי להחזיק תיבת דו- שיח לא מודאלית סמו 110061655 80%) שמאפשרת למשתמש להפסיק קטחזסוח!) משימות שנמשכות ומן רב, כמו. העתקת קבצים או הדפסה. %ו יצירת מטלות שונות הפועלות במקביל ובו-זמנית כדי לדמות את אירועי העולם. הממשי (לדוגמה, אירועים שמתרחשים בפרקי זמן שאינם מוגדרים). 9 ההחלטה לא להפעיל מטלה כשמתכנתים פועלים לראשונה בסביבת עבודה שתומכת בריבוי מטלות, הם נוטים לשימוש יתר במטלות, בגלל העוצמה של שיטת העיבוד החדשה ונוחות השימוש שהמטלות מאפשרות להס. מתכנתים רבים התחילו לחלק יישומים קיימים לחלקים. קטנים יותר, שכל אחד מהם מופעל כמטלה נפרדת. למרות נוחות השימוש בעיבודד מבוסס מטלות (0609900זק 630-88566זחד) ועד כמה שהוא נראה יעיל ממבט ראשון, הוא גם יכול לגרום לבובוו משאבי זמן עיבוד של היישום. יצירת מטלות והפעלתן דורשת תקורה כלשהי, כמו למשל ניהול תורי מטלות נפרדים ומעקב אחריהן, גם אם: מערכת ההפעלה אינה משחררת את המטלה לעיבוד. מטלות רבות מאיטות את ביצועי המערכת, מכיון שבנוסף לתקורת המטלה המערכת חייבת לבדוק את רמת העדיפות. (/10%6 /פוזסוזק) של כל מטלה פעילה כרגע כאשר עליה להחליט איזו מטלה להפעיל. כמו שלמדת, נוח להשתמש במטלות ויש להן ג יתרונות ולכן - יש להן מקום בכל תוכניות 0005חו0ו. אך חשוב לדעת, שכאשר משתמשים במטלות, עלולות להיווצר בעיות שונות, בעת ניסיון לפתור בעיות הפעלה וביצועים. לדוגמה, כשאתה מפתח תוכנית עיבוד תמלילים ורוצה שפעולת ההדפסה תפעל במטלה נפרדת, התגובה הראשונה שלך יכולה להיות ליצור מטלה ולהפעילה להדפסת המסמך דף אחרי דף לרוע המול, המשתמש יכול לשנות את המסמך בומן שאתה מדפיס ברקע. על כן, במקום הפתרון הפשוט הקודם, עליך להעתיק את הקובץ המיועד להדפסה אל קוב ומני, להדפיס אותו ולמחוק אותו בסיום ההדפסה. השימוש בריבוי מטלות ובקובץ. ומני הוא בלי ספק יותר יעיל למשתמש וגם הופך את התוכנית ליותר מתאימה עבורוו עם ואת, עליך להיות זהיר כדי לוודא שיצירת מטלות נוספות אינה מטכנת אאת העיבודד שמבצעת התוכנית שלך באמצעות המטלות הנוכחיות שלה. מספר כללים צריכים להתקיים כאשר מחליטים להשתמש, או לא להשתמש, בריבוי מטלות (6365זחד 6וקטטוו). % כל מרכובי הממשק למשתמש (פקדים וחלונות) צריכים להשתתף במטלה משותפת, עם חריגות נדירות מאוד. %+ תוכניות צריכות ליצור מטלות רק כשצריכים אותן, ולא ליצור מטלות נוספות ויילהחזיקן במלאי" פרק 16: תהליכים ומטלות = 439 1% התוכניות צריכות לשחרר מטלות כשפעולתן מסתיימת. 3% יישומים מורכבים יותר, אשר משתמשים בחלונות רבים, עשויים לגרור יצירת מטלות נוספות כדי לבצע את העיבוד בחלונות מסוימים. + לא צריך ליצור מטלות שעלולות לאפשר למשתמש להפריע לתהליכי מערכת קריטיים, דבר שעלול לגרום לשיבוש בזיכרון או התהליכים אחרים שפועלים. באותו זמן. ככלל, עליך להיות תמיד בטוח שאתה וקוק למטלה, או שהמטלה משפרת בצורה משמעותית את תהליכי העיבוד של התוכנית. השימוש במטלות נוספות מבלי לעשות. את השיקולים האלה, גורם לבזבוו זמן מעבד (פוחו ז060550זק) ולהאטה בהפעלת. התוכניות. 0 יצירת פונקציית מטלה פשוטה בסעיפים קודמים למדת שהתוכניות יכולות להשתמש בריבוי מטלות כדי לאפשר להן. לבצע פעולות עיבוד מרובב (8610065 46000 6וק!וט/ו) במסגרת תהליך יחיד. כאשר יוצרים מטלות, התוכניות משתמשות בדרך כלל בפונקציה 636ז6/630610. פונקציה זר יוצרת מטלה שתופעל במרחב הכתובת של התהליך הקורא. את הפונקציה 163 כותביםם בתוכנית, כמו שרואים בהגדרה שלהלן | 0:68 תפות 1 5: =שפטמ1עם20 ע600216ם במסעתף 50 עסק // מע 1 ,8126 20%:ב 8בשעתם 5181צח1 // ,26%5126 4051 פתסאזת ,089688ת)ע1504 מא 168מסחנ 60688 50 משמהגסק // פה טפס ו פאתדפ סתפמפטם עס אשת עס? מְהשמנמָעם // ,עבטמבצגק1 ססטקם 6 268010 // ,818065ה800508%10 פמסמת 180001816% 84מעמ: 8שמצמטם, ס6 פס // דמ פתסאפק 0 הפונקציה 6163181630 מקבלת את הפרמטרים שמפורטים בטבלה 16.4. טבלה 16.4: הפרמטרים שמקבלת הפונקציה 686ח168161. פרמטר תיאור פסטטטחש)ה636זחדקו | מצביע למבנה מסוג 8180765דזא. 55001 שקובע אס תהליך הבן יכול לרשת את הידית המוחורת. אם. והזח דק! הוא -%011, תהליך הבן אינו יכול לרשת. את הידית. תחת ד 5אוס6חוא, האיבר ז5600110/06900000פ1 של המבנה מגדיר מתאר אבטחה (ז0זקו20501 /560008) למטלה החדשה. אס 5פזטפוז11ה630זחדק! הוא 014, המטלה. 0 321חווו ומבוא ל-ספו פרמטר דפ ו ב ב 1 3 תיאור מקבלת את ברירת המחדל של מתאר האבטחה. תחת א009ח!/, הפונקציה 636זח0163191 מתעלמת מהאיבר 50/0650 של המבנה. מגדיר את הגודל, בבתים, של מחסנית המטלה החדשה. אם. 8 שווה לאפס, גודל המחסנית הוא לפי ערך ברירת. המחדל; זהו גודל המחטנית של המטלה הראשית של התהליך. פאוסחו מקצה אוטומטית את מחסנית המטלה. במרחב הזיכרון של התהליך, ומשחררת את המחטנית כאשר. המטלה מסתיימת. שים לב לכך שגודל המחסנית משתנה, אם יש צורך בכך. 6163191036 מנסה לשריין את מספר. הבתים שמוגדרים על ידי 651306506, והיא נכשלת אם. הגודל עובר את הזיכרון הצמין. כתובת ההתחלה של המטלה החדשה. ככלל, זו הכתובת של. פונקציה שהוכרו עליה על פי מוסכמות נוהל הקריאה זקאאזא. לפיו, הממשק הזה מקבל מצביע בודד בן 32 סיביות. כארגומנט, ומחזיר ערך קוד יציאה בן 32 סיביות. ההגדרה נכתבת כך (7/00 )הט וחד זק זוי סו מגדיר ערך בודד לפרמטר בן 32 סיביות שמועבר למטלה. מגדיר דגלים נוספים ששולטים ביצירת המטלה. אם. 0703100005 מגדיר את הדגל 050 א50595. שדתפהס, התהליך יוצר את המטלה במצב מושהה (51306 5560606 ואינו מפעיל אותה עד שהתוכנית (או תוכנית אחרת) קוראת. לפונקציה 6ג6זחדשוחטפפה. אם הפרמטר שווה לאפס, המטלה. מופעלת מיד לאחר שהיא נוצרת. פוסחו// ינה תומכת כרגע. בערכים אחרים. מצביע למשתנה בן 32 סיביות שמקבל את המזהה של המטלה. אם הפונקציה 66זחטוגסו מצליחה, הערך המוחזר הואא ידית למטלה החדשה. אם. הפונקציה ‏ נכשלת, הערך המוחזר הוא ‏ 1ש%. תחת 9% אוסשחוא, הפונקציה 163 מצליחה רק כאשר המערכת קוראת לה בהקשר של תוכנית 32 סיביות. תיקיית קישור דינמי של 32 סיביות אינה יכולה ליצור מטלה נוספת, כאשר תוכנית שלל 6 סיביות קוראת לה. פרק 16: תהליכים ומטלות ‏ 441 הפונקציה 09316106 יוצרת את הידית של המטלה החדשה עם גישה מלאה למטלה זו. אם הקריאה ל-0ג6זח163/91 אינה מספקת מתאר אבטחה, באפשרות התוכנית. להשתמש בידית המוחזרת בכל פונקציה שדורשת ידית לאובייקט המטלה. כאשר התהליך מספק מתאר אבטחה, התוכנית מבצעת בדיקת גישה לכל השימושים העוקבים בידית, לפני שהיא מאפשרת גישה. אם בדיקת הגישה נדחית, התהליך. המבקש אינו יכול להשתמש בידית כדי לגשת למטלה. הפעלת המטלה מתחילה בפונקציה שמוגדרת על ידי הפרמטר 51810001655כן. כאשר פונקציה זו חוזרת, הפונקציה 50זחד9ז63ז6 משתמשת בערך 080/וס המוחזר כדי לסיים את המטלה על ידי קריאה לפונקציה 656ז80010. צריך להשתמש בפונקציה כדי לקבל את הקוד המוחור של המטלה, לאחר שהמטלה מסתיימת. הפונקציה 636זח063161 עשויה להצליח, אפילו אם 5137040665 מצביע לנתונים אר קוד. אס כתובת ההתחלה אינה תקפה כאשר המטלה מופעלת, נוצרת הודעה על חריגה. והמטלה מסתיימת. התוכנית מטפלת בסיום מטלה כתוצאה מכתובת התחלה שאינה. תקפה, שנובעת משגיאה בעת יציאה של תהליך המטלה. התנהנות וו דומה לאסינכרוניות של 6163197106055, שבה הפונקציה יוצרת את התהליך, אפילו אם היא מתייחסת לתיקיות קישור דינמי (0115) שחסרות או שאינן תקפות. הפונקציה 0163161003 יוצרת את המטלה עס עדיפות מטלה (ע6חסוז 6פפזחד) של הסוא ידנהסזהק סאפההד. | השתמש | בפנקציות | /6260000/הד0 ו-/63000110ז54 כדי לקבל ולקבוע את ערך העדיפות של המטלה. אובייקט המטלה נשאר במערכת עד שהמטלה מסתיימת והתוכנית סוגרת את כל הידיות שלה על ידי הקריאה ל-009%9006. התוכנית מפעילה באופן סדרתי את הפונקציות ,8000106655‏ 630זחד)0ש, ‏ 636ז0ד ,010806‏ 6הסזהדפזסוחפה010816 ותהליך שמתחיל (כתוצאה מקריאה ל-0/6318010095%). רק אחד מתוך אירועים אלה יכולל לקרות במרחב הכתובת בומן נתון. כלומר, התהליך מקיים את המגבלות הבאות. 1% בומן התחלת התהליך ואתחול שגרות תיקיות הקישור הדינמי, התוכנית יכולהה ליצור מטלות חדשות, אבל הן אינן מתחילות לפעול עד שהתהליך מסיים את אתחול תיקיות הקישור הדינמי. 3% רק מטלה אחת בתהליך יכולה להיות בכל ומן נתון במהלך אתחול תיקיית קישור דינמי או בשגרה שאינה מוצמדת. לי הפונקציה 540910605 אינה חוזרת, עד אשר אין עוד מטלות פעילות באתחולל תיקיות הקישור הדינמי או בשגרות שאינן מוצמדות. % הערה: מטלה שמשתמשת בפונקציות מתיקיות זמן הריצה של שפת 6 6 5 6וחו-חטז) צריכה להשתמש בפונקציות זמן הריצה של ₪ (פחס0סחט סהחח 6) 636זתוחו50פ ו-60600/686 לניהול המטלות,, ולא להשתמש בפונקציות 070316701630 ו-0ה6זח6ש. אם איך עושים זאת, עלול להיגרם אובדן זיכרון בומן שהתוכנית קוראת ל-66 07 2 זקא2פחווו ומבוא ל-ספו כדי להבין יותר טוב את העיבוד שמבצעת הפונקציה 026זח6/63191, התבונן בתוכנית. וחד 16ק0ח/5, שנמצאת בתקליטור המצורף לספר זה (בתיקיה 8006559285) התוכנית שהשזחד 6|קוחו5 יוצרת מטלה חדשה כל פעם שהמשתמש בוחר את האפשרות 1690 מהתפריט, ומוציאה פלט לחלון שהמטלה התחילה. כאשר בוחרים. באפשרות 5%%, התוכנית משחררת כל מטלה בתור שלה, ומודיעה לך על הריסת המטלה. הקוד שבפונקציה 109106 יוצר את המטלה, כמו שרואים להלן מ ג פט 5:26 // :צפמ עד 486 סא ,6440200עה187 תס ,0 ,תמטא) 086088 עס ( 9011018 0 (%הסעם 1 הצגת אתחול המטלות למדת שתוכניות יכולות ליצור מטלות כדי לבצע עיבודים נוספים במרחב ההפעלה. שלהן. בכל פעם שיוצרים מטלה חדשה, פאוסחו/+ מבצעת מספר משימות יסודיות בעת. אתחול המטלה, כדי לאפשר לה להתחיל בעיבוד הנדרש. תחילה, 100066 מקצה לכל מטלה מחסנית נפרדת, במרחב הציכרון בן 468 של התהליך. כאשר התוכניות משתמשות במשתנים סטטיים וגלובאליים (6ח 506 5 6/003), מטלות רבות יכולות לגשת למשתנים אלה בו-ומנית, כאשר יש חשש. לפגיעה בתכולת המשתנים. מכיון ש-00065חו/ יוצרת את המשתנים המקומיים /1063 5 ואת המשתנים האוטומטיים (5ופזב 6)ופוחסזטה) במחסנית המטלה, הם. יותר חסינים בפני פגיעה שעלולה להיות במשתנים הגלובליים בתוכניות של ריבוי מטלות. למדת שצריך תמיד לנסות ולהשתמש במשתנים מקומיים או אוטומטיים, ולא: במשתנים גלובליים. כלל זה תקף באופן משמעותי יותר כאשר משתמשים במטלות. בשלב השני, פאוס6חו מקצה לכל מטלה קבוצת אוגרים (ּז6פפָָה). של המעבד, שנקראיים הקשר המטלה 601940 %'0ה6זחד) ומאחסנת אותם במבנה מסוג דאפדאוס6. באפשרות התוכניות לברר מהי תכולת מבנה 60% בכל זמן, כדי לדעת את מצב אוגרי המעבד ששייכים למטלה. כאשר מערכת ההפעלה מתזמנת את המעבד עבור המטלה (כלומר, מקצה לה ומן), היא מאתחלת את האוגרים האלה בתוך הקשר המטלה הזו. האוגרים מכילים את מצביע ההוראה (זפזחוסק חסוטסטוזפח1, שמצהה את. כתובת ההוראה הבאה של המטלה המעבד צריך לבצע) ואת מצביע המחסנית 51800 זפזחוסק, שמוהה את הכתובת של מחסנית המטלה). לאחר שהמטלה מסיימת את אתחול המחסנית וההקשר, ובהנחה שהיא אינה במצב מושהה (5/300 5509696), היא מתחילה להתבצע מהשורה הראשונה של הפונקציה שהוגדרה בעת יצירת המטלה. פרק 16: תהליכים ומטלות = 443 2 שלבי יצירת מטלות על ידי מערכת ההפעלה בסעיף קודם למדת שמערכת ההפעלה מבצעת מספר צעדים חשובים כאשר היא מקצה. מטלות, שהתוכנית משתמשת בהן לפעולתה. למעשה, מערכת ההפעלה מבצעת ששה צעדים מוגדריס בכל פעם שהיא יוצרת מטלה חדשה, כפי שמפורטים להלן 1. מקצה אובייקט גרעין מטלה 00600 9:6 שסזחד), כדי לוהות ולנהל את המטלה החדשה שנוצרה. אובייקט הגרעין מחויק הרבה ממידע המערכת כדי שיוכל לנהל את המטלה. ערך ידית אובייקט גרעין המטלה מוחור על ודי הפונקציה 01631611636. 2. מאתחלת את ערך היציאה של המטלה ל-1/6ד0א, 51111, וקובעת את מונה ההשהיה טחט00 שחפקפטפ) של המטלה ל-1 (שני הערכים מוחוקים על ודי פוסטחו/ו באזובייקט גרעין המטלה). 3. מקצה מבנה זאשדא60 עבור המטלה החדשה. 4. מכינה את מחסנית המטלה על ידי שמירת אזור במרחב הכתובת, משריינת עבור האזור שני דפים מאמצעי האחסון הפיסי, קובעת את ההגנה של אזור האחסנה. ששוריין עבור סדזה/ו0אה 05ק, וקובעת לתכונה 6080 2865 את ערך הדף השני. 5. ממקמת את הערכים ז25₪0400! ו-6פפזחדצק! בראש המחסנית, כך שהמטלה החדשה רואה אותם כפרמטרים שמועברים לפונקציה 5191107063 (רק אם הקוד משתמש בתיקיית זמן ריצה של מהדר 6) 6. מאתחלת את אוגר המחסנית שבמבנה זאפזא60 של המטלה, כדי שוצביע לערכים ש-פווסטחו/+. הציבה במחסנית. בצעד 5. אחר כך, מערכת ההפעלה מאתחלת את אוגר מצביע ההוראה (וסוחוסק חסוסטיופח1) כדי להצביע לפונקציה. הפנימית שהיא מפעילה, לפני הפעלת ההוראה הראשונה בפונקציית האתחול של המטלה. 3 קביעת גודל המחסנית של המטלה בסעיף 16.10 למדת שבאפשרות התוכניות להגדיר את גודל מחסנית המטלה עבור הפונקציה 636ו61631910. חשוב לשים לב לכך. לאחר ש-0085חו/ יוצרת את המטלה, התוכנית אינה יכולה לשנות את גודל המחסנית בצורה אמינה. במקום זאת, פאוסשחוא מאפשרת למחסנית לצמוח בצורה דינמית ככל שיידרש. אס אינך מציון גודל למחסנית המטלה, 005חו מקצה מחסנית שגודלה כגודל המחסנית של המטלה הראשית. 6/6306101636 יוצרת: את המחסנית במרחב כתובת. הויכרון של התהליך. אפשר להציג את יצירת המחסנית בצורה ברורה במודל לוגי של מרחב המחסנית המוקצה, כמו שרואים בתרשים 16.5. 4 321חווו ומבוא ל-ספו 0 ה 0 1 סוחד 2 2 ד ה ו זו תרשים 16.5: מרחב המחסנית של התהליך, המטלה הראשית והמטלה המשנית. כאשר 00068חו/ מקצה מרחב מחסנית עבור מטלות נוספות, היא עושה ואת בדרך כלל. מתחת למרחב המחסנית של התהליך, ובמרחק של סגמנט אחד. פוסחו מקצה את. מרחב המחסנית של המטלה בצורה וירטואלית, וכך היא יכולה להעביר את מחסנית. המטלה בסביבת העבודה כשיש צורך בכך. לדוגמה, אס התהליך מאתחל את המטלה המשנית, ואחר כך יוצר מערך רב מימדי גדול מאוד (נניח, [1074,64] תווים), פאוסטחואר חייבת להיות מסוגלת להעביר את המחסנית המשנית בסביבת העבודה, כדי להגן עליה. מפני המטלה הראשית שעלולה לכתוב בצורה לא מכוונת בשטח המחסנית המשנית. 4 קבלת ידית אל המטלה הנוכחית או אל התהליך ככל שהתוכניות הופכות להיות יותר ויותר מורכבות, ייתכנו מקרים בהס חייבות התוכניות לקבל בצורה דינמית ידית אל מטלה הנוכחית או אל התהליך הנוכחי. פעולה. זו פשוטה למדי. באפשרות התוכניות לקרוא לפונקציה 4כ6זחזחסזז66)0 אר כדי לקבל בכל זמן את הידית המדומה של המטלה הנוכחית אד של התהליך הנוכחי, כפי שהם בתוכנית (ידית זו נקראת ידית מדומה, 056000-8800/5, מכיון שהערך שלה הינו היחיד בעל משמעות במטלה הנוכחית או בתהליך הנוכחי. כותבים פונקציות אלו כמו בהגדרה שלהלן ( 0 68 60 תפונת 2 (01) טפ 6 העטש 06 מנסוותט צריך לשים לב לכך שהידיות המדומות ששתי הפונקציות מחזירות הן חסרות משמעות. מחוץ לתהליך הנוכחי. כדי למסור את הידית של מטלה או של תהליך לתהליך אחר, חובה להשתמש בפונקציה 631150666!וקטם. כדי להבין יותר טוב את פעולת הפונקציות 0701636ח6זז66000 ו-00855זק)ח6זזנ0 61 התבונן בתוכנית )חפזזטס. שוס5, שנמצאת בתקליטור המצורף לספר זה (בתיקיה 16קבת)8006559285). התוכנית לחפזזטס. אוסח5 יוצרת מטלות, זו אחר זו, ומציגה. מידע אודות המטלות והתהליך. פרק 16: תהליכים ומטלות = 445 5 ניהול זמן העיבוד של המטלה כמו שניתן לדמיין, קביעת הומן הדרוש לתהליך כדי לבצע פעילות מסוימת בסביבה מרובת מטלות (חסוחהסזוצה! 63696זחד-10/0/). הרבה יותר קשה מאשר בסביבה של מטלה אחת טהסוחחסזושה= 69066זחד-6ו6ח/5). לדוגמה, עשויה להיות בתהליך מטלה כלשהי שעורכת חישוב של אלגוריתם מורכב בזמן שמטלות שפועלות בתהליכים. אחרים מתחרות בה לקבלת זמן המעבד. במקרה זה, ברור שתהליך החישוב יימשך זמן רב יותר מאשר במקרה שהיה פועל בעצמו, ללא תחרות. מכיון שתהליך זה יהיהה בדרך כלל בעדיפות נמוכה, הדבר ישפוע על משך הביצוע הכולל שלו, שיהיה שונה' מאוד מומן המעבד נטו. מכאן שצריך להשתמש בשיטה שונה לרישום זמן העיבוד שלל המטלה (ומן מעבד) בסביבה מרובת מטלות, לעומת שיטת הרישום בסביבה של מטלה אחת. עשית ואת בוודאי בעת שהשתמשת בפונקציה 606% לחישוב זמן העיבוד של התוכנית בסביבת העבודה 05. תוכניות מרובות מטלות חייבות להשתמש בפונקציה שבודקת את זמן הפעולה של כל. מטלה בנפרד, במקום השיטה הפשוטה שהזכרנו. כדי לבצע עיבוד מסוג וה משתמשים. ב-00065/% בפונקציה 65ו6907/0זד661. פונקציה זו מרכזת מידע על הומן של המטלה. שהוגדרה. משתמשים בפונקציה 6301/0065זח66/1 כמו בהגדרה זר ) 6010968491868 מססם 0מה) 05 84שצה: שת: 5011168 // ספות 8 ₪25 44שעת: שמ: השמש //‏ ,שאנלה10ם2םעסם1 מאדלם1. 80520 ₪5 84שעהם שמף השמש // 6ה1ל:1אמק1 תקלד מ מתסקפ פגת 44עמ: שמ: 6186 //‏ ,סמ1צנשהצשאמ1 מדצם ב ו ם! מתסקפ פמ 88שעתם מף שחצף // וע ספט1 מקד למ ו הפונקציה 7065ו6367זחד651 מקבלת את הפרמטרים שמפורטים בטבלה 16.5 טבלה 16.5: הפרמטרים שמקבלת הפונקציה 163610065 דו66. פרמטר תיאור 6פוחדה | ידית פתוחה שמגדירה את המטלה שעבורה מרכזים את זמן. העיבוד. עליך ליצור ידית זו עס קוד הגישה סואז סט פאפפהד 6וחודחס:630ז0ק| | מצביע למבנה מסוג 6116 11ז שמקבל את ומן יצירת המטלה. שופ | מצביע למבנה מסוג 10116= שמקבל את ומן היציאה. מהמטלה. אם עדיין לא יצאנו מהמטלה, התכולה של מבנה זה. אינה מוגדרת. 6 321חו/ו ומבוא ל-ספו פרמטר תיאור שחוודוטחזסאקן | מצביע למבנה מסוג 15116 שמקבל את כמות הומן שהמטלה. הופעלה בו במצב גרעין (1006/ 61061 6וחוד/6פטקו | מצביע למבנה מסוג 15116 שמקבל את כמות הומן שהמטלה הופעלה בו במצב משתמש (1066! ז056). כאשר הפונקציה מצליחה, הערך המוחזר שונה מאפס; אם הפונקציה נכשלת, הערך המוחזר הוא אפס. הפונקציה 63010065זחד661 משתמשת במבנה נתונים מסוג וד וז להצגת כל סוגי הומן. מבנים אלה מכילים שני ערכים בני 32 סיביות שמתחברים יחד כדי ליצור מונה בן 64 סיביות ביחידות ומן של 100 ננו-שניותת (ננו-שנייה - חלק מיליארד של שנייה). זמן יצירת המטלה וומן היציאה הם נקודות. זמן שבאות על ידי ביטוי במבנה 1161166 כפרק הזמן שעבר מאו אמצע הלילה של הראשון לינואר משנת 1601, בגריניץ'י אנגליה. ממשק התכנות 871 32חו) כולל מספר פונקציות שהיישום יכול להשתמש בהן כדי להפוך ערכים כאלה לתבניות זמן יותרר כלליות, מובנות וגס שימושיות. משכי הזמן של מצב גרעין המטלה ושל מצב המשתמש במטלה נמדדים בננו-שניות. לדוגמה, אם מטלה נמצאת למשך שנייה אחת במצב גרעין, הפונקציה 63070₪065זחד6. ממלאת את מבנה 115116 שגודלו 64 סיביות ומוגדר על ידי הפרמטר פוחוד1סחז6אקן בערך עשרה מיליון, שהינו מספר יחידות הזמן של 100 ננו-שניייה שיש בשנייה אחת. 6 ניהול זמן העיבוד במערכת של ריבוי מטלות למדת בסעיף קודם שבאפשרות התוכניות להשתמש בפונקציה 016070065דו₪6 כדר לדעת את ומן הביצוע של כל מטלה. לפעמים נדרש בתוכניות מידע מפורט על ומן הביצוע של מטלות רבות בתהליך. לדוגמה, אנו וקוקים למידע וה כדי ללמוד על פעולת. המערכת ולדעת אילו מטלות בתהליך איטיות, ואם יש מטלה אחת או יותר שגורמת. להאטה בפעולת התהליך. במקרים כאלה, התוכניות יכולות להשתמש בפונקציה 66101060951/0065 כדי להשיג מידע זמן אודות התהליך המופעל. משתמשים בפונקציה 065ו6640/060557 בתוכניות, כמו שרואים בהגדרה שלהלן 0 וה 05 5פמססעם שמף 420018168 // ,88משסעפת תסואתת 8 ₪485 658ססצם שֶ6 תשמא // ,6מ1הס1מ84פסם1 ממצצשנצטק1 8 48 688סספם סוט מממא // אפ מצד :דפ 1 ם1 שתשספ פמ 658ססצק 606 6166 //‏ ,6ת171שמפשאם1 ממצצשנצטק1 ו ם] שהשקפ פמ 8פשמסעם שֶ% שחגף // "ו ששפטק1 15 / פרק 16: תהליכים ומטלות = 447 הפונקציה 66401060557/065 מקבלת את הפרמטרים שמפורטים בטבלה 16.5 כאשר הפונקציה מצליחה, הערך המוחור שונה מאפס; אם הפונקציה נכשלת, הערך המוחזר הואא אפס. הפונקציה 065חו060957ו6610 משתמשת במבנה נתונים מסוג וד וז להצגת כל סוגי הומן. מבנים אלה מכילים שני ערכים בני 32 סיביות שמתחברים יחד כדי ליצור מונה בן 64 סיביות של 100 ננו-שניות יחידות זמן. זמן יצירת התהליך וזמן היציאה הס נקודות זמן שבאות על ידי ביטוי במבנה שאזדפ ו ככמות הומן שעבר מאז אמצע הלילה של ה-1 בינואר שנת 1601, בגריניץ' באנגליה ממשק 1 32חו/ כולל מספר פונקציות שהיישום יכול לנצל, כדי להפוך ערכים כאלה. לתבניות יותר כלליות, מובנות ושימושיות. הומנים של מצב גרעין התהליך ומצב המשתמש הס משכי ומן שנמדדים בננו-שניות. לדוגמה, אס תהליך נמצא שנייה אחת במצב גרעין, הפונקציה 010106995700065 ממלאת את המבנה 115115 שמוגדר על ידי הפרמטר 6וחודופחזאכ! בעל 64 הסיביות. בערך של עשרה מיליון, שהוא מספר יחידות 100 ננו-שנייה שיש בשנייה אחת. התקליטור המצורף. לספר מכיל את התוכנית 1065 זקחד שוסו5 (בתיקיה 5 שפותחת דרת מטלות ומחזירה את ומן העיבוד של כל אחת מהן. היא מחזירה גם את זמן העיבוד של התוכנית כולה. 7 להבין טוב יותר את הפונקציה 5-ו" ככל שעובדים עם מטלות, פוגשים במצבים שבהם מתרחשיס אירועים (כמו הקשות במקשים, וכדומה), אשר מטופלים על ידי המטלה הראשית שנמצאת בפונקציה 6 שמעבדת את הודעות התוכנית. עם ואת, כשיש מטלת בן מושחית, השליטה. במידע ההודעות הופך להיות מורכב יותר. מכיון שהמטלה כבר מושהית (מסיבה כלשהי), פונקציית ההודעה של המטלה מחזיקה את ההודעות האלו עבור המטלה בתור ההודעות של המטלה. כדי לדעת את תכולת תור ההודעות לאחר שהמטלה המושהית מופעלת מחדש, 4 התוכניות ‏ יכולה לנצל ‏ את שירותי הפונקציה פונקציה זו מחזירה דגלים שמציינים את סוגי ההודעות שנמצאות. בתור ההודעות של המטלה הקוראת לה. את הפונקציה 660006055 כותבים. בתוכנית כך ; (51885 עואדט) פגו 8 5סגופוו0 065 פתסוום הפרמטר 5טָ מגדיר את דגלי המצב אשר מציינים את סוג ההודעות שהפונקציה צריכה לבדוק. פרמטר וה יכול להיות צירוף של הערכים שמפורטים בטבלה 16.6 הערך המוחור במילת הסדר הגבוהה מציין את סוגי ההודעות שנמצאות כרגע בתור. הערך של מילת הסדר הנמוך מציין את סוגי ההודעות ש-פאוסשחו// הוסיפה לתור ועדיין נמצאות בו מאז הקריאה האחרונה לפונקציה 006515005נו6600, 6100655306 אוו לפונקציה 600005536 8 הכהו ומבוא ל-ספו נוכחות הדגל 05 בערך המוחזר אינה מבטיחה שקריאה עוקבת לפונקציה 6 א 661//095306 תחיר הודעה. 661//655906 ו-606/655806 מבצעות. סינון פנימי שיכול לגרום לתוכנית לטפל בהודעה באופן פנימי. מכיון שכך, עליך לחשוב על הערך המוחזר מ-060(0906513005 רק כרמז לתוכנית לקרוא לאחת משתי הפונקציות, 661//695306 אאו 6081095906 טבלה 16.6: הערכים האפשריים של הדגלים שהפרמטר 81885 יכול לקבל. עוך פירוש פהופטם ווה .5 | קלט, הפואנד ואצו, דאזהק זאו צואדסה ווצ, או הודעה. ששוגרה נמצאים בתור. דטקאז11א, 05 | יש הודעה כלשהי בתור. ץפאדסו 05 | הודעת =אדס1 ואצ נמצאת בתור. דטקא1 05 | הודעת קלט נמצאת בתור. פא 5 | הודעת קט ואצ ספא או, קטץ5 5158 הוא, אר אצו0סצ515%5 וצ נמצאת בתור. שפטסוי 05 | הודעת 08א0056 וי או הודעת לחצן עכבר (מטאסדדטפ ואו, אעוססאסדדטפה או, וכדומה) נמצאת בתור. אסדדט9ס5טסו .05 | הודעת לחצן עכבר (סטווסדדטם ואו אשוססאסדד8ה. אישו וכדומה) נמצאת בתור. 0056096 05 | הודעת פס!פ5 טסו וא/ו נמצאת בתור. דווזהק 5 | הודעת דאזאק וא/ו נמצאת בתור. 70516556 .05 | הודעה ששוגרה (אחרת מאלו שכבר מנינו ברשימה). נמצאת בתור. 58 05 | הודעה שנשלחה על ידי מטלה אחרת או על ידי יישום. אחר נמצאת בתור. הפאזד 05 | הודעת הפואזד וא/ו נמצאת בתור. פרק 16: תהליכים ומטלות = 449 8 עיבוד חריגים שלא טופלו - הח פַחז!חבו] 5 וא מערכת ההפעלה לבחו ממקמת פונקציה ברמה עליונה לעיבוד חריגים (16/6-פטד 19066 ח0ק569) בתחילת כל מטלה ותהליך. המטרה היא לוודא שתוכניות מגיבות. בצורה נכונה לחריגים שאינם מטופלים (למעשה, תוכניות אלו נסגרות מבלי להשפוע. באופן שלילי על תהליכיס אחרים). לפעמים, *יתכן שתרצה ללכוד בשיגרה מיוחדת את. כל החריגים שאינם מטופלים; שיגרה זו תשמור את התוכנית/התהליך של המשתמש. בקובץ שיקום ₪6 ע86006). הפונקציה ז800ח00ק5610003061600%05 מאפשרת ליישום לבטל את הפונקציה ברמה עליונה לעיבוד בחריגים ש- 32ח/ מיקמה אותה בראש כל מטלה או תהליך. אחרי הקריאה לפונקציה /ח00ק0306/605%65ח560, או מתרחשת חריגה בתהליך. ש-פווסחו/ אינה מנפה אותו משגיאות כרגע, והחריגה אינה מטופלת על ידי מסנך החריגים של 32ח, אז מסנן וה קורא לפונקציית מסנן החריגה 09 ה00ק6 חסנטחט). שמוגדרת. על ידי הפרמטר זס)וחחס0קס0אפ!פשסקסדקו. את הפונקציה 0 ס:036/600651ח5 כותבים בתוכניות, כמו בהגדרה שלהלן. 045001 61ה8מתטו50 המת (11%68תמס1מש6סאמ61עםמקמפק1 תמפמנק א0:דקמסאם נפטם. אסנספמסאם מפטמ1 פסצפג 10 הפרמטר ז9ח00ק6//5%65.קסדפ! מספק את הכתובת של פונקציית מסנן החריגהה ברמה עליונה ש-0065ח/ קוראת לה בכל פעם שהפונקציה 81/06 חס: 6190060 חחח מקבלת שליטה, ו-005חו/ אינה מנפה את התהליך משגיאות. כדי להגדיר עיבוד בנוהל ברירת המחדל על ידי הפונקציה 0005/06ק6666460חבחחט, ערך הפרמטר זו חסוק%66ס/5%6 |קסדק! צריך לחיות -014 התחביר של פונקציית המסנן מתאים לוה של 808ח000ק60569וחהחח. פונקציית. המסנן מקבלת פרמטר אחד מסוג 701885 א110ק178%65 ומחזירה ערך מסוג 6 פונקציית המסנן צריכה להחזיר אחד מהערכים שמפורטים בטבלה 16.7. הפונקציה זסשו/החסוק6/00509ח8החש561 מחצירה את הכתובת של מסנן החריגה הקודמת שקשור לפונקציה. אס הערך המוחזר הוא 1טא, פירוש הדבר שאין מסנן חריגה נוכחי ברמה עליונה. השימוש ב-0008/0091ק806/605%65חח5610 מחליף את מסנך החריגה ברמה העליונה עבור כל המטלות הקיימות ואלו שיווצרו אחר כך בתהליך. הקורא. התוכנית מפעילה את פונקציית החריגה שמוגדרת על ידי הפרמטר וו סז קס6אס!פש וקסדק! בהקשר של המטלה שגרמה לשגיאה. מכיון שפונקצייתת החריגה מופעלת בתוך מטלה, יש אפשרות שתשפיע על פונקציות לעיבוד בחריגיםם והיכולת שלהן להתאושש מחריגים מסוימים, כמו מחסנית שאינה תקפה. 0 3271חו/ו ומבוא ל-ספו טבלה 16.7: הערכים המוחורים האפשריים של פונקציית המסנך עיך פירוש וסואו דטספ אש אסזזקס0 אש | מוחזר מ הח ומפעיל את הפונקציה המתאימה לעיבוד החריגה. ערך זה בדרך כלל גורס לסיום. התהלוך. אדא סטאאנדאסס. סקסא | מוחזר מ-פז חס ק616066ההחחט. וממשיך את ההפעלה מהנקודה של החריגה. שים לב שפונקציית המסנן חופשית לשנות את מצב ההמשך על ידי שינוי מידע החריגה שמסופק על ידי הפרמטר 201885 7057110 ) שלה. 5580 שטאזדווסס. אסזק%05= | ממשיך בהפעלה הרגילה של 160 כלומר, מקבל את משמעות הדגלים 56481707%06, אר קורא לתיבת ההודעה הנשלפת העוסקת. בשגיאת היישום (זסזזש חסטב6קקה). כדי להבין היטב את מהלך העיבוד של הפונקציה ז0008/09ק6605%60ח3חח50%0, התבונן בתוכנית חסוק69א= 616ח₪8, שבתקליטור המצורף לספר זה. תוכנית זו יוצרת מסנן לחריגות שאינן מטופלות, ואחר כך היא מציגה איך היא לוכדת חריגים. מטופלים בפונקציות עיבוד בחריגים, וכיצד היא לוכדת באמצעות המסנן שהיא יצרה. את החריגים שאינם מטופלים. הפונקציות 6905600008 חח טסיר ו-106ק0 הצר של התוכנית חסווק5%66 83616 מכילות את הקוד שמבצע את העיבוד בפועל. 9 סיום מטלות ככל שהתוכניות הופכות להיות יותר מורכבות, ייתכנו מקרים שבהס מטלה נכשלת, ואינה יכולה לסיים את פעולתה בצורה נורמלית. למדת שהתוכניות חייבות במקרה זה להפסיק, או להפסיק ומנית, כל מטלה שנכשלה, כדי שמערכת ההפעלה תפסיק לתזמן. אותה לביצוע ולא תקצה לה זמן מעבד. תוכנית שנכשלת ואינה יכולה לסיים את פעולתה בצורה תקינה, גם לא תיסגר. על כן, התוכנית חייבת להורות למערכת. ההפעלה לסייים את המטלה במקומה. כדי לעשות ואת, צריך לשלב בתוכניות השונות. את הפונקציה 626וחד6)החווחזפד. את הפונקציה 620וח67)החווחזפד כותבים כמו בהגדרה שלהלן. מע 0 8פגט שמש 50 16שממת // 7 // 6818 0066 805 96 פרק 16: תהליכים ומטלות ‏ 451 הפרמטר 6פסזחדח מוהה את המטלה שצריך לסיים. תחת ד פאוסחו/, הידית חייבת. להיות בעלת גישה =זאזויופד סאפמאד. הפרמטר 8000066 מגדיר את קוד היציאה עבור המטלה. צריך להשתמש בפונקציה 0936ד6619/60060 לקבלת ערך קוד היציאה של המטלה. אם הפונקציה מצליחה, הערך המוחזר שונה מאפס. אם הפונקציה נכשלת, הערך המוחזר הוא אפס. התוכניות משתמשות ב-630זח67)החווחזפד כדי לגרו למטלה לצאת ₪00). כאשר משתמשים ב-630זח67)החווחזפד כדי לגרו למטלה לצאת, למטלת המטרה אין כלל סיכוי להפעיל קוד כלשהו של המשתמש, והתוכנית אינה מקצה מחדש את המחסנית. ההתחלתית של המטלה. התוכנית אינה מודיעה לתיקיות הקישור הדינמי (15ו0) שמוצמדות למטלה שהמטלה מסתיימת. הפונקציה 6ג6זחפזחוחוזסד היא פונקציה בעלת פוטנציאל סיכון, ולכן עליך להשתמש. בה רק במקרים הקשים ביותר. עליך לקרוא ל-686זח4167חווחזטד רק אם אתה יודע בדיוק מה מבצעת מטלת המטרה, ויש לך שליטה על כל הקוד שמטלת המטרה עשויה. להפעיל בזמן הסיום. לדוגמה, 636זח67)החווחזפד יכולה לגרו לבעיות הבאות % אס מטלת המטרה בעלת קטע קוד קריטי, פווסטח!וו אינה משחררת את הקטע הוה * אם מטלת המטרה מפעילה קריאות גרעין מסוימות בשעת הקריאה ל-636ז80670ח/וח9 מפסיקה אותה, מצב הגרעין שקשור לעיבוד המטלה עלול. להיפגע. %+ אם מטלת המטרה מנהלת את המצב הגלובלי של תיקיית קישור דינמי משותפת, סח יכולה להרוס את התיקיה האו וגם להשפיע על תיקיות קישור דינמי אחרות שבשימוש. מטלה יכולה להגן על עצמה מפני 636זחד6והחווחזד על ידי שליטה בגישה לידיות שלה. לידית המטלה שמוחורת על ידי הפונקציות 00316701630 ו-0163190106055. יש לה. גישה מסוג פדאאזויוחפד סאפחווד, לכן כל תוכנית קוראת שמחויקה את אחת הידיות. האלו יכולה לסיים את המטלה. אם מטלת המטרה היתה המטלה האחרונה של התהליך בשעה שהתוכנית קראה לפונקציה 0פזחדפז3חווחז6ד, התוכנית מסיימת גם: את התהליך של המטלה. המצב של אובייקט המטלה הופך להיות מסומן, והוא' משחרר מטלות אחרות כלשהן שהמתינו למטלה שתסתיים. מצב סיום המטלה משתנה. מ-011/5. .51111 לערך של הפרמטר 05000006. סיום מטלה אינו מסיר בהכרח את אובייקט המטלה מהמערכת. 1000026 מוחקת. אובייקט מטלה כאשר התוכנית סוגרת את הידית האחרונה של המטלה. 2 כו ומבוא ל-ספו כדי להבין יותר טוב את העיבוד שמבצעת הפונקציה 630וח67)החווחזפד, התבונך בתוכנית 6365ז0ד פוחמא, ‏ שנמצאת בתקליטור המצורף לספר וה (בתיקיה 5.. תוכנית ו מאפשרת למשתמש ליצור מטלה, ואחר כך להשהות אותה (הקש על צירוף המקשים 5+), להפעיל את המטלה מחדש (הקש 8+1%) או לסיים. את המטלה (הקש %+6/א). התוכנית נמנעת מלעסוק בעניינים הקשורים בסיום מטלה, בכך שהמטלה אינה מבצעת דבר, ורק מאפשרת למשתמש לגשת למטלה האחרונה. שנוצרה. הפונקציות 66זק30סוחד ו-)סזקנחא של התוכנית 1076865 קוחמ מכילות. את הקוד שמבצע את העיבוד הנדרש. 0 הביעת זיה או תהליך למדת בסעיף 16.4 שפעמים רבות דרוש לתוכניות מזהה ומני, או ידית מדומה (8066ו-5960ל). אל המטלה הנוכחית או אל התהליך הנוכחי. לפעמים התוכניותת דורשות ידית קבועה או ערך ייחודי אחר כדי לוהות מטלה או תהליך במערכת. ממשק זקה 032 מספק שתי פונקציות, 96010 ו 016 שמאפשרות לתוכניות להשיג ערך 0/0 מיוחד שמערכת ההפעלה משתמשת בו כדי לוהות מטלה או תהליך בצורה פנימית. כותבים את הפונקציות האלו בתוכניות, כמור בהגדרה שלהלן. (ם1) של מטלה (0614) - 68018עמ5ה0עעט0 065 ספסאום 5086 0650 סתסאום הפונקציה 160017763614צ6610 מחזירה את מוהה המטלה 16900660 600זד) של המטלה הקוראת, שהוא למעשה הערך המוחזר של המטלה הקוראת. כל זמן שהמטלה. פועלת ועד לסיומה, מוהה המטלה מאפשר זיהוי שלה במערכת באופן חד-ערכי. באופן דומה, הפונקציה 1070665516ח6ז6600 מחזירה את מזהה התהליך פפפססז ז06ח106) של התהליך הקורא. פונקציה זו אינה מקבלת פרמטרים. הערך המוחזר הוא מוהה התהליך של התהליך הקורא. כל עוד התהליך פועל ועד שהוא מסתיים, מוהה התהליך מאפשר את והויו במערכת באופן חד-ערכי. התוכנית ‏ 6חפוזטסשוסח5 שהוצגה בסעיף 16.4 משתמשת בשתי הפונקציות 6010070 0/0010 % הערה: בדומה לידית, המילה הכפולה סאסוום שמוחורת על ידי הפונקציות 660011001070605510 או 69010זחד) 0000 מכילה. ערך שמאפשר ויהוי חד-ערכי של המטלה או של התהליך על ידי מערכת ההפעלה. אל תבלבל בין הערכים 10 100955 אוו 10 696זחד. לבין הידיות המדומות שמוחזרות על ידי 6010706055זנ00 ו פרק 16: תהליכים ומטלות = 453 1 תזמון מטלות על ידי מערכת ההפעלה מערכת ההפעלה 32ח// היא מערכת הפעלה מרובת מטלות (9006זחד-0וט/א). מערכת. ההפעלה 32חו//ו יכולה לטפל במספר גדול של מטלות עוקבות או תהליכים, הפועלים. בהדדיות זה עם זה. כמו שהסברנו כבר, אנו רואים שמערכת ההפעלה מטפלת במספר מטלות יותר מהר, או בצורה אחרת מאשר באחרות. לדוגמה, מערכת ההפעלה ?וא נוטה לקבוע עדיפות גבוהה יותר למטלות שבתהליך הנוכחי, מאשר לאלו שבתהליכים. המופעלים ברקע. מערכת ההפעלה 32חו/ מכניסה כל מטלה שמבקשת ומן מעבד (כלומר, כל המטלות. הפעילות) לרשיימה 150), שהיא למעשה מבנה תור (פטפוס), על פי רמת העדיפות שיש. לה. בסעיף 16.22 תמצא הסבר של רמות העדיפות (1646/5 עזסוזק). כאשר המערכת. מקצה ומן מעבד למטלה, היא מתייחסת לכל המטלות בעלות אותה עדיפות כשוות. במלים אחרות, המערכת מקצה זמן מעבד למטלה הראשונה שבתור הנושאת את רמת. העדיפות 31, ואחרי שפרק הזמן של המטלה הזו מסתיים, המערכת מקצה זמן מעבד למטלה הבאה בתור, בעלת עדיפות 31. לכן, חשוב לשים לב לכך שאם יש לפחות מטלה. אחת בעדיפות 31 הצורכת את זמן המעבד ברציפות, ללא הפסקה, היא אינה מאפשרת. למטלות בעלות עדיפויות נמוכות יותר לפעול. תוכניתנים קוראים לתנאי עדיפות זה הרעבה (חסו3ו5). הרעבה מתרחשת, כאשר מספר מטלות מקבלות הרבה מזמן המעבד, ואינן מאפשרות למטלה אחרת כלשהי לפעול. כאשר המערכת משלימה את ביצוע כל המטלות בעלות העדיפות 31, היא מתחילה להקצות זמן מעבד למטלות בעלות עדיפות 30. כאשר המערכת מסיימת לבצע את כל' המטלות בעלות עדיפות 30, היא מתחילה להקצות זמן למטלות בעלות עדיפות 29, וכךך הלאה. על כן, יכול להיות שנראה כאילו המטלות בעלות עדיפות נמוכח לעולם אינך מופעלות במערכת ואת. כמו שיתברר לנו בהמשך, אפילו המטלות בעלות העדיפות. הגבוהה ביותר אינן צורכות זמן מעבד ברציפות, וכך הן משחררות אותו לעיבוד של מטלות בעלות עדיפות נמוכה יותר. לבסוף, צריך לדעת שכאשר מטלה בעלת עדיפות נמוכה מופעלת - ואפילו אם היא נמצאת באמצע פרק הזמן שהוקצה לה - והמערכת מחליטה שמטלה בעלת עדיפות. גבוהה ממתינה להפעלה, המערכת מפסיקה מיד את הפעלת המטלה בעלת העדיפות. הנמוכה ומתחילות בהפעלת המטלה בעלת העדיפות הגבוהה. המטלה בעלת העדיפות. הגבוהה תמיד מקדימה את המטלה בעלת העדיפות הנמוכה, ללא תלות בפעולה של המטלה בעלת העדיפות הנמוכה, או באיוה מצב הפעלה היא נמצאת. שים לב. מיקרוסופט שומרת לעצמה את הזכות לשנות את האלגוריתם שמערכות הפעלה. מבוטסות 2חוו משתמשות בו לניהול תור המטלות. במערכות ההפעלה 9% פאוסנחואו, 3.51 ד פאוסטחו/, ו- 4.0 דא פאוסטחווו משובצות גרסאות שונות. של אלגוריתם לניהול תור המטלות. עליך להכיר את שיטת עדיפות המטלות 64 3271חו/ו ומבוא ל-ספו ואיך צריך להשתמש בה כראוי. עם ואת, אל תבנה את התוכניות שלך על פי שיטת ניהול עדיפויות כלשהי של מערכת הפעלה מסוימת, מכיון שמיקרוסופט. עשויה לשנות את אלגוריתם ניהול תורי העדיפויות בגרסאות עתידיות של אותה מערכת הפעלה. 2 רמות עדיפות (6!5ע6.] עפויוסוזש) בסעיף קודם למדת שמערכת ההפעלה ?חא מנהלת את תורי כל המטלות הפעילות. ומתומנת את הפעלתן, על פי רמת העדיפות (/19%6 עחסוז) הנוכחית שיש להן. תחום. רמות העדיפות הוא מ-0 (העדיפות הנמוכה ביותר) עד 31 (העדיפות הגבוהה ביותר). מערכת ההפעלה מקצה את רמת העדיפות "אפס" למטלת מערכת מיוחדת הקרויה מטלת דף אפס (636זחד 50 0ז26). מטלת דף אפס אחראית לאיפוס דפים חופשיים. כלשהם שבמערכת, כאשר אין מטלות כלשהן שחייבות לבצע עבודה כלשהי. אין מטלה אחרת כלשהי שיכולה להיות בעלת רמת עדיפות אפס, מלבד מטלה מיוחדת זור כאשר יוצרים מטלות, לא משתמשים במספרים כדי להקצות להן רמות עדיפות. במקום ואת, המערכת משתמשת בהליך בן שני צעדים כדי לקבוע את רמת העדיפות. של המטלה. הצעד הראשון הוא להקצות מחלקת עדיפות (0855 /טחסזק) לתהליך מחלקת העדיפות של התהליך אומרת למערכת איזו עדיפות התהליך מבקש בהשוואה לתהליכים מופעלים אחרים. בסעיף הבא תמצא הסבר נוסף אודות מחלקות עדיפות. הצעד השני הוא להקצות רמת עדיפות יחסית לכל מטלה ששייכת לתהליך. כאשר יוצרים לראשונה מטלה בתהליך, רמת העדיפות שלה היא כמו זו של של התהליך עצמו. בסעיף 16.25 תלמד להשתמש ב- 801 32 כדי לשנות את רמת העדיפות היחסית של מטלה. 3 מחלקות העדיפות של פששסחזצ (6!35565 /םוזס1זוק) כמו שהוסבר בסעיף קודם, 5ס0ח/ משתמשת בהליך בן שני צעדים כדי לקבוע את עדיפות המטלה. הצעד הראשון הוא לקבוע את מחלקת העדיפות של התהליך. ַחו+ תומכת בארבע מחלקות עדיפות שונות: המתנה (60!6), רגילה (וגוחזסא), גבוהה (חִָ), זמן אמת (06חו6310ה). טבלה 16.8 מפרטת את מחלקות העדיפות. טבלה 16.8: מחלקות העדיפות האפשריות. עדיפות פירוש 5 +דאס1ק 116% | תהליך שמבצע משימות בומן קריטי, שמערכת. ההפעלה חייבת להפעילן מיד, כדי שהתהליך. רמת עדיפות גבוהה. יפעל בצורה נכונה. מטלות תהליך בעל עדיפות. פרק 16: תהליכים ומטלות = 455 עדיפות סק 16 רמת עדיפות גבוהה. סק וד רמת עדיפות בהמתנה. דה סנק סא רמת עדיפות רגילהה סק אדפ רמת עדיפות ומן-אמת. פירוש. מחלקה גבוחה קודמות למטלות של תהליכים. בעלי מחלקת עדיפות רגילה או המתנה. דוגמה. לכך היא רשימת המשימות (81: 135%) של. 05 שחייבת להגיב במהירות כאשר המשתמש קורא לה, ללא תלות בעומס על מערכת. ההפעלה. צריך לנהוג בוהירות גדולה כאשר משתמשים במחלקת עדיפות גבוהה, מכיון שיישוס בעל מחלקת עדיפות גבוהה יכול. להשתמש כמעט בכל זמן המעבד ולא להרפות. ממנו לטובת משימות אחרות. רמת העדיפות של תהליך בעל 61455 ידזהסזחק ₪16 היא 13 תהליך שהמטלות שלו מופעלות רק כאשר המערכת נמצאת בהמתנה, ומטלות של תהלוך. אחר שמופעל במחלקת עדיפות יותר גבוהה. הקדימו אותן. לדוגמה, שומר מסך. תהליכי בן יורשים את מחלקת עדיפות ההמתנה. רמת. העדיפות של 455 צדזהס1חק = סז היא 6> תהליך נורמלי, ללא דרישות מיוחדות כלשהן. לתזמון. עדיפות תהליך בעל. 5 +10 .ואס היא 8. תהליך בעל העדיפות הגבוהה ביותר האפשרית. המטלות של תהליך בעל מחלקת עדיפות זמן אמת מקדימות את המטלות של כל שאר התהליכים, כולל תהליכי מערכת ההפעלה. שמבצעים משימות חשובות. לדוגמה, תהליך זמן אמת אשר מופעל לאורך זמן ארוך מדי עלול לגרום לכך שמטמון הדיסק לא יתרוקן, או לגרום לכך שהעכבר לא יגיב. רמת העדיפות של. 5 | דהסזהק שואד ואה היא 24. דבר שיכול לעזור לך בעניין זה הוא הבנה טובה של השפעת רמות המחלקות השונות. לדוגמה, צריך להשתמש ב-61455 דןהס1חק 16ו! רק כאשר יש צורך בכך. התהליך. הנפוץ. ביותר שמשתמש ב-₪1455 צדוהסזחק 160 הוא הסייר של 5ס6חאר (זסוק5 פאוסטחואו).. אפילו אם מרבית מטלות שולחן העבודה (065690) נרדמות. (9/6005) במהלך הפעלה רגילה, המשתמשיס מצפים מיישוס זה להגיב כאשר ניגשים. אליו. לכן, פאוסטחו/ו נותנת למטלות הסייר את העדיפות הגבוהה, אשר מקדימה כמעט. כל מטלה אחרת כאשר המשתמש בוחר באפשרות כלשהי של שולחן העבודה. אם יוצרים תוכניות שמשתמשות גם כן ב-0455 צדנחס1ק 16%ו, יכול להיות ששולחן העבודה לא יגיב כנדרש, ואפילו יכול להיות ש-5וס0חו תחסום אותור 6 32071חו/ו ומבוא ל-ספו בדרך כלל, תוכניות מסוג יישומי בקרה תפעלנה ברמה 0455 צדנהסנחק ₪ ופז. לדוגמה, כאשר תכתוב יישום שמציג באופן מחזורי את כמות הזיכרון החופשי שבמערכת. מכיון שלא תרצה שהיישום יפריע לביצוע משימות קריטיות אחרות התלויות בומן, עליך לקבוע את מחלקת התהליך המחזורי ל-0855. צדנהס81ק > ופד וס6חוו מקצה באופן אוטומטי את ₪455 +זזהסזחק ואוומסא לכל תהליך שאינך מקצה לו במפורש ערך אחר, ורצוי שהתוכניות שלך תפעלנה בדרך כלל ברמה זו. שים. לב לכך, שכאשר המשתמש מביא תהליך לקידמה (6חטסזזטס?),. מערכת ההפעלה. מעלה את העדיפות היחסית שלו, כדי לספק מהירות פעולה טובה יותר. לדוגמה, מערכת 9% 5ווסחו מוסיפה אחד למונה רמת העדיפות של תהליך הקידמה. בכלל, צריך להימנע כמעט תמיד מהשימוש ב-455 ד1הס1קק 6וו1דוסה בתוכניות. רגילות, מכיון שעדיפות זמן אמת היא עדיפות גבוהה מאוד - ולמעשה, היא אפילו גבוהה מרוב מטלות הניהול של מערכת ההפעלה. המטלות שבמערכת אשר שולטות. בעכבר והמקלדת, בעבודת דיסק ברקע, ואפילו המלכודת /001+816+06 - כולן מופעלות. בעדיפות נמוכה יותר מעדיפות זמן אמת. לתוכניות אשר משתמשות בעדיפות זמן אמת יש פעמים רבות השפעות משמעותיות על יישומי המשתמש. 6 הער8: המונח קידמה (חטספָסוס?) מקובל במחשבים המסוגלים לבצע. יותר ממשימה אחת בו-ומנית. הקידמה היא הסביבה שבה המשתמש עצמו פעיל ביישום, בשעה שמשימות אחרות, כגון הדפסת מסמך, העתקת קבצים או שידור תקשורת - פועלות ברקע. 6 4 שינוי מחלקות העדיפות של התהליך למדת בסעיף קודם שמערכת ההפעלה לבחו מקצה באופן אוטומטי את העדיפות הנורמלית לכל תהליך חדש. עם ואת, פעמים רבות עלינו לשנות בתוכניות את מחלקת. העדיפות הנוכחית של התהליך. אפשר להשתמש בפונקציות 61000070/0855 ו-0089/מ₪1ז0ק501 כדי לנהל את מחלקת העדיפות של התהליך. הפונקציה 697 מחזירה את מחלקת העדיפות עבור התהליך המוגדר. את הפונקציה 5 כותבים בתוכניות כמו בהגדרה שלהלן 2 (885ססצפה ממסואתא) 6701885 866951081 סהסוום הידית 06955זח מזהה את התהליך. תחת דא וווס6חוא, הידית 0106955 חייבת להיות. בעלת זכות גישה אסנזהואהס<או1 אהפט) 00855חק. אס הפונקציה 0006/0855 מצליחה, הערך המוחזר הוא מחלקת העדיפות של התהליך המוגדר; אם הפונקציה נכשלת, הערך המוחזר הוא אפס. מחלקת העדיפות של התהליך המוגדר יכולה לקבל את אחת מרמות העדיפות המפורטות בטבלה 16.8 פרק 16: תהליכים ומטלות = 457 הפונקציה 5619011005 יכולה לקבוע את מחלקת העדיפות של התהליך המוגדר. מחלקת העדיפות, יחד עם ערך העדיפות של כל מטלת תהליך, קובעים את רמת העדיפות הבסיסית של כל מטלה. כותבים את פונקציה 56190011/0855 בתוכניות כמו. בהגדרה שלהלן. | 021021601888 565 מ00ם תש 0 18בתמת // הנאת שטנפצ 01885 עמ1פס1פק // סו לו כמו הפונקציה 66/01006/0855, גם הידית 5פפססזקח מוהה את התהליך. תחת זו 5סשחו/, | הידית | 5פסססזקה = חייבת = להיות | בעלת | זכות | גישה אסנדאויוהסא 56 55פססהק. הפרמטר 1/0555ז0ו6/1 מגדיר את מחלקת העדיפות. של התהליך. הפרמטר 0/00006/085. יכול לקבל ערך כלשהו מאלה שמפורטים בטבלה 16.8. כאשר הפונקציה 0855/ז561900 מצליחה, הערך המוחזר שונה מאפס; אס הפונקציה נכשלת, הערך המוחזר הוא אפס. לכל מטלה יש רמת עדיפות בסיסית, אשר נקבעת על ידי פוס0חו//ו בהתבסס על ערך. העדיפות של המטלה ועל מחלקת העדיפות של תהליך המטלה. המערכת משתמשת. ברמת העדיפות הבסיסית של כל המטלות שאפשר להפעיל, כדי לקבוע איוו מטלה מקבלת את הקצאת הזמן הבאה של המעבד. הפונקציה /6307100118זח561 מאפשרת. לקבוע את רמת העדיפות הבסיסית של מטלה באופן יחסי למחלקת עדיפות התהליך. שהיא שייכת לו. סעיף 16.25 משתמש בפונקציה /6וז6300100זחז560 כדי לקבוע את. רמת העדיפות של המטלה. בתקליטור המצורף לספר וה תמצא את התוכנית /זוזסוזק 56% 66% (בתיקיה. 5. תוכנית זו מאפשרת למשתמש לבחור את מחלקת העדיפות של התהליך. לאחר כל בחירה, התהליך יבצע פונקציה הצורכת זמן מעבד ווציג את תוצאות הפונקציה יחד עם מחלקת העדיפות המוחצרת על ידי מערכת ההפעלה. 5 קביעת העדיפות היחסית של התהליך למדת ש-28ו00חוו קובעת את רמת עדיפות המטלה בהתבסס על מחלקת העדיפות של התהליך שהיא שייכת לו ועל רמת העדיפות של המטלה. בסעיף 16.24 למדת להשתמש. בפונקציה 56/01₪0110/0855 כדי לשנות את מחלקת העדיפות של התהליך. כדי לשנות. את רמת העדיפות של מטלות בתהליך, צריך להשתמש בפונקציה /9300100116זחד/5, אשר קובעת את ערך העדיפות של המטלה המוגדרת. ערך זה, יחד עם מחלקת העדיפות של התהליך שהמטלה שייכת לו, קובעים את רמת העדיפות הבסיסית של המטלה. משתמשים בפונקציה /וז0ק30סזחדו5 כפי שמוצג בהגדרה שלהלן 8 3201חו ומבוא ל-0פו )288021091 ה3607 מססם מנסאת שמש 50 16שממת // ו 1 ע16פס1צם 684פמ6 // ע51ס1פעה 486 / הפרמטר 6ג6זחדח מזהה את המטלה אשר הפונקציה הולכת לקבוע את ערך העדיפות. שלה. | תחת זא פסחו/ו, = הידית | חייבת | להיות | בעלת ‏ זכות ‏ גישה אסנדאווהס?א1 ד55 סאפחהד. הפרמטר עשחסווקה מגדיר את ערך העדיפות של המטלה. פרמטר זה יכול לקבל את אחד הערכים שמפורטים בטבלה 16.9 כאשר הפונקציה /630706זתד561 מצליחה, הערך המוחור שונה מאפס; אם הפונקציה נכשלת, הערך המוחור הוא אפס. למדת שלכל מטלה יש רמת עדיפות בסיסית, ערך עדיפות של המטלה ומחלקת העדיפות שנקבעה לתהליך. המערכת. משתמשת ברמת העדיפות הבסיסית של כל המטלות שאפשר להפעיל, כדי לקבוע אזר מטלה מקבלת את פרק הומן הבא של המעבד. המערכת מנהלת את רשימת המטלות. בשיטת חוססז-שחטסז בכל רמת עדיפות (המושג חופסז-חטסז מכוון לכך שכל מטלה מטופלת בנפרד, ללא תלות במטלה אחרת ובלי מעורבותה או ידיעתה), ורק כאשר איין מטלות שאפשר להפעיל ברמה יותר גבוחה, המערכת מתחילה לנהל את רשימות. המטלות בעלות רמת עדיפות הנמוכה יותר. טבלה 16.9: ערכי רמת העדיפות של המטלה עבור הפרמטר /10זסזקח. עדיפות פירוש אותהסות 80 /יה1הס81ק סאשאצוד | מציין רמה אחת מעל לעדיפות הנורמלית. של מחלקת העדיפות. אסא וס וספ שדנהסזהק. סהשאואד | מציין רמה אחת מתחת לעדיפות. הנורמלית של מחלקת העדיפות. 1665 שדנהסנהק ‏ סאשהאד | מציין שתי רמות מעל לעדיפות הנורמלית. של מחלקת העדיפות. = סז +הזהס1הק סאשאאוד | מציין רמת עדיפות בסיסית 1 עבור התהליכים 0455 +זזהסזק 6פ1, 5 דה סנק סא אר 5 +דהסזפק 168, ורמת עדיפות. בסיסית 16 עבור תחליכי. סנק ודה דפטשוס +הנהסזהק ‏ סאפאוזד | מציין שתי רמות מתחת לעדיפות. הנורמלית של מחלקת העדיפות. תפסא ד1הס81ק סאשאצוד | מציין עדיפות נורמלית של מחלקת. העדיפות. פרק 16: תהליכים ומטלות = 459 עדיפות. פירוש דנה פואנד יהזהס1אק סאשאצוד | מציין רמת עדיפות בסיסית 15 עבור התהליכים 0455 ץ+דזהסזאק 6פ1, 5 דה סנק אסא אר 5 צדהסזפק 116%, ורמת עדיפות. בסיסית 31 עבור תהלוכיי סנק שווד פה הפונקציה /ו6907001וחד500 מאפשרת לקבוע את רמת העדיפות הבסיסית של המטלה, יחסית למחלקת העדיפות של התהליך שהיא שייכת לו. לדוגמה, הגדרת. 16 +דוהסזחק סהפחווד בקריאה לפונקציה /וז6300100זחז56 עבור מטלה ותהליך עס 01455 +הזהס1ק 1015 קובעת את רמת העדיפות הבסיסית של המטלה ל-6. עבור תהליכים עם ₪055 ץזהסזהק ₪ 101 01055 צדנחסנהק הסוא ו-0355 צד781081 6זו, המערכת מעלה דינמית את רמת העדיפות הבסיסית של המטלה בשעה שמתרחשים אירועים שחשובים למטלה (כמו למשל, מטלה אחרת. שעוברת למצב המתנה). תהליכי ₪855 +דוחסזחק פאזדאפה אינס מקבלים כל העלאה דינמית (מכיון שהם כבר נמצאים ברמה הגבוהה ביותר). כל המטלות מתחילות ברמה |ואהסא /יד1הסזהק. סאפמהד. צריך להשתמש במחלקת עדיפות של התהליך כדי להבדיל בין יישומי זמן קריטי ואלה שיש להם דרישת תזמון נורמלית או מתחת לנורמלית. צריך להשתמש בערכי העדיפות. של המטלה, כדי להבדיל בין העדיפויות היחסיות של משימות התהליך. לדוגמה, מטלה שמטפלת בקלט עבור חלון יכול להיות ברמת עדיפות יותר גבוחה מאשר מטלה שמבצעת חישובים אינטנסיביים וצורכת זמן מעבד רב. כאשר מנהלים עדיפויות, צריך להיות והירים מאוד, כדי להבטיח שמטלה בעלת עדיפות גבוהה לא תשתלט על כל זמן המעבד הפנוי. מטלה בעלת רמת עדיפות בסיסית. מעל ‏ 11 מתנגשת עם הפעולה הרגילה של מערכת ההפעלה. השימוש ב-055 צדנהסנחק 16דפח שלא לצורך, או בחוסר תשומת לב, עלול לגרום לכך. שמטמון הדיסק לא יתרוקן, שהעכבר לא יגיב, וכדומה. 6 קבלת רמת העדיפות הנוכחית של מטלה בסעיף קודם למדת שבאפשרות התוכניות להשתמש בפונקציה /50/177630000116 כדר לשנות את רמת העדיפות הנוכחית של מטלה. פעמים רבות, דרוש מידע אודות רמת העדיפות הנוכחית של מטלה, בדרך כלל כצעד לפני הקריאה ל-076ק0ה6זחדו50 לשינוי רמת העדיפות הקיימת. הפונקציה /9307008וחדו66. מחזירה. את ערך העדיפות של המטלה המוגדרת. ערך זה, יחד עם מחלקת העדיפות של התהליך 0 321ח/ו ומבוא ל-ספו שהמטלה שייכת לו, קובעים את רמת העדיפות הבסיסית של המטלה. את הפונקציה. כותבים כמו בהגדרה שלהלן. ת60 פתג מנסאתט 50 16ממת // 7 לו כמו בפונקציה /06וז6367זחז560, גם כאן הפרמטר 0פפוחדח מזהה את המטלה. כאשר הפונקציה מצליחה, היא מחזירה את רמת העדיפות של המטלה; אם הפונקציה נכשלת, היא מחזירה אהטדפה ‏ הסמח צדנהסנהק. סהפאווד. כדי לקבל מידע מפורט. אודות השגיאה, צריך לקרוא ל-ז0ז6639/9. רמת העדיפות של המטלה היא אחד הערכים שמפורטים בטבלה 16.9 וכור, לכל מטלה יש רמת עדיפות בסיסית שנקבעת על ידי מערכת ההפעלה לפי ערך. העדיפות של המטלה ומחלקת העדיפות של התהליך שהיא שייכת לו. מערכת ההפעלה. משתמשת ברמת העדיפות הבסיסית של כל המטלות שאפשר להפעיל כדי לקבוע איור מטלה תקבל את הקצאת הזמן הבאה של המעבד. מערכת ההפעלה מנהלת את רשימות. (או תורי) המטלות בשיטת חופסז-6חטסז בכל רמת עדיפות, כפי שהוסבר בסעיף קודם, ורק כאשר אין מטלות שאפשר להפעיל ברמה יותר גבוהה, מערכת ההפעלה פונה אל. רשימות המטלות ברמה היותר נמוכה. שים לב. תחת 5!1א00ה/ו, | הידית = חייבת = להיות = בעלת | גישה אסנדהואהסא. חפט סאפחוד. 7 קבלת הקשר מטלה למדת ש-6008חו. מאחסנת את המידע אודות המטלה בתוך מבנה זאפזווסס של המטלה 608151 6305זח1). כל שהתוכניות מטפלות במטלות, *יתכן שיידרש להן מידע על הקשר (אטוחסס) המטלה. הפונקציה 05ח0ס66:11630 מקבלת את ההקשר של המטלה המוגדרת. כותבים פונקציה זו בתוכניות כמו בהגדרה שלהלן 00 6אסחסם מש1א 8מסעתם 05 שנבהם // ואת עטססטפ85 6א6מחסס 05 4845658 // 1 1000 / הפרמטר 66זחד מוהה ידית פתוחה של המטלה, שהפונקציה צריכה לקבל את ההקשר שלה. הפרמטר 9%וחססק! מצביע לכתובת של מבנה מסוג 6011 שמקבל את ההקשר המתאים של המטלה המוגדרת. ערך האיבר 5ּפָ000%חס6 של מבנה זה מגדיר איוה חלקים מתוך הקשר המטלה צריך לקבל. המבנה זאפזוו00 הוא מבנה שתלוי בסוג המעבד/המחשב שבו התוכנית פועלת. כרגע, יש מבני זאפזא60 מוגדרים. עבור המעבדים |פוח1, %1175, 3חק|ה, ו-00זסאוסקי פרק 16: תהליכים ומטלות ‏ 461 צריך להשתמש בפונקציה :6610163009 לקבלת ההקשר של המטלה הרצויה. הפונקציה מאפשרת לתוכניות לקבל הקשר לפי בחירתן, בהתבסס על ערך האיבר 19195חס6 של המבנה ז15%א60. המטלה המטפלת בפרמטר 630זחדח מניחה שהיא: נקייה משגיאות, אבל הפונקציה יכולה לפעול גם כאשר היא טרם נוקתה משגיאות. אי אפשר לקבל הקשר תקף עבור מטלה שנמצאת בפעולה. חייבים להשתמש תחילה בפונקציה 630זחז 5050000‏ כדי להשהות את המטלה, ורק אז - לקרוא ל 0 כדי להבין יותר טוב את משמעות הדברים, עיין בתוכנית 1168660086 שנמצאת בתקליטור המצורף (בתיקיה 8006559285). שים לב. תחת זא פווסחו/, הידית חייבת להיות בעלת גישה דאפדא60 66 סאפחווד למטלה. 8 הפסקה זמנית והפעלה מחדש של מטלות בסעיפים קודמים למדת שהתוכניות יכולות ליצור מטלות במצב מושהה (על ודי השימוש בדגל 050א5ק505 685418 עם הפונקציה 616910010665 או 016319036 כאשר יוצרים מטלה מושהית, המערכת יוצרת את אובייקט הגרעין המזהה את המטלה, יוצרת את מחסנית המטלה ומאתחלת את אוגרי המעבד עבור המטלה בהתאם למבנה ד60%15%. בנוסף, הפונקציה היוצרת נותנת לאובייקט המטלה מונה. השהייה טחטס6 6חסקפו5) התחלתי שערכו 1; כלומר, המערכת לעולם לא תקצה זמ מעבד כדי להפעיל את המטלה. כדי לאפשר למטלה להתבצע, מטלה אחרת חייבת. לקרוא לפונקציה 1630חד6וח₪65 ולמסור לה את ידית המטלה המושהית, כדי שתורידד את מונה ההשהייה. כאשר 6גסזחדטוחטפסה מורידה את מונה ההשהייה לאפס, התוכנית מחדשת את הפעלת המטלה. את הפונקציה 630זח67וח₪65 כותבים בתוכנית. כמו בהגדרה שלהלן ; (686פמד ממסוותא) 688עמפשמטפפת סתסאום הפרמטר שפפזחדח מגדיר ידית למטלה שהתוכנית רוצה לחדש את הפעלתה באפשרותך להשהות מטלה מספר פעמים; אך צריך לקרוא ל-636ז9500610ח כמספר הפעמים שהשהית את המטלה לפני שהמטלה מתחילה שוב להתבצע. הפונקציה 0סזחדטוחט5טח בודקת את מונה ההשהייה של המטלה שמדובר בה. אם מונה ההשהייה שווה לאפס, המטלה אינה מושהית כרגע; אחרת, הפונקציה 6החז6חוטפסה מורידה את מונה השהייה. אם התוצאה היא אפס, התוכנית מתחילה. בהפעלת המטלה מחדש. אם הערך המוחזר הוא אפס, פירוש הדבר שלא השהית את המטלה; כאשר הערך המוחזר הוא 1 - השהיית את המטלה, אך התוכנית הפעילה. אותה מחדש. אם הערך המוחזר גדול מ-1, המטלה עדיין מושחית. 2 כו ומבוא ל-ספו שים לב שבזמן דווח על אירועי תהליכי ניפוי שגיאות, מוקפאות כל המטלות שבתהליך. הדיווח. מערכת ההפעלה מצפה תוכניות ניפוי השגיאות להשתמש בפונקציות 55000 ו-0ה6זחדטהחטפסה כדי להגביל את קבוצת המטלות שאפשר להפעיל. בתהליך. אפשר להפעיל מטלה בודדת ייצעד-אחר-צעדיי, על ידי השהיית כל המטלות. האחרות בתהליך, מלבד המטלה שמפעילים עליה את דוח אירוע הניפוי. המטלות. האחרות אינן משוחררות על ידי פעולת ייהמשךי אס הן מושהות. שים לב: תחת | 5אס0הוא, | הידית = חייבת | להיות = בעלת | גישה שואטפפה סאאפקפט5 סהפהווד למטלה. 9 סינכרון מטלות (630יוחד ה0ולה2וחסזה6הץ5) בסעיפים קודמים למדת ש-פאוסטחו/ו תומכת בריבוי מטלות. בסביבה אשר בה מטלה אחת או יותר יכולות להתבצע בו-זמנית, פעמים רבות חשוב לאפשר לתוכנית לסנכרן. (וגם לתומן כראוי) את פעילות המטלות השונות. מערכת הפעלה מבוססת ?חא מספקת מספר אובייקטי סינכרון (00(605. חסווגטוחסזהסח/5, או אובייקטי תזמוף. שמאפשרים למטלות לסנכרן את הפעולות שלהן עם מטלות אחרות. בסעיף 16.30, תלמד בפירוט אודות אובייקטי הסינכרון. בדרך כלל, מטלה מסנכרנת את עצמה עם מטלה אחרת על ידי כל שהיא י"שמה את עצמה בתרדמהיי (ייק6ס/5 סד 10861 פטטקיי). כבאשר המטלה נרדמת, מערכת ההפעלה. אינה מקצה עבורה זמן מעבד, ולכן המטלה מפסיקה לפעול. לפני שהמטלה מועברת. למצב ייתרדמה'", היא מודיעה למערכת ההפעלה מהו "האירוע המיוחדיי (י//50008. )חשופ") - כמו הקשת מקש, לחיצת עכבר, או סיו אלגוריתם - אשר יגרום לכך שהמטלה תתחיל שוב לפעול. מערכת ההפעלה, בתורה, ערה לדרישת המטלה ומשגיחה כדי לראות אם או מתי האירוע המיוחד מתרחש. כאשר האירוע מתרחש, מערכת ההפעלה מעוררת את המטלה והופכת אותה למטלה מן המניין שאפשר לבחור בה שוב ולהקצות לה זמ מעבד. לבסוף, המעבד משלב את המטלה וממשיך בהפעלתה; כלומר, המטלה מסונכרנת עכשיו ומתוזמנת לקבלת ומן מעבד, יחד עס שאר המטלות הפעילות. 0 הגדרת חמשת אובייקטי התיזמון העיקריים למדת בסעיף קודם ש-005ח/ תומכת בסוגים שונים של אובייקטי סינכרון. מתוך אובייקטים אלה, חמשת האובייקטים השימושיים ביותר הם: 500005 !01063 טח 0165 ה30וח50, !הפצש ו-וסוחו 0!6בזואו. בסעיפים: שיבואו בהמשך נדוך פרק 16: תהליכים ומטלות ‏ 463 בהרחבה בכמה מסוגים אלה. חשוב להכיר את ההגדרות הפשוטות של כל סוג, כפי שאפשר ללמוד מטבלה 16.10 טבלה 16.10: חמשת סוגי אובייקטי הסינכרון העיקריים. סוג שימוש ופעולות. 560 6110631 | קטע קריטי הוא קטע קוד קטן, אשר דורש גישה בלבדית. (פאפטואם) אל נתוניס משותפים כלשהס, לפני שהוא מתחיל. להתבצע. מבין כל אובייקטי התזמון, הקטע הקריטי הוא הפשוט. ביותר לשימוש. אפשר להשתמש בקטעים קריטיים כדי לסנכרן מטלות בתהליך בודד כלשהו. קטע קריטי פסאסטט! | מוטציות דומות לקטעים קריטיים. אך כאן השימוש הוא: לסינכרון גישות אל נתונים דרך תהליכים רבים. בנוסף לכך, מוטציות הן אובייקטי גרעין 09660 ופחזסא) ; כלומר, התוכניותת יוצרות מוטציות באופן מעשי על ידי שימוש בפונקציית 1א, כמו למשל 6)ט010310. מוטציות 5055 | התוכניות משתמשות באובייקטי סמפור (6ז0ח500) כדר למנות משאבים. מטלה אחת יכולה להשתמש בסמפור כדי למנות את מספר המשאבים הזמינים וכדי להקצות משאבים. לדוגמה, אס יש למחשב שלוש יציאות טוריות, תוכל ליצור סמפור עס מונה משאבים שערכו שלוש. בכל פעם שמטלה ניגשת. ליציאה טורית, מונה משאב הסמפור מופחת באחת, ובכל פעם. שמטלה משחררת יציאה טורית, מונה משאב הסמפור מוגדל. באחת. לכן, מטלות יכולות לקרוא לסמפור ולהמתין עד שהוא: הופך לומין, לפני שהן מנסות לגשת ליציאות הטוריות. השונר לעומת מוטציות וקטעים קריטיים, המטלות אינן הבעלים של. הסמפורים. סמָפּור (אַתֶת) וחסשם | אירועי אובייקטים הם התבנית הפשוטה ביותר של סינכרו. אובייקטים, והס שונים במקצת ממוטציות וסמפורים. תוכניותת משתמשות במוטציות ובסמפורים כדי לשלוט בגישה לנתונים אר למשאבים. הן גס משתמשות באירועים כדי לסמן השלמת. פעולה. תוכניות משתמשות על פי רוב באיירועים כדי להתחיל. מטלה נוספת לאחר שהמטלה הראשונה סיימה חלק מסוים. ממהלך העיבוד שלה. אירועים פזסוחוו 30306 | קוצב זמן ממתין הוא אובייקט גרעין שמאותת לעצמו בצורת. מחזורית, בומן מוגדר, או במרווחי זמן קבועים. אפשר לחשוב על סוח ומאו כשעון אזעקה פנימי עבור התוכניות. לדוגמה,, אולי תכתוב תוכנית לשילוב זמנים שמתריעה המשתמש בכל. שעה על פגישות חדשות של אותה שעה. במקום להפעיל לולאה. קוצב ומן ממתין 4 3271חו/ו ומבוא ל-ספו סוג שימוש ופעולות. ווח 30/6זו3/ | באופן קבוע ולהמתין לשעה שתשתנה, באפשרות התוכנית ליצור. קוצב זמן ממתין אשר מסמן לתוכנית שהזמן השתנה כל שעה. קוצבי ומן ממתינים קיימים רק בגירסאות של 4 ד סח ומעלה. 9% פוסשחוו אינה תומכת בקוצבי זמן ממתונים. קוצב ומן ממתין 1 יצירת קטע קריטי למדת שהסוג הפשוט ביותר של סינכרון מטלות הוא באמצעות איתות של ייקטע קריטיי". קטע קריטי מאפשר לתוכניות לשלוט בגישה אל קטע מהנתונים או אל פונקציה כלשהי בתוכנית. התנאי הוא שרק מטלה אחת תיגש לנתונים אלה בכל ומן נתון, או שכל שאר המטלות הפנימיות בתהליך כבר סיימו את העיבוד שלהן לפני שנוחל ייקטע קריטייי מתחיל להתבצע. יצירת קטע קריטי קלה ופשוטה. קודם כל, על התוכנית להקצות בתהליך המופעל מבנה נתונים מסוג א10ד550 .10ז1ה6. התוכנית חייבת להקצות את מבנה הנתונים. הזה בצורה גלובלית, כך שמטלות שונות שבתהליך הנוכחי תוכלנה לגשת למופע אסזד550 ואסזחזה6 שנוצר בתוכנית. כלומר, מופע אס1ז556 681110 צריך להיות. משתנה גלובלי. לאחר שהתוכנית מקצה את מבנה הנתונים מסוג א10ז550 .0811108, היא חייבת. לבצע שתי פעולות כדי ליצור את הקטע הקריטי ולהיכנס אליו. התוכנית חייבת לקרוא: תחילה לפונקציה 1010901106560000. כדי לאתחל את הקטע הקריטי, ועליהה לקרוא לפונקציה ח1608063!5600ח8 כשהיא מוכנה להיכנס. אליו. הפונקציה 6₪631590000זפ!חם מממתינה למטלה עד שתהיה לה בעלות על אובייקט הקטע הקריטי המוגדר. הפונקציה חוזרת, כאשר מערכת ההפעלה מעבירה למטלה הקוראת את הבעלות. את הפונקציה ח0ו191011063/561ח5 כותבים בתוכנית כמו בהגדרה שלהלן. ; (91616815660100סק1 א0תצסם5 מהסזצ1ת0פ1) מ181081560%10עסעטטתם 18סט הפרמטר ח0063/56000כ|. מצביע אל אובייקט הקטע הקריטי. כדי לאפשר גישה בלבדית אל המשאב המשותף, כל מטלה קוראת לפונקציה ח0010706056000חם. אר 6₪631500000זוח6/יוד כדי לבקש בעלות על הקטע הקריטי, לפני שהיא מבצעת קטע קוד כלשהו, אשר ניגש אל המשאב המוגן. ההבדל הוא בכך שהפונקציה 610631560000זטחפ/יוד חוורת. מיד, ללא קשר אס הצליחה להשיג בעלות על הקטע הקריטי או לא, בזמן שהפונקציה ח5600!ג06107/₪6ח5 חוסמת את המשך העיבוד עדד אשר המטלה יכולח לקבל בעלות על הקטע הקריטי המבוקש. כאשר המטלה מסיימת. להפעיל את קטע הקוד המוגן, היא משתמשת בפונקציה ח1680600063/5600 כדר לשחרר את הבעלות, ולאפשר למטלה אחרת לקבל את הבעלות ולגשת למשאב המוגן המטלה השולטת על הקטע חייבת לקרוא לפונקציה ח13607063/560000 בכל פעם. שהיא נכנסת לקטע הקריטי. המטלה יכולה להיכנס אל הקטע הקריטי רק כאשר הפונקציות ח91071068/566:0זח= או ח10706315660ס1חם/ףד מצליחות. פרק 16: תהליכים ומטלות | 465 לאחר שמטלה מקבלת בעלות על קטע קריטי, היא יכולה לקרוא שוב לפונקציה 700631500000!חם ‏ או לפונקציה ה063!56000ז6זפוחפ/חד מבלי שההפעלה שלה תחסם. הדבר מונע מהמטלה לחסום את עצמה (כלומר, להפסיק את פעולתה) בומן שהיא ממתינה לקטע קריטי שיש לה כבר בעלות עליו. כל מטלה של תהליך יכולה להשתמש בפונקציה ח06161607/63156000 כדי לשחרר את. משאבי המערכת שהוקצו על ידי התוכנית, אשר אתחלה את אובייקט הקטע הקריטי לאחר שהמטלה קוראת לפונקציה ,2/610011003/566000‏ התוכנית אינה יכולה להשתמש יותר באובייקט הקטע הקריטי לסינכרון. % הערה: למרות שהאיברים של מבנה הנתונים 5607108 אנדס מוגדרים בקובץ הכותר ח.6פהפחועצ, על התוכניות להימנע מלגשת לאיברי המבנה, מכיון ש-5וס6חו מנהלת את המידע שנמצא בהם. באופן פנימי, ושינוי האיברים יכול לגרום לשגיאות מעוכת. פטליות. % הערה: שגיאה פטלית (זסזום !3ו3) היא כל שגיאת עיבוד, שהתוכנית איננה יכולה להתאושש ממנה. לעיתים אפשר לצאת מהתוכנית. מבלי להפעיל את המחשב מחדש, אבל סביר להניח שנתונים שלא אוחסנו ילכו לאיבוד. 2 קטע קריטי פשוט למדת שיצירה ושימוש בקטע קריטי היא הליך בן שלושה צעדים. חייבים ליצור את הקטע, לאתחל אותו ולהיכנס אליו. לפני שתוכל לסנכרן מטלות על פי קטע קריטי, עליך ‏ לאתחל את הקטע הקריטי ולמסור ‏ את כתובת מבנה הנתונים אסזד550 .ואסזזה6 כפרמטר יחיד. כאשר מגיעים להתחלת הקטע הקריטי, התוכנית. חייבת | לקרוא | לאחת | משתי הפונקציות: 5 00000560008הם = אר 6063150000זטותש/יוד, > ולהעביר ‏ שוב את הכתובת של מבנה התונים אסזד550 .ואסזז1ה6 כפרמטר יחיד. לאחר שהמטלה כבר מסונכרנת, הקטע הקריטי נשאר עד שהתוכנית עוזבת אותו, או עד שהיא מוחקת אותור כדי להבין יותר טוב את פעולות התוכנית בעת ניהול קטעים קריטיים, התבונן בתוכנית 5608 06ז ,6‏ שנמצאת בתקליטור המצורף לספר וה (בתיקיה 5. התוכנית משתמשת בקטע קריטי, שנמצאת בו הוראה לייהרדם" למשך. חמש שניות, כדי לאפשר למטלה אחת להפעיל קטע קוד קריטי בכל רגע נתון. כאשר המשתמש בוחר באפשרות 1650, התוכנית יוצרת מטלה אחרת, אשר גם היא בתורה. ממתינה לגישה שלה לקטע הקריטי. הקוד הפעיל של התוכנית ח0וז566 60 נמצא בפונקצייות 60006זתד0ו/ח0 ו-06זק0חאו. 6 321חו/ו ומבוא ל-ספו 3 4!602[606₪0ח/5זס-ובּ/ - לסינכרון של שתי מטלות פעילויות סינכרון רבות ממתינות למטלה אחת או יותר לפני שהן ממשיכות בעיבודד המטלה הנוכחית. כאשר המטלה הנוכחית מחכה למעבד שיחוור מפעילות במטלה אחרת, התוכניות צריכות להשתמש בפונקציה -305015/00609[66/,. אשר חוזרת. כאשר אחד האירועים הבאים קורה האובייקט המוגדר נמצא במצב מסומן (51319 5/0960 +יפרק פסק הזמן (טס-6וחוז) מסתיים. את הפונקציה 66ט0פופָחופזס>וּ כותבים בתוכנית, כמו בהגדרה שלהלן. ) 581916002606 18160 ספסוום 0%] 9816 %0 023608 08 ב1בתמת // ,חאה שנסאת 1 [מטעשםה1 פמס-51₪6 //‏ 85ה80%11115600 סהסאם / הפונקציה 609[96ו905015/00/. מקבלת שני פרמטרים, 066 ו-500065ו הפרמטר ₪866 הינו זיהוי האובייקט אשר הפונקציה צריכה לחכות לו. הפרמטר 5 מגדיר את פסק הזמן במילישניות. הפונקציה ְספוָחו5זסיא א חוורת כאשר פרק הומן מסתיים, אפילו אם מצב האובייקט אינו מסומן (חסו 6. כאשר ₪01/85600065 שווה לאפס, הפונקציה בודקת את מצב האובייקט. וחוזרת מיד. כאשר 011886660065 שווה ל-פזזו/1יא1, פסק הזמן של הפונקציה אינו מסתיים. טבלה 16.11 מכילה את רשימת סוגי האובייקטים שאפשר להגדיר את הידיות שלהם (כלומר, סוגי אובייקטים שהפונקציה 6096וףו5זסאו3/ו. יכולה. לחכות להם). טבלה 66.11 + האובייקטים אשר הפונקציה +66 8185075116 יכולה לחכות להם. סוג האובייקט ‏ | תיאור 36 | הפונקציה חסוַב066אַ6פְח3ה61500חו מחצירה את הידית. חסט63וסח | המצב של אובייקט שינוי הודעת מצב (ח₪0000300 פַחבת) הוא מסומן, כאשר מתרחש סוג שינוי מוגדר בתיקיה או בעצ. תיקיות שמגדירים. הודעת שינוי מצב. וטקחו טוספחסס | הפונקציות 61030686 אר 0615107200/5 מחצירות את הידית. כאשר מגדירים את הערך 6081 מצב האובייקטים מסוג קלט קונסול טטקח1 6005006) הוא מסומן (5/003/66), כאשר יש. קלט שלא נקרא במאגר הקלט של הקונסול; והוא אינו מסומן. (5/003166-ח0א) כאשר מאגר הקלט ריק. קלט הקונסול פרק 16: תהליכים ומטלות = 467 סוג האובייקט. ו אירוע וו מוטציה 0 תהליך 0 סמפור (אתת) וד מטלה וד קוצב ומן הערה: ב- תיאור הפונקציות זח0031606 או זחסעפחסקס מחצירות את הידית. שתי הפונקציות 5605/01 ו-ח560וק קובעות את מצב. אובייקט האיירוע טחפוס) למסומן בצורה ברורה. התוכניות. חייבות להשתמש בפונקציה ח65616%6ה כדי לאפס (86960) כל. אובייקט אירוע שמאופס ידנית הפאש +1-8656בטח3א) ולהסב אותו למצב אינו מסומן. עבור אובייקט אירוע שמאופס. אוטומטית טחפום זפסה-סו), הפונקציה הממתינה מאפסת. את מצב האובייקט לאינו מסומן לפני שהיא חוורת. אפשר להשתמש באובייקטי איירוע גם עבור בפעולות חופפות, שבהם. המערכת קובעת את המצב. הפונקציות 016319008 או אפזט!וחספס מחצירות את הידית. מצב אובייקט מוטציה הוא מסומן כאשר אין למטלה כלשהי בעלות עליו. הפונקציה הממתינה דורשת בעלות על המוטציה. עבור המטלה הקוראת, ומשנה את מצב המוטציה לאינו מסומן, כאשר מערכת ההפעלה מוסרת בעלות על המוטציה. הפונקציות 0103100106055 או 06655זלחסקס מחזירות את הידית. מצב אובייקט התהליך הוא מסומן, כאשר התהליך מסתיים. הפונקציות 6זסחק00ח07080056 או 6זסקהוחס5חפקס מחצירות. את הידית. אובייקט סמפור (טזסוק9וח56 ) מחציק מונה שערכר בין אפס לבין ערך מקסימלי כלשהו. המצב שלו מסומן כאשר המונה שלו גדול מאפס - ואינו מסומן, כאשר המונה שלו שווהה לאפס. אם המצב הנוכחי הוא מסומן, הפונקציה הממתינה. מפחיתה את המונה באחד. הפונקציות 6163160100855, 01686 3167סזס, אר 6103106016 מחזירות את הידית. מצב אובייקט. המטלה מסומן כאשר המטלה מסתיימת. הפונקציות ז₪00ו0103160/31030/67 אד 3103067 חס . מחזירות את הידית. הפעלת קוצב הזמן נעשית על ידי הקריאה. לפונקציה זשחזוד5614/31050/6. קוצב ומן פעיל הוא במצב מסומן, כאשר ערכו מגיע לערך שהוגדר מראש. אפשר לבטל את פעולת. הקוצב על ידי קריאה לפונקציה 0091330971 דא פווסטחו/, = הידית חייבת להיות בעלת +כות גישה ב 8 3271 ומבוא ל-ספו אס הפונקציה 609(66ָחפזס*ו נכשלת, הערך המוחזר הוא ספ וזא ד1א/; אם' היא מצליחה, הערך המוחור מציין את האירוע שגרס לה לחזור. הערך המוחור עבור קריאה מוצלחת לפונקציה הוא אחד הערכים שמפורטים בטבלה 16.12 טבלה 66.12 + ערכי ההצלחה האפשריים המוחזרים על ידי הפונקציה 5/08/600[66זס-טו). ערך פירוש ספאססאא8א דוו | האובייקט המוגדר הוא אובייקט מוטציה, אשר המטלה. שיש לה בעלות על אובייקט המוטציה לא שיחררה אותור לפני שהסתיימה. מערכת ההפעלה מוסרת את הבעלות על. אובייקט המוטציה למטלה הקוראת, וקובעת את המוטציה למצב י"אינה מסומנת". 0 08080 זאו | מצב האובייקט המוגדר הוא "מסומןי. דטספווזד דוו | פרק פסק הומן הסתיים, ומצב האובייקט ייאינו מסומןיי. הפונקציה 3/05015/00/609[6/₪ בודקת את המצב הנוכחי של האובייקט המוגדר. אם: מצב האובייקט אינו מסומן, המטלה הקוראת נכנסת למצב המתנה. המטלה מנצלת. זמן עיבוד קטן מאוד בזמן שהיא ממתינה שמצב האובייקט יהפוך למסומן, או שפסק הזמן יסתיים. לפני ההפעלה, פונקציית המתנה (סמסחוף 3/) משנה את המצב של מספר סוגי אובייקטי סינכרון. השינוי מתרחש רק עבור האובייקט או האובייקטים. אשר המצב המסומן שלהם גרם לפונקציה לחזור. לדוגמה, פונקציית ההמתנה מפחיתה את המונה של אובייקט סמפור באחד. צריך להיות זהירים בעת שמשתמשים בפונקציית ההמתנה ובחילופי נתונים דינמיים. כאשר מטלה יוצרת חלונות כלשהם, היא חייבת לטפל בהודעות. חילופי נתונים. דונמיים שולחים הודעות לכל החלונות שבמערכת. אם יש מטלה אשר משתמשת בפונקציית המתנה בלי פסק זמן מוגדר, המערכת ננעלת. לכן, אם יש מטלה שיוצרת. חלונות, = השתמש | בפונקציה ‏ 600605קטו1ז0/300פו = או | בפונקציה 60וןףוטזס=0/316פ1ת, ולא בפונקצייה 81609601 ח/פזס )ומע כדי להבין יותר טוב את פעולת הפונקציה 661ְ60פַ5/0ז31050/), התבונך בתוכנית. שש %/4/8, שבתקליטור המצורף לספר וה (בתיקיה 8006%59285). בכל פעם: שהמשתמש בוחר באפשרות 1650 מהתפריט, התוכנית מתחילה להפעיל מטלה שממתינה לאירוע, נרדמת, ואחר כך משחררת את האירוע. השימוש באירועים מאופסים אוטומטית (פוחשוש זספפ8-סזטא, שמשנים את דגלי הסימון שלהם בצורה אוטומטית), מחייב את הגישה למטלה במיון סדרתי (0169 51/81), מכיון שהאירועים. מאפסים את הערכים שלהם בצורה אוטומטית למצב "יאינו מסומן", כאשר המטלה הראשונה הממתינה מקבלת את האובייקט. קטעי העיבוד של התוכנית 86045 א הרלוונטייים לענייננו נמצאיים בפונקציות 00706זתד0ו/ת0 ו-06זקנחאו. פרק 16: תהליכים ומטלות = 469 4 >>6)000[606!כ!ט11זס-זאבּ/ - סינכרון מטלות רבות תוכניות יכולות להשתמש בפונקציה 86טַ0פַפַח5זס8. כדי לסנכרן מטלה עם אירוע יחיד שמאופס אוטומטית. אך השימוש הנפו יותר הוא, שהתוכניות דורשות. שהעיבוד יימשך רק כאשר יש מופע של קבוצה אובייקטים אחת מסוימת, או יותר. במקרים. כאלה, התוכניות יכולות להשתמש בפונקציה 609605ופןשאזס:. הפונקציה 600[665וק01₪ז0-ו3 חוור כאשר מתרחש אחד מהאירועים הבאים. 3% אובייקט אחד כלשהו שמוגדר, או כל האובייקטים המוגדרים, נמצאים במצב מסומן (5/003166), או במצב איתות. 1% משך פסק הזמן הסתיים. משתמשים בפונקציה 600(605/ק18שז910/ כמו בהגדרה שלהלן 106 6 בע 18160 ספסוום 6תם 1 4168הג3 05 עשמחמת // תטססת פהסאום ץע 18התמח 65שָמ0 // שמף 60 צספהנסק // = ,165במגאט1* ממסאתא צפאסס עבעע 16התמת-605מ0 // 8 11ת+1 פא 005 18 [מטעססה1 שמס-שח1ף // סו 8 / אחרי הקריאה, 1909[60ק3/6507%10 חוזרת בגלל כישלון, הצלחה, או פסק זמן. אם. הפונקציה 605ן609וטיַזסוּ נכשלת, הערך המוחור הוא 1!50א= דזאא; ואם' הפונקציה 609605ט6ַז. מצליחה, הערך המוחזר מציין את האירוע אשר גרס לה לחזור. הערך המוחור בעת הצלחה הוא אחד הערכים שמפורטים בטבלה 1 הפונקציה. 909(605!קטוטו*וסיש3/. מחליטה אס אובייקט אחד או יותר מאלה שהמטלה ממתינה להם, קיים את קריטריון ההמתנה. אס אף לא אחד מהאובייקטים. אשר המטלה ממתינה להם מקיים את קריטריון ההמתנה, המטלה הקוראת נכנסת למצב המתנה יעיל, שבו היא מנצלת זמן עיבוד קטן בשעה שהיא ממתינה לאובייקט. אחד או יותר מאלה שהמטלה ממתינה להם, כדי שיקיימו את קריטריון ההמתנה. כאשר הפרמטר וווטופווט הוא אמת (סטזז), פעולת ההמתנה של הפונקציה מסתיימת, רק כאשר מצב כל האובייקטים הופך למסומן. הפרמטר |זופופ אינו משנה את מצב האובייקטים המוגדרים, עד שמצבי כל האובייקטים הוא מסומן. לדוגמה, מוטציה יכולה להיות מסומנת, אבל המטלה אינה מקבלת בעלות עליה עד שמצב שאר האובייקטים גם הוא מסומן. במשך זמן זה, יכול להיות שמטלה אחרת תקבל את הבעלות על המוטציה, ובכך היא קובעת את המצב שלח לאינו-מסומן. 0 3231חווו ומבוא ל-ספו + הפרמטרים של הפונקציה 109(605קן!1ט0זס וש פרמטר תיאור זחטססח | מגדיר את מספר ידיות האובייקטים שבמערך, אשר 101806065 מצביע עליו. מספר ידיות האובייקטים המקסימלי הוא: 0885 דוו ואטו1אא! (קבוע שמוגדר במערכת, ואשר משתנה בכל התקנה). 65 | מצביע למערך ידיות של אובייקטים. בטבלה 16.11 נמצאת. רשימת סוגי האובייקטים אשר אפשר להגדיר את הידיות שלהן. המערך ש-0/1806/65! מצביע עליו, יכול להכיל ידיות של. אובייקטיס מסוגיס שונים. תחת זא פוווסטחו/!, הידיות חייבות להיות בעלות זכות גישה ב הערה וואוופצט | מגדיר את סוג ההמתנה: אם אמת (שטזד), הפונקציה חוזרת. כאשר המצב של כל האובייקטים שבמערך אשר 03806065 מצביע עליו מסומנים; אס שקר (5356), הפונקציה חוזרת כאשר המצב של אובייקט אחד כלשהו נקבע למסומן, ואו הערך המוחור מצייו את האובייקט שהמצב שלו גרם לפונקציה לחזור. 5 | מגדיר את פרק פסק הזמן במילישניות. הפונקציה חוזרת אם: פרק הזמן מסתיים, אפילו אם התנאים שמוגרים על ידי הפרמטר |6ו3/ופ אינס מתקיימים. אם 0//%115660005 שווה. לאפס, הפונקציה בודקת את מצבי האובייקטים המוגדרים. וחוזרת מיד. אם 60%/₪8960065 שווה ל-510176א1 (אינסווף), פרק פסק הזמן של הפונקציה לעולם אינו מסתיים. לפני החזרה, פונקציית המתנה משנה את המצב של חלק מסוגי אובייקטי הסינכרון השינוי מתרחש רק עבור האובייקט או האובייקטים, אשר מצב הסימון שלהם גרם. לפונקציה לחזור. לדוגמה, מספר מטלות אחרות או תהליכים מקטינים את ערך המונה. של אובייקט הסמפור באחד. הפונקציה 605(פס6וטוטאזסוו יכולה להגדיר במערך. שמוצבע על ידי הפרמטר 11180665 ידית אחת או יותר מסוגי האובייקטים שנמצאים. ברשימה שבטבלה 16.11 כמו במקרה של הפונקציה 600605ופֶחופזסוא, גם: כאן חייבים להיות והירים. כאשר משתמשים בפונקציה 609605וקט/ט/זס*א/ ובחילופי נתונים. דינמיים. (6פַח3ה0א בוהם-6וחומחם). כאשר מטלה יוצרת חלונות כלשהם, היא חייבת לטפל בהודעות שהם מפיקים. חילופי נתונים דינמיים שולחים הודעות לכל החלונות. שבמערכת. המערכת ננעלת, כאשר יש לך מטלה אשר משתמשת בפונקציית המתנה ללא פונקציית פסק ומן. לכן, אם יש לך מטלה אשר יוצרת חלונות, השתמש בפונקציה. 504910 = אר = בפונקציה ‏ 60060055וטוטזס=6מ//וספות, = ולאה בפונקציה 909[66וח/פזס )מע פרק 16: תהליכים ומטלות = 471 5 יצירת מוטציה (9ח0768%1 אסטטו! ה) למדת שמוטציות (65פזו//) דומות לקטעים קריטיים. פרט לכך, באפשרות התוכניות. להשתמש במוטציות כדי לסנכרן גישה לנתונים דרך אובייקטים רבים, במקום גישה דרך אובייקט אחד. כדי להשתמש במוטציה, התוכניות חייבות ליצור תחילה את המוטציה באמצעות הפונקציה 06%ש/010319%. משתמשים בפונקציה 0103190064 כמור שניתן לראות בהגדרה שלהלן 068 םנפואתת 1 1 יסנת * 50 // מןמפנסתאס 16121ה1 צס? הָבץ // וס5181 4מדכ מס שחפת 60%(מ0-אסטטת 50 עספתנסק // שמבאק1 תל5תסק1 / הפרמטר פפוטפוז)אאסנטק! הוא מצביע למבנה מסוג 85ד180חדד/ +ד550081 שקובע אם תהליכי בן יכולים לרשת את הידית המוחזרת. אם 65זטטו₪אפוטואקו הרא שא, תהליך הבן אינו יכול לרשת את הידית. במערכת זא פאסשחו/+, האיבר ז0זק560010/00501ק1 של איבר המבנה מגדיר מתאר אבטחה עבור המוטציה החדשה. אס 5פזפ%זטוק! הוא -11א, המוטציה מקבלת מתאר אבטחה של ברירת המחדל. במערכת ‏ 98 5ו00חו/), = הפונקציה | אפוט%/630ז0 = מתעלמת | מאיבר המבנה ז0זק560116/06507ק1. הפרמטר זפחאוסוהטוח1 מגדיר את הבעלים הראשון של אובייקט. המוטציה. אס ערכו אמת, המטלה הקוראת מבקשת בעלות מיידית על אובייקט המוטציה; אחרת, אין למטלה אחרת כלשהי בעלות על אובייקט המוטציה. הפרמטר 6וחפוק! מצביע למחרוות המסתיימת ב-11א שמגדירה את שם אובייקט המוטציה. סח מגבילה את השם ל-אדא7 אא תווים; השם יכול להכיל כל תו פרט ללוכסן. הפוך (, 830%5/958) שמשמש מפריד בנתיב תיקיות. זכור תמיד שהשוואת השמות הינה. תלויית רישיות 5609/09 6356), כלומר יש הבחנה בין אותיות רגילות לרישיות. % הערה: המוח תלוי רישיות מציין שיש הבחנה בין אותיות לטיניות קטנות לבין אותיות לטיניות רישיות (ייגדולותי). תוכניות רבות אינן רגישות להבחנה זו, ואז ניתן להקליד את הפקודה בכל אות רצויה. לדוגמה, בפקודת החיפוש של א9פווס6חו אין הבחנה, אלא אס מציינים במפורש (אפשרויות, תלוי רישיות) אס הפרמטר טוחפאק! חופף לשם אובייקט מוטציה שקיים כבר, שוחפאאפ! מבקש גישה 5 41 אסדט/% לאובייקט הקיים. הפונקציה 070319606 מתעלמת מהפרמטר. זסחוס₪1וח1ט מכיון שהתהליך היוצר כבר קבע אותו. אם הפרמטר פסוטו0אפזטופו אינו-011, 6306 מחליטה אס אפשר לרשת את הידית, אבל מתעלמת מהידית. של איבר מתאר האבטחה. אם פוחאק! הוא -011, הפונקציה 0163195 יוצרת את. 2 זקא2כחוו ומבוא ל-ספו אובייקט המוטציה בלי שם. אס השס שמוגדר על ידי גאפ חופף לשם קיים של אירוע, סמפור, או אובייקט קובץ מיפוי (פחוְפו! ₪6), הפונקציה נכשלת, ואו הפונקציה ז0ז6612517 מחזירה את הקבוע =וסאוז פ1!אטא1 58808, המאפשר גישה אל הידית. הפונקציה נכשלת מכיון שאובייקטי אירוע, מוטציה, סמפור, וקבצי מיפוי משתתפים באותו מרחב השמות (50865 סוחבא). לידית המוחזרת על ידי 00390 יש גישה 800655 1 אפדט! אל אובייקט המוטציה החדש, ואפשר להשתמש בה בתוכניות בכל פונקציה שדורשת ידית לאובייקט מוטציה. כל מטלה בתהליך יכולה להגדיר את ידית אובייקט המוטציה בקריאה | לאחת | מפונקציות = ההמתנה | (כמו | 508|60060ז1850 ו-600(605פן0וט%זס305//). פונקציות ההמתנה של אובייקט יחיד חוזרות כאשר מצב האובייקט המוגדר הוא מסומן. אפשר להורות לפונקציות ההמתנה של אובייקטים רבים לחזור, כאשר אובייקט אחד כלשהו, או כאשר כל האובייקטים המוגדרים נמצאיס במצב מסומן. כאשר פונקציית המתנה חוזרת, מערכת ההפעלה משחררת את. המטלה הממתינה כדי שתמשיך בפעולה שלה. המצב של אובייקט מוטציה הוא מסומן, כאשר אין למטלה כלשהי בעלות עליו המטלה היוצרת יכולה להשתמש בדגל זסחאוסוגטוח1ט כדי לבקש מיד בעלות על המוטציה. אחרת, המטלה חייבת להשתמש באחת מפונקציות ההמתנה, כדי לבקש בעלות. כאשר מצב המוטציה מסומן, מערכת ההפעלה מוסרת בעלות לאחת המטלות. הממתינות, מצב המוטציה משתנה לאינו מסומן, ופונקציית ההמתנה חוורת. רק מטלה אחת יכולה לקבל בעלות על המוטציה בכל זמן נתון. המטלה שיש לה בעלות. משתמשת בפונקציה 8616956064 כדי להשתחרר מבעלות זו. המטלה שהיא הבעלים. של המוטציה יכולה להגדיר את אותה מוטציה בקריאות חוזרות לפונקציית ההמתנה, מבלי להינעל. ככלל, מטלה אינה ממתינה בעת קריאות חוזרות לאותה מוטציה, אבלל טכניקת הקריאות החוזרות מונעת ממטלה לנעול את עצמה בומן שהיא ממתינה למוטציה שיש לח כבר בעלות עליה. כדי לשחרר את הבעלות, המטלה חייבת לקרוא לפונקציה 9%זט896356%% עבור כל מקרה שבו המוטציה ציינה המתנה. שני תהליכים או יותר יכולים לקרוא ל-010319%606 כדי ליצור אובייקט מוטציה בעלל אותו שם. התהליך הראשון יוצר את המוטציה, ותהליכים עוקבים פותחים ידית למוטציה הקיימת. תהליכים רבים יכולים להשתמש ב-א06ט/019319% כדי לאפשר להם. לקבל ידיות לאותו אובייקט מוטציה, וכך הם משחררים את המשתמש מהאחריות. לוודא שהתהליך היוצר התחיל לפני כן במוטציה. כאשר משתמשים ב-00819%6064. בתהליכים רבים, צריך לקבוע את הדגל זסחאוסוגשח1ט ל-386; אחרת, יהיה קשה לדעת מיהו התהליך הראשון שקיבל את הבעלות. תהליכים רבים יכולים לקבל ידיותת של אותו אובייקט מוטציה, דבר שמאפשר לתוכניות להשתמש באובייקט המוטציה עבור סינכרון פנים תהליכי (חסטהקחסזהסחץ5 55סססזק-זפוח1). הטכניקות. שלהלן לשיתוף-אובייקט (הַוז3ה61-5ְ09) צמינות לשימוש התוכניות. 3% תהליך בן שנוצר על ידי הפונקציה 6030001065 יכול לרשת ידית של אובייקט. מוטציה, אס הפרמטר 5פוטטוושאסוטויזפ! של הפונקציה 61090006 מאפשר ירושה פרק 16: תהליכים ומטלות = 473 תהליך יכול להגדיר את ידית אובייקט המוטציה על ידי קריאה לפונקציה 6 וטס כדי ליצור ידית משוכפלת, שתהליך אחר יכול להשתמש בה. תהליך יכול להגדיר את שם אובייקט המוטציה על ידי קריאה לפונקציות א 0 השתמש בפונקציה 105680666 כדי לסגור את הידית. המערכת סוגרת את הידית. אוטומטית כאשר התהליך מסתיים. מערכת ההפעלה הורסת את אובייקט המוטציה. כאשר המערכת סוגרת את הידית האחרונה אל המוטציה. 6 שימוש במוטציה בתוכנית לדוגמה למדת בסעיף 16.35 שהתוכניות יכולה ליצור בקלות אובייקטי מוטציה, כדי לעזור בסינכרון מטלות דרך תהליכים רבים. בסעיף 16.35 למדת את מהלכי העיבוד הבסיסיים שמאחורי יצירת אובייקט מוטציה. אחרי שיוצרים מוטציה, התוכניות חיובות גם להשיג ידית למוטציה, לפני שהן מסוגלות להשתמש בה בקוד שלהן. למדת. שתהליך נוסף יכול להשיג ידית למוטציה על ידי קריאה לפונקציה 0631906 עם. אותו שם מוטציה כמו שעשה התהליך הראשון. באותו אופן, באפשרות התוכניותת להשתמש בפונקציה אפזווחפקס כדי להשיג ידית לאובייקט מוטציה שנוצר קודם. את הפונקציה וסקס כותבים בתוכניות, כמו בהגדרה שלהלן ) אפ צגותסקס מננפואתת 188 860058 // 7 198 16צשתת // 00 חפה 00[606-א₪56 0 צשטמבסם // שמפמק1 1002999 / הפרמטר ₪00950760%60655 מגדיר את הגישה המבוקשת לאובייקט המוטציה. עבור מערכות שתומכות באבטחת אובייקט (כמו בהתקנות המוגנות של זא פוסשחוא, הפונקציה נכשלת אם מתאר האבטחה של האובייקט המוגדר אינו מרשה לקבל את הגישה המבוקשת על ידי התהליך הקורא. הפרמטר 0/065106%60955 יכול להכיל אחד. משני צירופים : צירוף אחד הוא הערך 400555 א אפדטוו שמגדיר את כל אפשרויות. דגלי הגישה עבור אובייקט המוטציה; צירוף שני הוא הערך 5071808125 שנתמך רק. על ידי דו! פאוסחווו, ואשר מאפשר לתהליך להשתמש בידית המוטציה בכל אחת מפונקציות ההמתנה כדי לבקש בעלות על אובייקט המוטציה, או בפונקציה 861635006 כדי לשחרר בעלות; או שאפשר להשתמש בשני צירופים אלה. הפרמטר ₪066)ח6החזם מגדיר אפ אפשר לרשת את הידית המוחזרת. אם כן, תהליך. שנוצר קודם לכן על ידי הפונקציה 0631971009 יכול לרשת את הידית; אחרת, אי אפשר לרשת אותה. הפרמטר פוזּאפ! מצביע למחרוזת המסתיימת ב-ו)0 שמכילה את שם אובייקט המוטציה ש-אסוטאחסקס צריכה לפתוח. וזכור תמיד, שהשוואת השמות הינה תלויית רישיות. 4 זלא2כחווו ומבוא ל-ספו הפונקציה אפוטאחטקס מאפשרת לתהליכים רבים לפתוח ידיות של אותו אובייקט. מוטציה. הפונקציה אפוט!וחסקס מצליחה רק אם תהליך מסוים כלשהו יצר כבר את המוטציה על ידי הפונקציה אפוט%ט)03ו6. התהליך הקורא יכול להשתמש בידית המוחזרת בכל הפונקציות שדורשות ידית לאובייקט מוטציה, כמו פונקציות ההמתנה, שמוגבלות להגבלות של הגישה שמוגדרת על ידי הפרמטר 005106860855. באפשרות התוכניות להשתמש בפונקציה 31810806!6סווקטום כדי לשכפל ידית ובפונקציה. 6 כדי לסגור את הידית. המערכת סוגרת את הידית אוטומטית כאשר התהליך מסתיים. מערכת ההפעלה מפרקת את אובייקט המוטציה כאשר המערכת. סוגרת את הידית האחרונה של המוטציה. כדי להבין יותר טוב את מהלכי העיבוד של התוכניות עם אובייקטי מוטציה, התבונך בתוכנית אסזש!א .16קוחו5, בתקליטור המצורף. התוכנית א6זט!! 5/0016 יוצרת. אובייקט מוטציה פשוט. כאשר המשתמש בוחר באפשרות !)165 מהתפריט, התוכנית. מתחילה מטלה, אשר ממתינה לנישה למוטציה, נרדמת, ואחר כך משחררת את המוטציה. כאשר המשתמש בוחר מספר פעמים באפשרות 1650 מתוך התפריט, התוכנית מציגה שרשור מוטציות (חסטחטוחס6 אסווו). כלומר, המוטציה מכריחה מטלות עוקבות להמתין עד אשר כל מטלה קודמת משלימה את פעולתה. בומן שהתוכנית אפזט1 5/8016 יוצרת את מטלת הכן בפונקציה 00006//, רובב העיבוד המעשי של התוכנית מתרחש בפונקציה 630010זחדטוות). 7 השימוש בסמפורים מרבית הסמפורים משתמשים במונה לשם סינכרון. השימוש בסמפורים מיועד בדרך. כלל להגביל גישה לאובייקט, לקטע קוד, או אל משאב מוגבל אחר. כאשר יוצרים סמפור, אומרים לו כמה גישות עליו להרשות, ומהו מספר הגישות ההתחלתי. כדי ליצור סמפור מפעילים את הפונקציה זס0ק5וח030059זס, וכותבים אותה כפי שמוצג לחלן )8+ מנמאתט 68סטמ1ע)םת6סמקבהספק1 פפצטמנהצקת צצנתטסםפק1 560 // שתטס0 16481ה1 // 1101111000 06 טס הנאמ // 1 10 שחפת 6צ0/מ608ם 0 צשסמ1סק // שמפק1 8ע10095 הפונקציה 6ז90700וח61631956 מקבלת את הפרמטרים שמפורטים בטבלה 16.14 טבלה 66.14 + הפרמטרים של הפונקציה 0103/05018076. פרמטר תיאור וטו זס המ וח56קן | מצביע למבנה מסוג 65דט18הדזא. 5500817 שקובע אס. תהליבי בן יכולים לרשת את הידית המוחזרת. אם. סט וזה6זסתק8חו6פק! שווה ל-.4ש', תהליך הבן אינו יכול. פרק 16: תהליכים ומטלות = 475 פרמטר 1 תנו 1 ו תיאור לרשת את הידית. תחת ד פאוסשחו/+, האאיבר. ז06500/ו560ק! של המבנה מגדיר מתאר אבטחה. (סזקו0090 /560/6) לסמפור החדש. אם. זה 6זסחק8חוש5ק! הוא -011, הסימפור מקבל את. מתאר האבטחה של ברירת המחדל. תחת א 5או00חו, הפונקציה מתעלמת מהאיבר זס0קו5600118/0650ק1 של. המבנה. מגדיר גודל התחלתי למונה אובייקט הסמפור. ערך ה חייב להיות גדול מ-, או שווה לאפס, וקטן מ-, או שווה ל- זחססוחטחז/5!%. מצב הסמפור הוא י'מסומן" כאשר המונה שלו גדול מאפס, וייאינו מסומן"י כאשר הוא שווה לאפס. פונקציית ההמתנה מקטינה את המונה באחד, כלל פעם שמשחררת מטלה אשר המתינה לסמפור. פונקציית. ההמתנה מגדילה את המונה בערך מוגדר על ידי הקריאה. לפונקציה 8505000907076סוה. מגדיר את הגודל המקסימלי של המונה עבור אובייקט. הסמפור. פרמטר זה חייב להיות גדול מאפט. מצביע למחרוות המסתיימת ב-)א שמגדירה את שם. אובייקט הסמפור. פאס6חו/ מגבילה את השם ל-ודק %ג/% תווים והשס יכול להכיל כל תו חוץ מלוכסן. הפוך (830%/250) שמשמש מפריד בהצגת נתיב תיקיות (. זכור תמיד, שהשוואת שמות הינה תלויית רישיות (696. - אם פוחגק! חופף לשם אובייקט סמפור שקיים כבר, 6וחפקו מבקש גישה 00555 .11 5%%800/085 לאובייקט. הקיים. הפונקציה מתעלמת מהפרמטרים !חטססומטוחזו ו-זחטס0)וחטוחוא13! מכון שהתהליך היוצר כבר קבע אותם. אם הפרמטר 0165פ681זסח80ח5ק! אינר-₪014, הפונקציה. מחליטה אם אפשר לרשת את הידית, אך היא מתעלמת. מפרמטר מתאר האבטחה. אם פווגאפ! שוזה ל-011א, הפונקציה יוצרת את אובייקט. הסמפור בלי שם. אם השם שמוגדר על ידי סוחפאק! חופף. לשם של אירוע קייס, מוטציה או אובייקט קובץ מיפוי ות ַוס3/), הפונקציה נכשלת והפונקציה ז0זום)35 60%. מחזירה את הקבוע ופא 18/10 הסחח6. הפונקציה. נכשלת מכיון שאובייקטי אירוע, מוטציה, סמפור וקוב. מיפוי, משתתפים באותו מרחב שמות (50366 סוחבא). 6 זא2פחווו ומבוא ל-ספו אם הפונקציה 6זסחקגוח5טוגסוס מצליחה, הערך המוחזר הוא ידית לאובייקט הסמפור; אם שם אובייקט הסמפור קיים לפני הקריאה לפונקציה, הפונקציה ז0זז351 660 מחזירה את הקבוע 01515 +ספה וא -ה0ה6; ואם הפונקציה נכשלת, היא מחזירה וטו לידית המוחורת על ידי הפונקציה ₪זסתק0וח090ו )703‏ יש גישה מסוג 5 1 פהסק/פ5 אל אובייקט הסמפור החדש, ואפשר להשתמש בה בתוכניות בכל פונקציה שדורשת ידית לאובייקט סמפור. כל מטלה של תהליך המופעלת יכולה להגדיר את ידית אובייקט הסמפור בקריאה לאחת מפונקציותת ההמתנה. פונקציות ההמתנה של אובייקט יחיד חוזרות, כאשר מצב האובייקט המוגדר הוא יימסומן". אפשר להורות בתוכניות לפונקציות ההמתנה של אובייקטים. רבים לחזור כאשר אובייקט אחד כלשהו, או כאשר כל האובייקטים המוגדרים, נמצאים במצב מסומן. כאשר פונקציית המתנה חוזרת, מערכת ההפעלה משחררת את המטלה הממתינה כדי שתמשיך בפעולתה. המצב של אובייקט סמפור הוא 'ימסומן" (536) כאשר המונה שלו גדול מאפס,, והמצב "אינר מסומן" (פחפַפ-חסה) כאשר המונה שלו שווה לאפס. הפרמטר +חט₪3100/ח1 מגדיר את המונה ההתחלתי. כל פעס אשר מערכת ההפעלה משחררת. מטלה ממתינה בגלל מצב הסימון של הסמפור, הסמפור מקטין את המונה באחד. השתמש בפונקציה 6ז8000וח86/03505 כדי להגדיל את מונה הסמפור בערך מוגדר. המונה לעולם אינו יכול להיות קטן מאפס, או גדול יותר מהערך שהוגדר בפרמטר 5 ו תהליכים רבים יכולים לקבל ידיות של אותו אובייקט סמפור, והדבר מאפשר לתהליכים ‏ להשתמש. באובייקט עבור סינכרון = פנים תהליכי 00959זק-זפוח1 חסווקוחסזהשח/5). = הטכניקות שלהלן לשיתוף-אובייקט. (סַח8-5נט0) = אמינות. לשימוש התוכניות. 3% תהליך בן שנוצר על ידי הפונקציה 603000065 יכול לרשת ידית של אובייקט. הסמפור, = כאשר | הפרמטר ‏ פטשסתםאוסהקח6פקו = של הפונקציה 35 מאפשר ירושה. 3% תהליך יכול להגדיר את ידית אובייקט הסמפור על ידי קריאה לפונקציה 6 6וטם, כדי ליצור ידית משוכפלת שתהליך אחר יכול להשתמש בה. 3% תהליך יכול להגדיר שם של אובייקט סמפור על ידי קריאה לפונקציות 0 השתמש בפונקציה 1056806 כדי לסגור את הידית. המערכת סוגרת את הידית. אוטומטית כאשר התהליך מסתיים. מערכת ההפעלה מפרקת את אובייקט הסמפור כאשר המערכת סוגרת את הידית האחרונה של הטמפור. למדת בסעיף קודם שהתוכניות משתמשות במוטציה על ידי יצירת המוטציה, פתיחת. המוטציה, ושחרור שלה. צעדים דומים נעשים גם עם סמפורים. כדי להבין יותר טוב את פעולת התוכניות עם סמפורים, התבונן בתוכנית 6זסוק8וח56 076806 שנמצאת. פרק 16: תהליכים ומטלות = 477 בתקליטור המצורף לספר וה (בתיקיה 8006559285). תוכנית ו משתמשת בסמפורים. כדי להבטיח שרק ארבע מטלות תוכלנה להפעיל בו-ומנית את פרוצדורת מטלת הבן. בכל פעם שהמשתמש בוחר באפשרות 160 מהתפריט, התוכנית מנסה ליצור מטלה חדשה. פרוצדורת המטלה מוודאת שאפשר להוסיף מטלות (עד ארבע) לפני שהיא מאפשרת למטלה הנוספת להתחיל בעיבוד שלה. אם אין משאבים זמינים לסמפור, פרוצדורת המטלה ממתינה עד שהעיבוד אפשרי. העיבוד המעשי של התוכנית סוק 568 076878 מתרחש בפונקציה 6909106זחד0ות6. 8 עיבוד של אירוע פשוט כמו שלמדת, אירועים הם הפורמט הפשוט והבסיסי (טעטווחוזק) ביותר לסינכרוך אובייקטים. בדרך כלל מפעילים אירוע בתוכנית, כדי לסמן למטלה אחת או יותר שפעולה הושלמה. כמו עם סמפורים ומוטציות, גם התוכניות יוצרות אירוע על ודי הקריאה לפונקציה ח9ו6/03)05. משתמשים בפונקציה 16395601 בתוכניות כמ שרואים בהגדרה שלהלן )6+ מנפאתא ות )הסטפם1 סמנ תדג ' // 005 1 שש 0566:- [פטהגח צס? הַָב+ // 00 5666 116141 965 בָ91 // ,1:19156886הזמ 00 שחפת 60%(מ05-0ם 50 עבמתנסם // שמבק1 תשפפסק 1 הפונקציה 6631659 מקבלת את הפרמטרים שמפורטים בטבלה 116.15 טבלה 16.15: הפרמטרים של הפונקציה %ח016816896. פרמטר תיאור פפוצטסועווטחסצפקן | מצביע למבנה מסוג פפדטפ1הדדא ד550081 שקובע אס תהליכי. בן יכולים לרשת את הידית המוחזרת. אם 5וטפוזזווחסצסקו שווה ל-+טו, תהליך הבן אינו יכול לרשת את הידית. תחת. א 0%5חו), האיבר ז0זקו500/09501ט| של המבנה מגדיר. מתאר אבטחה (01זקו09501 /5601/8) לאירוע החדש. אם. טסו טחס/פוק! הוא -04, האירוע מקבל את מתאר האבטחה. של ברירת המחדל. תחת 9 חואו הפונקציה 003160601 . מתעלמת מהאיבר ז0ז0ו050001/0/0950! של המבנה. 66% הבוט | מגדיר אם 6163009901 יוצרת אובייקט אירוע מאופס ידנית אד אוטומטית. אם 6טזד, חייבים להשתמש בפונקציה ]חפשפ501ה כדי לאפס ידנית את המצב לאינו מסומן; אם 53156, ₪5ו0חו מאפסת אוטומטית את המצב לאינו מסומן אחרי שהמערכת כבר שחררה מטלה ממתינה אחת. 8 :הכהו ומבוא ל-ספו פרמטר תיאור זט | מגדיר את המצב ההתחלתי של אובייקט האירוע. אס טטזד, המצב ההתחלתי מסומן; אחרת, אינו מסומן. וובאזכ| | מצביע למחרוות המסתיימת ב-1)טאז שמגדירה את שם אובייקט. האירוע. פווס6חוו מגבילה את השם ל-אז78 או תווים, והוא: יכול להכיל כל תו ו מלוכסן הפוך (830%558) שמשמש מפריד. בנתיב (0. זכור תמיד, שהשוואת שמות הינה תלויית רישיות. 0 אם פוחאק! חופף לשם אובייקט אזירוע שקיים כבר, טוזפאפו מבקש גישה 400855 )א דַע אל האובייקט הקיים. הפונקציה 6193065901 מתעלמת מהפרמטרים 656%ההטחמויו ו-319פ/8/ח1פ מכיון שהתהליך היוצר כבר קבע אותם. אם: הפרמטר פפוטפוזווחסופק! אינו -011, הפונקציה קובעת אס. אפשר לרשת את הידית, אך היא מתעלמת מפרמטר מתאר. האבטחה. אם פוחפאק! שווה ל-01א, הפונקציה זחפצ5ס030ז6 יוצרת את. אובייקט האירוע בלי שם. אם השם שמוגדר על ידי סוחפאק! חופף. לשס של סמפור קיים, מוטציה או אובייקט קובץ מיפוי (פו 0חו30/), הפונקציה נכשלת והפונקציה ז0זז3518 66% מחזירה. את הקבוע )סא 10הטאז 58808. הפונקציה נכשלת מכיון שאירוע, מוטציה, סמפור, וקבצי מיפוי משתתפים באותו מרחב שמות (50860 ומא אס הפונקציה 1ח9ו03005ז6 מצליחה, הערך המוחזר הוא ידית לאובייקט האירוע. אם. שם אובייקט האירוע קיים לפני הקריאה לפונקציה, הפונקציה ז0זזש51ג66%1 מחזירה. את הקבוע ₪01515 +סשח, ה0הח6; אם הפונקציה נכשלת, הפונקציה מחזירה טא לידית המוחורת על ידי 0163956 יש גישה מסוג 00555/ .ו דאפ/ם אל אובייקט. האירוע החדש, וכל פונקציה שדורשת ידית לאובייקט אירוע יכולח להשתמש בו. כלל מטלה של תהליך המופעלת יכולה להגדיר את ידית אובייקט האירוע בקריאה לאחת. מפונקציות ההמתנה. פונקציות ההמתנה של אובייקט יחיד חוזרות, כאשר מצב האובייקט המוגדר הוא מסומן. אפשר להורות לפונקציות ההמתנה של אובייקטים. רבים לחזור כאשר אובייקט אחד כלשהו, או כאשר כל האובייקטים המוגדרים נמצאים במצב מסומן. כאשר פונקציית המתנה חוזרת, מערכת ההפעלה משחררת את. המטלה הממתינה כדי שתמשיך בפעולתה. הפרמטר 515ז9וג0וח01 מגדיר את המצב ההתחלת של אובייקט האירוע. השתמש. בפונקציה :5150 כדי לקבוע מצב של אובייקט אירוע למסומן. השתמש בפונקציה. 89500540 כדי לאפס את המצב של אובייקט אירוע לאינו מסומן. כאשר המצב של פרק 16: תהליכים ומטלות = 479 אירוע המאופס ידנית הוא מסומן, הוא נשאר במצב זה עד אשר הפונקציה זח6פ01פ מאפסת אותו באופן מכוון למצב אינו מסומן. התוכניות יכולות לשחרר כל מספר של מטלות ממתינות, או מטלות אשר בצורה עקבית התחילו בפעולות המתנה לאובייקט. אירוע מוגדר, בומן שמצב האירוע הוא מסומן. כאשר המצב של אובייקט אירוע שמאופס אוטומטית הוא מסומן, האובייקט נשאר במצב זה עד אשר התוכנית או מערכת ההפעלה משחררות מטלה ממתינה אחת; ואז, המערכת מאפסת אוטומטית את המצב לאינו מסומן. אם אין מטלות שממתינות, המצב של אובייקט האירוע נשאר מסומן. תהליכים רבים יכולים לקבל ידיות של אותר אובייקט אירוע, דבר שמאפשר לתהליכים להשתמש באובייקט עבור סינכרון פניםם תהליכי. הטכניקות שלהלן לשיתוף-אובייקט זמינות לשימוש התוכניותת 3% תהליך בן שנוצר על ידי הפונקציה 6030000665 יכול לרשת ידית של אובייקט. אירוע, כאשר הפרמטר פושטושחפעספן של הפונקציה 6/0008 מאפשר ירושה תהליך יכול להגדיר את ידית אובייקט האירוע על ידי קריאה לפונקציה 6 6וקטם, כדי ליצור ידית משוכפלת, אשר תהליך אחר יכול להשתמש בה. + תהליך יכול להגדיר את שם אובייקט האירוע על ידי קריאה לפונקציות א 0 השתמש בפונקציה 00568006 כדי לסגור את הידית. המערכת סוגרת את הידית. אוטומטית, כאשר התהליך מסתיים. מערכת ההפעלה מפרקת את אובייקט האירוע כאשר המערכת סוגרת את הידית האחרונה של האירוע. כדי להבין יותר טוב את פעולת התוכניות שמשתמשות באירועים, התבונן בתוכניתת 05 66זחד, שבתקליטור המצורף לספר וה (בתיקיה 8006559285). כדי לראות. את השפעת הסינכרון באופן הטוב ביותר, הפעל את התוכנית פחסוזק0.-66זחד שלוש. פעמים ופרוש את חלונות המופעים על שולחן העבודה. בשני המופעים הראשונים בחר באפשרויות תפריט ₪636 ובמופע השלישי בחר באפשרויות תפריט פוח/ו. בשעה שאת. פעולות הקריאה אפשר לבצע במקביל, בו-זמנית, כל פעולת כתיבה חייבת להמתין עדד שפעולות הקריאה מסתיימות. כלומר, לאחר שפעולות הקריאה מסתיימות, פעולת הכתיבה יכולה להתבצע. אם אתה הופך את הסדר, ובוחר תחילה בפעולת הכתיבה, פעולות הקריאה חייבות להמתין עד שפעולת הכתיבה מסיימת את העיבוד שלה. כל' תהליך מציג את המצב הנוכחי שלו בשורת המצב (ז83 513005) של החלון. התוכנית. וס 66זחד מבצעת את העיבוד המעשי באמצעות הפונקציה קחצ 0 321חווו ומבוא ל-ספו פרק 17 קלט/פלט בחלונות 1 פעולות קלט/פלט בקבצים ב-5שש60ח:/ (1/0 1!6= פעצסטחוצו) בוודאי מוכרות לך פעולות קלט/פלט שניתן לבצע בקבצים, בעת תכנות בשפת 6 או בשפת ++6. בסעיפים הבאים תלמד על יסודות פעולות קלט/פלט בקבצים מערכת ההפעלה פוסחו. התפיסה המקובלת היא לראות את הקובץ כבלוק (גוש) של נתונים שנמצאים בהתקן אחסון. מוהה מיוחד שידוע כיישם הקובץ'' מאפשר לך לוהות גוש נתונים זה. בסביבת. 5 התוכניות שומרות בדרך כלל את הקבצים בדיסקטים ובכונני דיסק קשיח (נכנה אותם בשם הכולל יידיסק'). בסביבת העבודה 065חו/ אנו רואים שלצורך קלט/פלט,, זקה 32חו/ מת*יחסי לצינורות בעלי שם (פקןק פוחּא), משאבי תקשורת, התקני דיסק, קלט או פלט של קונסול, או לקובץ הדיסק הקלסי כאל ייקובץ". כל סוגי הקבצים השוניס האלה הינם דומיס ברמה הבסיסית, אך לכל טוג קובץ יש מאפיינים והגבלות. משלו. פונקציות הקבצים של 1קה 32חוו מאפשרות לתוכניות לגשת לקבצים ללא תלות במערכת הקבצים שפועלת, או בסוג ההתקן הפיסי. עם זאת, היכולות של קובץ. משתנות ממערכת קבצים אחת למערכת קבצים אחרת ומסוג התקן אחד למשנהו. 2 צינורות (65קוכ), משאבים (65001]665'ז), התקנים (60601065) וקבצים (8!65) בסעיף קודם למדת ש-5ווס0חו תומכת בקלט ופלט של קבצים במגוון התקנים. בסעיפים העוקבים תלמד לא רק על קלט ופלט של קוב רגיל שמאוחסן בדיסק, אלא תלמד גס כן חלק מיסודות הקלט והפלט בקבצים להתקנים אחרים. טוב להכיר חלק. פרק 17: קלט/פלט בחלונות ‏ 481 מההתקנים הנפוצים ביותר שנפגוש בסביבת העבודה של תוכניות פווסטחוו. טבלה 1 מפרטת כמה מההתקנים הנפוצים ביותר. טבלה 17.1: התקנים נפוצים והשימוש שלחם. התקן (קובץ) ₪6 סו (ספריה, תיקיה) ו 0156 1091631 (כונן דוסק לוגו) שאזם 015% (63ופעחק (כונן דיסק פוסו) ] (יציאה טורית) מק (יציאה מקבילות) (חריץ דואר) ₪500 ב (צונור בעל שם) 6 סז הסח (צינור אנונימי) (שקע) 506%6%. (קונסול) 00050/6. השימוש הנפוץ ביותר אחסנת נתונים עקבית. מאפיינים ודחיסת קבצים. פורמט (ַח11וחזס=). טבלת גישה למחיצות (460555 73016 חס!וטזהק). שידור נתונים דרך קו טלפון שידור נתוניס למדפסת. שידור אחד-לרבים (ח8!-0ד-6ח0) של נתונים, בדרך כלל. ברשת 6/070)) למחשב מבוסס 6005חוא 05-8856619 שידור אחד- לאחד (6ח006-10-0) של נתונים, בדרך כלל. ברשת 070א6)!) למחשב מבוסס 05ו60חוא חחח 005-08566 הו שידור אחד- לאחד (9חס-006-70) של נתונים במחשב יחיד (לעולס לא דרך רשת). שידור בשיטת צרור נתונים (ִּּזסַזס) או ברצף של נתונים, בדרך כלל ברשת למחשב כלשהו שתומך בשקעים. (יכול להיות שהמחשב אינה מריץ את 005חו/. חוצץ מסך בחלון טקסט 80/10 507660 אוסטחו/וו סד א כמו שתגלה, חא מנסה לטשטש את השוני בין ההתקנים מפני המשתמש ככל האפשר. במילים אחרות, אם אתה פותח חריץ דואר וקובץ, פאוסחוו מאפשרת לך לקרוא מ- ולכתוב ל- לשני ההתקנים עס פונקציות דומות. עס ואת, צריך לשים לב שמלבד הפונקציות 0630686, 6066ה ר- 6|סאווא, 0005חו/ו מספקת אוסף מקיף מאוד של פונקציות ייחודיות להתקן (6060פ6-5סו06. פחסו!סחט), שמאפשרות לתוכנית לנהל את תכונות ההתקן. לדוגמה, אין היגיון לקבועע קצב שידור (₪3 8306) כאשר משתמשים בצינור בעל שם לתקשורת, למרות שנשמע 2 כו ומבוא ל-ספו הגיוני מאוד לעשות כך כאשר משתמשים ביציאת תקשורת. לכן, הפונקציה 5000 תפעל עם התקן יציאה טורית, אך לא תפעל בצורה נכונה עם צונור בעל שם. מסיבה ואת, מרבית הסעיפים הבאים מתמקדים בשימוש כללי של הפונקציות 003195/6, 863006 ו- 6!ופאז/+, ולא ביישום ייחודי לפונקציה של התקן נתון. התבונן בתיעוד של המהדר שלך ושל ההתקן, כדי לקבל מידע נוסף וייחודי אודות התקשורת עס כל התקן שהוא. 3 הפונקציה 63+6-1!6ו0 לפתיחת קבצים ממשק התכנות 401 32חו/ו תומך בסוגים רביס של התקנים ומאפשר לתוכניות לנהל. קבציס באופן נורמלי בכל סוגי ההתקנים. כדי ליצור קובץ בהתקן כלשהו, משתמשים. בדרך כלל בפונקציה 676319866 של [קא 32חו/. הפונקציה 07630086 יוצרת או פותחת. את האובייקטים הבאים, ומחזירה ידית אשר התוכניות יכולות להשתמש בה כדי לגשת לאובייקט. 3% קבצים. + צינורות % חריצי דואר. 3% משאבי תקשורת. + התקני דיסק (רק ב- ד 5ס6חו). + קונסול 3% ספריות / תיקיות (רק פתיחה). את הפונקציה 0163956 כותביס בתוכניות כמו בהגדרה שלהלן )068509116 מנסואתת 1 פו) 01 שחפה ס צשסת1סק // שמבמו11עק1 תעפפסק1 6 (2088-021868) 0688ב // 2600 פאה פהסאום ו 6 פהסוום ,668טמ6651הץ)1צ600פק1 פפצטמנצעה צפ1תט0םפק1 60 // 8 50 אס //‏ ,הס1שטמ1צ186םמ610ב0צסאם סהסום // ?116 86218‏ ,05מטמ1:םסתבהת5ףגנפאם סהסם 18 65ג1ממסם 60| שנמממת // 6 ספת םנסוות ו הפונקציה 1031056 מספקת לתוכניות שליטה משמעותית על הקוב שיצרת. טבלה 2 מפרטת את הפרמטרים של הפונקציה 003066. פרק 17: קלט/פלט בחלונות ‏ 483 טבלה 17.2: הפרמטרים של הפונקציה 0163168116. פרמטר ב 0 1 ו 4 הכהו ומבוא ל-ספו תיאור מצביע למחרוות המסתיימת ב-)0! אשר מגדירה את שם האובייקט (קובץ, צינור, חריץ דואר, משאב תקשורת, התקן דיסק, קונסול, או ספריה/תיקיה) אשר הפונקציה 61630986 צריכה ליצור או לפתוח. אם פוחאפווק! הוא נתיב, יש גבול ברירת מחדל לגודל. המחרוזת ששווה ל- ודא %ג/% תווים. גבול זה קשור לדרך שבה הפונקציה 61631986 מנתחת את הנתיבים. 5 מגדיר את טוג הגישה לאובייקט. היישום יכול להשיג גישה לקריאה, גישה לכתיבה, גישה לקריאה-כתיבה, אד גישה לשאילתה להתקך (עז6ט06/08-0). פרמטר זה יכול. להיות צירוף כלשהו של הערכים שמפורטים בטבלה 3 קבוצת דגלי סיביות, אשר מגדירים כיצד התוכניות. יכולות לשתף גישה לאובייקט. אס 6/5781601066 שווהה לאפס, התוכניות אינן יכולות לשתף גישה לאובייקט. הניסיונות העוקבים לפתוח את האובייקט נכשלים, עד שהתוכנית המשתמשת באובייקט סוגרת את הידית. שלו. כדי לשתף גישה לאובייקט צריך להשתמש בצירוף. של דגל אחד או יותר מהערכים שמפורטים בטבלה. 4 מצביע למבנה מסוג 85ד180ד1/ ד550081 אשר קובע אם תהליכי בן יכולים לרשת את הידית המוחזרת. אם: 50| הוא 014', תהליכי בן אי יכולים. לרשת את הידית. דא %5ו60חו): האיבר ז0זקו50000/00501פ! של המבנה. מגדיר מתאר אבטחה (01זק06500-/8ו56001) עבור. האובייקט. אס וזו /ףו560ק! הרא שא, האובייקט מקבל מתאר אבטחה של ברירת המחדל. מערכת הקבצים של קוב המטרה חייבת לתמוך. באבטחת קבצים וספריות כדי שתהיה השפעה לפרמטר. זה על קבצים. 9% סו : 016319806 מתעלמת מהאיבר. כ פרמטר תיאור חסטט1טפו0ח01030/0/ו6 | מגדיר את הפעולה שיש לבצע על קבצים קיימים, ואיזו פעולה לנקוט אס הקבציס אינס קיימים. פרמטר זה חייב להיות אחד מהערכים שמפורטים בטבלה 17.5 55וטט!זו9305000 | מגדיר את מאפייני הקובץ ודגלים עבור הקוב). כל. צירוף כלשהו של המאפיינים שמפורטים בטבלה 17.6 הס ערכים תקפים עבור הפרמטר. 95זט010ה%505, פרטי לכך שכל שאר מאפייני הקובץ עוקפים (061106) את. תסו שדט8זהדדה וה אם הפונקציה 61631986 פותחת את צד הלקוח של צינור בעל שם, אז הפרמטר 65וטפו053060בוחאו יכרל. להכיל גם כן מידע אבטחה לאיכות שירות - 5005 507006 01 /סוומטו) /500116). סעיף 17.4, מסביר עלל הפתיחה של צינורות בעלי שם בפירוט. כאשר חיישוס. הקורא מגדיר את הדגל 788557 5005 ד550081, הפרמטר פסזטפו150580680ו יכול להכיל אחד אר יותר מהערכים שמפורטים בטבלה 17.7 ופוה!קוחסדה | מגדיר ידית עם גישה 8540 -65%8816 אל תבנית קוב. (6 5)מ!קוחפד). תבנית הקוב מספקת מאפייני קוב ומאפיינים מורחבים עבור קוב שהפונקציה 0103068/6. יוצרת. תחת א9 פווסשחוצצ, ערך זה חייב להיות וא אם מספקים ידית תחת א9 8ו00חו/, הקריאה תיכשל. כמו שלמדת בטבלה 17.2, התוכניות יכולות להגדיר באמצעות הפרמטר 0/8605 את. רמת הגישה הרצויה לקבצים אשר פותחים עם הפונקציה 67030856 הערכים. האפשריים עבור הפרמטר 6860955 מוצגים בטבלה 17.3 טבלה 17.3: הערכים האפשריים עבור האיבר 40/86655. עוך פירוש | מגדיר גישת שאילתה-להתקן עבור האובייקט. באפשרות. היישוס לברר את מאפייני ההתקן מבלי לגשת אלי. סאפח 5%16אש6 | מגדיר גישת קריאה לאובייקט. תוכניות יכולות לקרוא נתונים. מהקובץ וקריאות זַא יכולות להעביר את מצביע הקובץ. כשמחברים ערך זה עם זז 66%6816 מקבלים גישת. קריאה-כתיבה. פרק 17: קלט/פלט בחלונות | 485 עוך 16 פירוש מגדיר גישת כתיבה לאובייקט. תוכניות יכולות לכתוב נתונים. לקובץ וקריאות 81 יכולות להעביר את מצביע הקובץ. כשמחברים ערך זה עס ₪50 68%86816 מקבלים גישת קריאה-כתיבה. בנוסף לרמות הגישה (/166 %00655), באפשרות התוכניות שלך להגדיר מצב משותף. עבור הקובץ על ידי השימוש בפרמטר 650319/006. טבלה. 17.4 מפרטת את הערכים. האפשריים עבור הפרמטר 057916%/006. טבלה 17.4: הערכים האפשריים עבור הפרמטר 04517681066. עוך פירוש =דם וס 58 == | רק עבור דא פאוסחו: פעולות פתיחה עוקבות של. האובייקט מצליחות, רק אם התהליך הפותח דורש גישה למחיקה (60055 06/646). סאפה 585 == | פעולות פתיחה עוקבות אל האובייקט מצליחות, רק אם. התהליך הפותח דורש גישה לקריאה (866055 686 =דנהעו 585 == | פעולות פתיחה עוקבות אל האובייקט מצליחות, רק אם. התהליך הפותח דורש גישה לכתיבה (6059א זז הפרמטר 000016306 קובע את הפעולה ש-6008חו/ צריכה לבצע כאשר הקובץ קיים, אד שאינו קייים. הפרמטר חייב להיות אחד הערכים שמפורטים בטבלה 17.5 טבלה 17.5: הערכים האפשריים עבור הפרמטר 06866 64. ערך פירוש ופא 08575 | יוצר קוב חדש. הפונקציה נכשלת אם הקובץ המוגדר כבר קיים. ואו דה | יוצר קוב חדש. הפונקציה דורסת (פפזוזווחס) את. הקובץ אס כבר קיים. 56 אפס | פותח את הקוב. הפונקציה נכשלת אס הקובץ אינו קיים. 5צאוווא, אפקס | פותח את הקובץ, אס הקובץ קיים. אם הקובץ אינו קיים, הפונקציה יוצרת את הקובץ כאילו הפרמטר טסופו הס:0/07630 היה שורה ל- ופא דפ הס. 1916 מדהסאטחד | פותח את הקוב. ברגע שהקובץ נפתח, 5ו00חוו. מצמצמת את הקובץ, כך שהגודל שלו שווה לאפס 0+ בתים. התהליך הקורא חייב לפתוח את הקובץ במצב. גישה של טדנהעו 668616 לכל הפחות. הפונקציה נכשלת. אם הקובץ אינו קיים. 6 321חו/ו ומבוא ל-ספו כאשר יוצרים קובץ כלשהו במערכת ההפעלה 60%5חווו, מערכת ההפעלה מצמידה לו מאפיינים. באפשרותך להגדיר דגלים ומאפיינים עבור כל קובץ חדש שאתה יוצר. טבלה 17.6 מפרטת את הדגלים והמאפיינים האפשריים. טבלה 17.6: ערכי הדגלים והמאפיינים האפשריים עבור הפרמטר 715565 6ה95 הוח אום. מאפיין פירוש =/זוסאה, מדטפזהדד זז | מסמן את הקוב עם תכונת ארכיב (פעוו6זג). חיישום משתמש במאפיין זה כדי לסמן את. הקבצים לגיבוי (פ836) או העברה (והאסוחסה). 50פפפהקויוסס אדטמזאדד, תוזז | הקובץ או הספריה/תיקיה דחוסים. עבור קוב, פירוש הדבר שכל הנתונים בו דחוסים. עבור ספריה/תיקיה, פירוש הדבר שהדחיסה היא: ברירת המחדל עבור קבצים חדשים שנוצרים ועבור ספריות המשנה. אפספזוו מדטפנהדדא, 15 | הקובץ נסתר (אינו נכלל ברשימה הרגילה של. הספריה/תיקיה). אאהסא מדטפנהדדא 15 | אין לקובץ מאפיינים אחרים שנקבעו. מאפיין וה תקף רק אם התוכנית משתמשת בו לבד, כאשר התוכנית קוראת ל- 010319866. שאונותזס. מדטפנחדדג 115 | הנתונים של הקובץ אינם תקפים מיד. מציין שנתוני הקובץ הועברו פיסית לאחסון מופרד. 510 0 צווססאפה מדטמנהדדו, וז | הקובץ הוא לקריאה בלבד. היישומים יכולים. לקרוא את הקובץ, אך אינם יכולים לכתות בו אד למחוק אותו. 558% מדט18הדד. 115 | הקובץ הוא חלק ממערכת ההפעלה, או שהוא נמצא בשימושה הבלעדי של מערכת ההפעלה. צהההסקואסד מדטפנהדדא 1 | התהליך משתמש כרגע בקובץ לאחסון ומנ היישום צריך למחוק קובץ ומני ברגע שהיישום. אינו צריך אותו עוד. ו6טסהד ודוה 1.46 = וזו | מורה למערכת לכתוב דרך מטמון ביניים כלשהו ולפנות ישירות לדיסק. פאוסטחו יכולה עדיין לבצע פעולות כתיבה במטמון, אך אינה יכולה. לרוקן אותו לפי דרישתה. פרק 17: קלט/פלט בחלונות = 487 מאפיין סקל ןאפטס 6 ו ב 458 קא32חו/וו ומבוא ל-0פו פירוש מורה למערכת לאתחל את האובייקט, כך. שפעולות עיבוד שנמשכות ומן רב מחזירות. 6אזסואפק .10 הסהס. כאשר מערכת ההפעלה. מסיימת את הפעולה, פאוסחוא קובעת את. האירוע שמוגדר במבנה 60קק/ 0881 למצב מסומן (5/008166) כאשר מגדירים את הדגל. ספקק השס ₪1 5 1ז, הפונקציות 69086 ו- 6 פזוז\ חייבות להגדיר מבנה מסוג ספקקא 81פ/ו0. כלומר, כאשר מגדירים את הדגל ספקקת הפס 6 15 היישום חייב לבצע קריאה וכתיבה חופפות. כאשר מנדירים את הדגל. ספקק 0881 1/6 ₪ וז, המערכת אינה. מחזיקה את מצביע הקובץ. התהליך הקורא חיוב למסור לפונקציות 869056 ו- 6פזוז את. מקום הקובץ, כחלק מהפרמטר 66קגוזסצס ו (מצביע למבנה מסוג 0פקק 0/6 דגל וה מאפשר לתהליך לבצע עם ידית אחת יותר. מפעולה אחת בו-ומנית (לדוגמה, פעולת קריאה. וכתיבה בו זמנית). מורה למערכת לפתוח את הקובץ ללא מאגרי ביניים או מטמון. כאשר דגל זה מחובר עם. ספקק/ 0884 46 ₪ ו1, הדגל מאפשר סינכרון מקסימלי, מפני שהקלט/פלט אינו נשען על פעולות הסינכרון של מנהל הזיכרון. חלק. מפעולות הקלט/פלט נמשכות זמן רב יותר, מכיון שמערכת ההפעלה אינה מחזיקה נתונים במטמון. היישום חייב לעמוד במספר דרישות כאשר עובדים עם קבצים שפותחים אותס עם הפרמטר 00-86 106 15א. הגישה לקובץ' חייבת להתחיל בהיסט בתים (0065605 06ץ8) בקובץ, שהוא כפולות שלמות של גודל הסקטור. הגישה לקובץ חייבת להיות עבור מספר בתים. שהם כפולות שלמות של גודל הסקטור. לדוגמה,, אס גודל הסקטור הוא 512 בתים, בקשות. הקריאה והכתיבה של היישום יכולות להיות. מאפיון סו 6 ו 50 550 6 פוה 8 אס דפס סגו פוה פירוש 2 1024, אר 2048 בתיים, אך לא 335, 981, אר 1 בתים. כתובות החוצץ עבור פעולות קריאה וכתיבה חייבות להיות מיושרות לפי כתובותת זיכרון שהן כפולות שלמות של גודל הסקטור. אחת הדרכים ליישר חוצצים בכפולות שלמות של גודל הסקטור, היא להשתמש ב- 06ו1א!מוזו כדר להקצות את החוצצים. הפונקציה מקצה ויכרון אשר מיושר בכתובות שהן כפולות שלמות של גודל דף. מכיון שדף זיכרון וגודל סקטור הם. חוקה של 2, ציכרון וה מיושר גס כן בכתובות. שהן כפולות שלמות של גודל הסקטור. היישום יכול לקרוא לפונקציה 809ק601015657065. כדי לקבוע את גודל הסקטור. מציין שהתהליך ניגש לקובץ בצורה אקראית. המערכת יכולה להשתמש במאפיין זה כציון לביצוע אופטימוציה למטמון הקבציס עבור קוב). זה מציין שהתהליך עומד לגשת לקובץ באופן סדרתי מתחילתו אל סופו. המערכת יכולה להשתמש. במאפיין ה לביצוע אופטימוציה למטמון הקבצים עבור קובץ זה. אס יישום מעביר את. מצביע הקוב לגישה אקראית, יכול להיות שלא יתקיים מטמון אופטימלי; אך עדיין מובטח פעולות נכונות. הגדרת דגל זה יכולה לשפר ביצוע יישומים שמשתמשים בגישה סדרתית כדי לקרוא קבצים. גדולים. גס אפשר להבחין בשיפור הביצועים. עבור יישומים שקוראים קבצים גדולים רבים. באופן סדרתי, אך לפעמים מדלגים על תחומי בתים קטנים. מציין שמערכת ההפעלה עומדת למחוק את. הקובץ מיד לאחר שכל הידיות שלו נסגרות, ולא. רק הידית שהגדרת. ל- 058 אס דפ ו ₪136 סוה. פתיחות עוקבות של הקוב ייכשלו, אלא אם. התהליך הקורא משתמש בדגל. 5 שו פרק 17: קלט/פלט בחלונות | 489 מאפיון פירוש 55 84060 אה וזח | רק עבור זא פווסחוא: מציין שהקובץ נפתח אר נוצר לגיבוי, או לפעולת שחזור. מערכת ההפעלה. מבטיחה שהתהליך הקורא עובר את בדיקות. בטיחות הקובץ, כדי לוודא שיש לו אישור. מתאים לעשות זאת. האישורים הרלוונטיים הם. וא 007 55 ו- פוא מס דפפה 56 באפשרותך לקבוע גם דגל זה, כדי להשיג ידית לספריה/תיקיה. באפשרות התהליך למסור למספר פונקציות של 32חו/ ידית ספריה, במקום. ידית קובץ. 5 אס5 905 6הו 5 | מציין שהתהליך עומד לגשת לקובץ לפו כללו 2051%. הדבר כולל מתן רשות להציג קבצים עם שמות והים אך שונים זה מה בסוג האות בלבד (רגילה או רישית), במערכות קבצים אשר תומכות באפשרות זו. צריך להיות והירים כאשר משתמשים באפשרות ואת, מכיון שיישומים. שנכתבו עבור 5-005! או 6%65ח/ אונם. מבחינים בהבדל של סוג אות, ולכן לא יוכלר לנשת לקבצים שנוצרו עם דגל זהה 2% הערה: אזפסק (ואט הו 58566 7]205וח1 555 ַהנוזסקס 6וסבזזסק) הרא אוסף של תקנים בינלאומיים לממשקי מערכות הפעלה בסגנון אנט אם הפונקציה מצליחה, היא מחזירה ידית פתיחה לקובץ המוגדר. אם הקובץ המוגדר קיים לפני הקריאה לפונקציה ו- חסטטטוטפוסחסטה6ו0א₪ שווה ל-1/5, פדא6ה6 אר ל- 1//85 07%, קריאה ל- ז0ו60₪3515 מחזירה 501515 +סאפה א 880 (אפילר אס הפונקציה מצליחה). אם הקובץ אינו קיים לפני הקריאה, ז0וז660135/5 מחזירה. אפס. אם הפונקציה נכשלת, הפונקציה מחצירה פטאש = וסאאו סנואשא. כמו שנאמר, הצבת אפס עבור 6006566055 מאפשרת ליישום לקבל מידע אודות. מאפייני ההתקן, מבלי לגשת אליו. סוג זה של שאילתות זעיל, לדוגמה, כאשר יישום. רוצה לדעת את קיבולת הדיסקט האפשרית בכונן ואת שאר הפורמטים שהוא תומך בהם, מבלי שיהיה דיסקט בכונן. התקליטור שמצורף לספר וה מכיל את התוכנית ₪116 56ז₪0, שיוצרת את הקוב וכותבת בו מחרוזת. כאשר המשתמש בוחר באפשרות 193% מהתפריט, התוכנית קוראת חורה את המחרוזת מהקובץ, ומציגה את המחרוות בתיבת הודעה 00 1695006 0 ז32חווו ומבוא ל-ספו 4 הפונקציה 63+06-1!6ו0) עם התקנים שונים התוכניות יכולות להשתמש בפונקציה 01631956 כדי ליצור קבצים במגוון התקנים. יש הבדלים משמעותיים בצורה שבה 0163986 פועלת, כתלות בהתקן שהתוכנית. פועלת עליו. בפסקאות הבאות מתוארים כמה מהבדלים אלה. כאשר משתמשים ב-016319/6 כדי ליצור קוב חדש, הפונקציה מבצעת את הפעולות. הבאות 1% מצרפת את מאפייני הקובץ והדגלים שמונדרים על ידי 0100500085 עם. אא דטמנה דד = ונד + קובעת את אורך הקוב לאפס. %+ מעתיקה את המאפיינים המורחבים מקובץ התבנית (56 58ק6ד) אל הקובץ. החדש, אם מגדירים את הפרמטר 65/6)גוקוחטדה. כאשר הפונקציה 66319816 פותחת קוב קיים, היא מבצעת את הפעולות הבאות. 3% מצרפת את דגלי הקובץ שמוגדרים על ידי 005 אל מאפיונר הקוב הקיימים. הפונקציה 6163198/6 מתעלמת מהמאפיינים שמוגדרים על ודי 0 1% קובעת את אורך הקוב לפי הערך שמוגדר ב- פופו 016000 0. 1% מתעלמת מהפרמטר 65/6)ה!קוחפדה. %+ מתעלמת מהאיבר זסוק5900110/060ק1 של המבנה פפדטמזהדדא הז 5900 אם. הפרמטר 65וט0ו5000/00ק|. אינו -4ו0). 1030086 אינה משתמשת באיברי המבנה האחרים. האיבר 66חפוחחח1ם הוא הדרך היחידה לציין א תהלוך. אחר יכול לרשת את ידית הקובץ. כשאתה מנסה ליצור קובץ בכונן דיסקטיס שאין בו דיסקט, או לפתוח קובץ בכונך 60-50 שאין בו תקליטור, המערכת מציגה תיבת הודעה, שבה היא מבקשת מהמשתמש להכניס דיסקט או תקליטור, בהתאם. כדי למנוע מהמערכת להציג תיבת. הודעה זו, צריך לקרוא לפונקציה 5606010006 עס 888085 ואס1דזה0 וזה 50%%. למידע נוסף אודות 066/ז5618110, התבונן בתיעוד המקוון של המהדר שלך. כאשר 0031956 פותחת את צד הלקות (806 ח16ס) של צינור בעל שם, הפונקציה משתמשת במופע כלשהו של הצינור שנמצא במצב האזנה (51306 חַח500ו). התהליך הפותח יכול להכפיל את הידית כמספר הפעמים שנדרש, אבל, אחרי ש- 008186 פתחה את צד הלקות, לקוח אחר אינו יכול לפתוח את מופע הצינור בעל חשם הוה הגישה (%60095) שאתה מנדיר כאשר 01031656 פותחת צינור, חייבת להיות תואמת לגישה אשר הגדרת בפרמטר 4060006 של הפונקציה 0319%800067106ס. כאשר פרק 17: קלט/פלט בחלונות ‏ 491 אתה מציין אבטחה בהקשר לפתיחת צינור בעל שם, התוכנית צריכה לציין את אחד או יותר מדגלי האבטחה שמפורטים בטבלה 17.7. טבלה 17.7: דגלי האבטחה אשר משתמשים בהם כשיוצרים צינור בעל שם. ערך פירוש 5אוסאא 5500817 | הקוב יכיר את הלקוח ברמה האנונימית (10%60 5 הסח אסזזא110דאפפ1 +ד1הט550 | הקוב יכיר את הלקוח ברמת הזיהוי (/1.66 1060106000 אסנד5850קוז -יד550081 | הקוב יכיר את הלקוח ברמת התיכרות 166 10 90ז טוח אסזד56 מ צדנהט550 | הקובץ יכיר את הלקוח ברמת ההסמכה ((10%6 ח0ו008) הד זאפדוס +דנהט550 | מצב העקיבה לאחר האבטחה הוא דינמי. אם. אינך מגדיר דגל וה, מצב העקיבה אחרי האבטחה הוא סטטי ששאס 6שנד0ם8:ם /יד556081 | רק ההיבטים המופעלים של הקשרי האבטחה של הלקוח תקפים עבור השרת. אס אינך מגדיר דגל זה, כל ההיבטים של הקשרי האבטחה של הלקוח תקפים. דגל זה מאפשר ללקוח להגביל את הקבוצות ואת ההרשאות. שהשרת יכול להשתמש בהם בזמן ויוי הלקוח. כשהפונקציה 0103066 פותחת את קצה הלקוח של חריץ דואר, הפונקציה מחזירה. שנוע = וסאאוו סזא/או1, אס הלקוח של חריץ הדואר מנסה לפתוח חרי דואר מקומי לפני ששרת חריץ הדואר יצר אותו על ידי הפונקציה ז0163100/3//5(0. הפונקציה 01631956 יכולה ליצור ידית למשאב תקשורת, כמו היציאה הטורית 601411. עבור משאבי תקשורת, הפרמטר חסטטטוטטסחסו0סו0וו0 חייב להיות שווה ל-₪0151186 אפקס, והפרמטר סומקחטד חייב להיות +וטא. באפשרותך להגדיר גישות קריאה, כתיבה, או קריאה-כתיבה, ובאפשרותך לפתוח את הידית עבור קלט/פלט חופף. במערכת | %5ס6חו באפשרותך להשתמש בפונקציה 0031986 כדי לפתוח כונן דיסק או מחיצה בכונן הדיסק. הפונקציה מחזירה ידית להתקן הדיסק. באפשרות התוכניות להשתמש מאוחר יותר בידית זו עס הפונקציה (0ח6//681060ם. 2 זקא2בחווו ומבוא ל-ספו הקריאה חייבת לעמוד בדרישות הבאות, כדי שתצליח 3% חובה שיהיו לתוכנית הקוראת הרשאות ניהול לפעולה, כדי שתצליח בכונן דיסק קשיח המחרוות 6וחגאפוק! צריכה להיות בפורמט אפטוז0וגסופעחפ.\ כדי לפתוח את. הדיסק הקשיח א. מספור הדיסקים הקשיחים מתחיל מאפס. לדוגמה, 5302/עחק.\ משיג ידית לדיסק הקשיח השלישי שמותקן במחשב. + המחרוזת פוחבּא6!חק! צריכה להיות :א.\ כדי לפתוח את כונן הדיסקטים א אוד מחיצה א בדיסק הקשיח. לדוגמה, א.\ משיג ידית לכונן א במחשב, והמחרוזת. 6.\ מיועדת לקבלת ידית לכונן 6. במערכת א00089חו/ טכניקה זאת אינה טובה לפתיחת כונן לוגי. ב-א600059חו הגדרת מחרוזת בפורמט זה גורמת ל-0163068/6 להחזיר שגיאה. הפרמטר חסוטטפוטפוסחס:00/0703 ייב להיות שווה לערך 15116 -אקס. ₪ כאשר פותחים כונן דיסקט או מחיצה בדיסק הקשיח, עליך לקבוע את הדגל =דנהא 5785 = וז בפרמטר 5707071006 הפונקציה 6163986 יכולה ליצור ידית לקלט קונסול (ָּא60%1). אם יש לתהליך ידית. פתיחה לקלט קונסול כתוצאה מירושה (8066זו1חח1) או שכפול (חסטּסווקטם), התהליך. יכול גם כן ליצור ידית לחוצץ המסך הפעיל (פָזט0א00). אתה חייב להצמיד את התהליך הקורא לקונסול שעבר בירושה או לקונסול שהוקצה על ידי הפונקציה 0606 עבור ידיות קונסול, צריך לקבוע את הפרמטרים של הפונקציה 6 כמו שמפורט בטבלה 17.8 טבלה 17.8: ערכי הפרמטרים של הפונקציה 6168668116 כאשר יוצרים קונסול. פרמטר תיאור 6וחמ)/פווזקן || השתמש בערך 60%185 כדי להגדיר קלט קונסול, ובערך 75% כבדי להגדיר פלט קונסול. 65 משיג ידית לחוצ) הקלט של הקונסול, אפילו אם הפונקציה 5615408806 מנתבת את ידית הקלט. הסטנדרטית. כדי להשיג את ידית הקלט הסטנדרטית, השתמש בפונקציה 6615/611806/6. 6005 משיג ידית לחוצץ המסך הפעיל, אפולו אם: הפונקציה 5150018066 מנתבת את ידית הפלט. הסטנדרטית. כדי להשיג את ידית הפלט הסטנדרטית,, השתמש בפונקציה 615/611806/6. | מיקרוסופט ממליצה להשתמש רק. ב- פדנה/ש 16השאם6 | סאפה 16ה68%58, אבל התוכניות. שלך יכולות להשתמש באחד מהם כדי להגביל את. הגישה. פרק 17: קלט/פלט בחלונות | 493 פרמטר תיאור 6 | אם התהליך הקורא יורש את הקונסול, או אס תהליך בן צריך להיות מסוגל לגשת לקונסול, פרמטר זה חייב להיות שווה ל. מדנהוצ האופ = וזח | סאפ פהאופ ונ | אס אתה רוצה שתהליך הבן יירש את הקונסול, האאיבר זט של המבנה 180785 דד רדה 500 חייב להיות פנוזד. 0150 חס07630י || אתה צריך להגדיר 0151186 אפקס כאשר אתה משתמש ב- 61630686 כדי לפתוח את הקונסול. | מתעלמים ממנר 06ומוקוחסדח | מתעלמים ממנר טבלה 17.9, מציגה את ההשלכות של הצבות שונות של 6/06970046005: ושל חאו קו, כאשר מציבים בפרמטר 6וחגאפוזק! את הערך אס0. טבלה 17.9: ההשפעות של קביעת הגישה כאשר פותחים קונסול. ערך ההצבה תוצאה סאפא 60%8816 | פותח קונסול לקלט. =דזאעו 8816א60 | פותח קונסול לפלט. =דנהטו 8816א66 | סאפה 16הטאפ6 | גורם ל- 6631886 להיכשל. היישום אינו יכול ליצור ספריה/תיקיה עם הפונקציה 6/6300%/6. כדי לעשות זאת, היושוס חייב לקרוא ל- 0103000600 או ל-01631900600/5%. תחת ד סט הור באפשרותך לקבוע את הדגל 56401165 880607 10 115 כדי להשיג ידית לספריה. התוכניות יכולה למסור את ידית הספריה, ולא את ידית הקובץ, למספר פונקציות 32חו/+. חלק ממערכות הקבצים, כמו 155ו, תומך בדחיסה לקבצים נפרדים. ולספריות. בפורמטים של כרכים (כרך הוא כינוי נוסף לדיסק, או לכונן דיסקיס המונח כרך אינו מרמו דווקא על כונן פיסי, או על כונן לוגי) ענור מערכת קבצים כואת, ספריה חדשה יורשת את מאפיין הדחיסה של ספריית האב שלה. 5 ידיות קבצים כמו שלמדת בוודאי במערכות ההפעלה 205 ו-1%, ג 0005חו/ מקצה ידית קוב 5066 ₪6) לכל קובץ שהתוכנית פותחת או יוצרת. ידית קובץ היא מוהה מיוחד, אשר היישום משתמש בו בפונקציות שניגשות לקובץ. ידיות הקובץ נשארות תקפות עדד אשר היישוס סוגר אותן על ידי הפונקציה 005678066, אשר סוגרת את הקוב 4 לכהו ומבוא ל-ספו ומרוקנת את החוצץ (ז805) לדיסק. כאשר היישוס מתחיל בפעולתו בפעם הראשונה, הוא יורש את כל ידיות הקבצים הפתוחים מהתהליך אשר הפעיל את היושום, בתנאי שתהליך האב פתח את הקבצים ומרשה ירושה. אם תהליך האב פתח את הקבצים. מבלי להרשות ירושה, היישום אינו יורש את ידיות הקבצים הפתוחים. למדת שבאפשרות היישום לפתוח ידיות קובץ עבור קלט ופלט של הקונסול. אך במקום שם קובץ, היישום מעביר במקרה וה את המחרוות 601 אל הפונקציה 6 כשם קוב הקלט של הקונסול, ואת 001%א60 הוא מעביר כשם קוב הפלט של הקונסול. 6 מבט על מצביעי קבצים כאשר יישום פותח קובץ בפעם הראשונה, מערכת ההפעלה ממקמת בדרך כלל את מצביע הקובץ אל תחילת הקובץ. מצביע הקוב מסמן את המקום הנוכחי בקובץ, שבו פעולת הכתיבה או הקריאה הבאה תתבצע. כל שהתוכניות קוראות או כותבות בתים. בקובץ, פווסשחו מקדמת את המצביע אל הבית הבא בתור. היישום יכול להעביר באופן מכוון את מקום המצביע אל מקום אחר בקובץ באמצעות הפונקציה ז06חו50171/000. את הפונקציה ז6זחוס561/60 כותבים בתוכניות כמו בהגדרה שלהלן ) 56691169018665 ספסוום 16 5 שנשחפם // ,6ננפת שנטאתט 6 60 68מעם 05 פשמממם // 0 הס 9118 // הסנת 05 2482655 //‏ ,מף!אשטסע0ע0סה502נסק1 האסמק פסה 60 0180805 0% // 0 אש | / 00 ספסום 8 הפונקציה ז19חו5618970 מקבלת את הפרמטרים שמתוארים בטבלה 17.10 טבלה 17.10: הפרמטרים שמקבלת הפונקציה 667ח5645116001. פרמטר תיאור 6 | מוהה את הקובץ אשר הפונקציה עומדת להעביר את. המצביע שלו. ידית הקובץ חייבת להיות בעלת גישה סתפח 6688816 או פד1ו 658816 לקוב. 0 0ד66ח3ומום 1 | מגדיר את מספר הבתים שהמצביע צריך לעבור. ערךך חיובי גורס לדילוג המצביע קדימה, וערך שלילי גורס. לדילוג המצבוע לאחור. פרק 17: קלט/פלט בחלונות = 495 פרמטר תיאור סוד ח!פוסק || מצביע למילת הסדר הגבוה של המרחק בן ה- 64 סייביות. ח | שצריך להעביר. אם הערך של פרמטר זה וטא 91ז0ו56171/600 יכולה לעבוד על קבצים שגודלם המקסימלי מניע ל-[2-2%). אס מגדירים פרמטר זת, גודל הקובץ המקסימלי מגיע ל-(2- *2). פרמטר זה מקבל גס כן את מילת הסדר הגבוה של הערך החדש של. מצביע הקובץ. 6חו6ופצסואוום | מגדיר את נקודת ההתחלה לתזוות מצביע הקובץ. פרמטר זה יכול להיות אחד הערכים שמפורטים בטבלה 171 יש מספר שיטות שונות שאפשר להורות ל-05ס0ח/ להשתמש בהן, כדי להזיו את מצביע הקובץ למקום רצוי. טבלה 17.11 מפרטת את הערכים המובנים של שיטות העברת מצביע הקובץ. טבלה 17.11 שיטות העברה אפשריות עבור ז46ח561711601. פרמטר תיאור 88618 ₪115 | נקודת ההתחלה היא אפס, או התחלת הקובץ. אם הפרמטר 8861 ₪15 מוגדר, הפונקצייה מפרשת את 06 610חמטפופו כמקום שאינו מסומן (6חפפח) עבור מצביע הקובץ החדש. דאפהנ 15 | הערך הנוכחי של מצביע הקוב הוא נקודת ההתחלה. סא= ₪115 | סוף הקובץ הנוכחי הוא נקודת ההתחלה. אם הפונקציה ז06חו5615/670 מצליחה, היא מחזירה את ערך הסדר הנמוך של המילה. הכפולה של מצביע הקובץ החדש; ואם ח0ַזשסוו0ד69חמזפוסק! אינר .04א, הפונקציה. מציבה את ערך הסדר הגבוה של המילה הכפולה של מצבוע הקובץ החדש במשתנה. מסוג / אס שמוצבע ‏ על ידי פרמטר ‏ וה. | אם הפנקציה | נכשלת ו-0/071600ו070המ51וק!. הא 01א, הפונקציה מחדירה חפ אס. אם הפונקציה נכשלת ו- חטטוושוטוסד9סחמזפוסקו אינר 1א,, הפונקציה מחזירה אס והפונקציה ז710ש051 668 מחצירה ערך שונה מ- הסתהם. סא אינך יכול להשתמש בפונקציה ז9וחו5615/600 עס ידית להתקן שאינו תומך בחיפוש. 669 חַחו5696-חס)), כמו צינור, או התקן תקשורת. כדי לקבוע את סוג הקובץ עבור 6 השתמש בפונקציה 5קץ66:5/61. צריך להיות והירים כאשר קובעיס את מצביע הקובץ ביישוס מרובה מטלות. יישום אשר המטלות שלו משתתפות בידית קובץ, מעדכנות את מצביע הקובץ, וקריאה מהקובץ חייבת להשתמש באובייקט קטע קריטי 09600 560000 0631ז0) אר אובייקט מוטציה 09960 אסוט!), כדי להגן על עדכוך מצביע הקובץ. 6 321חווו ומבוא ל-ספו כאשר ידית הקובץ ₪6 נפתחת עם הדגל 809988106 .00 186 6115 היישום יכולל להעביר את מצביע הקוב למקומות שמיושרים לגבולות סקטורים (0פַח8ָ/50001-8 05סו/05ק) בלבד. מקום שמיושר לגבול סקטור מיוצג על ידי מספר שלם בכפולות של גודל הסקטור. היישום יכול לקרוא לפונקציה 6610/847/095369 כדי להשיג את גודלל הסקטור. אם יישום קורא ל- 5669006 עס ערכי מרחק שצריך לדלג אליהם. ושאינם מיושרים לגבולות סקטור, ועם ידית שנפתחה על ידי התוכנית במקור עם 6 סו 16 115 - הפונקציה נכשלת, והפונקציה 661350810 מחזירה. דוה הק השא הסה 6% הערה: הפונקציה זפוחוסק5616 דומה לפונקציות 566%! ו- 188008 7 הפונקציה 11861!6/ לכתיבה לקובץ התוכניות פותחות קבצים באמצעות הפונקציה 6/63198/6. אס יצרת קובץ עם גישה לכתיבה, התוכנית יכולה אחר כך להשתמש בפונקציה 6אז/ כדי לכתוב נתונים. לקובץ זה. פונקציה זו מתוכננת לפעולות סינכרוניות ופעולות אסינכרוניות. הפונקציה. מתחילה לכתוב נתונים לקובץ מהמקום שמוצבע על ידי מצביע הקובץ. כשהיא מסיימת את הכתיבה, היא מעדכנת את מצביע הקובץ במספר הבתים הממשי שכתבה, מלבד במקרה שהקובץ נפתח עם ספקקא 36.08 1 115א. אס יצרת את ידית הקוב. עבור קלט ופלט (0/0 חופפים, היישוס חייב לעדכן את מקוס המצביע לאחר סיום. הכתיבה. את הפונקציה 6 פזוז כותבים בתוכניות כמו בהגדרה שלהלן 00 1 6 165פא 50 1116 0: ש1בממת // ,גנפה שנסאתט 16 50 1:6עש 0: 62% 60 צסמהנסק // 1 100 18 0+ פפפעמ 01 עסעחטם // ,1:6ע505200/ם5סמשממנמות סהסאוםם 5 עסמחטם 50 עבמה1ס // ,ה156:א5ם:עם?20סממטאק1 פהסאסק1 ףופא פפטעם // שעמססגופ0פ 0= עשוה1סם // 864 נעסטסק1 ספפקתנתמשסק 1 0 פסה נפשטס 508 66668ה // לו הפונקציה 616 מקבלת את הפרמטריס שמתוארים בטבלה 17.12. טבלה 17.11: הפרמטרים שמקבלת הפונקציה 165116ז/4. פרמטר תיאור | מזהה את הקוב שהפונקציה עומדת לכתוב בו. ידיתת הקובץ חייבת להיות בעלת גישה 6ד81//ו 658816 לקובץ. פרק 17: קלט/פלט בחלונות = 497 פרמטר ו 08 רות 1 0 ו 8 הכהו ומבוא ל-ספו תיאור עבור פעולות כתיבה אסינכרוניות ב- ד 5ווס6חו), פרמטר זה יכול להיות ידית כלשהי שהפונקציה. 6 פותחת עם הדגל ספקקה הפוס .36 ₪ 11א, אר ידית שקע 506%60) שפונקציות שקע או קבלה 60900 מחזירות. עבור פעולות כתיבה אסינכרוניות ב- א9 פאוסטחוו, פרמטר זה יכול להיות ידית של משאב תקשורת, חריץ. דואר, או ידית צינור בעל שם, שהפונקציה 0081856 פתחה עס הדגל 0068140060 1.46 6115 או ידית. שקע (506680) שפונקציות שקע או קבלה 60900 מחצירות. אפ פווסטחו\ אינה תומכת בפעולות כתיבה אסינכרוניות בקבצי דיסק. מצביע לחוצץ שמכיל את הנתונים שהפונקציה עומדת. לכתוב לקובץ. מספר הבתים שצריך לכתוב לקוב. שלא כמו במערכת. ההפעלה 5-005וא, מערכת ₪ 005חו/ו מפרשת ערך של אפס כמגדיר פעולת כתיבה של .וא. פעולת. כתיבה .₪01 איננה כותבת בתים כלשהם, אך גורמת לחותמת הזמן (ק3ז5 סוחוד) להשתנות. מצביע למספר הבתים ש-56פאוז/ו כותבת. וח קובעת ערך זה לאפס, לפני שהיא עושה פעולה בלשה או בדיקת שגיאות. אם ערך 6פסב!אסק! הוא )א 005/40 019זסמוחטוזק! ינר יכרל להיות + ש; אם. סו ינ %014, או הפרמטר. )005% 61018פהחטוק! יכרל להות 4טא. אם זו פעולת כתיבה חופפת, באפשרותך לקרוא ל-ו61/80066869/י610 כדי לקבל את מספר הבתים. שנכתבו. אס וו קשור עם יציאת קלט/פלט. מטיימת טזסק חסווסוקוחסס 1/0), באפשרותך לקרוא לפונקציה 600051305/פוח69000וו6080 כדי לקבל את מספר הבתים שנכתב. מצביע למבנה מסוג 00881/40050. הקריאה לפונקציה. צריכה מבנה זה, אס התהליך פותח את ₪6 עם הדגל. טשקל 081 .1.08 115. אפ התהליך פתח את סוה עם הדגל 0068130060 .5/5/46 ו1ה, הפרמטר וטו חייב להיות שונה מ-.1ט%. הוא חייב פרמטר תיאור להצביע למבנה 0088140060 תקף. אם ₪6 נפתח עם. טשקל והש 0 ₪115 ו- הססבוזוסקו הוא ‏ גוא הפונקציה יכול לדווח בצורה לא נכונה שפעולת הכתיבה הושלמה. אס התהליך פתח את 6 עם הדגל. קלקה ופ/. 46 ₪1 15 ו- 6פקב!זסעיספו ינר צוטא, פעולת הכתיבה מתחילה בהיסט (01/960) שמוגדר. במבנה 0/886/42060 ויכול להיות ש- 6 פזוזו תחצור לפני שמערכת ההפעלה תסיים. את הכתיבה. במקרה כזה, !+ מחזירה 5156 והפונקציה ז0ז69125151 מחזירה. 6אזסאפק -10 8808 השימוש בקלט/פלט חופפים. מאפשר לתהליך הקורא להמשיך בעיבוד בזמן שמערכת ההפעלה מטיימת את הכתיבה. מערכת. ההפעלה קובעת את האירוע שהגדרת במבנה. ספקקא 0681 למצב מסומן בעת שהיא מסיימת את הכתיבה. אס התהליך לא פתח את פוה עם הדגל. טשקל 051 .0 ₪115 ו- הססבוזסוסקו הוא. גוא הכתיבה מתחילה במקום שבו המצביע מוצב בקוב. הנוכחי ו- 6פזוזא אינה חוורת עד שמערכת ההפעלה. מסיימת את הפעולה. אס התהליך לא פתח את פוה עם הדגל. ספקקה 068 46 1 15 ו- 66קקב!זסעספו ינר צוטא, הכתיבה מתחילה בהיסט שאתה מגדיר במבנה. ספקקה ופוס ו- !ופטחו אינה חוורת עד שמערכת. ההפעלה מסיימת אאת הכתיבה. אם הפונקציה 6!פווזו מצליחה, הערך המוחזר שונה מאפס; אם היא נכשלת, הפונקציה מחזירה אפס. אס תהליך אחר נועל חלק מהקובץ ופעולת הכתיבה חופפת. את החלק שננעל, הפונקציה נכשלת. אסור שיישומים יקראו יכתבו בחוצץ פלט בעת פעולת כתיבה, אלא רק לאחר שהכתיבה מסתיימת. גישה אל הנתונים שבחוצץ הפלט. לפני סיום הכתיבה שלהם, יכולה לגרום להשחתת הנתונים שנכתבים מחוצ זה. באפשרות התוכניות להשתמש ב-6ופאוזו עם ידית לפלט קונסול, כדי לכתוב תווים. אל חוצץ המסך. מצב העבודה של הקונסול קובע את התנהגות הפונקציה במדויק. הנתונים נכתבים אל מקום הסמן הנוכחי, ומערכת ההפעלה מעדכנת את מקום הסמן בסיום הכתיבה. שלא כמו במערכת ההפעלה 5-005א, מערכת 101 0005ו// מפרשת. הוראה לכתוב אפס בתים, כפעולת כתיבה מסוג 1שז, ואו 6|פאוז אינה מצמצמת. פרק 17: קלט/פלט בחלונות | 499 או קוטמת (טוגסחטזז) או מרחיבה את הקובץ. כדי לקטום או להרחיב קובץ השתמש בפונקציה 6ו501506015. כאשר יישום משתמש בפונקציה שוחו כדי לכתוב לצינור, פעולת הכתיבה עלולה לא להסתיים אם חוצץ הצינור מלא. במקום ואת, הכתיבה מסתיימת כאשר הקריאה. (על ידי הפונקציה 86308/6) מגדילה את החוצ. אם התהליך סגר כבר את ידית ציגורר הקריאה האנונימי 06(‏ ₪630 פטסוחץחסחה) ו-7086/ מנסה להשתמש בידית המתאימה. לצינור הכתיבה האנונימי כדי לכתוב, הפונקציה מחזירה 5856 ו-351501 60 מחצירה שק1ק ‏ אפאסהם ,הסתהם הפונקציה סופווזו עלולה להיכשל ולהחציר הט הפ5ט סזואשאז הסמה אר +הסוופוי ₪06 דסא הסחהם בכל פעם שדרישות קלט/פלט אסינכרוניות רבותת ממתינות. כדי לבטל את כל פעולות קלט/פלט האסינכרוניות הממתינות, השתמש. בפונקציה 63066110. פונקציה זו מבטלת רק את הפעולות שהמטלה הקוראת לידית. הקוב המוגדרת מטפלת בהן. פעולות קלט/פלט שמבטלת מערכת ההפעלה כתוצאה מקריאה ל- 6306110 מסתיימות עס הודעת השגיאה 80816 סד הפק ₪0ה5. אס אתה מנסה לכתוב לכונן דיסקטיס שאין בו דיסקט, המערכת מציגה תיבת הודעה שמודיעה למשתמש לנסות לחזור על הפעולה. כדי למנוע מהמערכת להציג תיבת הודעה זו, צריך לקרוא לפונקציה 5618101006 עס 080 סקסא 50%. אם 6 הוא ידית לצינור בעל שם, האיברים 0/6 ו- ח06600066. של המבנה ספקק הפעס שמוצבע על ידי 66פקטווסק! חייבים להיות אפס, או שהפונקציה נכשלת. התקליטור שמצורף לספר זה מכיל את התוכנית 16 ואו (בתיקיה 8008559285). אשר פותחת את הקובץ :86.03 וכותבת מחרוזת לקוב כאשר התוכנית מתחילה. כאשר המשתמש בוחר 1950, התוכנית כותבת שורת טקסט נוספת לקובץ, ואחר כך מציגה את שתי שורות הטקסט בתיבת הודעה. 8 הפונקציה ₪630-1!6 לקריאת קובץ התוכניות משתמשות בפונקציה 6ופווזאו כדי לכתוב לקובץ, ובאופן דומה, הן משתמשות בפונקציה ₪6368/6 כדי לקרוא מקובץ. הפונקציה 68086 שקוראת נתונים מקובץ, מתחילה לקרוא מהמקום שמוצבע על ידי מצביע הקובץ. אחרי שהפונקציה 893056 מסיימת את הקריאה, מערכת ההפעלה מעדכנת את מצביע הקוב במספר הבתים שנקראו בפועל, אלא אם כן התהליך יצר ידית הקוב עם מאפיץ חפיפה. אם התהליך יוצר את ידית הקובץ עבור קלט ופלט (0/ חופפים, היישוס חייב לעדכן את המקום של מצביע הקובץ לאחר סייום הקריאה. את הפונקציה. כותבים בתוכניות כמו בהגדרה שלהלן 00 84 60 118? 05 ש1במממ // ,6נצפת שנסאתט 0 321חווו ומבוא ל-ספו וט ע50פטמ 08 282088 // 1 100 00068+ // 2684 10 8ש6עם 05 עסעמטה //‏ ,620ת2/65510+סעשממנמות סהסאםם 8 מסעמטה 05 282688 //‏ ,058580:עמ208סממטוק1 תמסאסק1 + פשמצמ /] טסט 80 08 2889088 // פמ פסטספ1 ספפקת הפס 1 צ0? // / הפונקציה ₪606 מקבלת פרמטרים והים לפרמטרים של הפונקציה 6וחשואו שמפורטים בסעיף קודם, פרט לכך שהפונקציה 8808/65 מצפה לפרמטר 0זסטוחטח במקום: הפרמטר 0181951068זפפוחטואח,. ומחזירה את הפרמטר 958636ע018זסטחטא/! במקדם הפרמטר ח06/ו/1951ץ08?ספוחטאקו. הפרמטר. טאה מגדיר את מספר הבתיים ש-86305/6 צריכה לקרוא מהקובץ. הפרמטר 0ג0!8/00586זפטוחטאזק! מצביע למספר הבתים שנקראו. 863086 קובעת ערך. וה לאפס לפני שהיא עושה פעולה כלשהי, או בודקת שגיאות. אם הפרמטר וק שווה לאפס כאשר 863096 מחזירה פטזד בצינור בעל שם, הצד השני של מצב ההודעה בצגור ‏ קורא לפונקציה 06 עם שנקבע לאפס. אס 66קקבוזטיסקן שווה ל-01), 0186058886וספוחטאק! אינר יכול להיות 4שא. אם. 6קקבוזסצסק! איגר -801, אד 058686ץ8!סזפטוחטאק! יכול להיות 4א. אפ זר פעולת. קריאה חופפת, באפשרותך לקרוא ל- 6600%6800608990/6 כדי לקבל את מספר הבתים שנקראו. אם 6 קשור ליציאת קלט/פלט משלימה טזסק חסטטוקוחס6 0/0, באפשרותך לקרוא ל- 60005805ק0ח06000נו6600 כדי לקבל את מספר הבתים שנקראו. אס 6וזח נפתח עם ספקק |הפטס 1 = 1זה, אך 66פקבוווספו אינר ‏ )וש פעולת. הקריאה מתחילה בהיסט שאתה מגדיר במבנה ספקק הפעס. הפונקציה 8636506 עשויה לחזור לפני שפעולת הקריאה הסתיימה. במקרה כזה, 863086 מחצירה 95 והפונקציה ז0זז66:3915 מחזירה 6אזסוופק 10 הסהחש. דבר וה מאפשר לתהליך הקורא להמשיך בטיפול בזמן שפעולת הקריאה מסתיימת. מערכת ההפעלה קובעת את. האירוע שהגדרת במבנה 08810060 למצב מסומן כאשר הקריאה מסתיימת. אס וח לא נפתח עם ספקק 01 .₪1 5 1ז=, אך 6קקבוזסקו הוא: 11ש', פעולת. הקריאה מתחילה במקום שמוצבע בקובץ הנוכחי, ו-863086 אינה חוזרת עד שפעולת. הקריאה מסתיימת. אם התהליך לא פתח את 6ח עם ספקקא והס/0 16 פוה ור סקטמווטצסקו אינר 4ש, פעולת הקריאה מתחילה בהיסט שאתה מגדיר במבנה ספקקה 1הש/וס. הפונקציה 888086 אינה חוורת עד שמערכת ההפעלה מסיימת את הקריאה. פרק 17: קלט/פלט בחלונות ‏ 501 כשהפונקציה ₪6308/6 מצליחה, הערך המוחזר שונה מאפס. אם הפונקציה מחזירה ערך שונה מאפס ומספר הבתים שנקראו שווה לאפס, פירוש הדבר שמצביע הקובץ עבר את הסוף הנוכחי של הקובץ בומן פעולת הקריאה. אך אס התהליך פתח את הקובץ עם. ספקקא וחפוס 6 ו וז ו- טפמבחפטסקו אינר 04!, הערך המוחזר של הפונקציה הוא 156 ו- זסז9ופה 66 מחצירה 60 = וסואו הש כאשר מצביע הקוב מגיע מעבר לסוף הנוכחי של הקובץ. אם הפונקציה נכשלת, הערך המוחזר של הפונקציה. הוא אפס. חוזרת כאשר אחד מהדברים שלהלן מתקיים (שטזז): פעולת. כתיבה הסתיימה בקצה הכתיבה של צינור, מספר הבתים שצריך לקרוא נקראו כבר, או כשיש. שגיאה. אם תהליך אחר נועל חלק מהקובץ ופעולת הקריאה חופת את החלק שננעל, הפונקציה 86806 נכשלת. היישומים חייבים להימנע מקריאה או כתיבה לחוצ הקלט שפעולת קריאה משתמשת בו, עד שפעולת הקריאה מושלמת. גישה לפני הזמ אל חוצץ הקלט עלולה לגרום להשחתת הנתונים שנקראו מחוצץ זה. אפשר לקרוא תווים מחוצץ הקלט של הקונסול על ידי הפונקציה 863086 עם ידית לקלט הקונסול. מצב העבודה של הקונסול קובע את התנהגות הפונקציה 863086 במדויק. אם התהליך קורא מצינור בעל שם במצב הודעה, וההודעה הבאה בתור ארוכה יותר מהערך שמוגדר ב- 0510630)ץ0/8זפטוחטאח, הפונקציה 863686 מחזירה 896 והפונקציה ז0זזש69%1250 מחצירה אדא 085 68808. קריאה עוקבת ל- 863086 אר לפונקציה פוקטטוח8א606ק עלולה לגרום לקריאת שארית ההודעה. כאשר אתה קורא מהתקן תקשורת, פסקי הומן הנוכחיים (שנקבעו והתקבלו על ידי הפונקציות 5 ססוחודוחוה56600 ו-9טססהחודוחוח6%00) שולטיםו בהתנהגות הפונקציה 86806 תוצאות שאי אפשר לצפות להן מתרחשות אם אתה נכשל בקביעת ערכי פסק הזמן. אס 863086 מנסה לקרוא מחריץ דואר, אשר החוצץ שלו קטן מדי, הפונקציה מחזירה. 56 והפונקציה ז0זזש)35 66 מחצירה 8פתח 80‏ דאפ1ס1פתט5א1 הסהחם אם התהליך סגר כבר את ידית צינור הכתיבה האנונימי (סטן 4066 פטסוחעחסחה) ו- ₪605 מנסה להשתמש בידית המתאימה לצונור הקריאה האנונימי לקרוא, הפונקציה מחזירה 386 והפונקציה זסוופופג 6 מחזירה פקנק אפאסהם הסההט הפונקציה ₪606 עלולה להיכשל ולהחזיר הפאחט8 6פט סנהשאד הסחהט. אר +הסוופוא. 6טסא=. דסא הסההפ בכל פעם שיש דרישות קלט/פלט אסינכרוניות רבות. שממתינות. התוכנית. ואו אשר הוצגה בסעיף קודם מראה את השימוש בפונקציה ₪60086, + הערה: הקוד הפונקציה 863056 שבודק את תנאי סוף קובץ 600, 0 006 ₪] שונה עבור פעולות קריאה סינכרוניות ואסינכרוניות. כאשר פעולת קריאה סינכרונית מגיעה לסוף קובץ, 863086 מחזירה פד וקובעת את 0/8/0058830זסמוחטאק!. לאפס. כאשר פעולת קריאה אסינכרונית מגיעה לסוף קובץ, הפונקציה 863086 נכשלת ומחזירה 60% = ואו הסה 2 זקא2חווו ומבוא ל-ספו 9 סגירת קובץ השתמשת בידיות קובץ כדי לעבוד עם קבצים מתוך תוכניות פווסשחו. כמו עם שאר הידיות (ידיות זיכרון, או ידיות להקשר התקן), תמיד צריך לסגור את ידית הקוב לאחר שהתוכנית מסיימת את העיבוד. הפונקציה 6105678006 סוגרת ידית פתוחה של אובייקט. את הפונקציה 0056880006 כותבים בתוכניות כמו בהגדרה שלהלן. 606 מס ממפותתא) 01050888816. מססם הפרמטר :0966 מזהה ידית פתוחה של אובייקט. אס הפונקציה מצליחה, הערך. המוחזר שונה מאפס; ואם הפונקציה נכשלת, הערך המוחזר הוא אפס. באפשרותך להשתמש בפונקציה 0090/2066 כדי לסגור. ידיות של האובייקטים הבאים + קלט או פלט קונסול טטקוטס ז0 זשפח1 6ו90ח0ס). 3% קובץ אירוע (6/ חספ מיפוי קוב (פחופבוא 516 מוטציה (6ז). צינור בעל שם (6פןל 6פחחהו!). תהליך (06655זק). + סמפור (816וח50). מטלה (360זחד) + חפאסד (רק ב- ד 05 הפונקציה 0056118006 מבטלת את תקיפות ידית האובייקט המוגדרת, מפחיתה אחד. ממונה ידית האובייקט ומבצעת בדיקות סגירה לאובייקט. לאחר שהתהליך סוגר את. הידית האחרונה של אובייקט, מערכת ההפעלה מסירה את האובייקט מטיפול מערכת. ההפעלה. הפונקציה 6105678006 אינה סוגרת אובייקטי מודול. סגירת ידית שאינה תקיפה גורם לפתיחת מצב חריג (חסק6א5). הדבר כולל סגירת הידית פעמיים, אי בדיקת הערך המוחזר וסגירת ידית שאינה תקפה, וניסיון להשתמש ב-010561800/6 עם. ידית שהוחצרה על ידי 505₪6וה0חה. % הערה: השתמש בפונקציה 005678066 כדי לסגור ידיות שהוחזרו על ידי הפונקציה 6ו66309%. השתמש ב- 100056 כדי לסגור ידיות שמוחזרות על ידי הפונקציה 556ז0חו=. פרק 17: קלט/פלט בחלונות = 503 0 שיתוף נתונים עם מיפוי קבצים מיפוי קבצים סקוו 5/6) הוא העתקה של תכולת הקוב אל מרחב הזיכרון הווירטואלי של התהליך. כאשר ממפים קובץ, ההעתק תכולתו ידוע בשם תצוגת הקובץ (ופו 6/₪), והמבנה הפנימי שהתוכנית משתמשת בו להחוקת ההעתק ודוע בשם אובייקט מיפוי קובץ 00660 חַקְָו-6). כדי לשתף נתונים, תהליך אחר יכול. להשתמש באובייקט מיפוי קובץ של התהליך הראשון, כדי ליצור תצוגת קובץ והה במרחב הזיכרון הווירטואלי שלו. דוגמה שכיחה לשיתוף נתונים בין תהליכים. היא חילוף נתונים דינמי (סס, 36 3זהס-6וחמחץם) וייהאח הצעיר שלויי, קישור והטבעת אובייקטים (0, 56 שחת הַהאח0[601-1). ב- 95 5אוסחוו וב- ד! פווסשחו//י, היישומים צריכים. להשתמש במיפוי קבצים. היישומים אינם וקוקים לקובץ ממשי בכדי למפות אותו בויכרון. היישום יכול להגדיר ערך 0966558 עבור ידית הקובץ בעת קריאה לפונקציה פַחוֶּק7ג6/63)0%/6%, ואז הפונקציה תמפה לזיכרון תצוגה של קובץ הדפדוף. 6 פס של מערכת ההפעלה. בסעיף הבא תמצא הסבר מפורט אודות ו כאשר ממפים קובץ בויכרון, התוכניות יכולות למעשה לגשת לנתונים שבו, כאילו הקובץ היה מערך; ומכיון שכך, הן גם יכולות להשתמש בערכי אינדקסים ומצביעים. כדי לגשת לאיברי הקובץ, כמקובל במערך. 1 מיפוי קובץ בזיכרון הווירטואלי התוכניות ממפות קבצים במרחב הציכרון הווירטואלי של התהליך, מכיון שהדבר מאפשר להן לגשת לנתוני הקבצים בצורה יותר יעילה ומהירה. כאשר רוצים למפות קובץ לזיכרון, התוכניות צריכות להשתמש בפונקציה 61630906 כדי ליצור אובייקט מיפוי קובץ 09600 חַופ18א-6ה) עם שם או בלי שם, עבור הקובץ המוגדר. את הפונקציה חַּקַ01631951/0%5 כותבים בתוכניות כמו בהגדרה שלהלן 7 הררה כ 50 116? 05 ש1בממה // ,6ננפת שנסאתט פנסאתט ו68פטמ1עםףהטה1מספאםנופק1 פמדטמנהצצת צפנתטסםפק1 =שפטמ1עפ86 ע15צ000 [בה10צסס // 06[מס שפח עס! ה0610םט0צק // 100 סהסאום ש06פס-180ת ,5126 60:'5[מס //‏ ,מ12081פממתואבממאם סהסאום גמ 32 // 100-0206 ,8126 0%'8ש[מס //‏ ,06ם120פממת1אבמאם סהסום 32 6 שת1קמפה-116 05 חמה // שמבאק1 עלס 1 / 4 ז23פחווו ומבוא ל-ספו הפונקציה ַ(פ98/6/%20ז163) מקבלת את הפרמטרים שמפורטים בטבלה 17.13 טבלה 17.13: הפרמטרים שמקבלת הפונקציה ַחופק01631871/6/43. פרמטר 6 ו ב תיאור מוהה הקוב שצריך ליצור ממנו את אובייקט המיפוי. חייבים לפתוח את הקובץ במצב גישה שמתאים לדגלי ההגנה שמוגדרים על ידי הפרמטר ז6פוסזקח. מיקרוסופט. ממליצה, למרות ש-5או00חו/ אינה מחייבת זאת, שתפתח לגישה בלעדית את הקבצים שבכוונתך למפות. אש וח שווה ל- פאס( וסאה), התהליך. הקורא חייב להגדיר גודל אובייקט מיפוי גס בפרמטרים. 0013350200 (- אוס 50261 הח וחוה0/1. הפונקציה יוצרת אובייקט מיפוי קובץ בגודל שהוגדר על. ידי התהליך הקורא, ואשר נתמך על ידי קובץ הדפדוף. של מערכת ההפעלה, במקום קובץ בעל שם שנתמך על. ידי מערכת הקבצים. תהליכים יכולים להשתתף. באובייקט מיפוי קובץ באמצעות שכפול (חס630וקטפ), ירושה, או לפי שם. מצביע למבנה מסוג 85ד180חדד/ ד550081 אשר קובע אס תהליך בן יכול לרשת את הידית המוחזרת. אם. טסוק 1/פ!ולקו הוא -0א, תהליכי ב אינם. יכולים לרשת את הידית. מגדיר את ההגנה שאתה מבקש עבור תצוגת הקוב), כאשר הקוב ממופה ; האפשרות א0ס פה אק מיועדת לגישת קריאה בלבד אל אזור הדפום. המשוריינים סק ₪066ווחוחס6). כוונה כלשהי לכתוב. או להפעיל את האזור המשוריין (חסוס86 00/66 גורמת לשגיאת גישה (חסו3וס 460855). הקוב אשר מוגדר על ידי הפרמטר 6 חייב להיווצר עם גישה מסוג 850 65%8816. האפשרות 50/8116 766 מיועדת לגישת קריאה. וכתיבה לאזור הדפים המשוריינים. הקוב שמוגדר על. ידי הפרמטר ₪6 חייב להיווצר עם גישות מסוג פה 656816 ו- פדזפו 16 אס האפשרות /60פז1ה/ 766 נותנת העתק בעת גישת. כתיבה לאזור הדפים המשוריינים. הקבצים שמוגדרים. על ידי הפרמטר 19/6 חייבים להיווצר עם גישות מסוגג סאפ 6685816 ו- סדנה/ו 65%6816. בנוסף לכך, פרק 17: קלט/פלט בחלונות = 505 פרמטר 0 ו ו מתוך טבלה 17.13 למדת ש; או יותר ממאפייני הקטע, כ; תיאור באפשרות היישוס לצרף (על ידי אופרטור הסיביות 08 ערך אחד או יותר מערכי מאפייני הקטע (5661000 פטטסוטוא) שמפורטים בטבלה 17.14 אל אחד משלושת סוגי הגנת הדף שמנינו עד עכשיו, כדי להגדיר מאפיוני קטע מסוימים. מגדיר את ערך הסדר העליון בן 32 סיביות של הגודל. המקטימלי של אובייקט מיפוי הקוב). מגדיר את ערך הסדר הנמוך בן 32 סיביות של הגודל. המקסימלי לאובייקט מיפוי הקובץ. אס פרמטר זה. והפרמטר חח 5וחטחזואהוא/ו0 שווים לאפס, הגודל. המקסימלי של אובייקט מיפוי קובץ שווה לגודל הקוב הנוכחי שמוגדר על ידי הפרמטר פווח. מצביע למחרוזת המסתיימת ב-1!א אשר מגדיר את. שם אובייקט המיפוי. השם יכול להכיל כל תו מלבד התו לוכסן הפוך (0). אם פרמטר זה חופף לשם קיים של אובייקט מיפוי, הפונקציה דורשת גישה לאובייקט. המיפוי עם ההגנה שמוגדרת על ידי 066זק0. אם. פרמטר זה הוא 11א, הפונקציה יוצרת את אובייקט. המיפוי בלי שם. ואפשר לצרף את ערכי הגנת הדף עבור הקובץ עם ערך אחדד מו שמוצג בטבלה 17.14 טבלה 17.14: הערכים של הגנת הדף עבור מיפוי קוב בזיכרון. ערך וס 560 ב ב תיאור מקצה אחסון פיסי בזיכרון או בקובץ הדפדוף שבדיסק. עבור כל הדפים שבקטע. זוהי ברירת המחדל. הקובץ שאתה מגדיר עבור קטע מיפוי קובץ הוא קוב תמונה בר- הפעלה (6/₪ 6טָ5חז1 0/6מ01ס5). מפנר שמידע המיפוי והגנת הקוב נלקחים מקוב התמונה, מאפיינים אחרים אינס תקפים עם 1466 58. הפונקציה קובעת שכל הדפים של קטע הם ללא מטמון. ב- 80486 ומחשבי 175, השימוש במטמון למבנים אלה מאיט את הביצוע, ככל שהחומרה שומרת על עדכון המטמון. חלק ממנהלי ההתקנים דורש נתונים ללא: מטמון, כך שתוכניות יכולות לכתוב דרך הציכרון הפיסי. 0036106 .566 דורש לקבוע את 8656805 586 א דו1ו60. 556 כדי שיהיה אפשר לקבוע אותר 6 זא32חווו ומבוא ל-ספו עוך תיאור ₪555 586 | שומר את כל הדפים של קטע, מבלי להקצות אמצעי אחסון פיסי. פעולות הקצאה אחרות כלשהן אינן יכולות. להשתמש בתחום הדפים המוקצה, עד שהוא משוחרר. באפשרות היישום לשריין דפים מוקצים על ידי קריאות. עוקבות לפונקציה 6סוטטזו. תכונה ואת תקפה רק אם הפרמטר וח שווה ל- סאהו)דפקפקקאס כ כלומר, אובייקט מיפוי קבצים שנתמך על ידי קוב. הדפדוף של מערכת ההפעלה. כאשר הפונקציה מצליחה, הערך המוחזר הוא ידית לאובייקט מיפוי קונץ. אם האובייקט הממופה קיים לפני הקריאה לפונקציה, הפונקציה ז0זז5/ג6601 מחזירה. 5 +סתפהא .הסההם, והפונקציה מחזירה ידית תקפה לאובייקט מיפוי הקובץ. הקיים (עם הגודל הנוכחי שלו, לא הגודל החדש המוגדר). אם אובייקט המיפוי אינו קיים, ז0ז/69%/3%15 מחזירה אפס. אם הפונקציה נכשלת, היא מחזירה א. אחרי שתהליך יצר כבר אובייקט מיפוי קובץ, גודל הקובץ חייב להיות קטן מגודל אובייקט מיפוי הקונץ; אס כך המצב, לא כל תכולת הקובץ תהיה תקפה לשימוש משותף של היישומים. אם היישום מגדיר גודל עבור אובייקט מיפוי קוב שמעבר לגודלו הנוכחי של הקובץ בדיסק, 5ווס6חו מגדילה את הקובץ בדיסק כדי שיתאים. לגודל שהוגדר לאובייקט מיפוי הקובץ. לידית שמוחזרת על ידי הַחפק016816%!6%18 יש. גישה מלאה לאובייקט מיפוי הקובץ. באפשרות היישום להשתמש בידית עס כל פונקציה שדורשת ידית לאובייקט מיפוי קובץ. שיתוף תהליכים יכול להיות באובייקט. מיפוי קבצים, דרך יצירת התהליך, על ידי שכפול הידית, או לפי שם. 6% הערה: תחת 9% פאוס6חו/ו, אסור להשתמש בידיות קבצים אשר השתמשת בהן, כדי ליצור אובייקטי מיפוי קבצים בקריאות הבאות לפונקציות קלט/פלט, כמו 8690806 ו-₪096ו/ | ככלל, ‏ אם השתמשת בידית | קובץ ‏ בקריאה שהצליחה ‏ לפונקציה 1031000180 אל תשתמש שוב בידית זו, אלא אם קודם אתה סוגר תחילה את אובייקט מיפוי הקובץ המתאים. יצירת אובייקט מיפוי קובץ יוצרת את הפוטנציאל למפות תצוגה של הקובץ, אך אינה. ממפה את התצוגה. הפונקציות 06/0756פו ו-א601585ו%קפו ממפות. תצוגת. קובץ במרחב הזיכרון של התהליך. ויש יוצא מן הכלל: תצוגות קוב שנגזרות מאובייקט מיפוי קובץ יחיד הן עקביות טחשזסחסס) בומן נתון. אם יש לתהליכים רבים ידיות של אותו אובייקט מיפוי קובץ, הס רואים תצוגה עקבית של הנתונים כאשר הם ממפים תצוגת קובץ. היוצא מן הכלל. מתייחס לקבצים מרוחקים (65/ 8ז0וח6ה). למרות ש-חַחופ16319/60%30) פועלת עם. קבצים מרוחקים, היא אינה שומרת על עקביות שלהם. לדוגמה, אם שני מחשבים. פרק 17: קלט/פלט בחלונות = 507 ממפים קובץ כמי ניתן לכתוב בו ושניהס משנים את אותו דף, כל מחשב יראה רק את. הכתיבה שהוא עשה בדף. כאשר הנתונים מעודכנים בדיסק, מערכת ההפעלה אינה ממוגת את הנתונים. כמו כן, קובץ ממופה וקובץ אשר פונקציות הקלט/פלט 60 ו- 0/0686 ניגשות אליהם, אינם בהכרח עקביים. כדי לסגור ‏ באופן ‏ מלא אוביוקט מימוי קבצים, היישום חייב לקרוא ל- 6ו08אופועקוחחט כדי להפסיק את כל מיפויי התצוגה של אובייקט מיפוי הקוב, ולקרוא ל- 0105611906 כדי לסגור את ידית אובייקט מיפוי הקובץ. הסדר שבו יישוס. קורא לפונקציות אלו אינו משנה. יש צורך בקריאה ל- 60/₪6קפוחח. מפנר שתצוגות ממופות של אובייקט מיפוי קוב מחויקות ידיות פנימיות פתוחות. לאובייקט, ואובייקט מיפוי קובץ אינו נסגר עד שהתהליך סוגר את כל הידיות הפתוחות של אובייקט מיפוי הקובץ. 2 מיפוי תצוגת קובץ אל התהליך הנוכחי כשתוכניות יוצרות אובייקט מיפוי קובץ, הן חייבות למפות את הקובץ באובייקט. כדי לעשות ואת, הן משתמשות בפונקציה 016אווקפ!. פונקציה זו ממפה תצוגת קובץ. במרחב הזיכרון של התהליך הקורא. את הפונקציה 1800156 כותבים בתוכניות כמו בהגדרה שלהלן ) 118ע5סאם 1/ממוו פצסטט פומ הַמקצה-114? // ,05ש[מספַת1מקגעסננעת םנכות 8 8082085 סמה3 ספה 60 // 0 26006580 651פאם סהסאום 1% 32 198-05665ת // 0 סו 5416 05 6 1118 05 158מ 32 ע86עם-10 // סו מגת 50 ממעם 01 עסמחטת // ,0820/20 :ץ055:סמתטואם פהסאום / הפרמטר שס6ְְַספָחוקְקֶמוופוח מציין ידית פתוחה של אובייקט מיפוי קובץ. הפונקציות. 0161070 ו- הו בס!חספס מחוזירות ידיתת זו. הפרמטר 0/009100860055. מגדיר את סוג הגישה לתצוגת הקובץ ולמעשה, את הגנת הדפים שהקוב ממפה. פרמטר זה יכול להיות אחד הערכים שמפורטים בטבלה 17.15. הפרמטר חאַ00/160165603 מגדיר את ערך הסדר העליון בן 32 סיביות של היסט הקוב בנקודה שבה המיפוי מתחיל; והפרמטר ,4ס:61/60/69681 מגדיר את ערך הסדר. הנמוך בן 32 סיביות של היסט הקוב במקום שבו המיפוי מתחיל. הצירוף של ההיסט. הגבוה ושל ההיסט הנמוך חייב להגדיר היסט בקובץ שתואם לצורת הקצאת הזיכרוך של המערכת, או שהפונקציה תיכשל. כלומר, ההיסט חייב להיות כפולה של יחידת 8 כו ומבוא ל-ספו ההקצאה (8 בתים, או 26 בתים). הפרמטר 0גו1018/06510טוחטוא/ו6 מגדיר את מספר הבתים של הקובץ שצריך למפות, ואם הוא שווה לאפס, מערכת ההפעלה ממפה את כל. הקוב. טבלה 17.15: הערכים האפשריים עבור הפרמטר 0/0651760866655. עוך פירוש מדנחע להוא 115 | גישה לקריאה-כתיבה. הפרמטר קשוה חייב להיות עם ההגנה פדזה/וס ₪ 65אק. מערכת. ההפעלה ממפה את תצוגת הקריאה-כתיבה של הקוב. סאפ קוו 15 | גישה לקריאה בלבד. הפרמטר 86נסטַהוקקמואטווחת חייב להיות עם ההגנה ןאפה 765 אר אס הפה 265 מערכת ההפעלה ממפה את תצוגת. הקריאה בלבד של הקוב. 5 וא קמ וז | כמו דנה לגו = וזה +60 קהוין או | העתק בגישה לקריאה. א יצרת את המיפוי עם: ץ00פד1ח/ו. 7868 ואת התצוגה עם יקס קהו שו אתה מקבל תצוגה אל קובץ. אס אתה כותב בקוב, הדפים מוחלפים אוטומטית (פעולת סאא5), וחשינויים שתעשה לא יועברו לקובץ המקור. תחת 9% 05חווא, אתה חייב למסור את הפרמטר %ק660דהו 66 לפונקציה הַוּק9%05ו6163195; אחרת, 5ו00 הא מחצירה שגיאה. תחת ד 05ח1/, אלן שו מגבלה. לדרך שבה אתה חייב ליצור את הפרמטר פְַספָקְקֶ6%15ו1ח. העתק כתיבה תקף לכל סוג תצוגה כלשהו. אס אתה משתמש ב- 6319%8006ו1מם. או 9ח1ק316%30חסקס כדי לשתף במיפוי תהליכים. רבים, ותהליך אחד כותב לתצוגה, השינוי משתקף גם. בתהליכים אחרים. הקוב המקורי אינו משתנה. אם הפונקציה מצליחה, הפונקציה מחזירה את כתובת ההתחלה של התצוגה הממופה; אם הפונקציה נכשלת, הפונקציה מחזירה +א. מיפוי קובץ גורס לחלק הממופה של הקובץ להיראות במרחב הזיכרון של התהליך הקורא. התקליטור שמצורף לספר וה מכיל את התוכנית. קק8!א 588016 (בתיקיה 5, תוכנית זו יוצרת קובץ מיפוי בויכרון כאשר היישוס מתחיל. כאשר המשתמש בוחר באפשרות !1650, התוכנית ממפה תצוגה לקובץ וממקמת את הנתונים. בויכרון. אחר כך היא יוצרת מטלה וממתינה לקוצב הזמן (זפוחוז) שלפיו המטלה תשנה את הנתונים. המטלה משתמשת בנתונים כדי להציג תיבת הודעה וממקמת את המחרוות "ספא בזיכרון הממופה כאשר המשתמש סוגר את תיבת ההודעה פרק 17: קלט/פלט בחלונות = 509 כשהתוכנית מקבלת את ההודעה חפווזד וא//ו, היא בודקת כדי לראות אס המטלה מיקמה את המחרוות בויכרון הממופה, או לא. אם כן, התוכנית מפסיקה ומסיימת את המטלה ואת קוצב הזמן ומודיעה למשתמש על כך. 3 פתיחת אובייקט קובץ מיפוי בעל שם התוכניות משתמשות בפונקציה הַפ96/%80ז03ז0 כדי ליצור מיפוי קובץ בעל שם, אד ללא שם; ובפונקציה 0/5/6ושקמו - כדי למפות את הקובץ בזיכרון. בתוכניתת קקג!/. 16קוח53 תוכל לראות שמטלה שנייה פותחת את מיפוי הקובץ. במקוס ליצור מיפוי קובץ חדש, המטלה השנייה משתמשת בפונקציה פַקקטואפוחסקס כדי לפתוח. את מיפוי הקוב לשימוש של עצמו. את הפונקציה חַפֶַ919וחסקס. כותבים. בתוכניות כמו בהגדרה שלהלן. 4/0651 תסאם) תקבא ב שתסקס מנפוותה 65116 סטמ ; (פממאק1 תעפפסק 1 הפרמטר 00/20960806095 = מנדיר ‏ את הגישה לאובייקט מיפוי הקובץ. תחת דא פאוסטחו//י, מערכת ההפעלה בודקת את הגישה שיש לפרמטר כנגד כל מתאר אבטחה. כלשהו באובייקט המטרה של מיפוי הקובץ. פרמטר וה יכול להיות אחד הערכים. שמפורטים בטבלה 17.15. הפרמטר 67₪19066חח1פ מגדיר אם תהליך חדש יכול לרשת. את הידית המוחזרת בזמן יצירת התהליך. ערך פטזד מציין שהתהליך החדש יורש את. הידית. הפרמטר טוחגו!ק! מצביע למחרוזת שנותנת את השם לאובייקט מיפוי הקובץ. שהתהליך אמור לפתוח. אם יש ידית פתוחה לאובייקט מיפוי קובץ עם אותו שם, ומתאר האבטחה באובייקט המיפוי אינו מתנגש. עם הפרמטר 6/065006860055, פעולת הפתיחה מצליחה. אם הפונקציה מצליחה, הערך המוחור הוא ידית פתוחה לאובייקט מיפוי הקוב המוגדר, ואם הפונקציה נכשלת, הפונקציה מחזירה +א. באפשרותך להשתמש בידית שמוחזרת על ידי וסקס עם כל פונקציה אשר דורשת ידית לאובייקט. מיפוי קובץ. 4 תכונות קובץ וס חוו מקשרת קבוצה של תכונות קובץ (פפוטטחזזא 6) עם כל קובץ. פאוסטחואר מאתחלת רבים מתכונות הקובץ כאשר יוצרים את הקוב ויותר מאוחר, 6סחוא משנה חלק מתכונות אלו בכל פעס שניגשים לקובץ. כמעט תמיד, אינך רוצה לשנות את. תכונות הקבצים, אלא רק לקרוא אותם ולהגיב לפי הערכים המוצגים. כמו שלמדת בוודאי במערכת ההפעלה 005, מרבית תכונות הקובץ משתמשות בקביעת דגלים, גודל. קובץ, וחותמת הזמן של קוב (5ק0גז5 סוחוד 6). בסעיפים הבאים בהמשך, ננהל את. תכונות הקובץ וניגש לחלק מהתכונות השימושיות ביותר. 0 321חווו ומבוא ל-ספו 5 קבלה ושינוי של תכונות הקובץ כידוע, פאוס0חוו מצמידה ייתכונות" (פפוטטוזוזא) לכל קוב שיוצרים במערכת ההפעלה. כמו שאפשר לקרוא את תכונות הקובץ עם פונקציות סטנדרטיות של 6, כך גס ממשק קה 5ווסחו מספק פונקציות רבות שאפשר להשתמש בהן כדי לקרוא מאפייני קובץ. הפונקציה 65טט8או)/6645/6 מחזירה מידע מתת-קבוצה של כל התכונות האפשריות. עבור קובץ מוגדר או ספריה/תיקיה. בסעיפים הבאים נדון בפונקציות אחרות שמחזירות תכונות קובץ אחרות, כמו זמן יצירת הקובץ או גודל הקובץ. את הפונקציה. 60151805 כותבים בתוכניות כמו בהגדרה שלהלן. ; (סהפאוס11עכ1 ה57ת150) 8ספטמבעםות115ע06% ספסאום הפרמטר סוחמאסווק! מצביע למחרוזת המסתיימת ב-1א, אשר מגדירה שם קובץ או שם טפריה/תיקיה. תחת דו! פווסטחו/ קיים ערך ברירת מחדל של אורך מחרוזת שם. הנתיב (מוגל), שגודלו ד ו! תווים. מגבלה זו נובעת מהדרך שבה הפונקציה 6618015 מפרשת את הנתיבים. היישום יכול לקרוא לגירסה הרחבה (0//66. של פפוטטוטו6ת661 ולהכניס את יי?\'' לנתיב, כדי לעבור את המגבלה הצו, ולהציב בנתיב יותר מ-אדאק %גא תווים. הרצף "?\" מורה לפונקציה לכבות את תהלוך. הפירוש הנתיב; רצף זה מאפשר לתוכניות להשתמש במחרוזות נתיב שארוכות יותר מ-111ק 8%/! כשפועלים עם הפונקציה צפסזטטו6605/61. פונקציה זו גם פועלת עם. שמות 0/6. מערכת ההפעלה מתעלמת מהרצף "?\. שנמצא במחרוות. הנתיב. לדוגמה, = הפונקציה | רואה | את | "השק )חס וחס00 עמ גםל\י | כד "טוק )השונ 00/וח :0", = ראת 0005001 קספה 31פחוהנ?\" ‏ היא רואה כ- "000500 קקח הפוחכ\'י. תות 9 5אוס0חו/, אסור שהמחרוזת פוחהאפ!זפ! תעבור. אדק אהוא תווים.9 פוס6חו. אינה תומכת בקידומת "?\י+ אם הפונקציה מצליחה, הערך המוחור מכיל את תכונות הקוב המוגדר, או הספריה/תיקיה; ואם הפונקציה נכשלת, היא מחזירה אחאאאפקא0. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל- ז0זו6125. התכונות יכולות להיות אחד הערכים או יותר, מאלה שמפורטים בטבלה 17.16 טבלה 17.16: הערכים המוחזרים מהפונקציה %65ט66151!0111:5. עוך פירוש פענווסאא מדטפנהדדה = וז | הקובץ או הספריה/תיקיה, הוא קובץ ארכיב או ספריית/תיקיית ארכיב בהתאמה. היישומים. משתמשים בדגל זה כדי לסמן קבצים לגיבוי או העברה. 5550פהקווס6 דט18הדדא. 115 | הקובץ או הספריה/תיקיה הס דחוסים. עבור. קובץ, פירוש הדבר שכל הנתונים שבו דחוסים. עבור ספריה/תיקיה, פירוש הדבר שהדחיסה. היא ברירת המחדל עבור הקבצים החדשים. שנוצרים ועבור רמות המשנה. פרק 17: קלט/פלט בחלונות = 511 ערך פירוש +סד0הזם מדטפנהדדה = וז | האובייקט הנוכחי הוא ספריה/תיקיה. אספפזו! פדטפנהדדו 115 | הקובץ או הספריה/תיקיה נסתרים (אינם. נכללים ברשימה הרגילה המוצגת). אסא שדטפנהדדא 115 | אין לקובץ או לספריה/תיקיה תכונות אחרות. שנקבעו. תכונה זו תקפה רק אס משתמשים בה לבד. פאנחזס מדטפנאדדג, 115 | הנתונים של הקוב אינס תקפום מיד. מציין שנתוני הקוב הועברו פיסית לאחסון מופרד. כ-יו צואססאפה פדטפנהדדא 1:5 | הקובץ או הספריה/תיקיה הם לקריאה בלבד. היישומים יכולים לקרוא את הקובץ, אך אינם. יכולים לכתות בו או למחוק אותו. במקרה של ספריה/תיקיה, היישום אינו יכול למחוק. אותה 558% מדטפנהדדה 115 | הקוב או הספריה/תיקיה הם חלק ממערכת. ההפעלה, אוו שהם בשימוש הבלעדי של מערכת. ההפעלה. +הההסקוופד שדטפנהדדא 515 | תהליך משתמש כעת בקובץ לאחסון ומני. היישום צריך למחוק קוב זמני ברגע שהיושום. אינו צריך אותו עוד. תוכניות יכולות להשתמש בפונקציה פסוטסו6618600 כדי להשיג את תכונות הקוב, אך לפעמים התוכניות גם צריכות לשנות את התכונות של הקובץ. באפשרותך להשתמש בפונקציה 65וטטוז0א6ו56 כדי לקבוע את תכונות הקובץ, כמו שרואים בהגדרה שלהלן. 560911 מססם 115086 01 8402658 // שחבאם11עק1 105 60% 5שסטמ1טסום // 0911 סהסאום לו הפרמטר 6וזבאפוק! מצביע למחרוות אשר מגדירה את שם הקובץ שהפונקציה אמורה לקבוע את תכונותיו. המגבלות שחלות על הפרמטר סוחגאפוחקו של הפונקציה. 61765 חלות גם על הפרמטר סוחפא6ווקן של הפונקציה 501711630100165. הפרמטר פסוטסו6/9/600. מגדיר את תכונות הקוב שהפונקציה צריכה. לקבוע. פרמטר זה יכול להיות צירוף של הערכים שמפורטים בטבלה 17.16. עס זאת, כל שאר הערכים עוקפים את אואחסוו =דט8זהדדא וו 2 זקא2בחווו ומבוא ל-ספו אם הפונקציה מצליחה, הערך המוחזר שונה מאפס; אאם הפונקציה נכשלת, הפונקציה. מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא לפונקציה זסזוו6035. אינך יכול להשתמש בפונקציה פפטט5609/6010 כדי לקבוע את מצב הדחיסה של הקובץ. קביעת 65560הקו60 מדטפ1הדד/ ₪115 בפרמטר פססטטוטה0ווא6 אינה עושה. כלום. השתמש בפונקציה (00ח06/601060 ובפעולה 6010885510 567 .55671 כדר לקבוע את מצב הדחיסה של הקובץ. בתקליטור המצורף לספר תמצא את התוכנית ע/ח₪6860 .666% (8006559285) התוכנית בודקת את הקוב 66.03% כדי לקבוע אם נקבעה לו התכונה י"קריאה בלבדי. אם כן, התוכנית מוחקת את כל קביעות התכונות, ואחר כך מוחקת את הקובץ. 6 איך לקבל את גודל הקובץ פוסחו מצמידה תכונות מסוימות לכל קוב שהיא שומרת בדיסק. אחת הבקשות השכיחות ביותר בתוכניות העוסקות בקבצים היא לדעת את גודל הקובץ. הפונקציה 6615/6506 משיגה את הנודל בבתים, של הקוב המוגדר. את הפונקציה 665/6526. כותבים בתוכניות כבהגדרה שלהלן )669116516 סתסוום 5 8426 666 50 6116 6 16בתמת // תמאה 665צס-8% 05 2086698 ]/ 10 56 6116 צס? 8+ ]/ / הפרמטר 8 מגדיר ידית פתוחה של הקובץ שאמורה הפונקציה להחזיר את הגודל. שלו. התהליך חייב ליצור ידית וו מקודם עם הגישה סאפח 68%8816‏ אר פהוהאו 658016 לקובץ. הפרמטר חסָ09פ0וק! מצביע למשתנה שבו מחזירת הפונקציה את מילת הסדר הגבוהה של גודל הקובץ. אם היישום אינו צריך את מילת הסדר הגבוהה, הפרמטר ח8ָ65260ו5ק יכול להיות שווה ל- וטא אם הפונקציה מצליחה, הערך המוחזר הוא מילת הסדר הנמוך של המילה הכפולה שמציינת את גודל הקובץ; ואס חמָ665098פ אינו 1ו₪, הפונקציה ממקמת את מילת הסדר הגבוהה של המילה הכפולה שמציינת את גודל הקובץ במשתנה שמוצבע על ידי הפרמטר. אם הפונקציה נכשלת והערך של 50| הוא טא הפונקציה. מחזירה =>יא0. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל- ז110ש6681050. אם הפונקציה נכשלת ו-חסָפפטופפ| אינו וטא הפונקציה מחזירה 5פחת>:אס, ו-ז350670 66 מחזירה ערך שונה מ-88808 סא אינך יכול להשתמש בפונקציה 6609/6506 עם ידית של התקן שאינו תומך בחיפוש. 006 חַחו560%-חס)!), כמו למשל צינור או התקן תקשורת. כדי לקבוע את סוג הקובץ. עבור טווח, צריך להשתמש בפונקציה 6ץ661867. הפונקציה 6605/6506 משיגה את גודל הקוב שאינו דחוס. צריך להשתמש בפונקציה 699900/6526זק6600000 כדר להשיג את גודל הקוב הדחוס. שים לב, כי אם הפונקציה מחצירה =אאאפקאאס. ו-חטוזקופפותק). אינר -611, היישום חייב לקרוא ל-ז0וז66.3515 כדי לקבוע אם הפונקציה הצליחה או נכשלה. פרק 17: קלט/פלט בחלונות = 513 התקליטור שמצורף לספר וה מכיל את התוכנית 65026ו₪1. 086% (בתיקיה 5. התוכנית משתמשת בפונקציה 6615/66 כדי לבדוק את סוג ידיתת הקובץ. אם הקובץ נמצא בדיסק, התוכנית תציג את המספר הסידורי וגודל הקוב בתיבת ההודעה. אם הקובץ אינו בדיסק, הפונקציה מודיעה למשתמש שהקובף אינר נמצא בדיסק ויוצאת. 7 חותמת הזמן של קובץ בוודאי למדת לבדוק את חותמת הזמן של קבצים על ידי שימוש בפונקציות זמן הריצה. של 6 (פחסווסחט= שחווד-חנוח ש). ממשק זל פווסוחווו גם: כן מספק פונקציה שבאפשרות. התוכניות להשתמש בה להשגת חותמת הזמן של הקובץ (פוחמופטוחוד ₪6%). הפונקציה 6חוד6609/6 משיגה את התאריך והומן של יצירת הקובץ, את מועד הגישה האחרונה. לקובץ, ומועד השינוי האחרון של הקובץ. את הפונקציה 6605/6706 כותבים. בתוכניות כמו בהגדרה שלהלן 00 6 18 פת: 11185םה100 // מ מנסוותט 186 מ08110עם 05 2085088 // 6א11ה68010:סם1 מענלמנדטק ג שחנם 00088ג 1256 05 288:688 //‏ ,6מ0005871ת1885ם1 מענחמנדקק 1 6 166פ0 1486 08 4085688 // 506 1עא390תמ1 מענלמנדעקת / הפרמטר ₪6 מציין את שם הקובץ שהפונקציה צריכה להשיג את הזמנים והתאריכים הקשורים בו. התהליך חייב ליצור תחילה ידית עם הגישה ספה 65%8816 לקובץ. הפרמטר 6חודחס30סז0ק! מצביע למבנה מסוג אדפ שמקבל את התאריך והומן שהקובץ נוצר בהם. הפרמטר 6וד1250%6095ק! מצביע למבנה מסוג 6א1ז15ז שמקבל את התאריך והזמן של הגישה האחרונה לקובץ. ומך הגישה האחרונה מכיל את המועד האחרון שהקובץ נכתב ל-, נקרא מ-, ובמקרה של קבצי הפעלה - הופעל. הפרמטר 6וו1350//097ק! מצביע למבנה מסוג שאזדפ ו שמקבל את התאריך והזמן של כתיבת הקובץ לאחרונה. אם הקוב אינו דורש מידע של שלושת הומנים האלה, אפשר להציב .)0 בפרמטר הפונקציה שאין צורך בר אם הפונקציה מצליחה, הערך המוחזר שונה מאפס; אם הפונקציה נכשלת, הפונקציה. מחאירה את הערך אפס. כדי לקבל מידע שניאה מורחב, צריך לקרוא ל-ז0זו60151. מערכת הקבצים של א9 פוסחוו ושל דא פווסחוו תומכות בערכי ומן יצירת הקוב, זמן גישה אחרונה, וכתיבה אחרונה בקובץ. ב-9% פאוס0חו/ הדיוק של זמן הקוב הוא: 2 שניות (פירוש הדבר, הזמן ש-פווסחו//ו רושמת בו את המאפיינים יהיה בתחום שתי שניות מומן הגישה הממשי). דיוק זמן הקבצים במערכות קבצים אחרות, כמו אלו הקשורות לרשת, תלוי במערכת הקבצים הרחוקה. ההתקן הרחוק יכול אולי להגבילל את דיוק הזמן. 4 32371חווו ומבוא ל-ספו בתקליטור המצורף לספר וה תמצא את התוכנית פוחוד 66%, אשר משמשת ב- 06זוד6615/9 כדי להשיג את הזמן הנוכחי של הקובץ ואחר כך הופכת את הומן הזה. לומן המקומי. התוכנית הופכת אחר כך את הזמן המקומי שבמבנה ₪116 ₪1 לפורמט. הומן והתאריך שמוכריס ל-205. כדי לראות את השינוי, יש להשתמש בסייר ו 8 יצירת ספריות/תיקיות במערכת 005 למדת להשתמש בפונקציות זמן הריצה של ספריות 6 (טוחוד-חוא 6 פחסנסחט זט כדי ליצור ספריה או תיקיה. באופן דומה, באפשרות תוכניותת וס6חוו. להשתמש בפונקציה עזסוססווסטוגסו6 של [קה 32חו כדי ליצור ספריה חדשה. אם מערכת הקבצים הקיימת תומכת גם כן באבטחת קבצים וספריות, הפונקציה מספקת את מתאר האבטחה המוגדר גם לספריה החדשה. וזכור שלכל תהליך יש ספריה נוכחית משלו ולכן, קריאות ל-[6600וופט931ו0 אינן צריכות להניח. שהספריה הנוכחית של התהליך היא קבועה. את הפונקציה /60100זו0103190 כותבים. בתוכניות כמו בהגדרה שלהלן. | 20000 09685001 מססם 6ה1עפ הפגם צ81280%02 ג 00 עבטהגסק //‏ ,שממאתסבפק1 תעפפסק1 66 הע)60051פק1 פפצטמנאצטה צצ1ת00םפק1 ש0טם1ע0080 ע15צ4000 8 50 עבמתצסק // / הפרמטר 6ווהאתוגלק! מצביע למחרוזת המסתיימת ב-1א, אשר מגדירה את נתיב הספריה שצריך ליצור. גודל ברירת המחדל הקיים לגבול מספר התוויס שבשם הנתיב הוא 4דק 4 תווים. גבול זה מתייחס לדרך שבה הפונקציה ,3060086000 מפרשת נתיבים. תחת דא! פאס0חו אפשר לעבור גבול זה. הפרמטר פפוטפוז8/8ו5600ק! הוא מצביע למבנה מסוג 85ד180חדדו +ד550081 אשר קובע אס תהליכי בן יכולים לרשת את הידית המוחזרת. אס 65טפוזז)שטוזסספק! הוא. טא תהליכי הבן אינס יכולים לרשת את הידית. תחת ז! 5ואס0חו/+,. האיבר ז0וק560010/0690ק1 של המבנה מגדיר מתאר אבטחה עבור הספריה החדשה. אם 50105 הוא -1א, הספריה מקבלת מתאר אבטחה של ברירת המחדל. מערכת הקבצים הקיימת חייבת לתמוך באבטחת קבצים וספריות, כדי שיהיה השפעה. לפרמטר ‏ וה. תחת 9% 5אס6חו/, | מערכת ההפעלה | מתעלמת ‏ מהאיבר טספ אם הפונקציה מצליחה, הערך המוחזר שונה מאפס; ואם הפונקציה נכשלת, הפונקציה. מחזירה את הערך אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא לפונקציה 1 פרק 17: קלט/פלט בחלונות = 515 התקליטור שמצורף לספר וה מכיל את התוכנית ]ופאש 016866 (בתיקיה 5. התוכנית משתמשת בפונקציה /60:90זו6163!60 כדי ליצור ספריה חדשה. בשם ייץז0וטזום טאי בכונן -6 של המחשב שהתוכנית מופעלת ממנו כרגע. + הערה: יש מערכות ניהול קבצים, כמו זו של זא ובקיצור (פדא), שתומכות בדחיסה של קבצים בודדים ושל ספריות. בכרכים (פטוחטוסו). שמפורמטים למערכות קבצים כאלו, ספריה חדשה יורשת את תכונת הדחיסה של ספרית האב שלה באפשרות | היישום | לקרוא | ל-0763086 | עם | הדגל 565 לטסא 46 מו כדי להשיג ידית לספריה. כדל לראות דוגמת קוד, התבונן ב- 616819516. 9 מידע לגבי הספריה/תיקיה הנוכחית, או שינוי ספריה/תיקיה תוכניות יוצרות ספריות/תיקיות חדשות במערכת הקבצים. עם ואת נמצא שלרוב הן מבקשות מידע אודות הספריה/תיקיה הנוכחית, ולא יוצרות חדשות. הפונקציה 60 ח0זז6900 משיגה את הספריה הנוכחית של התהליך הנוכחי. את הפונקציה. 16010 חסזזנ68:0 כותבים בתוכניות כמו שרואים בהגדרה שלהלן 56010 6860 ספסום 8 ,2801608מם 1 ,8126 //‏ ,גטשתסםעם!5ממת סהסאם ש6פפטט [81900%05 // 50 5566טמ 05 4845688 // 1 1 ץ61560%08 ממשצטגום // / הפרמטר ה6ףַח9 !שפח מגדיר את האורך, בתווים, של חוצ מחרוות הספריה הנוכחית. אורך החוצץ חייב להכיל מקום עבור תו ₪11 המסיים. הפרמטר ז₪!ופקו מצביע לחוצץ המחרוות של הספריה הנוכחית. מחרוות זו, המסתיימת ב-וטא מגדירה את הנתיב המוחלט של הספריה הנוכחית. אם הפונקציה מצליחה, הערך. המוחזר מגדיר את מספר התווים שנכתבו לחוצץ, ללא תו ₪011 המסיים; ואם הפונקציה נכשלת, הפונקציה מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז661135:670. אם החוצ שמוצבע על ידי 8/6 אינו גדול מספיק, הערך. המוחור מגדיר את גודל החוצץ הדרוש, כולל מספר הבתים שצריך עבור תו +טא מסיים. באופן דומה, באפשרות התוכניות להשתמש בפונקציה עזס00טזוס1חסזז560 כדי לשנות. את הספריה הנוכחית של התהליך הנוכחי לספריה אחרת שמוגדרת על ידי המשתמש. כך כותבים את הפונקציה 5607011790 בתוכניות. ( 18 סק 20 הפע 5650 נססם 6 כו ומבוא ל-ספו הפרמטר פוחפואחוגסק! מצביע למחרוות המסתיימת ב-)ט% ומגדירה את הנתיב של הספריה החדשה. פרמטר זה יכול להיות נתיב יחסי, או נתיב מפורט שלם. בשני המקרים, מערכת ההפעלה מחשבת את הנתיב המפורט השלם של הספריה המונדרת. ומאחסנת אותו כנתיב הספריה הנוכחית. אם הפונקציה מצליחה, הערך המוחזר שונה. מאפס; ואם הפונקציה נכשלת, היא מחזירה את הערך אפט. כדי לקבל מידע שגיאה. מורחב, צריך לקרוא ל- ז110ש661105. לכל תהליך יש ספריה/תיקיה נוכחית יחידה שמורכבת משני חלקים. + מזחת דיסק (01וגח5ט מכ). ווהי אות הכונן ואחריה נקודתיים, או שם שרת ושס משותף (לדוגמה, סוחְבּח6ז8ח65וחהחזסשז56 \). 3% ספריה במזהה הדיסק. התקליטור שמצורף לספר זה מכיל את התוכנית 56%.- 06866 (בתיקיה 8008559285). כאשר מהדרים ומריצים את התוכנית מתוך פַ090, היא מציגה את הספריה הנוכחית. לבסוף היא משנה את הנתיב אל הספריה הנוכחית לפי הפרמטר שהיא מקבלת. השמת. הפרמטר מתבצעת באמצעות לחיצה בתפריט 6(סזל > פַח56 ובכרטיסיה 060 יש. לשים את שם הספריה החדש - והוז הוזַסזה. 0 השגת הספריות פששסשחו/ ו-וח5%6ץ5 בסעיף קודם למדת כיצד יכולות התוכניות להשיג את שם הספריה/תיקיה הנוכחית. של התהליך הנוכחי. ככל שהתוכניות הופכות למורכבות יותר, נדרש פעמים רבות מידע על מקום הספריה 08חו ושל הספריה 56 הכפופה לה. כדי לקבל מידע זה, צריך להשתמש בפונקציה /5016010ו60חו/660, אשר משיגה את נתיב הספריה. סח (ששמה עשוי להיות שונה מ-פאוס0חואא:ש אר זחחואו:6). הספריה וחוור מכילה קבצים של יישומים מבוססי פווסחוא, קבצי אתחול וקבצי עורה. משתמשים. בפונקציה ץז600זו60/90חו//66 כמו בהגדרה שלהלן. 0 41960005 8ס6ת1ע 05+ 1165טם 05 8085688 //‏ ,6665טמק1 8לפצק1 116%מם צ01:00008 05 ש12מ // אנט לו הפרמטר ז816כ! מצביע לחוצץ שמקבל את המחרוות שמסתיימת ב-11א ומכילה את. פירוט הנתיב. נתיב זה אינו מסתיים בלוכסן הפוך, אלא אם ספריית פ6א00חוו היא ספריית השורש. לדוגמה, אם השם הוא פווסשחוו בכונן 6, שם הנתיב של ספריית וס חוו. שהפונקציה מקבלת הוא 5סחווו:6. אס 5אוס0ח// הותקנה בספריית. השורש של כונן 6, הנתיב שמתקבל הוא :6. הפרמטר טפט מגדיר את הגודל המקסימלי, בתווים, של החוצץ שמוגדר על ידי הפרמטר 6/ש8קו. צריך לקבוע את הפרמטר ופט לפחות ל-ודק. אאו, כדי ליהיה די מקום בחוצ עבור פירוט הנתיב. פרק 17: קלט/פלט בחלונות = 517 אם הפונקציה מצליחה, הערך המוחזר הוא האורך, בתווים, של המחרוות שהעתיקה הפונקציה לחוצץ, ללא תו )₪0 המסיים. אם האורך גדול מגודל החוצץ, הפונקציה מחוירה את גודל החוצץ הנדרש לה, כדי להחזיק בו את פירוט הנתיב; ואם הפונקציה. נכשלת, הפונקציה מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז0ז9ו25 601. ספריית פווסשחווו היא הספריה שבה היישום צריך לאחסן קבצי אתחול ועורה. אם המשתמש מריץ גירסה שיתופית של 8סחוו,. מערכת ההפעלה מוודאת שלכל משתמש יש ספריות 0/0608 פרטית. אם יישום אשר יוצר קבצים אחרים רוצה לאחסן אותם בנפרד לכל משתמש 8856 06-0901), עליו למקם אותם בספריה שמוגדרת על ידי משתנה הסביבה ו%דק0%16וא. המשתנה (₪016781% תמיד מגדיר אחד. משני דברים, את ספריית הבית אשר מובטח שהיא פרטית לכל משתמש, או את ספריית ברירת המחדל (לדוגמה, %/968זפט:). אשר יש למשתמש בה את כל הגישות. כמו שהתוכניות דורשות מידע על מקום ספריית פווסשחואו, הן גם צריכות לעיתים. מידע אודות ספריית המערכת, זן5. הפונקציה /6000וו0וח5/9ץ6015 משיגה את נתיב ספריית המערכת של פווסחוו. ספריית המערכת מכילה קבצים שונים, כמו רשימת ספריות פאוסשחו//, | מנהלי התקנים וקבצי גופנים. ‏ את הפונקציה /7007ו0וח9ז6615/5 כותבים בתוכניות כמו בהגדרה שלהלן. 0 ע00609ע81 תס6פעם עס? 118מם 01 88:688 //‏ ,ע660גמק1 הצפצקנ 1165מם צש0ף0ם:01 0% 512 // 6 אנט / הפרמטרים של הפונקציה 000ופוח90ןפ/09 הס כמו אלה של הפונקציה 6604/6006 א הפונקציה /6000זו0ח6605509 מצליחה, הערך המוחזר הוא האורך, בתווים, של המחרוות שהעתיקה הפונקציה לחוצץ, ללא תו וטא המסיים. אס האורך גדול מנודל החוצץ, הפונקציה מחזירה את גודל החוצ)ץ הנדרש לה. כדי להחציק בו את פירוט הנתיב; אם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל. מידע שגיאה מורחב, צריך לקרוא ל- ז0ו60013515. התקליטור שמצורף לספר וה מכיל את התוכנית 5אוס6חוא אוסח5 (בתיקיה 5. כאשר מהדרים ומריצים את התוכנית הזו, רואים שהיא משתמשת. בפונקציות 0601 ח66 ו- ע0ו60ווסות9ופ/6615 כדי להשיג את שמות הספריות 0/0606 ו- וחפזפץ5. התוכנית מציגה אחר כך את שמות הספריות בשטח הלקוח של החלון. 4 הערה: ככלל, היישומים אינס צריכיס ליצור קבציס בטפריה וח5/516. אם. המשתמש מריץ גירסה שיתופית של פאוס0חו/+, אין ליישום גישת כתיבה לספריה ח0ו5/5. היישומים צריכים ליצור קבציס. רק בספריה שמוחזרת על ידי הפונקציה 0006005010 8 3271חוו ומבוא ל-ספו 1 העברת ספריות/תיקיות כשם שתוכניות יכולות ליצור ספריות/תיקיות זמניות, או ספריות/תיקיות לשימוש. פנימי, יכולים להיות מצבים שבהם התוכניות חייבות להעביר ספריות/תיקיות קיימות. ממקומן. הפונקציה /זס1סטזוסטצסוח6ה מוחקת ספריה/תיקיה ריקה קיומת. את הפונקציה /ז6610זו60/סוחש כותבים בתוכניות כמו בהגדרה שלהלן (הפאמ66פק1 ה57ל90ם) עש8060ש 1ססשסתסה מס הפרמטר פוחגַאווגקק! מצביע למחרוות המסתיימת ב-11ט₪ שמגדירה את הנתיב של הספריה שצריך למחוק אותה. הנתיב חייב להגדיר ספריה ריקה, והתהליך הקורא: חייב להיות בעל גישת מחיקה לספריה. אם הפונקציה מצליחה, הערך המוחור הוא: שונה מאפס. אם הפונקציה נכשלת, הפונקציה מחזירה את הערך אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל- ז0זו66125. התקליטור שמצורף לספר וה מכיל את התוכנית טסופ 016806 (בתיקיה 5. כאשר מהדרים ומריצים את התוכנית 8606 -676866, התוכנית. יוצרת ספריה חדשה בשם 5066 6ו6%, ומודיעה למשתמש על כך. אחר כך, התוכנית. מוחקת את הספריה החדשה שיצרה, ומודיעה למשתמש על השינוי הזה גם כן. 2 העתקת קבצים לרשות התוכניות עומדים כלים רבים של פא00חו// לניהול קבצים. ככל שהתוכניות. הולכות ונעשות יותר מורכבות, הן צריכות לעשות פעולות שונות בקבצים, וביניהם - להעתיק קוב ממקוס אחד למקום אחר, כאשר הכוונה לכך שקובץ המקור ישאר במקומו הנוכחי ורק העתק שלו יועבר למקום אחר. הפונקציה 60086 מעתיקה קוב קיים לקובץ חדש, ויכולה לקבוע לו שם חדש. כותבים את הפונקציה כמו בהגדרה שלהלן 00 ,שהפא116פטַה561|אפק1 פע 10 6 186189 ת8 05 שממ 60 פשמתנסם // סש // ,סתפאסבנסאמאק1 תלפפסק1 5118 15 הסןופמשקם 505 בָ18? // 41865ם:1צסע מססם 00/0 60 11168886 0 עשפמ לו הפרמטר פְוחִַבאִפוַפֶח05ק! מצביע למחרוות המסתיימת ב-)0 אשר מגדירה שם של קובץ קיים. הפרמטר 616%2₪6)!פ! מצביע למחרוות המסתיימת ב-011א אשר מגדירה את שם הקובץ החדש. הפרמטר 185%55ו9ם מגדיר איך הפונקציה ממשיכה, אס קיים כבר קובץ בעל שם שכבר מוגדר בפרמטר פוח9א9!וופאק!. אס הפרמטר !031 הוא פד ושם הקובץ החדש קיים כבר, הפונקציה נכשלת; אם פרמטר זה הוא 356 ושם הקוב החדש קיים כבר, הפונקציה דורסת את הקוב הקיים: ומסיימת. פרק 17: קלט/פלט בחלונות = 519 אם הפונקציה מצליחה, הערך המוחור שונה מאפס; אם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז6625/6110. מאפיוני האבטחה של הקובץ הקיים אינס מועתקים לקובץ החדש. תכונות הקובץ (* פדטפנחדזא ₪115) של קובץ קיים מועתקות אל הקוב החדש. לדוגמה, אם לקובץ קיים יש תכונה צואסספח פדטפנחדד 115, העתקת הקוב שנעשית על ידי קריאה לפונקציה 60/6 גורמת לכך שגם ההעתק מקבל את התכונה. ספה דד ו התקלוטור שמצורף לספר וה מכיל את התוכנית 0 6168%6 (בתיקיה 5. כאשר מהדרים ומריצים את התוכנית 60 .676866, היא יוצרת את. הקוב 0/61.0. כאשר המשתמש בוחר באפשרות 6%ד, התוכנית מעתיקה את הקוב לקובץ 8/62.0. אס הקובץ 862.0 קיים כבר, התוכנית מבקשת מהמשתמש. אישור להחליף את הקובץ הקיים. 3 העברת קבצים ושינוי שם תוכניות יכולות ליצור בקלות העתק של קוב ולכתוב אותו במקוס אחר. פעמים רבות. התוכניות צריכות להעביר קובץ או ספריה/תיקיה למקום אחר, מבלי לשמור על ההעתק המקורי של הקובץ. הפונקציה 6פוס% משנה שם של קובץ קיים או ספריה/תיקיה (כולל כל רמות המשנה שלה). את הפונקציה 04856 כותבים: בתוכניות כמו בהגדרה שלהלן. ו 00 6ט 05 שחמם 08 8444688 // ,6ההא116פ0ה1561אמק1 8שפעסק1 16 8ת18%1א // 105 מגה ששח 08 3444688 // א ב1 מק עפ 100 8 6 // / הפרמטר פוחפאטופַהטפואסק! מצביע למחרוות המסתיימת ב-1ש ואשר מגדירה שם. של קובץ קיים או שס של טפריה/תיקיה קיימת. הפרמטר טוחמ/פוחאק! מצביע למחרוזת המסתיימת ב-1א, שמגדירה את שס הקובץ החדש, או את שם הספריה/התיקיה החדשה. אסור שהשם החדש יהיה קייים. את הקובץ החדש אפשר לכתוב בספריה שונה או בכונן אחר. ספריה חדשה חייבת להיות באותו כונן. אם הפונקציה מצליחה, הערך המוחזר שונה מאפס; אם הפונקציה נכשלת, הפונקציה מחזירה את הערך אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל- ז110ש66/135. הפונקציה 104656 מעבירה (משנה שם) קובץ או ספריה (כולל כל ספריות המשנה). באותה ספריה או לספריות אחרות. המגבלה היחידה שיש לפונקציה 6ושצסו! היא בכך שהיא נכשלת בהעברת ספריות, כאשר היעד הוא בכרך שונת (טוזשוס וחזסזוו) 0 32371חו/ו ומבוא ל-ספו התקליטור שמצורף לספר זה מכיל את התוכנית :50160 6ט10 (בתיקיה. 5.,. כשהמשתמש בוחר באפשרות !65%ד, התוכנית מעבירה אחת מהספריות. ממבנה הספריות הקיים אל ספריה אחרת. 4 מחיקת קבצים בספריה/תיקיה תוכניות מפעילות את הפונקציה עזסוזוספטסוחפה כדי למחוק ספריה/תיקיה במערכת. הקבצים. אך, הספריה חייבת להיות ריקה לפני הקריאה לפונקציה /ז6000ווסטסחח6ה, או שהפונקציה נכשלת. כדי למחוק קבצים בספריה, התוכניות יכולה להשתמש. בפונקציה 09/6:68/6. משתמשיט בפונקציה 06160086 בתוכניות כמו שרואים בהגדרה. שלהלן 10088 מב הז 1 000 ה הפרמטר 6וחפאשוחק מצביע למחרוות המסתיימת ב-!א, ומגדיר את הקוב שהפונקציה צריכה למחוק. אס הפונקציה מצליחה, הערך המוחזר הוא שונה מאפס; אם הפונקציה נכשלת, היא מחזירה את הערך אפס. כדי לקבל מידע שניאה מורחב, צריך לקרוא ל-ז3510110 66%. אם יישום מנסה למחוק קוב שאינו קיים, הפונקציה 660886 נכשלת. תחת א9 פאוס6חוו,. הפונקציה 09/6196 מוחקת. קובץ, אפילו אם הוא פתוח כרגע לקלט/פלט, או שהוא פתוח כמיפוי קובץ בויכרון. כדי למנוע שגיאות, צריך לסגור את הקבצים לפני שמנסים למחוק אותם. תחת ד 5ו00חו/, הפונקציה 661986 נכשלת. אם ישוס מנסה למחוק קובץ שפתוח כרגע לקלט/פלט או שהוא פתוח כמיפוי קוב בויכרון. 5 הפונקציה 1-156-1!6)חו=] לאיתור קבצים בוודאי מוכרות לך הדרכים לחפש קובץ בספריה/תיקיה נוכחית באמצעות פונקציותת זמן הריצה של 6 (פחסטסחט שוחוד-חטוה 6). בתוכניות פווס6חוו, צריך להשתמש בפונקציות החיפוש (פחסט6חט= 6ח₪) כדי לאתר קבצים שעומדים בקריטריון רצוי שתי פונקציות חיפוש נותנות את השירות הזה לתוכניות: הפונקציה 005506 מחפשת בספריה קובץ אשר השם שלו תואם את שם הקובץ המוגדר; והפונקציה ווח בוחנת גסו שמות ספריות משנה (/5006/160108) וגם שמות קבצים. את הפונקציה 1065/5656 כותבים בתוכניות כמו בהגדרה שלהלן )559118 נטבתגע מנסוות שג 05 חמה 0 צספמנסק // 6חפאם11פק1 109 05ף 808200 50 116? // 0 +פפת1סק // = גזגסשננקתנתק1 להק סדק אצנ מס1סמתנס:ה1 8סתצטסם: // לו פרק 17: קלט/פלט בחלונות = 521 במערכות 9 5אס0חוא. ו-דא/ 5וסחוו),. הפרמטר 6חובאפוק! מצביע. למחרוות. המסתיימת ב-!ו0 ואשר מגדירה ספריה תקפה או נתיב ושם קובץ, אשר יכולים. לכלול תווי הכללה (* ו- !). עם זאת, תחת א9 005חו/, מחרוזת זו חייבת להיות קטנה מ-1דק 8% תורים. הפרמטר 68/60318חופו מצביע למבנה אדא סאז= באזו שמקבל מידע על הקוב. שנמצא או ספריית המשנה. באפשרות התוכניות להשתמש במבנה זה בקריאות עוקבות לפונקציות 0686086 או ₪001056 כדי להתייחסי לקוב או לספריית המשנה. המבנה אד סא1 באז מתאר קוב אשר נמצא על ידי אחת הפונקציות. 6 הו ופטחו אר 6וואסאשחו=. המבנה הדא פאז 32ּא1א מוגדר ב- זה 32חוו כפי שמוצג להלן | הצהם סאנט ₪132 56566 6465מע3 11061 פא סהסאום 0205610071 מאנדמנדק [000587106ת150ם: מאצצמן 1.01 מאקצדנד 1165126810 סאסוום 200 1681געת סהסאום 0 ו מפתק. אתו! ] שהפאו בנע תתאסדי 2 14 ]806א8669116ה:66נת= תסל (תצתם סאצק 32אצאז [ טבלה 17.17 מסבירה בפירוט את המבנה אדא .פאז" זא טבלה 17.17. מרכיבי המבנה ד .סז" .בוזא פרמטר ב 2 ב תיאור מגדיר את תכונות הקובץ שנמצא. איבר וה יכול לחיות ערך אחד או יותר מהערכים שמפורטים בטבלה 17.16 מגדיר מבנה 115116 אשר מכיל את הזמן שבו נוצר הקובץ. 6 ו- 056א6%0ח/₪ מדווחות על אמני קוב בפורמט. זמן עולמי (070, זפוחזס= סוחוד 3196ח/6זססס). פונקציות אלר קובעות את האיברים של ₪116 1ז לאפס, אם מערכת. הקבצים אשר מכילה את הקובץ אינה תומכת באיבר מסוג זה. באפשרותך להשתמש בפונקציה 6ו0ו61010631₪/67חווד6ו. כדי להפוך את יחידות הומןמ-6ד0 לזמן מקומי, ואחר כ להשתמש בפונקציה 6וחודוחפז5ץ05דטוחוד1!6ז כדי להפוך את. הזמן המקומי למבנה פוַזַד5%518 אשר מכיל איברים נפרדים של החודש (מזחסוא), *ום (ע0), שנה (630/), יום: בשבוע (ָ0//66%03, שעה (זטסוז), דקה (פזטח/ו/), שנייה. (560006), ו- מילישנייה (10566006/. ת32חו/ו ומבוא ל-0פו פרמטר תיאור 6חוד8.50%60955 | מגדיר מבנה 61/5116 אשר מכיל את זמן הגישה האחרונה. לקובץ. זמן זה הוא בפורמט 016; האיברים של פואזד5 ו הס אפס, אם מערכת הקבצים אינה תומכת באיבר זמן זה. 6וד06ו//1250 | מגדיר מבנה 81116 11ק אשר מכיל את הזמן של הפעם. האחרונה שהקובץ נכתב. זמן זה הוא בפורמט 016; איברי פוזד זז הם אפס אם מערכת הקבצים אינה תומכת באיבר. מן וה. הפסוה | מגדיר את ערך מילת הסדר הגבוהה סהס/צם המייצג את גודל. הקובץ בבתים. ערך ה הוא אפס, אלא אם גודל הקובץ גדולל מ-40/080/. גודל הקוב שווה. ל- 650610 + (הס/וסאאוי! * ח95026710ו ה אס 650261!ח | מגדיר את ערך מילת הסדר הנמוך סמס/ המליצג את גודל. הקובץ בבתים. 0 | שמור לשומוש עתידי. 1 | שמור לשומוש עתידי. שוופאטוות6 | מחרוות המסתיימת ב-0)1 שהיא למעשה שם הקוב)י 6 0ו3)0חזס:/6 | מחרוצת המסתיימת ב-011! שהיא שם חלופי לקובץ. שם זה. הוא בפורמט הקלסי. 8.3 (906.60ח6ו). אס שם הקובץ הוא בפורמט ארוך, השם המלא מוצג בשדה 69/9006 וגירסת פורמט. 3 המצומצמת מוצגת בשדה 6והו!0ו9זחזס!וה6; אחרת, 6ו590ס)החזוו ריק. לחילופין, תוכל להשתמש בפונקציה 61500980 כדי למצוא את גירסת השם. המצומצמת בפורמט 8.3 אם הפונקציה מצליחה, היא מחצירה ידית חיפוש שמשתמשים בה בקריאות עוקבות. ל-6וא6א0ה = או 8060086; | אם הפנקציה נכשלת, ‏ היא מחזירה שנוע פופאאת פאז כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז251970 6001. הפונקציה 50%/6/ה0חוז פותחת ידית חיפוש ומחזירה מידע על הקובץ הראשון אשר שמו חופף לתבנית המוגדרת. לאחר שידית החיפוש נוצרת, תוכל להשתמש בפונקציה 6 כדי לחפש קבצים אחרים אשר תואמים לאותה תבנית. כאשר אין יותרר צורך בידית החיפוש, צריך להשתמש בפונקציה 800086 כדי לסגור את הידית. פונקציה ו מחפשת קבצים רק לפי שם; אינך יכול להשתמש בה לחיפושים מבוססי תכונות (50370065 0-88560)טסוחזן). פרק 17: קלט/פלט בחלונות = 523 6 הפונקציה 1!6-+א6!))חו-] בסעיף קודם למדת על הפונקציה 6זפושח₪, אשר מוצאת את המופע הראשון של קובץ בע ספריות, אשר תואס לשם קובץ נתון. כדי להמשיך בחיפוש קבצים נוספים: בעלי אותו שם (או תואמים לתווי הכללה), התוכניות חייבות להשתמש בפונקציית. חיפוש נוספת. הפונקציה ₪0%618/6 ממשיכה בחיפוש הקבצים מהקריאה הקודמת. של הפונקציה 6815/6ח₪. את הפונקציה 0686086 כותבים בתוכניות. כמו בהגדרה שלהלן. גת מס 56896 0 18ממממ // הנאת 6עממסטע86 0ם עשסת1סם // = ג:05ש1!קתנתש1 להק סאדק אצנ 18 ממסף 09" ן/ / הפרמטר 056חח מזהה ידית חיפוש שהוחזרה על ידי קריאה קודמת אל הפונקציה 6 פ0חו. הפרמטר בזהסט!חוחקו מצביע למבנה מסוג אדא פאז לבז אשר מקבל מידע על הקוב שנמצא, או על ספריית המשנה. באפשרותך להשתמש במבנה זה. עבור קריאות עוקבות ל-₪00%88/6 ולהתייחס לקובץ או לספריה הרצויים. אם הפונקציה מצליחה, הערך המוחור שונה מאפס; אס הפונקציה נכשלת, היא מחזירה את הערך אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל- 251810 66%. אס 66029850 | אינה | מוצאת | קבצים | תואמים, | היא מחוזירה 5 חס סא ה0הה5. הפונקציה 6%8%/6ח₪ מחפשת קבצים רק לפי שם; אינךך יכול להשתמש בה לחיפושים מבוססי תכונות (56370065 83560-פזטפוזה). כדי ללמוד. על חיפושים מסוג זה, קרא בסעיף 17.28 בתקליטור שמצורף לספר וה תמצא את התוכנית 6610465זו ‏ 4/9 (בתיקיה. 5.. התוכנית 1166101165 .או משתמשת בשתי הפונקציות 055096ח₪. ו-16000186. לחיפוש בכונן הדיסקים שאתה מגדיר. בנוסף, התוכנית משתמשת. בפונקציה רקורסיבית כדי להיות בטוחה שהחיפוש נעשה בכל הספריות שבדיסק הנוכחי. ככל שהתוכנית מחפשת, היא מוסיפה שמות קבצים לתיבת הרשימה המוצגת. 7 סגירת ידית החיפוש עם 10061056 למדת שכאשר התוכניות מפעילות את הפונקציות ₪006 ו-6אשא6חה, הך פותחות ידית שונה (ידית חיפוש) עבור פונקציות אלו מו שמערכת ההפעלה מחזירה. באופן נורמלי על ידי הקריאה ל-98/6ו0163. אם תנסה לסגור ידית חיפוש עם , תקבל מצב שגיאה. על כן, התוכניות חייבות להשתמש בפונקציה 6 כדי לסגור את ידית החיפוש. את הפונקציה 8000/06 כותבים כמו בהגדרה. שלהלן 6 פמפאתמ) 18801086 מססם 4 ז7א52חווו ומבוא ל-ספו הפרמטר 065/6/₪ מזהה את ידית החיפוש. התוכנית חייבת לפתוח תחילה את ידית. החיפוש על ידי קריאה לפונקציה 6%/515(6חח. אם הפונקציה מצליחה, הערך המוחזר שונה מאפס, אס הפונקציה נכשלת, היא מחזירה אפס. אחרי שהתוכנית קוראת לפונקציה 00055ח5, היא אינה יכולה להשתמש בידית החיפוש, שמוגדרת על ודי הפרמטר 65/6חח, בקריאות עוקבות לפונקציה 50686456 או בקריאות לפונקציה. 6 תוכל לראות שהתוכנית 16610465 -א1/31, המפורטת בסעיף 17.26, משתמשת בפונקציה 060086 רק כאשר המשתמש מסיים לחפש בכל ספריות הקבצים. 8 חיפוש לפי תכונות עם פונקציות חיפוש קבצים כמו שלמדת בסעיף קודם, התוכניות משתמשות בפונקציית חיפוש רקורסיבית (5800156ו0ה בתוכנית 166101465 - א81/+) כדי לחפש קוב רצוי בכל הכונן. אם. אתה מתכנן יישוס שרק המשתמשים ב- 4.0 דא פאוסשחו/' ישתמשו בו, תוכל להשתמש. בפונקציה 068518165 (יחד עם הפונקציה ₪1006015/6) כדי לחפש בספריה/תיקיה. רצויה. הפונקציה 69818/65%הו מחפשת בספריה מוגדרת את הקובץ שהשם והתכונות שלו חופפים לאלה שאתה מגדיר בקריאה לפונקציה. את הפונקציה 65066ח/₪ עליך לכתוב כמו בהגדרה שלהלן 7 ש'116] שמ6 60 פמסמבסק // ,6ה8א116עק1 8ע5ל0ק1 ע0] 80820 50 מחמת // 5 18961 תס1שגמעס?ה1 // ,דנסטםנס?ה1? סממ | 0 8שתענםם, בתף // 4 60 60 צשסמבסק // ה1 // מע שנטאתט 0 6ת116021? 05 שמעף // ,5082600 | 8 מְ0ש68ם 60 צ6סמ1סק // (10568500911665 פנסטט1 (6ש568 3641610881 // 888 8191ה0 6848161 סאסאום 8 01פףמסש // לו הפרמטר סווגאפוק! מצביע למחרוות המסתיימת ב-וטו ומגדירה ספריה/תיקיה תקפה או נתיב ושם קובץ, כמו בפונקציה 055/6חו, אלא שהפרמטר פוחפאטוקן יכול להכיל תווי הכללה (* 1- !). הפרמטר 0164616/ח1. מציג את פירוט. סוגי 5 סאאז אססאזה אשר נותנים את רמת המידע המוחזר. הפרמטר ג05/6081חקו מחזיר מצביע לנתוני הקובץ. רמת המידע שמוגדרת בפרמטר 1016/6116 קובעת את. סוג המצביע. הפרמטר ק0ת0ו563) מפרט את סוגי 005 56380 אספאן אשר מודיעים לפונקציה על טוג הסינון שצריך לבצע מעבר להתאמת תווי הכללה. אם. פרק 17: קלט/פלט בחלונות = 525 פירוט סוגי ק0ו0ו503] כולל מידע חיפוש מכני, ז9שוח6ו563ק מצביע לקריטריון החיפוש. עד עכשיו, אף לא ערך אחד מהערכים הנתמכים על ידי הפרמטר ק15631610 דרש מידע חיפוש מורחב (למרות שגרסאות עתידיות של זא פווסשחוא אולי ידרשו מידע כוה). לכן, מצביע זה חייב להיות )טא'. הפרמטר 5ח99ו6/4666003. מגדיר דגלים = נוספים = לבקרת = החיפוש. = באפשרותך | להשתמש | בדגל פטנדופ 5 6855 5% דפחז פאז עבור חיפושים תלויי רישיות (0956-5009/006) חיפוש ברירת המחדל אינו חיפוש תלוי רישיות. מערכת 4.0 דו% פאוסטחוו אזינה מגדירה. כל דגל אחר, אך גרסאות עתידיות של זא פאוסחוא אולי יגדירו דגלים נוספים. אם הפונקציה מצליחה, היא מחזירה ידית חיפוש שהתוכניות יכולות להשתמש בה בקריאות עוקבות לפונקציות 060156 או 000056 ; אם הפונקציה נכשלת, היא מחזירה ש0)אש = וסאאו סזואשא1. הפונקציה 0055065 מאפשרת לפתוח ידית. חיפוש ולהחציר מידע אודות הקובץ הראשון ששמו תואם לתבנית ולתכונות שהוגדרו בקריאה לפונקציה. אס מערכת הקבצים הקיימת אינה תומכת בסוג הסינון שמוגדר על ידי הפרמטר ק0ח56370!, ששונה מסינון ספריה, א95ו815ו0ח₪ נכשלת והפונקציה. מחזירה את קוד השגיאה ססדחסקק50 דסא ה6880. התוכנית חייבת במקרה זה להשתמש בפונקציה 6/%866וח8א503700א6ו₪. לביצוע הסינון.. לקבלת מידע נוסף אודות הפונקציה ה1910ח654587608, פנה לתיעוד הנלווה למהדר שלך כשאתה מיישם את ידית החיפוש, יכולה התוכנית שלך להשתמש בידית זו בפונקציה. 6 כדי לחפש קבצים אחרים שתואמים את אותו מבנה סינון. כאשר התוכנית אינה צריכה יותר את ידית החיפוש, היא צריכה לסגור אותה על ודי הפונקציה 060050ח₪. % הערה: בערכת הפיתוח א50 של 4.0 דא פאוסטחווו ניתן הסבר מפורט אודות סוגי א0717551!65ח/ 9 חיפוש באמצעות 03+78 50876 ולא על ידי 6חו] למדת שהתוכניות מפעילות את פונקציות ₪6 כדי לחפש קבצים בספריה/תיקיה. לחילופין, התוכניות יכולות להשתמש גם בפונקציה ח53160031 כדי לחפש את הקוב הרצוי. עם ואת, הפונקציה חז3לה56316 מחפשת את הקובץ רק בקבוצת נתיבים מסוימת, כמפורט בטבלה 17.18. את הפונקציה ח70ח59316 כותבים כמו בהגדרה שלהקן. 5685018 סהסוום הפק (0ע08פ 01 4006685 // לק 190578 6הפתס1!; :0 8649685 //‏ ,סתבאס[נעק1 8ש1905 הס:פת6:א= 08 86496858 // ,הס1פהסאפק1 190578 שמ 08 ,806655ע8הם 1 ,8196 // ,ת6מת18ע50!טמה תתסאםם 63160806 במטס? צ0] 666פטמ 05 2006688 // ,8668נמק1 הדפדק1 6תפמסקחסם 0116 0 פששתנסק 08 5649685 //‏ 12886נעק1* הצפצק1 6 כו ומבוא ל-ספו הפונקציה ח0781ז563 מקבלת את הפרמטר שמפורטים בטבלה 17.18. טבלה 17.18: הפרמטרים שמקבלת הפונקציה 78 568160. פרמטר ולו ה ו ו וו ה תיאור מצביע למחרוזת המסתיימת ב--1וט! ומגדירה את הנתיב. שהפונקציה מחפשת בו את הקובץ. אם פרמטר זה הוא וטא הפונקציה מחפשת קובץ תואם בספריות/תיקיות העוקבות לפיי הסדר שלהלן 1. הספריה שהיישום נטען ממנה. הספריה הנוכחית. תחת א9 סח - בספריית המערכת של פשוסטחו//י. השתמש. בפונקציה /6000זו0וח5:6ץ66/5 כדי לקבל את הנתיב של ספריה. זו. תחת דו! 5וס0חו/ - בספריית 32 סיביות של המערכת. השתמש בפונקציה ז6010ז665/51601 כדי לקבל את הנתיב. של ספריה זו. השם של ספרית 37 סיביות של המערכת הוא: בדרך כלל 5518032. 4. תחת דו₪ פאוסטחו/ - ספריית 16 סיביות של המערכת. אין פונקציה של לוו שמקבלת את הנתיב של הספריה הזו, אך הפונקציה מחפשת אותה. בדרך כלל, שם ספריה זו הוא: בב 5. ספריית 265ו00ח/ו. השתמש בפונקציה 6 כדי לקבל את נתיב הספריה הזו. 6. הספריות שנמצאות במשתנה הסביבה /711 של פאוס0חו/ מצביע למחרוזת המסתיימת ב-א ומגדירה את שם הקובץ. שצריך לחפש. מצביע למחרוזת המסתיימת ב-014)! ומגדירה סיומת שהפונקציה מוסיפה לשם הקובץ כאשר היא מחפשת את הקובץ. התו הראשון של סיומת שם הקובץ חייב להיות נקודה. הפונקציה מוסיפה את. הסיומת רק אם שם הקובץ שאתה מנדיר אינו כולל סיומת. אס. התוכנית אינה דורשת סיומת שם קובץ, או אס שם הקוב מכיל. סיומת, פרמטר זה יכול להיות וטא האורך בתווים של החוצ) שמקבל את הנתיב התקף ואת שם. הקוב. מצביע לחוצץ שמכיל את הנתיב התקף ושם הקוב של הקוב שנמצא. מצביע לכתובת (שב-ז286ו) של הרכיב האחרון של הנתיב התקף. ושם הקובץ. ו כתובת התו שלאחר הלוכסן ההפוך האחרון () בפירוט הנתיבב פרק 17: קלט/פלט בחלונות = 527 אס הפונקציה 56360781 מצליחה, היא מחזירה את האורך, בתווים, של המחרוות. שהיא העתיקה לחוצץ, ללא תו .)ו המסיים. אס הערך המוחזר (כלומר, אורך המחרוזת) גדול מ-ְַח610//טח, הערך שהתונקציה 56316030 מחזירה הוא גודל. החוצ שדרוש לה בכדי להחזיק את פירוט הנתיב. אם הפונקציה נכשלת, הפונקציה מחוירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז0ו/60012915. התקליטור שמצורף לספר וה מכיל את התוכנית 686 זס) .568768 (בתיקיה 5. כאשר מהדרים ומריצים את התוכנית 686 זסא 568700 היא משתמשת בפונקציה 59367 כדי לחפש בכונן את הקובץ 63.6%5. אם התוכנית. מוצאת את הקובץ 636.648, היא מציגה את נתיב הקוב בתיבת הודעה. 0 קבלת נתיב זמני בתוכניות 6 למדת בוודאי ליצור קובץ זמני, ואתה יודע שאחד הצעדים שצריך לעשות. לשם כך הוא לקבוע אם הנתיב הומני נלקח ממשתנה הסביבה קוופד או קוד ב-ו0חוו,. תוכל להשתמש בפונקציה 8ו8לק60ד/66 כדי להשיג את הנתיב של הספריה/תיקיה ש-608חו משתמשת בה לקבצים ומניים. ‏ את הפונקציה 66760290 כותבים בתוכנית כמו בהגדרה שלהלן 6 סהסוום %65פטט שֶ) 05 ,85808685מ0 18 ,5126 // ,ַ6מת16ע56!טפה תתסאםם ספ .קמ6ף צ0] 5666טמ 01 4006685 // טפ 19558 9 הפרמטר וחסַחט טח מגדיר את הגודל, בתווים, של חוצ המחרוות מפורט בפרמטר זט!/8קן. הפרמטר זפ!טפק! מצביע לחוצץ המחרוות, שמקבל את המחרוזת. שמסתיימת ב-₪011 ומגדירה את נתיב הקובץ הזמנר אס הפונקציה 60119007 מצליחה, היא מחזירה את האורך, בתווים, של המחרוות. שתתוכנית העתיקה לפרמטר זפ!שפקו, לא כולל את תו ₪11 המסיים. אם הערך המוחזר (למעשה, מחרוות הנתיב) גדול מ-וַח6116!וטפח, הערך המוחזר הוא הגודל. של החוצץ שדרוש לפונקציה בכדי להחזיק את מחרוות הנתיב בשלמותה. אם הפונקציה נכשלת, הפונקציה מחזירה אפס. הפונקציה 661600815 מקבלת את הנתיב הזמני בצורה זר 1. הנתיב שמוגדר על ידי משתנה הסביבה קואד. 2. הנתיב שמוגדר על ידי משתנה הסביבה ק18%, אם וס6חו/ ינה מגדירה קואד. 3. את הספריה הנוכחית, אם פווסחוו אינה מגדירה ואד או קוופד. 8 כו ומבוא ל-ספו 1 יצירת קבצים זמניים קל ופשוט ליצור קבצים זמניים בתוכניות פוווס6חו). הפונקציה 08006|קח6ד06. יוצרת שם עבור קובץ זמני. שם הקובץ הוא השרשור של נתיב ומחרוות שאתה מגדירר כקידומת, תבנית של מחרוזת הקסדיצמלית ממספר שלם שאתה מגדיר, והסיומת. קוזד. המספר השלם שאתה מגדיר יכול להיות שונה מאפס. במקרה כזה, הפונקציה. חק וטד/65 וצרת את שם הקובץ, אך אינה יוצרת את הקוב עצמו. אס אתה מגדיר '"אפסיי עבור המספר השלם, הפונקציה יוצרת שם ייחודי ויוצרת את הקוב בספריה המוגדרת. את הפונקציה טוחפא0/%קוחס69%1 כותבים כמו בהגדרה שלהלן. ו 1 התפת [צ81200:0 0% 8402058 // שחפאנםפק1 תפס 1 18 צשבמססחם: צם+ // א11נם 806ה116: 08 88402088 // ,1450106 פעסס1 תעפפסק1 6 60 4שפג צסמתטה // פמט פאצט 6מ11008? עעםצסמחש: // שפמט 5566טכ 05 4445658 // 161 109978 886ה110: אשת בג 6061968, // לו הפרמטר 6וחפאוהלק!. מצביע למחרוזת המסתיימת ב-))!. ומנדירה את נתיב הספריות/התיקיות של שם הקובץ. המחרוות שמסתיימת ב-011 חייבת להיות מורכבת מתווי 051/. היישומים מציינים בדרך כלל נקודה או את תוצאת הפונקציה 6676 עבור הפרמטר 6וזבאתוגלקו. אם פרמטר זה הוא -1ו0א, הפונקציה נכשלת. הפרמטר חָה50א60וקק| מצביע לקידומת מחרוות המסתיימת ב-א הפונקציה חגלקוז6616 משתמשת בשלושת התווים הראשונים של קידומת המחרוזת. המסתיימת ב-!וא כקידומת שם הקובץ. מחרוות זו חייבת להיות מורכבת מתווי ב הפרמטר פטףוחטט מגדיר מספר שלם לא מסומן, אשר הפונקציה הופכת אותו למחרוזת הקסדצימלית לשימוש ביצירת שם הקוב הזמני. אם פטףוחטט שונה מאפס,, הפונקציה מוסיפה את המחרוזת ההקסדצימלית ל-ָופא60זק| כדי ליצור את שם הקובץ הזמני. אם פוףוחטט שונה מאפס, הפונקציה אינה יוצרת את הקוב המוגדר, ואינה בוחנת אם שם הקובץ הוא ייחודי. אם פוףוחטט שווה לאפס, הפונקציה שהלקחו6דו66 משתמשת במחרוות הקסדצימלית שגוזרת אותה מומן המערכת הנוכתי. אם פטףוחטט שווה לאפס, הפונקציה משתמשת בערכים שונים, עד שהיא מוצאת שס קובץ ייחודי, ואז היא יוצרת את הקוב בספריה טוחכותסקו. הפרמטר 6וח9אוקוחפדק! מצביע לחוצץ אשר מקבל את שם הקובץ הזמני. חוצ זה הוא מחרוות המסתיימת ב-1טא! ומורכב מתווי 8%51. חוצץ זה צריך להיות לפחות. באורך המוגדר על ידי המערכת בקבוע וק אאא (בדרך כלל, 255) כדי להכיל את כל' מחרוות הנתיב. פרק 17: קלט/פלט בחלונות = 529 אס הפונקציה תו3לק0ח6016 מצליחה, היא מחזירה את הערך המספרי הייחודי שמשתמשים בו בשם הקובץ הזמני. אם הפרמטר פטףוחטט שונה מאפס, הפונקציה מחזירה את אותו מספר, כמו שהוסבר; אס הפונקציה נכשלת, היא מחזירה אפס. הפונקציה 6וח9א6!קוחפד60 יוצרת שם קובץ זמני בפורמט קווד.טטטטסזקתוט, כאשר חוגק מייצג את הנתיב שמוגדר על ידי הפרמטר פוחגאתזלקו, סז מייצג את שלוש האותיות הראשונות של המחרוזת הַו5א6זקקו, ו-טטטט מייצג את הערך ההקסדצימלי שמוגדר בפרמטר סטףוחטט. כאשר יוצאים מ-05ו60חו+, 5ו00חו/ אינה. מוחקת בצורה אוטומטית את הקבצים הומניים ששמותיהם נוצרו על ידי הפונקציהה - ו אס הפרמטר 6טףוחט שווה. לאפס, 806א6קוח9ד/6 מנסה ליצור מספר ייחודי שמבוסס על ומן המערכת הנוכחי. אם קונץ עם שם הקובץ שנוצר קיים, 10%3006קח0/0 מגדילה את המספר באחד וחוזרת על הבדיקה עבור שם הקוב הקיים. הפונקציה ממשיכה בבדיקות, עד שמוצאת שס קובץ ייחודי, ואז היא יוצרת. קובץ עם השם הייחודי הוה וסוגרת אותו. כאשר פטףוחטט שונה מאפס, הפונקציה 0011986 אזינה מנסה ליצור ולפתוח את הקוב. התקליטור שמצורף לספר זה מכיל את התוכנית קוחטד 6866ז0, אשר משתמשת. בפונקציות חופלקוחסד661 ו- 661106 כדי להשיג שס קובץ ומני. כאשר התוכנית מתחילה, היא יוצרת קוב זמני לשימוש התוכנית ומציגה תיבת הודעה עם. שם הקובץ הזמני. כאשר התוכנית מסתיימת, היא סוגרת ומוחקת את הקובצ. 2 הפונקציה 2106 68+03160ו0 למדת שהתוכניות יכולות להשתמש בצינורות (שמשתמשים בהם באופן כללי לתקשורת בין שני מחשבים או יותר) בצורה דומה לפעולות קלט ופלט של קבצים. כשרוצים להשתמש בתוכנית בצינור, חייבים ליצור אותו תחילה. הפונקציה 1630086006 יוצרת: מופע של צינור בעל שם (פפןל שפוחא) בשרת צינור (סי 56 ומחזירה ידית לפעולות עוקבות בצינור. תהליך של שרת צינור בעל שם משתמש בפונקציה 6כןק0:6319%7006 לשני דברים: האחד - ליצור את המופע הראשון. של צינור בעל שם שאתה מגדיר ולקבוע את התכונות הבסיסיות שלו; והשני - ליצור מופע נוסף של צינור בעל שם קיים. שים לב שבאפשרותך להשתמש בצינורות בעלי שם. רק בתקשורת ברשתות. את הפונקציה 6קו067ו610319/80 כותבים בתוכניות כמו בהגדרה שלהלן. ו 6+ מנפואתה שחפת שקנ 50 עבמתצסם // [פמבאק1 תפס 1 הפס שמגש // סו 0 סהסום =פסתבספה: 01 צססמוה ממתגאמת // 6 הפועת סהסאום פע 1 ,5126 ?טע סמקטטם // 5165126 )גוס סהסאום 0 321חווו ומבוא ל-ספו שפפעם ה1 ,2126 162,טמ שמשחג // סמ 1111860008 ת1 ,6186 שטס-שהצט // 5416 שת סאסוום 1 מ600פק1 פפצטמנאצטה צפ1תט0ם 18 8שממ86)1 ץ1%עו500 50 עבמתצסם // הפונקציה 6קו1/0007ט)6163 מקבלת את הפרמטרים שמפורטים בטבלה 117.19 טבלה 17.19 או 6 6 1 0 בו + הפרמטרים שמקבלת הפונקציה 0631008000 תיאור מצביע למחרוות המסתיימת ב-)שא ומזהה את הצינור באופן ייחודי. המחרוזת חייבת להיות בפורמט. שוחפחסקוק ספוק.\, רכיב שחוחסקוק של השם יכול להכול. כל תו מלבד לוכסן הפוך, כולל מספרים ותווים מיוחדים. כל מחרוות של שם צינור יכולה להגיע לאורך של 256 תווים. שמות הצינורות אינס תלויות רישיות (356> ה מציין את מצב הגישה של הצינור, מצב החפיפה. (11006 6קקה!01), מצב כתיבה כוללת (חמסזחד-ס)ואה, מצב גישה מאובטחת (060/ 400955 /560016) של ידית. הצינור. הפרמטר %069ח9פ0/0 חייב להגדיר דגל אחדד מדגלי מצב הגישה לצינור שמפורטים בטבלה 17.20 וחייב להגדיר אותו דגל מצב עבור כל מופע של הצינור. מגדיר את מצבי הסוגים, הקריאה וההמתנה של ידית. הצינור. הפרמטר 0/7/0606 חייב להגדיר דגל אחד אר יותר מדגלי מצב סוג הצינור שמפורטים בטבלה 17.21 ועליך להגדיר אותו מצב או מצבי סוג עבור כל מופע של הצינור. אם אתה מגדיר אפס, פרמטר ערך ברירת המחדל הוא מצב סוג-בית (006 0-706ע8). מגדיר את המספר המקסימלי של המופעים שהפונקציה יכולה ליצור עבר הצינור. הפרמטר 665ח58זח1א3//ח חליב. להגדיר את אותו מספר עבור כל המופעים. ערכים מקובלים הם בתחום 1 עד 185788655 סמדנוא ואט פפנק. אס פרמטר זה שווה ל- 1518665 סדוו ואט 6קזק, רק. זמינות משאבי המערכת יכולה לגרום להגבלת מספר מופעי הצינור ש- 010319%800007/06 יכולה ליצור. מגדיר את מספר הבתים שצריך לשמור עבור חוצ הפלט. מגדיר את מספר הבתים שצריך לשמור עבור חוצ הקלט. פרק 17: קלט/פלט בחלונות = 531 פרמטר תיאור !ופוח | מגדיר את ערך פסק הזמן של ברירת המחדל, במילישניות, אם הפונקציה 8106%80609[06/ מגדירה את. דועו דוטאחפ =5ט -דנשוקוא. כל מופע של צינור בעלל שם חייב להגדיר את אותו ערך. 0/5 560כן | מצביע למבנה מסוג 85ד180הדד/ 5500817 אשר מגדיר מתאר אבטחה (ז10קו20501 /8ו5600) עבור הצינור בעל השם. וקובע אס תהליכי בן יכולים לרשת את הידית המוחזרת. אם פסטטו5906/01ק! שווה ל-011, הצינור בעל השם. מקבל אתברירת המחדל של מתאר האבטחה ותהליכי בן אינס יכולים לרשת את הידית. כמו שלמדת בטבלה 17.19, יש מספר ערכים של קבועים מובנים אשר 05ס6חוא מאפשרת לך להשתמש בהם עבור הפרמטר 60/006ק0/0. טבלה 17.20 מפרטת את הערכים האפשריים של מצבים אלה. טבלה 17.20: הערכים האפשריים עבור הפרמטר 006106 8. מצב תיאור סוד מדנפא 6 15 | מאפשר מצב כתיבה כוללת (הפטסזחד-1400/. מצב וה משפיע רק על פעולות כתיבה בצינורות. מסוג בית (8/9-706), ואחר כך, רק כאשר תהליכי הלקוח והשרת נמצאים במחשבים. שונים. אס 1118006 דופ 16 פוה מאפשר מצב זה, פונקציות שכותבות לצינור בעלל שם אינן חוזרות עד שהמערכת משדרת את. הנתונים שנכתבו דרך הרשת ומעבירה אותם. לחוצץ הצינור במחשב הרחוק. אם הקריאה. ל-010310%8060006 = אינה מאפשרת מצב צה, המערכת משפרת את יעילות הפעולות ברשת עלל ידי העברת הנתונים לחוצ, עד שמספר מינימלי של בתים מצטבר, או עד שעובר זמן מקסימלי. מאפשר מצב פופה (0000 800 ח00). אםי הפונקציה 6ק/016319/)2₪0607 מאפשרת מצב זה, פונקציות שמבצעות קריאה, כתיבה, וחיברר (60פחחס0), ועשויות לפעול זמן רב, יכולות לחצור מיד (והפעולה הרצויה תימשך בחפיפה). לדוגמה,, במצב חפיפה, מטלה יכולה לטפל בפעולות קלט. ופלט בו-ומנית במופעים רבים של צינור, אד לבצע פעולות קריאה וכתיבה באותה ידית של הצינור. טלק וטס או פוה 2 זקא2חווו ומבוא ל-ספו מצב 6 זאו אואצוס. דוהא 00955 55 5 תיאור אם הפונקציה 61689%8006706 ינה מאפשרת. מצב חפיפה, פונקציות שמבצעות פעולות קריאה, כתיבה, וחיבור בידית הצינור, אינן חוזרות עד שמערכת ההפעלה מסיימת את הפעולה. התוכנית. יכולה להשתמש רק בפונקציות 650165 ו- 9/65%ז עם ידית הצינור במצב חפיפה. הפונקציות 86308/6, 6 פזוז, ד יכולות לפעול בצורה סינכרונית או כפעולות. חפיפה. פרמטר זה יכול להכיל צירוף כלשהו של. דגלי מצב אבטחת גישה שמפורטים בטבלה זו דגלי מצב אלה יכולים להיות שונים עבור מופעים. שונים של אותו צינור. באפשרותך להגדיר אותם. מבלי לדאוג למצבים אחרים שהגדרת כבר. ב 6 לתהליך הקורא יש גישת כתיבה לרשימת בקרת הגישה, 801 (1150 (סחס6 60995א) ששולטת. בצינור בעל השם. לתהליך הקורא יש גישת כתיבה לאב של הצינור. בעל השם. התהליך הקורא הולך לקבל גישת כתיבה. למערכת רשימת בקרת הגישה (01א) של הצינור. הפרמטר 0/906/005. מאפשר להגדיר כיצד להשתמש במופע הנוכחי של הצינור. באפשרותך להגדיר סוג, מצב קריאה, ומצב המתנה בפרמטר 06/068ו6/0. טבלה. 1 מפרטת את ערכי המצב האפשריים. טבלה 17.21: הערכים האפשריים עבור הפרמטר 010601006 /4. מצב פדום קויד שקנ שו שפד קד תיאור כתיבת נתונים לצינור כזרם של בתים. אינך יכול להשתמש במצב זה עם. שו סוס הפה שקזקי כתיבת נתונים לצינור כזרם של הודעות. אפשר להשתמש במצב וה עם. סואס הפה שק1ק אר פופ מססויוס אפ סקזק פרק 17: קלט/פלט בחלונות = 533 מצב 4 פדום פססווסהפה שקנ שו שססואסאפה שקנ זאו שקנ האעוסא שקנ אפ קט 06555 שקנ קא32ח/וו ומבוא ל-0פו תיאור קריאת נתונים מהצינור כזרם של בתים. אפשר להשתמש במצב זה עם. 8 קצך 0176 או 876 שקצד מקנק. אפשר להגדיר מצבי קריאה שונים עבור מופעים שונים של אותו צינור. אס מגדירים. אפס, הפרמטר מקבל את ערך ברירת המחדל. שהיא מצב קריאת בתים (1066 66ח-8/6). קריאת נתוניס מהצינור כזרם של הודעות. תוכל להשתמש במצב זה רק אם תגדיר את 8 פקצך 6קזק. אפשר להגדיר מצביי קריאה שונים עבור מופעים שוניס של אותר צינור. אס מגדירים אפס, הפרמטר מקבל את ערך ברירת המחדל, שהינה מצב קריאת בתים 3 מאפשר מצב נעילה (1006/ 8/060). כאשר מגדירים את ידית הצינור בפונקציות ₪6305/6, אד 601360706 החס6 = מערכת. ההפעלה אינה מסיימת את הפעולות עד שהפונקציה קוראת נתונים, כותבת את כלי הנתונים, או מחברת לקוח, בהתאמה. משמעות. מצב ד41/ו 196 יכולה להיות המתנה עד אינסוף במצביס מסוימים, עד שתהליך לקוח. יסיים לבצע את משימתו. אפשר להנדיר מצבי המתנה שונים עבור מופעים שונים של אותו צינור. אס מגדירים אפס, הפרמטר מקבל ערך ברירת המחדל שהינו מצב חסימה. מאפשר מצב אי-נעיל (0060 הַח81000-חסוח). במצב זה, הפונקציות 86365/6, טח ו-06ו001)070067החסם. תמיד חוזרות מיד. הצינור הוא דו-כיווני ((6000003זו-:8) ; תלוכי השרת והלקוח יכולים לקרוא מהצינור ולכתוב בו. מצב וה מקנה לשרת גישה לצינור ששקולה. ל- דוהאו 655016 | סאפ 65%8816. הלקות יכול להגדיר 50 6516 אר שדוחו 65%6816, או שניהם, כאשר הוא. מתחבר לצינור על ידי השימוש בפונקציה 6 באפשרותך להגדיר מצבי גישה שונים עבור מופעים שונים של אותו צינור מצב תיאור סאטספוו 400555 סקזק | זרימת הנתונים בצינור היא מלקוח לשרת בלבד. מצב זה מקנה לשרת גישה לצינור ששקולה ל- ₪50 65%86816. הלקוח חיוב להגדיר גישה ד1//ו 658816 כאשר הוא מתחבר לצינור סאטספדטס 00555 פקנק | זרימת הנתונים בצינור עוברת משרת ללקוח. בלבד. מצב זה מקנה לשרת גישה לצינור ששקולה ל- פדזא/ו 66%8816. הלקות חיוב. להגדיר גישה 850 6586816 כאשר מתחבר לצונור. אם הפונקציה 6ו907וח6163192 מצליחה, היא מחזירה ידית לקצה השרת של הצינור בעל השם; ואם היא נכשלת, היא מחצירה פטואע = וסא/או סזא/או1. כדי לקבל מידע שגיאה | מורחב, | צריך | לקרוא | ל-70ש60291. = הפונקציה = מחזירה הסדטוותמהק סזואטאן הסאה | אם | הפרמטר | 8065|פה]אמה ‏ גדול מ- 185140055 סשדנוא1 ואט שקזק. כדי להשתמש ב- 0310309076 ליצירת מופע של צינור בעל שם, חייבת להיות. למשתמש גישה 5סוותדפאן סקזק מדאפה6 1/5 לאובייקט הצינור בעל השם. אם הפונקציה 6ק/0163101/270007 יוצרת צינור חדש בעל שם, רשימת בקרת השגיאה (0) מפרמטר תכונות האבטחה מגדירה את השליטה בבקרת הגישה של הצינור בעל השם. כל המופעים של צינור בעל שם חייבים להגדיר את אותו סוג צינור (6ַ9-1ו/8, 6ד-59306ס/), גישה לצינור (אפוקטס, מחטספח1, אד שחטספוטס), מונה מופעים וערך פסק זמן (טס-6ווז). אם המופעים משתמשים בערכים שונים, 00060006 נכשלת, ו- ז0זום35 66 מחזירה 0פזוופ .00555א, הסהקם גודל חוצצי הקלט והפלט הוא בגדר המלצה. במילים אחרות, גודל החוצץ הממשי אשר 0005חו/ שומרת לכל אחד מקצות הצינור בעל השם הוא ברירת המחדל של המערכת, הערך המינימלי או המקסימלי של המערכת, או הגודל שאתה מגדיר מעוגל כלפי מעלה. לגבול ההקצאה הבאה. שרת הצינור אינו צריך לחסום קריאה (8636 פַ81000) עדד שהלקוח של הצינור מתחיל; אחרת, מצב תחרות יכול להתרחש. תנאי תחרות קורה בדרך כלל, כאשר קוד אתחול (כמו פונקציית אתחול של תהליך) חייב לנעול ולבדוק. ידיות שעברו בירושה. תנאי תחרות (ח060ח0 8965) הוא שגיאה בתהליך מרובה מטלות, שבו קוד של מטלה אחת נשען על מטלה אחרת שתסיים פעולה כלשהי, ואיך סינכרון בין שתי המטלות. התהליך פועל כראוי, כאשר המטלה השנייה "מנצחת" בתחרות על ידי סיום פעולתה לפני שהמטלה הראשונה צריכה אותה; אבל התהליך. נכשל אם המטלה הראשונה '"מנצחתיי בתחרות. פרק 17: קלט/פלט בחלונות = 535 התוכנית תמיד מוחקת מופע של צינור בעל שם, כאשר היא סוגרת את הידית האחרונה של אותו מופע של הצינור. בסעיף 17.34 תלמד להשתמש ב- 6קול0וח5א3ס. ו- 06/901000[6חחס6 יחד עס 6ק0163191)0706071 כדי לבצע פלט בשרת רשת. 3 התחברות לצינור בעל שם למדת בסעיף קודם שבאפשרות התוכניות להשתמש בפונקציה 9%800607006ו03ז0 כדר ליצור צינור בעל שם, או להתחבר אליו. פעמים רבות, התוכנית שלך תפעל במחשב. הלקוח, אשר מכריח אותה להתחבר לצינור בעל שם כדי להתקשר עם השרת, במקום. ליצור צינור בעל שם (פעולה החייבת להתבצע בשרת הצינור). בנוסף לכך, לפני שתתוכנית שלך יכולה להתחבר לצינור בעל השם של השרת, הצינור בעל השם חייבב לקרוא לפונקציה 06ו660האפהחס. הפונקציה 6קול0פח3א00טחחס6 מורה לתהליך. שרת צינור בעל שם להמתין לתהליך לקוח, כדי שיתחבר למופע של הצינור בעל שם. תהליך הלקוח קורא לפונקציה 6:63165/6 או לפונקציה 611896 כדי להתחבר למופע. תלמד יותר על הפונקציה 06ו0800667ו031: בסעיף הבא. את הפונקציה 606 כותביכו בתוכניות כמו בהגדרה שלהלן. 0 06 60 שקנק הפתפה %0 16מתמת // ו טוסמ56 18068משטס 50 ששטה1סם // 6סקקב1טסטסמ1 ספפפתנתמט190 / הפרמטר 06ק0פוח8אח. מצייך את צד השרת במופע צינור בעל שם, והפונקציה 36 מחזירה. ידית גו הפרמטר 80000ו1ו0ק1 מצביע למבנה מסוג ספקקה 0/1 (וכפי שלמדת בסעיף 17.2, הוא מאפשר לתוכניות לבצע קלט/פלט אסינכרוני). אס הפונקציה מצליחה, הערך המוחור שונה מאפס; אם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז251970 6001. באפשרות תהליך שרת של צינור בעל שם להשתמש ב-601%8₪0607006חח00 עם מופע. חדש שנוצר לצינור, או עם מופע שהתחבר קודם לכן עם תהליך לקוח אחר. במקרה האחרון, תהליך השרת חייב לקרוא תחילה לפונקציה 06ו0600800660חח0ספום. כדר לנתק את חיבור הידית עם הלקוח הקודם, לפני ש-6קו007ו06000980חס0 יכולה לחבר את הידית הזו אל לקוח חדש. אחרת, 06ו6010800600הח0 מחצירה 356ה, ו-ז350670 66 מחזירה אד )א 88808 אם הלקוח הקודם סגר את הידית שלו, אד שהיא מחזירה 600666 0126 .808 אם לא סגר את הידית שלו. התנהגות הפונקציה 06ו60080660חחס תלויה בשני תנאים: אם אתה קובע את מצב ההמתנה של ידית הצינור לנעילה (פַ8/006) או אי-נעילה (6ח8/066-חסא), ואם: אתה מורה לפונקציה שתפעל בצורת מצב סינכרונית או מצב חפיפה. השרת מגדיר בשלב. האתחול את מצב ההמתנה לידית הצינור בפונקציה 06ו66ו9310%80ו0, וצריך להשתמש בפונקציה 500%310607106%206/651316 כדי לשנות את המצב. אס הפונקציה פותחת את 6ק60וחבאה עס סשקקו הפש 36 ₪ו1ה, ‏ אסור שהפרמטר 66קקבזסצסקן יהיה שווה ל-011; הוא חייב להצביע למבנה 0060 הפס. 6 3231חו/ו ומבוא ל-ספו תקף. אם הפונקציה פותחת 6קלשפופאה | עם | סשקקהוהפ טס 6 שה ו-61190000/י0פ! שווה ל-01, הפונקציה 06ו661%800060החס6 יכולה לדווח בצורה לא נכונה שפעולת ההתחברות הסתיימה. מצד שני, אם הפונקציה יוצרת ופוח עם. ספקקה הפוס 6 1 11 ו-6סקקבוחפטסקו אינר שווה. ל-1טא!, המבנה. סקס והפס. שמוצבע על ידי הפרמטר 0פפקפוזטוסק! חייב להכיל ידית לאובייקט אירוע שמאופס. ידנית (00[960 ]הפע 8656-וטח3/, אשר השרת יכול להשתמש בפונקציה 010816860 . כדי ליצור אותו). אם הפונקציה אינה פותחת 6קל6סוחאח | עם | סשקקה הפ טס 6 שזה, ו-6פקקפוזפצסק! שווה ל-011, הפונקציה אינה חוזרת עד שהתוכנית מתחברת ללקוח, או שנוצר מצב שגיאה. פעולות סינכרוניות מוצלחות גורמות לפונקציה להחזיר פד אס לקוח מתחבר לאחר שתתוכנית קוראת לפונקציה. אס לקוח מתחבר לפני שתתוכנית קוראת לפונקציה, הפונקציה מחזירה ₪386 ו-ז0זז66.391 מחזירה. ספד80אא0 6קזק. הסהה6. תוצאת 586 יכולה לקרות, א לקוח מתחבר במרוות. זמן שבין הקריאה ל-60006ו6163199₪ לבין הקריאה ל-06ו600800607חחס6. במקרה. זה, יש חיבור טוב בין הלקוח והשרת, אפילו אם הפונקציה מחצירה 356 אם הפונקציה אינה פותחת את 6קןק0פוחהאח | עם 0פקק )הפש 6 שוזה, ו-67/90000/י0פ1 אינר שווה ל-01, הפעולה מתבצעת בצורה אסינכרונית. הפונקציה חוזרת מיד עס ערך ששווה ל-66ו. אס תהליך לקוח מתחבר לפני שהתוכנית קוראת. לפונקציה, 601391810 מחזירה. 60ד0שאאס6 =קזק ₪08ה6; אחרת, 001500707 מחזירה 88016 .10 88808, אשר מציין שהפעולה מתבצעת ברקע. כאשר דבר זה מתרחש, התוכנית קובעת את אובייקט האירוע שבמבנה 0068/0080 למצב לא מסומן 51309 354ח(5-חסא), לפני ש-6ו660וח8א660החסס חוזרת, והתוכנית קובעת. אותו למצב מסומן כשהלקוח מתחבר למופע זה של הצינור. באפשרות תהליך השרת להשתמש בכל פונקציה מפונקציות ההמתנה או בפונקציה 8%ק56, כדי לקבוע מתי מצב אובייקט האירוע הוא מסומן (500/66). אחר כך, השרת יכול להשתמש בפונקציה 61/000608650%ו69/0. כדי לקבוע את תוצאת 0 אם ידית הצינור שאתה מגדיר היא במצב. אי-נעילה (1006// חַח8/006-חסא), ‏ 06ו607הפ)סטההס6 תמיד חוורת: מיד. ‏ במצב אי-נעילה, 06 מחצירה פד בפעס הראשונה שהתוכנית קוראת לה עבור מופע צינור, אשר התהליך כבר ניתק אותו מלקוח קודם. הדבר מציין למערכת שהצינור תקף עכשיו, כדי לחבר אותו עם תהליך לקוח חדש. בכל שאר המקרים, כאשר ידית הצינור במצב. אי-נעילה, ‏ 6קקְפוחּא/6חחס6 מחזירה ./56‏ במקרים אלה, 6631 = מחזירה 86[א1576| פקזק הסאה אם אין ‏ לקוח שמחובר, פאס 6קזק. הסאה6 - אם יש לקוח מחובר, ו- אדא סא 88808 - אס לקוח קודם סגר את ידית הצינור שלו אבל השרת לא התנתק. שים לב, כאשר צינור נמצא במצב אי-נעילה, חיבור טוב בין לקוח לבין שרת מתקיים רק לאחר שהתוכנית מקבלת. את הודעת השגיאה 6066760 שקזק. ₪0ה6. פרק 17: קלט/פלט בחלונות = 537 % הער8: הפונקציה ‏ 6קקמאטטהחס6 | תומכת | במצב ‏ אי-נעילה (069/ הַח810000-חסא) בגלל תאאימות עם 99061 13 008סור 0. אינך חייב להשתמש בה כדי להשיג קלט ופלט אסינכרוני עם. צינורות בעלי שם. 4 קריאה לצינור בעל שם תוכניות יכולות ליצור צינור בעל שם בקצה השרת שבחיבור רשת. קצה הלקוח חייבב במקרה זה להתחבר לצינור בעל השם כדי לשלוח אליו מידע. באפשרותך להשתמש. בתוכניות בפונקציה 61630686 או ב-6קןק0פוחּא!ו כדי להתחבר לצינור בעל שם. הפונקציה. 6ַק60חו!//63 מבצעת. חיבור לצינור מסוג הודעה (06ע01695906-7) וממתינה אם מופע הצינור אינו ומין, כותבת בצינור וקוראת ממנו, ואחר כך סוגרת את הצינור. את הפונקציה 6קוקטפוחא!ו63 כותבים בתוכניות כמו בהגדרה שלהלן. 00 1 שמפת סק1ם 60 פששהגסם //‏ ,בתבַסםנפ4םתבאק1 תלפצסק1 665פטם ₪5586 0 צשסמבסם // ,6%65טממנק1 פנסטטב 566פטט 166צא 08 ,פשטעט 1 ,5186 // סמ ע555טכ 2688 0 צמממבסק // ,1568מְטסק1 פדסט1 ש%6פטמ 5688 05 ,66מעט מ1 ,8186 // סו 4 8ספעם 05 ממסחטם 60 ש6ףה1סם // סט 1111500 ה1 ,סח1ם שמם-שח1ם // 10 פהסוום הפונקציה 31/8806 מקבלת את הפרמטרים שמפורטים בטבלה 17.22 טבלה 17.22: הפרמטרים שמקבלת הפונקציה 6ק1ק66וחהא!08. פרמטר תיאור שוחהאסקול0סוחאקן | מצביע למחרוזת המסתיימת ב-₪011 ומגדירה את שם. הצינור זס!וטפחזקו | מצביע לחוצץ שמכיל את הנתונים אשר 6קו8600או/3ס. כותבת בצינור. זה | הגודל, בבתתים, של חוצ הכתיבה. ז!וטפונוספן | מצביע לחוצץ שמקבל את הנתונים ש- 860006 ו/3ס. קוראת מהצינור. ה | הגודל, בבתים, של חוצץ הקריאה. 8 3271חו/ו ומבוא ל-ספו פרמטר תיאור | מצביע למשתנה בן 32 סיביות שמקבל את מספר הבתים. ש- 6118560 קוראת מהצינור. וטסטוחודה | מספר המילישניות שצריך להמתין לצינור בעל השם עד. שיהיה זמין. בנוסך לערכים מספריים, התוכנית יבולה לציון ערכים מיוחדים שמפורטים בטבלה 17.23 כאשר אתה קורא לצינור בעל שם דרך רשת, חשוב לקבוע מגבלה לפרק הזמן שבו התוכניות ימתינו לצינור בעל השם עד שיגיב. הגבלות הזמן מונעות ממחשב לקו להמתין עד אינסוף, כדי להתחבר עם צינור בעל שם שיכול להיות עסוק, מנותק, או אפילו שאינו קיים. בנוסף להגדרת זמן המתנה קבוע במילישניות של התוכניות שלך לתגובה מצינור בעל שם, תוכל להשתמש גם בערכים שמפורטים בטבלה 17.23, כדי לשלוט בומן שתהליך הלקוח שלך צריך להמתין כדי להתחבר עס צינור בעל שם. טבלה 17.23 קבועים של פרקי ומן להמתנה עבור הפונקציה 6ק8!8₪16071. פרמטר תיאור דוואוסא ‏ דזהשוקוואו || אינו ממתין לצינור בעל שם. אם הצינור בעל. שס אינו זמין, הפונקציה מחזירה שגיאה. 8ש/מחס דוהעצ דוהעוקויוא | ממתין לצמיתות. דאוו. דוטאפס 056 -דוהשוקווא || משתמש בפרק הצמן של ברירת המחדל. שמוגדר בקריאה לפונקציה. ב אם הפונקציה מצליחה, הערך המוחזר שונה מאפס; אם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז3518110 60%. הקריאה ‏ ל-פולטטוּאו631 = שקולה | לקריאה ‏ לפונקציות 0763099/6‏ (אר 606וח8אשו3ו, | א 63009/6ז6 | אינה ‏ יכולה ‏ לפתוח ‏ את הצינור = מיז), ל-900106וח8א60פחזד ול-6/05071800/0. התוכנית קוראת ל-07031986 עם דגל גישה דוהאו 5916א68 | סגפה 68%6816, דגל ידית שעברה בירושה וערכו 5856, ומצב. שיתוף (100 זח5) שערכו אפס (שמציין שאין שיתוף במופע הצינור הזה). אם ההודעה שתהליך השרת כותב בצינור ארוכה מ-018006526ח, 560706 מחזירה 3/56, ז0זז66113518 מחצירה אדא =חסוי.68808. תהליך השרת מתעלם משארית ההודעה, מכיון ש-6קו607ו18ג סוגרת את הידית של הצונור לפני שהיא חוזרת. בתקליטור שמצורף לספר וה תמצא את התוכניות 56196.6 ו-01/608.6. (בתיקיה. 5661 611608 קח17קַת8008559285). כאשר מהדרים ומריצים את התוכנית 6.ז56, היא יוצרת צינור בעל שם במחשב המקומי. אס אחר כך מהדרים ומריצים. את התוכנית 608.6ו61, היא 6106086 קוראת לצינור בעל שם. התוכנית 60%.6/ס. פרק 17: קלט/פלט בחלונות = 539 מציגה את ההודעה ואחר כך כותבת מחרוות נתונים בצינור בעל שם. כאשר השרת. מקבל את ההודעה מהצינור בעל שם, הוא מציג את המידע בתהליך משלו. שים לב שדוגמה זו פועלת על מחשב בוד שמייצג תחנת שרת ותחנת לקוח גם יחד. 2% הערה: הפנקציה 6קוקפוחגא!וג6 נכשלת, אם הצינור שהפונקציה מנסה לקרוא לו הוא צינור מסוג-בית (716 809-106 5 התנתקות מצינור בעל שם תוכניות משתמשות בצינורות בעלי שם, כדי לקשר בין שני תהליבים שפועלים בשני מחשבים שונים (ואפילו באותו מחשב). לאחר שמסיימים את שיתוף הנתונים בין שנר התהליכים, חשוב לסגור את הצינור בעל שם, כך שלא יגרום להאטת הרשת או המחשב. בדרך כלל, סוגרים את ידית הצינור בעל שס אצל הלקוח תחילה, ואחר כך. מנתקים את הצינור בעל שם אצל השרת. הפונקציה 6018800667006חח60פום מנתקת. את קצה השרת של מופע צינור בעל שם מתהליך לקות. את הפונקציה 601007 ח560ום כותבים בתוכניות כמו בהגדרה שלהלן. ( הבונת פפונת) שק 018685 הת1560ם מ0סם הפרמטר 06וק66הובאח מצייך מופע של צונור בעל שם, והפונקציה 1006006 חייבת ליצור ידית זו. אם הפונקציה מצליחה, הערך המוחזר שונה מאפס; ואם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז970ו25 601. אם קצה הלקוח של צינור בעל שם פתוח, הפונקציה 06ו907וח68חח500ו0. כופהה סגירה על הקצה הזה של הצינור בעל שם. הלקוח מקבל הודעת שגיאה אם ינסה לפנות. שוב אל הצינור. לקוח אשר 601%800607(06חח960ום מנתקת אותו מהצינור חייב עדייך להשתמש בפונקציה 009990606 כדי לסגור את קצה הצינור שלו. כאשר תהליך השרת מנתק מופע צינור, הוא מתעלם מכל הנתונים שלא נקראו מהצינור. לפני ההתנתקות, ובכדי להיות בטוח שנתונים לא אובדים, השרת צריך לקרוא לפונקציה 615!/פוחחפטוז. פונקציה זו אינה חוזרת, עד שתהליך הלקוח קורא: את כל הנתונים. תהליך השרת חייב לקרוא ל-6קו6018800060חח60פום כדי לנתק את. ידית הצינור מהלקוח הקודם שלה, לפני שהוא יכול לחבר את הידית ללקוח אחר עלל ידי השימוש בפונקציה 6009066706 חחסס. 6 בחינה חוזרת של העיבוד האסינכרוני למדת שבאפשרות התוכניות שלך לאחסן נתונים בקבצים ולאחור מהם נתונים. במרבית ההתקנים שמשתמשים בפלט סינכרוני או אסינכרוני. כמו שלמדת, קלט/פלט. אסינכרוני ‏ של קבצים מאפשר לתוכניות ‏ לבצע פעולות שאינן. סינכרוניות (66קחסוהטחץ5-חטא). עם. ואת, חשוב להבין יותר טוב מדוע תרצה לבצע פעולות קלט/פלט אסינכרוניות. 0 3231חווו ומבוא ל-ספו בהשוואה למרבית הפעולות שמבצע המחשב, קלט/פלט מהתקנים ואליהם, בהתאמה, הוא אחד האיטיים ביותר. המעבד מבצע פעולות אריתמטיות ואפילו צביעת המסך יותר מהר מאשר הוא קורא נתונים מקובץ או כותב נותנים בקובץ ישירות, או דרך רשת. קלט/פלט אסינכרוני מאפשר לך להשתמש במטלות רבות, כדי להורות למערכת. ההפעלה שתקרא מהתקן או תכתוב בהתקן, בומן ששאר הקוד ביישום ממשיך להתבצע. כדי להבין יותר טוב כיצד קלט/פלט אסינכרוני משפר את ביצועי התוכנית, נניח שאתה. מפתח יישום מסד נתונים פשוט. כאשר המשתמש פותח מסד נתונים, היישום קורא: את תכולת מסד הנתונים לזיכרון, וגם אל קובץ אינדקס כלשהו. לאחר שהמשתמש. בוחר במסד הנתונים שעליו לטעון, היישום חייב להיות מופסק ומנית כדי לטעון את כל הנתונים לתוך הציכרון (לפעמים הוא מציג שעון חול לנוחות המשתמש). כשאתה משתמש בקלט/פלט אסינכרוני, התוכנית יכולה להתחיל בפעולת הקלט/פלט. של הדיסק שמבוצעת על ידי בקר הדיסק, והמעבד מבצע משימות אחרות שאינן קשורות באותו ומן. קלט/פלט אסינכרוני מאפשר לך לבצע פעילויות קלט/פלט רבות. באותו זמן - או להתחיל בפעילות קלט/פלט שאינה קריטית (1/0 ו618063-חס)) ולאפשר לה להסתיים בזמן שלה מבלי להאט את ביצועי התוכנית שלך. כל שהתוכניות שלך הופכות להיות יותר מורכבות ואתה קורא יותר נתונים מהכונן הקשיח וכותב בו יותרר נתונים, או שאתה פועל עס התקנים אחרים, יתרונות הקלט/פלט האסינכרוני הופכים. למשמעותיים מאוד בשבילך. 7 קלט פלט אסינכרוני כדי לגשת להתקן בצורה אסינכרונית, אתה חייב לקרוא תחילה ל- 01030686 כדר לפתוח ‏ את ההתקן ולהגדיר ‏ את הדגל ספקקה |השש0 6 פוא בפרמטר הפסה וחאוט. = הדגל ספקקה וטס 10 ןז מודיע למערכת שבכוונתך להשתמש בהתקן עבור קלט/פלט אסינכרוני מערכת ההפעלה 1032 מאפשרת לך להשתמש בארבע טכניקות שונות, כדי לבצע קלט/פלט אסינכרוני. התיאוריה ליישום הטכניקות האלו היא אחת. כאשר אתה מבצע. קלט/פלט אסינכרוני, אתה חייב לקבל דרישת קלט/פלט ממערכת ההפעלה. מערכת. ההפעלה מכניסה כל הדרישות לקלט/פלט לתור, ומטפלת בהן בצורה פנימית. בומן שמערכת ההפעלה מטפלת בדרישות קלט/פלט, היא מאפשרת למטלה שלך לחזור ולהמשיך בעיבוד שלה. בנקודה כלשהי אחר כך מערכת ההפעלה מסיימת את משימת. הקלט/פלט ומודיעה ליישום שלך ששלחה וקייבלה את הנתונים, או שקרתה שגיאה. כמו שנאמר, יש ארבע טכניקות קלט/פלט שונות, שמפורטות בטבלה 17.24 לפי סדר המורכבות שלהן, מהקל ביותר להבנה וליישוס (סימון ידית התקן, 8006 סופ ופפ עד הקשה ביותר להבנה וליישום (ערוצי קלט/פלט משלימים, 1/0 3 פרק 17: קלט/פלט בחלונות | 541 טבלה 17.24 טכניקה 0 06008 8 031000 (סימון אובייקט התקן. ו (סימון אובייקט אירוע) ו (הודעות על פעולות קלט/מלט) 60 1/0 (ערוצי קלט/פלט משלימים) 2 זקא2חווו ומבוא ל-ספו + ארבע הטכניקות לטיפול בקלט/פלט אסינכרוני תיאור שימוש בפונקציית המתנה (חס0סחט" 00) וידית. התקן כדי לבצע קלט/פלט אסינכרוני. טכניקה זור אינה שימושית אס אתה מתכוון לבצע דרישות קלט/פלט רבות בו-זמנית בהתקן יחיד. מטלה אחת יכולה לעסוק בדרישות קלט/פלט, ומטלה. אחרת - לטפל בור שימוש בפונקציה 10/001609(6085ז0=) הא ובאובייקט אירוע 09660 56%) אחד או יותר, בדי לבצע קלט/פלט אסינכרוני. מטלה אחת עשויה להוציא דרישה לקלט/פלט, ומטלה אחרת - לטפל. בו שימוש בתור הודעות מיוחד, כדי לטפל בהודעות. שינוי מצב של מערכת ההפעלה על כך שפעולות. קלט/פלט אסינכרוניות הושלמו. כאן יש יותר גמישות מאשר בעת שימוש באובייקט איירוע גרעין, מכיון שבאפשרותך להשתמש בפונקציות משוב (פחסמסחט 866פ311ס) ולטפל באופן ייחודר בהודעות, כדי להגיב למידע מערכת ההפעלה על. פעולת הקלט/פלט. המטלה שהציגה את דרישת הקלט/פלט חייבת גם כן לטפל בתגובה. בטכניקה זו אפשר להשתמש במערכות ד0! 00%5חו/ו בלבד. השימוש ב-/006 1168000 זחסזזטסחס6 (מודל. טיפול בו- זמנית על ידי מטלות, מוסבר בסעיף 6 מכוון להגיב למספר גדול של דרישות קלט/פלט בו- זמנית. הדבר מאפשר למטלה אחת לעסוק בדרישת קלט/פלט ומטלה אחרת - לטפל. בו. הטכניקה המדורגת של ערוצים משלימים, היא השימושית ביותר בין מפתחים מקצועיים. באפשרותך להשתמש בטכניקה זו במערכות. 05 בלבד. 8 המבנה סםשקק. ומפצס בטבלה 17.24 למדת שהטכניקה הפשוטה ביותר לביצוע קלט/פלט אסינכרוני בהתקן היא להשתמש בסימון ידית התקן ופ 69/60-0800/6), אשר נדון בה בסעיף 9 כדי להציג דרישת קלט/פלט, צריך להשתמש בפונקציות 863086 ו-6!פווזא שהוצגו בסעיפים 17.7 ו-17.8. עם ואת, כדי לבצע קלט/פלט אסינכרוני בהתקן, התוכניות חייבות לאתחל מבנה מסוג 7950/ו0/88 ולמסור את הכתובת שלו בפרמטר 66קקמוזסוסקו. ממשק זקא 2חוו מגדיר את המבנה 081/42080, כמו שרואאים להלן ) ממפפהנתמטס 56566 ₪465 166 סהסום 1סם פחסאום 0 סמם שנסאות פתנתפטס [ טבלה 17.25 מפרטת את איברי המבנה סשקקג פַס. טבלה 17.25: איברי המבנה שק וא/ס, איבר תיאור והחזסוח1 | מגדיר מצב תלוי מערכת (0ה06ח6ק6פ-55/91). איבר זה תקף כאשר הפונקציה %/6610%91000608954 חוזרת מבלי לקבוע את מידע השגיאה המורחב ל- 6אזסאפק -10 .88₪08. שמור לשימוש מערכת. ההפעלה. חטוזומחזסוח1 | מגדיר את אורך הנתונים שמועברים. איבר זה תקף כאשר. הפונקציה /6610%61/00260865 מחצירה שטזד. שמור לשימוש. מערכת ההפעלה. 056 | מגדיר מקום בקובץ שממנו צריך להתחיל בהעברה. מקום בקובץ. הוא היסט (0//960) הנמדד בבתים מתחילת הקובץ. התהליך הקורא: קובע איבר וה לפני הקריאה לפונקציות 863086 א 6פזוזשו. התהליך הקורא מתעלס מאיבר ה כאשר קוראים מצינור בעל שם. ומהתקני תקשורת, או כותבים אליהם. 0155600 | מגדיר את המילה הגבוהה (40/6 חִפָ) של ההיסט שממנה צריך להתחיל בהעברה. התהליך הקורא מתעלס מאיבר זה כאשר. קוראים מצינור בעל שם ומהתקני תקשורת, או כותבים אליהס. הצפה | מזהה אירוע שנקבע למצב מסומן (51389 5/0366 סד 561 חס כאשר ההעברה מסתיימת. התהליך הקורא קובע איבר אה לפנ שהוא קורא לאחת הפונקציות 863056, 6ופאוזא, א 0 ד פרק 17: קלט/פלט בחלונות = 543 באפשרותך להשתמש במאקרו 6060ק615006610000/י150. כדי לקבוע אם פעולת. קלט/פלט אשינכרוני הסתיימה. בפונקציה 63069119 תוכל להשתמש כדי לבטל פעולת. קלט/פלט אסינכרונ. 9 קלט(פלט אסינכרוני עם אובייקט התקן גרעין התוכניות יכולות לבצע קלט/פלט אסינכרוני על ידי שימוש בארבע טכניקות שונות, שביניהן, הקלה ביותר לשימוש היא אוביייקט התקן גרעין (090660 !סז 69066 כאשר מבצעים קלט/פלט אסינכרוני עם אובייקט התקן גרעין, אתה למעשה מורה למטלה להמתין עד שהקלט/פלט יסתיים. לדוגמה, נניח שאתה קורא מקובץ על ידי שימוש בפונקציה 86306 ובמהלך הקריאה אתה מבצע איושהו עיבוד. עם זאת, התוכנית אינה יכולה להמשיך מעבר לנקודה מסוימת עד שפעולת הקריאה מסתיימת. במקרה כזה, אפשר לכתוב קוד שדומה לקטע שלהלן ,(8169טמ)512605 ,1]02טמ ,18בעה) ב ( 0 08 שעשה הַמ6581ססצם // (מצונטוות ,116עה) 668 510616003 טמ וט מ1 18 0868 811 ב1שתט מ במ // א כאשר קוראים לפונקציה 60986ַח5וסא9ו עם ידית של התקן קלט/פלט אסינכרוני, הפונקציה ממתינה עד שמערכת ההפעלה מסיימת את העיבוד המתאים. עבור ההתקן, לפני שהיא משחררת את המטלה ומאפשרת לה להמשיך. 0 הגדרת גודל שטחי עבודה (200%85) 5126 561-שח1)!זסצ) כאשר התוכניות מבצעות קלט/פלט אסינכרוני, מערכת ההפעלה מחזיקה עבורן רשימת דרישות קלט/פלט לביצוע. מערכת ההפעלה מתקנת את גודל הרשימה בעת. אתחול המערכת. לפעמים, דרישת קלט/פלט אסינכרוני יכולח להיכשל מפני שרשימת דרישות קלט/פלט לביצוע מלאה כבר. אס הרשימה מלאה כאשר אתה רוצה לצרף דרישה נוספת, ₪806 ו-6פזוזא מחזירות ,?86‏ ו-ז0זז 663919‏ מחזירה. הפמט ה6פט סדוהטאז הסתחם אר צהסוופו ה6טסאם דסא הסחחש. יותר מכך, כאשר אתה מבקש דרישת קלט/פלט, המערכת חייבת "לנעול דף" ('1906 טי = המתייחס לחוצ הנתונים של התוכנית. חוצץ הנתונים הוא חלק מקבוצת התצורה 560 הַ00ו) של התהליך, ולכל תהליך יש קבוצת תצורה מקסימלית. קבוצת התצורה של תהליך היא קבוצת דפי הזיכרון שזמינים כרגע לתהליך ב-8% הפוסי. אם. אין לך די מקוס בקבוצת התצורה של התהליך, הדרישה לקלט/פלט גורמת לכישלון, 4 321חווו ומבוא ל-0פו ו-ז70ש350 66 מחזירה הדסט 680068 דסא 58808. באפשרותך להגדיל את קבוצת התצורה של התהליך על ידי קריאה ל-600560526ז561070605500, שסעיף 1 מסביר אותה בפורוט. 1 שינוי גודל של שטחי עבודה בסעיף קודם למדת שבאפשרות התוכניות להגדיל את קבוצת התצורה שלהן, ולמעשה. - שטחי העבודה (קבוצת דפי הציכרון שומינים כרגע לתהליך הזיכרוף), לפי צרכי התוכנית שדורשת מרחב נוסף בקבוצת התצורה שלה. דפים אלה שוכני זיכרון ותקפים. לשימוש עבור היישום מבלי לגרום ולעורר שגיאת דף. גודל קבוצת התצורה של התהליך מוגדר בבתים. הגודל המינימלי והגודל המקסימלי של קבוצת התצורה משפיע על התנהגות דפי הזיכרון הווירטואלי של התהליך. הפונקציה 6טַ5ו5פַ069991/01ק 560‏ קובעת את הגודל המינימלי ואת הגודל המקסימלי של קבוצת התצורה עבור התהליך שאתה מגדיר. את הפונקציה 560556ַפַח/6ז560706055)0 כותבים בתוכניות כמו בהגדרה שלהלן 0 01 688ססעם סט 50 81הגת מסקס //‏ ,085סמפעת מנסאתת 4008518651 תאסאום. 6 56% הַת!מעסט מוהצת1ה 011168פ // סא 0 80% הַת%1עסש ממהנצגה 50011168 // / הפרמטר 00955זק₪ הוא: ידית פתוחה לתהליך שרוצים לקבוע את קבוצת התצורה שלוו תחת )| 0005חואו, = הידית | חייבת ‏ להיות | בעלת ‏ וכות ‏ גישה | מסוג אדסטס 56 800855ק. הפרמטר 56556ֶחאזס/חטוחוחוו מגדיר קבוצת תצורה מינימלית עבור התהליך. מנהל הציכרון הווירטואלי מנסה לשמור לפחות כמות זו שלל זיכרון = במסגרת = התהליך = כל | עוד = שהתהלוך | פעיל. = הפרמטר מ5ס5מַחאזס/וחטוואה/%/ו מגדיר קבוצת תצורה מקסימלית עבור התהליך. מנהל. הזיכרון הווירטואלי מנסה לא לשמור יותר מכמות זו של זיכרון בתהליך, כל עוד התהליך פעיל ויש מחסור בזיכרון. אס הפרמטרים 6ק565פַזסהחוחוח:1/ - 5015026 חס / והזטרח/%// שדרים: ל >פקפקתא0, הפונקציה מסדרת באופן זמני את הקצאת שטחי העבודה לאפס. הדבר גורס להעתקת כל הזיכרון של התהליך להתקן חיצוני, כאשר יש מחסור בזיכרון פוסי אם הפונקציה מצליחה, הערך המוחור שונה מאפס; אס הפונקציה נכשלת, היא מחוירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז0ו/60012915. באפשרותך לרוקן את שטח העבודה של התהליך המוגדר על ידי הגדרת הערך 0599968 עבור שני הפרמטרים המינימלי והמקסימלי של גודל שטח העבודה הזה. אס אחד מהפרמטרים 561526ף6זסטוחטחווחו/ אס א 0705015026 גדול יותר מגודל שטח העבודה הנוכחי של התהליך, התהליך המוגדר חייב להיות בעלל פרק 17: קלט/פלט בחלונות = 545 הרשאה >וואאא +דנמס1הק 8856 16 55. מערכת ההפעלה מקצה שטחי עבודה בשיטת "ראשון נכנס, ראשון מקבל שירות' (₪05-56066 ,₪06ס0-0פז₪). לדוגמה, אם: יישום מצליח לקבוע 40/8 כגודל שטח העבודה המינימלי במערכת של 64%8, ויישום. שני דורש 40/8 כשטח עבודה, מערכת ההפעלה דוחה את דרישת היישום השניי השימוש בפונקציה 06959//01600561528זק561 כדי לקבוע את שטח העבודה המינימלי והמקסימלי אינו מבטיח שמערכת ההפעלה תשמור את כמות הזיכרון הנדרשת, א שהויכרון יישאר ומין כל הומן. כאשר היישוס במצב המתנה (166, או כאשר יש מחסור בזיכרון (503000 עזסוח9!-אוס!) ויש דרישה לזיכרון נוסף, מערכת ההפעלה. יכולה לצמצם את גודל שטח העבודה של היישום. היישום יכול להשתמש בפונקציה. % ו כדי לנעול תחומים במרחב הציכרון הווירטואלי של היישום; אך הדבר עלול לגרום להורדת ביצועי המערכת באופן ניכר. כאשר אתה מגדיל את שטח העבודה של היישום, אתה גוזל למעשה ציכרון פיי משאר יישומי המערכת. הדבר יכול לגרום להורדת ביצועי יישומים אחרים ושל המערכת. כולה. גזילת ציכרון פיסי עלולה לגרום גם לכישלון בפעולות שדורשות זיכרון פוסי להמשך פעולתן; לדוגמה, יצירת תהליכים, מטלות, ומאגר גרעין ((00 ופחז6א). לכן, כאשר אתה מתכנן יישום, אתה חייב להיות והיר בעת שימוש בפונקציה ותמייד לקחת בחשבון את ביצועי כלל המערכת. 2 הפונקציה 10ם+35 3001 במהלך הלימוד ראית פעמים רבות שאפשר להשיג מידע רב יותר אודות שגיאות התוכנית. בדרך כלל, התוכניות צריכות לקרוא לפונקציה זסזז39:5 ₪61 כדי להשיג מידע נוסף. פונקציה זו מחזירה את ערך קוד השגיאה האחרונה של המטלה הקוראת. מערכת ההפעלה מחזיקה את ערך קוד השגיאה האחרונה על פי מטלות. על כן, במצב של ריבוי מטלות, מטלה אחת אינה דורסת (פזוזוא0) את קוד השגיאה האחרונה של מטלה אחרת. את הפונקציה ז0ז/3915 601 כותבים כמו בהגדרה שלהלן (9018) צעמ 001.28 סתסאום הפונקציה מחזירה את קוד השגיאה האחרונה של המטלה הקוראת. הפונקציות קוראות לפונקציה ז0ז56/3919 כדי לקבוע את ערך קוד השגיאה האחרונה. צריך לקרוא לפונקציה ז0זז3518 66% מיד לאחר שהערך המוחזר של פונקציה מציין שקריאה ל-ז3508110 06 מחזירה נתונים בעלי משמעות (כמו למשל, מידע שגיאה מורחב), מכיון שחלק מהפונקציות קוראות ל- (563518/701)0 כאשר הן מצליחות, ומוחקות את קוד. השגיאה שנקבע על ידי הפונקציה האחרונה שנכשלה. מרבית הפונקציות ממשק התכנות 71 32חוו אשר קובעות את ערך קוד השגיאה האחרונה של המטלה, עושות ואת כאשר הן נכשלות; חלק קטן מהפונקציות קובעות. אותו כאשר הן מצליחות. ערך קוד השגיאה המוחזר, כמו 53/55 -)א, אאפקפפאט, או 1-, מציין בדרך כלל כישלון של הפונקציה. קודי שגיאה הס ערכים בני 32 סוביות. 6 32371חו/ו ומבוא ל-ספו (סיבית 31 היא הסיבית המשמעותית ביותר). סיבית 29 שמורה עבור שגיאות שמוגדרים על ידי היישומים; אין קוד שניאת מערכת שקובע את הסיבית הזו. אם אתה מגדיר קוד שגיאה עבור חיישום, קבע את סיבית 29 לאחד. קביעה זו מציינתת שהיישום מגדיר את קוד השגיאה, ומבטיח שקוד השגיאה שלך אינו מתנגש עם קוד השניאה המוגדרים ‏ במערכת ההפעלה. באפשרותך ‏ להשתמש בפונקציה הז כדי לפרמט את פלט התוצאה שמתקבל מקריאה ל-01זזם)5 60. בסעיף הבא תמצא הסבר של הפונקציה 06ַ8/46553וזס=. 3 עריכת הודעות שגיאה עם וס התוכניות משתמשות בפונקצה ז0זז6611315 כדי להציג את השניאה האחרונה של המטלה. הן מציגות ערך מספרי בלבד, בשעה שאנו מעדיפים לראות כמעט תמיד את תיאור השגיאה כהודעת טקסט ברורה ומובנת. הפונקציה 30/1655306וחזס עורכת מחרוות הודעה. את הגדרת ההודעה היא יכולה לקבל מחוצץ שמועבר אליה, או מטבלת הודעות במודול שכבר נטען. בנוסף לכך, התהליך הקורא עשוי לבקש מהפונקציה לחפש בטבלאות של הודעות המערכת את הגדרת ההודעה המבוקשת. הפונקציה מוצאת את הגדרת ההודעה בטבלת הודעות על' פי מוהה ההודעה ומוהה השפה. הפונקציה מעתיקה את טקסט ההודעה הערוכה אלל חוצץ פלט ומבצעת מספר פקודות, אם יש כאלו בגוף ההודעה. את הפונקציה הז כותביםו בתוכניות כמו בהגדרה שלהלן. סט ספסוום 61088 500699184 404 // סו 506 8655896 0 שששמ1סם // 150 1000010 1000016165 5890פסה 0:פסג0ם, // וו 506 1060616165 פַטפָהב // ו ו 16₪פטמ 8655896 0 שששמ01ם // 1 19 555פמ0 סהַ8פפסת 05 120ם ממתבאמה // ,196פת סחסאום 05 ע8פ5ב 05 4445688 // ש6משחטפפת* 1186 פע ספת // 0 טבלה 17.26 מפרטת את הפרמטרים שמקבלת הפונקציה )הזז טבלה 17.26: הפרמטרים שמקבלת הפונקציה 8)1655806חזס פרמטר תיאור 5 | קבוצה של דגלי סיביות, אשר מגדירות את היבטי תהליך. העריכה ואיך לפרש את הפרמטר פסז50קו. בית הסדר הנמוך. 819 ז006-אוס) של 690% מגדיר כיצד הפונקציה תטפל פרק 17: קלט/פלט בחלונות = 547 פרמטר ב 3 1 ו ב ב תיאור במעברי שורות (816366 שח/)) בחוצץ הפלט. בית הסדר הנמוך גם. יכול להגדיר את הרוחב המקסימלי של פלט שורה מפורמט. אפשר להגדיר צירוף של דגלי טיביות כמפורט בטבלה 17.27 מקום ההגדרות של ההודעה. סוג פרמטר וה תלוי בערכים. שנקבעו בפרמטר 5סגאו0. אס פּסַוו₪ נקבע לערך. ₪ וטססויו ואס 65ה655וא. דה/הס=, אז ססזספפו הואי 06 של המודול שמכיל את טבלת ההודעות שצריך לחפש. אך אס קבעת את פִחַ00. ל-8186ד5 80 65א5פפון. דהואהס=, אז ססוספכן הוא: 58| אשר מצביע לטקסט הודעה שאינו מפורמט. אם אינך קובע ב-5ּחַַו0 אף לא אחד משני דגלים אלה, הפונקציה מתעלמת מ- 66זס5פן ממוהה ההודעה בן 32 סיביות. הפונקציה מתעלמת מפרמטר זה. אס פַ009 מכיל את הדגל. 6 055865 מוחה השפה בן 32 סיביות עבור ההודעה הדרושה. הפונקציה מתעלמת מפרמטר זה אס 05 מכיל את הדגל. 56 יוסח 1655806 דהווהס. א אתה מעביר 1/4610 מסוים בפרמטר זה, 80/655306חז0= מחזירה הודעה רק עבור זא שצוין. אם הפונקציה אינה יכולה למצוא הודעה עבור זא 1 ֶה, היא מחזירה. טס סא 16 500805 ה מצביע לחוצץ עבור ההודעה המפורמטת ו-1 מסיים. אם: 95 מכיל הפפסטם פד 00 וא 66הפפפוו. דאואהס=, הפונקציה מקצה חוצץ באמצעות הפונקציה 06ו1א/1063, ומציבה. את כתובת החוצץ בכתובת שמוגדרת ב-861קו אס אינך קובע את הדגל. השפחט 6דה106וא 1655806 דאויומסז, פרמטר זה מציין את מספר הבתים המקסימלי (גרסת 8851), או את מספר התווים. (גרסת 00/6066) אשר התוכנית יכולה לאחסן בחוצ הפלט. אם. אתה מגדיר ח6חט8 5זא100ו 1655806 דהואהס5, פרמטר זה מציין את מספר הבתים המינימלי, או את מספר התווים. המינימלי, בהתאמה, שצריך להקצות לחוצץ הפלט. מצביע למערך של ערכים בני 32 סיביות שמשמשים כערכי כניטה. (פסט !ו ]ספח1) בהודעה הערוכה. %1 בפורמט המחרוזת מציין את הערך הראשון במערך הארגומנטים; %2 מציין את הארגומנט השני; וכך הלאה. 8 3271חוו ומבוא ל-ספו הפונקציה מפרשת את הערך 32 סיביות לפי מידע העריכה שמוכל בפרמטר פסַַ0. והמקום הממשי של הגדרת ההודעה. ברירת המחדל היא להתייחס לכל ערך כמצביע. למחרוות המסתיימת ב-0011!. לפי ברירת המחדל, הפרמטר מז הוא מסוג 8% , שהינו סוג נתונים המיושם במיוחד בשפה, כדי לטפל במספר ארגומנטים. משתנה. | אם ‏ אין מצביע ‏ מסוג 8/6 צריך ‏ להגדיר | את הדגל ההא דאפואט6הה. 5865פפו -ד/08* ולהעביר מצביע למערך שמכיל ערכים בני 32 סיביות; ערכים אלה הם קלט לאיתור האיבר המתאים (הכניסה בטבלה) לקבלת ההודעה הערוכה. לכל ערך כניסה חייב להיות ערך מתאים במערך. טבלה 17.27 מפרטת את דגלי העריכה עבור הפרמטר פסָג00. טבלה 17.27 הערכים האפשריים עבור הפרמטר 80/81895. עיך פירוש הפחטפ 4.0085 586פפו דאס | הפרמטר 180/61 הו מצבוע למצביע. מסוג סזסשז, והפרמטר 506ח מציין את. מספר הבתים המינימלי (גרסת זַפאא) אד את מספר התווים המינימלי (גרסת. 6 שצריך להקצות לחוצ הפלט. של ההודעה. הפונקציה מקצה חוצץ' מספיק גדול, כדי שיכיל את ההודעה. הערוכה, ומציבה מצביע לחוצץ שהוקצה. בכתובת שמוגדרת על ידי ז6זזט8קו. פדהספאן 168085 55865פוא דהוהס< | הפונקציה חייבת להתעלם מרצף כניסות. (פפסחשט560 +ו6פח1) בהגדרת ההודעה,, ולהעביר אותן אל חוצץ הפלט ללא: שינוי. דגל זה שימושי לקבלת הודעה ועריכתה יותר מאוחר. אם אתה מגדיר דגל זה, הפונקצציה מתעלמת מהפרמטר. ב 6אזד5 אסא 55865פוו דהוהס< | מציין ש-65זוס5ק! הוא מצביע להגדרת. הודעה המסתיימת ב-1וטא. הגדרת. ההודעה יכולה להכיל רצף כניסות, כמר שטקסט ההודעה שבמשאב טבלת. ההודעות יכול להכיל רצף כניסות. אינך יכול להשתמש בדגל עריכה וה עם. טסוו וסחי 55865סו האס אר דפ 80 55865פו הס פרק 17: קלט/פלט בחלונות = 549 ערך פירוש = טסוו 80 655865 תפס | מגדיר ש-66ז50כ! הוא ידית מודול. שמכיל את טבלת ההודעות לחיפוש. אם. הידית 5סזנוס5פ! שווה ל-צוטא, הפונקציה מחפשת בעותק הלוגי של התהליך. הנוכחי של היישום. אינך יכול להשתמש. בדגל עריכה זה עם. הד סה 1855866 דהווהס. %פד515 סאה 65אפפפאא זואהס< | מגדיר שהפונקציה צריכה לחפש בטבלת. ההודעות של המערכת עבור ההודעה. הדרושה. אם אתה מגדיר דגל זה עם. טסוו וסחי 565פסו דווהס=, הפונקציה מחפשת בטבלת ההודעות של. המערכת, אאם אינה מוצאת את ההודעה במודול שמוגדר על ידי ס6ז50פ!. אונך יכול להשתמש בדגל עריכה זה עם. 6זחד5 80 55865פו. דאוהס. +אמאה, דאפויוט6אה, ה6ה5פפוא. דהווהס< | מציין שהפרמטר פוחסוחופָז אינו מבנה. *5%!!/ ה, אלא רק מצביע למערך של ערכים בני 32 סיביות שמייצגים את הארגומנטים. אם הפונקציה מצליחה, היא מחזירה את מספר הבתים (גרסת 8851) או את מספר התווים (גרסת 6068ח0) שמאוחסנים בחוצץ הפלט, ללא תו 11 המסיים; אם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל- 6081915007 בטקסט ההודעה, הפונקציה תומכת במספר רצפי חילוף 59690695 890306) עבור. עריכת הודעה דינמית. טבלה 17.28 מציגה רצפי חילוף אלה ואת הפירוש שלהם. כלל רצפי החילוף מתחילים בתו י"אחוניי (%). טבלה 17.28: רצפי החילוף האפשריים של תווי הבקרה לעריכה עם התחילית %. רצף החילוף פירוש 0 | מסיים שורת טקסט הודעה מבלי להוסיף תו שורה חדשה בסופה. אפשר להשתמש ברצף חילוף זה כדי לבנות שורות ארוכות, או לטיים את ההודעה עצמה. מבלי להוסיף תו שורה חדשה בסופה. דבר זה שימושי להודעות של בקשת אישור מהמשתמש. 0 3271חו/ו ומבוא ל-0פו רצף החילוף 5 )החזס! וחוזק! ה פירוש מוהה כניסה. הערך של ח יכול להיות בתחום מ- 1 עד 9. פורמט מחרוזת זוחוזק (המחרוזת חייבת להיות בין שני סימני קריאה) הוא רשות וברירת המחדל היא 151 אם אינך מגדיר אותה. פורמט מחרוזת זוחוזק יכול. להכיל את תו הבקרה 'י*יי בשביל הדיוק או רוחב הרכיב. אס אתה מגדיר *'*"י עבור מרכיב אחד, הפונקציה 3)/1655306וחזס" משתמשת בכניסה 960+1; היא משתמשת ב- %60+2 אם אתה מגדיר את ''*" עבור שני המרכיבים. הפונקציה אינה תומכת בפורמט הנקודה הצפה. טחוסל-חַ1030) של שחוזק עבור תורי הבקרה 6, 5, ז, ו- 6, של וחוזק. החלופה היא להשתמש בפונקציה שחוזפפ כדי לפרמט את המספר בשיטת הנקודה הצפה בחוצ. זמני, ואחר כל להשתמש בחוצ) זה כמחרוזת הכניסה. הפונקציה עורכת כל תו אחר שאינו תו מספר, שמופיע אחרי סימן האחוו בפלט ההודעה. היא מציגה את התו עצמו, בלי סימן האחוז התחילי. טבלה 17.29 מציגה מספר דוגמאות לפלט תווים שאינם משמשים לפעולות עריכה. טבלה 17.29: דוגמת פלט לתווים שאינם משמשים לפעולות עריכה (פירמוט). פורמט מחרוזת 9% 9 ) % ₪ תוצאת הפלט סימן אחוז יחיד בטקסט ההודעה הערוכה. מעבר שורה קשיח כאשר פורמט המחרוזת נמצא בסוף. שורה. פורמט מחרוזת זה שימושי כאשר 0080655306 מספקת מעברי שורה רגילים, כך שההודעה מתאימה. לרוחב מסוים. רווח בטקסט ההודעה הערוך. תוכל להשתמש בעריכה זר של המחרוות, כדי להציב מספר רווחים בסוף שורה של. טקסט ההודעה הערוך. נקודה יחידה בטקסט ההודעה הערוך. תוכל להשתמש. בפורמט מחרוזת זה, כדי להוסיף נקודה אחת בתחילת. שורה, מבלי לסיים את הגדרת טקסט ההודעה. סימן קריאה יחיד בטקסט ההודעה הערוך. תוכלל להשתמש בפורמט מחרוזת זה כדי להוסיף סימן קריאה מיד לאחר הטקסט, מבלי שתהיה מפורשת באופן שגוי כתחילת מחרוזת עריכה של זוחוזק. פרק 17: קלט/פלט בחלונות = 551 4 קלט(פלט אסינכרוני עם אובייקט אירוע גרעין בסעיף 17.41 השתמשת בפונקציה 3/6:015/09/609(601/ יחד עםו ידית התקן של התקן אסינכרוני כדי לבצע קלט/פלט אסינכרוני. השימוש באובייקט התקן גרעין, כמו שמוצג בסעיף 17.41, פשוט יחסית וברור למדי, אך הוא אינו שימושי לטיפול בדרישות. קלט/פלט רבות בו-ומנית. אם, לדוגמה, אתה מנסה לבצע פעולות קלט/פלט אסינכרוני רבות כנגד קובץ יחיד בו-ומנית, ההמתנה עבור הידית אינה עוורת לך, מכיון שהיא הופכת להיות מסומנת (60ַּחפ5₪) כאשר האירוע הראשון מסתיים, ועליך להמתין לה עוד פעם כדי שתשתחרר - דבר אשר יכול לגרוס לה להמתין לצמיתות. באפשרותך להשתמש גם בפונקציה ח996ו63ז6 כדי ליצור אובייקט אירוע גרעין תוכל אז לוהות את האובייקט הזה על ידי האיבר זחפופח של המבנה םק אפס. שמעביר אותו לפונקציית קלט/פלט אסינכרוני (89056 או 0056 כאשר מעבירים אירוע בצורה זו, מערכת ההפעלה קובעת את האירוע אוטומטית למסומן באשר פעולת הקלט/פלט מסתיימת. אך מכיון שהתוכנית יכולה לקבוע אירוע שונהה לכל פעולת קלטי/פלט, היא גם יכולה להגיב לסיוס פעולת קלט/פלט אחת ולא אחרת. בכל פעס שאתה מבצע פעולת קלט/פלט אסינכרוני, התוכנית צריכה ליצור אירוע חדש. עבור הפעולה הנדרשת. בצורה כזו, בכל פעם שמערכת ההפעלה מסיימת את העיבורר המוטל עליה, היא קובעת את אירוע הפעולה הקוראת למצב מסומן. כמו שמתואר בסעיף 17.45, תוכל אז להמתין לאירועים שאתה רוצה לסיים. 5 >6000[606!ק!ט11זס-זאובּ/ עם קלט/פלט אסינכרוני למדת שבאפשרותך להשתמש בפונקציה 909(605!קטוטיזסיא3/ו כדי להמתין לאירוע אחד מתוך אירועים רבים עד שיתרחש, או להמתין לאירועים של תת-קבוצה מסוימת. שיתרחשו. | כאשר ‏ אתה מבצע ‏ קלט/פלט | אסינכרוני, = צריך | להשתמש ב- 600[805וק1₪ט1זסיטופ. כדי לסנכרן את המטלות שלך לקבוצה מסוימת של אירועים. התוכנית צריכה לקרוא ל- 909605וק0וט!זסישומו/ עס הידיות. של כל האירועים שמערכת ההפעלה צריכה לסייים לפני שהתוכנית תוכל להמשיך בעיבוד, ואו להמתין לאירועים אלה עד שיהיו במצב מסומן. בדרך כלל מבצעים עיבוד כזה על ידי שימוש בקוד שדומה לקטע הקוד שלהלן. 6 +68צס מממאהא = [5]1ת6עם ,פפטטמ1צ66ת)תפעמם1 פמצטמנתצדה צשדה 10500 800 ,1656 פטהמ/ם 001 (1סתשעם 1001598 [1] ותסטם = 6הסטמת. 661כמ 1צסטי 800 , (ע6!;טממ) 512001 ,עס!?טממ ,8בבעמ)1 0 2 כו ומבוא ל-ספו )0568660686 מממאתה = [2]%השעם 1 5: ,1915:2%6:!הזמ מ00 ,6%פשה1בטמגעם 'תססם ומנתעצת :טס 0פטם (62ה6ם הדסק [2] הסט טפ 82 1 פטס עמה24000 , (ע5פטמם) 812601 ,ע56פממם ,116עם) 289116שת (882 1 ס, שעשה הַה66891סנק 1ממס441:1ה // (מהסטם* מנפווא צפאסס ,50%8)2[מ40נס161טמופסע)1פאו ספסאום ₪ (אז ,11ה16פאמ נססם קטע הקוד יוצר אירוע ומעביר אותו לפעולת הקריאה הראשונה. אחר כך, קטע הקוד יוצר אירוע שני ומעביר אותו לפעולת הקריאה השנייה. לבסוף, הקוד ממתיץ לשני האירועים שיחזרו לפני שהוא ממשיך את העיבודד אובייקטי אירוע הגרעין שימושיים מאוד לניהול קלט/פלט אסינכרוני. הסיכון בשימוש באובייקטי אירוע גרעין הוא כאשר אתה קובע אובייקט אירוע גרעין לאירוע שמאופס אוטומטית טחסו 8656-סטא), כי אפשר שהמטלה תיתקע לצמיתות בומן שהיא ממתינה לאירוע וסט שיתאפס, גם אס הפונקציה כבר סיימה את פעולת. הקלט/פלט. אם אתה קורא ל- 6600461800608690/6 כדי לקבוע כמה בתים הועברו בהצלחה בפעולת הקלט/פלט, היא מאפסת את האירוע למצב אינו מסומן. בקיצור, צריך להשקיף מקרוב על סדר הפונקציות שמפעילים כאשר משתמשים באוביוקטי גרעין, כדי לנחל קלט/פלט אסינכרוני בצורה נכונה. 6 יציאות קלט/פלט מסיימות (5+וסק הסול6!קוה0ס6 1/0) הטכניקה הרביעית שתוכניות עשויות להשתמש בה לביצוע קלט/פלט אסינכרוני היא השימוש ביציאות סיוס קלט/פלט (פוזסל חסטסופוחס6 0/0. בדרך כלל משתמשים ביציאות סיום קלט/פלט, כאשר בונים תוכנית שתשרת מאות, או אפילו אלפי משתמשים (כמו שרת 60//). יציאות סיום קלט/פלט מאוד אמינות ויעילות, ויכולות. לטפל ברמה טובה בנפחי תעבורה גדולים של פעולות תקשורת. כאשר יוצרים יישום. שירות, עושים ואת בדרך כלל על ידי שימוש בשיטה אחת מבין שתים אלו מודל טורי 006 ו5₪): מטלה יחידה ממתינה לדרישה מהלקוח (בדרך כללל דרך הרשת). כאשר הדרישה מגיעה, המטלה מתעוררת ומטפלת בדרישה זו. -מודל מקבילי 066 אחסזזטסחסס) + מטלה יחידה ממתינה לדרישה מהלקוח ואחר כך יוצרת מטלה חדשה כדי שתטפל בדרישה. בומן שהמטלה החדשה מטפלת. בדרישת הלקוח, המטלה המקורית חוזרת למצב המתנה לדרישה נוספת מלקוח. כלשהו. כאשר המטלה שמטפלת בדרישת הלקוח מסיימת את העיבוד המוטל עליה, היא נסגרת. פרק 17: קלט/פלט בחלונות = 553 המודל הטורי מוגבל מאוד, בכך שאינו מטפל בדרישות רבות בו-ומנית, מפני שרק מטלה אחת מטפלת בדרישות. בניגוד לכך, המודל המקבילי יכול לטפל במספר גדול. מאוד של דרישות המגיעות בו-ומנית, מפני שכל דרישה מקבלת מטלה נפרדת שמעבדת. אותה. כאשר מתכננים שירותי 7 %5ס6חוא, התוכניות ישתמשו בדרך כלל במודל המקבילי. הדרכה ליצירת שירות המבוסס על המודל המקבילי אינה כלולה בספר זה, אך לפניךך מידע מספיק, כדי להבין את ההבדל בין שני סוגי השירות המיוצגים על ידי שנר המודלים. + הערה: תוכל להשתמש ביציאות סיום קלט/פלט רק תחת זו פאוסטחוא. ל-א9 44160405 = אי את הפונקציונליות הדרושה למימוש שיטת קלט/פלט זר 7 התרעות קלט/פלט (1/0 סוטבּ+זס|) בעיבוד אסינכרוני למדת שבכל פעם שפונקציה יוצרת מטלה, המערכת יוצרת עבורה גם תור הודעות, אשר מקושר אליה. מערכת ההפעלה יוצר תור נוסף ונפרד עבור המטלה שנוצרה, אשר ידוע בשם תור קריאה לפרוצדורה אסינכרונית - 476 631 10090016 פנוסחסזת6 חפה מערכת ההפעלה משתמשת בפונקציות בסיסית (5חס0סחנ! (166-ו) של הגרעין כדר ליצור ולהחציק את תור 6. מכיון שמערכת ההפעלה משתמשת בפונקציות גרעין ברמה בסיסית כדי להחציק בתור 76א, תור זה מהיר מאוד ומהווה שיטה יעילה לניהול. קלט/פלט אסינכרונ. באפשרות התוכניות לדרוש פעולות קלט/פלט באמצעות פונקציות שיעבירו את תוצאות דרישות הקלט/פלט ישירות אל תור 96 של המטלה הקוראת. כדי לשלוח. דרישות קלט/פלט שהסתיימו אל תור 76 של המטלה, צריך להשתמש בפונקציות. 8680805 ו- אס6וסטוזאו, כמו שרואים בדוגמה זור ,0586פק1 פנסטקם ,6בועת מנסתתה) א118ע88ה מססם 0808 %ץ55 20 סמתטווה פתסאחת טסט פאונמטסה א10עש:פעסס סמפפתמתפטסט ב סמב ,8169מק1 מצסטסקג ,ש1צעמ ממאתא) אם116ת60נצא מססם ,5050668018 6מהנונה פמסאאם פה טסט פאצפטסה א10ע1₪פוסס סמפפתנתסטסטם ( 0016ב 6 32371חו/ו ומבוא ל-ספו כפי שניתן לראות, שתי הפונקציות מקבלות בפרמטר האחרון שלהן את הכתובת של שיגרה מסיימת (פחט80 חסוווקוחסס), כדי שתבוצע כאשר הן מסיימות את העיבוד שלהן. סעיף 17.49 מסביר את שתי הפונקציות א86908/65 ו- אפסוחפוח//ו בפירוט. חייבים להשתמש בהגדרה הבאה עבור השיגרה המסיימת ששתי הפונקציות משתמשות בה 1 ה51000נגע נקתאצאו פצסעי 0 // סו 8 05 פשמחום //‏ ,6:052/6681588558560מהממאם סאסום 1 שפטטסטפ86 0ם ש%6מ01ם // פס נפ6טסק1 ספפטה 101 הס1סגה:ס9ה1 1/0 מ+בא // לו הפרמטר 0511010006 מגדיר את מצב סיום הקלט/פלט. הפרמטר 0/871070066 וכול. להיות אחד הערכים שמפורטים בטבלה 17.30. טבלה 17.30: הערכים האפשריים של הפרמטר 070066 /40. עיך פירוש | פעולת קלט/פלט הסתיימה בהצלחה. סש 5 וגו .50 | הפונקציה ניסתה לקרוא מעבר לסוף הקובץ. הפרמטר 00517305/6760ץ70/8פוחטא/ו6 מגדיר את מספר הבתים שהועברו. אם קורית. שגיאה, פרמטר זה שווה לאפס. הפרמטר 0פסקפוזפוסקו מצביע למבנה 0060 הפַס. שמוגדר על ידי פונקציית קלט/פלט אסינכרוני. מווסטחו/ אינה משתמשת באיבר )הצפה של המבנה ספקק81ש/0; היישום הקורא יכול להשתמש באיבר זה כדי להעביר מידע לשיגרה המסיימת. פאוסטחוו. אינה משתמשת במבנה 0060 הפַ0. לאחר שהתוכנית קוראת לשיגרה המסיימת, כך ששיגרה זו יכולה להקצות מחדש את הזיכרון ששימש את המבנה ספקק והפ/ס. הפונקציה פחטטס80ח600וקוח₪61060 היא למעשה מחציק מקום (86600/66ו7) עבור שם. פונקציה שמוגדר על ידי היישום או על ידי הספריה. החורה מהפונקציה 806 ח600וק0ח6100 מאפשרת ל-5וס4חוו לקרוא לשיגרה מסיימת אחרת לביצוע. פעולת קלט/פלט. כל השגרות המסיימות הממתינות נקראות לפני שמסתיימת ההמתנה של המטלה שמצפה להתראה (6גפזחד 130/6וה),, כאשר מתקבל הקוד המוחזר 5110 |קאס10-6 זזאו. יכולה להיות ש-פווסטחו/ תקרא לשגרות מסיומות. הממתינות בסדר כלשהו, וגם ייתכן שהיא תקרא להן לפי הסדר שבו התוכנית סיימה את פונקציות הקלט/פלט, או שלא תקרא להן בסדר זה. בכל פעם ש-605חו/ קוראת. לשיגרה מסיימת, היא משתמשת בחלק מסוים ממחסנית התהליך. אס השיגרה מבצעת קלט/פלט אסינכרוני ויש הודעות ממתינות, המחסנית יכולה לגדול. פרק 17: קלט/פלט בחלונות = 555 8 התרעות קלט/פלט (1/0 6טבּ+זס|) פועלות רק תחת ד פ5ששסחזצ למדת שהתרעת קלטי/פלט היא טכניקה מתקדמת לטיפול בקלט/פלט אסינכרוני אשר משתמשת בתור הודעות קלט/פלט ובפונקציית משוב (ח60חט 63110866). אחת. אר יותר. מכיון שטכניקת התרעות קלט/פלט משתמשת בגירסה המורחבת של הפונקציות. 6 ו- 0086//, התוכנית יכולה להשתמש בה רק אם אתה בטוח שהיא תופעל. תחת מערכות ז! 8ו0חוו. בלבד. אם אתה מנסה להשתמש ב-₪6308/65%. אר פוםחצר ב- 9% פאוסטחוו או במערכות 32חוא, הפונקציות מחזירות 358 ואינך מבצעות | פעולה | כלשהי קריאה | ל-66899000 | מחוירה ספדאפואם וקויו1 דסא .611 0ה8. אל תנסה להשתמש בטכניקה זו ב- א9 0005חו₪, מכיון שהיא תגרוס לתוצאות שאין לצפותן מראש. 9 הפונקציות א65!!-]₪630 א65!ו וש למדת בסעיף 17.45 שהתוכניות יכולות להשתמש בפונקציות 865065 ו-66!הפזוזאר כדי לבצע קלט/פלט אסינכרוני תחת א 00005חו/+. הפונקציה 6305/95 קוראת. נתונים מקובץ בצורה אסינכרונית. מתכנתים משתמשים ב-₪6300/65% רקי בפעולה. אסינכרונית, ולא כמו בפונקציה 86308/6, אשר משתמשים בה הן עבור פעולה סינכרונית והן עבור פעולה אסינכרונית. 8636565 מאפשרת ליישום לבצע טיפול אחר במהלך פעולת קריאת הקובץ. הפונקציה 8690/65 מדווחת על מצב הסיום (5305 חסטטוקוחטס) שלה באופן אסינכרוני, וקוראת לרוטינה מסיימת שאתח מגדיר כאשר היא מסיימת לקרוא והמטלה הקוראת במצב המתנה להתרעה 0810 0/6זוסות. 6ז5). משתמשים בפונקציה 8630865 כמו שרואים בהגדרה שלהלן. 00 96391108 | 4 50 116 06 ב1התמת // ,פ1נפה תפות ע56פטם 0% 658ש840 // ,5965טמפ1 פדסטק1 8 60 5שפעמ 0% צסמחטת // ,5208688 55/65 0עשממנזות סהסאוםם 01 655ש40 // פב עסטספ1 ספקקתנהפ 100 1001 שתןשמסע ה10%10קמ0 01 8402658 // 1 הפונקציה 8630/65 מקבלת את הפרמטרים שמפורטים בטבלה 17.31 כאשר הפונקציה 630/66 מצליחה, הערך המוחזר שונה מאפס; ואם הפונקציה נכשלת, היא מחזירה אפס. כדי לקבל מידע שגיאה מורחב, צריך לקרוא ל-ז6602508110. כאשר הפונקציה מצליחה, יש למטלה הקוראת פעולת קלט/פלט 6 1/0321 ומבוא ל-ספו אסינכרוני לביצוע: פעולת הקריאה החופפת (60פְפוזַוס) מהקובץ. כאשר פעולת הקריאה החופפת מסתיימת והמערכת חוסמת את המטלה הקוראת במצב המתנה להתרעה, המערכת קוראת לפונקציה שמוצבעת על ידי 6חוזס5ח600וקוחססקו, ומצב. ההמתנה מסתיים עם קוד מוחזר ששווה ל- ₪110 וקויוס6 10 דואא. טבלה 17.31: הפרמטרים שמקבלת הפונקציה 863081165%. פרמטר תיאור חח | ידית פתוחה שמגדירה את ישות הקוב שצריך לקרוא: ממנו. חייבים ליצור ידית קובץ זו עם הדגל. ספקקא וחפוס ₪6 115 והי חייבת להיות בעלת. גישה 0=ה 6505816 לקוב. הפרמטר 6 יכול. להיות ידית כלשהי, אשר נפתחה על ידי הפונקציה. 6 עם הדגל ספקקה הפוס .ה ונ ז!ופקו | מצביע לחוצץ שמקבל את הנתונים שהפונקציה. קוראת מהקובץ. היישום אינו צריך להשתמש בחוצץ. זה, עד שהפונקציה מסיימת את הקריאה. טוה | מספר הבתיים שהפונקציה צריכה לקרוא מהקובץ. קק!זטיסקו | מצביע למבנה מסוג ספקקא 0881 שמספק נתונים. לפונקציה, כדי להשתמש בהם במהלך הקריאה האסינכרונית. אס הקוב שמוגדר על ידי חח תומך בהיסט בית (0/6960 8/18), התהליך הקורא של 8690805 חייב להגדיר היסט בית בקוב שממנר מתחילים לקרוא. התהליך הקורא מגדיר את היסט. הבית על ידי קביעת הערכים המתאימים לאיברים. 96 ו-011961%/0 של המבנה שק והפס. אם ישות הקוב שמוגדרת על ידי 6וח אינה תומכת. בהיסט בית (לדוגמה, אם זה צינור בעל שם), התהליך הקורא חייב לקבוע את האיברים ז86זז0. ו-0156040(00 לאפס, או שהפונקציה 8650165% נכשלת. הפונקציה 8636/65 מתעלמת מהאיבר הצפח של המבנה טקלא 0/881. הפונקציה. ₪306 מסימנת שסיימה את הקריאה על ידי קריאה לשיגרה מסיימת שמוצבעת על ידי הזוס הס6וקוחס6קו, אד על ידי משלוח הודעה לשיגרה זו, ולכן היא אינה צריכה ידית אירוע. הפונקציה א65ו/89305 משתמשת באיברים |בחזפוח1 ו-חסשאחזפ)חז של המבנה ספקק//0881. היישום. אינו צריך לקבוע איברים אלה. המבנה ספקק /וחפ/ס. שמוצבע על ידי 1080066 חייב להישאר תקף. במהלך פעולת הקריאה. פרק 17: קלט/פלט בחלונות = 557 פרמטר תיאור שחטטס8חסט!וחסקו | מצביע לרוטינה המסייימת ש-608חו/ צריכה לקרוא לה, כשפעולת הקריאה מסתיימת והמטלה הקוראת. במצב המתנה להתרעה 51316 וו :זוה כאשר הפונקציה מצליחה ופעולת הקריאה מהקובץ מסתיימת, אבל המטלה הקוראת. אינה במצב המתנה להתרעה, המערכת מכניסה לתור את הקריאה לפונקציה המסיימת, ומחויקה בקריאה עד שהמטלה הקוראת נכנסת למצב המתנה להתרעה. אם 6308/65 מנסה לקרוא מעבר לסוף הקובץ, הפונקציה מחאירה אפס, ו-ז0זוש35 691 מחזירה 60% = וסאאו ‏ הסתהם. אם תהליך אחר נועל חלק מהקובץ שמוגדר על ידי 6)₪וח, ופעולת הקריאה שמוגדרת. בקריאה ל- 980/66 חופפת לחלק שננעל, הקריאה ל- 8630865 נכשלת. אם 6309/68 מנסה לקרוא נתונים מחריץ דואר טסו שהחוצץ שלו קטן מדי, הפונקציה מחזירה 5866, ו-ז10ש6611350 מחזירה. חפט 150101 הסהחט אסור שהיישומים יקראו מחוצץ הקלט וגם אסור להם לכתוב בחוצץ הקלט שפעולת. הקריאה משתמשת בו, עד שפעולת הקריאה מסתיימת. גישה לפני הזמן לחוצ הקלט. יכולה לגרום להשחתת הנתונים שהפונקציה קוראת לחוצץ זה. הפונקציה א85ו/60 יכולה להיכשל אם יש יותר מדי דרישות קלט/פלט אסינכרוני שממתינות לביצוע. במקרה | של כישלון, ‏ 6609808 | יכולה = להחזיר = את | ההודעה הפמט 056 סדוהטאז הסתחם אר את ההודעה צחסוופו א6טסאם דסא הסתחט (כמו שלמדת בסעיף 17.39). אס מנסים לקרוא מכונן דיסקטים שאין בו דיסקט, המערכת מציגה תיבת הודעה שמבקשת לאשר את הפעולה ''נסה שנית'". כדי למנוע מהמערכת להציג תיבת הודעה זו צריך לקרוא לפונקציה 50081701066 עס 0000080 56% אם הפרמטר 6!ח מכיל ידית של צינור בעל שם או ישות קובץ אחר שאינו תומך בהיסט. בית, האיברים 06% ו-חסַ0/09606/ של המבנה 08130060 שמוצבע על ודי חייבים להיות אפס, או ש-₪630865% נכשלת. 0 שגרת משוב מסיימת (6411.8466 6ו טס סוכו 60) למדת בסעיף 17.48 שהתוכניות חייבות להשתמש בשיגרת משוב מסיימת עם שתי הפונקציות א86308/65 ו-א8!65)ח/. עליך להשתמש בהגדרה שלהלן עבור השיגרה. המסיימת שנקראת על ידי שתי הפונקציות האלו 911610001 נפהאצאו פצסטי ה סו 8 05 פבממטת //‏ ,08280550268:ע055:שמתטמאם סהסאם ו 8 3271חו ומבוא ל-ספו שעטטסטם8 0 צםסמ1סק // ממה נעסטספ1 ספפקתנהמ סט 1 0 ל90ה1 1/0 1 / כאשר קוראים לאחד מאובייקטי ההמתנה (09[605 א5/ו) ומציבים את המטלה במצב התרעה 51300 030/6ו), ‏ מערכת ההפעלה בודקת תחילה את תור הקריאה לפרוצדורה אסינכרונית - 876 61 066006זק פטסחסזת6חץ5ה). א יש לפחות כניסה אחת בתור, המערכת אינה מרדימת (ק5/99) את המטלה; במקום זאת, היא מקבלת את האיבר מתור 6 והמטלה שלך קוראת לשיגרת המשוב, ומעבירה לה את קוד השגיאה. של פעולת הקלט/פלט שהסתיימה, את מספר הבתים שהועברו, ואת כתובת המבנה ספקקא 0/1 שהמטלה מסרה בעת הצגת הדרישה לפעולת קלט/פלט. לאחר ששיגרת. המשוב מבצעת את העיבוד, המערכת בודקת אם יש איברים נוספים בתור סק8. אם יש. איברים נוספים, היא מעבירה אותם לשיגרת המשוב לפי סדר. אם התור ריק, הפונקציה המתריעה (חסושחט: 6וטפזחפוה) חוורת, והמטלה ממשיכה בעיבוד מבלי להירדם. לכן, הומן היחיד שהמטלה עלולה להירדם בו הוא כאשר התור ריק. 1 תוכנית קלט/פלט מתריעה (וח3זטסיוק 1/0 3016+ו6|) למדת שבאפשרות התוכניות להשתמש בטכניקות רבות העוצמה של התרעות קלט/פלט (1/0 06גז6!) כדי לבצע פעולות קלט ופלט אסינכרוני מורכבות בקבצים. התקליטור שמצורף לספר וה מכיל את התוכנית 10 8016ז86, אשר משתמשת. בהתרעות קלט/פלט לביצוע משימת העתקה פשוטה אחת. כאשר מהדרים ומפעילים. את התוכנית, היא תשתמש בהתרעת קלט/פלט כדי להעתיק קובץ, ותודיע על העיבודד וסוס הפעולה. כאשר התוכנית מתחילה, היא יוצרת קבוצה של דרישות קלט/פלט. כדי לעשות זאת, היא מאתחלת קבוצת מבנים מסוג 10/8505 סאק אאוא, שהיא משתמשת בהם. כדי להודיע למערכת ההפעלה על המספר הגדול ביותר האפשרי של דרישות קלט/פלט. שישנן בו-ומנית. כל מבנה מכיל מבנה סק 1פ0, ולכן אאין מבנה כלשהו שמכיל מצביע באיבר זחפופח. בנוסף למבנה ספקק0/881 שדרוש לכל בקשת קלט/פלטו, כל' בקשה כזו גם צריכה חוצץ בזיכרון שמוחוק במבנה 8505 .10 אחרי שהתוכנית מאתחלת את המבנה ₪505 -10, היא קוראת לפונקציה 60165 כדי לדרוש ממערכת ההפעלה לקרוא מהקובץ. בנקודה זו, התוכנית מתחילה להשתמש. בהתרעות קלט/פלט. התהליך חוזר מיד לתיבת הדו-שיח, והמשתמש יכול להתחיל מיד. בהעתקת קובץ נוסף. עם ואת, ברקע 8630/65 מוצאת וקוראת את הקובץ. כאשר היא מסיימת את הפעולה, היא מודיעה לתהליך (באמצעות שגרת המשוב) שהיא משתמשת בנתונים שקראה קודם בכדי לכתוב את העתק הקובץ. למרות שהתוכנית. ארוכה מאוד מלרשום אותה כולה כאן, כדאי לנתח את שתי פונקציות המשוב בלבד. פרק 17: קלט/פלט בחלונות = 559 0+ טמא ְתסאפ) פ1זנוסת ה 01 1סמ0סבגסה נקהאנה 18סט ו (180068צסטסמ1 ספפפתנתסטסט טס (80ת10ק) = תסנכ סמהסנק (תסתתם סון == 020086:עמ40) צתםפפתתם /--2065688פה68081תה 8 פע 01 עסמחטם שג מו תטסה // ץפגהטסם 260502 ב 50 שמבעש סף // + 00506682280816288מהטאאם) = 0815855656 ע55 60 6 08.8028068126-1( 5 - 65 .4098068126-1( ; 0 ,ג)הפמםל-1080 ,116085עת. 5 ף) 6091108 1פא) צע המות 1 ((שת1טטסהמ015%10ה15600עא ,פמק 1צשטספב (++2088שסעקת5081 באה 8 )6116 6001 ומאו נשמאנא 18 סא (140060פ6טס1 סמפפתמתפטסט ב 6 טס1 (0מתס1ק) = 4פהסנק 10880 (פסתתם סא 0 -6681895009688 8051 08 ף > 6פפק6פטם. 68646055966א106 8 6) 48 .101165196 8 ה 6ץ 115: 05 64 שנץ מפגם 2688 %'6פגת מס1מסחםת שתף // 2% 0% %תותם מאשה בת 2688 ,50 // 10046 08680051866א0186 08 ף = 055566<-0שסק4נצשטסמב = 0558668108<-0שספ4 נעששסמב קמ 1 10001508 8 ה ,ב6בסמק<-10868 ,1168206ע(. 08 ף) א85110גמת) צפנתמטהם פשטספ1 ,128פעטטם ( (8 1 ה 002085+5ע 86808100 8 08 דט 1קת32ח/וו ומבוא ל-0פו כמו שאפשר לראות, פונקציית המשוב 6חוטטס8ח600וקוח853060 קוראת לפונקציה אפפוהפוחצו עם המידע שמוחזר על ידי 8630865 ועם כתובת פונקציית המשוב וס 6וקוחס 165 השיגרה המטסא חס9וקו00ס6ז/ בודקת: את הגודל הנוכחי. של הקובץ המועתק בכל פעם שהפונקציה 65%אווו חוורת; אם ההעתקה לא הסתיימה עדיין, השיגרה שחמטסהחסווטוקוחסספאוז משנה את מקום ההיסט 01960 063000) שבקובץ וקוראת לפונקציה 8630/65 עוד פעם. א ההעתקה הסתיימה, הפונקציה יוצאת והתוכנית מטפלת בניקוי הקובץ במקוס אחר. כמו שאפשר לראות, מימוש התרעות קלט/פלט בתוכניות קל יחסית, ועל כן שיטה זו מאוד שימושית לבוצוע קלט/פלט אסינכרונ. % הערה: וכור! התוכנית 10 816168016 פועלת בצורה נכונה רק תחת מערכת א פאוסחואו. פרק 17: קלט/פלט בחלונות ‏ 561 נספח א - פונקציות נוספות והרחבה הפונקציה עשסשחז///שס5 פונקציה זו קובעת את מצב התצוגה של החלון. היא מיועדת להציג חלונות על המסך. ; (6וסח5חסה. 16 ,האמ פאחוא) וסנת נאשסהפ מססם הפונקציה אוסחווווסח5 מחצירה ערך בוליאני סט או 956!. ערך זה מכיל את מצב התצוגה הקודס של החלון. הערך יהיה וזו כאשר החלון במצבו הקודם היה מוצג (050966/). הערך יהיה 356 כאשר החלון במצבו הקודם היה בלתי מוצג(וס0פווח1). הפרמטר ₪406 הואא ידית החלון שברצונך להציג. הפרמטר 6ח/וח שבתוכנית :96061 מתייחס לחלון החדש שנוצר (ראה פרק 2). מצב התצוגה של החלון נקבע בפרמטר 6570חשח. הערך של 650ח6ח חייב להיות אחד מהערכים שמפורטים בטבלה 1 שלפניך. טבלה 1: הערכים עבור הפרמטר 6500הסח. הערך הפעולה 5נאזאנוופ 0 5 | הקטנת החלון אפיי כאשר המטלה שלה הוא שייךך תקועה. יש להשתמש בערך וה רק כאשר מקטינים. רק ל 5.0 זא חלונות ממטלה (636זחד) אחרת. זו 5 | הסתרת החלון. זז 5% | הקטנת החלון לגודל מינימלי (סמל) והפעלת החלון. הבא שבציר ? 125זו 5% | מגדיל את החלון לגודל המקסימלי. 2 23 וו ומבוא ל-ספו הערך דפסה שא שוסח5 אפ סוס 5 שא 250ז וס 5 שא קזואזוס 5 אפ וס 5 שא אשוסח5 שא 5 שא אס 5 שא הפעולה הפעלת החלון והצגתו. אס החלון הוקטן לסמל אוו נמצא בגודל מקסימלי, אס6חז0)וסח5 מחצירה את. החלון לגודלו ומיקומו המקוריים. קובע את החלון כחלון פעיל ומציג אותו בגודלו ומיקומו הנוכחיים. הצגת החלון במצב ברירת המחדל של היישום. וס חו/שאוסח5 משיגה את מצב ברירת המחדל של. היישום ממבנה סַאִ1ַקטד573₪ שנלמד עליו בסעיפים הבאים. מפעיל את החלון ומציג אותו בגודל מקסימלי. קובע אותו כחלון הפעיל ומציגובגודל מינימלי, כסמל. הצגת החלון וה במצב מינימלי, והחלון הפעיל כרגע נשאר במצבו. הצגת החלון במצב הנוכחי שלו, והחלון הפעיל נשאר. במצבו. הצגת החלון בגודל ובמקום העדכניים ביותר. החלון הפעיל נשאר החלון הפעיל. קובע אותו כחלון הפעיל ומציגו בגודלו הרגיל. בפעם הראשונה שהחלון מוצג על המסך, עליך להעביר את הפרמטר 006 חואו בפונקציה ( )חוגיוחו/ו כפרמטר אוסוזח. השינויים הכלולים בתוכנית אהו 5% שלהלן עבור 8606%, מכוונים להודיע ל-%5ו00חו// להגדיל את חלון היישום לגודל מקסימלי כשהמשתמש בוחר באפשרות. 16% מתוך תפריט 16. מחק את הקוד הנוכחי בפונקציה 6106ח, והחלף ותו בקוד הזה. ,פג עומצט ,4מאמ כוחו ) סספפבחו אסתמנותס נטפטתג (מ3שבק1 עתמתס1 ,מבצבפא עתתתפאן 1 ( 8 בפא) סו + שפד סד 0 5 ,4חמ) יסת נאסמ5 עפ נספח א: פונקציות נוספות והרחבה | 563 שא 100 496 0 ספ 1 ספ ספמ ₪ 856 0 0 ספ 6 ((מע8פ1 ,מעבקא ,הַפועט ,8חחה) 200קש40ה26901) מע ם? (05) מצגו 0 התוצאה היחידה לשינוי הקוד של התוכנית המקורית 86061% מתבטאת בכך שכרגע החלון מוגדל למקסימוס ותופס את השטח של כל המסך כשהמשתמש בוחר באפשרות. סד מתוך תפריט החלון. לאחר שתהדר ותפעיל את הגירסה החדשה של התוכנית. 6, נסה אותה תחילה על ידי הגדלת חלון התוכנית למקסימום, ואחר כך החזר. את החלון לגודלו הרגיל. לצורך בדיקה של ערכים נוספים, בנה חלון שמקבל כפרמטר בצורה כלשהיא סאוו - ידית לחלון אחר, וקרא לו למשל 8590/006, ונסה לבדוק מה קורה כאשר אתה שם בתוך הפונקציה הזו ערכים אחרים עבור אאסח65וחח, ועבורר הפרמטר הראשון אתה שם את 560//06ח. 5 |וושו, |וסא56ע אצ הודעות אלו מיועדות לטפל באירועי גלילהה פוס6חוו שולחת את ההודעה 508041 ו לחלון כאשר מתרחש אירוע גלילה בפס. הגלילה האנכי הסטנדרטי של החלון. 5וס0חו/ו גם שולחת את ההודעה 508011ש ואר לבעלים של פקד פס גלילה האנכי, כאשר מתרחש אירוע של גלילה בפקד. כאשר התוכנית מקבלת את ההודעה 0568011 4/8 מילת הסדר-הנמוך של הפרמטר וחמזגקו מגדירה. ערך פס גלילה שמציין את דרישת המשתמש לגלול. מילת הסדר-הנמוך יכולה להיות אחד מרשימת הערכים שמפורטים בטבלה 2. טבלה 2: הערכים האפשריים למילת הסדר-הנמוך של הפרמטר וחומזםקעו. עוד פירוש ווסדד80 .58 | גלילה עד למטה ימינה. ו5080סא6 58 | סיום הגלילה. אווסספא1 58 | גלילה של שורה אחת למטה. 64 3271חו/ו ומבוא ל-ספו עיך פירוש קטפא11 .58 | גלילה של שורה אחת למעלה. 6500 58 | גלילה של דף אחד למטה. 7600 58 | גלילה של דף אחד למעלה. אסזדו05קפואטוד 58 | גלילה למקום מוגדר. והו ערך מספרי מדויק של היסט. (01/960) מתחילת החלון, לדוגמה: "12 שורות למטה. מגבול עליון". הפרמטר 05ח מגדיר את המקום הנוכחי. א הדפווטורוד. 58 | גרירת תיבת הגלילה למקום מסוים. הפרמטר פסלח. מגדיר את המיקום הנוכחי קסד 58 | גלילה עד למעלה שמאלה. בנוסף לערך ש-%או₪חו מעבירה במילת הסדר-הנמוך של הפרמטר וחמּזגלאו,, צריך לבדוק ג את מילת הסדר-הגבוה של וחפזפלוו.. מילת הסדר-הגבוה מציינת את המיקום הנוכחי של תיבת הגלילה, ‏ כאשר הפרמטר 5000006ה ‏ שווה ל-אס1דן5סקפואטוזד 58 או ל-אסאהדפואטואד 58; אחרת, הערך שמכילה. מילת הסדר-הגבוה אינו משמעותי. לבסוף, הפרמטר וזגזגק! מכיל את ידית פס הגלילה. אם. פס הגלילה לא שלח את ההודעה, ערכו של חובזהק! יהיה טאי יישומים שמספקים משוב כאשר המשתמש גורר את תיבת הגלילה משתמשים באופן טיפוסי בהודעת שינוי המצב (695906) ח6300/וסא) אסאהדפואטאד 58. אם יישום. גולל את תוכן החלון, חובה על היישוס להשתמש גם בפונקציה 5615001005 כדר לקבוע מחדש את מיקוס תיבת הגלילה. וס6חו שולחת את ההודעה 4568014 וא לחלון כאשר מתרחש אירוע גלילה בפס. הגלילה האופקי הסטנדרטי של החלון. פאוסחו/ו שולחת את ההודעה .4508084 ואר גס לבעלים של פקד פס גלילה האופקי, כאשר מתרחש אירוע גלילה בפקד. כמו שההודעה +5680/ או מכילה מידע נוסף בפרמטרים וחפזפלוו ו-וחפזבקו, כך עושה. גם ההודעה )50806 ו עם 4508011 /ו, מילת הסדר-הנמוך של חוגּזגקווי מגדירה ערך פס גלילה שמציין את. דרישת המשתמש לגלול. מילת הסדר-הנמוך של וחפזגפוו יכולה להכיל אחד מהערכים. שמפורטים בטבלה 3 טבלה + הערכים האפשריים למילת הסדר-הנמוך של הפרמטר זאו עוד פירוש וודד80 .58 | גלילה עד למטה ימינה. 1ו500סא6 58 | סיום הגלילה. נספח א: פונקציות נוספות והרחבה ‏ 565 ערך פירוש דח ופאו1 58 | גלילה שמאלה יחידה אחת. הפאז 58 | גלילה ימינה יחידה אחת. 87 68 .58 | גלילה שמאלה על פי ערך רוחב החלון. ד608100 58 | גלילה ימינה על פי ערך רוחב החלון. אסנדפ0קפואטוד 58 | גלילה למקום מוגדר. והו ערך מספרי מדויק של היסט. 01/90 מצד שמאל של החלון. הפרמטר 05לח (מילת. הסדר-הגבוה של וִבז08א) מגדיר את המיקום הנוכחי. 0% דפויו10ד .58 | גרירת תיבת הגלילה למקום מסוים. הפרמטר פסקח. (מילת הסדר-הנמוך של וחפזפקוו) מגדיר את המיקום. הנוכחיי קסד 58 | גלילה עד למעלה שמאלה. כמו שההודעה 508011 אא, מילת הסדר-הגבוה של וחפזפקאי מגדירה את המיקום הנוכחי של תיבת הגלילה, כאשר הפרמטר 0066ו/500ח שווה ל-א10ד051קואטהד 58 או ל-466חז8וט/ד 58; אחרת, הערך שמכילה מילת הסדר-הגבוה לא משמעותי הפרמטר וגּזגקו מחציר את ידית פס הגלילה אם פס הגלילה שלח את ההודעה. אם פס. הגלילה לא שלח את ההודעה, הערך של ז3פו/0ז650חאוח יהיה .טא שים לב, שתי ההודעות 45080 א/+ ו- 508014 ואו מכילות ערך בן 26 סיביות של מקום = תיבת הגלילה. ‏ לכן, | לוישומים שמשתמשים רק ב-)₪56801 אע וב-ו5080/ ו כדי לקבוע את מיקום הגלילה של הנתונים יש למעשה ערך מקסימלי של 65,535. אך מכיון שהפונקציות 5615601005 6ַחַ5015001!83, 5 ו-ַפַח66150:0//83 תומכות בערך בן 32 סיביות למיקום הגלילה של הנתונים, יש דרך להתגבר על מחסום 16 הסיביות של ההודעות .568014 אא ו-+50801/ או על ידי שימוש בפונקציות אלו. התבונן בעורה הנלווית למהדר לקבלת. מידע נוסף על הדרך להתגבר על מחסום 16 הסייביות. פונקציות משוב (ח0ו6%חט-] 6811080%) במספר מקומות ראית שהוכרוו מספר פונקציות על ידי השימוש במילת המפתח 6% . עליך להתייחס לפונקציה שהתוכנית שלך מכריזה (0608'6). עליה באמצעות מילת המפתח 0118806 כפונקציית משוב (חסטוסחט: 6%הפו031). פונקציה זר מעבירה לתוכנית כתובת של פונקציה שלישית, ואז פונקציה שלישית זו "קוראת חזרהי" (8966 /ו03) ומספקת מידע. תמיד תגדיר את הפונקציה 06106 כפונקציית. 036ו/63. בתוכניות שתכתוב תשתמש פעמים רבות בפונקציות משוב יחד עם פונקציות. זחא ספציפיות, כמו 65!/חכ*וחס?וחטחם ו-5אוס0חוווחטח=. כשתמסור את הכתובת של 6 1/0321 ומבוא ל-ספו פונקציית משוב לאחת מפונקציות אלו, הפונקציה תיקרא לפונקציית משוב עבור כלל פריט שברשימה. לדוגמה, אם תיקרא ל-8וסחוווחטח6, תעביר לה לדוגמה. את הכתובת של פונקציית משוב שמציגה ערכים או מוסיפה אותם למערך. אחר כך, 605 חווחטחם תקרא לפונקציית משוב עבור כל חלון שברשימת החלונות שלה. פונקציות מסוג 036%ו/63 דרושות ב-6005חו0, מכיון שהתוכניות שלך אמורות לטפל בפעולות התכנות הרבות והחשובות דרך ממשק תכנות היישומים (ח300)קה 6 וחִבזמָסזק - בקיצור זקא) של פאוסחו/, שהתוכנית שלך אינה יכולה לשנות. באופן ישיר. לכן, אתה חייב לספק ל-1קא את האמצעים כדי להשתמש בהם לקריאה לשגרות שלך, בעת שהממשק מחציר מידע מורחב (כמו לדוגמה, רשימה). הפונקציה ₪ח1.080]16 התוכניות משתמשות בפונקציה טח1080%6 כדי לטעון תפריט שהוגדר קודם לכן בקובץ. המשאבים. בדרך כלל תבצע אחד משני דברים: תקרא לפונקציה טח560%6 אחרי הקריאה לפונקציה 60ו1036, או שתשתמש בקריאה לפונקציה טח10306 מתוך הפונקציה /ו00חו//0/0316. הפונקציה חפויו036. טוענת את משאב התפריט שמוגדר על. ידי הפרמטר 6וחפאטחטואק! מקובץ ההפעלה (₪6 5%6) ש-8סחוו קושרת אותו עם. המופע של היישום (502066ח1 חסו0פא). משתמשים בפונקציה טח1050%/6 בתוכניות, כמו בדוגמה שלהלן 4 טפט 1102:108מקה 05 10במגת // ,בסהבמפהדה מסתתצפאצ 1 0% אַה1ע81 חתפת ומשמ // = סהפאטהשעם1 הצפעסק1 0+ מממ // ₪ שח1090%6 מחזירה ידית (0/6ח38) מסוג אפוו! ומקבלת בפרמטרים שלה את ידית. המופע של המודול שמכיל את משאב התפריט ש-טח1036/6 צריכה לטעון. הפרמטר השני שהפונקציה %פויו1030 מקבלת הוא מצביע למחרוות המסתיימת ב-וא שבר נמצא שם משאב התפריט. במקום להשתמש במצביע מחרוזת לשם התפריט, תוכלל להשתמש ב-080/ום בפרמטר השני (המצביע לשם התפריט). במקרה כוה, הערך סאס/וס יהיה מורכב ממזהה משאב 10600060 65ז8650) יחד עם המוהה האמיתי שבמילת הסדר-הנמוך, ואפס במילת הסדר-הגבוה. כדי ליצור את הערך של המילה הכפולה, השתמש במאקרו סְהט850אדא1651י, ולא במצביע למחרוות. כדי להבין טוב יותר את הפעולה של הפונקציה טח1080%6, התבונן בקטע הקוד הבא (מהתוכנית פטחפוח .2. התוכנית נמצאת בתקליטור בתיקיה א, 5א), שמחליפה בין תפריט אחד לחברו, על פי בחירת המשתמש. שני הקבצים, קוב המשאבים וקובץ התוכנית, שונים מהקבצים המקבילים להם בתוכנית 96067%6. הקוב 6ז.5טחפוח. 2 מכיל את הגדרות התפריט הבאות. נספח א: פונקציות נוספות והרחבה | 567 מממתסה, 5דם טוופון אפס אזסמם " פטפספ אזסמם פצאם %פ 1‏ ,"18א6ם" מפענטופע וג השא 158 ,"וטמפע 6866" אשפנטווטת -- =מפהסההספדם טפול טאפואמוטא פצאם %פ 1‏ ,"5616" ממפצטו פס %פ 1‏ ,"!טחע 6018" אי 7 ההצהרה הראשונה יוצרת את התפריט טאפואס וס עם האפשרות !טח אסא!. כאשר המשתמש בוחר באפשרות וטחס!% אופא התוכנית תחליף את התפריט טאפויוסס. שבחלון התוכנית לתפריט טאפויוופא. כמו שאולי ציפית, הטיפול אשר משנה את התפריט של היישום מ-טאפום וס ל-טאפוא/ופא. נמצא בפונקציה 06זקחא של התוכנית פוחפוח 22 התוכנית בודקת את הערך של הקבוע שמוכל במילת הסדר-הנמוך של הפרמטר וחפזמסו. על פי הערך המתקבל, התוכנית טוענת את התפריט האחר (במילים אחרות, אס התוצאה מראה שהתוכנית מציגה כרגע את המשאב שא0118, היא תחליף אותר ותציג את המשאב טאשאוופא, ולהיפך). אחר כך, התוכנית משתמשת בפונקציה. שחס560% לביצוע החלפות אלו. לבסוף, התוכנית קוראת לפונקציה זמפטחסויווזם אחרי שהיא מסיימת את ההחלפה, דבר המבטיח ש-000068ו תצייר מחדש. את התפריט שנטען במקום המיועד לו. + הערה: התוכניות חייבות להשתמש בפונקציה טחאץסופסם כדי שהיישום יפרק את התפריט וישחרר את הזיכרון שנתפס על ידי התפריט הקודם. ממשק התכנות 1קא 32חו מספק אוסף של פונקציות שאפשר להשתמש בהן בתוכניות, כדי לשנות תפריט בזמן פעולת היישום. ככלל, הפונקציות מאפשרות לשנות. כל אלמנט תפריט לאחר שהצמדת את התפריט לחלון. השינויים הנפוצים ביותר בתפריטים, הם בדרך כלל שינויי המחרוות שמוצגת בתפריט. מסוים, קביעה והסרה של תווי סימון לצידם של פריטי תפריט, נטרול פריטים בתפריט, או מחיקה והוספה של פריטים בתפריט. הפונקציה טח6ו00! מאפשרת. 8 3271חו/ו ומבוא ל-0פו לבצע כמה מפעולות אלו על ידי קריאה לה. כתחליף, תוכל להשתמש בפונקציות. יעודיות, כמו טח09/619%/6 או וח9ז1טח60610ת6, כדי לערוך שינויים בפריטי התפריט. התקליטור שמצורף לספר מכיל את התוכנית וחפא1 26/6%6, שמשתמשת בפקודות. תפריט כדי לאפשר המשתמש להוסיף ולמחוק פריטים מתוך תפריט. הפונקציה טח116ץ/1061] הפונקציה טח6אץ'ו106! מסוגלת לבצע שינויים שונים, בתפריט קיים. התוכניות יכולות. להשתמש בפונקציה זו כדי להגדיר את התוכן, הצורה וההתנהגות של כל פריט. בתפריט. משתמשים בפונקציה 06/9 בתוכניות כמו שרואים בהגדרה שלהלן ) ומע 1081 001 05 16 הג // מש שאפוא 415 ס 1668 ממשת // צאט 198 1668 מתשם // ,805 נפט צאצט ₪ 1860518168 1668 מתסמ // ג צאט וחסח 0500-0080 05 ש61חבם // 0006605 1560 מתשה // מ156ששאמב 1 הפרמטרים שמקבלת הפונקציה טח6א/001! מופיעים בטבלה 4. טבלה 4: הפרמטרים שמקבלת הפונקציה 2106/6600 פרמטרים סואה פטס 5 בו 3 תיאור מוהה את התפריט שרוצים לשנות. מגדיר את התפריט שרוצים לשנות לפי הערכים של הפרמטר. בי מגדיר דגלים ששולטים בפענוח הפרמטר חסוופסקט והתכולה,, ההופעה וההתנהגות של פריט תפריט. פרמטר זה חייב להיות. שילוב של פרמטר אחד מאלה המפורטים בטבלה 5 ולפחות אחד. מהפרמטרים שמפורטיס בטבלה 6 מגדיר אחד משני דברים, את המוהה של פריט התפריט ששונה, או אם נקבע הדגל קטקסק 5 בפרמטר פסוט, הוא מגדיר את הידית. של התפריט הנשלף למטה או של תפריט המשנה. מצביע לתוכן פריט התפריט ששונה. פענוח המובן של פרמטר זה. תלוי בפרמטר סט אם הוא מכיל את הדגל קהואדנם =וו, וח הפוס ו או אהד ור נספח א: פונקציות נוספות והרחבה ‏ 569 כפו שניתן לראות בטבלה 4, חייבים לקבוע ערך לפרמטר 5סגוט. הערך של פסָכט חייב. להיות שילוב של אחד הערכים שנמצאים בטבלה 5 וערך אחד או יותר מאלה שנמצאים בטבלה 6> טבלה + הערכים האפשריים הנדרשים עבור הפרמוטר 895!. עוך פירוש סואה/אוא800 וו | מצייין שהפרמטר חסטופסקו מעביר את המוחה של פריט. התפריט. הדגל 80071 = הוא ברירת המחדל, אם לא הוגדר אף אחד מהדגלים :₪007 ₪6 אר ד סק ות אסזדז5סקץ8 =וא | מציין שהפרמטר חסווופטקט נותן את המקוס היחסי. מבוסס-אפס (חס;ופסק 86/0006 26:0-88566) של פריט התפריט. בנוסף לערך המבוקש עבור הפרמטר פסָפנו, חובה להשתמש באופרטור 08 הפועל על סיביות (08 8/0/96) כדי להציב ערך אחד או יותר מהערכים שנמצאיים בטבלה 6. טבלה הערכים האפשריים של הפרמטר פוט ערך פירוש קהווד1ם וו | משתמש במפת סיביות כפריט בתפריט. הפרמטר. 7 ז1/וס)ק! מכיל את ידית מפת הסיביות. סאתויוזו0סץ₪ וא | מציין שהפרמטר חסוופסקט מגדיר את מוחה פריט התפריט. א0ז051ק/8 = | מציין שהפרמטר חסטופסקטו מגדיר את המקום היחסי. מבוסס-אפס (חסט!פסק 89306 2810-88566) של הפריט. החדש. 080650 ו | מצמיד תו סימון לפריט. אס היישום מאפשר להשתמש. במפות סיביות כתווי סימון (ראה את הפונקציה 55ות101)8/1טח561/%6), דגל ה מציג סימון של מפת. סיביות ליד לפריט התפריט. 15850 ויו || מעביר פריט תפריט למצב לא פעיל, כך שהמשתמש לא יוכל. לבחור בו; אבל דגל זה אינו הופך את הפריט לאפור. ספ אש ו | מפעיל את פריט התפריט ומשחזר אותו ממצב אפור, כך שהמשתמש יוכל לבחור בור סמץ68 או | מעביר פריט תפריט למצב לא פעיל, וגורם להצגתו באפור, כך שהמשתמש לא יוכל לבחור בו. 0 321חווו ומבוא ל-ספו עוך פירוש אאפהפהא8טואפו! 45 | מתפקד כמו הדגל 586ה8ט/פוא =ז! לשורת תפריט. עבור תפריטים הנשלפים למטה, תפריטי משנה, או תפריטי קוצור (שחסו זוסזס5), קו אנכי מפריד את העמודה החדש. מהעמודה הקודמת. אהםהטאפזו :1 | ממקם את הפריט בשורה חדשה (עבור שורות תפריט) אוד בעמוד חדש (עבור תפריטים הנשלפים למטה), תת-תפריט. (טחטוחטט5, תפריט משנה) מבלי להפריד עמודות. והסהפאצוס = | מגדיר שהפריט הוא פריט מסוג ח8ז6-זפחאוס (פריט שהוא בן לפריט אחר, שמוצג כאשר האב שלו מצייר אותו). לפנר שהתפריט מוצג בפעם הראשונה על ידי היישום, החלון. שמכיל אותו מקבל את ההודעה |אפדזה50גפו זא שמעבירה לו את רוחב וגובה פריט התפריט. אחר כך. היישוס שולח את ההודעה ואמדזאותא וז לפונקציית. החלון של האב בכל פעם שהיישום חייב לעדכן את הופעת. פריט התפריט. קטקסק אוו | מגדיר שפריט התפריט פותח תפריט נשלף למטה או תפריט. משנה. הפרמטר חפזז1א6פ1ט מגדיר את הידית של התפריט. הנשלף למטה או של תפריט המשנה. משתמשים בדגל זה. כדי להוסיף שם תפריט לשורת התפריט, או לפריט תפריט. שפותח תפריט משנה של תפריט הנשלף למטה, תפריט. משנה, או תפריט קיצור. אסד3₪קפ5 = | מצייר קו מפריד אופקי. משתמשים בדגל וה רק. כשמוסיפיס פריטים לתפריט הנשלף למטה, תפריט משנה, או תפריט קיצור. אין באפשרות התוכניות להביא קו זהה למצב לא פעיל, לצבוע אותו באפור, או להאיר אותו. 06065 מתעלמת מן הפרמטרים חפש1אוסאאפו 1 16ד5 =וי! | מצביע למחרוזת טקסט שבסופה 1א, כברירת מחדל. ס=אספחסאנ ויו | לא מציב תו סימון ליד הפריט (ברירת המחדל). אם היושום. מספק תווי סימון של מפות סיביות (ראה את הפונקציה. 0805ח110₪180ח560/10), דגל זה מציג מפת הסיבית של מצב. לא מסומן (כלומר, הבחירה אינה מופעלת) ליד פריט. התפריט. נספח א: פונקציות נוספות והרחבה | 571 כאשר הפונקציה שח06////9! מחליפה פריט תפריט שפותח תפריט שנשלף למטה, או תפריט משנה, הפונקציה מפרקת את התפריט הקודם שנשלף למטה או את תפריט. המשנה ומשחררת את הציכרון שנתפס על ידי התפריט הקודם. בנוסף, היישום חיוב לקרוא לפונקציה זבפטחפווופּזם בכל פע שתפריט משתנה, מבלי להתחשב אם הוא נמצא בחלון המוצג. כדי לשנות את המאפיינים של פריטי תפריט קיימים, יותר מחיר להשתמש בפונקציות 6906/9009 ו-0ף1טח%16וסהח=. % הערה: הפונקציה שח%6/ו106! אינה יכולה לקבל את קבוצות הדגלים הבאות באותה הקריאה. ספ צם א [-סונתאמנססצם. שו ממצתהם שו [-משממתזום שו סמנםתפנם שו [אותתסהפומוס. שא, ונד תפ שות, פתוודדם עור תפ = אתשהמטוטו וע [-אתםהמהתסטונטות שו ספאסטאסוגט פע [-פמאסטאס. שו כדי להבין יותר טוב את הטיפול של הפונקציה טח6אעו00ו, התבונן בתוכניתת שחו 406 שבתקליטור המצורף לספר וה. התוכנית פק6.ח6א - 106 משנה את הפריט פד לפריט התפריט !חפו1 אאפו! כאשר המשתמש בוחר בו, אחר כך היא מטפלת בפריט התפריט !וח9ז1 אופא אם המשתמש בוחר בו. תוכל לראות ששינוי וה מנוהל על ידי הפונקציה )זקנחעו. כפו שנראה בהמשך, התוכנית טח6א/ 06 משתמשת בפונקציה טח00006וו, כדר לשנות את ערך המחרוזות של פריטי התפריט. בנוסף, הקוד בודק את מוהי התפריט, כדי לוודא שהפונקציה תפסה את הפריט החדש שנוצר. שליטה בתפריטים באמצעות 16 1016 הח התוכניות יכולות להשתמש בפונקציה טחפ///06// כדי לשלוט בצורה שבה הפריטים. מוצגים בתפריט. עם ואת השימוש בפונקציות ייעודיות, עשוי לגרום לכך שהתוכניתת תפעל מהר יותר. כדי לעזור לך לשנות פריט תפריט למצב פעיל (טטַּחפ), לנטרל הפעלה. שוטפוס), ‏ או להפכו לאפור ,)63/66(‏ התוכניות ‏ יכולה להשתמש בפונקציה !חפ = במקום | הפונקציה | טח6/ץ/400/. = משתמשים ‏ בפונקציה חוסטזטח6/א6וטהחש בתוכנית, כפי שמוצג בהגדרה שלהלן ממ סט חפ 0+ 18ממת // 4 60 1668 טמשח // 161 השטנ צאט 958 שם ,4198816 // 8 166 טמסח // ,6במפתפט צאצט 2 גחו ומבוא ל-ספו טבלה + הערכים האפשריים שמקבל הפרמטר 16חפצ. דגל תיאור סא/אואססץ8 אוו | מצייין שהפרמטר ₪פו61ופהחפ זו מעביר את מוהה פריט. התפריט. אם המשתמש אינו מגדיר את הדגל. סואהואו8/00 ₪ או את הדגל 89051110 1. במקרה זה. הדגל סוו 800 וא הוא ברירת המחדל. אסזדז5סקצ8 זוא | מציין שהפרמטר וחש89/01ח5פ1ט מעביר את המקום היחסיי מבוסס-אפס (חס0ופסק 86/1006 2610-88566) של פריט התפריט. ספ 158 וא | מציין שפריט התפריט במצב לא פעיל, אבל לא במצב אפור, ולכן המשתמש לא יכול לבחור בו. ספ ופאש וו | מציין ש-5ו00חו/ צריכה להפוך את הפריט למצב פעילל ולשחזר אותו ממצב אפור, כך שמשתמש יכול לבחור בור ספץ683 = | מציין שפריט התפריט במצב לא פעיל, ולכן המשתמש אינו יכול לבחור בו הפרמטר צח6!ח מכיל את ידית התפריט שרוצים לשנות. הפרמטר חפז6ו30הססזט מגדיר את פריט התפריט שברצונך לאפשר הפעלתו (שְחם), לנטרל את הפעלתו (6ו90פום), או להביאו למצב אפור (67366) לפי הערך בפרמטר 6|טהתפו.. הפרמטר 6ו01ו30ח10נו מגדיר פיט בשורת התפריט (55 טח6/% ה ח1 וחסו1), תפריט (חסוו), או תפריט משנה (טחסוחפ). הפרמטר פוטהחפט מגדיר דגלים ששולטים בפענוח ערכור של הפרמטר וחו61ט3ח5פ1נו ומציין מתי פריט התפריט במצב פעיל, במצב לא פעיל, אד במצב אפור. הפרמטר 6טחפט חייב להיות אחד מהשילובים האלה : סאאויוא8+60 זו או 819051710 ו עםסם וא 91 , 21588150 =ו% אר ספצ6 =ו/, כמו שרואים. בטבלה 7 היישום חייב להשתמש בדגל סא3וא8%60% = כדי להגדיר את ידית התפריט הנכונה. אם התוכנית הגדירה את ידית התפריט (118069 טח6//) של שורת התפריט (טחסות זה8), פווסחוו מבצעת את הפעולה כנגד הפריט שנמצא בשורת התפריט הראשית 180 חא ו6/6.-קסד). כדי לקבוע מצב של פריט בתפריט שנשלף למטה או בתפריט. משנה, חובה על היישום להגדיר את ידית התפריט שנשלף למטה, או את ידית תפריט. המשנה. כאשר היישום מגדיר את הדגל א81005110 זויו, פאוסטחוווו בודקת את כל הפריטים. שפותחים תפריט משנה מתוך התפריט. לכן, אם אין שמות כפוליס של פריטי תפריט, אפשר להסתפק בהגדרה של ידית שורת התפריט עבור שורת התפריט. כדי להבין טוב יותר את הטיפול ש-וחפ!זטחספוטּחש. מבצעת, התבונן בתוכנית. פופ 8088 שבתקליטור המצורף ‏ לספר. תוכנית ‏ וו משתמשת בפונקציה חפזטחס/ופוטחם כדי להביא את הפריט 1181 10 למצב פעיל או למצב לא פעיל. נספח א: פונקציות נוספות והרחבה = 573 כרגיל, הפונקציה )טזקטחו/ו שבקוב פק; אלו, כפי שמוצג להלן 1 חש מכילה את הקוד שמבצע פעולות. פע 10% 486 | ; (088) 0600 = = טמשועת פע ןמלז 1% ,והאמ) 255 1פות0000ם = בפבמפמ שאצט ; (פאתועססצם. שור (סמצתתם ; פא 5 65בפט) 46 ד 10 תסאמ) 66 השוע נמאח ; (פואתושוסס0ם פון | סמנפתונם פע 6 שד 10 ,תשאמ) מס הטוע נמגח ; (סוותואע00ם פוע | תמצתפם בשו 1 צ הרחבת תפריט באמצעות טחס!/0חהסכקב התוכניות יכולות לבצע מספר רב של פעולות שונות על תפריטים גם לאחר שהתוכנית. קשרה והציגה את התפריט בחלון. אחת הפעולות הנפוצות ביותר שהתוכניות מבצעות. על תפריטים זו הוספת פריטים לתפריט. הפונקציה טחפויַחפקקה/ מוסיפה לסוף של שורת התפריט פריט חדש שמוגדר על ידך. באפשרותך להגדיר תפריט הנשלף למטה, תפריט משנה, או תפריט קיצור. תוכל גם להשתמש בפונקציה טח6%6חסקקה. כדר להגדיר את התוכן, ההופעה וההתנהגות של פריט התפריט, כמו שרואים להלן הפפ 00 6 ₪0 ממסת 50 16שממת // מש פוא 56 1-טמסה // ,95 נפט צאצט ב[התגת עס ע14001510 מ16-מתשה //‏ ,מ160שסאש1ט עאצט ומשמטטם 05 טמשת 500-4008 65 // 0086686 1668-מתשח // משמצאשאש1 לטק / בדרך כלל הפרמטר טח6אח מציין שורת תפריט, תפריט הנשלף למטה, תפריט משנה, או תפריט קיצור ש-חסווחספפה עומדת לשנות. הפרמטר פ5סטט מגדיר דגלים לשליטה בהופעה והתנהגות של פריט התפריט החדש. הפרמטר חחפזזוופאפז מגדיר אחד משני דברים: את המוהה של פריט התפריט החדש, או אם נקבע הערך קטקסק =ו לפרמטר פסָהט הוא מגדיר את ידית התפריט הנשלף למטה או תפריט. המשנה. הפרמטר וחפ!!אוסוזקו מגדיר את תוכן פריט התפריט החדש. הצורה שבה הפונקציה טחש/שחפקקא מפרשת את הפרמטר וחפו1וסאק! תלויה בדגל שמכיל הפרמטר. 5 הדגל קחוודנם =ו, אוהה הטאעוס שו אר 6אזהד5 >. עיין בטבלה 6. 4 זא2פחווו ומבוא ל-ספו היישוס חייב לקרוא לפונקציה זגפטחפויוווּזס בכל פעם שהתפריט משתנה, ללא קשר אס הוא נמצא בחלון שמוצג כרגע. באפשרות התוכנית לקבוע מספר דגלים לפרמטר פוט כפי שמפורט בטבלה 8. % הערה: הפונקציה טח6!ו6חססקה אינה מאפשרת להשתמש בשילוב הדגלים כפי שמוצג לחלן. 5 ספצם שא [הסואתאונססצם. שו ממצתהם שו [-סשממתזום שו סמנםתפדם שו אותתפהפות שא, 06ודתד5 שוג, מתוודנם שו אהשהמטווטו וע ר-אתםהמהתסטונות שת [מאסטאסוט שא -ספאסטמס שו טבלה הערכים האפשריים של הפרמטר פוט עוד פירוש קהויודו ו | משתמש במפת סיביות כפריט בתפריט. הפרמטר. חז1וס)זק! מכיל את הידית של מפת הסיביות. 680650 1% | מצמיד תו סימון לפריט. אם היישום מאפשר להשתמש. בתווי סימון של מפות סיביות, דגל זה מציג סימון של מפת סיביות צמוד לפריט התפריט. 15850 ויו || מעביר פריט תפריט למצב לא פעיל, כך שהמשתמש לא יוכל. לבחור בו, אבל דגל ה לא הופך את הפריט לאפור. ספ האש ו | מפעיל את פריט התפריט ומשחזר אותו ממצב אפור, כדי שהמשתמש יוכל לבחור בור 6/0 11 | מעביר פריט תפריט למצב לא פעיל וגורם להצגתו באפור, כדי שהמשתמש לא יוכל לבחור בו. אהמהפההסטאפו ו | מתפקד כמו הדגל אהפהפטאסו זוז עבור שורת תפריט. עבור תפריטים הנשלפים למטה, תפריטי משנה, או תפריטי קיצור (שח6א 5040), קו אנכי מפריד בין העמודה החדשה לבין העמודה הקודמת. אתשהפטאסוי =1י! | מציבה את הפריט בשורה חדשה (עבור שורות תפריט) אד בעמוד חדש (עבור תפריטיס הנשלפים למטה, תת-תפריט. (טחפוחפט5, או תפריט משנה, או תפריטי קיצור), מבלי להפריד עמודות. נספח א: פונקציות נוספות והרחבה | 575 ערך פירוש שו/הסהפא/וס =וי! | מגדיר שהפריט הוא פריט ח/ו3ז6-זסחווס (פריט שהוא בך לפריט אחר שמוצג כאשר האב שלו מצייר אותו). לפנל שהתפריט מוצג בפעם הראשונה על ידי היישום, החלון. שמכיל את התפריט מקבל את ההודעה. דנ הסוא וא/ו שמעבירה לו את רוחב וגובה פריט. התפריט. לאחר מכן היישום שולח ההודעה. אפדנשו/ה. או לפונקציית החלון של האב בכל פעם. שהיישום חייב לעדכן את ההופעה של פריט התפריט. קטקסק אוו | מגדיר שפריט התפריט פותח תפריט נשלף למטה או תפריט. משנה. הפרמטר חפזז1א6פ1ט מגדיר את ידית התפריט. הנשלף למטה או של תפריט המשנה. משתמשים בדגל זה. כדי להוסיף שם תפריט לשורת התפריט או לפריט תפריט. שפותח תפריט משנה של תפריט הנשלף למטה, תפריט. משנה, או תפריט קיצור. 08 אזון | מצייר קו מפריד אופקי. משתמשים בדגל זה רק בתפריט. הנשלף למטה, תפריט משנה, או תפריט קיצור. אין באפשרות התוכניות להביא קו וה למצב לא פעיל, לצבוע אותו באפור, או לבחור בו. הפונקציה טחס1י6חספקה. מתעלמת מן הפרמטרים וח%6116ק! ו-וחפז61/פ1ט כאשר מגדירים את הסוג הסד8ק56 ו 6 זוי | מגדיר שפריט התפריט הוא מחרוות טקסט; הפרמטר 6ז1/ו6)/! מצביע אל המחרוזת. 0פ06ם0ז6אונ או | לא שם תו סימון ליד הפריט (ברירת המחדל). אם היושום. מספק תווי סימון של מפות סיביות (ראה הפונקציה. 1)078/000805ח560%0), דכל זה מציג את מפת הסיביותת שמסמנת מצב לא מסומן (כלומר הבחירה לא מופעלת) ליד פריט התפריט. כדי להבין יותר טוב את פעולת הפונקציה טח6וחסססא, התבונן בתוכנית שא .₪6 (הנמצאת בתקליטור). היא מוסיפה את פריט התפריט וחפז1 סז בשורה נפרדת, בכלל פעם שהמשתמש בוחר בפריט התפריט !765. הפונקציה 6זק6ח/ לוכדת את הבחירה. בפריט 765 ומשתמשת ב-חסויוחספקה כדי להוסיף פריט חדש, כפי שמוצג להלן + 859 100 ₪896 רת ( ו 0 סק ,אהמהמתהמטאומא פע | סאדהצם פא 2( "1660 אס" ,120 ( ו םת ו 6 זא2חווו ומבוא ל-ספו מחיקת פריטי תפריט שנבחרו, עם הפונקציה 6160011608 בסעיף הקודם השתמשת בפונקציה טחס!וחסק כדי להוסיף פריטים לתפריט מסוים. אפשר להשתמש גם בפונקציה 6660 כדי למחוקי פריט. מתפריט. אם פריט התפריט פותח תפריט הנשלף למטה או תפריט משנה, הפונקציה טח09/6/6%6 מפרקת. את הידית לתפריט או לתפריט המשנה, ומשחררת את הזיכרון שהם השתמשו בו. משתמשים בפונקציה טח09/19%6 כמו בהגדרה שלהלן 000 16109 ומסח 50 016חמת // משות אמא מסןמ1פסק עס 100016102 מ188 מתשח //‏ ,ה10ם1פסקט צאט 166 מס // אנט ₪ כמו תמיד, היישום חייב לקרוא לפונקציה זבפטחפ'יווופזס בכל פעם שהתפריט משתנה, ללא תלות אס התפריט נמצא בחלון שמוצג כרגע. כדי להבין טוב יותר את הטיפול ש-טח06/61/0 מבצעת, התבונן בתוכנית 56 - 86, שבתקליטור המצורף לספר אה, אשר מוסיפה שלושה פריטים חדשים לתפריט בזמן יצירת החלון ואחר כך מוחקת את. הפריטים החדשים האלה כאשר המשתמש בוחר פריט. התוכנית מבצעת את טיפול זה במסגרת ההודעות שדא5ה) אוו ו-סאג/וו00 ו שבהוראות ה-68וא5 שבפונקציה 6 כפי שמוצג להלך 6 6 ו ; ( הת ) טמסעטפם = המסא שאפוא ;( "15081" ,נממצד אש: ,סאדתד5 צעא ,והסועת | טהממהסמקת ;( "1082" ,2ממת1 אפ: ,סאדתד5 צעא ,גוהשועת | ה6מבהסמקת ;( "155083" ,₪03ת1 מע: ,סאדתת5 צעא ,ושעת | טה0משהשמקת 1 אמצ הסט 0 456 ( בק 100 )160 נספח א: פונקציות נוספות והרחבה | 577 ( ה | תס = הפועת סופוא ו 00 ,תסו | 1 ( ג תפ אמצ 00 העמקה - מבנה קבצי משאבים למעשה, כל תוכנית פאוסשחו/ משתמשת במשאבים. 60068 שומרת את המידע אודות המשאבים בקבצים, עוורת לך באחוקת הקבצים בצורה מאורגנת ונגישה ושומרת שהקוד שלך לא יהיה מסורבל. בדרך כלל מאוחסן המידע אודות המשאבים. שהתוכנית משתמשת בהם בקבצי משאבים - 16 (₪69 66ז890). השימוש בקבצי המשאבים יעיל למדי, כי לרוב התוכנית טוענת את מידע המשאב לזיכרון רק כאשר היא וקוקה למשאב במהלך הביצוע. בדרך כלל, מהדר המשאבים (בדרך כלל הוא נקרא 6.648') מהדר את קוב המשאבים. והופך אותו לקוב 885. המקשר (פאחנו) מקשר את קובץ 885 לסופו של קוב ההפעלה של התוכנית שעבר הידור בהצלחה, ואו כל המשאבים שהוגדרו בקוב המשאבים הופכים להיות זמינים לשימוש התוכנית בומן הפעלתה. קובץ המשאבים יכול להכיל חמישה סוגי משאבים המוגדרים בשפת תסריט 50100) ונכתבים כל אחד בשורה אחת: קהואד81, 608508, 0ס1, דאס ו-8816ד5866פפו/. כל. אחת מהוראות אלו טוענת אל טבלת המשאבים שבזיכרון את הקובץ שנושא את הסוגג המוגדר בהוראה. כאשר משאב נכלל בקובץ המשאבים, התוכנית יכולה להשתמש. בפונקציות טעינה כמו ח1036160, כדי לגשת אליו ולהשתמש בו. בדרך כלל סוג של משאב המוגדר בשורה אחת נראה כך "10.100תפאפם" | ממפםתה0פנם | אס פפתצו בנוסף לחמשת טוגי המשאבים שמוגדרים בשפת תסריט באמצעות שורה אחת, יש חמישה סוגי הגדרות בשפת תסריט מרובות שורות (9ח6-1וטוטוא) : 8708 0051 6, טאפוא, הדהכסה ו-8815ד6א1ה51. ששת הסעיפים הבאים מסבירים איך להשתמש בסוגים 518110686 ו-דססה. קל לוהות את סוגי המשאבים שמוגדרים בקבצי המשאבים באמצעות שורות רבות. כל. סוג של משאב שמוגדר על ידי שורות רבות מכיל הוראת סוג 0ח6וח0)ג51 ספץז), בלוק. מסוג סאש-א8861, והוראות בתוך הבלוק סא5-א8561 או בלוקים נוספים מסוג סאפ-א8561, כמו שרואים בדוגמה הזר נמהמהתס15ם. שגפו טאופומופא. אפפ "49116" פטפספ אזסט עצאם אפ ,"15א6ם" אשצנטעטע 5 פא פס 8פ 1‏ ,"!טתסע 5018" מפצצטאט 6 סוט 8 :כו ומבוא ל-ספו מבוא לטבלאות מחרוזות למדת שאחד מסוגי המשאבים מרובה השורות שקבצי המשאבים תומכים בו הוא 5 זה ד5. רוב היישומים משתמשים בסדרה של מחרוזות תווים בהודעות ובפלט. הכולל תווים. פאוסוחוו מספקת טבלאות מחרוזת (פטוטפד הַוּ0פ) כתחליף לשיטה המקובלת של מיקום מחרוזות באזור הנתונים הסטטיים של התוכנית. לכן, באפשרות. התוכנית להגדיר מחרוזות תווים בקובץ המשאבים, ולתת למחרוות ערך מוהה (פ1 ששו) כפי שמוצג לחלך סלפ אזספט ".580016 86538 6בסחגפ" 91 105 "10מ1ם 8'עסתחבצהסצק ++0/0% פ'בפחגט" | 2מפתמסתנת1פ פד "6140465 המב 8פתפנ" | מפתמסאנתלס 15 ב- בנוסף להגדרות התוכן שלהן במשאב, מגדירים בדרך כלל את הערכים המוהים של המחרוזת (כמו 518163 125) בקובץ כותר נפרד, שמכלילים אותו בקובץ המשאבים. והמודול (או המודולים) שעושים שימוש במחרווות אלו. כשהיישוס חייב לנשת לנתונים, צריך להשתמש בפונקציה 03050 כדי להעתיק את נתוני התווים מקובץ המשאבים למאגר בויכרון. מחרווות בטבלת מחרוזות (1306 הַו50) יכולות: להכיל. תוי בקרה (כמו למשל, טאבים ושורה חדשה), וגס תווי בקרה להדפסה. יש מספר יתרונות תכנות עיקריים לשימוש בטבלאות מחרוזות. היתרון העיקרי הוא: בהקטנת דרישות הזיכרון עבור התוכנית. מכיון שהתוכנית אינה טוענת את המחרוזות. עד שהיא צריכה אותן, אין צורך לאחסן את המחרוזות באזור הנתונים הסטטי שלה. לכן, צריך להימנע מלהעתיק את הנתונים של טבלת המחרוזות למאגר זיכרון סטטי 816 /זסוחסו! 50306), כי אם עושים זאת, מבטלים למעשה את יתרון השימוש. בטבלאות מחרוזות. מה שכן צריך לעשות, הוא להעתיק את נתוני טבלת המחרוזות. למשתנה מקומי (משתנה מחסנית), או לאיכרון הגלובלי יתרון עיקרי נוסף לשימוש בטבלאות מחרוות הוא התמיכה שלהן במספר שפות. 1 פווסחואו תומכת במשאבים מרובי שפות (605ו86500 והטח/-טו). עם. יישום. יחיד. כלומר, ניתן להפיץ את אותו קוב הפעלה של התוכנית במספר מדינות (הדוברות בשפות שונות), מבלי שתצטרך לשנות אותו. בסעיפים הבאים נשתמש בטבלאות מחרוות כדי להחזיק את מידע החלון נספח א: פונקציות נוספות והרחבה | 579 משאבים מותאמים אישית (₪6500665 וה6₪5%0) אחד מסוגי המשאבים מרובי השורות הוא 8608%. אפשר להשתמש בסוג זה כדי לאחסן סוגים אחרים של נתונים סטטיים, ובמיוחד נתונים בינריים גולמיים. לדוגמה, קטע הקוד הבא מאחסן מספר של סוגי נתונים שונים באמצעות המשאב פ1ו0. הצתססת 46810 אנספם 3 40 2 (4פטת%1מסם) 8868 מַמ1צופ" "8%8 הַה561 שפסאא" פוט באפשרותך להכיל משאב נתונים מותאם אישית בקובץ התוכנית, או לקרוא אותו מקובץ נתונים חיצוני, אך המקוס הטוב ביותר לאחסנת משאב נתונים מותאם אישית. הוא בקובץ חיצוני. מהדר המשאבים יכול במקרה זה להוסיף את התוכן של הקבצים. החיצוניים למשאב המידע כאשר הוא מהדר את קובץ המשאבים. לדוגמה, שתי ההוראות הבאות מגדירות את סוגי המשאבים דאפד ו-6 וזזאד6ו! המותאמים אישית, קובעות מוהה לסוגים, ואז מוסיפות את המשאבים לקובץ המשאבים. ".ספת" א עספפת צפתצטון טסו "6 מעססב מ" כאשר מגדירים סוגי משאבים מותאמים אישית, משתמשים בפונקציה 0686500168 יחד עם הפונקציה 1030865065 כדי לטעון משאבים מותאמים אלשית לתוכניות. טעינת טבלאות משאבים לתוכניות באמצעות ַחוז03051 1 למדת שאפשר ליצור טבלאות מחרוות עס קבצי המשאבים. עליך להציב לכל מחרוזת. בטבלת המחרוות ערך של מוחה מסוים, שבדרך כלל מגדירים אותו בקובץ הכותר של התוכנית, כפי שמוצג להלן 100 לצא ש1 4461108 לפמ 10% 400110 שטסמת אש: 4451106 0 3231חווו ומבוא ל-ספו לאחר שמגדירים טבלת מחרוות, משתמשים בפונקציה 103050 כדי לטעון משאב מחרוזת מקובץ ההפעלה שקשור למודול שהוגדר, להעתיק את המחרוות לתוך מאגר, ולהוסף את !וא כתו מסיים למאגר. משתמשים בפונקציה חַח10050, כמו שמוצג בהגדרה שלהלן. 1 ַה1ת1ג5הסם 18טבסח 06 ב1הממת //‏ שסתבםפהזת מסאתעפאצט הבע // 1860015165 66צמ0פם, /] פנט צאצט 0808 508 עם51טמ 0% 8442088 // 101169 הפפ %6%פטם 05 815 // פה 46 ₪ הפרמטר פסחופחזח מזהה את מופע המודול שקובץ ההפעלה שלו מכיל את משאב המחרוות. הפרמטר סזט הוא מספר שלם שמוהה את המחרוות שהפונקציה 1030508 צריכה לטעון. הפרמטר 8/06ק! מצביע למאגר שמקבל את המחרוזת. לבסוף, הפרמטר אמ%זט!/פח מגדיר את גודל המאגר בבתים (גרסת 851א), או בתווים. (גרסת 6006וח0). הפונקציה מקצצת ומוסיפה 011 מסיים למחרוות במקרה שהמחרוות יותר ארוכה ממספר התווים שציינת. אס 10305000 מצליחה, היא מחצירה את מספר הבתים (גרסת %51) או את מספר התווים (גרסת 6006/ח₪) שהעתיקה למאגר, לא כולל את התו המסיים 01; או אפסו, אס משאב המחרוות לא קיים. כדי להשיג מידע נוסף אודות השגיאה, אפשר לקרוא לפונקציה זסוש)35!ו66. כדי להבין טוב יותר את הטיפול שהפונקציה פַ103050 מבצעת, התבונן בקטע הקוד הבא מתוכנית ַז108654 שנמצאת בתקליטור המצורף. לספר זה (בתיקיה 8008559285/68-8) + פמ 10% 896 ו 39569108140[;‏ שמת 0 5פהמסא1הדפ 105 = 18%) 0+ (++16% ;3+מפהפס0אנתצם 105 > 1% (( 40 ,הַ1ע5250 ,14% ,ספהדת)אה1ע10885% ,"108868 6ה1ע50" ,ַת1ע5258 ,8מאה) 58900 פטת ( סנפ ממתספנא100 פע | א0 פע 1 וצ התוכנית 103658 תטען ותציג שלוש מחרוזות נפרדות כאשר המשתמש בוחר באפשרות 190. התוכנית תציג כל מחרוזת בתיבת הודעה נפרדת. נספח א: פונקציות נוספות והרחבה ‏ 581 הצגת תוכן קבצי המשאבים אפשר לאחסן בקובץ המשאבים מספר רב של סוגי נתונים מותאמים אישית. הפונקציה 65וח9א60ז8690וחטח5 מחפשת כל סוג של משאב שהוגדר במודול לפי הערך. שהצבת לפרמטר 6ע21פטן. אחר כך היא מוסרת לפונקציית משוב (חסו61חט 0311086 המוגדרת. על ידי היישום, את השם של כל משאב שהיא מאתרת. הפונקציה 690605 חח ממשיכה לסקור את שמות המשאבים, עד שפונקציית המשוב מחצירה 83/56, או עד שהיא מסייימת לסקור את כל שמות המשאבים. את הפונקציה 6506080065 וחטחם כותבים כמו בדוגמה שלהלן המות 00 הת 16טמסת-05עמ50סע // ,ס1טבסעת מסאותעפאצ 86ע6 806ט690: 60 ששטהגסם //‏ שמעל52מ1 מקה 86%מ6811 50 ע)תגסם // ,סהנתהטממק1 ססהקמממופמהאטום מ 1 ש6טשמ8פג 68ת1086108-6681סק4 // 194 1086 הפונקציה 65ו608₪ז650וחנוחש מקבלת את הפרמטרים שמפורטים בטבלה 9. טבלה 9: הפרמטרים שהפונקציה ₪65005887065 וחשח₪ מקבלת. פרמטר תיאור 066 | מוהה את המודול שקובץ ההפעלה שלו מכיל את המשאבים. שהפונקציה 5₪065)פסז50סהוחטחש צריכה לסקור את השמות. אם. פרמטר זה הוא 011א!, הפונקציה מונה את שמות המשאב במודול. שהשתמשנו בו, כדי ליצור את התהליך הנוכחי. 8 | מצביע למחרוזת המסתיימת ב-1טא!, אשר מגדירה את סוג המשאב שעבורו הפונקציה 69%9065ז50ס8וחטחם וקרת את השמות. עבור סוגי משאב סטנדרטים, פרמטר זה יכול לקבל את אחד הערכים. שמפורטים בטבלה 10 שחטפוחטחטק! | מצביע לפונקציית המשוב שנקראת על ידי הפונקציה 865065 וחטחם עבור כל שם משאב שסורקים. חחזמק! | מציין ערך שמוגדר על ידי היישום שהפונקציה 8050605 חח מוסרת לפונקציית המשוב. באפשרות. התוכניות להשתמש בפרמטר זה בומן שהן בודקות שגיאות. כמו שרואים בטבלה 9, הפרמטר 0521/06 יכול לקבל ערך אחד מתוך מספר ערכים. שמפורטיס בטבלה 10 2 כו ומבוא ל-ספו טבלה 10: הערכים האפשריים שהפרמטר 6ק521ק! יכול לקבל. עוך סא ד זוה ד אססזאה. דה קהוודום. ד 8 6 זפ זווס? זה סוס זה ו ו ו אס זה טאפוא דה ב וו זה 6 זה אפפ ד פא זה פירוש טבלת מקשיס מהירים (189/6 ז609/613)0א). סמן הנפשה (זספזנ 66והוחוחה). סמל הנפשה (1600 8186חזוח). משאב מפת סיביות (65ז550ח קהווזו). משאב סמן שתלוי בחומרה (זס5זט) 061 ח6קסס-157676 ב תיבת דו-שיח (80% ָסומום). משאב גופן (0168ו₪650 זחס>). משאב גופן לתיקיה (89500165 /זס61זו ]חס משאב סמן שאינו תלוי בחומרה (0ח7-100606006 1510 8 משאב סמל שאינו תלוי בחומרה (0ח6-100006005ה/0מ11 ב משאב סמל תלוי בחומרה 776-100 משאב תפריט (₪65009 טחסוא). כניסה בטבלת הודעות = 01655306-730/6). משאב הכנס-הפעל (69ז8950 עבוק 306 ָטוק). משאב שמוגדר על ידי היישום (נתונים גולמיים, ג 85 כניסה של טבלת מחרוצת (עשח6 פוסבּד-ַחו0פ) משאב גירסה (₪650₪69 65/00/). מנהל התקן וירטואלי (אפע, זסאזס פסווסם והטדהז/ו. כדי להבין יותר טוב איך פועלת הפונקציה 5)8₪65סווספפחחוטחם, התבונן בתוכנית. שו 3 שבתקליטור המצורף לספר זה. קוב המשאבים של התוכנית מכיל שלוש. מפות. סיביות. התוכנית משתמשת בפונקציה 500609%20065פמחוטח. ובפונקציית. המשוב פקְהוחזופוחוק כדי למנות את המשאבים מסוג לאואד81 .8 שבקובץ המשאבים 3 נספח א: פונקציות נוספות והרחבה | 583 הקוד הבא מציג את פונקציית המשוב ,8מעל2פ1 הצפעסק1 ,6נממסא מנפתתא) פקפה:נפותוגת אסתם1נתס מססם (מ8פ8פ1 00 ,סתמתפפק1 הללסנ ;( שממופפמ1 ,פ1מ6סעת | קבהו08081ם = ממהזופה קת זםת ( פגחוגמת | 11 / חפולצ ספמפאת | ספא ;העגפ (סאאא) = במאת = פאאא מא )06000 = שעמ | ספא סנס עאספ .ממתטגם שת: 08 2120 המל 65 // ;( מעג ,( קתמענם )212606 ,קפתז1שג )0100608 .0 תפומ שמ :86100 60 סם עעסהסת ב 6858צס // ( ספ )96860008085101600ם = ספהסעת |( קגתזגמת ,0פמשעמ | 806[מ5016650 .618א1ק 50%50 50 15 חַת1מ650צ86 ,קמחגם פם עב1מפצם // ,0 ,ספהפאה ,50 ,50 ,0 ,פסעתף ,ספה )5נמת60צמם ;( צפסססה5 ,ותףנסממם.חם ,מ18%אחם תת מתפת ממהז1ם בג צ18םפ1ם // ,מ 5616060016 = 6ה0עבסת ; ( (דואסט. תה זפואה) 0055%00%00360% ;((חן2פכ1) 502108 ,שתבאפפם1 ,60 ,פסקמ ,סעמ) מס אמצ ( 0189005 ,פמ ) 0166500106 0 1 0 ,תג 5000 1טת ( 81988 )1066001605 = פספחט 1 מטהץ )תצע 1 פונקציית המשוב פקמושופוחוּ? מבצעת עיבוד חשוב. היא משרטטת במסך כל מפת סיביות שהפונקציה 5010983765 הוחטחם סוקרת. 4 3271חו/ו ומבוא ל-ספו שימוש ב-681085ז650₪0₪א וחטחם עם קבצי המשאבים למדת על הפונקציה 9%8065סזט50פמחזטחם, שאפשר להשתמש בה בתוכניות כדי לסקור בקובץ המשאבים את המשאבים השונים מסוג נתון. אך ייתכנו מקרים בהם. התוכנית לא תדע מראש את סוגי המשאבים השונים שנמצאים בקובץ המשאבים במקרים כאלה, באפשרות התוכניות להשתמש בפונקציה 661065זט50פחחזטחש, כדר לחפש מודול הכולל את המשאבים הדרושים. היא מעבירה כל סוג משאב שהיא מוצאת אל פונקציית משוב שמוגדרת על ידי היישום. הפונקציה 650697065 חטחם. ממשיכה לסקור את סוגי המשאבים עד שפונקציית המשוב מחצירה 86ו58, אד עד שהיא מסיימת לסקור ‏ את כל סוגי המשאבים. משתמשים בפונקציה הח בתוכניות, כפי שמוצג להלן ופט טח מססם 1 ונ מטססוא 86%מ0811 60 עשתגסם // ,סמנתהטתמק1 ססהקמפצפפמהאטאם 1 +6סשהםעגם 68ה6651-ה1102:10ססה // 10 באס / כשם שהפונקציה 9020065סו50פמחזטחם משתמשת בפונקציית משוב, כך גם הפונקציה. הוחות משתמשת בפונקציית משוב. הגדרת פונקציית המשוב שבה משתמשים עם הפונקציה 065ע91זט50סהוחטחש מוצגת בדוגמה הבאה (תוכל כמובן, לבחור שם אחר לפונקציית המשוב שלך, במקום 651067106 החוטחם) 06פק פע 6תמנותם אסהמתותס מססם 5000-0016 מע //‏ ,16טבסמת ממקאתט 6פעם 66ע500ם? 60 פשטהגסם //‏ ,הקעד2פק1 תעפפקן 8:8 4081068 ה1108610ססב // 10 אס / הפרמטר פטץ1/ק| מצביע למחרוזת המסתיימת ב-₪11 שמגדירה את שם הסוג של המשאב שעבורו הפונקציה מונה את הסוג. עבור סוגים של משאבים סטנדרטיים, הפרמטר 6פץ521ט יכול להכיל את אחד הערכים המפורטיים בטבלה 9. כדי להבין יותר טוב את מהלך העיבוד של הפונקציה 667/065זט50סחוחטח6, התבונך בתוכנית +65חוחטחפ שבתקליטור המצורף לספר זה. תוכנית זו רושמת בתיבת רשימה 800 1266) את כל הסוגים השונים שהיא מוצאת בקובץ משאבים נתון. קטע הקוד שלהלן | מציג | את פונקציית | המשוב ‏ 065ץ108180900/007, = שהפונקציה משתמשת בה כפונקציית משוב תפצק ,16גהסנת ממסעותה) םקד60עו11558680 אסתם1זתס מססם ( 38עגק1 106 ,6מע821מב [ 1496 = מַ345651תק1 8לפצקב בק 1 (סאתומ) ומ | סאמ נספח א: פונקציות נוספות והרחבה ‏ 585 66ה00:1-פעם ג 18 בקעש 66ע26500 שת: 15 60ב 0: אששמס // .512108 שט1מק1ע8680 2 60 הַת1צ4050מ12 56% 15 16 15 .שמצט // ( (פמעד182) תס ) 1 [ 140565189 : ה0תהם1מססת ה 488 (8%סעם /":0010:80מ' [8%צט ;"קמח1ם" = המב + פהאענט 91 6888 %צט ;"סַ1810ם" = הַתִ1ַעשפהאהמ1 + 92 886 /%בסעם ;"פחסת" = 6ַת1עמ485המב ;46עם ;"+1ספחסת" = חַת1ע85%המ1 צאסט 91 886 8נפצאס? ה 68486 (%בשעם ;"מחשת" = הַת1ע4850המ1 + טופוא 92 6886 ;הפע ;"גטגם סת" = הַה1ע8456ַ1 הפסה 91 6886 (%מסעם ;"7215 הַתנצשפ" = הַהנּהה1 + 6 9 6886 /"16מגל 6ף588שא" = הַ1ע0056ת12 : םןמתצםטת55מון לה 6850 (8%ספם (בסעמ ;"עספעטס" = הַה1ע456אַמ1 8ספפטס 1 68486 "פספעגם מטסע0" = הַצ4056תק1 : הספתטס קטסהם ה 6886 (%מסעם /68%צט /"1000" = הַה1ע198456 100% 82 6886 8%שעמ "1000 סטש" נ"מ10ממהע50ת1 תס1פעמט" 1445686 + 1008 פטסאם 1964560108 + א10פתסט צט 6856 (%בספם 9 1 ,1- (מתתתקאו) ,סאנהלטצהמפַ: 1 ,אס6בגתת | 0085208 2 ( 5108 4086ת10 (מנתהתקם) ;( מטתע ) תעטמ6צ 1 פונקציית המשוב מקבלת את הערך 6קץ1:פק! מהפונקציה 65ק097זט650הוחטחט וממירה אותו לערך של מחרוזת המוכר יותר למשתמש, כמו '"חס16" או "ישחסואיי טעינת משאבים לתוכניות באמצעות 6סזטספסה0חו= התוכניות יכולות להגדיר בקובץ המשאבים מספר כלשהו של משאבים מותאמים אישית. | בסעיפים | קודמים | השתמשנו בפונקציות = 650100265הוחטחט ו-5ק/667זט50סהוחוחם כדי לקבל את רשימת כל השמות של משאב מסוג נתון, ואת רשימת כל סוגי המשאבים שבקובץ המשאבים. כתחליף, יכולות התוכניות להשתמש. בפונקציות 089500/66ח ו-6500108ה1030, כדי להשיג את אותה תוצאה. הפונקציה 6805066 קובעת את מקום המשאב על פי הסוג והשם שמוגדרים במודול שציינת. 6 3271חו/ו ומבוא ל-ספו את הפונקציה 800895069 כותבים כפי שמוצג להלן הפפ 6 סו שת 56500906 60 5שסמ1סם // ,ומאק 8ע5ל0ק1 6פע6 56900606 60 צשסמבסם // עלק 105 / כאשר הפונקציה 08950065חז מצליחה, הערך המוחזר הוא ידית לבלוק המידע של המשאב הרצוי. כדי לקבל את ידית המשאב, צריך למסור לפונקציה 1080865066 את. הידית שהפונקציה 8008950066 מחזירה. אם הפונקציה נכשלת, הערך המוחור הוא: טא אם מילת הסדר-הגבוה של הפרמטר פוחפאפ! או של הפרמטר פעזטו שווה לאפס,, מילת הסדר-הנמוך מגדירה מספר שלם, שהוא המזהה של השם או של סוג המשאב הנתון; אחרת, פרמטרים אלה יהיו מצביעים ארוכים למחרוזות המסתיימות ב-א אס התו הראשון של המחרוזת הוא התו +, שאר התווים מייצגים מספר עשרוני שמגדיר את המספר השלס אשר מוהה את שם המשאב, או את סוגו. לדוגמה, המחרוות ''258א' מייצגת את המזהה, שהוא המספר השלם 258. היושומים צריכים לצמצם את צריכת הזיכרון של המשאבים על ידי ההתייחסות. למשאבים עם מוהים של מספרים שלמיס, ולא לפי שם. יישוס יכול להשתמש בפונקציה 65ש₪068690 כדי למצוא כל סוג של משאב, אך צריך להשתמש ב-068690760/₪ רק אם על היישום לגשת למשאב מידע בינרי כשהוא מבצע קריאות. עוקבות לפונקציות /80ז0ו10361 ו-10068690/60. כדי ללמוד יותר על /80ז0/ 10361 ו-1068550/60, התבונן בתיעוד הגלווה למהדר שלך בעזרה המקוונת. כדי להשתמש במשאב מייד, על היושוס להשתמש באחת מפונקציות המשאב המיוחדות (69-500066ז86900) המפורטות בטבלה 11, כדי למצואא ולטעון את המשאבים בקריאה אחת. טבלה 11: פונקציות 1.086 המיוחדות של המשאב 650708-50606. פונקציה פעולה 05536מחזס= | טעינה ועיצוב כניסה בטבלת הודעות ((ח1ח8 6ב 1055806 א) 1038860903 | טעינה של טבלת מקשים מהירים. 108081008 | טעינת משאב מפת סיביות. 03600 | טעינת משאב סמן. 30100 | טעינת משאב סמל ח1036%0 | טעינת משאב תפריט. 00909 | טעינת טבלת-מחרוזת (סו1פָ50). נספח א: פונקציות נוספות והרחבה | 587 לדוגמה, יישום יכול להשתמש בפונקציה ח1080160 כדי לטעון סמל שיוצג על המסך. אך, היישום צריך להשתמש ב-₪068650/66 ו-10808690/60 אם היישום טוען את הסמל כדי להעתיק את הנתונים שלו ליישום אחר. כדי להבין יותר טוב את מהלך העיבוד של הפונקציה 068690065=, התבונן בתוכנית. 5, שבתקליטור המצורף לספר וה. 806865 משתמשת ב-089500109ח₪ כדר לטעון נתונים בינאריים גולמיים (ז03 עזחום אבח) לתוך מבנה (6ז60ט50). התוכנית. 5 משנה את קוב המשאבים, את קובץ הכותר ואת קובץ התוכנית של קבצי 6 המקוריים. קוב המקור מכיל את הקוד הנוסף הבא, שפשוט מגדיר קבוצת ערכים הקסדצימליים מנמאסהה0פנם העהססה 6860858 אזסטם 0 2 3 סט בקובץ הכותר מוגדר מבנה נתונים שהתוכנית קוראת את הנתונים לתוכו מתוך בלוק. של 3ז195103. היא עושה זאאת כך 8 [ 0 0 0 ;גצאספסה ‏ | לבסוף, קובץ התוכנית 5106865 קורא את הנותנים לתוך המבנה בקטע הקוד של פריט. התפריט 690ד שנמצא בפונקציה 06זק6חא, כך. לפמ 10 486 ;( תצתססה ה ,"ג:168508" ,משחזה) סעוספסהמת1ת = פסצת תפתט ( פסעם ) :4 [ 82501507 שמת ;|( פשצת ,ופה )206ט5126058650 = 4186 סאסאם :| פפעם ,186ת )108686500506 = תשחת מהמסנטט ;( מסתת )206טספסהאםסם(*הצהמפמה) = מסתם *התספמה ,0+ :108666 21068" ,52005 )!6ת1עספא השח ,"3 = 8126 40 נ( 8196 ,41063?<-הסחם ,041062<-הסחם ;|( אס מא ,בתפופקת2פם1 ההַע52 ,מאה |א50000פבע (8%ספם 8 3271חו ומבוא ל-ספו אס התוכנית מוצאת נתוני משאבים תחת מילת המפתח 950308ד, א התוכנית. מחליטה על גודל הנתונים ושומרת אותו משתנה 508. אחר כך משתמשת התוכנית. במשתנה מסוג 161088 כדי להקצות מקום בערימה 468 706 0/5 868ק5) לאחסנת. הנתונים. לבסוף, התוכנית מאחסנת את הנתונים במופע (אובייקט או משתנה) של המבנה 8550%18. כשמהדרים ומפעילים את התוכנית ובוחרים באפשרות פריט. התפריט 1950, יוצג על המסך אאת הערך בתוך תיבת הודעה. סגנונות חלון טבלה 12: הערכים האפשריים שהפרמטר 6/5616 יכול לקבל כשיוצרים חלונות בתוכנית. סגנון 0 5 סדק 5 וזו פא וס 5-1 אפס קד פאר ב ו וס פא תיאור יוצר חלון בעל גבול דק. יוצר חלון בעל שורת כותרת (כולל את הסגנון ו יוצר חלון-בן. לא ניתן להשתמש בסגנון וה בשילוב. עם הסגנון לטקסק.-5ווצ יוצר חלון כמו זה שנוצר על ידי ₪110 45 אינו כולל את השטח שחלונות הבן תופסים בעת. שמתבצעת פעולת שרטוט בחלון האב. משתמשים. בסגנון וה בעת יצירת חלון האב. גוור חלונות בן יחסית זה לוה; כלומר, כשחלון מסוים מקבל ההודעה דו!זק ואצ הסגנוך 5 פא גורס לגזירת כל שאר החלונות. החופפים שמחוץ לשטח חלון הבן שהתוכנית. משחורת. אם התוכנית אינה מגדירה את הסגנון 5 85 וחלונות הבן חופפים זה לזה, יכול להיות שבעת שרטוט בשטח הלקוח באחד. מחלונות הבן, תמצא עצמך משרטט בשטח הלקוח. של חלון שכן. יוצר חלון שמצבו ההתחלתי הוא בלתי פעיל. חלון במצב בלתי פעיל אינו יכול לקבל קלט מהמשתמש. יוצר חלון בעל גבול עם סגנון שמשתמשים בו בדרך כלל בתיבות דו-שיח. לחלון בעל סגנון זה אין שורת כותרת. נספח א: פונקציות נוספות והרחבה ‏ 589 סגנון ב ו 5 500 5 106 בו 280זד וא א ב 580% 2נואזוא א סטקקן ה/ס. א ופקת פס א לסל 5 0 3231חווו ומבוא ל-ספו תיאור מגדיר את הפקד הראשון בקבוצה של פקדים. הקבוצה מורכבת מהפקד הראשון הזה ושאר הפקדים שבקבוצה המוגדרים אחריו, עד לפקד הבא שמוגדר לפו סגנון ל6%00 05. בדרך כלל, לפקד הראשון בכל קבוצה יש סגנון 1885107 פא שמאפשר למשתמש לעבור בין הקבוצות. המשתמש. יכול לעבור בין כל הפקדים שבקבוצה על ידי השימוש במקשי החיצים במקלדת. יוצר חלון בעל פס גלילה אופקי. יוצר חלון שמצבו ההתחלתי מוקטן לסמל, כמו הסגנון 91181125 -5. יוצר חלון בגודל מקסימלי. יוצר חלון בעל לחצן הגדלה. התוכנית אינה יכולה לשלב את הסגנון א801812880/ .)ו עם הסגנוך ופחאפדא60 %= 05. התוכנית ג חייבת. להוסיף את הסגנון 515160 5 כשהיא משתמשת בסגנון א9/801%12080/ פ/ו. יוצר חלון שמצבו ההתחלתי מוקטן לסמל, כמו בסגנון 160816 45 יוצר חלון בעל לחצן הקטנה. התוכנית אינה יכולה. לשלב את הסגנון א9111112680/-5/ו עם הסגנוך 60 %=-05. התוכנית ג חייבת. להוסיף את הסגנון טאפו%פ+5 פ/ו כשהיא משתמשת בסגנון 1111128808 פ/ו יוצר חלון חופף. חלון חופף הוא בעל שורת כותרת. וגבול, כמו בסגנון 50 1ד 5או. יוצר חלון חופף. החלון מכיל את הסגנונות. ספקקת הפוס /ו, אסנדקה. 5/ו, שאפ5%5%1. פצ, 1106-8086 5/ו, א2580נוונאזוא. פאר ו-א33010017580/ 5 יוצר חלון מוקפץ. אי אפשר להשתמש בסגנון וה עם הסגנון 610 .4/5 סגנון תיאור שוססאזשקטקסק .5 | יוצר חלון מוקפ. החלון מכיל את הסגנונות. חס 5/וו, קטקסק עו ו-טאפואפ5 פא התוכנית חייבת לחבר את סגנונות החלון. אסנדקה0 .פ/ו ו-שססאזעוקטקסק .5 כדי לגרוס. להצגת תפריט החלון. 512590% 5 | יוצר חלון בעל גבולות שמאפשרים שינוי הגודלל שלו, כמו בסגנון 1110-8406 פע 555% .ו | יוצר חלון בעל תפריט מערכת בשורת הכותרת שלו. התוכנית חייבת להגדיר גם את הסגנון סדק אצ 85107 5 | מגדיר פקד שיכול להיות במיקוד הקלט על ידי שימוש במקלדת (0605 66/00316), כאשר המשתמש מקיש בטבלר (ץ8א סַ1). ההקשה בטבלר גורמת לכך שמיקוד הקלט יעבור אל הפקד הבא בעל הסגנון 85107 ו 8וה-10%רד. 5 | יוצר חלון שיש לו גבולות שמאפשרים שינוי הגודל. שלו, כמו בסגנון א512680 5/ ספ 1ד פע | יוצר חלון חופף. לחלון חופף יש שורת כותרת. וגבול, כמו בסגנון ספקקא הפס פא שוספאנצסם 1ד 5 | יוצר חלון חופף. החלון מכיל את הסגנונות. ספקק והש 5ו, אס1דק 0 פא, טאס5 5 5שו, :1116 5ו, א80פקנוונונוו, פאר ו-א%1117680 .%5 כמו בסגנוך וק א 5 /צ | מאפשר לראות את החלון מייד אחרי שנוצר. -ו560/ או | יוצר חלון בעל פס גלילה אנכי. נספח א: פונקציות נוספות והרחבה ‏ 591 טבלה 13: הערכים האפשריים שהפרמטר 58/16/₪ יכול לקבל כשיוצרים חלונות לחצן סחוי אס דד סגנון שדד35 85 פד ד35סדטת 85 000808 דט 85 אסאס דט 85 85/080080% סקס 85 2 כו ומבוא ל-ספו תיאור יוצר לחצן כמו תיבת סימון (גס 68666), שיכולה. להיות גם במצב לא פעיל, בנוסף לשני המצבים שלל תיבת סימון רגילה, מסומן (060%66) או לא מסומן. (60666הסחט). משתמשים במצב לא פעיל כדי לסמן. שהתוכנית עדיין לא החליטה על מצב תיבת הסימון. יוצר לחצן כמו תיבת סימון בעל שלושה מצבים, ההבדל הוא שתיבה זו משנה את מצבה כשהמשתמש. בוחר בה (מסמן אותה). מחזור המצבים הוא: מסומן, לא פעיל ולא מסומן. יוצר לחצן כמו תיבת סימון. ההבדל הוא בכך שתיבה זו משנה את מצב הסימון באופן אוטומטי בין מסומן לבין לא מסומן בכל פעם שהמשתמש בוחר בה. יוצר לחצן אפשרויות אוטומטי, שדומה ללחצן. אפשרויות רגיל (חסט8 חסטקס), אך נבדל ממנו בכך. שכאשר המשתמש בוחר בלחצן, פואס6חו+ קובעת את מצב הסימון שלו באופן אוטומטי כמסומן, ואוטומטית קובעת את מצב הסימון של שאר הלחצנים שבאותה קבוצה ללא מסומן. יוצר תיבת סימון קטנה וריקה עם טקסט. לפי ברירת. המחדל, התוכנית מציגה את הטקסט מצד ימין של. תיבת הסימון. להצגת הטקסט מצד שמאל של תיבת. הסימון, צריך לחבר לסגנון וה את הסגנון דד ).85 (או עס הסגנון השקול דד 16 85 יוצר לחצן רגיל שמתנהג כמו לחצן שנוצר עס הסגנון אסדדטפהפטק 85, ונוסף לו גבול שחור עבה. אס הלחצן נמצא בתיבת דו-שיח, אפשר לבחור בו על ידי הקשה על מקש זפוחס, גם אם הלחצן אזנו נמצא במיקוד הקלט (065! זופחו). סגנון זה שימושי כדר לאפשר המשתמש לבחור במהירות באפשרות ברירת. המחדל. סגנון 85 68080 פד | 85 אס 85 אסדדטפוופטק 85 85 10 85 05 אוו 95 0 95 60 95 הדו תיאור יוצר מלבן שבאמצעותו יכולה התוכנית להשתמש אחר. כך כדי לתחום קבוצת פקדים. התוכנית מציגה את. הטקסט הנלווה בסגנון זה בפינה השמאלית העליונה. של המלבן. שם נרדף לתיבת הקבוצה (6800780%) הוא מסגרת (וחבז). ממקם את הטקסט משמאל ללחצן האפשרויות, אד משמאל לתיבת הסימון כאשר משלבים את הטקסט. עם סגנון הלחצן או התיבה. דומה לסגנו. אסדדט 16 85 יוצר לחצן שמשורטט על ידי המשתמש. (חא5ז0-ז6חטוס). חלון האב מקבל את ההודעה. ואד1הט5ש1 ו כש-000%5חוו יוצרת את הלחצן ואת ההודעה 08/1 או כשאחד המרכיבים. הוויזואליים של הלחצן משתנה. אין צורך לשלב את הסגנון הזה עם סגנון אחר. יוצר לחצן רגיל שמשגר הודעה סאאואו60 אצ לחלון האב כשהמשתמש בוחר בלחצן (לוח עליו). יוצר מעגל קטן עם טקסט. לי ברירת המחדל, התוכנית מציגה את הטקסט מצד ימין של המעגל. להצגת הטקסט מצד שמאל של המעגל, צריך לשלב דגל וה עם הסגנון דאפדד:5 1 85 (או עם הסגנוך השקול אסדדט8ז8161 .85). בדרך כלל, לחצנר האפשרויות משמשים ליצירת קבוצות של אפשרויות שיש קשר ביניהן, אך רק אחת מהן יכולה להתקיים. בכל רגע נתון (טופטוא6 ץ!ופנמטוח). לדוגמה, לחצנר אפשרויות שמייצגים את התכונה יישור פיסקה במעבד תמלילים. הפיסקה יכולה להיות מיושרת לשמאל, לימין, לשני הצדדים, או לאמצע, אך אפשר לבחור רק באפשרות אחת בלבד, כדי להורות על יישור. הפיסקה. סגנון וה הוא מוחלט, אך תואס עם גרסאות 60405 של 16 סיביות. יישומים המבוססים על 32ח0 צריכים. להשתמש ב-ווהסחפאוווס. .85 מציון שהלחצן מציג מפת סייביות (קפווטום). ממקם הטקסט בתחתית המלבן של הלחצן. ממרכו את הטקסט אופקית במלבן של הלחצן. מציין שהלחצן מציג סמל. נספח א: פונקציות נוספות והרחבה | 593 סגנון 54 בור פאנונדוטו 85 דסא 85 ב 85 16 85 16 ופד 95 קסד 85 0 85 קת32חו/ו ומבוא ל-0פו תיאור מיישר לשמאל את הטקסט במלבן של הלחצן. אך אם. הלחצן הוא תיבת סימון או לחצן אפשרויות שאין לו את הסגנון אסדד80דו85.816, הטקסט ישאר מיושר לשמאל, אבל מצד ימין של תיבת הסימון או של לחצן האפשרויות. המשך הונת הטקסט לשורה הבאה, כשאורך מחרוזת הטקסט גדול יותר משורה בודדת של מלבן הלחצן. מאפשר ללחצן לשלוח הודעות שינוי מצב (חסט565וסח א 0005 ו-56150005 8% אל חלון האב של הלחצן. שים לב. שלחצנים שולחים הודעת שינוי מצב 0110660 א ללא קשר אם יש ללחצן את הסגנון צזזדס\/85. גורס ללחצן (כמו תיבת סימון, תיבת סימון בעלת. שלושה מצבים, או לחצן אפשרויות) להיראות ולפעול. כמו לחצן רגיל (חסזזט חפטפ). הלחצן נראה בולט. כאשר אינו לחוץ או במצב מסומן ושוקע בפנים. כשנלח) או כשמסמנים אותו. מיישר לימין את הטקסט במלבן של הלחצן. אם הלחצן הוא תיבת סימון או לחצן אפשרויות שאין לו את הסגנון אסדד80ד/ו85.₪16, הטקסט נשאר מיושר לימין, אבל יהיה מצד ימין של תיבת הסימון או שלל לחצן האפשרויות. ממקם את המעגל של לחצן האפשרויות או את הריבוע. של תיבת הטימון מצד ימין של מלבן הלחצן, כמר הסגנון ודד ! 85 מציין שהלחצן יכול להציג טקסט. ממקם את הטקסט למעלה במלבן של הלחצן. ממקם הטקסט באמצע (אנכית) המלבן של הלחצן. נספח 1 - ₪6 נספח זה נלקח מתוך הספר "המדריך השלם 6 ++6 18081/" בהוצאת הוד-עמי. הנספח מהווה תקציר של פרקים 1 עד 3 ולכן כמה נושאים עשויים להיראות לא. שלמים. הקדמה גירסה 6.0 של ++6 ומטפו מראה כיצד מיקרוסופט ממשיכה להתמקד בטכנולוגיותת האינטרנט ובתחום 601 (006/ 0966 +חפחסקוחס6, מודל עצם הרכיב), אשר מהווים. נדבכים עיקריים של תפיסת ₪8 (6ז0מ96וח6ה. הססבסווקקה. זסא!זפזהו ספוטסוחופום, ארכיטקטורת היישומים המבוזרים באינטרנט). נוסף לתמיכה ברכיבי תשתית אלה, 0 ++6 וגטפוץ גם כוללת מספר רב של כלי עזר לשיפור יעילות העבודה, כמו למשל שטחטחסס 806 5686, 56ח56!ו1פזח1, 6זוקחוסססטט, וכלי רבים אחרים לתכנות מתקדם. כלים ורכיבי התכנות השונים מציגים גירסה זו של ++6 וגטפוצ בדרגה גבוהה יותר ממה שהכרת עד כה. כמחברים עשינו מאמצים רבים להבטיח שספר זה יתמוך ברצונך. לשפר את יכולתך בשפת ++6 וגטפו/ ובאפשרויותיה המגוונות והמתקדמות, כמו גם. ניצול הטכנולוגיות החדשות שפורטו והוסברו בהרחבה בספר שלפניך 6א, ודה ו-6:/ - האם 6:ו! מת? בוודאי שלא! מאו שמיקרוסופט שחררה את 411 (3ז0 !קסד ₪06א, ספריית. התכניות האקטיבית) כחלק של שפת התכנות ++6 והטפוץ, טענו מפתחים רבים לסביבת 008חו/ו שמיקרוסופט נוטשת את 156 (ץזט/| 01855 הסטה0חטס: 50סוסו, ספריית מחלקות התשתית) ועליהם להפנות את מאמצי התכנות שלהם לסביבות עבודה חדשות, כמו למשל . לאחרונה שחררה מיקרוסופט ספריית מחלקות חדשה. בשם 856 0195569 חס6300חוס= פאוסחוו, מחלקות התשתית של 0%%9חו//) המיועדת. למפתחי ב28, אשר באופן בלתי צפוי תמכה בשמועות אודות יימותה של ואי השמועות על הכחדת 156 אינן מבוססות כלל ועיקר. הגירסה החדשה 6.0 ++6 ופפו מוסיפה פונקציונליות משמעותית הן ל-%6 והן ל-וזא, והדבר מצביע על כך שמיקרוסופט תמשיך להקדיש תשומת לב והה לשתי מערכות אלו. חלק מהבעיה בכך. שיעדי העיצוב של ספריות אלו אינם מוצגים לעיתים בבהירות מספקת, ולכן גס אינם. מובנים למפתחיס. 150 תוכננה ועוצבה להיות ספריית מחלקות גדולה לפיתוח יישומיי ספה בו 595 חלונות מתוחכמים ועתירי גרפיקה. א תוכננה ועוצבה להקל על פיתוח עצמי %ז0ס. פשוטים ופקדי א6₪6א. כל אחד מיעדים אלה תרס לפיתוח ספריה בעלת אופי שונהה לתמיכה במאמצי הפיתוח של מפתחי יישומי פאוסחו/ טעות נפוצה אחרת היא במחשבה ש-50 ו-וזא סותרות זו את זו, או שכל אחת מספריות אלו מבטלת את הצורך להשתמש בספריה האחרת. זה בהחלט לא נכון! למעשה, קל מאוד ליצור עצמי 60% מבוססי-11 אשר משתמשים ב-0ו. הבעיהה היחידה, לכאורה, היא שמכיון שמפתחים רבים בוחרים בדרך כלל ב-וזא לעבודות. הקלות והפשוטות יותר, השימוש ב-56וא, ספריית המחלקות הייעשירהיי והייכבדה" נראה להם מנוגד לסיבה שבחרו ב-1ז8 מלכתחילה. ייתכן שקושי וה מתייחס למפתחים מסוימים, אך אין זה גורס לכך שהספריה 41 שוללת את 50ו!, או להיפך. זא אמנס אינה מחליפה את 6*%, אך אנו סבורים שחשוב לדעת ששתי ספריות אלו הן חלק בלתי נפרד משפת ++6 וגפוש. ספריית התבניות של אטטוו6 (או בקיצור, -811) היא כלי נפרד מ-50ו, שמיועד ליצירת. פקדי %סאא. ניתן ליצור פקדים אלה בעורת הספריה 56 או א, אך פקדי זא קטנים יותר וקל יותר לטעון אותם באינטרנט. השם ++6 וגשפוט עשוי להטעות. ניתן לחשוב שמדובר במערכת תכנות חזותית ((הטפו/) טהורה, בדומה ל-8856 |גטפוי של מיקרוסופט, ואכן זו התחושה בתחילת. העבודה. בפועל מתברר, שיש צורך לקרוא ולכתוב פקודות בשפת ++6. אשפי ++6 ופפ אכן חוסכים ומן ומשפרים את הדיוק, אך על המתכנת להבין את הקוד שהם יוצרים, ובסופו של דבר עליו להכיר גם את מבנה ספריית מחלקות התשתית של מיקרוסופט - 56 01955 חס0ג6חטס: 0פ0זסו1/) ואת דרכי הפעולה הפנימיות של מערכת ההפעלה פוסחואו. א9 פשסטחו// לעומת דא פוסטח:ש ניתן לעבוד עס גירסה 6.0 של ++6 ופפ תחת 9% פאוס6חוא אד דו! 5ו60חו/ בגירסה. 0 ומעלה, שממשק המשתמש שלהן זהה. אני ממליץ לעבוד תחת דא 60%5חוא, אשר יציבותו מאפשרת לו לפעול במשך חודשים רבים בלי לאתחל את המחשב אפילו פעם. אחת. אם תשתמש בממשק התכנות 56 בלבד, התוכניות שתהדר תפעלנה תחת אפ פאוס0חו ו-דא! פוסטחווצ; אך וכור שכאשר התוכנית מכילה קריאות לפונקציות מבוסטות 32ּחו שמנצלות רכיבים מסוימיס של דא פווסטחוו אר של 98 5אוסטחווא, היא תפעל תחת מערכת הפעלה זו בלבד. מתקדמים שלב נוסף עם פאוסחו// סרגלי הצד המיועדים למתכנתי 32ּחוא על מנת להבין את כל הפרטים, התחבולות והרכיבים החדשים של 32חו, עליך להבין. את ממשק תכנות היישומים (1ק4) 32חו/ ואת יחסי הגומלין שלו עם ספריית 56 ובמיוחד את כל מה שקשור במנגנון שיגור המסרים של 60005חו והבנת תפקיד המחלקות של פששס4חוש. 6 3231חו/ו ומבוא ל-ספו כשמציגים תוכנית 6 מקובלת בעורת ממשק תכנות היישומים של 5ווס6חוא, כלל שתודקק לו הוא קוד המקור. מערכת יישומי ספריית סו מסבכת מעט את העניין רוב קטעי הקוד בשפת ++6 נוצרים על ידי אשף היישומים (נופְק3) והמשאבים. שמקורס בעורכי המשאבים (560015 66ז690ף). הדוגמאות המופיעות בהמשך, כוללות. הוראות מפורטות כיצד ליצור ולהתאים את קוד המקור בעורת הכלים השוניס. מומלץ מאוד לעיין בהוראות אלו בעבודה עס הדוגמאות הראשונות (יש להקליד מעט. מאוד פקודות). למתכנתי 32ח://: 66ססוח עד לאחרונה, תוכניות מבוססות פווסשחו/ו ניצלו את מערך תווי זפא8, שכולל 256 תווים שכל אחד מהם תופס בית אחד. מפתחים שמייעדים את תוכניותיהם לשוק התוכנה האסיאתי (יפן, למשל), עוברים למערך התווים 6906ו, הכולל 65,536 תווים. שכל אחד מהס מורכב מ-2 בתים (תו מורחב). קיים מערך אחר של תווים כפולי-בתים. בשס 0805, הכולל תווים בעלי בית יחיד וכאלה של 2 בתים, אך הוא אינו מקובל. ספריית 1456 וספריית ומן ריצה תומכות ביישומי 66ססוח. אס תגדיר את הקבוע ותפעל על פוי השלבים המתוארים בעורה המקוונת, כל משתני התוויםם ומחרוזות הקבועים יהיו "רחבים" ,)//66(‏ והמהדר ייצור קריאות. לגרסאות מורחבות-תווים (69ז65-00ו/ו) של פונקציות 32חו+. מנגנון אה מבוסס על ההנחה. שתנצל פקודות מאקרו מוגדרות בעת הכרה על מצביעי תווים (5ופוחוסק בת ומערכים. לדוגמה, 108 ו-ד . עם ואת, כאשר תנסה להריץ את יישומי 6066וח0 456 שכתבת תחת א 6005חוצר תיתקל. בקשיים, מכיון ש-06חו/ אינה מכולה ‏ רכיבי תמיכה. ב-₪0/6066 9 פוסחו/+ כוללות גרסאות מורחבות תווים של פונקציות 32ח1/, אולס הן מחזירות. קוד שגיאה בלבד. דו! פאוסשחו//ו, לעומת ואת, תומכת ב-0/0066 וכוללת שתי גרסאות. של פונקציות 32ח/ שמטפלות בתוויס.. אס תקרא לגרסאות של בית בודד, זא 5ס6חו תבצע את ההמרה הדרושה לתווים מורחבים ולהיפך. % הערה: תוכניות ההדגמה בספר "המדריך השלם 6 ++6 !טפ אינך מותאמות ל-6066/ח. כל התוכניות מנצלות סוגים וקבועי מחרוות. יחידי-בית, כגון ז3ו₪, ואינן מגדירות 5ססס1א. אם תרי את הדוגמאות תחת דאפווסטחו/, מערכת ההפעלה תבצע את ההמרה הדרושה מבית אחד לשני בתים כנדרש. אם תריץ אותן תחת 9% 5אוס6חו/, הממשק הינו של תווי בית אחד בלבד. קיים תחום אחד בו תיאל בכל ואת להתמודד עם תווים כפולי-בתים: זהו ואס6. פונקציות 60 שאינן שייכות ל-156 (להוציא פונקציות 0אס) שכוללות פרמטרים של מחרוזות ותווים, מחייבות שימוש בתווים כפולים (01868). אס תכתוב תוכניתת שאינה 00/6006, תאלץ לבצע את ההמרות בעצמך בעורת המחלקה 650000 של סאוו ופקודות מאקרו נוספות של סו ספה ב או 597 אם ברצונך לכתוב יישומי 6006/ח0, קרא את הפרק העוסק ב-6006וח0 בספרו של ג'פרי ריכטר, פוסחווו 090660א. חשוב גם שתקרא את הפרקים העוסקים ב-6006חש בעורה המקוונת של ++6 ופפוש. פשססחו/ ו- ++6 |508ו/ של מיקרוסופט רבות נכתב כבר על מערכת ההפעלה פווסחו של מיקרוסופט ועל יתרונות ממשק המשתמש הגרפי (601) שלה. עכשיו, נסכם את מודל התכנות של פווסחוא (ובעיקר - 2 ונסביר כיצד פועלים רכיבי ++6 וגפו/ ה עם זה כדי לאפשר כתיבת תוכניותת לסביבת 60005ח//. תוך קריאת הפרק, ייתכן שתפגוש נתונים ועובדות חדשות אודות. 05חו/, שלא הכרת קודם לכן. מודל התכנות של פשוסטח:/ץ יהיה כלי התכנות אשר יהיה, תכנות בסביבת סח שונה. מהתכנות המיושן מוכוון-אצווה (06ח6ז )830-0‏ או מוכוון-תנועה. (96זח6וזס-ח59000חזד). ‏ לצורך צעדים ראשונים בתחוס זה, עליך להכיר מספר עקרונות בסיסיים של פווסחוו. כמסגרת התייחסות, ננצל את מודל התכנות הידוע של 15-005!. גם אם אינך מתכנת. לסביבת 5-005! פשוטה, הנושא בוודאי מוכר לך. טיפול בהודעות כשכותבים יישום מבוסס 005 בשפת 6, הדרישה המוחלטת היחידה היא לוצור פונקציה בשם 8/₪. מערכת ההפעלה קוראת ל-חומוח כשהמשתמש מריץ את התוכנית, ומאותו שלב והלאה התוכנית יכולה להיכתב במבנה תכנות כלשהו. אם התוכנית מקבלת קלט באמצעות המקלדת, או מנצלת בצורה כלשהי את שירותי מערכת ההפעלה, היא קוראת לפונקציות המתאימות, כגון 603 , או מנצלת את ספריית החלונות מבוססת-התווים. כשמערכת ההפעלה פאוסחואו מפעילה תוכנית, היא קוראת לפונקציה חובאחואש של התוכנית. היישום חייב להכיל פונקציה בשם חוגויוחואו,, שמבצעת מספר משימות מוגדרות. המשימה החשובה ביותר היא יצירת החלון הראשי של היישוס, אשר כוללת. קוד נפרד לטיפול בהודעות ששולחת מערכת ההפעלה. ההבדל המובהק בין תוכניתת שנכתבה עבור 5-005! לתוכנית שמיועדת לסביבת 010605, שתוכנית מבוססת 005 קוראת למערכת ההפעלה כדי לקבל קלט מהמשתמש, בעוד שתוכנית מבוסטת 05 מטפלת בקלט המשתמש באמצעות הודעות שמגיעות ממערכת ההפעלה. + הערה: טביבות תכנות חלונאיות רבות, ובכלל זה 6.0 ++6 וגצפו של מיקרוסופט עם ספריית 56/! גירסה 6.0, מפשטות את תהליך התכנות על ידי הסתרת הפונקציה חובאחוו הבית (סַחוזטססטיטפ) תהליך הטיפול בהודעות. כשאתה מנצל את ספריית התשתיות 6 אינך צריך לכתוב פונקציה חופויוחוו, אך חיוני שתבין את הזיקה בין מערכת ההפעלה והתוכניות שאתה כותב. 8 3271חו/ו ומבוא ל-0פו רוב ההודעות של פווסחו// מוגדרות ויישימות לכל התוכניות. לדוגמה, ההודעה 688 / נשלחת כאשר נוצר החלון, ההודעה אשוססאסדדט8 וא/ו נשלחת כאשר המשתמש לוח על הלחצן השמאלי בעכבר, ההודעה ₪488 א נשלחת כאשר מקישים על מקש תו כלשהו וההודעה 01055 א נשלחת כשסוגרים חלון. לכלל ההודעות יש שני פרמטרים של 32 סיביות, אשר מעבירים מידע: קואורדינטות הסמן, קוד מקש ועוד. מערכת ההפעלה שולחת הודעות סא%אא/60 1% אל החלון המתאיים, בתגובה לאפשרות התפריט שהמשתמש בוחר, לחיצות על לחצני הדו-שיח וכו פרמטרי הודעת הפקודה משתנים בהתאם לעיצוב תפריט החלון. תוכל להגדיר הודעות. משלך, שהתוכנית תשלח לחלון כלשהו בשולחן העבודה. הודעות אלו, שמוגדרות עלל ידי המשתמש, גורמות ל- ++6 להידמות במידה מסוימת ל-א5031/31. בשלב זה אינך צריך להבין מהו הקשר בין הודעות אלו לתוכנית שכתבת. זו משימתה. של מערכת היישום. יחד עם זאת, הייה ער לעובדה שעיבוד ההודעות של פאוסטחוצ מאל את התוכנית שלך להיות מורכבת מאוד. אל תנסה לגרום לתוכניות החלונאיות. שלך להיראות כמו התוכניות שכתבת פעם לסביבת 15-005!. למד בעיון את הדוגמאות. שבספר והתכונן לפתוח יידף חדש" בסגנון התכנות. ממשק ההתקן הגרפי של פשוסמחושצ תוכניות 5-05 רבות שלחו את נתוני הפלט שלהן ישירות לזיכרון הווידאו וליציאת התקשורת של המדפסת. החיסרון בשיטה זו, הוא הצורך לספק תוכנת דרייבר נפרדת. לכל כרטיס וידאו ודגם של מדפסת. פאוסטחווו. כוללת. רובד הַפשָטָה (ח9600זפטא) שנקרא ממשק התקן גרפי - 601 (671866וח1 0668 5סוהפז). מערכת. ההפעלה מספקת את הדרייברים של הווידאו והמדפסת, ולכן התוכנית אינה חייבת לוהות את. ההתקנים האלה הקשורים למחשב. במקום שהתוכנית "תדברי" עם ההתקן ברמת החומרה, היא קוראת לפונקציות 601 שפונות למבנה נתונים בשם הֶקשַר ההתקן (0פזחס0) 26%/05). 5או60חו/ו ממפה את מבנה הקשר ההתקן להתקן פיסי ושולחת אליר את פקודות הקלט-פלט המתאימות. קצב העבודה, או הגישה, באמצעות ממשק 601 והה כמעט לוה של גישה ישירה לכרטיס הווידאו וכך, יישומים חלונאיים שוניםם יכולים לשתף ביניהם את צג המחשב ללא קושי. תכנות משותף-משאבים הז סז 88560 ₪6500706) לתכנות מונע-אירועים (פַחווחוחבזָסזק הסאוזם-וחפוס) בסביבת 5-005!, עליך לקודד את הנתונים כקבועי אתחול, או להקצות לתוכנית שכתבת קבצי נתונים נפרדים. בתכנות לסביבת פווסשחו/ מאחסנים נתונים בקוב נתונים באמצעות מספר תבניות. מוגדרות מראש. תוכנית הקישור (זפאחו)) מצרפת את קוב המשאבים הבינארי אל קוב הפלט שהפיק מהדר ++6 ויוצרת על ידי כך תוכנית הפעלה (000080/6ו₪ וחגזמָסזק). קבצי משאבים יכולים להכיל מפות סיביות (85! 8%), סמלים (016005, תבניות של תיבות דו-שיח ומחרוזות (פּפַח50). הם יכולים להכיל אפילו תבניותת משאבים שהוגדרו במיוחד למטרה ור ספה ב 0 599 את התוכנית כותבים באמצעות עורך טקסט, אך לעריכת המשאבים משתמשים בדרך. כלל בכלי 6ץ/510צעצ (660 וסץ והח/ 15 56 וס זהחצ, או בעברית - מה שאתה רואה הוא מה שתקבל). אם תעצב תיבת דו-שיח, למשל, תוכל לבחור מרכיבים (לחצנים, תיבות רשימה ועוד) מתוך מערך סמלים, שנקרא לוח פקדים (606ו23. וסשחסס), ולהציבם במקום הרצוי בעורת העכבר. 6.0 ++6 |פטפו) היא סביבת הפיתוח המשולבת. של ++6 |בטפוצ ומכילה עורכי משאבים גרפיים לכל תבניות המשאבים המקובלות. ניהול הזיכרון ניהול הזיכרון הולך ונעשה קל ופשוט בכל גירסה חדשה של פסחוא. שמעת בוודאי סיפורי אימים על אודות נעילת = ידיות ‏ זיכרון 8695 ץזסוח ,)/6‏ פאחטתו ו-06%פמחחטמזטט, אל דאגה. כל ה שייך להיסטוריה. כל שעליך לעשות הוא להקצות. את הציכרון הדרוש לך, ו-60%%5חו/ תטפל בפרטים הקטנים. ספריות !1 בסביבת מערכת ההפעלה 15-005/, כל מודולי העצמים של התוכנית נקשרים בצורה סטטית בתהליך בניית קובץ ההפעלה. פווסשחואו מאפשרת קישור דינמי סווחפחץ פַח!ו), שמשמעותו טעינה וקישור בזמן ריצה של ספריות שנבנו במיוחד למטרה זו יישומים רבים יכולים לשתף את ספריות הקישור הדינמי, או כפי שחן נקראות - ספריות +21 113065 1:06 אוחפחץכ), דבר שחוסך משאבי זיכרון ומקום בדיסק. הקישור הדינמי מגדיל את המודולריות של התוכנית, מכיון שניתן להדר את הספריות. בנפרד מהרצתן לניסוי, למשל. מפתחי שפת התכנות יצרו תחילה ספריות 04 לתכנות בשפת 6, אך שפת ++6 יצרה. קשיים מסוימים בעניין וה. מפתחי 150י! (מחלקת התשתיות של מיקרוסופט) הצליחו. לשלב את כל מחלקות סביבת היישום - 30 (6135565 %ז60וח3ז= חס:ובסוופקה) למספר. מצומצם של ספריות !0 מוגדרות מראש. משמעות הדבר, שניתן לקשר את מחלקות. סביבת היישום אל היישום עצמו באופן סטטי או דינמי. בנוסף, תוכל ליצור ספריותת 1 כהרחבה לספריות 6 הקלימות. ממשק תכנות היישומים 32ח:/ כשהחל השימוש במערכת ההפעלה 5ס6חו/ לשוק כתבו המתכנתים תוכניות בשפת 6. עבור סביבת ממשק תכנות היישומים - 1קה (16760ח1 מַוחהוגזף0זק הס טוקפא בארכיטקטורת. 16חו/. כשארכיטקטורת 32ח נכנסה לשוק, הוברר שכתיבת יישומים מבוססי 32 סיביות מחייבת לעבוד עס ממשק התכנות 32חו/, באופן ישיר אד עקיף. לרוב הפונקציות שמבוססות על 16חו4 יש פונקציות מקבילות שמבוססות על 2 אך רוב הפרמטרים שונים: פרמטרים של 16 טיביות מוחלפים לעיתים קרובות. על ידי פרמטרים של 32 סיביות. ממשק התכנות 32ּחוו כולל פונקציות רבות חדשות. שמבצעות פעולות כגון קריאה וכתיבה לדיסק, שהיו בעבר באחריות מערכת ההפעלה. 5. בגרסאות 16 סיביות של ++6 וגטפו, ההבדלים בין ממשקי התכנות היר שקופים במידה רבה למתכנתי 6לו, מכיון שאלה כתבו תוכניות בהתאם לתקן */, אשר תוכנן לאפשר עבודה בשתי הארכיטקטורות. 0 ז2פחווו ומבוא ל-ספו רכיבי שפת התכנות ++6 |1803/ שפת ++6 וגטפו/ של מיקרוסופט כוללת למעשה שתי מערכות פיתוח של יושומי וסחו המוכללות במוצר אחד. אס תבחר, תוכל לפתח יישומי 6 לסביבת פאוסחו באמצעות ממשק התכנות 32חו/ בלבד. לשם כך תוכל לנצל כלי ++6 ופ אחרים, כולל עורכי משאבים שיקלו עליך במטלות תכנות בסיסי ומסק 846 1-ואס). ++6 |פטפוץ כוללת ג את ספריית התבניות של !)שא - .דה (פוגוקוחסד אסעווסא זפ ), שבעזרתה ניתן לפתח פקדי אפטנשא עבור יישומי אינטרנט. תכנות 811 שונה. הן מתכנות בשפת 6 בארכיטקטורת 32 סיביות והן מתכנות 6*!, ולאמיתו של דבר הוא כה מורכב, שראוי להקדיש לו ספר נפרד.. בהמשך נדגים תכנות בשפת ++6 בסביבת ספריית 10 אשר שייכת לכלי הפותוח של ++6 |גטפו. במהלך עבודתך תנצל מחלקות ++6 שמתועדות במסגרת 6*א, וגם בלר ++6 |פטפו) ייחודיים לסביבת היישום, כגון 6זפק/\קקה ו-280ו/955. + הערה: ממשק התכנות של ספריית 56 אינו מנתק אותך לחלוטין מפונקציות 32חו/+. למעשה, כמעט תמיד יהיה צורך בקריאות ישירות לפונקציות אלו מתוך תוכניות ספריית *ו. סקירה מהירה של רכיבי ++6 וגטפו תסייע לך להתמצא בתוכנה זו בטרס נעבור לסביבת היישומים. תרשים 1 מציג מבט על תהליך הבנייה של יישום (959סזק 84/8 בשפת ++6 |טפו, ב 2-5 תרשים 1, תהליך בניית יישום בשפת ++6 |טפוי ספה ב 90 6010 0 ++0 !1508 0508ז1:0! ותהליך הבנייה של יישום 0 ++6 |גטפו הוא סביבת פיתוח משולבת - 158 (חפוחק%60 סמות זחסוחחסזושח>). שמתקיימת בתוך סביבת 00068 אשר משותפת ל- ++6 וטפוא, ++2 |בטפו/ -070508/!, 88506 ובטפו 0:0506/! ומוצרים נוספים. סביבת פיתוח משולבת. זו, 196, עברה דרך ארוכה מאז היות ח596א0 ומטפוץ אשר התבססה על 6אסו. עבור 605חו.. חלונות, סרגלי כלים מותאמים ועורך מותאם שמפעיל פקודות מאקרו, כל אלה מהוויס כיוס חלק מסביבת 5060 |פטפוץ. מערכת העורה המקוונת. (כעת מוכללת בתוך התצוגה של ספריית א50!/) פועלת בצורה דומה לדפדפן טאו תרשים 2 מציג את 6.0 ++6 ומטפו בפעולה. ו ב 8 וס ו 6 ו 0 תרשים 2; חלון 6.0 ++6 |8פו אס הפעלת גרסאות מוקדמות של ++6 ופ או את 105 של בורלנד, אתה יודע כיצד פועלת 6.0 ++6 וגטפו. אס אלה צעדיך הראשונים בעבודה עס 196, עליך להכיר תחילה את המושג פרויקט. פרויקט (660(סזק) הוא אוסף של קבצים שיש ביניהם קשרי גומלין, אשר עוברים תהליך הידור וקישור ליצירת תוכניות הפעלה או ספריות וס שלל סח קבצי המקור של פרויקט מוגדר נשמרים בתת-ספריה מוגדרת. הפרויקט. תלוי גם בקבצים רבים שנמצאים מחו לתת-הספריה שהוקצתה עבורו, כגון קבצי הכללה (565 06ש0ח1) וקבצי ספריה (5/₪ זט מתכנתים מנוסים מכירים את קבצי 66פוח. קובץ ₪888 מכיל אפשרויות שונות של המהדר ושל תוכנית הקישור, ואת כל המידע אודות יחסי הגומלין בין קבצי המקור. קוד מקור וקוק לקבצי הכללה מסוימים, קובץ הפעלה וקוק למודולי עצמים וספריות. מסוימות וכן הלאה. תוכנית ₪888 קוראת את קובץ ₪965 ולאחר מכן מפעילה את המהדר, 09ו35959, מהדר המשאבים ותוכנית הקישור ליצירת הפלט הסופי, בדרך 2 זקא2כחווו ומבוא ל-ספו כלל יהיה זה קובץ הפעלה (₪6 900020/6א5). תוכנית ₪5 מנצלת את כללי ההסקה. (600ז6/ח0 המובנים שלה שמנחים אותה, למשל, להפעיל את המהדר כדי ליצור קוב. 08 שמבוסס על קוב קל מוגדר. בפרויקט של 6.0 ++6 |גטפוע אין קבצי אמח כלשהם (בעלי הסיומת אאא), אלא אם: תציין במפורש שאתה רוצה להפוק קוב כזה. קובץ פרויקט (₪6 0[60וק) בתבנית. טקסט (שהסיומת שלו 57פ) ממלא מטרה והה. קוב שטח עבודה 6 368ק5אזס//. מבוסס-טקסט (שהסיומת שלו /א05) כולל הגדרה לכל פרויקט בשטח העבודה. ניתן להגדיר פרויקטים רבים בשטח עבודה משותף, אך בכל הדוגמאות המופיעות בספר תמצא פרויקט אחד בלבד בשטח עבודה נתון. כדי לעבוד על פרויקט קיים, עליך לומרר ל- ++6 096006 לפתוח את קוב 05% תחילה. ++6 |גטפו יוצרת מספר קבצי ביניים. הטבלה שלפניך מציגה את הקבצים שנוצרים בשטח העבודה טבלה 1: יאור הקבצים שנוצרים בשטח העבודה. סיומת הקובץ | תיאור 5 תמיכה בתצוגת המשאבים (9%ו/69ז50סה). 56 קוב מידע לדפדפן אס תמיכה ב-אשף המחלקות (0059//025/6) פס קובץ תלוי ספ קובץ פרויקטי אפס קובץ שטח עבודה: אא קובץ ₪866 חיצונר ב תמיכה בתצוגת מחלקות (99506ס) זפס שמירת תצורת שטח העבודהה 6 בניות קובץ יומן * אין למחוק או לערוך בעורך טקסט. עורכי המשאבים - שטח העבודה של 3650010818 כשבוחרים בכרטיסיה של תצוגת המשאבים - ופו/פסזוספפה - בחלון שטח העבודה של ++6 |מטפוץ, אפשר אחר כך לבחור משאב כלשהו מתוך רשימת המשאבים המוצגת. ולערוך אותו. החלון הראשי מכיל עורך משאבים (0וו₪0 865065) שמתאים לסוגג המשאב שנבחר. החלון יכול גם להכיל עורך 51/16 עבור תפריטים, או עורך גרפ רב-עוצמה עבור תיבות דו-שיח. הוא מכיל בדרך כלל כלי עריכה לסמלים, מפות סיביות ומחרוזות. עורך תיבות הדו-שיח מאפשר לשלב פקדי א6או61 נוסף על הפקדים. הרגילים של סח וגם את פקדי 5אאסחוו המשותפים החדשים. ספה ב 0 603 כל פרויקט כולל בדרך כלל קובץ אחד של תסריט משאבים מבוסס-טקסט, ובקצרה - קובץ תסריט המשאבים (בעל סיומת 86), אשר מתאר את רכיבי הפרויקט השונים כגוך התפריט, תיבת דו-שיח, מחרוות ומשאבי קיצור (99001695/ ז26606300). קוב ₪6 כולל גס משפט 1061666 שתפקידו לייבא משאבים מתת-ספריות אחרות. משאבים. אלה כוללום פריטים ייחודיים לפרויקט, כגון מפות סיביות (ק/8), קבצי סמלים 100% ומשאבים משותפים לכל תוכניות ++6 |גפו, כמו מחרוזות של הודעות. שגיאה. לא מומלץ לערוך קבצי ₪6 שלא באמצעות עורכי המשאבים. עורכים אלה מסוגלים גם לערוך קבצי 85 ו-11ס, כך שתוכל לנצל את לוח הגזירים (6ספקו01). לייחטיפתי" משאבים, כגון מפות סיביות וסמליס מלישומי 65ו60חו/) אחרים. מהדר לתוכניות ++0/6 מהדר ++6 !908 מסוגל לטפל בקוד שנכתב בשפת 6 או ++6. המהדר קובע באיור שפה כתובה התוכנית על פי הסיומת של שם קוב המקור: הסיומת 6 מציינת קוב בשפת 6, והסיומת 7ק6 או 6% מעידה על קובץ מקור בשפת ++6. המהדר עומד בכל. דרישות 051, כולל ההמלצות העדכניות של קבוצת העבודה לספריות ++6 והרחבות. של מיקרוסופט. גירסה 6.0 של ++6 |בטפוע תומכת באופן מלא בתבניות (פסוג!קוחסד), בחריגים (פחס0קססאם) ובזיהוי סוג בומן ריצה (ח0%6360ח166 סוחטחוה). המהדר כולל. גם את ספריית התבניות הסטנדרטיות - +51 1013 !קוחד 51006376 החדשה של ++6, למרות שזו אינה כלולה בספריית זו עורך קוד מקור 0 ++6 ופפ כולל עורך קוד מקור מורכב שתומך בהרבה יתרונות (רכיבים חדשים). כמו צביעת תחביר דינמית, טאבים באופן אוטומטי, כריכות לוח מקשים עבור מיגוון של עורכים פופולריים (כמו 1 ו-5/005), והדפסה פשוטה. ב- 6.0 ++6 ופפ התווסף. יתרון נוסף שנקרא השלמה אוטומטית (6וקוחססטוטא). אם השתמשת באחד מהמוצרים של 0/865 1610501 או ב- 88546 |הטפו/י 0500ז1/6, הטכנולוגיה הזו כנראה. כבר מוכרת לך. באמצעות רכיב זה של 6.0 ++6 וגטפו, כל שעליך לעשות הוא להקיש. את ההתחלה של אחד מקבועי התכנות והעורך יציע לך רשימה של המשכים שמהם. באפשרותך לבחור אחד. רכיב זה שימושי מאוד כאשר אתה עובד עס עצם של +6% ושכחת את השם המדויק של פונקציה חברה או של נתון חבר - כולם נמצאיים עבורך. בתוך הרשימה. תודות ליכולת זו אינך צריך לזכור אלפי פונקציות 471 של 32חו/+ אר להיות תלוי במערכת העורה המקוונת. מהדר המשאבים מהדר המשאבים (1!6קוחס6 פסזט50סה) של ++6 ופטפו קורא קובץ תסריט (80) מבוסס. 1 שנוצר על ידי עורך משאבים כלשהו, ויוצר קובץ בינארי עבור תוכנית הקישור ו 4 ז32חווו ומבוא ל-ספו תוכנית הקישור תוכנית הקישור (ז6אח/)) קוראת קבצי (08 וקבצי 885 שיצרו מהדר ++6/₪ ומהדר המשאבים, וניגשת אל קבצי 118 כדי להביא מהם קוד 156ו, קוד ספריית זמן ריצה וקוד פאאסחווו. לאחר מכן, תוכנית הקישור יוצרת את קוב ההפעלה, שהסיומת של היא 8%5. אפשרות הקישור המדורגת מצמצמת את ומן הביצוע במקרה שנערכו שינויים מועריים בקבצי קוד המקור. קבצי הכותר (₪65 68061 של 456 כוללים. משפטי וחפזק< (הוראות מיוחדות למהדר), שתפקידם לציין את הספריה שמכילה את הקבצים הדרושים. הדבר פוטר את המתכנת מלציון במפורש איזו ספריה צריךך לקרוא תוכנית ניפוי שגיאות אס התוכנית שכתבת פועלת כבר בפעם הראשונה, אינך וקוק לתוכנית ניפוי שגיאות. (ַפַָ0פ) כלשהי. בדרך כלל אין הדברים כך, ולכן תודקק לתוכנית זו מפעם לפעס. תוכנית הניפוי של ++6 ופטפוט עברה שיפורים מתמידים, אך אאץ ביכולתה עדיין לתקן בפועל את שגיאות התכנות. התוכנית פועלת במשותף עם ++6 וגטפו כדי להבטיח שנקודות העצירה (פוחוק036ו8) תישמרנה בדיסק. לחצני סרגל הכלים מאפשרים להכניס ולבטל נקודות עצירה במהלך התוכנית, והם שולטים בהפעלת התוכנית. בשיטת צעד-אחר-צעד (5/00/6-5060). 000 פס 8 0 8 ב ו 06 תרשים 3: חלון תוכנית ניפוי השגיאות של ++6. ספת :0086 605 תרשים 3 מתאר את רכיב ניפוי השגיאות של ++6 וגפו/ בפעולה. שים לב שתיבות. המשתנים והתצוגה יכולים להרחיב מצביע עצם (זפוחוסק 86ט0) כדי שיציג את כלל איברי הנתונים (5זפטוח6! 083) של המחלקה הנגזרת ושל מחלקת הבסיס. אם תציב את הטמן על משתנה פשוט, תוכנית הניפוי תציג את ערכו הנוכחי בתיבה קטנה בתוך. החלון. אם ברצונך לאתר שגיאות בתוכנית, עליך לבחור את האפשרויות המתאימות. של המהדר ותוכנית הקישור, כך שיפיקו נתוני ניפוי שגיאות. 0 ++6 !גטפו הוסיפה עיוות מטוים לתיקון שגיאות עס יכולת של עריכה והמשכה. (סטחווח60 חב 56). היכולת עריכה והמשכה מאפשרת לך לתקן יישומים, לשנות את התוכנית, לשנות את היישום, ואז להמשיך את התיקונים עם הקוד החדש. יכולת זר תוריד בצורה משמעותית את כמות הזמן שאתה מאבד עבור התיקונים, מפני שאין לךך יותר צורך לעזוב את תוכנית ניפוי השגיאות, להדר אותה שוב, ואחר כך לנפות שגיאות. שוב. כדי להשתמש ביכולת זו, ערוך את התוכנית כאשר מנפה התוכנית עובד, ואחר כך. לחץ על הלחצן המשך. 6.0 ++6 וגפוץ מהדרת את השינויים באופן אוטומטי ומתחילה מחדש את מנפה התוכניות עבורך. אשף היישומים - 6ז29ו)ככ 6ופושוסקא הוא כלי שיוצר שלד עובד של יישום פאוסטחואו שניתן להפעילו וכולל רכיבים, שמות של מחלקות ושמות קבצי קוד מקור, שאותס מגדירים באמצעות תיבות דו-שיח מיוחדות. מזגק/וקק ישמש אותך רבות כשתתרגל את הדוגמאות המוצגות בספר. אל תבלבל בין זפט/ופק למחוללי קוד ישנים, שמפיקים את כל הקוד הדרוש ליישום. הקוד שיוצר לוק הוא מינימלי בלבד; יכולת התפקוד של היישוס נובעת מהקוד שנמצא במחלקות הבסיס של סביבת היישום. כל ש-זהקוופקה. עושה הוא לסייע לך בצעדיך הראשונים בכתיבת יישום חדש. מתכנתים מנוסים יכולים ליצור לעצמם שזגקוופְק שמותאם לצרכיהם. חברת מיקרוסופט חשפה את המערכת מבוססת-מאקרו שלה ליצירת פרויקטים. אם צוות הפיתוח צריך לפתח פרויקטים רבים באמצעות ממשק תקשורת, תוכל לבנות אשף מיוחד שיהפוך תהליך זה לאוטומטי אשף המחלקה - 455012480 01 אשף המחלקה 6359/0376 הוא תוכנית (מופיע כ-11ס) שניתן להגיע אליה באמצעות. תפריט אוסו של ++6 וגטפו. האשף משחרר אותך מהטרדה הכרוכה בתחווקת קוד המחלקה של תוכנית ++6 01פו. אתה וקוק למחלקה חדשה, פונקציה וירטואלית. חדשה או פונקציה לטיפול בהודעהז האשף ייצור עבורך את התבנית הכללית, כלומר גוף הפונקציה, ובמידת הצורך גס את הקוד הדרוש לקישור הודעת 5אוס6חוא לפונקציה. שייצר. 0376ו/899 מסוגל לעדכן קוד מחלקה שייצרת, וכך הוא משחרר אותך מבעיות התחווקה הטיפוסיות למחוללי קוד רגילים. תרשים 2 מציג חלק מרכיבי 99526 שניתן להפעילם באמצעות סרגל הכלים של 50600 זספסוטטם. 6 זא32חווו ומבוא ל-ספו דפדפן המקור - זספשסזם 6סזטס כשאתה מתחיל לכתוב יישום, יש לך בוודאי תמונה ברורה למדי של קבצי קוד המקור, המחלקות ופונקציות חברות (פחס;סחט זספוחסו/). א ברצונך לעבוד על יישוס שכתב מישהו אחר, תודקק לסיוע כלשהו. דפדפן המקור של ++6 וגטפוץ (או בקיצור, הדפדפן) מאפשר לבחון (וגם לערוך) את היישום מנקודת ראות המחלקה או הפונקציה, ולאו דווקא מנקודת ראות הקובץ. הדפדפן מזכיר במידה מסוימת את כִּי הבחינה (ייזפ66קפח1'') של ספריות מוכוונות-עצמים, כגון א311020ח5. מצבי התצוגה של הדפדפן כוללים. %+ הגדרות והפניות - אתה בוחר רכיב כגון פונקציה, משתנה, סוג, פקודת מאקרו אר מחלקה כלשהי, והדפדפן מציג היכן הרכיב מוגדר או מנוצל בפרויקט. + קריאה לתרשים / תרשים קורא - לכל פונקציה שתבחר יש ייצוג גרפי לפונקציות. שהיא קוראת להן, או אלו שקוראות לה. ₪5 תרשים מחלקה נגזרת / תרשים מחלקה בסיסית - אלו דיאגרמות היררכיות של מחלקות. למחלקה שנבחרה, הדפדפן מציג מחלקות נגזרות או מחלקות בסיסיות. בתוספת איברים. ניתן לשלוט בתצוגת ההרחבה ההיררכית בעורת העכבר. %+ חלוקת קוב לרמות - בחר קובץ, והדפדמן יציג את המחלקות, הפונקציות ואיברי הנתונים בצירוף מקומות הגדרתם והשימוש בהם בפרויקט. % הערה: אם תארגן מחדש את השורות בקובץ מקור כלשהו, סוט 50 תיצור מחדש את מסד הנתונים של הדפדפן כשתבנה שוב את הפרויקט. כתוצאה מכך, זמן הבנייה מתארך. בנוסף לדפדפן, ++6 וגטפו כוללת אפשרות לתצוגת מחלקות, %פו9פגוס, שאינה תלויה במסד הנתונים של הדפדפן. זוהי תצונת עץ של כל המחלקות בפרויקט, אשר כוללת פונקציות חברות ואיברי נתונים. לחיצה כפולה על אחד ממרכיבי התצוגה תציגג מיידית את קוד המקור שלה. יחד עם זאת, האפשרות 9ו/099 אינה מציגה מידע בסדר ההיררכי שלו, בעוד שהדפדפן עושה ואת. עזרה מקוונת בתוכנה ++6 וטפו/. מערכת העזרה עברה ליישום נפרד שנקרא תצוגת ספריית ספוא מערכת העורה מבוססת על אזו. כל נושא נמצא במסמך 11 נפרד, וכל הדפים: משולביס בקבצי אינדקס. תצוגת ספריית 80%ו! מנצלת קוד שנמצא גם בדפדפן זשזסוקאם ושחזפזה1 ולכן היא פועלת בצורה דומה לדפדפן 60/% שבוודאי מוכר לך ספריית 50% מסוגלת לגשת לקבצי עורה שנמצאים בתקליטור של ++6 וגטפו (ווהר ברירת המחדל של ההתקנה), או בדיסק, וגם לקבצי וו באינטרנט. ספה ב 080 607 ++6 58 מאפשרת להפעיל את העזרה בארבע דרכים. לו לפ ספר - כאשר תבחר באפשרות 5תפוחס6 (תוכן) בתפריט העורה של ++6 וגטפוץ, היישום ספריית א50ו עובר למצב תוכן (חס)חס6). אפשרות זר מארגנת את התיעוד של 50000 וגטפוש, של ++6 ומטפוש ושל 50% 2בחוו/ו בצורה. היררכית, לפי ספרים ופרקים. לפי נושא - כאשר תבחר באפשרות 5630 (חיפוש) בתפריט העורה של ++6 וגטפוש, ‏ נפתח. באופן אוטומטי היישום תצוגת ספריית ₪50 בחר בכרטיסיה 1065 (אינדקס), ותוכל להקליד מילת מפתח ולהציג את הנושאים. והקטעים הקשורים אליה. ₪5 לפי מילה - כאשר תבחר באפשרות 56360 (חיפוש) בתפריט העורה של ++6 וגטפו, תופעל ספריית אס5א, עם הכרטיסיה ח5936 פעילה. כאשר כרטיסיה. זו פעילה, תוכל להקליד צירוף של מילים ולהציג את הקטעים שמכילים את המילים הללו. מקש העורה 51 - זהו ידידו הטוב ביותר של המתכנת. כל שעליך לעשות הוא להציב את הסמן על פקודות הפונקציה, על פקודת המאקרו או על שם המחלקה, ולאחר מכן להקיש על 1 ומערכת העורה תבצע את כל השאר. אס השם נמצא במספר מקומות (למשל, בקבצי העורה של 86 ושל 32חו₪), תוכל לבחור את. נושא העורה הרצוי מתוך חלון רשימה. תהיה הדרך שתבחר לגשת לעורה המקוונת אשר תהיה, תוכל תמיד להעתיק קטעי טקסט מתוך קבצי העורה אל התוכנית באמצעות לוח הגזירים. כלי אבחון של פשסטחו/צ ++6 וגטפוו כוללת מספר כלי אבחון שימושיים (006ד ספטחְִום). התוכנית ++5% מציגה תמונת עץ של התהליכים, של המטלות ושל חלונות המערכת. היא מאפשרת גם. להציג הודעות ולבחון את החלונות של היישומים הפועלים ברגע נתון. 15% (גרסת. א9פוס6חו נקראת א9/פ7/1) הוא כלי שימושי לביטול תהליכים שגויים שאינם נראים ברשימת המשימות של 9 פווסחו\ ‏ (6סָבח18! 1356 דו! פאוסטחווו, > מנהל. המשימות שמופעל באמצעות לחיצה ימנית בעכבר על גבי סרגל הכלים הוא החלופה. של שוזשק). ++6 |בטפוץ כוללת גם קבוצה שלמה של תוכניות שירות מסוג אַפאו6, תוכנית לבדיקת פקדי סטש (כרגע ב- ++6 וגטפו עס קוד מקור מלא), קוח 6חד מסאוסאו, מנהל ספריה, תוכניות עיון ועורכי קבצים בינאריים, סוק של קוד מקור ועוד בקרת קוד המקור מיקרוסופט רכשה תוך כדי הפיתוח של 5.0 ++6 וגטפו את הזכויות על מוצר ידוע לבקרת קוד מקור ((סשחסס 0006 /65ז50), בשם 605366ז50. המוצר כלול מאו במהדורה העסקית (ח₪6/00 56ו0611חפ) של ++6 |בטפוע ומשתלב ב- ++6 |בטפוט באופך 8 הככו ומבוא ל-ספו שמאפשר לתאם פרויקטי תוכנה גדולים. העותק הראשי של קוד המקור של הפרויקט. נמצא במקוס מרכוי ברשת שהמתכנתים יכולים לנשת אליו ולטעון ממנו עדכוני גרסאות של מודולים. מודוליס אלה נשמרים בדרך כלל בכונן הדיסק במחשב האישי של המתכנת. לאחר שהמתכנת מחזיר לרשת מודולים מעודכנים, עמיתיו יכולים לתאם את הגרסאות שבמחשבים שלהם עם העותק הראשי. ניתן לשלב ב- ופי ++6גם מערכות אחרות לבקרת קוד מקור. הגלריה הגלריה, או /9ו631 58000 ז6קס/6סס, מאפשרת לשתף רכיבי תוכנה בין פרויקטים. שונים. הגלריה מטפלת בשלושה סוגי מודולים 3% פקדי 66% - כשמתקינים פקד 4606 000 - בשמו הקודם פקד 015), נוצרת. הגדרה ברישום של פוס6חוא 86060 פאוסטחואו). כל פקדי 6006 הרשומים. מופיעים בחלון הגלריה, ולכן ניתן לבחור אותם לטובת פרויקט כלשהו. 3% מודולי ++6 וגשפוט - כשכותבים מחלקה חדשה, ניתן להוסיף את הקוד שלה לגלריה. מרגע וה ניתן לבחור אותו ולהעתיקו לפרויקטים אחרים. ניתן גם' להוסיף משאבים לגלריה. 3% רכיבי ++6 הפו - הגלריה יכולה להכיל כלים שמאפשרים להוסיף רכיבים. (9סז630=). לפרויקט קיים, כגון מחלקות, פונקציות, איברי נתונים ומשאבים חדשים. מיקרוסופט מספקת מודולי רכיבים אחדים (למשל, עיבוד ומן סרק, תמיכה בלוח צבעים ומסך ח35גופ5) כחלק מחבילת המוצר ++6 וגטפוץ. רכיבים. אחרים ניתן יהיה לרכוש מיצרנים אחרים. טיף: אם תחליט להשתמש ברכיב מוכלל כלשהו של ++6 וגטפו, רצור לנסותו תחילה עם פרויקט לדוגמה שתיצור במיוחד. אחרת, אס התוצאה שתקבל אינה עומדת בציפיותיך, אתה עלול להתקשות בהסרת הקוד שיתוסף לפרויקט. ניתן לייבא ולייצא לקבצי 06% את כל רכיבי הגלריה שנוצרים על ידי המשתמש. קבצים אלה הם אמצעים חדשים להפצה ושיתוף של רכיבי ++6 ופטפוו. סביבת הפיתוח באמצעות ספריית מחלקת התשתיות - 6=ו₪ בחלק זה נציג את גירסה 6.0 של ספריית מחלקת התשתיות של מיקרוסופט (בקיצור, ספריית 86/א) של סביבת היישום, תוך התמקדות ביתרונותיה. בדוגמה שנביא בהמשך, נציג תוכנית שלדית אך מתפקדת במלואה, אשר תסייע לך להבין את עקרונות. סביבת העבודה לפיתוח יישומים. לא נרחיב רבות בהיבט התיאורטי, אך תמצא שהסעיפים העוסקים במיפוי הודעות, מסמכים ותצוגות מכילים מידע חשוב ספה ב 080 609 סביבת פיתוח יישומים - לשם מה? אם בכוונתך לפתח יישומים לסביבת 068חו), עליך לבחור סביבת פיתוח. בהנחה שסביבות עבודה שאינן תואמות את שפת 6, כמו 885% |בטפו/ 11070500 ו חפוס וחקו6ם אינן באות בחשבון, לפניך מספר אפשרויות אחרות. + תכנות ב-6 באמצעות ממשק תכנות היושומים לּואו. ו כתיבה עצמית של ספריית מחלקת פווסחו/וו בשפת ++6, שמבוססת על בּוא. %' סביבת היישום 6 %: סביבת יישום כלשהי מבוססת 5ס6חו/, כגוך /30זפ 1 סח 01660 וסט טוווס אם תתחיל ממש מלא-כלום, כל אפשרות שתבחר תהיה כרוכה בעקומת לימוד תלולה. גם אם יש לך ניסיון כלשהו בתכנות בסביבת 32חו/ו או 16חוא, עדיין ייה עליך ללמודד להכיר את ספריית 6*ו1. מהם, אם כן, היתרונות המצדיקים את המאמ אפילו א הספריה כבר מוכרת לך, כדאי לעבור על רכיביה השונים של בחירה זו ספריית 186 היא ממשק תכנות היישומים (81) של גרסת פאוסְחו של ++6. אם. תקבל את ההנחה ששפת ++6 היא שפת התכנות התקנית לפיתוח יישומים רצוניים, או טבעי של-פאוסטחוו יהיה ממשק תכנות נפרד משלה. איוה ממשק יהיה טוב יותר מכוה שנוצר על ידי מיקרוסופט, החברה שפיתחה את מערכת ההפעלה 5אוסחווצ ממשק תכנות זה הוא, למעשה, ספריית סו יישומי סביבת היישום מבוססים על מבנה סטנדרטי. כל מתכנת שמתחיל לעבוד עלל פרויקט גדול, מפתח תחילה מבנה תוכנית כלשהו. הבעיה היא, שכל מבנה נוצר בהתאם לסגנון האישי של המתכנת, והדבר מקשה על חבר חדש בצוות ללמוד אותור ולפעול לפיו. סביבת היישום של ספריית 6*ו% כוללת מבנה מוגדר של יישום, כוה שהוכיח את עצמו בסביבות תוכנה ובפרויקטים רבים. אם אתה כותב תוכנית לסביבת. סח שמנצלת את ספריית 16 תוכל לצאת לחופשה בשקט ובשלווה, מתוך ביטחון שהצוות הנושא במשימה יצליח לתחוק ולשפר את התוכנית כדרוש. אינך צריך לחשוש מכך שהמבנה שמכתיבה טפריית 456 יפגע בגמישות התוכניות. שתיצור בעורתה. ספריית 16 מאפשרת לתוכנית לקרוא לפונקציות 32ּחוו בכל עת, ולכן תוכל לנצל את יתרונות פואס0חו/ו במלואם. יישומי סביבת היישום קטנים ומהירי ביצוע. בימים ש-16חו היתה הארכיטקטורה המקובלת, יכולת ליצור קובץ הפעלה מושלם (090ו0013ס-//59) בגודל קטן מ- 2088 כיום, תוכניות של פאוסחווו גדולות הרבה יותר. אחת הסיבות לכך היא, שקוד של תוכנית מבוססת 32 סיביות רב יותר. ג במודל הזיכרון הגדול, תוכנית 16חואו התבססה על כתובות 16 סיביות עבור משתני מחסנית (65ופמוו/ 5/36%) ועבור משתנים. גלובליים רבים. תוכניות 32 סיביות מבוססות על כתובות בגודל 32 סיביות בלבד, ולעיתים קרובות מקצות 32 סיביות עבור מספרים שלמים פוטט0ח1), מכיון שייצוג כזה יעיל יותר מייצוג של מספרים שלמים ב-16 סיביות בלבד. בנוסף, הקוד החדש לטיפול בחריגים וקוק למשאבי זיכרון גדולים מאוד. 0 ז32חווו ומבוא ל-ספו התוכניות הישנות בגודל 820 היו משוללות סרגל כלים מעוגן (31פוססד הַ008כ), חלונות מפוצלים, אפשרויות הצגה לפני הדפסה, או תמיכה במכולת פקדים (סזח0ס. זסחופזחסס), רכיבים שכל משתמש מצפה לראותם בתוכניות בימינו. תוכניות אוו גדולות יותר, מכיון שהן עתירות ביצועים ובעלות חזות מצודדת יותר. לשמחתנו, קל היוס ליצור יישומיס שנקשרים בצורה דינמית לקוד 56 (ולקוד זמן ריצה של 0), והדבר מאפשר לצמצם את גודל הקוד מ- 192%8 חזרה ל- 20%8 בקירוב! הדבר מחייב, כמובן, ספריות 011 גדולות למדי כדי לתמוך בכך, אך אלו מחויבות המציאות. מבחינת מהירות הביצוע, מדובר בקוד מכונה שנוצר על ידי מהדר בתהליך של אופטימיוציה. הביצוע מהיר, אך ייתכן שתבחין בהשהיה מסוימת בתחילה, שנובעת מטעינת ספריות )ום הכלים המובנים של ++6 ופצו מצמצמים את תהליך ניפוי השגיאות בתוכנית. עורכי המשאבים של ++6 !גטפו, אשף היישום ואשף המחלקה, מצמצמים בצורה משמעותית את הזמן שיש להשקיע בכתיבת הקוד הייחודי ליושום. לדוגמה, עורך המשאבים יוצר קובץ כותר שמכיל ערכים מוגדרים עבור הקבועים במשפטי 466106 אשף היישום יוצר שלד עבור כל היישום, ואשף המחלקה יוצר תבניות כלליות וגופי פונקציה עבור רכיבי הטיפול בהודעות. סביבת היישוס של ספריית 886 הינה עתירת רכיבים. מחלקות ספריית 456 גירטה. 0 שכלולות בגירסה 7.0 של ++6/6 0/050₪//%, כוללות את הרכיבים הבאים. %: ממשק ++6 עבור הממשק 871 05ס0חוא. 3% מחלקות לשימוש כללי (אינן ייחודיות ל-60026חו/), שבהך 7 מחלקות אוסף (ח0118600ס) עבור רשימות, מערכים ומפות. 7 מחלקת מחרוות (פָח50) שימושית ויעילה. 7 מחלקות ומן, משך זמן ותאריך. 7 מחלקות גישה לקבצים ללא תלות בסוג מערכת ההפעלה. תמיכה באחסון ושליפה שיטתיים של עצמים מהדיסק. 3% היררכיית מחלקה בסגנון ייעצם בעל שורש משותף" 09660 ₪004 הסחזוחסס). תמיכה ביישומי ממשק רציף רב-מסמכים - 01 (975509זח1 ]סוחס 6וקןווטוא). %+ תמיכה כלשהי בגירסה 1.0 של 5ו0. גירסה 2.0 של מחלקות ספריית 6 (בגירסה 1.0 של ++6 וגפו) המשיכה את גירסה. 0 בתמיכה ברכיבים רבים של ממשק משתמש - כאלה שניתן למצוא היום ביושומי סח - וג בהנהגת ארכיטקטורת סביבת היישום. להלן רשימת הרכיבים החדשים החשובים ביותר. ספה ב 0 6110 + תמיכה מלאה באפשרויות התפריט חס (פתיחה), 85 556 (שמירה בשם) ו-586. (שמירה), ובהצנת רשימת הקבצים האחרונים שהיו בעבודה. א תמיכה בהצגה לפני הדפסה ובמדפסת. תמיכה בגלילה ובפיצול של חלונות. תמיכה בסרגלי כלים ובשורות מצב (סטטוס) גישה לפקדי 885 |מטפ של מיקרוסופט. תמיכה בעורה תלויית-הָקָשָר. + תמיכה בעיבוד אוטומטי של נתונים שהוקלדו בתיבת דו-שיח ממשק משופר לגירסה 1.0 ₪ ס. תמיכה ב-1ם. המחלקות בספריה 2.5 156 (בגירסה 1.0 ++6 |8טפו/) תרמו את הרכיבים הבאים. %+ תמיכה בקישוריות פתוחה למסדי נתונים - 0086 0000660016 8180356 הפס שמאפשרת ליישום הנכתב לגשת אל נתונים במסד נתונים כלשהו ולעדכן אותם. 6 תומכת במסדי הנתונים המקובלים, כגון 460 000508 0ולאס? ו- 501 008 לו ממשק לגירסה 2.01 של וס שכולל תמיכה בעריכה בתוך הקוד, קישור, גרירהה ושחרור והטיפול ב- חסוזוחסווא-05. גירסה 2.0 של ++6 וגטפוץ היתה גרסת 32 הסיביות הראשונה של המוצר שתמכה בגירסה 3.5 של דא פווסשחואו. היא כללה את 3.0 0*וא, עם הרכיבים הבאים. 3% תמיכה בדו-שיח הכרטיסיות וו טגד, שאינם אלא גליונות תכונות - עשזפטסזה 695ח5), שנוספה גם לגירסה 1.51 של ++6 |מטפוש. 3% סרגלי פקדים צפים שהוטמעו בסו תמיכה בחלונות בעלי מסגרת צרה. ערכת פיתוח פקדים - 06 ₪0 זחטווקטוטוטם וסטחסס) נפרדת ליצירת פקדי 8ו0. שמבוססים על 16 או 32 סיביות, למרות שלא ניתנה תמיכה כלשהי במכולת פקדי וס מהדורה מיוחדת של גירסה 2.1 של ++6 |גטפו בשילוב 3.1 6*ו, הוסיפה את הרכיבים הבאים %: תמיכה בפקדים המשותפים של גרסת ביטא החדשה של פאוסטחו/ 3% דרייבר 0806 (רמה 2) חדש, משולב במנוע מסד הנתונים 36% 66955. 3% מחלקות 066פחו עבור תקשורת נתונים מסוג פ09/1ד. 2 זקה2בחווו ומבוא ל-ספו מיקרוסופט החליטה לדלג על גירסה 3.0 של ++6 וגטפו, והמשיכה ישירות לגירסה 0, כדי לסנכרן בין גרסת המוצר לגירסה החדשה של 6פוא. 4.0 6 כוללת. את הרכיבים הנוספים הבאים. + מחלקות של עצמי גישה לנתונים - 040 (09(6009 406095 818פ) מבוססי 018, שנועדו לשימוש יחד עס מנוע נ. 1% שימוש בסרגלי הפקדים הצפים של א5 פאוסשחואו במקום אלה של סו + תמיכה מלאה בפקדים משותפים של א9 פווסחוא, שכוללת תצוגת ע חדשה ועריכה משופרת של מחלקות תצוגה. 3% מחלקות חדשות לסינכרון מטלות. 1% תמיכה במחלקת פקדי 05. גירסה 4.2 של ++6 |גטפו היתה מהדורה חשובה, שכללה את גירסה 4.2 של שאו על. הרכיבים החדשים הבאים : %+ מחלקות זשחזחחו. מחלקות שרת 5זחטוווססם %סשסה. , , מחלקות הסח הסוס חץ5 300 פנוסחסזס חפ אשטווסה. מחלקות פקדי 86006 50 משופרים, ובהן רכיבים כגון הפעלה ללא חלון, קוד ציור שעבר אופטימיוציה וכן הלאה. + תמיכה משופרת ב-0086, ובכלל זה 616065 אפ 166010961 והעברת נתונים ללא כריכה (פַח01ח81). גירסה 5.0, כוללת את 4.21 56ו1, שבה יש תיקוני שגיאות תוכנה שהתגלו בגירסה 6.2> לגירסה 5.0 של ++6 ופ מספר יתרונות חשובים נוספים. %+ סביבת פיתוח משולבת (105) מעוצבת מחדש, 97 0ו506 ז6ק0ו6פם שכולל עזרה. מקוונת מבוססת :₪1 ושילוב עס שפות תכנות נוספות, כולל בּנ. 3% .811 - זפזט:! פובופוחטד 8616 לבניית פקד 6% לאינטרנט. 1% תמיכת שפת ++6 עבור תוכניות לקוח מסוג מודל עצם הרכיב - 601 (זחפחספוחס. 006 601(פ0), עם משפט התכנות החדש, זזסקוחו, עבור ספריות סוג. המהדורה האחרונה 6.0 ++6 וגטפוץ כוללת. את 6.0 456 (שים. לב שהגרסאות מסונכרנות שוב). הרבה מהרכיבים של 6.0 56 מאפשרים למפתח לתמוך בפלטפורמה. הפעילה החדשה של 670508/%/, הכוללת את הדברים הבאים. ספריות 66 שסוגרות את הפקדים המשותפים החדשים של פווסחוא שהוכנסר לראשונה כחלק מ-4.0 זסזסקאם ז6חזסזח1. 3% תמיכה עבור /ו₪1 דינמי, שמאפשר למתכנת 56 ליצור יישום שבאופן אוטומטי מפעיל ומארגן דפי זוז ספה בו 613 3% מכולות מסמכים פעילים, שמאפשרות ליישומים מבוססי 56 להכיל מסמכים. פעילים (פוחטוחטססם 6טו61א). תמיכה בתבניות לספקים ולקוחות של 08 015 וחיבורים ל-800 שעוזרים למפתחי בסיסי נתונים שמשתמשים ב-050/ או ב-וא. עקומת הלמידה כל היתרונות שמנינו נשמעים נהדרים, לא כן! אך כידוע, אין מקבלים דבר חינס. ואמנס, כדי לנצל ביעילות את סביבת היישום יש ללמוד ולהכיר אותה היטב, והדבר נמשך ומן ניכר. אם עליך ללמוד בעת ובעונה אחת את שפת ++6, את פאוס0חוו ואת. ספריית 156 (ללא 016), יחלפו לפחות 6 חודשים בטרס תתחיל לכתוב תוכנית מעשית. אחת. מעניינת העובדה, שלימוד ?חואו לבדו נמשך פרק זמן קרוב לוה. כיצד ייתכן הדבר, אס ספריית 156 כוללת הרבה יותר ממה שכולל 141032 ראשית, תוכל לדלג על פרטים רבים בנושא התכנות, שמתכנתי 6 בסביבת 32חוא נאלצים. ללמוד. מנסיוני האישי אוכל להעיד שסביבת יישוס מוכוון-עצמים מקלה על תהליך. הלימוד של תכנות ב-5וסחוו, בתנאי שהתכנות מוכוון-עצמים (009) מובן לך. ספריות וו לא תהפוך את התכנות המעשי בסביבת פווסחווו לנושא פשוט, בחוקת. "יתכנות להמוניסיי. מתכנתי יישומים לטביבת פאוס6חוווו משתכרים בדרך כלל טוב יותרר ממתכנתים אחרים, ומצב זה יימשך בעתיד הנראה לעין. עקומת הלמידה של ספריית. 0 יחד עם עוצמתה של סביבת היישום, מבטיחים כי מתכנתים שעוסקים בתחום. זה ימשיכו להיות מבוקשים בשוק. מהי מסגרת היישום? הגדרה אפשרית של מסגרת היישום (016א6וח3ז= חסווגסופקא) היא '"אוסף משולב של רכיבי תוכנה מוכווני-עצמים, שכולל את כל הדרוש ליישום כלשהו". זו אינה הגדרה. שימושית ביותר, לא כןז אם ברצונך לדעת באמת ובתמים מהי מסגרת היישום, יהיהה עליך לקרוא את הספר עד תומו. יחד עם זאת, הדוגמה שנציג בהמשך היא התחלה. טובה למדי להכרת הנושא. מסגרת היישום כנגד ספריית המחלקה אחת הסיבות ש- ++6 היא שפה מקובלת, נעוצה בעובדה שניתן "להרחיביי אותה באמצעות ספריות מחלקה (פפוזזסו 01855). מהדרי ++6 כוללים מספר ספריות כאלו, יצרנים שונים מציעים ספריות נוספות למכירה, וכמובן שכל בית תוכנה יוצר ספריות. כאלו בעצמו לפי הצורך. ספריית מחלקה היא אוסף של מחלקות ++6 הקשורות זו לזו, ושניתן לנצל אותן עבור יישום כלשהו. ספריית מחלקה מתמטית, למשל, עשויה. לבצע פעולות מתמטיות שכיחות, בעוד שספריית מחלקה של תקשורת תתמוך בוודאי בהעברת נתונים בקישור טורי. לעיתים עליך לבנות עצמיס של מחלקה נתונה; לעיתים. אתה גוזר מחלקה נפרדת - הכל תלוי בתפיסת התכנון של מחלקת הספריה הנדונה. 4 לכהו ומבוא ל-ספו סביבת יישום היא קבוצת-על של ספריות מחלקה - אוסף של ספריות. ספריה רגילהה היא קבוצה "יסגורהיי של מחלקות שמיועדות לשילוב בתוכנית מחשב כלשחי, אך סביבת יישוס מנדירה את מבנה התוכנית עצמו. מיקרוסופט לא המציאה את רעיון סביבת היישום. הדבר הוצג לראשונה בעולם האקדמי, והגירסה המסחרית הראשונה. שלו נועדה למחשב מקינטוש של אפל ונקראה קק6%מו1. מאז יצאה גירסה 2.0 של ₪80 ויצרניס נוספים ובהס 0ח8/זס8, הוציאו לשוק מוצרים דומים. דוגמה של סביבת יישום עד כה עסקנו בהכללות. הגיעה העת להציג תוכנית, ולא קוד מדומה, כי אם תוכניתת אמיתית שניתן להדר ולהריץ באמצעות הספריה 6וו. הכרת בוודאי את היישום "יוטוזסאו ,0ו61", אך הפעם יש בו מספר תוספות (אם עבדת עם גירסה 1.0 של ספריית. 6 תכיר את הקוד, להוציא את מחלקת הבסיס של חלון המסגרת). היישום כולל את. כמות הקוד הקטנה ביותר הדרושה ליישוס פווסשחו/ו שמבוסס על ספריית זו 4 הע77: לפי הנוהג שנקבע, שס מחלקה בטפריה %6! מתחיל באות 6. לפניך קוד המקור של קבצי הכותר והקוד של היישוס 1/870ו. שתי המחלקות מאעס. ו-306ז9ע//0/ נגזרות ממחלקות הבסיס של ספריות 6*. נתחיל בקובץ הכותר מקה" של הלישום לקה /ו )קפ // פפתהצאס 116טטפ 3 מסהעמם 1858 ו 0 2 () 1161056800 8001 בהטטטצע ו 5 אסמת1א שהמץ? // עס ש1במט 3 6מ4פפעעס 1858 [ גנט () 8 פטעו 9 מעגק 8:66 פתס1שסתגת סאם פאשת שת מפהף 6162668ה1 "חפ זמ" // 0₪םפע5 ה850מפ41 6בפפש עצבעם11 התא שף 0% // (ףת1ס שה1ספס ,פשגנעת צאצט) הספת שנהס 018 חפ 0% ; () תס 018 חפ 0% () פמות מסתספמון מתתנסטם נספח ב 0 615 ועתה לפניך קובץ הקוד של היישום ק/וא, על פי קוב קפס פסה : 6 זקה32חאו ומבוא ל-ספו נסביר בקצרה אחדים ממרכיבי התוכנית + הפונקציה. חובאחועצ - כזכור, פווסטח/ו מחייבת שהיישום יכיל את הפונקציה חופוזחוו. אינך מבחין בפונקציה זו ביישוס, מכיון שהיא מוסתרת בסביבת היישום. המחלקה 0/8 - עצם של המחלקה מ0א//0% מייצג יישום. התוכנית מגדירה עצם. פקא/ו%) גלובלי בודד, פקהפהז. מחלקת הבסיס פקאחו/) קובעת במידה רבה את הדרך. בה העצם פקאסו) פועל. התחלת פעולת היישום - כשהמשתמש מפעיל את היישוס, פווס6חו/ קוראת לפונקציהה הווחו המובנית בסביבת היישום, וזו מחפשת אחר עצם היישום שנבנה לשימוש. גלובלי ונמצא במחלקה שנגזרה מ-פקאחוו6. אל תשכח שבתוכנית ++6, העצמים. הגלובליים נוצרים טרס הפעלת התוכנית הראשית (חגא). הפונקציה החברה 8066ז18105ח1::קקאץ61 - כשהפונקציה חוגוח!/ו מוצאת את עצם. היושום, היא קוראת לפונקציה החברה הווירטואלית 5סחפזפח1)ח1, וזר מבצעת את הקריאות הדרושות לבנייה והצגת חלון המסגרת הראשי של היושום. עליך "ילדרוסי" את הפונקציה 65ח8זפח1ו/ח1 במחלקת היישום הנגזרת, מכיון שמחלקת הבסיס פקהחוו ינה יודעת איה סוג של חלון מסגרת ראשי ברצונך להציג הפונקציה החברה חטף::קקאחוש6 - הפונקציה חש מוסתרת במחלקת הבסיס, אך שולחת את הודעות היישום לחלונות השונים, ועל ידי כך מבטיחה שהיישום ימשיך לפעול. חוויוחו/ו קוראת ל-חח לאחר שקראה לפונקציה 65חמזפח1וח1 המחלקה 8₪6ז8ץא6 - עצם של המחלקה 6וח3ז0%//5 מייצג את חלון המסגרת הראשי של היישום. כשהבנאי (זסוסטשפחס6) קורא לפונקציה החברה 616306 של מחלקת הבסיס 6חטו6וח9ז05, פוסחו/ יוצרת את המבנה בפועל של החלון, וסביבת היישום. קושרת אותו אל העצם של ++6. כדי להציג את החלון יש לקרוא גם לפונקציות 6 חואוסח5 ו- 00%חו/9%ז63קו, שגםו הן פונקצייות חברות של מחלקת הבסיס. הפונקציה האוס0ח0ש6::001.800וח3זפץ//0 - ווהי הצגה מוקדמת של אפשרות עיבודד ההודעות של ספריית 6/. בחרנו להצמיד את האירוע יילחצן עכבר שמאלי מטה" לפונקציה החברה 6וזגז5/!/. הפונקציה מפעילה את פקודת המאקרו 805 של ספריית 6*וא, כדי שזו תציג הודעה בחלון של תוכנית ניפוי השגיאות. הפונקציה 58706::0008/0//א6 - סביבת היישום קוראת לפונקציה חברה חשובה זו, ששייכת למחלקה 6חוגזזץ!61, בכל פע שצריך להציג את החלון מחדש: בתחילת. התוכנית, כשהמשתמש משנה את גודל החלון וכאשר החלון כולו או חלק ממנו מוצג מחדש. המשפט 6730006 מתייחס לממשק ההתקן הגרפי - 601 (08066 6906 8זפוח]). הפונקציה זט10אטד מציגה את ההודעה 'י!6וזסא ,סוסוזיי סגירת היישום - המשתמש סוגר את היישום באמצעות סגירת חלון המסגרת הראשי פעולה זו גורמת לרצף אירועים שמסתיים בפירוק העצם 6חוגזיע/6, יציאה מ-חטח, יציאה מ-חוב!אחווו ופירוק העצם ססאעויס. עיין שוב בדוגמת הקוד, אך הפעס נסה להבחין בתמונה השלמה. רוב מרכיבי התפקוד. של היישוס נמצאים במחלקות הבסיס קקאחו) ו-6חופוחפזת של ספריית 6 ספה ב 0 617 כשיצרנו את היישום לו פעלנו בהתאם למספר כללי מבנה פשוטים וכתבנו פונקציות עיקריות במחלקות הנגורות. ++6 מאפשרת י"לשאוליי קטעי קוד רבים מבליי להעתיקם בפועל. זוהי מעין שותפות בין המתכנת לסביבת היישום, שסיפקה את המבנה הבסיסי, ואנו הוספנו את הקוד לקבלת יישום ייחודי בוודאי התחלת להבין כבר, מדוע סביבת היישום אינה ספריית מחלקה בלבד. לא זאת. בלבד שהיא מגדירה את מבנה היישום, היא גם כוללת יותר מאשר מחלקות בסיס של ++6. פגשנו כבר את הפונקציה המוסתרת חוגאחואו וראינו אותה בפעולה. מרכיביה הנוספים של סביבת היישוס תומכים בטיפול בהודעות, אבחון תקלות, ספריות וס ועוד מיפוי הודעות על ידי ספריית 6=וו! הבה נחזור לפונקציה חווססחסטטפ חס שביישום הדוגמה הקודם. חשבת בוודאי שפונקציה זו היא מועמדת אידיאלית לפונקציה וירטואלית. מחלקת בסיס של חלון היתה עשויה להגדיר פונקציות וירטואליות עבור הודעות על אירועי עכבר והודעותת רגילות נוספות, ומחלקות חלון נגזרות היו עשויות לבטל אותן בהתאם לצורך. אכן, קיימות ספריות מחלקה של 0005חוו שפועלות בדרך זור סביבת היישום של ספריית ₪56 אינן מנצלות פונקציות וירטואליות עבור הודעות 5וסחו. במקום ואת היא ייממפה" הודעות מוגדרות מסוימות לפונקציות חברות של מחלקה נגזרת בעזרת פקודות מאקרו. מדוע לא להשתמש בפונקציות וירטואליות! נניח ש-1/%6 הפעילה פונקציה וירטואלית לטיפול בהודעות. המחלקה 6חא0 וכלה להכריו על פונקציות וירטואליות לטיפול ב-110 הודעות. ++6 דורשת טבלת הפצה לפונקציות וירטואליות, 6!פפזש, לכל מחלקה נגורת שהתוכנית משתמשת בה. כל טבלת 6טפזו זקוקה להגדרה בגודל 4 בתים לכל פונקציה וירטואלית, ללא קשר אם הפונקציות מתבטלות במחלקה הנגזרת. באופן זה, לכל סוג מוגדר של חלון או פקד, היושום היה וקוק לטבלה בגודל 440 בתים, כדי לתמוך בפונקציות וירטואליות לטיפול בהודעות. מה בקשר לפונקציות טיפול בהודעות של פקודות תפריט והודעות שמגיעות מאירועי לחיצות בעכברז אינך יכול להגדיר אותן כפונקציות וירטואליות במחלקת הבסיס של החלון, מכיון שכל יישוס עשוי להכיל מערך שונה של פקודות תפריט ולחצנים. מערכת. מיפוי ההודעות של ספריית 56 מוותרת על טבלאות פוטז גדולות, ומטפלת בהודעות. ייחודיות ליישוס במקביל לטיפולה בהודעות הרגילות של 00005ו//. מערכת מיפוי ההודעות מאפשרת למספר מחלקות לא-חלונאיות (כגון. מחלקות מסמך ומחלקות. יישום) לטפל בהודעות פקודה. אין צורך בהרחבות כלשהן לשפת ++6. כדי לעבוד במסגרת מפת ההודעות, וקוקה פונקציית 56 המטפלת בהודעה לאב-טיפוס (06/ףטוסזק, תבנית כללית), גוף והוראות הפעלה (הפעלה על ידי מאקרו). אשף המחלקות יסייע לך להוסיף למחלקותיך פונקציות לטיפול בהודעות. לשם כך עליך לבחור מספר ציהוי של הודעת פווסטחו/ו מתוך תיבת הרשימה, והאשף ייצור את. הקוד בצירוף הפרמטרים והערכים המוחזרים. 8 הכהו ומבוא ל-ספו מסמכים ותצוגות בדוגמה הקודמת הצגנו עצם יישום 0960 חסטגסוופקא) ועצם חלון מסגרת (טוחפזו 096% אסטחו//). רוב יישומי ספריית 6 שתיצור יהיו מורכבים יותר. יישומים כאלה יכללו בדרך כלל מחלקות יישום ומסגרת ושתי מחלקות נוספות שמייצגות את היימסמדיי והייתצוגה". הארכיטקטורה מסמך-תצוגה (אפו)-)חסוחססס) היא הבסיס. של סביבת היישום ומבוססת באופן רופף על המחלקות 6ווסחס60/0וש//1006 של סביבת 5013//03/6. במונחים פשוטים, ארכיטקטורת מסמך-תצוגה (אפוע-זחפוחנססס) ‏ מפרידה. בין הנתונים והצורה שבה הם מוצגים למשתמש. אחד היתרונות המיידיים של ארכיטקטורה זו הוא האפשרות להציג נתונים זהים בצורות רבות. תאר לעצמך מסמך. שמור בדיסק שמכיל את שערי המניות של חודש שלם. המשתמש מעדכן את ערבי המניות באמצעות חלון תצוגת הטבלה, ועל ידי כך משתנה חלון תצוגת התרשים. 0זפוס), מכיון שמקור הנתונים של שני החלונות זהה (למרות שאופן התצוגה שונה). ביישום ספריית 4:6 מיוצגים מסמכים ותצונות על ידי מופעים הזח של מחלקות ++6. תרשים 4 מציג שלושה עצמים של המחלקה 65/006006, שמיוצגים. שלוש חברות: 181א, 18% ו-6%. לכל אחד מהמסמכים קשורה תצוגת טבלה, ולאחד מהס יש אפילו תצוגת תרשים. כפי שניתן להבחין, קיימים ארבעה עצמי תצוגה: שלושה עצמים של המחלקה אשופומ3ז650000 ועצם אחד של המחלקה 0 6 ב-) ו ו ד ב תרשים 4: יחסי הגומלין מסמך-תצוגה. ספה ב 90 619 קוד מחלקת הבסיס של המסמך קשור לאפשרויות התפריט ח6ק₪6-0 (פתיחת קוב ו- 6.5366 (סגירת קובץ). מחלקת המסמך הנגזרת מבצעת בפועל את הקריאה והכתיבה של נתוני עצם המסמך (סביבת היישום אחראית על רוב פעולות הצגת תיבות. הדו-שיח של פתיחת הקובץ וסגירתו, קריאה וכתיבה לקבציס). מחלקת הבסיט של התצוגה מייצגת חלון שנמצא בחלון מסגרת. מחלקת התצוגה הנגזרת פועלת הדדית. עם מחלקת המסמך הקשורה אליה, ומטפלת בתצוגת המסמך ובתקשורת עם המדפסת. מחלקת התצוגה הנגזרת ומחלקות הבסיס שלה מטפלות בהודעות פוסטחואו. הספריה 6" שולטת בכל יחסי הגומלין המתקיימים בין מסמכים, תצוגות, חלונותת מסגרת ועצם היישום, על פי רוב באמצעות פונקציות וירטואליות. עצם מסמך אינו קשור בהכרח לקובץ בדיסק שנטען בשלמותו לזיכרון. אם לדוגמה "מסמךיי היה באמת מסד נתונים, היה ניתן לדרוס פונקציות-חברות נבחרות של מחלקת המסמך, ואפשרות התפריט חסקס-₪6 היתה מציגה רשימת מסדי נתונים: במקום רשימת קבצים. צעדים ראשונים עם אשף היישומים - "!6!זס/ ,ס!!46ן" בחלק הקודם למדנו על ארכיטקטורת מסמך-תצוגה (6ו-)חסוחו000) בגירסה 6.0 של ספריית 56/. בחלק זה נלמד ליצור יישום פונקציונלי של ספריית 6*וא, גם אם לא ניכנס לעומק המורכבות של היררכיית המחלקות ויחסי הגומלין בין עצמים. נעבוד עם. מרכיב אחד בלבד של תוכנית מסמך-תצוגה, אשר קשור בצורה הדוקה לחלון. לפי שעה. נוכל להתעלם ממרכיבים כגון מחלקת היישום, חלון המסגרת והמסמך. מובן שהיישוס שניצור לא יוכל לשמור את נתוניו בדיסק, וגס לא יתמוך בתצוגות רבות, אך. כל וה אפשרי כמובן לבצע עם סו מפאת החשיבות הרבה של משאבים ביישוס מבוטס פווסטחו/, ננצל את פ50/60סה כדי לחקור חוותית את משאבי התוכנית החדשה שנכתוב. גם נציג מספר רמזים באשר להגדרת סביבת 4/0005 באופן שישפר את מהירות בניית היושום ויאפשר אופטימיוציה של פלט ניפוי השגיאות. מהי תצוגה? מנקודת ראות המשתמש, תצוגה (ווטו) היא חלון רגיל שניתן לשנות את גודלו, להזיוד או לסגור אותו, כפי שניתן לעשות בכל יישום מבוסס 60005 מנקודת מבט המתכנת, תצוגה היא עצם ++6 במחלקה שנגזרה מהמחלקה וו6ו/) של ספריות 6 בדומה לעצם ++6 כלשהו, התנהגות עצם התצוגה נקבעת על ידי פונקציות-חברות. (ואיברי נתונים) של המחלקה - הן הפונקציות המיוחדות ליישום במחלקה הנגזרת, והן הפונקציות הסטנדרטיות שעברו בירושה מהמחלקות הבסיסיות. 0 321חו/ו ומבוא ל-ספו ב- ++6 גפ ניתן ליצור יישומים מעניינים לסביבת פאוסטחוו על ידי הוספת קוד למחלקת התצוגה הנגזרת שיוצר מחולל הקוד של אשף היישומים. כשמריצים את התוכנית, סביבת היישום של ספריית 56 בונה עצם של מחלקת התצוגה הנגורת. ומציגה חלון שקשור באופן הדוק לעצם התצוגה של ++6. כפי שמקובל בתכנות ב- ++6, קוד מחלקת התצונה מתחלק לשני מודולי מקור: קובץ הכותר (8.*) וקוב' היושום (ללס.*) ממשק מסמך בודד כנגד ממשק מרובה מסמכים ספריית 0 תומכת בשני סוגי יישומים שונים וה מזה: ממשק מסמך בודד - 501 (1671209ח1 ותפוחנססם. 6פַ/5). וממשק מרובה. מסמכים - 01 (חטוחטססם 6וקטוטור 18 מבחינת המשתמש, ליישום 501 יש חלון אחד בלבד. אס היישום תלוי ביימסמכיסיי שנמצאים בקבצי דיסק, ניתן לטעון מסמך אחד בלבד בכל זמן נתון היישום 016936 (פנקס רשימות) המקורי של פווסטחוא הוא דוגמה ליישום 501. ליישום 01// יש חלונות-בנים (פאוסחו 6ו/ח0) אחדים, שכל אחד מה שייך למסמך נפרד. מעבד התמלילים שזס/ו של מיקרוסופט הוא דוגמה טובה ליישום סו היישום "שאינו עושה דבר" - 034 אשף היישומים יוצר קוד של יישום פונקציונלי מספריית 86/א. פעולתו של יישום זה מתמצית בהצגת חלון ריק ולצידו תפריט. בהמשך תוסיף ליישום קוד שמצייר בתוך החלון. בנה את היישום בהתאם לשלבים הבאים 1. הרץ את אשף היישומים וצור בעורתו קוד מקור של ישוס 1פ5. בחר באפשרות. אוש (חדש) מתפריט ₪116 (קובץ) של ++6 וגטפו, ולאחר מכן לח על הכרטיסיה. סק בתיבת הדו-שיח אופא שנפתחה, ראה דוגמה. | ער[ ה א | ה ב ₪ ו ₪ -=-הי] 5 ו וח ספה ב 90 6210 ודא שסימנת את האפשרות (6א6) 6זהעו/וקקא 56ו%, ולאחר מכן הקלד 32ק6ט:6 (או שם תיקיה אחר שבחרת) בתיבת העריכה ח19686!0. הקלד 38 בתיבת העריכה שוחפא 66%[סזל, ולאחר מכן לח על לחצן 0% כעת. התקדם ברצף המסכים של שזְנופקא, שהראשון שבהם מוצג לפניך 7 0 5 50 בס מקב ופפ בה ב 1 6 סומ וש //פתומטס 1 7 פססוסמסו וכע 0ע מו 0פ חכ 0 ו מ 6 9 ודא שבחרת באפשרות זחסוחססס 6ופַי המסכים הבאים. המסך האחרון ייראה כך אשר את הגדרות המחדל בארבעת. ב םה | | טהר בי מש 77 שחאם] |[ א ] ]ו | אפ 2 זקהככחווו ומבוא ל-ספו שים לב ששמות המחלקות ושמות קבצי המקור מבוססים על שם הפרויקט %03ש. תוכל לשנות. את השמות בשלב זה, אם רצונך בכך. לחץ על לחצן הצוחו רגע לפני שאשף חיישומים יתחיל ליצור את הקוד תוצג תיבת הדו-שיח אופא סו וחזס!ח1 6ס(סזק, 7 ה שנראית כך הדוה ו מ ו 6 0 ה ב תק הבח רו ומכ 03 בוט מ כ0וס ו פפלמ נה חסובסמ כ 0 0 0 ב ו ו 1 בל 8 1 1 0 וח 01 ו ו 0 ברו 0-4 ו יפו כאשר תלחץ על 0% לאישור, אשף היישומים יתחיל ליצור תת-ספריה עבור היישום החדש (038) אס) וימלא אותה בסדרת קבצים. בסיום פעולתו, בדוק את תת-הספריה של היישום. הקבצים הבאים מעניינים אותנו בשלב זה קובצ ב 0 6 0 0 ב ] 0 וי תיאור קובץ פרויקט שמאפשר ל- ++6 וגטפו לבנות את היושום. קובץ שטח עבודה שמכיל הגדרה יחידה עבור ק64038.65. קובץ 85011 שמכיל תסריט משאבים. קוב יישום מחלקת תצוגה שמכיל פונקציות-חברות של. המחלקה 50339 0. קוב כותר של מחלקת תצוגה, שמכיל הכרה על המחלקה. 0 קובץ בינארי שאומר ל- ++6 |גטפו/ אוה קבצים פתוחים. עבור הפרויקט, וכיצד מסודרים החלונות (קובץ זה לא נוצר עד שאתה שומר את הפרויקט). קובץ טקסט שמסביר את ייעוד הקבצים שנוצרו. קוב כותר המכיל הגדרות 469006 של קבועים (505005חס), ספה בו 623 פתח את הקבצים 6.600וש64033 ו- ח.9%וש₪4038 ועיון בקוד המקור. קבצים אלה מגדירים יחד את המחלקה א6וו054038, שלה תפקיד מרכזי ביישום. עצם. של המחלקה 050336 מתאים לחלון התצוגה של היישום שבו תתרחש רובב הפעילות. 2 הדר וקשר את הקוד שנוצר. נוסף ליצירת קוד, אשף היישומים יוצר גם קוב פרויקט מותאם וקובץ שטח עבודה עבור היישום החדש. קוב הפרויקט, 5 מציון את כל הרכיבים התלויים (06090690065) וחד עם דגלי האפשרויות של תהליכי ההידור והקישור. הפרויקט החדש הופך לפרויקט הנוכחי. של ++6 והטפוץ, ולכן תוכל ליצור עתה את היישום באמצעות בחירת האפשרות. 3 800 מתוך התפריט 86/6, או באמצעות לחיצה על לחצן סרגל הכלים. הבא: אם לא יהיו תקלות כלשהן בתהליך הבנייה, ייווצר קוב ההפעלה 64038.68. בתת-ספריה חדשה, הְָטפם, תחת 64033. קבצי 08 וקבצי ביניים נוספים. נשמרים אף הס בספריה הָטטפס. השווה את מבנה הספריה בדיסק עם זה שבדף. ץופושסוו= של החלון 0150866/, הדף 6416 מכיל תצוגה לוגת של הפרויקט. קבצי הכותר מוצגים תחת זו 5, למרות שהם נמצאים באותה תת-ספריה של קבצי 7ק6. קבצי המשאבים נמצאים בתת-הספריה פסז. ב ב ב ו ו בר 1 ו 0 ו 4 8 0 יי 0 3. בדוק את היישום שנוצר. בחר באפשרות ₪038.66 86016א₪ מתוך התפריט. ₪. נסה להריץץ את התוכנית. ביצועיה דלים למדי, לא כןז (גס הקוד שלה ינר רב). למעשה, שיערת בוודאי שהתוכנית מכילה רכיבים רבים, אך עדיין לא הפעלנר את כולס. בסיום נסיונותיך, סגור את חלון התוכנית. 4 זקה2בחווו ומבוא ל-ספו 4. דפדף ביישום. בחר באפשרות 8002/56 פסזשס5 מתפריט 05פד. אם לא הוגדרה. בפרויקט יצירת מסד נתונים, ++6 |בטפוץ תציע לך לשנות את ההגדרות ותהדר עבורך את התוכנית. אם ברצונך לשנות את ההגדרות בעצמך, בחר באפשרות. 5 מתפריט 66%[סזס. בדף ++6/6 לח על האפשרות 8700058 0091306. סזח1. בדף ס)ח1 ספאוסז8, לחץ' על ס! טוח ספאוסזם ₪ו8. כשיופיע החלון 56ווסז8, בחר את פזפטוח6!/ 6חה 085505 8356, ולאחר מכן הקלד. 60ו/65%033. לאחר שתרחיב את התצוגה ההיררכית יופיע מסך כגון וה 4 י*1₪- .א 0 0 0-3 2 מ 3 ו 0 ופט 8 חלון 05906 אינו מציג את היררכיית המחלקות, אך באותה מידה גם אינו כולל את התקורה הנוספת של תצוגת העיון. אם אתה מסתפק בתצוגה של 9%וש0/859, אל תטרח לבנות את מסד הנתונים של תצוגת העיו. נספח ב 80 625 מחלקת התצוגה 6ו)038א05 אשף היישומים יצר את מחלקת התצוגה /א0ו654033, שהינה ייחודית ליישום אטאט (אשף היישומים יוצר מחלקות על פי שם הפרויקט שצוין בתיבת הדו-שיח הראשונה שלו). המחלקה 05403300 נמצאת בסוף שרשרת ההורשה של מחלקות הספריה 6 כפי שראינו קוד לכן בחלון 6פאוסז8. במהלך ההורשה, המחלקה אוספת פונקציות-חברות ואיברי נתונים. תוכל להמשיך וללמוד אודות המחלקות הללו בספר 1855/8606 הסטהנחוס: 00508 אך עליך להביט בכל תיאורי המחלקות. הבסיסיות, מכיון שתיאורי הפונקציות-החברות העוברות בירושה אינם חוזרים בדרך. כלל במחלקות הנגזרות. המחלקות הבסיסיות החשובות ביותר של ,6503/60 הן 0/6 ו-אאפו/ס. המחלקה. 0/6 מספקת את המאפייניס החלונאיים של 6₪ו05038, ואילו ופוס מספקת את הקשרים לשאר סביבת היישום, ובמיוחד למסמך ולחלון המסגרת. כתיבה בחלון התצוגה - ממשק ההתקן הגרפי של פשוסטחוו - ופט הכל מוכן עתה ליצירת קוד שיכתוב בחלון התצוגה. בשלב זה נערוך מספר שינויים. ישירות בקוד המקור של בּסַאפ. הפונקציה-החברה 8זסחס סח היא פונקציה-חברה וירטואלית של המחלקה ווו/ס, שנקראת על ידי סביבת. היישום בכל פעס שיש צורך להציג מחדש את חלון התצוגה. הצורך להציג את החלון. מחדש מתעורר בכל פעס שהמשתמש משנה את גודל החלון, חושף חלק שהיה מוסתר עד כה, או שהנתונים שמוצגים בו משתנים. אס המשתמש משנה את גודל החלון אד חושף חלק שהיה מוסתר עד כה, סביבת היישום קוראת לפונקציה ווגזפחס; אך אם. פונקציה כלשהי בתוכנית משנה את הנתונים, עליה להודיע ל-5ס6חו/ אודות השינור באמצעות קריאה לפונקציה-החברה היורשת (61880ח) של התצוגה, 10/1616 (אר ח]). קריאה זו ל-816318/ח1 מפעילה בהמשך קריאה לפונקציה או3זסחס. למרות שניתן לכתוב בחלון בכל עת, מומלץ לאפשר ל-פאופחו+ לצבור את השינויים. ולטפל בהס בפעס אחת באמצעות הפונקציה צופזפחס. באופן וה התוכנית תוכל להגיבב לאירועים שנוצרו על ידיה ולאירועים שנוצרו על ידי מערכת ההפעלה, כגוך שיויר גודל. קשַר ההתקן של פווסטחו/ץ פוסטחוו. אינה מאפשרת גישה ישירה לחומרה של מסך, אלא מתקשרת איתה באמצעות יישות שנקראת "הָקָשָר ההתקן"י אפוחס6 06%/05) הקשורה לחלון. הקשר ההתקן בספריה 156י! הווא למעשה עצם ++6 של המחלקה 000, אשר מועבר (באמצעות. 6 זא2פחווו ומבוא ל-ספו מצביע, זפזחוסק) כפרמטר אל הפונקציה זסחס. לאחר שנמצא בידך המצביע של הקשר ההתקן, תוכל לקרוא לפונקציות-החברות הרבות של 606 והן תבצענה את פעולת הכתיבה. הוספת קוד כתיבה לתוכנית 034א₪ כעת הבה נכתוב את הקוד לכתיבת טקסט כלשהו ולציור מעגל בחלון התצוגה. פתח. את הפרויקט ₪038 ב-++6 וגטפו אם לא עשית ואת עד עתה. תוכל לנצל את 03596 של חלון 50866אזס לאיתור קוד הפונקציה (באמצעות לחיצה כפולה עלל אופזסחס), או לפתוח את קוב קוד המקור פק9%.6וש64033 מתוך אאפוצ6ו ולאתר את. הפונקציה בעצמך. 1. ערוך את הפונקציה עשפזסחס בקובץ או; שנוצר על ידי אשף חיישומים. כך הוא נראה. 38א6. מצא את קוד הפונקציה 18 280380168 [| ספמ *690) שממו 06550 = שספם *038006מ 0 ₪ (סספם) ַצמתט פתמפפת 6( 4868 שט1סבה 505 0046 8586 848 נסססצ // קטע הקוד הבא שמופיע בהצללה (וה שהקלדת), מחליף את הקוד הקודם. - ו / שחס+ 8555016 ה3 פטתטם // < ("!18עסא ,בבס" ,0 0 66 אצכ-סספן צפתצמס 1556 קסט ,126ם ₪ // שס? הפנע 5 2616085 // = (מפטתם צהתם) 606[מ8015055600%0<-ססנ שס1צסטת1 16סע1ם מֶט // =[0סצגס עבצ 3 פשמצם //120((2 ,100 ,20 ,0) 60%הס) מק 1נמכ-סמ 817605 ת+ פסצתט 100 // ספמ *690) משפמ! 1 תוכל לבטל את הקריאה ל-חסוח00פ!06 ללא חשש, מכיון שעדיין אי אנר מטפלים במסמך. הפונקציות 16400, 60ן56/005000609 ו-56כווו₪: הן. כולך פונקציות-חברות של מחלקת הקשר ההתקן 606, השייכת לסביבת היישום. הפונקציה ₪056 מצייירת מעגל אם אורך המלבן המגביל שווה לרוחבו. הספריה 6וי! כוללת מחלקה שימושית בשם 686%, שמיועדת למלבני פווסחוו. עצם 6866 ומני משמש כארגומנט של המלבן המגביל עבור הפונקציה שמציירת. את האליפטה. נפגוש את הפונקציה 0866 בדוגמאות נוספות בהמשך. 2 הדר את 84038 פעם נוספת והפעל אותו לניסיון. בחר באפשרות 86/6 מתוך. תפריט 66[סזק. אם ההידור עבר ללא תקלות כלשהן, נסה להפעיל את היישום. פעם נוספת. כעת יש לך תוכנית שסוף-סוף מפגינה ביצועים! ספה ב 0 627 למתכנתי 32חז/ הפונקציה חו3וחוו ופונקציות הפרוצדורה של ₪5וס0חו/ו מוסתרות בסביבת היושום. נפגוש בהן בהמשך, כאשר נלמד על מסגרת ספריית ₪50 ומחלקות היישום. לפי שעה,, בוודאי שאלת את עצמך מה קרה להודעה דא1ק %/. ציפית בוודאי לשרטט בחלון] בתגובה להודעה זו, וגס ציפית לקבל את ידית הקשר ההתקן ממבנה ד6טהד5דוונאקו שמחזירה הפונקציה זח/8לח:860 של 5אוס6חואו. סביבת היישום ביצעה עבורך את כל העבודה 'יהשחורה"י ושרתה כהקשר התקןן (בצורת מצביע עצם) בפונקציה הווירטואלית ופזסחס. פונקציות וירטואליות| אמיתיות במחלקות סח הן תופעה נדירה בספריית 66/. פונקציות: מיפוין ההודעות של הספריה מופצות על ידי סביבת היישוס ומטפלות ברוב הודעות מערכת| ההפעלה. מתכנתים שעבדו עם גירסה 1.0 של 56ו, נאלצו להגדיר פונקציית מיפוין הודעה )חלס עבור מחלקות החלון הנגזרות שלהם. מגירסה 2.5 ואילך לעומת| ואת, זחו3קח0 מופתה במחלקה אפו/) ויצרה קריאות רב צורתיות (פולימורפיות)| לפונקציה ווגזסחס. הסיבה לכך: ווגזפחס צריכה לתמוך גם במדפסת. הפונקציות| זהולחס ו-זחוזקחס קוראות ל-אופזסחס ועל ידי כך מאפשרות לכתוב למדפסת ולצגן באמצעות קוד והה. הצגה מוקדמת של עורכי המשאבים כעת, כשבידך תוכנית יישום מושלמת, זו ההודמנות לסקירה מהירה על עורכי המשאבים. למרות שתסריט המשאבים .6038 של היישום הוא קובץ 5011א, לא מומל לעדכן אותו בעורת עורך טקסט פשוט. עורך המשאבים (ז6000 9500168ו) הוא: הכלי המיועד לכך. תוכן תסריט קובץ המשאבים 0ז.033א8 קובץ המשאבים קובע במידה רבה את החזות ודרך הפעולה של היישום א403ש. הקובץ. מכיל את (או מצביע אל) משאבי מערכת ההפעלה הבאים. משאב תיאור זס3ז860810 | הגדרות מקשים והדמיית אפשרויות תפריט וסרגל הכלים. (מאוא) פַסוום | עיצוב ותכנים של תיבות דו-שיח. 84038 כולל רק את תיבת. (תיבת דו-שיח) | דו-שיח זוסטא. 160 | סמלים (גרסאות בגודל של 16416 או 3232 פיקסלים), כגון (סמל) | טמלי היישומים של הטייר של פווסטחו ואחרים. 03 מנצל. את הלוגו של 6 כסמל ההפעלה של היישום. שחסוא | התפריט הראשי של היישום והתפריטים המוקפצים (קט-ק0). (תפריט) | הקשורים אליו. 8 71א32חוו ומבוא ל-ספו משאב תיאור 16 588 | מחרוזות שאינן מהוות חלק מקוד המקור של ++6. (טבלת מחרוזות) 3פוססד | טור הלחצנים שנמצא מתחת לתפריט. (סרגל כלום) חסופזפש | תיאור התוכנית, מספר הגירסה, שפה וכן הלאה. (גירסה. נוסף למשאבים שתוארו, הקובץ .6038 מכיל את משפטי התכנות הבאים. ".864268" 1006סה41 6 "0 68ש 49% תפקיד משפטים אלה לספק ליישום גישה למשאבי 16 מסוימים, שכוללים מחרוזות, לחצנים גרפיים ומרכיבים הדרושים להדפסה ולקישור והטבעת עצמים (05). הערה; אס אתה עובד עס גרסת )01 המשותפת של ספריות 56 המשאבים המשותפים שמורים בספריית )0 של סו הקובץ 038.66 מכיל גס את המשפט הזה. 0008" 106סה1 משפט וה משלב ביישוס שלושה קבועי 6ח4668: שואהחפאנגוא 18 (שמצהה. את התפריט, הסמל, רשימת המחרוזות וטבלת המאיצים); 038178 108 (שמוהה את סמל המחדל של היישום, אשר אינו בשימוש בתוכנית שלנו), ו-אספדטס8 ספ1 (שמוהה את תיבת הדו-שיח יעל אודות'). קובץ כותר וה נכלל בתוכנית באופן עקיף עלל ידי קבצי המקור של היישוס. אם תשלב בתוכנית קבועים נוספים (סמלים), ההגדרות. תופענה בסופו של דבר בקובץ .65זספפז. אם אתה עורך קובץ וה במצב טקסט, עשה ואת בוהירות, מכיון שהשינויים שהכנסת עלולים להתבטל בפעס הבאה שתפתח אותור בעורת עורך משאבים. הפעלת עורך משאב תיבת דו-שיח 1. פתח את קוב המשאבים (80) של הפרויקט. לחץ על לחצן 6500660066 שבחלון 868!קאזסו. אס תרחיב כל אחד מהפריטים המוצגים, תתגלה לפניךך התמונה הבאה בחלון העורך. ספה ב 90 629 ו תו ו ו = רוי ו ב 0 ו 2. בחן את משאבי היישום. כעת הקדש את הזמן הדרוש והבט בעיון על המשאבים עצמם. כשבוחרים משאב כלשהו באמצעות לחיצה כפולה, נפתח חלון נוסף ובור הכלים המתאימים למשאב שנבחר. אם תפתח משאב תיבת דו-שיח וסט פסזט0פסה), למשל, יופיע פקד תיבת כלים. אם לא מופיע הכלי הדרוש, לח לחיצה. ימנית בסרגל כלים כלשהו ולאחר מכן סמן את האפשרות 05ח6 (פקדים). 3. שנה את תיבת הדו-שיח אספדט880. פפ1. ערוך שינויים בתיבת הדו-שיח זטספא. 38 המוצגת לפניך. תוכל לשנות את נודל החלון באמצעות גרירת הגבול הימני או התחתון שלו, להזיו את לחצן 06, לשנות את הטקסט וכוי. כל שעליך לעשות הוא ללחוץ על מרכיבב כלשהו, כדי לבחור אותו, ואחר כך ללחוץ לחיצה ימנית בעכבר כדי לשנות את מאפייניר 4. בנה את הפרויקט מחדש בעורת קובץ המשאבים המעודכן. ב- ++6 |גטפוט, בחר באפשרות 88038.6%6 861!6 מתוך התפריט 860/6. שים לב, אין צורך בהידור חוזר; ++6 וגטפו שומרת את קובץ המשאבים המעודכן, ולאחר מכן מהדר המשאבים (6.646) מהדר את קובץ 64033.06. הקוב 65ז.6%033 שנוצר נשלח אל. תוכנית הקישור (זאחו). זו האחרונה פועלת במהירות, מכיון שביכולתה לקשר את הפרויקט בצורה מדורגת. 0 זה2בחווו ומבוא ל-ספו 5. בדוק את גרסת היישום החדשה. הר פעם נוספת את התוכנית א5%03 ובחר באפשרות 890 מתוך תפריט העורה של היישום, כדי לוודא שהשינויים שערכת. אכן מופועים. ד טַט060 32חו/ בהשוואה ל- )73706 ₪616356 32חו/צ אס תפתח את תיבת הרשימה של סרגל הכלים 86/6, תוכל לראות בו שני פריטים טזגד 60 32חו/+ ו- בד 86/6356 32חו/+ (טרגל כלים זה אינר מופוע מעצמו, ויש. להציגו על ידי בחירת האפשרות פקווחסזפטס) בתפריט 1000). פריטים אלה הם מטרות. (פוטְזגּד) שמייצגות קבוצות מוגדרות של אפשרויות בנייה. כשאשף היישומים יוצר פרויקט, הוא יוצר שתי מטרות מחדל שנבדלות בהגדרותיהן, כפי שמוצג בטבלה שלהלן טבלה 2+ הצגת שתי מטרות מחדל הנבדלות בהגדרותיהן בנייה בשיטת 8616356 בנייה בשיטת פָטמסם ניפוי שגיאות = | לא מאופשר אפשרי באמצעות המהדר. בקוד המקור ותוכנית הקישור כאחד פקודות מאקרו * | לא מאופשרות מאופשר לאבחון (8806סו! מוגדר) (05806 = מוגדר) זיקה לספריה = | ספריית 60656 00 ספריות ָטטטס 6 אופטימיוציה = | אופטימיוציה של מהירות | | ללא אופטימיזציה של המהדר. (לא נמצאת בגרסת הלימוד) = | (הידור מהיר). מפתחים את היישום במצב טפ ולאחר מכן בונים אותו מחדש במצב 88/6356 לפנ מסירתו למשתמש בגרסת זמן ריצה. קובץ ההפעלה שנבנה במצב 8616356 קטן ומהיר. יותר בביצוע, בהנחה שניפית את כל שגיאות התכנות. בוחרים את התצורה מתוך חלון. המטרה של הבנייה, כמתואר בתרשים 2. כברירת מחדל, קבצי הפלט של נופור השגיאות וקבצי הביניים שנוצרים בתהליך, נשמרים בתת-הספריה פַט6ם; קבצי 6 נשמרים בתת-הספריה 86/6356. תוכל לשנות את נתיב שמירת הקבצים באמצעות הכרטיסיה 66613 שבתיבת הדו-שיח 501 6פ[סזק. תוכל לערוך תצורה אישית מותאמת באמצעות בחירת האפשרות פחסטְּּזפַחס0. מתפריט 86 של ++6 ומטפוש. הפעלת פקודות המאקרו לאבחון שגיאות פקודות המאקרו 1865 של סביבת היישום שימושיות במיוחד למעקב אחר פעילות. התוכנית (דיאגנוסטיקה, אבחון שגיאות). הן מחייבות להפעיל את רכיב העקיבה (3009ז1), ור ג אפשרות המחדל. אם אינך מבחין בפלט 1805 מהתוכנית, ודא ספה באו 6310 תחילה שאתה מריץ אותה במצב ניפוי (ַ600פ) ולאחר מכן הר את תוכנית השירות. 0% ד. אם תסמן את תיבת הסימון וד וטחש, תראה ש-8/688ד תכניס את. המשפט 900080166 = 1 בקטע [פשטפסחסָטום]. בקוב !וא שבספריה 6008 (אין זה מערך הרישום פופה) תוכל לנצל את 058 הד כדי לקבל פלטי אבחון של 56וא, וג כדי לשלב מידע מתוך מערך ההודעות, 015, מסד נתונים והאינטרנט. הבנת הקבצים המהודרים מראש כאשר אשף היישומים מחולל את היישום, הוא מארגן הגדרות מתג וקבצים עבור כותרים מהודרים מראש (66/!₪6360ק60זק). אתה חייב להבין באיזר שיטה מערכת הבנייה של היישום מטפלת בכותרים מהודרים מראש, כדי שתוכל לנחל את הפרויקטים שלך בצורת ועילה. הערה; | לשפת ++6 וגטפוץ יש שתי יימערכות" כותרים מהודרים מראש מערכת אוטומטית ומערכת ידנית. כותרים מהודרים אוטומטיים מופעלים באמצעות מתג ההידור %+/, ושומרים את הפלט שמפיק המהדר בקובץ דמוי מסד נתונים. כותרים מהודרים ידניים מופעלים באמצעות המתגים %6/ ו- ט/, ותופסים מקום מרכזי בכל הפרויקטים שנוצרים על ידי אשף היישומים. כותרים מהודרים מראש מייצגים "תמונות בוק" שצולמו לאחר שורה מסוימת של קוד המקור. בתוכניות של ספריית 6*%, תמונת הבוק מצולמת בדרך כלל מייד לאחר המשפט הבא "ת 56035%" 43061086 קובץ .500% מכיל משפטי 4/0006 שמיועדים לקבצי הכותר של ספריית %56. תוכך הקוב תלוי באפשרויות שבחרת בעת הפעלת אשף היישומים, אך תמיד יכלול את המשפטים הבאים. <ג!. 50618 3> 301086 <. 6א85%8> 43001086 אס אתה עובד עם מסמכים מורכבים, קובץ .510% יכיל גם את ההגדרה הבאה. <ג. 45%016> 43001086 ואס אתה עובד עם. חסטפוחסזטה או עם פקדי א6אא, הקוב יכיל גם את ההגדרה. <ה. 85%0190> 41061086 אס אתה עובד עס הפקדים המשותפים של 4.0 זשוסוקאם זסחזסוח1, הקוב יכיל גם את. ההגדרה. <5. 45846681> 166סה1 2 זקא2חווו ומבוא ל-ספו מפעס לפעס תזדקק לקבצי כותר אחרים, כמו למשל הכותר הדרוש למחלקות אוסף. מבוססות-תבנית (085565 ח6600ו601 8566פ-6זכווחפ!), שפוני אליו באמצעות המשפט. <ה. 085801 > 1066סה1ף קובץ המקור 510.60 מכיל הגדרה אחת בלבד: ".54856" 86ט1סה1ף הוא משמש ליצירת קובץ כותר מהודר מראש בספריית הפרויקט. כותרי הספריה של 80 הכלולים בקובץ הכותר ח.5%03 אינם משתנים לעולם, אך תהליך ההידור שלהם. נמשך זמן רב. מתג המהדר 6+/ שמיועד עבור 500% בלבד, גורם ליצירת קוב כותר מהודר מראש - 868 (ז140306 66ווקוח0פזק). המתג +/ שמיועד לכל שאר קבצי קוד המקור, גורם לשימוש בקובץ 964 שקיים. המתג ִז/ מציין את שם קובץ 04 שהיה מקבל את שם הפרויקט (בתוספת הסיומת 90%) בספריית פלט המטרה. תרשים. 5 מתאר את התהליך בשלמותו. אשף היישומים משלב עבורך את המתגים %6/ ו- טצ/, אך תוכל לשנות זאת אם ברצונך בכך. ניתן להתאים הגדרות שונות של מתגי המהדר לקבצי מקור שונים. בכרטיסיה ++6/6 שבתיבת הדו-שיח 5פַח5600 6(סזק, תראה את המתג 6/ כאשר תבחר את 0ס.%/50 בלבד. הגדרה זו מבטלת את ץ/ שהוגדר עבור המטרה.. היה ער לעובדה שקבצי 76% הם גדולים, 508 הוא גודל טיפוסי. אם לא תנהג בוהירות, תמלא את הדיסק עד אפס מקום. תוכל לשלוט במצב על ידי מחיקה תקופתית של ספריות ,ַטטטס של הפרויקט, או לנצל את אפשרות המהדר ט*/ בדי לנתב. קבצי 0 לספריה משותפת. .א תופיטע ופ" ו 6 ותו זס! תופק 5015 "ומק" / תרשים 5: תהליך יצירת קובץ כותר מהודר מראש של ++6 |מטפוש. ספה בשחו 633 שתי דרכים להרצת תוכנית התוכנה ++6 וגטפו מאפשרת להריץ את התוכנית באופן ישיר (בעורת הקשה על 55+ס), או באמצעות תוכנית ניפוי השגיאות (בהקשה על 55). הרצה ישירה מהירה. יותר, מכיון ש- ++6 ופפ אינה צריכה לטעון את תוכנת הניפוי (סַַ600פ) לפני כך אם אינך רוצה בהודעות האבחון, או אינך רוצה להציב נקודות עצירה בתוכניתת (פזחוסק87636), הפעל את התוכנית באמצעות צירוף המקשים 00+55, או לח על לחצך "סימן הקריאה" שבסרגל הכלים ₪/8. עד פה היתה היכרות עס 6*. אם בחרת להמשיך בלימוד 116 ונושאאים מתקדמים. אחרים בתכנות בסביבת 605חו/, הוצאת הוד-עמי מציעה לך שני ספרים. > 6 ++6 וגטפו סדנת לימודד + המדריך השלם 6 ++6 ופפו אתה בוודאי שואל מה ההבדלים בין השניים! ובכן, שניהם עוסקים ב-%0/. אס הספר "6 ++6 וגטפוץ סדנת לימוד'י ילמד אותך נהיגה, או הספר ייהמדריך השלם לשפת 6 ++6 ומטפו'י ילמד אותך גם נהיגה וגם מכונאות רכב. לשני הספרים מצורף תקליטור ובו כל קוד המקור של הדוגמאות שבספר. לשני הספרים אינדקס ענק באנגלית בו תוכל למצוא כל מושג, מונח, פונקציה או מחלקה. תוכל לעיין בתוכן העניינים המלא של ספרים אלה ופרק לדוגמה דרך הקטלוג הנמצא בתקליטור המצורף לספר זה, או באתר האינטרנט של הוצאת הוד-עמי בכתובת [-00-3001.00ח- אא נקצות. 4 זא32חווו ומבוא ל-ספו אינדקס א6סחו . ממשק תכנות יישומים 247 ,20 (7565פזח1 סז הסטב16קק )-1קת, 9 של 32חו מסגרת יישום 620 ,614 חבז חס בסוופסה, אשף היישומים 606 זופת ספריית התבניות האקטיבית 595 זא 8 7 מפת סיביות 160-178 ,28 קמווט מצב העבודה המוחלט. 165 0066 פזטספט ערכת צבעים. 174 50606 סוס ב יצירח תלוית התקן 170 מז מצב העבודה המקודד 164 ₪006 060666 6 ה קודי רשת 173 60655 1906 500114 6 הסיביות של בוקאי 63 וחזמקי ז0 פאנו מברשת 278 ,247 תפז 6 וו 6 שגרת משוב מסייימת 558 6חטטסז ח00וקוחס6 31066 פונקציית משוב 566 חס6חט 6310866 תלוי רישיות 472 5005006 6356 תווי בקרה 550 זזה עריכה 551 ]מוחזט תיבת סימון 196 ספ 66% 4 מפסק 5 635 סקדניא‎ אשף המחלקה. 606 095902510 שטח הלקוח 237 163 זח6ו0. ערכת צבעים 174 500606 010 פקדים משותפים 349 ,336 ,304 60011005 חסוחוחסם. ו 6 וח פס התקדמות 347 ,59 הז 9 ופפ 0 שורת המצב 351 זפ וז 8 8 חלון המצב. 349 0060 זפ 3 9 רב כרטיסיה 359 ו 0 רד 07 ב 7 ,362 אנדס ואצ סרגל הכלים. 306 1001081 תוויות לחצן 378 ,322 1001005 פס עקיבה 342 זהסא0זו 5 5 6 תצוגת עץ 378 פוא ספ 8 הודעות 383 ,380 993005סו מעלה-מטה 336 ח600-פט 6 סגנון 337 50/6 הודעה 338 9906פסו חלון 305 סחי מהדר 604 ++6/) ,שווקס קבצו 88/86 065 ₪0 תנאי תחרות. 535 865 ח6000ח60 6 כו ומבוא ל-ספו פקד 196 ,22 |0חס6 (ראה סט 660% )‏ 196 אספ 0606 כללי ‏ 22 סוחס סטטי 205 506 כפתור רדיו 206 חסווטם 18000 פ ניפוי שגיאות 634 ,605 00 השוואה 631 16555-פָ090 6זהקוחס 1 מתארים 91 6505 הקשר התקן 132 ,130 ,66 ,64 9ח00 66 1 אחזור 18 0 ו קובץ -על 179 618066ח ב 6 התקנים 481 060605 1 ,483 1030006 אובייקט התקן גרעין. 544 066% (6ז6א פסווסם. תיבת דו-שיח 99-121 ,28 804 ומוה 5 אתחול נתונים. כ סוגי פקדים 106 ,103 06/ 6000005 יצירה 110 ₪815 7 אספחסומו יצירת מפות סיביות 170 מז 1 ,170 109018 1 000 מקלדת 109 50376ש%6 (ראה אספ ז8/). 122 אספ 18% 0 ,108 0958005 לולאת הודעות 108 = סו מודאלי 100 ₪068 לא מודאלי 439 ,367 ,100 !063וח-חסח סגנונות 103 506 תבנית. 104 8וגקוחפ) ספריה 515 ץ00001. 5 6 אינדקס = 637 7 3 ספריות בקישור דינמי 600 ,433 ,21 4 מסמך ותצוגה. 619 אטו-וחטוטססס 5 תיבת עריכה. 126 אספ ו661. 0 שגיאה פטלית. 466 זסו6 ומומ קוב ממופה זיכרון 435 קבוח זסוחסו ,6 קבצים 481 865 תכונות 511 ,510 פסוטסושו3 1 2 סגירת קובץ 503 105608066 9 0 0 0 כ 0 7 0006 3 3 כ 8 ידית 494 6 מיפוי 504 וסבוה וחוור 4 פ 0 8 ו כ פס 06004 8 6 כ כו תיקיה 25 1000 8 כו ומבוא ל-ספו גופנים 256 10015 5 ,264 1090000 5 3 )!וזב )חס וחטת 6 כ 26 7 פונקצוה. הסח 4 כו 7 ,168 ופא משוב 181 ,76 ,44 3090 8 3 6 9 6 60607 בי 8 ו 318701 5 כ 8 1 ,483 03006 4 פִ 0 5 ,264 1030000 5 6 7 0 2 0 0 0 5 2 9 6 אינדקס = 639 39 359 8 = 0 7 3 8 3 ו 0 פפום 2 8019046001 0 2 6 ,465 107078063560000ח ות 3 65ו !?)חס וחטת 002 ב 3 ב 0 כ ו 8 07 6 50005 086 08 50 0016 8 0 0 ב 1 3 3 6 8 7 8 בכ 6 ,247 1510060960 1562 ,149 005 כ 0 הכפהו ומבוא ל-ספו 8 2 0 1 67 7 כ 5 ,392 1063181106 181106מסו6. 3 3 0 0 083 08 7 ב רו נ 0 רד 1 1007 0 8 ו 0004 3 10990080 בכ כ בכ 6 פס 2 זפוט 0 6 ,594 690866 סה ץח פסה רל 006 5 8 6 641 סקדניא‎ 2 ,257 ,247 5010001606 7 ,198 ,124 5000001007000695306 6 8 2 4 6 02 ב 0 8 8 5 501506 7 6 0500/1806 8 8 0 0 3 0 05003 0 ד ד טור 7 8 2 ,470 1016006005 זס=) האר 01607 חלו 50 ,37 חאו 8 ,42 ,36 חומ!וחוער כו 6 ,554 005% פונקציית משוב 566 36%פו631 ,100000 פונקציית המתנה ‏ 469 08 ,0000 6 גלריה 609 ץמ ממשק התקן גרפי 626 ,129 29 01 גרפיקה 277 חקו קואורדינטות 277 600600806 2 זקא2בחווו ומבוא ל-ספו עצמים אישיים 283 0966 חזסופטס. כ אליפסה ופרוסות עוגה. 280 5105 סוק 8 56כוו1 0 וו ציור קשתות 279 6ב 61006 9 מצב מיפוי 294 ,291 66סוח וסבוה 0 2 בכ עטים ומברשות 282 ,281 ,278 0105065 8 פחסם רל 2 21 פוה פיקסל 278 |שאו 8 קווים 278 1065 8 מלבן 1601006280 כ אזור התצוגה 293 ,291 סאוו 3 ב ממשק משתמש גרפי 27 601 1 ידית 38 !חח 1 סמל 184 ,160 ,28 חסשו 6 7 ב 10 עורך תמונות. 185 9007 ססָוחו רו 1 1 05 ה קלט זופתו תור 21 065 643 סקדניא‎ 4 קלט פלט בחלונות 481 זטקזוס זופח1 התרעות בעיבוד אסינכרוני 554 פוספוחטוב תוכנית 559 מז תחת ד 005 חואו 556 חור יציאות מסיימות 553 2065 חסווסוקוחס6 ממשק 20 87006וח1 שיטת הקריאות. 20 0311-89560. בסגנון סייר פוסחואו 33 50/06-זסזסוקאט התקנים גרפיים. 29 601 תכנות יישומים 20 ַא משתמש גרפי 27 601 מרובה מסמכים 32 זסוו מסמך בודר 32 501 פסיקה 20 )קטזזפוחו תוכנה 20 5000036 אֶ מקש ץ%6 מקש וירטואלי 58-61 /6א ופנטזוי מקש מהיר 93 68 000613107 מקש קיצור 94 68 500000 תגובה לפעולות המקלדת 57 960005 %6/00816 1 5 21 זשאחוו 3 ,122 0% שו אתחול 124 6קוג0וח3 הודעה 1000 הודעה 47 ,37 99306 א כ 07 אבחון שגיאות 631 06006 7 א80חסומו עטים 281 605 מצב מיפוי 131 66סוח ופסוה 29164 חקפ 4 ממשק מרובה מסמכים 621 ,32 סו קת32ח/וו ומבוא ל-0פו זיכרון 600 ,391 /זסוחסוח יצירת הקשר התקן 140 076306 ,)חס 68אסם 7 ב ערימות 394 6905 9 5 ,392 1063181106 181106מסו6. 3 0 0 0 3 טסו 08 דפים שמורים 415 מָּ 6זהף זיכרון וירטואלי 393 /זסחסחח ופנסזוי ור 7 8 מודל הזיכרון 391 ₪066 32חו 1 זא 32חוע זר תפריט 87 ,28 טחסוח 4 שורת התפריט 31 זפ 7 2 8090461 107 כ מבנה 90 ,89 9000016 סוגי תפריטים 5/06/89 טחפוו 1 סוה הודעה 598 ,35 ,28 0095906 8 00108 חסחוחס. 0 108 80% פטומו 7 01006 תגובה לפעולות המקלדת 57 הווה 6/9036 לולאה 47 ,37 1005 תגובה לפעולות העכבר 53 860005 ספטסוח. 2 ספא ור טסו | 645 סקדניא‎ 2 ,71 דוזאק ואצ 0 5126 ואצ 5 תשווד ור ו 504 ור תיבת הודעה 82 ,81 80% 506פו 8 ,160 0019016 9 רשימה מפורטת של קבצי-על משופרים 181 61306 600 חבחחס 816זסוחטחס 1 1016ס וחט ה 0 כ הקשר התקן מיוחס 179 0006 080466 66616005 ספריית מחלקות התשתית של חלונות ‏ 609 ,595 שו מיפוי 618 וסבוה פעולות העכבר 27 800005 ,ספטסוח ריבוי תוכניות 20 הַחווחוחּזסַסזקט וטוה (ראה גם 0005505זק). ריבוי משימות 420 ,20 פ01856שו א אסינכרוני 6פשח0זח6ח/5-חסא 2 אירוע גרעין 0 עיבוד התרעות קלט/פלט 554 1 סופמוזסו3 אובייקט התקן גרעון 544 0966 66061 סועסם. קלט/פלט 541 ס1 2 וס מ מ 56 ,554 110060 600166 מבנה 543 0088130060 ,6זנססטו 0 דפים שמורים 415 זפטו0 ,סק פרמטר וזה 2 5 2 ההודעה ווצס+פא %// + חזפזמקו 1 טופ אחז 4 ,83 ,82 שפד פונקציה. 42 ()חומ!אחווצ 6 321חו/ו ומבוא ל-ספו צינורות 481 65 8 6 0 0 דגלי אבטחה 492 00065 5006 פוקסל 278 שאו 1 פטס 3 60 09006 81 חוזק תהליך ,20 955ססזק תהליכים ומטלות 420 116905 8 0099905זקן 4 תזמון מטלות אתחול 443 696 5 ,434 095ססזק 000 מנותק 436 00/30000. קובץ ממופה זיכרון 435 6 קקוח טסוה עיבוד של אירוע פשוט 478 1030080001 יצירת מוטציה 472 064ט010300% שימוש בסמפורים 475 0630500080006. = 0 תיקיית קישור דינמי 433 וס 6 ,465 1670700631560000ח 3 0005 086 08 60 007 7 ו 8 עיבוד חריגים שלא טופלו 450 646000005 60ו6חהחחט הווח 0100 קביעת ויהוי 453 ס1 שלבי יצירה. 444 1666 8 ,421 ,420 !₪066 1090631 ריבוי מטלות 439 ,434 6905זח) 6וקטוטוח צורך 438 0660 מחלקות עדיפות 455 695565 /פוזסוזן רמות עדיפות. 455 8466! /שוזסוזן זמן מעבד 440 0006 069590ז 12 פסה 647 סקדניא‎ 418 מתאר אבטחה 430 06500001 560006 הפעלה ברצף 431 5018/26 8 8 גודל המחסנית 444 506 180% ד סינכרון מטלות 463 חסווהקחסוח6חץ5 636זח+ 7 סינכרון של 2 מטלות. 607 0 סינכרון מטלות רבות. 0 זמן 447 ,446 ₪6 7 446 0 עדיפות מטלה 442 סז 636זח+ פס התקדמות. 347 0/5ח60 ,080 55זַסזן א כפתור רדיו 206 חסצוטט 1900 55 קבצי 88/86 065 ₪0 משאבים 481 ,88 889000005 תכנות. 599 חַחווחוהּזַסזק ספ מהדר 632 ,88 פוקס מותאס אישית 580 וזסופטט עורך 628 ,88 60007 ות 5 קובץ 578 ,88 06 8 שפת תטריט 88 500% 5 שפת תסריט 88 5006 פס גלילה 214 31 ו(500 פעיל/לא פעיל 233 6530/6ַ8ח0. 5 06 8 כ כ 6 0150018090 3 0500 קא32ח//ו ומבוא ל-80ו 2 ןאק וע 0 125-ו ממשק מסמך בודד 621 ,32 501 דפדפן המקור 607 ז6פטסזט 500108 בקרת קוד מקור 608 !0000 0066 500066 מצב סיו 556 ופוס ,513005 (ראה 6005 הסוחוחס6) 351 זמ 6 )וו 066% (ראה 605 הסוח חס )6‏ 349 חר טבלאות מחרוזת. 579 78065 50 0 מבנה ‏ 543 0/58120060 ,500006 סגנון חלון 589 ,37 אחא ,50/06 פסיקת תוכנה 20 )הו 016 שורת המצב 31 ,28 087 50005 מונה השהייה 462 זחטס6 6ח09פט5 ד (ראה 0/5חס6 חסוחוחס )6‏ 359 סמו טבלאות מחרוות 579 הָ50 ,סוד תבניות 99 65)מ|קוחס? הטיפול בטקסט 237 אפ קואורדינטות 237 600760818 (ראה גופנים) 256 5זחט 2 2 ו 2 צביעה מחדש 246 1603001 8 2 8 2 כ ₪ חלון וירטואלי 246 אוסנחואו |מטטזוי (ראה 0609905זק) מטלה ‏ 420 ,34 ,20 /680זת1 קוצב זמן 76 חוד סרגל כלים 306 ,28 זה ו100 60008 ,10015 (ראה 605 חסוחוח60) 378 סו ור טוג חלון 37 000 6 649 סקדניא‎ ט 007 0 051 ,אזאט צ משתנה תחיליות 51 א60זק ,6וסמח מהי תצוגה 620 אפוצ מקש וירטואלי 58-61 65 ופנטזו זיכרון וירטואלי 393 ץזסוחסוח |הטוחוי מיפוי קוב 504 חַחופְקבוח 6 חלון וירטואלי 247 ,246 חואו |הנמזור יצירה 248 0815 שימוש 249 6 1 ++6 ו טור 08 9000506 2 סד עורה מקוונת 607 |פח סוחס 0 שו מחלקת התשתית של חלונות. 595 אא 38 9 השוואה 631 090-1655 6זהקוחס ב 7 6 טרגלי הצד 4 תזמון מטלות חלון 060 מחלקה (סגנון/סוגו. 43 ,37 (6פ/ם50/6) 0855 קואורדינטות 237 600760915 פונקציה 50 ,37 הסח 9 0 רגיל 30 120030 סגנון 589 56 (ראה חלון וירטואלי) 246 |זוצ 7 1 פלט טקסט 246 6% זטפוטוס 0 321חו/ו ומבוא ל-ספו ונת חואו 598 0 0 0 מרכיבי חלון מחלקות עדיפות 455 ₪955865 /חוזסוזם תוכנת ד חואו 596 ,554 ,463 ,462 ,461 ,432 ,425 ,401 ,23 ד חור התרעות קלטופלט 556 1 ופוסו 6 כ ממשק בטגנון סייר 33 00161-50/66ום הגדרת גודל שטחי עבודה. 544 0000185 506 56-ַחזסאר 0515065 651 סקדניא‎ 1 דחו קטלוג ינואר 2017. אינטרנט - מפתחי אתרים/גרפיקה. אמא, אבא - בניתי אתר באינטרנט (1/ד). הגדל את הכנסות העסק שלך באמצעות פרסום בגוגל 80105 800818. 5 המדריך לבניית אתרים ולמערכות 88/, הדור הבא -- מהד' 2. |מוחס)ט ד 288. פד סדנת לימור. ו סדנת לימוד מדריך 4 ₪100 דט .50 5 880.88 סדנת לימוד בשפות 0% ו-8/' תכנות. חס 0006 - מדריך מעשי לפיתוח תוכנה. לחפש באגים, מדריך מעשי לבודק תוכנה, מהד' 3 0 188 סדנת לימוד. ללמוד 0 - מהד' 3. שפת אסמבלי למחשב האישי, מהד'2. יסודות התכנות ב-8/ לתוכנת [08א, מהד' 4. 0 - חומרה, תוכנה ורשתות. מדריך 180108 ואבטחת מידע, מהד' 2. מדריך חומרה ותוכנה לטכנאי 0 - מהד' 5 (כולל חלונות 7/8 מדריך רשתות לטכנאי 0>] ולמנהלי רשת - מהד' 4. חור 1 0008חו/? מדריך למשתמש 8 4/6065 מדריך למשתמש. 7 60%65חו/+ צעד-אחר-צעד. אטאוו נא 1 למתקדמים, טיפים, טריקים ותכנות ב-88511. * מחיר מומלץ לצרכן כולל מע"מ: כוללן פס ת.ד. 6108 הרצליה 46160 הזמנות באתר ו.1.00ה3- סח.עצאועש |00.1. והחה-00חפ6סזחו היכנס לאתר להתעדכן בספרים החדשים ובמחירי המבצע בהוצאה תוכן עניינים ופרקים לדוגמה |!. 0ס. ווחב-₪סח.עושושצ מחיר" 29 29 1589 159 189 19 99 19 19 99 19 59 55 159 19 219 19 19 19 19 גרפיקה. 85! -- ספר הדרכה ותרגיליםם אינדיזיין.-- ספר הדרכה ותרגילים 80ז58!] - ספר הדרכה ותרגילים. סח105סחק צעד אחר צעד (צבע מלא, למתחילים), מהד' 3 כריכה קשה 0ח105סחק צעד אחר צעד (ש/ל, למתחילים), מהד' 3. מדריך לתוכנת העיצוב והאנימציה אםוח 368 (2 כרכים) שסופפס ישומי סטטיסטיקה בגיליון אלקטרוני 5600 סטטיסט. קה יישומיתת טבלאות ציר = ניתוח נתונים חכם. יסודות התכנות ב-8/ לתוכנת 061א5, מהד' 4. 6 400889 צעד אחר צעד. 1 6 06 צעד אחר צעד 6 | צעד אחר צעד. סק צעד אחר צעד. 0 0/0 צעד אחר צעד 0 300888 סדנת לימודד עוד ספרים בגרסאות קודמות (2007 ו-2003) ניתן למצוא באתר הוד-עמי ניהול, כלכלה ושונות. לחפש באגים, מדריך מעשי לבודק תוכנה, מהד' 3 ניהול ממוקד לעשות יותר עם מה שיש (כריכה קשה) - מהד' 4. לי זה עולה יותר (תמחיר) (כריכה קשה) - מהדי 3 מערכות מידע. 801 07806 יכולות מתקדמות. 5 (חפ51ע5 1515 [8180091108) -- ספר לימוד בסיסי נתונים ושפת -801 - עקרונות ועיצוב. ניתוח מערכות מידע כולל מתודולוגיית ה- וט המדריך העברי השלם וט ספרים דיגיטליים לרכישת ספרים לצפייה בפורמט 0 היכנס לאתר לקטגוריה "ספרים דיגיטליים" קבצי תרגול לספרים קבצי תרגול לספרים שונים תמצא באתר בקטגוריה "קבצי תרגול לספרים" * מחיר מומלץ לצרכן כולל מע"מ. קטלוג 1/2017 כוללן פס היכנס לאתר להתעדכן בספרים החדשים ובמחירי המבצע בהוצאה תוכן עניינים ופרקים לדוגמה |!. 00 ווח9-₪סח. עוצעצ מחיר* ₪ 12 ₪ 159 ה 259 98 7 ₪ 5 19 58 129 98 98 159 169 18 129 2099 199 19 229 9