אחד מ שפת דלפי תכונות שלא נמצאות בשפות מודרניות אחרות היא הרעיון של סטים.
דלפיסוג סט הוא אוסף ערכים זהים סוג סידור.
קבוצה מוגדרת באמצעות סט של מילת מפתח:
סוגי מוגדרים מוגדרים בדרך כלל באמצעות סוברינגס.
בדוגמה שלעיל, TMagicNumber הוא סוג תת עוצמה מותאם אישית המאפשר למשתנים מהסוג TMagicNumber לקבל ערכים בין 1 ל- 34. במילים פשוטות, סוג משנה הוא מייצג תת-ערכה של ערכים בסוג רגיל אחר.
ערכים אפשריים מסוג הקבוע הם כל קבוצות המשנה של סוג הבסיס, כולל הסט הריק.
מגבלה על סטים היא שהם יכולים להכיל עד 255 אלמנטים.
בדוגמה לעיל, סוג ערכת ה- TMagicSet הוא קבוצה של אלמנטים של TMagicNumber - מספרים שלמים בין 1 ל- 34.
ההכרזה TMagicSet = סט TMagicNumber שווה להצהרה הבאה: TMagicSet = סט של 1..34.
הגדר משתני סוג
בדוגמה לעיל, המשתנים ריקMagicSet, oneMagicSet ו anotherMagicSet הם קבוצות של TMagicNumber.
ל להקצות ערך למשתנה מסוג סט, השתמש בסוגריים המרובעים ורשום את כל האלמנטים של הסט. כמו ב:
הערה 1: כל משתנה מסוג סט יכול להחזיק בערכה הריקה, המסומנת על ידי [].
הערה 2: לסדר האלמנטים בסט אין משמעות, וגם אין זה משמעות לאלמנט (ערך) להיכלל פעמיים בערכה.
מילת המפתח IN
כדי לבדוק אם אלמנט כלול בערכה (משתנה) השתמש ב- IN מילת מפתח:
הגדר מפעילים
באותה דרך שתוכלו לסכם שני מספרים, תוכלו לקבל קבוצה שהיא סכום של שני קבוצות. עם סטים שיש לאירוע שלך יותר מפעילים:
- + מחזירה את האיחוד של שתי מערכות.
- - מחזיר את ההפרש של שתי קבוצות.
- * מחזיר את הצומת של שתי קבוצות.
- = החזר אמיתי אם שני סטים שווים - יש אותו אלמנט.
- <= חוזר נכון אם הסט הראשון הוא קבוצת משנה של הסט השני.
- > = חוזר נכון אם הסט הראשון הוא קבוצת העל של הסט השני.
- <> חוזר נכון אם שתי קבוצות אינן זהות.
- IN מחזיר אמת אם אלמנט נכלל בערכה.
להלן דוגמא:
האם הליך ShowMessage יבוצע? אם כן, מה יוצג?
להלן יישום פונקציית DisplayElements:
רמז: כן. מוצג: "18 | 24 |".
מספרים שלמים, דמויות, בוליאניים
כמובן, בעת יצירת סוגי ערכה אינך מוגבל לערכי מספר שלם. סוגים מסודרים של דלפי כוללים ערכי אופי ו בוליאני.
כדי למנוע ממשתמשים להקליד מקשי אלפא, הוסף שורה זו בסמל OnKeyPress של בקרת עריכה:
סטים עם מספרים
תרחיש נפוץ בקוד דלפי הוא לערבב גם סוגים ספורים וגם סוגים מוגדרים.
להלן דוגמא:
שאלה: האם ההודעה תוצג? תשובה: לא :(
מגדיר במאפייני בקרת דלפי
כאשר עליך להחיל "מודגש" על הגופן המשמש בבקרות TEdit, אתה משתמש במפקח האובייקט או בקוד הבא:
המאפיין סגנון הגופן הוא מאפיין מסוג מוגדר! כך הוא מוגדר:
אז, סוג המונה TFontStyle משמש כסוג הבסיס לסוג הסט TFontStyles. המאפיין Style של מחלקת TFont הוא מסוג TFontStyles - לכן מאפיין מסוג מוגדר.
דוגמא נוספת כוללת את התוצאה של פונקציית MessageDlg. פונקציית MessageDlg משמשת להעלאת תיבת הודעה ולקבלת תגובת המשתמש. אחד הפרמטרים של הפונקציה הוא פרמטר הכפתורים מסוג TMsgDlgButtons.
כפתורי TMsgDlg מוגדרים כסט של (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIngnore, mbAll, mbNoToAll, mbYesToAll, mbHelp).
אם אתה מציג הודעה למשתמש המכילה לחצני כן, אישור וביטול ואתה רוצה לבצע קוד כלשהו אם לחצו על כפתור כן או אישור, תוכל להשתמש בקוד הבא:
מילה אחרונה: הסטים נהדרים. ערכות עשויות להראות מבלבלות בפני א דלפי מתחיל, אך ברגע שתתחיל להשתמש במשתנים מסוג קבוע תגלה שהם מספקים הרבה יותר מאשר זה נשמע בהתחלה.