בעיה \:

פIלי

New member
באמת נראה לך שלא חשבתי על זה?

יש רק בעיה אחת, ה inp$ צריך להחזיר את הערך שהמשתמש הכניס לאדיט בוקס, אז מה שעשיתי זה שמתי משתנה שמתי שהמשתמש ילחץ על האישור יקבל את הערך של האדיט בוקס. אבל יש בעיה קטנה, איך האליאס של ה inp$ ידע מתי המשתמש לחץ על אישור? בשביל זה עשיתי את הבדיקה בקוד השני, שהורגת את המירק (מהסיבה הפשוטה שהמירק נמצא בלולאה עד שלוחצים אישור). חשבתי על טיימר שיבדוק כל שנייה, אבל זה יכול להיות איטי ומעצבן... אז, למישהו יש רעיון?
 

פIלי

New member
הבנתי אותך טוב מאוד

וגם עשיתי את זה לפני שאמרת לי (תסתכל את הקוד השני), אבל הבעיה היא שההאזנה לכפתור היא סקריפט אחר, והיא לא יכולה להחזיר ערך שקורא ל inp$. אם בכל זאת לא הבנתי אותך, תנסה לכתוב קוד לדוגמא...
 

פIלי

New member
בעיה \:

טוב זה ככה, מכירים את ה ?$$ ? התיבת אינפוט המעצבנת הזאת? אז כמו כל סקריפט שמכבד את עצמו, החלטתי שאני לא יסכים לזה שחלאד מיישר את הכתב במירק לשמאל, וניסיתי לכתוב לי דיאלוג משל עצמי... והוא עבד טוב מאוד במשך החודש בערך שהשתמשתי בו, ואז נתקלתי בבעיה מוזרה... כנראה שאי אפשר להשתמש ב dialog$ בתוך eventים. הקוד הראשון שלי היה:
dialog input { title "פולי" size -1 -1 130 58 option dbu edit "", 1, 12 24 106 11, result button "אישור", 2, 79 42 25 8, ok button "ביטול", 3, 51 42 25 8, cancel box "", 4, 5 3 119 52 text "", 5, 14 8 103 15, right } on 1:dialog:input:init:0:{ did -a input 5 %input.question } alias inp { if ($1- != $null) { set %input.question $1- dialog -m input input set %input.result $dialog(input,input) return %input.result unset %input.* } else { echo -a 4Error:2,1No value for input question | halt } }​
ואז אחרי ההודעה המצערת
* $dialog: can´t use in an event (line 101, script.ini)​
שיניתי לקוד הבא:
on *:dialog:input:sclick:1:{ set %input.result $did(2).text } alias inp { if ($1- != $null) { dialog -m input input :check if ($dialog(input)) goto check return %input.result unset %input.* } else { echo -a 4Error:2,1No value for input question | halt } }​
וזה גרם למירק שלי לקרוס לפני שהדיאלוג עלה... אז, למישהו יש רעיון מקורי בשבילי?
 
למעלה