סטים בסדר, מערכים נהדרים.
נניח שאנחנו רוצים ליצור שלושה מערכים חד מימדיים עבור 50 חברים בקהילת התכנות שלנו. המערך הראשון מיועד לשמות, השני לדואר אלקטרוני והשלישי למספר העלאות (רכיבים או יישומים) לקהילה שלנו.
לכל מערך (רשימה) היו אינדקסים תואמים והרבה קוד לשמירה על שלוש הרשימות במקביל. כמובן שנוכל לנסות עם מערך תלת מימדי אחד, אבל מה עם הסוג שלו? אנו זקוקים למחרוזת לשמות ודואר אלקטרוני, אך מספר שלם למספר ההעלאות.
הדרך לעבוד עם מבנה נתונים כזה היא להשתמש בדלפי מבנה שיא.
חבר = הקלטה...
לדוגמה, ההצהרה הבאה יוצרת סוג רשומה בשם TMember, זה בו נוכל להשתמש במקרה שלנו.
בעיקרון, א מבנה נתונים מקליט יכול לערבב כל אחד מהסוגים המובנים של דלפי כולל כל הסוגים שיצרת. סוגי רשומות מגדירים אוספים קבועים של פריטים מסוגים שונים. כל פריט, או שדה, הוא כמו משתנה, המורכב משם וסוג.
סוג ה- TMember מכיל שלושה שדות: ערך מחרוזת שנקרא שם (להחזקת שם חבר), ערך מסוג מחרוזת קרא דואר אלקטרוני (לדואר אלקטרוני אחד), ומספר שלם (קרדינל) שנקרא פוסטים (כדי להחזיק את מספר ההגשות שלנו קהילה).
לאחר שהגדרנו את סוג הרשומה, נוכל להכריז על משתנה שהוא מסוג TMember. TMember הוא סוג משתנה טוב באותה מידה למשתנים כמו כל אחד מהם
דלפי 'זה סוגים מובנים כמו מחרוזת או מספר שלם. הערה: הצהרת סוג TMember אינה מקצה זיכרון כלשהו לשדות שם, דואר אלקטרוני ופוסטים;כדי ליצור למעשה מופע של רשומת TMember עלינו להכריז על משתנה מסוג TMember, כמו בקוד הבא:
כעת, כשיש לנו רשומה, אנו משתמשים בנקודה כדי לבודד את השדות של DelphiGuide.
הערה: ניתן לכתוב מחדש את פיסת הקוד שלמעלה באמצעות עםמילת מפתח.
כעת אנו יכולים להעתיק את ערכי השדות של DelphiGuide ל- AMember.
הקלטת היקף ונראות
סוג הרשומה שהוכרז במסגרת ההכרזה על טופס (סעיף יישום), פונקציה או נוהל, יש היקף מוגבל לחסימה בה הוא מוכרז. אם הרשומה מוצהרת בחלק הממשק של יחידה, יש לה טווח הכולל יחידות או תוכנות אחרות המשתמשות ביחידה במקום בו ההכרזה מתרחשת.
מערך רשומות
מכיוון TMember פועל כמו כל סוג אחר של אובייקט פסקל, אנו יכולים להכריז על מערך של משתני רשומה:
הערה: כך תעשה זאת להכריז ולאתחל מערך קבוע של רשומות בדלפי.
רשומות כשדות שיא
מכיוון שסוג רשומה הוא לגיטימי כמו כל סוג אחר של דלפי, אנו יכולים להיות שדה של רשומה להיות רשומה עצמה. לדוגמה, נוכל ליצור את ExpandedMember כדי לעקוב אחר מה שהחבר מגיש יחד עם מידע החברים.
מילוי כל המידע הדרוש להקלטה אחת כעת קשה איכשהו. תקופות נוספות (נקודות) נדרשות כדי לגשת לשדות של TExpandedMember.
הקלט בשדות "לא ידועים"
לסוג הרשומה יכול להיות חלק משתנה (אסור להתבלבל עם משתנה מסוג Variant). רשומות וריאנט משמשות, למשל, כאשר אנו רוצים ליצור סוג רשומה שיש לו שדות עבור סוגים שונים של נתונים, אך אנו יודעים שלעולם לא נצטרך להשתמש בכל השדות ברשומה אחת למשל. למידע נוסף על חלקי וריאנט ברשומות תסתכל על קבצי העזרה של דלפי. השימוש בסוג רשומת גרסה אינו בטיחותי ואינו נוהג תכנות מומלץ, במיוחד למתחילים.
עם זאת, רשומות גרסאות יכולות להיות מועילות למדי, אם אי פעם תמצאו את עצמכם במצב להשתמש בהן.