אגף התקשוב, אוניברסיטת בר אילן קורס תוכנת מטלב ויישומיה ד"ר סמדר שץ קורס תוכנת מטלב ויישומיה שיעור מס' 11: תכנות ממשקי משתמש תכנות מונחה-אירועים תכנות

מסמכים קשורים
The MATLAB Notebook v1.6

תוכנת מטלב ושימושיה שיעור 12

אגף התקשוב, אוניברסיטת בר אילן קורס תוכנת מטלב ויישומיה ד"ר סמדר שץ מימוש ממשק משתמש ע"י GUIDE קורס תוכנת מטלב ויישומיה שיעור מס' 12: שימוש ב- GUIDE -

ייבוא וייצוא של קבצי אקסל וטקסט

WinZIP תוכנה לדחיסת קבצים ספטמבר 2007

סרגל כלים ל-Outlook או לExplorer- מדריך למשתמש

מצגת של PowerPoint

הוספת קישור לאתר אינטרנט תוכן ממשק בדיקת מטלות...3 איחוד אתרי קורסים...5 סל מחזור... 7 חידושים בפעילויות...8 תצורת קורס: כפתורים... 9 פורומים...10 שיפ

מרצים יקרים, אתר המכללה מאפשר למרצי המכללה להזין את פרטיהם וקורות חייהם. זאת בדומה לאתרים מקבילים של מוסדות אקדמיים בארץ ובעולם. עמודי המרצים נועדו לא

תכנות מונחה עצמים א' – תש"ע

Microsoft Word - tips and tricks - wave 5.doc

מדריך למרצים ומתרגלים 1

Microsoft Word - I900-Tips_and_Tricks

מדריך להתחלה מהירה Microsoft Project 2013 נראה שונה מגירסאות קודמות, ולכן יצרנו מדריך זה כדי לעזור לך ללמוד להכיר אותו. סרגל הכלים לגישה מהירה התאם אי

שאלהIgal : מערכים דו מימדיים רקורסיה:

HTML - Hipper Text Makeup Language

שאלהIgal : מערכים דו מימדיים רקורסיה:

יצוא לחשבשבת תוכן עיניינים הגדרות - חשבונות בנק...2 הגדרות - הגדרות חשבשבת... 3 הגדרות - כרטיסי אשראי... 4 הגדרות - סוגי הכנסה... 5 יצוא לחשבשבת...6 י

תוכן העניינים

PowerPoint Presentation

הנחיות הורדה ותפעול לספרים דיגיטלים. הוצאת כנרת, זמורה ביתן שמחה להגיש לכם, התלמידים, ספר דיגיטלי. הספרים עצמם הינם בקבצי PDF הניתנים להורדה ללא עלות

תוכן העניינים

