Visual Basic/יסודות השימוש בשפה/תכונות השפה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
יצירת הדף, קישור לדף הבא ולדף הראשי
 
מ שינויים קלים
שורה 1:
{{Visual Basic}}
גם אלו שמכירים שפות תכנות שונות כגון [[Wikipedia:he:פסקל (שפת תכנות)|פסקל]] או [[Wikipedia:he:C (שפת תכנות)|C]], יתכן ואינם מכירים שתי תכונות חשובות של Visual Basic: אובייקטיםעצמים (Object) ומאורעות (Event).
 
== תכנות עם אובייקטיםעצמים ==
'''אובייקטעצם''' ב-Visual Basic יכול להיות כמעט כל דבר, בין אם נראה לעין - כפתור שלוחצים עליו, תיבת-טקסט להזנת מידע כתוב - או נסתר - טיימר שמשגר פקודה למחשב בכל פעם שעובר פרק זמן מסוים, אובייקט לוגי המאפשר גישה למערכת הקבצים של מחשב, וכו'. ישנםעצמים מספרנראים-לעין, דבריםהמהווים המייחדיםחלק אתמ'''ממשק האובייקטיםהמשתמש השוניםהגרפי''' ('''GUI''' ב-Visual Basic:Graphic User Interface) דרכו המשתמש מבצע אינטראקציה עם המחשב, נקראים גם '''פקדים''' (Control או Widget).
*[[תמונה:Vb_property.png]] '''תכונות (Properties)''' - תכונות קובעות במידה רבה את דרך הפעולה של אובייקט ואת המראה שלו (אם הוא אובייקט נראה לעין). באמצעותן ניתן להגדיר את רוחבה של תיבת-טקסט או את הכיתובית שמופיעה בתווית הנמצאת על הטופס שלך. אתה קובע מה יהיו תכונותיו של אובייקט בעת הפעלת התוכנה, ואז גורם להן להשתנות באופן דינמי תוך-כדי פעולת התוכנה באמצעות פקודות שאתה כותב בקוד התוכנה. ישנן תכונות שניתן לקבוע אותן מראש ולא ניתן לשנותן בעת הרצת התוכנה, וישנן גם תכונות שאפשר להתייחס אליהן רק בעת ההרצה ולא בעת העיצוב, אך לרוב התכונות ניתן לגשת בכל עת.
 
לכל עצם ופקד ב-Visual Basic קיימים לפחות חלק מהמאפיינים הבאים:
*[[תמונה:Vb_event.png]] '''מאורעות (Events)''' - כפי שתלמד להלן, תכנות Visual Basic מבוסס על אירועים. לכל אובייקט ישנם מספר אירועים שעלולים להתרחש אצלו - למשל, לחיצה על כפתור היא אירוע. פירוט נוסף על כך נמצא מעט בהמשך.
*[[תמונה:Vb_property.png]] '''תכונות (Properties)''' - תכונות קובעות במידה רבה את דרך הפעולה של אובייקט. ואתכשמדובר המראהבפקדים, שלותכונותיהם (אםהן הואגם אובייקטאלו נראהשקובעות לעין)כיצד הם יראו. באמצעותן ניתן להגדיר את רוחבה של תיבת-טקסט או את הכיתובית שמופיעה בתווית הנמצאת על הטופס שלך. אתה קובע מה יהיו תכונותיו של אובייקט בעת הפעלת התוכנה, ואז גורם להן להשתנות באופן דינמי תוך-כדי פעולת התוכנה באמצעות פקודות שאתה כותב בקוד התוכנה. ישנן תכונות שניתן לקבוע אותן מראש ולא ניתן לשנותן בעת הרצת התוכנה, וישנן גם תכונות שאפשר להתייחס אליהן רק בעת ההרצה ולא בעת העיצוב, אך לרוב התכונות ניתן לגשת בכל עת.
 
*[[תמונה:Vb_event.png]] '''מאורעות (Events)''' - כפי שתלמד להלן, תכנות Visual Basic מבוסס על אירועים. לכל אובייקטעצם ישנם מספר אירועים שעלולים להתרחש אצלו - למשל, לחיצה על כפתור היא אירוע. פירוט נוסף על כך נמצא מעט בהמשך.
*[[תמונה:Vb_method.png]] '''מתודות/שיטות (Methods)''' - מתודות הן פעולות שונות שאובייקט יכול לבצע, או - לרוב - שניתן לבצע עליו. הוספת פריט לתיבת-רשימה היא דוגמא למתודה, כמו-גם ציור קו על תיבת-תמונה, והזזת טופס ממקומו. בקוד של התוכנה נקבע איזו מתודה תיקרא מתי, והדבר מתבצע בעת ההרצה. לחלק גדול מהמתודות צריך לתת נתונים שונים לפעולתן. אם להשתמש בדוגמאות שנתנו לעיל, כאשר ברצונך להוסיף פריט לתיבת רשימה יש לציין את שמו של הפריט החדש ואת מיקומו, בשביל לצייר קו צריך לתת את קואורדינטות ההתחלה והסיום שלו כמו גם את הצבע שלו, ובשביל להזיז טופס ממקומו יש לקבוע מה יהיה המיקום החדש שלו.
 
*[[תמונה:Vb_method.png]] '''מתודות/שיטות (Methods)''' - מתודותשיטות הן פעולות שונות שאובייקט יכול לבצע, או - לרוב - שניתן לבצע עליו. הוספת פריט לתיבת-רשימה היא דוגמא למתודהלשיטה, כמו-גם ציור קו על תיבת-תמונה, והזזת טופס ממקומו. בקוד של התוכנה נקבע איזו מתודהשיטה תיקרא מתי, והדבר מתבצע בעת ההרצה. לחלק גדול מהמתודותמהשיטות צריך לתת נתונים שונים לפעולתן. אם להשתמש בדוגמאות שנתנו לעיל, כאשר ברצונך להוסיף פריט לתיבת רשימה יש לציין את שמו של הפריט החדש ואת מיקומו, בשביל לצייר קו צריך לתת את קואורדינטות ההתחלה והסיום שלו כמו גם את הצבע שלו, ובשביל להזיז טופס ממקומו יש לקבוע מה יהיה המיקום החדש שלו.
 
 
=== [[Image:Hands-on.png|right]]מיקום אובייקטיםעצמים וקביעת תכונותיהם ===
 
ועכשיו, לאחר שרכשת מעט ידע בסיסי, הגיע הזמן להתחיל את השלבים הראשונים בבניית תוכנה. פתח את תוכנת Visual Studio ובחר לפתוח פרויקט חדש, עם טופס הפעלה סטנדרטי (Standard EXE). המשך לעקוב אחר ההוראות שלהלן.
 
==== עיצוב טופס ====
 
החלון שהופיע כעת על המסך, שבראשו הכיתובית ''Form1'', הוא למעשה הפקד הראשון שלך ב-Visual Basic - ה'''טופס''' (Form), שהוא אחת מאבני הבניין של השפה. כעת, הבה נראה כיצד ניתן לשנות את '''תכונות''' הטופס ובכך להשפיע על ייצוגו הגרפי - כלומר, המראה שלו.
 
בצדו התחתון ובצדו הימני של הטופס שיצרת, כמו-גם בפינה הימנית-התחתונה, ישנם ריבועים קטנים. קבע את גודלו של הטופס על-ידי לחיצה על ריבועים אלו וגרירת העכבר. ניתן גם לשנות את הגודל באמצעות התכונות ''Height'' (גובה) ו-''Width'' (רוחב); כדי להגיע אליהן, לחץ על הטופס, ואז מצא בחלון תכונות האובייקט (Object Properties) שמימין את התכונות המתאימות, ושנה אותן ידנית (אם החלון לא נמצא, פתח אותו באמצעות התפריט View > Properties Window או עם כפתור סרגל-הכלים המתאים) את התכונות המתאימות ושנה אותן ידנית (שים לב! הגודל המצוין שם אינו מדוד ב[[Wikipedia:he:פיקסל|פיקסלים]] אלא ביחידת מידה הנקראת [[Wikipedia:he:טוויפ|טוויפ]], אשר מהווה לרוב כ1/20 מפיקסל). כמו-כן, וודא שהתכונה ''StartUpPosition'' (מיקום התחלתי) קבועה לאפשרות 0 - Manual (ידני).
 
שים לב! הגודל המצוין בתכונות הגובה והרוחב אינו מדוד ב[[Wikipedia:he:פיקסל|פיקסלים]] אלא ביחידת מידה הנקראת [[Wikipedia:he:טוויפ|טוויפ]], שהוא 1/20 מפיקסל (Twip = Twentieth of a Pixel). ניתן גם לשנות את גודל הטופס על-פי יחידות מידה אחרות - פשוט שנה את התכונה ''ScaleMode'' (סוג קנה-מידה) ליחידה המועדפת עליך, ואז קבע את גודל הטופס באמצעות התכונות ''ScaleWidth'' ו-''ScaleHeight'' (רוחב בקנ"מ, גובה בקנ"מ). שים לב שהתכונות Width ו-Height עדיין נמדדות ביחידות טוויפ.
בצדו התחתון ובצדו הימני של הטופס שיצרת, כמו-גם בפינה הימנית-התחתונה, ישנם ריבועים קטנים. קבע את גודלו של הטופס על-ידי לחיצה על ריבועים אלו וגרירת העכבר. ניתן גם לשנות את הגודל באמצעות התכונות ''Height'' (גובה) ו-''Width'' (רוחב); כדי להגיע אליהן, לחץ על הטופס, ואז מצא בחלון תכונות האובייקט (Object Properties) שמימין (אם החלון לא נמצא, פתח אותו באמצעות התפריט View > Properties Window או עם כפתור סרגל-הכלים המתאים) את התכונות המתאימות ושנה אותן ידנית (שים לב! הגודל המצוין שם אינו מדוד ב[[Wikipedia:he:פיקסל|פיקסלים]] אלא ביחידת מידה הנקראת [[Wikipedia:he:טוויפ|טוויפ]], אשר מהווה לרוב כ1/20 מפיקסל). כמו-כן, וודא שהתכונה ''StartUpPosition'' (מיקום התחלתי) קבועה לאפשרות 0 - Manual (ידני).
 
כעת, קבע את מיקומו ההתחלתי של הטופס בחלון פריסת-הטופס (Form Layout) שנמצא מתחת לחלון תכונות האובייקט (אם חלון זה לא נמצא שם, פתח אותו באמצעות View > Form Layout Window או באמצעות כפתור סרגל-הכלים המתאים). אם משום-מה אינך מסוגל לקבוע את מיקומו ההתחלתי של החלון, נסה (לאחר שקבעת את StartUpPosition) ללחוץ על הכפתור Run (שנראה כמו Play) בסרגל-הכלים למעלה, ולאחר מכן על End (שנראה כמו Stop), ואז נסה שוב; זוהי תקלה בסביבת העבודה של Visual Studio אשר מתרחשת לפעמים. לסיום עיצוב הטופס עצמו, כדאי לשנות את הכותרת שמופיעה בראשו. כדי לבצע זאת יש לשנות את התכונה ''Caption'' (כיתובית) של הטופס. שנה אותה ל"התוכנה הראשונה שלי" או כל שם אחר שיעלה על רוחך.
שורה 23 ⟵ 29:
'''שים לב!''' שינוי הכיתובית של הטופס '''לא''' נעשה באמצעות התכונה ''שם'' (Name). לתכונה זו יש תפקיד אחר, אותו תלמד בהמשך, תחת [[#מתן שמות|מתן שמות]].
 
====אובייקטים פקדים נוספים ====
 
הגיע הזמן "לאכלס" את הטופס שלך. מקם תווית (Label) על הטופס באמצעות לחיצה על הכפתור המתאים בסרגל הרכיבים (Components Tab) שמשמאל. לחיצה בודדת תאפשר לך למקם ידנית את התווית, ואילו לחיצה כפולה תמקם תווית בגודל סטנדרטי במרכז הטופס. כתוב בתוך התווית (באמצעות התכונה ''Caption'') את שמך. ניתן לשנות את הפונט של התווית ע"י בחירת התכונה ''Font'' ואז לחיצה על הכפתור המכיל שלוש נקודות שיופיע. ניתן גם לשנות את צבע הרקע של התווית באמצעות ''BackColor''; אם תבחר את אחד מצבעי-המערכת (System), התווית תתאים את צבעה לפי הגדרות המחשב של המשתמש (לדוגמא, הגדרת ברירת המחדל ButtonFace קובעת כי צבע התווית יהיה הצבע המוגדר במחשב-המשתמש כצבע של כפתורים), ואם תבחר צבע-פלטהטבלא (PalettePallet) הצבע יהיה קבוע ללא התחשבות בהגדרות המחשב. ניתן גם לשנות את צבע הכתב בתווית באמצעות התכונה ''ForeColor''.
 
כעת, הוסף גם כפתור-פקודה (CommandButton) לטופס כפי שהוספת תווית. כתוב עליו (ב-Caption) "העלם", ועצב אותו לפי ראות עיניך. שים לב, שכדי לשנות את צבעו של הכפתור, צריך קודם-כל לקבוע את ה''סגנון'' (Style) שלו ל-1 - Graphical (גרפי).
שורה 33 ⟵ 39:
בוודאי שמת לב כי גם לטופס שלך וגם לתווית ישנה תכונה הנקראת "שם" (Name) המופיעה בראש הרשימה. בניגוד למה שאולי ציפית, תכונה זו אינה קובעת את הטקסט שיופיע על התווית או הטופס. זוהי תכונה שאין לה שום השפעה ויזואלית, אך היא התכונה שבאמצעותה ניתן להתייחס לאובייקט דרך הקוד. בהמשך תלמד כיצד להשתמש בתכונה זו בקוד. בינתיים, קבע שם לתווית ולכפתור שלך.
 
נהוג לתת שם המתחיל בקידומת של שלוש אותיות המייצגות את סוג האובייקט, ולאחריהן תיאור של תפקיד האובייקט. לכן, לתווית זו נקרא בשם lbl_namelblName (קידומת lbl עבור Label, ו-nameName כיוון שתפקידה הוא להכיל את השם שלך). צורת כתיבה נהוגה נוספת היא lblName. לכפתור, קרא בשם cmd_vanishcmdVanish.
 
חשוב לדעת כי בכל שפות התכנות, שמות (בין אם הם שמות של אובייקטים, משתנים, הליכים או כל דבר אחר) יכולים להכיל רק מספרים ואותיות, וקו-תחתון. השם לא יכול להכיל רווחים או תווים כגון !-,+ וכו'. בנוסף, השם אינו יכול להתחיל במספר, אך הוא יכול להכיל מספר. כמו-כן, לכל אובייקט חייב להיות שם מיוחד לו, ולא יתכנו שני אובייקטים מאותו שם. בנוסף, ישנן מספר מילות מפתח (Keywords) אשר מבצעות פעולות שונות, ולא ניתן לתת שם התפוס כבר על-ידי אחת ממילות המפתח. רשימה חלקית של מילות מפתח ב-Visual Basic ניתן למצוא ב[[Visual Basic/נספח - טבלאות שימושיות|נספח א']].
 
ברגע זה, סיימת את עיצוב הטופס הראשון שלך. כל הכבוד! כעת המשך וקרא את הפרק הבא, בו תחל ללמוד כיצד ניתן לכתוב קוד אשר יגרום לתוכניתך לבצע פעולות.
 
== תכנות עם מאורעות ==
 
'''אירועים''' או '''מאורעות''' ('''Events''') הם מקרים שונים המתרחשים בעת הרצת התוכנה שלך. לחיצה על כפתור, הכנסת טקסט לתיבת-טקסט וגלילה בפס-גלילה - כולן דוגמאות לאירועים. Visual Basic, שלא כמו שפות תכנות רבות אשר מבצעות את הקוד הכתוב בהן לפי הסדר, יודע אילו שורות קוד לבצע לפי ה'''מאורע''' שמפעיל את הקוד הזה.
שורה 45 ⟵ 51:
לכל מאורע יש בלוק של קוד המתבצע בעת התרחשות המאורע. בנוסף, חלק מהמאורעות מקבלים '''פרמטרים''' (Parameters) שונים לביצועם. למשל, אם הכנסת טקסט לתיבת טקסט, אחד מהפרמטרים של המאורע יכיל את הטקסט שהוכנס.
 
לחץ לחיצה-כפולה על כפתור-הפקודה cmd_vanishcmdVanish שציירת על הטופס שלך. הדבר יפתח חלון קוד ובו שורת הקוד הבאה: <div style="direction:ltr;"><BR>
Private Sub cmd_vanish_Click()
</div style>על-ידי לחיצה כפולה על אובייקטפקד, ניתן ליצור בלוק-מאורע של אובייקטפקד זה, המתייחס למאורע ברירת-המחדל של אובייקט זההפקד. במקרה זה, הופיע מאורע המתרחש כאשר מתבצעת לחיצה (Click) על אובייקטפקד הכפתור (cmd_vanish).
 
בחלקו העליון של חלון הקוד נמצאות שתי תיבות-רשימה. השמאלית מכילה רשימה של כל האובייקטיםהפקדים הממוקמים על הטופס שלך (כולל הטופס עצמו). לחיצה על כל אחד מהאובייקטיםמהפקדים תיצור בלוק-מאורע חדש עבור מאורע ברירת-המחדל של אובייקטפקד זה. למשל, אם תלחץ על האובייקטהפקד Form, יתקבל הבלוק <tt>Form_Load</tt> אשר מתרחש ברגע שהטופס מופיע על המסך (כלומר, ברגע שהתוכנה מופעלת). איננו צריכים מאורע זה כרגע, לכן אתה יכול למחוק אותו (אם כי הוא גם לא יפריע אם ישאר).
 
תיבת הרשימה הימנית מכילה את רשימת כל המאורעות הרלוונטים לאובייקטלפקד שאתה מתייחס אליו כרגע. למשל, עבור אובייקטפקד cmd_vanishcmdVanish (או כל כפתור-פקודה אחר) יופיעו ברשימה מאורעות כגון KeyPressed המתרחש כאשר המשתמש לוחץ על מקש במקלדת בזמן שהכפתור מסומן, או GotFocus המתרחש כאשר הכפתור קיבל את הפוקוס (דבר שנלמד עליו בהמשך).
 
לאחר שלמדת מהם מאורעות וכיצד ניתן לכתוב בלוק-מאורע ב-Visual Basic, המשך לשלב הבא בו תלמד כיצד לגרום למארועות אלו לבצע פעולות שונות. בשלב הבא תמשיך להשתמש בתוכנה שכתבת כאן.