Visual Basic/יסודות השימוש בשפה/תכונות השפה

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
קפיצה לניווט קפיצה לחיפוש
Visual Basic 6.0



גם אלו שמכירים שפות תכנות שונות כגון פסקל או C, יתכן ואינם מכירים שתי תכונות חשובות של Visual Basic: עצמים (Object) ומאורעות (Event).

תכנות עם עצמים[עריכה]

עצם ב-Visual Basic יכול להיות כמעט כל דבר, בין אם נראה לעין - כפתור שלוחצים עליו, תיבת-טקסט להזנת מידע כתוב - או נסתר - טיימר שמשגר פקודה למחשב בכל פעם שעובר פרק זמן מסוים, אובייקט לוגי המאפשר גישה למערכת הקבצים של מחשב, וכו'. עצמים נראים-לעין, המהווים חלק מממשק המשתמש הגרפי (GUI - Graphic User Interface) דרכו המשתמש מבצע אינטראקציה עם המחשב, נקראים גם פקדים (Control או Widget).

לכל עצם ופקד ב-Visual Basic קיימים לפחות חלק מהמאפיינים הבאים:

  • תכונות (Properties) - תכונות קובעות במידה רבה את דרך הפעולה של אובייקט. כשמדובר בפקדים, תכונותיהם הן גם אלו שקובעות כיצד הם יראו. באמצעותן ניתן להגדיר את רוחבה של תיבת-טקסט או את הכיתובית שמופיעה בתווית הנמצאת על הטופס שלך. אתה קובע מה יהיו תכונותיו של אובייקט בעת הפעלת התוכנה, ואז גורם להן להשתנות באופן דינמי תוך-כדי פעולת התוכנה באמצעות פקודות שאתה כותב בקוד התוכנה. ישנן תכונות שניתן לקבוע אותן מראש ולא ניתן לשנותן בעת הרצת התוכנה, וישנן גם תכונות שאפשר להתייחס אליהן רק בעת ההרצה ולא בעת העיצוב, אך לרוב התכונות ניתן לגשת בכל עת.
  • מאורעות (Events) - כפי שתלמד להלן, תכנות Visual Basic מבוסס על אירועים. לכל עצם ישנם מספר אירועים שעלולים להתרחש אצלו - למשל, לחיצה על כפתור היא אירוע. פירוט נוסף על כך נמצא מעט בהמשך.
  • שיטות (Methods) - שיטות הן פעולות שונות שאובייקט יכול לבצע, או - לרוב - שניתן לבצע עליו. הוספת פריט לתיבת-רשימה היא דוגמא לשיטה, כמו-גם ציור קו על תיבת-תמונה, והזזת טופס ממקומו. בקוד של התוכנה נקבע איזו שיטה תיקרא מתי, והדבר מתבצע בעת ההרצה. לחלק גדול מהשיטות צריך לתת נתונים שונים לפעולתן. אם להשתמש בדוגמאות שנתנו לעיל, כאשר ברצונך להוסיף פריט לתיבת רשימה יש לציין את שמו של הפריט החדש ואת מיקומו, בשביל לצייר קו צריך לתת את קואורדינטות ההתחלה והסיום שלו כמו גם את הצבע שלו, ובשביל להזיז טופס ממקומו יש לקבוע מה יהיה המיקום החדש שלו.


Hands-on.png
מיקום עצמים וקביעת תכונותיהם
[עריכה]

ועכשיו, לאחר שרכשת מעט ידע בסיסי, הגיע הזמן להתחיל את השלבים הראשונים בבניית תוכנה. פתח את תוכנת Visual Studio ובחר לפתוח פרויקט חדש, עם טופס הפעלה סטנדרטי (Standard EXE). המשך לעקוב אחר ההוראות שלהלן.

עיצוב טופס[עריכה]

החלון שהופיע כעת על המסך, שבראשו הכיתובית Form1, הוא למעשה הפקד הראשון שלך ב-Visual Basic - הטופס (Form), שהוא אחת מאבני הבניין של השפה. כעת, הבה נראה כיצד ניתן לשנות את תכונות הטופס ובכך להשפיע על ייצוגו הגרפי - כלומר, המראה שלו.

בצדו התחתון ובצדו הימני של הטופס שיצרת, כמו-גם בפינה הימנית-התחתונה, ישנם ריבועים קטנים. קבע את גודלו של הטופס על-ידי לחיצה על ריבועים אלו וגרירת העכבר. ניתן גם לשנות את הגודל באמצעות התכונות Height (גובה) ו-Width (רוחב); כדי להגיע אליהן, לחץ על הטופס, ואז מצא בחלון תכונות האובייקט (Object Properties) שמימין את התכונות המתאימות, ושנה אותן ידנית (אם החלון לא נמצא, פתח אותו באמצעות התפריט View > Properties Window או עם כפתור סרגל-הכלים המתאים). כמו-כן, וודא שהתכונה StartUpPosition (מיקום התחלתי) קבועה לאפשרות 0 - Manual (ידני).

שים לב! הגודל המצוין בתכונות הגובה והרוחב אינו מדוד בפיקסלים אלא ביחידת מידה הנקראת טוויפ, שהוא 1/20 מפיקסל (Twip = Twentieth of a Pixel). ניתן גם לשנות את גודל הטופס על-פי יחידות מידה אחרות - פשוט שנה את התכונה ScaleMode (סוג קנה-מידה) ליחידה המועדפת עליך, ואז קבע את גודל הטופס באמצעות התכונות ScaleWidth ו-ScaleHeight (רוחב בקנ"מ, גובה בקנ"מ). שים לב שהתכונות Width ו-Height עדיין נמדדות ביחידות טוויפ.