תוכן הגדרת שאלת רב-ברירה ]אמריקאית[...2 הגדרת שאלת נכון\לא נכון...8 שאלות אמריקאיות 1

ת'' מדריך לבעלי תיבה קיימת במופ ומשתמשים ב Outlook 2003 או doc.2007 לפני שניגש להגדיר את תיבת המייל החדשה, נבצע גיבויי של המיילים ופנקס הכתובות מהחשבו

תאריך פרסום: תאריך הגשה: מבנה נתונים תרגיל 5 )תיאורטי( מרצה ומתרגל אחראים: צחי רוזן, דינה סבטליצקי נהלי הגשת עבודה: -את העבודה יש לה

Titre du document en police Sodexo

מבוא לתכנות ב- JAVA תרגול 7

(Microsoft Word - SQL\353\351\345\345\365 \341\361\351\361 \360\372\345\360\351\355 \ doc)

פקולטה לחינוך מנהל סטודנטים Beit Berl College الكلية االكاديمية بيت بيرل 20/06/2016 י"ד/סיון/תשע"ו ייעוץ וירטואלי הרכבת מערכת )רישום לקורסים( באמצעות

Microsoft Word IG Lab - Configure Wireless Router in Windows Vista.docx

PowerPoint Presentation

<4D F736F F D20F4E9E6E9F7E420FAF8E2E5ED20ECF2E1F8E9FA20E4E2E4E420F1E5F4E9FA20496C616E2E646F63>

2019 שאלות מומלצות לתרגול מס' דיפרנציאביליות של פונקציה סקלרית )המשך(. כלל השרשרת. S = ( x, y, z) z = x + 3y על המשטח מצאו נקודה בה מישור משיק

תיק משימטיקה מגרף הנגזרת לגרף הפונקציה להנגשה פרטנית נא לפנות: כל הזכויות שמורות

Office 365 ProPlus בחינם לסטודנטים באוניברסיטת בן גוריון בנגב הוראות סטודנטים באוניברסיטת בן גוריון בנגב יכולים להוריד ולהתקין את חבילת התוכנה Office

Microsoft Word - hedva 806-pitronot-2011.doc

Microsoft Word - Ass1Bgu2019b_java docx

פייתון

PowerPoint Presentation

הגשה תוך שבוע בשעת התרגול

מתמטיקה של מערכות

Microsoft PowerPoint - rec3.ppt

משימה תכנית המתרגמת קטעי טקסט לשפה אחרת הקלט: קובץ המכיל את קטעי הטקסט וכן את השפה אליה רוצים לתרגם תרגול מס' 4: המתרגם שימוש במחלקות קיימות תכנות מתק

מבחן 7002 פרטים כלליים מועד הבחינה: בכל זמן מספר השאלון: 1 משך הבחינה: 3 שעות חומר עזר בשימוש: הכל )ספרים ומחברות( המלצות: קרא המלצות לפני הבחינה ובדי

שאלהIgal : מערכים דו מימדיים רקורסיה:

Slide 1

Microsoft Word B

Slide 1

פקולטה: מחלקה: שם הקורס: קוד הקורס: מדעי הטבע מדעי המחשב ומתמטיקה מתמטיקה בדידה תאריך בחינה: _ 07/07/2015 משך הבחינה: 3 שעות סמ' _ב' מועד

מדריך להתקנת Code Blocks מדריך זה נועד לתאר את תהליך התקנת התוכנה של הקורס "מבוא למחשב שפת C". בקורס נשתמש בתוכנת Code::Blocks עם תוספת )אשף( המתאימה

מספר זהות: סמסטר ב' מועד א' תאריך: 11102/4// שעה: 9:22 משך הבחינה: 3 שעות חומר עזר: אין מותר השימוש במחשבון פשוט בחינה בקורס: מבני נתונים מרצה: הדר בי

1 תבניות טקסט מהי תבנית טקסט? שימוש ב- Characters Meta שימוש ב- Expression Grouping שימוש ב- Quantifiers תת תבניות הפונקציה preg_match הפונקציה preg_m

תרגול 1

מדריך לחיפוש במאגר JCR Journal Citation Reports מעודכן לדצמבר 2015 כל הזכויות שמורות לתחום היעץ, אוניברסיטת חיפה, הספריה

מסע מדע ו - מסע ברכב שטח ביבשות רחוקות

Microsoft Word - 01 difernziali razionalit

ForMenahelHeshbonot

עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה אפריל 5105 קשה בלימודים, קל במבחנים, קל בחיים עבודה במתמטיקה לכיתה י' 5 יח"ל פסח תשע"ה יש לפתור את כל השאלות

מיכפל

Tutorial 11

תוכנה 1 1 אביב תשע"ג תרגיל מספר 5 מערכים, מחרוזות, עיבוד טקסט ומבני בקרה הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס. הגש

Slide 1

תרגיל בית מספר 1#

בקרים מתוכנתים – PLC

מבוא למדעי המחשב - חובלים

תשובות מלאות לבחינת הבגרות במתמטיקה מועד ג' תשע"ד, מיום 0/8/0610 שאלונים: 313, מוצע על ידי בית הספר לבגרות ולפסיכומטרי של אבירם פלדמן שאלה מספר

Microsoft Word - עבודת פסח לכיתה י 5 יחל.doc

Microsoft Word - c_SimA_MoedB2005.doc

פתרון 2000 א. טבלת מעקב אחר ביצוע האלגוריתם הנתון עבור הערכים : פלט num = 37, sif = 7 r האם ספרת האחדות של sif שווה ל- num num 37 sif 7 שורה (1)-(2) (

תאריך הבחינה 30

תרגיל 5-1

Slide 1

אוניברסיטת חיפה החוג למדעי המחשב מבוא למדעי המחשב מועד א' סמסטר ב', תשע"ג, משך המבחן: שעתיים וחצי חומר עזר: אסור הנחיות: וודאו כי יש בידיכם

מבוא למדעי המחשב

2013/14 אוניברסיטת חיפה מבוא למדעי מחשב, מעבדה מטרת המעבדה: לתרגל את המעבר מאלגוריתם לקוד C כמה שיותר. הוראות:.1.2 ניתן לעבוד ביחידים או בזוגות. (יש מ

תרגול מס' 4: המתרגם שימוש במחלקות קיימות מחרוזות, קבצים, וקבלת קלט מהמשתמש

Slide 1

DCA & A/B Testing

מבוא למדעי המחשב

Microsoft Word - tutorial Dynamic Programming _Jun_-05.doc

מטלב לפיסיקאים שיעור 1

תרגול מס' 7 – חזרה על MST ואלגוריתם Dijkstra

שאלה 2. תכנות ב - CShell

מספר מחברת: עמוד 1 מתוך 11 ת"ז: תשע"א מועד ב סמסטר א' תאריך: 00:11 שעה: 0 שעות הבחינה: משך כל חומר עזר אסור בשימוש בחינה בקורס: מבוא למדעי ה

מבחן סוף סמסטר מועד א 15/02/08 מרצה אחראית: דר שירלי הלוי גינסברג מתרגלים: גלעד קותיאל, דניאל גנקין הוראות: א. בטופס המבחן 7 עמודים ו 4 דפי נוסחאות. ב

. m most לכל אורך השאלה, במקרה של כוח חיכוך: = 0.01 [kg]; μ א. נתון: = 0.1 k f k = μ k N = μ k mg a = μ k g תור ראשון: לאחר שג'וני גלגל את הגולה הראשו

Microsoft Word - HUNTER-PRO series User IL he A2 _Mar 2009__1.x.doc

PowerPoint Presentation

תשע"דד אביב תוכנה 1 תרגיל מספר 4 עיבוד מחרוזות וקריאה מקבצים הנחיות כלליות: קראו בעיון את קובץ נהלי הגשת התרגילים אשר נמצא באתר הקורס..(

מבוא למדעי המחשב

יחידה 8: שיקוף, הרחבה וכיווץ של פרבולות שיעור 1. שיקוף בציר x תלמידים התבקשו לשרטט פרבולה שכל הערכים שלה שליליים. y יואב ש רטט כך: y תומר אמר: אי-אפשר

צירים סמויים - דגם סוס SOSS צירים 4 CS55555 CS5552 CS5554 CS55505 מק"ט דגם 34.93mm 28.58mm 25.40mm 19.05mm מידה A 26.99mm 22.23mm 18.2

הסבר לתוכנת הגדלה מסוג זום טקסט

Microsoft Word - ExamA_Final_Solution.docx

<4D F736F F D20E7E5F7E920E0E9EEE5FA20E1E8E1ECE42E646F63>

סדנת תכנות ב C/C++

פתרונות לדף מס' 5

מתמטיקה לכיתה ט פונקציה ריבועית

תמליל:

שיעור מס' 11: תכנות ממשקי משתמש תכנות מונחה-אירועים תכנות סדרתי סדר ביצוע הפקודות נקבע ע"י קוד התוכנית. תכנות מונחה-אירועים סדר ביצוע הפקודות נקבע ע"י אירועים בסביבה )למשל פעולות של המשתמש(. קלט מן הסביבה נעשה באופן יזום ע"י התוכנית. במקרים בהם מבקשים קלט ממשתמש, התוכנית עוצרת את הביצוע עד לקבלת הקלט. )כפי שמתבצע בשיעור 9 דוגמא.)d9curve_select 4 הסביבה יוזמת אירועים שמועברים למחשב באמצעות פסיקה.)interrupt( לכל סוג פסיקה משויכת תוכנית שמופעלת כאשר מגיעה פסיקה מסוג זה. המעבד פעיל כל זמן שהתוכנית מתבצעת )גם כאשר התוכנית המעבד פעיל רק כאשר מתבצעת תוכנית-פסיקה. עוצרת לקבלת קלט מן המשתמש או כל עצירה אחרת, למשל פקודת.)pause התלות של מהלך התוכנית במשתנים סביבתיים )למשל סוגים שונים של קלט( נקבעת מראש ע"י התוכנית, בד"כ באמצעות משתנים סביבתיים משפיעים על מהלך הטיפול באירועים. פקודות התנייה. ממשק-משתמש הוא מקרה פרטי של תכנות מונחה-אירועים. האירועים הם הקשה על אחד מכפתורי העכבר או המקלדת, כאשר הסמן נמצא על עצם גרפי מסוים. בדרך כלל תוכנית לממשק משתמש בנויה באופן הבא: התוכנית הראשית כוללת פקודות היוצרות את העצמים המרכיבים את הממשק, ובהתאם לצורך גם מאתחלת פרמטרים או ערכי ברירת מחדל. התוכנית הראשית מסתיימת, ובמטלב הבקרה חוזרת לחלון-הפקודות. לכל עצם גרפי ניתן לשייך פונקציה שתתבצע כאשר יקרה אירוע הקשור לעצם. פונקציה זו נקראת CallBack )קריאה- לאחור(. שיוך הפונקציות האלה לעצמים הגרפים בממשק נעשה בשלב האתחול )התוכנית הראשית( ע"י ציון תכונות העצם הרלוונטיות. לאחר שהתוכנית הראשית סיימה, אפשר להשתמש בממשק כל עוד החלון הגרפי פתוח. הקשה על העצמים בחלון שהוגדרו כפעילים תפעיל את פונקציות ה- CallBack שהוגדרו וכך יתבצע האלגוריתם המבוקש. המעבד פעיל רק כאשר מתבצעות פונקציות.CallBack דוגמא 1: הפונקציה d11save_plot מופעלת כאשר יש חלון גרפי פתוח עם שרטוט קיים. המטרה היא לצפות בשרטוט במספר צורות של הגדלה ו/או הזזה ולשמור חלק מן התצוגות, כל אחת מהן בקובץ נפרד בשמות סדרתיים. הפונקציה הראשית משייכת לצירים פונקציית-תגובה להקשה על הצירים, וכן מאתחלת מונה עבור שמות הקבצים ומסתיימת. המשתמש משנה את התצוגה ומקיש עם העכבר על שטח הצירים בכל פעם שרוצה לשמור את התצוגה. פונקציית התגובה שומרת את הפלוט לקובץ ומקדמת את המונה. הסקריפט d11plot מבקש מן המשתמש לבחור קובץ הקלטה ומבצע את הדברים הבאים: קורא את הקובץ, מציג אותו בגרף ומפעיל את.d11save_plot עמ' 1 מתוך 6

סוגי אירועים ButtonDownFcn KeyPressFcn KeyReleaseFcn CreateFcn DeleteFcn ResizeFcn CloseRequestFcn WindowButtonDownFcn WindowButtonUpFcn WindowButtonMotionFcn WindowScrollWheelFcn WindowKeyPressFcn WindowKeyReleaseFcn CurrentCharacter SelectionType CurrentPoint התכונות הבאות משייכות פונקציה לעצם גרפי, כאשר קורים האירועים הבאים: לחיצה על אחד מכפתורי העכבר כאשר הסמן נמצא מעל העצם לחיצה על מקש/ים במקלדת כאשר הסמן נמצא מעל העצם שחרור מקש/ים במקלדת כאשר הסמן נמצא מעל העצם יצירת העצם. )שימושי להגדרת תכונות ברירת-מחדל( מחיקת העצם. )שימושי לשמירת מידע לפני שהעצם נעלם(. שינוי ממדי העצם. )שימושי כאשר שינוי ממדים מחייב שינויי עיצוב(. התכונות הבאות רלוונטיות רק לחלון גרפי :)figure( ניסיון לסגור את החלון )למשל ע"י הקשה על צלמית הסגירה(. לחיצה על אחד מכפתורי העכבר כאשר הסמן נמצא מעל החלון שחרור אחד מכפתורי העכבר כאשר הסמן נמצא מעל החלון תנועה של הסמן כשהוא נמצא מעל החלון שימוש בגלגל הגלילה בעכבר כאשר הסמן נמצא מעל החלון לחיצה על מקש/ים במקלדת כאשר הסמן נמצא מעל החלון שחרור מקש/ים במקלדת כאשר הסמן נמצא מעל החלון אפשר לקבל מידע נוסף על האירוע באמצעות התכונות הבאות: שם המקש במקלדת שהוקש לאחרונה כאשר הסמן היה מעל העצם שם כפתור העכבר שהוקש כאשר הסמן היה מעל העצם. מקרים נפוצים הם normal עבור כפתור שמאלי, alt עבור כפתור ימני. קואורדינטות הנקודה שבה הוקש על כפתור העכבר כאשר הסמן היה מעל העצם. המספרים ביחידות של העצם )ברירת המחדל היא pixel עבור חלון ו- data coordinates עבור מערכת צירים(. קוד עבור callback 'MATLAB code' function-handle hobject EventStructure Character Key Modifier הקוד עבור תכונת callback )שיתבצע כשיקרה אירוע( יכול להיות אחד מן הדברים הבאים: א. מחרוזת תווים שמטלב מבצע כאילו הוקלדה בחלון הפקודות. אם המחרוזת כוללת שמות של פונקציה או סקריפט, מטלב מבצע )במידה וזיהה את התוכנית המבוקשת(. אם יש שמות שזוהו כמשתנים במרחב-העבודה הכללי של מטלב, יילקחו הערכים השמורים במשתנים אלה. ב. מזהה לפונקציה, שמטלב מפעיל עם שני הארגומנטים הבאים: 1. מזהה handle של העצם שבו קרה האירוע. 2. מידע על האירוע.)structure( למשל, אירועים הקשורים במקלדת כוללים את השדות הבאים: התו כפי שמוצג כתוצאה של כלל המקשים. )למשל.)A=a+SHIFT שם המקש )אות קטנה,lowre case או שם עבור מקשים אחרים(. מערך-תאים עם שמות המקשים הנוספים shift(.)control, alt, עמ' 2 מתוך 6

function cb(h,ev) לסיכום, שורת הכותרת בפונקציית callback תיראה כך: בדרך כלל המזהה h שימושי, ואילו המידע על האירוע )בארגומנט )ev פחות משמעותי. בכל מקרה יש לשמור על התבנית של שני ארגומנטים. מומלץ להשתמש תמיד בפונקציות )אפשרות ב' למעלה( ולא במנגנון של סקריפט עם משתנים במרחב העבודה הכללי. דוגמא 2: התוכנית d11draw_curves מבצעת ממשק המאפשר למשתמש לציין קואודינטות ולשרטט קווים שבורים בעזרת העכבר. בכל קטע מוצג תחילה קו מרוסק העוקב אחרי תנועת העכבר, ואשר הופך ל"קבוע" לאחר לחיצה על כפתור שמאלי. לחיצה על כפתור ימני מסיימת את הקו השבור כך שלחיצה נוספת על כפתור שמאלי מתחילה קו חדש. הקובץ כולל פונקציה ראשית ושתי פונקציות :callback אחת לתגובה על הקשה על כפתור עכבר ואחת לתגובה על תנועת עכבר. עצמים לממשק-משתמש במטלב יש עצמים מוגדרים-מראש לצורך בניית ממשקי משתמש. )אפשר לבנות ממשק גם מעצמים גרפיים פשוטים, אבל כמובן בעבודה רבה יותר(. בניגוד לכלי ממשק שהודגמו עד כה )לדוגמא חלון-תפריט, תיבת דיאלוג או תיבה לבחירת קובץ(, עצמים אלה הם חלק מן החלון הגרפי הקיים )כלומר "ילדים" של ה- figure (. לעצמים אלה יש עיצוב גרפי נתון )אשר ניתן לשלוט על הפרמטרים שלו( וכן התנהגות נתונה. ניתן לשנות במידה מסוימת את התנהגות עצמים אלה, אבל המאפיינים הבסיסיים שלהם נקבעו לצורך שימוש בהתנהגות הנתונה. עצמים לממשק משתמש מתחלקים לשני קבוצות עיקריות: UImenu ו- UIcontrol. עצמים מסוג UImenu הם תפריטים שנמצאים בסרגל התפריטים בראש החלון. בשיעור זה נתאר עצמים מסוג,Uicontrol שיכולים להיות בכל מקום בשטח שמתחת לסרגל התפריטים. להלן כמה סוגים של :Uicontrol Uicontrol type PushButton ToggleButton CheckBox PopUpMenu Edit עיצוב העצם והתנהגותו כפתור לחיץ. נלחץ בלחיצה על כפתור עכבר ומשתחרר עם שחרור כפתור העכבר. לחיצה+שחרור של העכבר מפעילה.callback כפתור-מצבים. הקשה עם העכבר מעבירה אותו בין המצבים "בפנים" ו"בחוץ". כל הקשה מפעילה callback וניתן לבדוק באיזה מצב נמצא. תיבת "אישור". לחיצה עם העכבר מעבירה בין מצב "כן" )בו נמצא סימון בתיבה( למצב "לא" )בו התיבה ריקה( וכן מפעילה.callback תפריט "קופץ". במצב לא פעיל, מוצג טקסט שהוא אחת מן האפשרויות. לחיצה בעכבר מציגה רשימה של האפשרויות שמהן בוחרים. בחירה מפעילה callback ומציגה באופן קבוע את האפשרות שנבחרה. כמו-כן ניתן לבדוק איזו אפשרות מוצגת. תיבת-טקסט. מאפשרת למשתמש לכתוב טקסט. כדי להפעיל,callback יש ללחוץ ENTER או להקיש עם העכבר מחוץ לשטח התיבה. )מומלץ לא להסתמך על כך ולספק גם כפתור הפעלה נפרד(. עמ' 3 מתוך 6

