בתור התחלה,
המדריך יעסוק כמעט על כל מה שקשור בקבלת מידע מדיאלוגים הכולל איבנטים מזהים ופקודות. בחרתי לנכון לכתוב את המדריך עקב חוסר במדריכים מסוג זה
ולכן ואני מקווה שתגלו עניין בנושא והוא יועיל לכם
אני יודע שייתכן ולא תבינו מספר דברים, לכן אני פה ותוכלו לשאול בתגובות.
השקעתי במדריך הזה כל מה שיכלתי כך שניסיתי לפרט על כל נושא כמה שיותר הרבה ועם דוגמאות רבות כדי למנוע אי הבנות מיותרות.
מה שנשאר לי זה לאחל קריאה מהנה, מאתגרת ומושכת!
מה בעצם יהיה במדריך?
טוב אז ככה, המדריך הבא יעסוק בקבלת מידע מדיאלוגים כלומר נלמד על מספר גורמים שיסייעו לנו לקבל מידע מדיאלוגים והם-
1. הפקודה /dialog.
2. המזהה $dialog.
3. הפקודה did וכל הפרמטרים.
4. המזהה $did וכיצד להשתמש בו.
5. המזהה $didwm ושימושו.
6. המזהה $didreg ושימושו.
7. המזהה $didtok ושימושו.
8. הפקודה /didtok.
9. האיבנט שמשתמשים כדי לגרום לדיאלוג לפעול (on dialog)
אז נתחיל:
1. /dialog
הפקודה מאפשרת לך להכין דגמי דיאלוג ובעצם "לכוון" אותו בעזרת הסוויץ' m-.
בעזרת הפקודה תוכלו להציג את הדיאלוג על המסך או על חלון בנפרד, ובנוסף לשנות את הגדרותיו שהיו כברירת מחדל כמו; שינוי כותרת, שינוי גודל ומיקום, ועוד...
הפורמט:
קוד: בחר הכל
/dialog -mdtsonkcvie name [table] [x y w h] [text]
כפי שראיתם יש מספר פרמטרים שבעזרתם יהיה ניתן לשנות את הגדרותיו של הדיאלוג ועוד.
name - נציב במקומו את שם הדיאלוג שיצרנו.
[table] - שם הטבלה שיצרנו בדיאלוג.
name ו [table] נחשבים לפרמטרים זהים ולכן נוכל להציב את שם הדיאלוג גם בשם הטבלה
ב [table]
ישנם כמה פרמטרים שיבואו לידי ביטוי רק כאשר הם ביחד עם הפרמטר ההכרחי (m-) והם:
a-
d-
o/n-
כלומר:
קוד: בחר הכל
/dialog -m[a/d/o/n] name name
להלן פירוט מלא על כל אחד מן הפרמטרים הנ"ל;
m-
הפרמטר ההכרחי בדיאלוג,
פותח את הדיאלוג ומציג אותו בחלון הנוכחי בעזרת הפקודה -
קוד: בחר הכל
/dialog -m name name
כמובן שב name נציב את שם הדיאלוג.
a-
הסוויץ' יבוא ביחד עם הסוויץ' הקודם (m-).
הסוויץ' משמש בכך שיהיה החלון האקטיבי כלומר שהדיאלוג יהיה כחלון הנוכחי הפעיל.
קוד: בחר הכל
/dialog -ma name name
d-
הסוויץ' יבוא תמיד ביחד עם m-.
הסוויץ' יפתח את הדיאלוג על שולחן העבודה כלומר כחלון נפרד ויהיה ניתן למזערו.
קוד: בחר הכל
/dialog -md name name
o-
פרמטר זה יבוא ביחד עם הפרמטר m-.
קובע את הדיאלוג כחלון הראשון מבין כל החלונות הפתוחים ושיפתחו.
כלומר, אפילו כל דיאלוג שייפתח, תמיד הוא ייקבע כראשון מעל הכל.
קוד: בחר הכל
/dialog -mo name name
n-
פרמטר זה יבוא ביחד עם הפרמטר m-.
פקודה הפוכה לקודמת, בעזרת הסוויץ' הוא יינטרל את האפשרות הקודמת שבו הוא יהיה הראשון מבין כל החלונות וכעת הוא יהיה דיאלוג כשאר הדיאלוגים.
קוד: בחר הכל
/dialog -mn name name
ישנם פרמטרים נוספים אשר משתמשים בהם כאשר הדיאלוג נמצא בשימוש ללא הפרמטר m-.
פרמטרים אלה משמשים לסגירת הדיאלוג, שינוי גודל ומיקום, שינוי כותרת, ועוד..
להלן פירוט מלא לפרמטרים הנ"ל;
x-
סוגר את הדיאלוג ולא יבצע שום איבנט בעת סגירתו.
כלומר, אם היה איבנט שברגע שהדיאלוג ייסגר הוא יעשה כך וכך, האיבנט לא יתקיים כאשר נשתמש בפקודה זו.
קוד: בחר הכל
/dialog -x name name
h-
הדיאלוג יעבוד עם חיבור הסרבר האקטיבי (הפעיל).
קוד: בחר הכל
/dialog -h name name
t-
קובע את כותרת הדיאלוג רק כאשר הדיאלוג פתוח!
קוד: בחר הכל
/dialog -t name text
הפעם מציבים פעם אחת את שם הדיאלוג ובפרמטר השני מציבים את הטקסט של הטופיק שבחרתם.
s-
קובע את מיקומו או את גודלו של הדיאלוג, גם הפעם הפקודה תעבוד רק כאשר הדיאלוג פתוח!
קוד: בחר הכל
/dialog -s name x y w h
r-
מציב את הדיאלוג במרכז המירק.
קוד: בחר הכל
/dialog -r name name
bp-
בתור התחלה,
-b = dbu
למתנסים שבינינו, אופציית ה dbu מוכרת לנו בטבלת הדיאלוג;
קוד: בחר הכל
...
size x y w h
option dbu
..
-p = pixels
גם כאן האופצייה מופיעה בטבלת הדיאלוג;
קוד: בחר הכל
...
size x y w h
option pixels
..
חשוב לציין!
משתמשים בכל סוויץ בנפרד, כלומר או b- או p-.
כל אחד מהם יבוא ביחד עם הסוויץ' s-.
לסיכום,
כל אחד מסוויצ'ים אלה משנה את מיקומו של הדיאלוג או את גודלו ותמיד יבוא עם הסוויץ' s-.
הם יגרמו לדיאלוג לשנות את ההגדרות ומומלץ להשתמש בdbu כי הוא קיים ברוב המערכות אך זה כבר הבחירה שלכם.
k-
לוחץ על כפתור ok (אישור) וסוגר את הדיאלוג.
קוד: בחר הכל
/dialog -k name name
c-
לוחץ על כפתור cancel (ביטול) ויסגור את הדיאלוג.
קוד: בחר הכל
/dialog -c name name
v-
יגרום לדיאלוג להיות החלון האקטיבי והנוכחי.
קוד: בחר הכל
/dialog -v name name
ie-
אם הדיאלוג נפתח ע"י הסוויץ' md- כלומר על שולחן העבודה, פקודה זו תגרום למזעור הדיאלוג.
קוד: בחר הכל
/dialog -ie name name
2. המזהה $dialog
בדומה לפקודה /dialog, שבה הוא יוצר דגמי דיאלוג כלומר בעזרת המזהה נוכל לפתוח את הדיאלוג בדרכים שונות הבאים לידי ביטוי במיקום ועוד ..
בטח אתם שואלים את עצמכם איך זה שמזהה לא מחזיר ערך אלא מבצע פקודה ?
מזהה זה שונה מכל השאר,
מצד אחד, הוא עובד על עקרונו של הפקודה /dialog ופרמטריו יוסברו בהמשך.
מצד שני, הוא מחזיר האם הדיאלוג כעת בשימוש והאם הוא פתוח.
בנוסף לכל, המזהה מאפשר לנו לפתוח דיאלוג שברגע שהוא נפתח לא נוכל להשתמש בשאר החלונות כלומר הוא יהיה החלון היחידי שנוכל להשתמש בו עד שייסגר.
כיצד נוכל לעבוד עם המזהה ?
דרך א'
נוכל להשתמש במזהה דרך משתנים כמו:
קוד: בחר הכל
%result = $dialog(name,table[,parent])
כאשר נציב ב name את שם הדיאלוג שאנו נרצה לבצע עליו את הפקודה.
table - שם הטבלה.
* נהוג לרשום את שם הדיאלוג שנית כך ש table = name
בפרמטר parent נוכל להציב מס' אפשרויות שהם:
- נוכל להציב חלון ווינדו מסויים (@window)
- נוכל להציב (1-) האומר לדיאלוג להיפתח בחלון נפרד חדש, בדומה לסוויץ' -md בפקודה /dialog.
- נוכל להציב (2-) האומר לדיאלוג להיות מעל לכל החלונות כלומר החלון הראשי, בדומה לסוויץ' -o בפקודה /dialog.
- נוכל להציב (3-) האומר שהדיאלוג יהיה החלון האקטיבי מבין שאר החלונות, בדומה לסוויץ' -ma בפקודה /dialog.
- נוכל להציב (4-) האומר שהדיאלוג יהיה החלון האקטיבי מבין שאר הדיאלוגים, אם אין שום דיאלוג פתוח הפרמטר ייחשב כ (3-).
דוגמא:
קוד: בחר הכל
//var %a = $dialog(name,name,-1)
כפי שציינתי, ב name נציב את שם הדיאלוג.
פקודה זו תגרום לדיאלוג להיפתח כך שהוא יהיה בחלון ווינדו חדש ונפרד.
בנוסף, הדיאלוג יהיה היחידי הניתן לשימוש מבין שאר הדיאלוגים.
נקודות חשובות:
* חשוב לציין שלא נוכל להשתמש בסוג זה של המזהה באיבנטים וברימוט עצמו.
* כאשר נפתח דיאלוג בעזרת הפרמטרים הנ"ל לא נוכל להשתמש באף חלון אחר כלומר החלון של הדיאלוג יהיה החלון היחידי הניתן לשימוש עד לסגירתו.
דרך ב'
ניתן להשתמש במזהה להחזרת מידע.
אם אנו רוצים לדעת אם דיאלוג x פתוח כעת ונמצא בשימוש נעשה בעזרת המזהה.
ואם אנו רוצים לדעת כמה דיאלוגים פתוחים במירק אנו ניעזר גם במזהה.
הפורמט של דרך זו הוא:
קוד: בחר הכל
$dialog(name/N)
כפי שאנו יודעים, name מציין את שם הדיאלוג.
אם אנו רוצים לדעת אם דיאלוג מסויים קיים אנו נרשום רק את שם הדיאלוג שאנו נרצה לבדוק.
למשל:
קוד: בחר הכל
//echo -a $iif($dialog(name),$true,$false)
הפקודה הבאה אומרת; אם הדיאלוג 'name' קיים, הוא ירשום באקו $true.
אם לא, $false.
כפי ששמתם לב, צויין בפורמט הפרמטר N.
אם N = 0 הוא יחזיר את מס' הדיאלוגים הפתוחים במירק.
אם נציב במקום N מספר כלשהו, הוא יחזיר את אותו מס' דיאלוג הפתוח ברגע זה.
לדוגמא:
נניח ופתוחים לי שלושה דיאלוגים,
אחד, Away System.
השני, Auto Connect.
והשלישי, Info-Line.
אם אני ארצה לדעת כמה דיאלוגים פתוחים כרגע אני ארשום:
קוד: בחר הכל
//echo -a $dialog(0)
אם אני ארצה לדעת את השם של כל דיאלוג אני ארשום:
קוד: בחר הכל
//echo -a $dialog(1)
במקרה שלנו, כפי שציינתי למעלה הדיאלוג הראשון שפתוח הוא Away System ולכן כנרשום את הפקודה הנ"ל הוא יחזיר את שם הדיאלוג הראשון שפתוח במירק.
למזהה מס' פרמטרים שנוכל להשתמש בהם רק כאשר הדיאלוג פתוח :
x,y,w,h - מחזיר את הגודל והמיקום של הדיאלוג.
דוגמא:
קוד: בחר הכל
//echo -a $dialog(name).x
בדוגמא זו, יחזיר את המיקום של הדיאלוג ביחס למירק.
cw,ch - מחזיר את הרוחב והאורך של שטח הדיאלוג.
title - מחזיר את כותרת הדיאלוג.
modal - פרמטר זה בודק אם הדיאלוג נפתח בעזרת מודלי כפי שלמדנו כעת, כלומר בעזרת המזהה:
קוד: בחר הכל
$dialog(name,name)
אשר מזהה זה "תוקע" את המירק כשהדיאלוג נפתח והוא החלון היחידי הניתן לשימוש.
אם הוא נפתח בעזרת המזהה - הוא יחזיר $true.
אם הוא נפתח בעזרת הפקודה:
/dialog -m name name
הוא יחזיר $false.
table - מחזיר את טבלת הדיאלוג כלומר את שם הדיאלוג. שימו לב, לא כותרת אלא השם!
ok - אם קיים בדיאלוג כפתור אישור (ok) הוא יחזיר את האיי די של אותו כפתור.
cancel - אם קיים בדיאלוג כפתור ביטול (cancel) הוא יחזיר את האיי די של אותו כפתור.
result - אם קיים כפתור result כפי שקבעתם בהגדרות של הדיאלוג, הוא יחזיר את האיי די של אותו כפתור.
focus - מחזיר את האיי די הנמצא בפוקוס באותו הרגע.
tab - מחזיר את האיי די של הטאב (tab) הפתוח והנוכחי בדיאלוג.
active - מחזיר $true אם אותו הדיאלוג הוא החלון האקטיבי (הנוכחי), אם לא - יחזיר $false.
hwnd -מחזיר את ה- הwindow handle של הדיאלוג,
כשווינדואז יוצרת אובייקט ויזואלי שבמקרה שלנו הוא דיאלוג אך במקרים אחרים יכול להיות חלון, היא יוצרת לו מספר שמזהה אותו ואפשר להשתמש בו כדי להתייחס אחר כך לאובייקט.
3. הפקודה /did
כשיצרנו את הדיאלוג שברצוננו לעבוד עליו, לעיתים אנו נרצה לשנות את התוכן המוצג, או לשנות את הטקסט שהיה, או לבצע על כפתורים מסויימים להיות כאפור ועוד..
אנו שואלים את עצמנו איך אפשר לעשות זאת?
כמובן שבעזרת הפקודה /did ובעזרת האיבנט on dialog שיפורט בהמשך המדריך.
כמו שאמרנו, בפקודה זו תוכלו לשנות טקסט של אדיט מסויים, לשנות את הטקסט הנמצא בכפתור, לשנות מצבים בכפתורים, למחוק שורות מהליסטבוקס, ועוד..
בתור התחלה, הפורמט של הפקודה הוא:
קוד: בחר הכל
/did -ftebvhnmcukradiogj name id [n] [text | filename]
להלן כל הפרמטרים האפשריים שיש בפקודה;
f-
פרמטר זה קובע פוקוס על האיי די שאתם בוחרים. כלומר, פקודה זו תתמקד באיי די.
דוגמא:
קוד: בחר הכל
//did -f dname id
לסיכום,
פקודה זו תגרום לאיי די להיראות כאילו הוא מסומן. אם האיי די הוא כפתור הוא יראה אותו מסומן ו"מוקף" קווים לא מושלמים. כמובן שניתן להתמקד לא רק באיי די של כפתור אלא על כל איי די ולא משנה מה הוא.
t-
פרמטר זה קובע את האיי די של הכפתור כאילו הוא לחוץ.
דוגמא:
קוד: בחר הכל
//did -t dname id
לסיכום,
פקודה זו תגרום לכפתור להיראות מעין מסומן ומוקף בקו שלם כאילו הוא לחוץ. מי שעדיין לא הבין הפקודה 'תעשה' את הכפתור כאילו לחצת עליו.
e-
פרמטר זה יגרום לאיי די לחזור ממצב 'חסום' (בו הוא נראה בצבע אפור ולא ניתן ללחיצה/לעריכה) למצב נורמלי (בו הוא נראה רגיל וניתן ללחיצה/לעריכה).
דוגמא:
קוד: בחר הכל
//did -e dname id
לסיכום,
פקודה זו "תשחרר" איי די ממצב שהוא מוסתר ונראה כאפור.
b-
פרמטר זה הוא בעצם פרמטר העושה פעולה הפוכה מהקודם.
במצב זה הוא מבטל את האיי די וגורם לו להיראות כאפור ולא ניתן ללחיצה/עריכה.
דוגמא:
קוד: בחר הכל
//did -b dname id
לסיכום,
פקודה זו תעשה את אותו איי די מוסתר הכוונה שהוא ייראה כאפור ולא יהיה ניתן להשתמש בו.
v-
פרמטר זה מחזיר את האיי די שהיה 'בלתי נראה' או במילים אחרות - לא קיים.
דוגמא:
קוד: בחר הכל
//did -v dname id
לסיכום,
אם אותו איי די כבר מוחבא וכאילו מחקתם אותו הפרמטר ידאג להחזיר לכם אותו.
h-
פרמטר זה הוא ההיפך מהקודם רק שהפעם הוא זה שמחביא או במילים אחרות,
"מעלים" את האיי די.
דוגמא:
קוד: בחר הכל
//did -h dname id
לסיכום,
פקודה זו תחביא ותסתיר וכאילו תמחק את האיי די.
n-
פרמטר זה גורם לאיי שהוא אדיטבוקס להיות נורמלי ולא מוסתר.
דוגמא:
קוד: בחר הכל
//did -n dname id
לסיכום,
פקודה זו תעשה את האדיט בוקס ממצב שבו הוא היה לא ניתן לעריכה (המסומן כאפור) למצב נורמלי (ניתן לעריכה).
בטח אתם שואלים את עצמכם "זה לא דומה לפרמטר e-"?
ובכן, זה די דומה אך פה מדובר על האיי די שהוא אדיטבוקס וגורם לו להיות ניתן לעריכה ממצב של פרמטר שהוא יוסבר בהמשך.
m-
פרמטר זה הוא ההיפך מהקודם, כלומר הוא מבטל את האדיטבוקס וגורם לו להיראות מוסתר.
דוגמא:
קוד: בחר הכל
//did -m dname id
לסיכום,
פקודה הפוכה לקודמת רק שפה האדיט בוקס יהיה מוסתר וייראה כאפור אך ניתן לסימון.
ובטח גם כאן תעלה השאלה "זה לא דומה לפרמטר b-"?
ובכן, שוב זה דומה אך הפעם הוא לא יגרום לו להיות מוסתר ולא ניתן לסימון,
אלא הוא יגרום לאיי די להיות מוסתר ומסומן כצבע אפור אבל עדיין אפשר
לסמן אותו מבלי שיהיה ביפ.
c-
פרמטר זה מראה את ה-check או את ה- radio כאילו הוא מסומן ב'וי'.
דוגמא:
קוד: בחר הכל
//did -c dname id
לסיכום,
פקודה זו תגרום איי די של רדיו או צ'אק להיות מסומן ב"וי".
u-
פרמטר זה הוא ההיפך מהפרמטר הקודם רק שפה ממצב שבו הוא נמצא כמסומן ב'וי' להיות ללא 'וי' כלומר הוא מבטל את ה-check או את ה-
radio.
דוגמא:
קוד: בחר הכל
//did -u dname id
לסיכום,
כאשר תעשו פקודה זו הרדיו יבוטל ולא יהיה מסומן.
k-
פרמטר זה בא יחד עם הפרמטרים c- / -u.
הפרמטר משאיר את הבחירות הקודמות בליסט בוקס בלבד!
r-
פרמטר זה די ידוע והוא פשוט 'מנקה' ובמילים אחרות, מוחק את כל הטקסט שיש באיי די.
דוגמא:
קוד: בחר הכל
//did -r dname id
לסיכום,
פקודה זו תנקה את החלון ואת מה שרשום באיי די.
a-
פרמטר זה מוסיף עוד שורה לסוף של הטקסט הקיים.
דוגמא:
נניח היה בטקסט hello ונרשום-
קוד: בחר הכל
//did -a dname id friend
הוא יוסיף לטקסט הקיים את מה שרשמנו ומה שיתקבל זה "hello friend".
d-
פרמטר זה מוחק מליסט בוקס שורה מסויימת שבחרתם.
התבנית:
קוד: בחר הכל
//did -d dname id N
כפי שראיתם זהו התבנית לפרמטר,
הפרמטר N מציין את מספר השורה שהוא ימחק מהליסט בוקס ...
שימו לב!
פרמטר זה שונה לחלוטין מהפרמטר r-.
הפרמטר r- ימחק את כל הטקסט שקיים באיי די,
ולעומתו הפרמטר d- ימחק רק את מספר השורה (N) שנבחרה!
i-
פרמטר זה מכניס את הטקסט לשורה הנבחרה (N) אך לא ימחק את הקודמת!
דוגמא:
קוד: בחר הכל
//did -i dname id 1 Hello
פקודה זו תכניס את הטקסט "Hello" לליסט בוקס שבאיי די הנבחר ולשורה מס' 1.
התבנית די דומה לקודמת רק פה צריך להכניס טקסט כדי להכניסו לשורה מס' N בליסט בוקס.
אם קיים טקסט בשורה מס' N אז הוא יכניס במקומו את הטקסט שהכנסתם ואת הטקסט שהיה בשורה הוא יוריד לשורה חדשה..
o-
פרמטר זה די דומה לפרמטר i- רק הפעם הוא מחליף את הטקסט הקיים בשורה מס' N בליסט בוקס.
דוגמא:
קוד: בחר הכל
//did -o dname id 2 BRB
פקודה זו תשנה ותחליף את הרשום בשורה מס' 2 לטקסט "BRB".
g-
פרמטר זה קובע אייקון חדש בקונטרול.
דוגמא:
קוד: בחר הכל
/did -g dname id [n] filename
אם אתם שואלים מהו ה [n] אז פשוט הוא מסמל את המספר של התמונה שהוא יציג.
למשל, אם הקובץ הוא mirc.exe ותשנו כל פעם מספר, מה שיוצג לכם כל פעם זה תמונה אחרת של המירק.
z-
פרמטר זה יגדיר את הרוחב של פס הגלילה (scrollbar) שבליסט בוקס לברירת מחדל כלומר מחזיר אותו לגודלו המקורי.
j-
פרמטר זה מחזיר את כל ההגדרות של האדיט בוקס לברירת מחדל במידה ושינית את ההגדרות לפני כן.
עד פה לנושא /did
4. $did
לאחר ששינינו את התוכן של הדיאלוג, את הטקסט והכפתורים, אנו רוצים לקבל מידע עליהם ולדעת מה רשום באדיט ומה רשום בשורה שנבחרה בליסט ועוד..
לכן, במזהה זה תוכלו להשיג הגדרות של איי די מסוים שבדיאלוג ועל זה נפרט כעת.
הפורמט של מזהה זה הוא:
קוד: בחר הכל
$did(name,id)
האפשרויות שניתן להשתמש בהם הם:
text -
מחזיר את הטקסט הנמצא באותו איי די.
לדוגמא:
קוד: בחר הכל
$did(id).text
כמובן שאפשר גם בדרך אחרת לקבל את הטקסט ע"י המזהה עצמו ללא הפרמטר text.
כלומר:
קוד: בחר הכל
$did(id)
פרמטר זה חשוב מאוד ושימושי,
למשל בדיאלוג שיצרתי יש אדיט ואני רוצה לקבל את הטקסט הרשום בתוך האדיט, אז פשוט אני ארשום כך:
קוד: בחר הכל
//echo -a $did(dname,id).text
len -
הפורמט של הפרמטר-
קוד: בחר הכל
$did(dname,id,N)
פרמטר זה מחזיר את אורך הטקסט של אותה שורה שנרשמה בפרמטר N.
דוגמא לשימוש:
קוד: בחר הכל
$did(dname,id,1).len
במקרה זה, הוא יחזיר את האורך של הטקסט המצוי בשורה ראשונה באיי די שציינו ובדיאלוג שציינו..
lines -
מחזיר את מספר השורות הנמצא בטקסט.
לדוגמא בדיאלוג שיצרתי יש אדיט וכעת אני רוצה לדעת כמה שורות יש לי בתוך האדיט, אני אעשה זאת דרך הפקודה הבאה:
קוד: בחר הכל
//echo -a $did(dname,id).lines
פקודה זו תרשום לנו את מספר השורות בו האדיט מכיל.
sel -
מחזיר את מספר השורה שסומנה בליסט בוקס וכו'...
דוגמא:
קוד: בחר הכל
//echo -a $did(dname,id).sel
נניח וסימנתי שורה מסויימת ואני רוצה לדעת מה מספר השורה שסימנתי אז אני אעשה את הפקודה הנ"ל.
seltext -
כמו הקודם רק פה שהוא מחזיר את הטקסט שנבחר באדיט או בליסט בוקס.
נניח שבניתם דיאלוג ובתוכו יש ליסט בוקס ורשום לכם שם כמה דברים..כאשר נלחץ פעמיים על הטקסט שבליסט בוקס זה יעשה לנו כך וכך..
selstart -
מחזיר כמה תווים יש בטקסט לפני התו הראשון של הבחירה במחרוזת.
שימו לב! פרמטר זה עובד רק באדיט בוקס (editbox)!
נניח ויש לנו באדיט את הטקסט הבא:
קוד: בחר הכל
Hello Friend
אם נסמן את האותיות Hell כלומר נסמן מההתחלה ועד האות l שתיווצר המילה "Hell", המזהה יחזיר הוא 0 מפני שהמיקום שסימנו הוא ראשון ולכן אין תווים לפני האות הראשונה במחרוזת ולכן הוא מחזיר 0 תווים.
אם נסמן את האותיות "lo", הוא יחזיר את מספר התווים שלפני האות l שהם 3.
אז מה למעשה גילינו ?
[המספר המתקבל כתוצאה מהפרמטר] + 1 = מס' המיקום של האות הראשונה שסומנה במחרוזת .
selend -
פרמטר מקביל לקודם עם אותו עיקרון.
הפעם הוא לא יחזיר את מס' התווים הקיימים לפני התו הראשון שבמחרוזת שסומנה, אלא יחזיר את המיקום של התו האחרון בבחירה ביחס לכל הטקסט שבמחרוזת.
נחזור שוב לדוגמא:
נניח שוב יש באדיט את הטקסט
קוד: בחר הכל
Hello Friend
אם נסמן הפעם את האותיות "Hell" הוא יחזיר 4 כי התו האחרון בבחירה הוא התו הרביעי ביחס לכל הטקסט.
אם נסמן "lo" הוא יחזיר 5 מפני שהתו האחרון בבחירה הוא o ומיקומו ביחס לכל הטקסט הוא 5.
state -
מחזיר את המצב בו הרדיו או הצ'אקבוקס נמצא,
אם מחזיר 0 הוא לא מסומן, אם מחזיר 1 הוא מסומן.
בדבר זה אנחנו משתמשים לכפתורי check או radio כדי לדעת אם הוא ב"וי" (מסומן) או שהוא לא.
next -
מחזיר את האיי די שיופיע כאשר תלחצו על מקש ה "Tab" במקלדת.
נניח ובאיי די 2 קיים אדיט בוקס, כאשר אני אלחץ על המקש Tab הפוקוס יהיה על איי די אחר, כדי להחזיר את האיי די שעליו הוא מתמקד לאחר שלחצנו נצטרך לרשום:
קוד: בחר הכל
$did(dname,2).next
מחזיר את האיי די שיבוא אחרי שלחצנו על Tab מאיי די מס' 2.
prev -
אותו עיקרון, רק שבפרמטר הזה הוא הפוך.
במקום שיחזיר את האיי די שיבוא אחרי שנלחץ על Tab, הוא יחזיר את האיי די שהיה לפני שלחצנו על הכפתור.
למשל ואנחנו התמקדנו באיי די 3 ולחצתי על הכפתור Tab, הוא יידלג לאיי די אחר ויעשה עליו פוקוס.
כדי להחזיר את האיי די שהיה לפני שלחצנו שבמקרה שלנו הוא 3 נרשום:
קוד: בחר הכל
$did(dname,3).prev
visible -
מחזיר $true אם הקונטרול לא פעיל ומוסתר כאפור.
מחזיר $false אם הכפתור לא מוסתר ונמצא במצב נומרלי.
דוגמא לשימוש-
קוד: בחר הכל
($did(dname,id).visible)
enabled -
מחזיר $true אם הקונטרול מופעל ולא מוסתר ונמצא במצב נורמלי.
מחזיר $false אם הקונטרול לא פעיל ומוסתר כאפור.
דוגמא לשימוש-
קוד: בחר הכל
$did(dname,id).enabled
עד פה סיימנו בנושא $did
5. $didwm
מזהה זה הוא די שימושי וחוסך הרבה לולאות מיותרות וכדומה ...
עיקרו של המזהה הוא להחזיר את מס' השורה שבו הטקסט נמצא בליסט בוקס ע"י wildtext.
פורמט המזהה:
קוד: בחר הכל
$didwm(name,id,wildtext,N)
בטח אתם שואלים את עצמכם מה זה wildtext? מה צריך לרשום ב N ?
אז אני לא אשאיר אתכם בסימני שאלה וניגש ישר לעניין.
name - מציין את שם הדיאלוג שאנו עובדים עליו.
id - מציין את האיי די של הליסט בוקס שאנו רוצים לעבוד עליו.
wildtext - אולי רובכם מכירים את זה, זה כמו באיבנט on text.
מי שיודע את האיבנט on text לא תהיה לו שום בעיה.
ב wildtext נוכל לרשום את הטקסט המדויק שאנו רוצים לחפש או לרשום תו מסוים שהמילה מכילה כדי שיבדוק.
אני בטוח שעדיין זה לא ברור ולכן נביא כמה דוגמאות -
קוד: בחר הכל
//echo -a $didwm(dname,2,mIRCx,0)
נעבור לניתוח המזהה:
dname - ציינתי בהסבר הנ"ל וזהו שם הדיאלוג.
2 - האיי די של הליסט בוקס.
mIRCx - זהו בעצם הפרמטר העיקרי, אנו רוצים לסרוק בכל השורות את המילה "mIRCx" בלבד ומתי שהוא ימצא אותו, הוא יחזיר את מס' השורה בו הוא נמצא.
כמובן שבמקום mIRCx אפשר להכניס כל טקסט אך זהו דוגמא.
הפרמטר '0' פשוט מציין מאיפה להתחיל את הסריקה, כלומר נגיד למירק מאיזה שורה להתחיל לחפש.. אם זה 0 זה יסרוק מההתחלה ואם זה מספר השונה מ0 הוא יסרוק החל משורה זו.
דוגמא נוספת וטיפה יותר מורכבת -
קוד: בחר הכל
//echo -a $didwm(as,2,*IRC*,2)
נעבור על זה בקצרה כי פחות או יותר זה כמעט כמו הקודם.
הפעם ה wildcard שונה. ובטח אתם שואלים מהם הכוכביות שבצדדים ומה הם מסמלים?
הפעם זה לא יסרוק בכל שורה את המילה "IRC" בלבד,
אלא הפעם כפי ששמתם לב בwildcard יש שתי כוכביות "*IRC*"..
מה שזה אומר שבמקום הכוכבית הראשונה יכולה להופיע מילה או כמה מילים וכנ"ל לגבי הכוכבית השניה שבה יכולה להופיע מילה או כמה מילים.
זה יכול להיות AFIRCas או mIRCx או כל דבר אחר שבמקום הכוכבית יש כמה מילים שמייצגות אותו.
בנוסף, הוא יתחיל לסרוק משורה 2 והלאה ..
6. $didreg
מזהה זה פועל בדיוק אותו דבר כמו $didwm רק שמזהה זה פועל לפי regex ולא לפי wildtext.
דוגמא:
קוד: בחר הכל
$didreg(name,id,regex,N)
כפי ששמתם לב יש לו את אותו מבנה רק שכאן מכניסים regex ..
על זה אני לא אפרט כי יש מדריך כזה באתר ולא קשור לנושא זה.
7. $didtok
מזהה זה מחזיר את כל מה שרשום בליסט/קומבו/אדיט בוקס בשורה אחת המחלק אותו לפי מס' הצ'אר שבחרנו.
הפורמט:
קוד: בחר הכל
$didtok(name,id,C)
name - שם הדיאלוג שאנו עובדים עליו.
id - האיי די של הליסט/קומבו/אדיט בוקס.
C - מציין את מס' הצ'אר שאנו רוצים לחבר כל מילה במילה במשפט אחד...
דוגמא:
קוד: בחר הכל
//echo -a $didtok(as,2,32)
פקודה זו בעצם תחזיר את כל השורות הרשומות בליסט הנמצא באיי די מס' 2 כמחוברות המופרדות בצ'אט מס' 32 שהוא רווח.
נניח והיה לנו בליסט את הטקסט הבא:
דני
יוסי
נירה
בר
יוסי
נירה
בר
הוא יחזיר:
דני יוסי נירה בר
כפי ששמתם לב, הוא החזיר את כולם בשורה אשר כל מילה מופרדת בטוקן 32.
8. /didtok
פקודה זו פועלת על אותו עיקרון כמו המזהה $didtok רק כאן היא מבצעת ההיפך.
התבנית:
קוד: בחר הכל
/didtok name id C text
בעיקרון, הפקודה מוסיפה לאיי די את הטקסט הרשום לפי מס' הצ'אר שבחרנו שהוא יפריד ביניהם.
פקודה זו מאוד שימושית וחוסכת המון פקודות חוזרות.
אם שמתם לב, פקודה זו עושה ההיפך מהמזהה רק שפה היא מוסיפה מילה מילה בטקסט שרשמנו עפ"י הפרדה בין מילה למילה של צ'אר מסויים.
במזהה היא לוקחת מטקסט של כמה שורות ומביאה אותו לשורה אחת שכל טקסט שהיה בכל שורה מופרד בצ'אר מסוים.
name - שם הדיאלוג.
id - מס' האיי די של הליסט.
C - מס' הצ'אר שבחרנו שיפריד.
text - הטקסט שאנו רוצים שיוסיף לאיי די,
שימו לב! הטקסט יכול להכיל כמה מילים שלפי מספר הצ'אר שבחרתם הוא יפריד מילה ומילה ויוסיף אותה.. ממש פשוט.
אם עדיין לא הבנתם אני אביא מס' דוגמאות להדגים:
קוד: בחר הכל
//didtok fk 2 32 a b c d e f
כפי שראיתם הטקסט מכיל כמה מילים שהם: a b c d e f.
אם שמתם לב הם מופרדים אחד מהשני ברווח ולכן מס' הצ'אר הוא 32 וזו הסיבה לכך שרשמנו בפקודה 32.
פקודה זו תוסיף לליסט כל מילה המופרדת ברווח לשורה חדשה וזה בעצם קיצור לפקודה הבאה:
קוד: בחר הכל
//did -a as a | did -a as b | did -a as c | did -a as d | did -a as e | did -a as f
חסך הרבה נכון ?
לכן פקודה זו נועדה לקצר את הדרך הזאת בהפרדה של כמה מילים עפ"י הצ'אר.
אם עדיין לא מובן, דוגמא נוספת טיפה שונה:
קוד: בחר הכל
//didtok fk 2 44 a,b,c,d,e,f
אם שמתם לב הפעם הצ'אר הוא לא 32 ולמה ?
כפי ששמתם לב הטקסט הוא: a,b,c,d,e,f ומה שמפריד בין כל מילה (אות) הוא הפסיק שמס' הצ'אט שלו הוא 44.
ולכן מה שנראה בליסט אחרי הפקודה יהיה:
a
b
c
...
b
c
...
מקווה שהפקודה מובנת
9. On Dialog
זהו הדבר העיקרי כדי שנוכל למעשה לגרום לדיאלוג לבצע פעולות שונות בעת פתיחתו, בעת לחיצה על כפתור מסויים, בעת שינוי טקסט באדיט ועוד..
בנושא זה תלמדו על כלל האיבנטים המצויים בדיאלוג.
ולמעשה עם זה תוכלו לרשום את תוכן הדיאלוג שיפעיל אותו.
קיימים מספר איבנטים שנפרט עליהם והם:
1.Init
2.Close
3.Edit
4.Sclick
5.Dclick
6.menu
7.scroll
כהתחלה, התבנית של האיבנט הוא:
קוד: בחר הכל
on *:dialog:dname:event:id:{ commands }
dname - שם הדיאלוג שאנו נרצה לבצע עליו את האיבנט.
event - שם האירוע שנרצה שהוא יבוצע על אותו דיאלוג ועל אותו איי די. שמות האירועים מוזכרים בראשית הנושא.
id - מס' האיי די שאנו נרצה שאותו אירוע יבוצע רק עליו.
אז נתחיל באירועים,
Init
את האיבנט init אפשר להגדיר במילים אחדות - ברגע שהדיאלוג נפתח זה יעשה כך וכך...
שימו לב! באיבנט זה חייב לרשום את האיי די כ - 0 או * כברירת מחדל.
דוגמא:
קוד: בחר הכל
on *:dialog:dname:init:0:{
echo -a כרגע פתחת את הדיאלוג
}
ננתח-
ברגע שנפתח את הדיאלוג זה ירשום "כרגע נפתח הדיאלוג" אך זהו סתם דוגמא רטורית.
כפי שראיתם ודאי שמתם לב ששמתי באיי די 0 ולא שום איי די אחר, חשוב לזכור!
כמובן שזהו לא השימוש היחיד לזה, אלא שבאיבנט זה נהוג לשמור במשתנים דברים מסויימים שנחוצים לדיאלוג ועוד דברים שאני לא אכנס אליהם עכשיו.
Close
האיבנט אומר - ברגע שהדיאלוג נסגר זה יעשה כך וכך..
דוגמא:
קוד: בחר הכל
on *:dialog:dname:Close:{
echo -a תודה שהשתמשת בדיאלוג זה.
}
ננתח-
ברגע שנסגור את הדיאלוג זה ירשום לנו "תודה שהשתמשת בדיאלוג זה."
כמובן שגם לאיבנט זה יש שימושים רבים לזה אבל כרגע זהו סתם דוגמא וכמובן שהוא ישמש כשמירה של דברים מסויימים / מחיקה של דברים מסויימים ועוד..
Edit
האיבנט אומר שברגע שאדיט מתוך אדיטבוקס או מתוך קומבו משתנים או רושמים בתוכם טקסט מסויים אז הפקודה מתרחשת.
דוגמא:
קוד: בחר הכל
on *:dialog:dname:edit:ID:{
echo -a האדיט השתנה
}
ננתח-
ברגע שהאדיט באיי די מסויים משתנה או שרושמים הודעה כלשהי באדיט זה ירשום לנו באקו "האדיט השתנה".
ניתן להשתמש באיבנט זה להוספת טקסט לאדיט, לעצירת פעילות הטקסט באדיט, וכו'..
Sclick
האיבנט אומר שכשלוחצים קליק אחד שמאלי על radio / list / combo / check / button זה יעשה כך וכך..
כאשר תלחצו על כפתור מסוים או על אחד מהפריטים הנ"ל הוא יעשה פקודה מסוימת שבחרתם..
דוגמא:
קוד: בחר הכל
on *:dialog:dname:sclick:ID:{
Commands
}
במקום ה- dname הציבו את שם הדיאלוג ובמקום ה-ID תציבו את האיי די שבחרתם.
Dclick
כאשר עושים דאבל קליק על list או combo box זה יעשה כך וכך..
דוגמא:
קוד: בחר הכל
on *:dialog:dname:dclick:ID: {
if ($did(1).sel == 2) dialog -m bla bla
}
ננתח:
ברגע שנלחץ דאבל קליק בליסט הוא יבדוק אם לחצנו על האיקון הראשון (מתחיל מ-2) ואם כן הוא יפתח את הדיאלוג שרשמנו.
באיבנט זה משתמשים בדרך כלל בקונטרול פאנל שבו יש אייקונים וכאשר לוחצים עליהם הם יפתחו את הדיאלוג הרצוי לו.
כמובן שזה לא השימוש היחידי אבל זהו רק דוגמא אחת.
menu
איבנט זה משמש לתפריט ראשי שבדיאלוג.
כאשר נלחץ על אחד הפריטים שתפריט הדיאלוג הוא יעשה כך וכך ...
דוגמא:
קוד: בחר הכל
on *:dialog:dname:menu:ID:{
echo -a הפריט נלחץ
}
ננתח-
ברגע שאני אלחץ על פריט מסויים בתפריט זה ירשום לי באקו "הפריט נלחץ".
scroll
איבנט זה מתייחס לפס הגלילה שבדיאלוג (scroll),
ברגע שאנו משנים את מיקומו של פס הגלילה ומוזיזים אותו הוא יעשה כך וכך..
דוגמא:
קוד: בחר הכל
on *:dialog:dname:scroll:ID:{
echo -a פס הגלילה השתנה.
}
ננתח-
ברגע שאני אזיז את פס הגלילה הוא ירשום באקו "פס הגלילה השתנה".
לא מצאתי דוגמא שימושית לאיבנט זה אבל הדוגמא מספיקה להמחשה
עד פה סיימנו
תודה מיוחדת ל- Hydro, Subby ובמיוחד ל Gortaor על התמיכה בעת הצורך.
מה שנשאר לאחל הוא שיהיה בהצלחה לכולם!
מדריך זה נכתב ע"י אור Or במקור לפורום mIRCx עבור האתרhttp://www.mIRCx.Co.iL
כל הזכויות שמורות לאור, העתקה אסורה בהחלט!