כעת, קבע את מיקומו ההתחלתי של הטופס בחלון פריסת-הטופס (Form Layout) שנמצא מתחת לחלון תכונות האובייקט (אם חלון זה לא נמצא שם, פתח אותו באמצעות View > Form Layout Window או באמצעות כפתור סרגל-הכלים המתאים). אם משום-מה אינך מסוגל לקבוע את מיקומו ההתחלתי של החלון, נסה (לאחר שקבעת את StartUpPosition) ללחוץ על הכפתור Run (שנראה כמו Play) בסרגל-הכלים למעלה, ולאחר מכן על End (שנראה כמו Stop), ואז נסה שוב; זוהי תקלה בסביבת העבודה של Visual Studio אשר מתרחשת לפעמים. לסיום עיצוב הטופס עצמו, כדאי לשנות את הכותרת שמופיעה בראשו. כדי לבצע זאת יש לשנות את התכונה Caption (כיתובית) של הטופס. שנה אותה ל"התוכנה הראשונה שלי" או כל שם אחר שיעלה על רוחך.

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

פקדים נוספים[עריכה]

הגיע הזמן "לאכלס" את הטופס שלך. מקם תווית (Label) על הטופס באמצעות לחיצה על הכפתור המתאים בסרגל הרכיבים (Components Tab) שמשמאל. לחיצה בודדת תאפשר לך למקם ידנית את התווית, ואילו לחיצה כפולה תמקם תווית בגודל סטנדרטי במרכז הטופס. כתוב בתוך התווית (באמצעות התכונה Caption) את שמך. ניתן לשנות את הפונט של התווית ע"י בחירת התכונה Font ואז לחיצה על הכפתור המכיל שלוש נקודות שיופיע. ניתן גם לשנות את צבע הרקע של התווית באמצעות BackColor; אם תבחר את אחד מצבעי-המערכת (System), התווית תתאים את צבעה לפי הגדרות המחשב של המשתמש (לדוגמא, הגדרת ברירת המחדל ButtonFace קובעת כי צבע התווית יהיה הצבע המוגדר במחשב-המשתמש כצבע של כפתורים), ואם תבחר צבע-טבלא (Pallet) הצבע יהיה קבוע ללא התחשבות בהגדרות המחשב. ניתן גם לשנות את צבע הכתב בתווית באמצעות התכונה ForeColor.

כעת, הוסף גם כפתור-פקודה (CommandButton) לטופס כפי שהוספת תווית. כתוב עליו (ב-Caption) "העלם", ועצב אותו לפי ראות עיניך. שים לב, שכדי לשנות את צבעו של הכפתור, צריך קודם-כל לקבוע את הסגנון (Style) שלו ל-1 - Graphical (גרפי).

מתן שמות[עריכה]

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

נהוג לתת שם המתחיל בקידומת של שלוש אותיות המייצגות את סוג האובייקט, ולאחריהן תיאור של תפקיד האובייקט. לכן, לתווית זו נקרא בשם lblName (קידומת lbl עבור Label, ו-Name כיוון שתפקידה הוא להכיל את השם שלך). לכפתור, קרא בשם cmdVanish.

חשוב לדעת כי בכל שפות התכנות, שמות (בין אם הם שמות של אובייקטים, משתנים, הליכים או כל דבר אחר) יכולים להכיל רק מספרים ואותיות, וקו-תחתון. השם לא יכול להכיל רווחים או תווים כגון !-,+ וכו'. בנוסף, השם אינו יכול להתחיל במספר, אך הוא יכול להכיל מספר. כמו-כן, לכל אובייקט חייב להיות שם מיוחד לו, ולא יתכנו שני אובייקטים מאותו שם. בנוסף, ישנן מספר מילות מפתח (Keywords) אשר מבצעות פעולות שונות, ולא ניתן לתת שם התפוס כבר על-ידי אחת ממילות המפתח. רשימה חלקית של מילות מפתח ב-Visual Basic ניתן למצוא בנספח א'.

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

תכנות עם מאורעות[עריכה]

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

לכל מאורע יש בלוק של קוד המתבצע בעת התרחשות המאורע. בנוסף, חלק מהמאורעות מקבלים פרמטרים (Parameters) שונים לביצועם. למשל, אם הכנסת טקסט לתיבת טקסט, אחד מהפרמטרים של המאורע יכיל את הטקסט שהוכנס.

לחץ לחיצה-כפולה על כפתור-הפקודה cmdVanish שציירת על הטופס שלך. הדבר יפתח חלון קוד ובו שורת הקוד הבאה:

Private Sub cmdVanish_Click()

על-ידי לחיצה כפולה על פקד, ניתן ליצור בלוק-מאורע של פקד זה, המתייחס למאורע ברירת-המחדל של הפקד. במקרה זה, הופיע מאורע המתרחש כאשר מתבצעת לחיצה (Click) על פקד הכפתור (cmdVanish).

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

תיבת הרשימה הימנית מכילה את רשימת כל המאורעות הרלוונטים לפקד שאתה מתייחס אליו כרגע. למשל, עבור פקד cmdVanish (או כל כפתור-פקודה אחר) יופיעו ברשימה מאורעות כגון KeyPressed המתרחש כאשר המשתמש לוחץ על מקש במקלדת בזמן שהכפתור מסומן, או GotFocus המתרחש כאשר הכפתור קיבל את הפוקוס (דבר שנלמד עליו בהמשך).

לאחר שלמדת מהם מאורעות וכיצד ניתן לכתוב בלוק-מאורע ב-Visual Basic, המשך לשלב הבא בו תלמד כיצד לגרום למארועות אלו לבצע פעולות שונות. בשלב הבא תמשיך להשתמש בתוכנה שכתבת כאן.


יסודות השימוש בשפה
- תכונות השפה תכנות בסיסי עם אובייקטים