Uicontrol type עיצוב העצם והתנהגותו Slider Text מתג-הזזה. ניתן להזיזו בעזרת העכבר. מקום המתג "מתורגם" לערך מספרי, כאשר מגדירים מראש גבולות מינימום )צד שמאל( ומקסימום )צד ימין(. שחרור של כפתור העכבר עוצר את תנועת המתג וכן מפעיל,callback וניתן לקבל את הערך המספרי. טקסט סטטי. לא ניתן לשינוי ע"י המשתמש ולא מפעיל.callback מיועד להצגת כותרות, משוב וכו'. יצירת UIcontrol יצירת עצם,UIcontrol כאשר ציון סוג העצם נעשה hndl=uicontrol('type',type,'p1',v1,'p2',v2) ע"י תכונת.type Hs=uicontrol('type','slider','min',-3) uicontrol(uihandle) דוגמא: העברת הפוקוס לעצם קיים עם מזהה נתון: תכונות רלוונטיות לעצמים מסוג Uicontrol התכונות הבאות משותפות לכל העצמים מסוג UIcontrol אבל משמעותן משתנה בהתאם לסוג העצם: Enable העצם פעיל אם,on לא פעיל אם.off במקרה של off מטלב משנה באופן אוטומטי את חזות העצם )צבעים חוורים לטקסט ורקע(. Value ערך מספרי. לגבי,slider ערך בהתאם למקום המתג. לגבי,popupmenu מספר האפשרות שנבחרה. לגבי עצמים מסוג כן/לא, מקבל ערך Max אם נבחר וערך Min אם לא נבחר. String מחרוזת תווים - בהתאם להקשר: טקסט על כפתור, טקסט המוצג בתיבת עריכה, אפשרויות של תפריט )מערך תאים(. Min Max SliderStep ForegroundColor BackgroundColor ערכים מספריים. לגבי slider מציין את הערכים המשויכים לגבולות בהם המתג יכול לנוע, לגבי עצמים של כן/לא, כמוסבר למעלה. צעדי-התקדמות של slider )מערך של שני איברים כמוסבר בתיעוד(. צבע טקסט. צבע רקע. למידע על סוגי Uicontrol נוספים ותכונות נוספות, יש לחפש בתיעוד.uicontrol propoerties דוגמא 3: התוכנית d11curve_select מבצעת ממשק המאפשר למשתמש לבחור בלחיצת-עכבר עקומות מסוימות מתוך המידע הגולמי. כל עקומה שנבחרת מסומנת בקו עבה. בחירת עקומה אחרת "מסירה את הבחירה" מהעקומה שנבחרה קודם. עם הלחיצה על כפתור Confirm מאושרת בחירת העקומה, והיא מועלמת מהמידע הגולמי )כדי למנוע בחירה חוזרת( ומשורטטת במערכת-הצירים של העקומות שנבחרו. כמו-כן קיימים שלושה :sliders אחד להזזה אופקית, אחד להזזה אנכית, ואחד להתקרבות. עמ' 4 מתוך 6

שיטות להעברת מידע בין הפונקציות בדרך כלל פונקציית callback משתמשת במידע שאיננו קשור רק לעצם שהפעיל אותה. בנוסף, עצמים שונים קולטים מידע )למשל פרמטרים לחישוב, שמות קבצים לקריאה או לשמירה( שמיועד לשימוש כלל חלקי התוכנית. כאמור למעלה, רצוי להימנע ממשתנים גלובאליים, ולכן יש להשתמש באחת מן השיטות הבאות: 1. הגדרת כל הפונקציות המשתפות מידע כפונקציות פנימיות של התוכנית הראשית. באופן זה, משתנים משותפים נגישים לכל הפונקציות שמשתמשות בהם ועדכון באחת מהן משתקף אוטומטית בכל היתר. )כפי שנעשה בדוגמאות 2-3(. 2. שיוך המידע המשותף לתכונת UserData של אחד העצמים, כפי שנעשה בדוגמא 1. 3. שימוש בתכונת :guidata משתנה אחד שניתן לשייכו לחלון גרפי מסוים. 4. שימוש בעצם מסוג application data שניתן לשייכו לכל עצם גרפי )לא רק לחלון(. ניתן לציין סדרת תכונות לפי הגדרת המתכנת, ולתת להן ערכים. set(h,'userdata',mydata) Mydata = get(h,'userdata'); giudata(h,mydata) Mydata = guidata; setappdata(h,'p1',v1) setappdata(h,'p2',v2) v1 = getappdata('p1') strc = getappdata(h) 5. לקבלת מזהים handles של עצמים שנוצרו באתחול, ניתן לציין עבורם תכונת.Tag עקרונית ניתן לאחזר מזהה של כל עצם כזה ע"י חיפוש findobj לפי ערך התג. לנוחיות המתכנת, קיימת במטלב פקודה שמחזירה עבור חלון גרפי את כל המזהים שהוצמדו להם תגים, בתוך :structure שמות התגיות הם שמות השדות, וערכי השדות הם המזהים שלהם משויכים התגים. strc = guihandles דוגמא 4: התוכנית d11curve_guidata מבצעת אותו ממשק משתמש כמו ב- d11curve_select )דוגמא 3(. פעולת התוכנית זהה לקודמת, למעט השינויים הבאים: א. כל פונקציות ה- callback הן פונקציות משניות )ולא פנימיות(, ולכן אין להן משתנים משותפים. ב. המידע מועבר בין הפונקציות באמצעות תכונת.guidata ג. מידע על מזהי-העצמים handles( )object מתקבל באמצעות פקודת guihandles לאחר שכל העצמים הרלוונטיים לממשק המשתמש סומנו ע"י תגיות.Tags טיפול בתזמון אירועים מאחר שסדר ביצוע הפונקציות נקבע ע"י פעולות של המשתמש, יכול להיווצר מצב שאירוע קורה כאשר אחד מן ה- callbacks עדיין מתבצע. הסבירות למצב כזה גדלה, כאשר הביצוע כרוך בחישובים ארוכים או בכל פעולה מורכבת אחרת )למשל קליטת נתונים ממערכת חיצונית(. במיוחד יכול להיווצר מצב לא מוגדר, שבו פעולה מתחילה להתבצע ב- callback ובינתים קורה אירוע נוסף המפעיל אותה מחדש. ככלל, כל עוד פונקציית callback מתבצעת באופן שוטף, לא מתאפשרת הפעלה של callback נוסף )גם לא של אותה פונקציה( ואירועים נוספים שקורים בינתים נשמרים ב"תור".)queue( לאחר שהפונקצייה מסיימת, מתבצעות הקריאות ל- callbacks שהושעו, לפי הסדר שבו נכנסו לתור. ניתן להפעיל פונקציה נוספת רק כאשר הפונקציה המתבצעת מגיעה לאחת הפקודות הבאות: drawnow, figure,.getframe, pause, waitfor במקרה זה, מתבצעות הפונקציות שבתור ולאחר שהן מסתיימות חוזרים לבצע את הפונקציה שהופסקה. עמ' 5 מתוך 6

תכונות רלוונטיות לטיפול בתזמון של אירועים המשויכים לעצם גרפי Interruptible BusyAction BeingDeleted אם on אז פונקציות אחרות יכולות להפסיק את ביצוע ה- callback המשויך לעצם )אבל רק אם יש בתוכנית אחת הפקודות שצוינו למעלה(. אם off אז לא ניתן להפסיק את התוכנית. מה לעשות אם קורה אירוע המשויך לעצם ויש פונקציה אחרת שמתבצעת. אם queue אז האירוע נכנס לתור. אם cancel אז האירוע מבוטל. האם העצם נמצא בתהליך מחיקה )אשר יכול להתמשך אם משויך אליו callback שמבצע תהליך ארוך, למשל כתיבה לקובץ(. פקודות רלוונטיות לטיפול בתזמון של אירועים המשויכים לעצם גרפי קבלת המזהה handle של העצם שה- callback שלו מתבצע עכשיו. אם אין callback שמתבצע, hndl=gcbo התוצאה היא מערך ריק. hndl=gcbf קבלת המזהה handle של החלון הכולל את העצם שה- callback שלו מתבצע עכשיו. דוגמא 5: התוכנית d11ecology מבצעת ממשק המקבל מן המשתמש פרמטרים לחישוב של מערכת אקולוגית, ומשרטט את אוכלוסיית האנטילופות וכמות המים כפונקציה של הזמן. כאשר החישוב מתבצע, כל העצמים לקליטת מידע מושבתים, כדי למנוע הפעלה חוזרת של החישוב. עמ' 6 מתוך 6