דוגמא 3 – תיבות רשימהבדוגמא זו ניצור דיאלוג עם 2 כפתורים – Add, וRemove-. כמו כן ניצור תיבת טקסט אחת, רשימה אחת וכפתור שישמש לסגירת הדיאלוג. כאשר המשתמש ילחץ על add נוסיף את הטקסט שבתיבת הטקסט לרשימה. כאשר המשתמש ילחץ על Remove, נבדוק האם נבחר פריט ברשימה, ואם כן נמחק אותו. נלמד תוך כדי הדוגמא על הפונצקיה $did והפרמטרים השונים שלה, המאפשרים לנו לקבל מידע על הפקדים השונים שיצרנו. דבר ראשון, נעצב את הדיאלוג: dialog dlgLists { לצורך ביצוע הדוגמא, עלינו להיות מסוגלים לקבל מידע על הפקדים שיצרנו. למשל, עלינו לדעת איזה, אם בכלל, פריט ברשימה נבחר כרגע. כמו כן נרצה לדעת מה הטקסט הנוכחי בתיבת העריכה, על מנת שנוכל להוסיף אותו לרשימה. לעזרתנו באה הפונקציה $did. צורת הפנייה לפונקציה הזו הוא $did(name,id,N) . name הוא שם הדיאלוג בו נמצא הפקד. id זהו הid של הפקד. N הוא פרמטר אופציונלי, ואנו מוסיפים אותו אם אנו רוצים להתייחס לשורה N ברשימה או בתיבת בחירה. על מנת לגשת לתכונות השונות של כל פקד, מוסיפים . (נקודה) אחרי הפונקציה $did ואז את הערך המבוקש לנו, מתוך הערכים הבאים: text – מחזיר את הטקסט המופיע על הפקד בשורה הנוכחית או בשורה N אם מוגדר N. למשל, $did(dlgLists, 2).text יחזיר לנו "Add". אם לא קיים טקסט, נקבל בחזרה את הערך $null len – מחזיר לנו את אורך הטקסט המופיע בשורה הנוכחית או בשורה N $did(dlgLists, 2).len יחזיר לנו 3. (בטקסט “Add” יש 3 אותיות). lines – פרמטר זה יחזיר לנו את מספר שורות הטקסט שיש בפקד. sel – מחזירה את מספר השורה שנבחרה ברשימה או בתיבת בחירה. seltext – מחזיר את הטקסט הנוכחי שנבחר בפקד כגון רשימה או תיבת בחירה. state – מחזיר את מצב הפקד (בפקדים שיש בהם מצבים, שהם כפתורי רדיו וכפתורי בחירה). המצב יכול להיות 0 (off), 1 (on) או 2 (לא מוגדר). visible – מחזיר ערך $true אם הפקד נראה, או $false אם הוא בלתי נראה. enabled – מחזיר ערך $true אם הפקד פעיל, או $false אם הוא לא פעיל. נחזור כעת לדוגמא שלנו. אם נביט, נראה כי בדיאלוג שיצרנו, מוצג הטקסט Text בתיבת עריכה בהתחלה. אנו רוצים שכאשר הדיאלוג יפתח, לא יהיה טקסט בתיבה, והמשתמש יוכל להקיש את הטקסט שהוא רוצה. נגיב לאירוע init של הדיאלוג, ונמחוק את הטקסט מהתיבה: on 1:dialog:dlgLists:init:*:
{ עכשיו נטפל בלחיצה על המקש Add. כאשר המשתמש ילחץ על המקש, הסקריפט יבדוק האם קיים טקסט בתוך התיבה, ואם כן, יוסיף את הטקסט לרשימה, וינקה את תיבת הטקסט. כדי להגיב ללחיצה על Add אנו צריכים להגיב לאירוע sclick. on
1:dialog:dlgLists:sclick:*: { כאשר המשתמש לוחץ במקום כלשהו בדיאלוג, הסקריפט בודק האם הid שנלחץ הוא 2. אם כן אנו בודקים בעזרת if ( $did(dlgLists, 4).text != $null ) האם ישנו טקסט בתיבת הטקסט. אם כן, אנו מוסיפים את הטקסט אל הרשימה, ואז מוחקים את הטקסט. לאחר שגרמנו לכפתור Add לעבוד, אנו רוצים לגרום גם לכפתור Remove לעבוד. כאשר הכפתור יילחץ, הסקריפט יבדוק האם המשתמש בחר את אחד מפריטי הרשימה. אם כן, פריט זה יימחק מהרשימה. הנה הקוד החדש של האירוע sclick: on
1:dialog:dlgLists:sclick:*: { אנו בודקים האם ישנו פריט מסומן : if ( $did(dlgLists, 1).sel != $null ) במידה וכן, אנו מוחקים מהרשימה את הפריט שהמספר הסידורי שלו הוא $did(dlgLists, 1).sel (הפריט הנבחר). סיימנו את כתיבת הקוד של הדוגמא. נציג את הדיאלוג על המסך בעזרת הפקודה. /dialog –m dlgLists dlgLists נוסיף איברים לרשימה, נמחק אותם ונראה איך הקוד עובד. [S1]האם חסר כאן קוד?
אין תגובות!
|
קישורים רלוונטיים:שיתוף: |