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

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



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

תכונות[עריכה]

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

ובכן, מה אפשר לעשות עם תכונה כאשר מתייחסים אליה? הדבר הבסיסי ביותר, אולי, הוא לשים ערך חדש בתכונה זו. דבר זה מתבצע ע"י הסימן שווה = לאחר כתיבת שם התכונה, ולאחריו כתיבת הערך החדש שאתה רוצה לשים בתכונה זו. אם מדובר בערך שהוא מילולי (ולא, למשל, מספרי), יש להקיף אותו במרכאות. לדוגמא, אם יש לך כפתור פקודה בשם cmd_button ואתה רוצה לקבוע את הכיתובית (Caption) שלו ל"שלום" באמצעות קוד, הדבר ייכתב כך:

cmd_button.Caption = "שלום"

כמו כן, ניתן גם להשתמש בתכונה מסוימת של אובייקט מצד ימין של הסימן =. לדוגמא, שורת הקוד הבאה:

cmd_button.Caption = cmd_button.Name

תגרום לכך שהכיתובית של הכפתור תהפוך להיות זהה לשמו של הכפתור, כלומר - על הכפתור יופיעו המילים cmd_button.


Info icon.png
ערכי שמאל וערכי ימין
[עריכה]

שני מושגים שחשוב להכיר בהקשר זה, הם ערכי-שמאל (LValue) וערכי-ימין (RValue). הכיוונים שמאל וימין כאן מתייחסים לשני צדדיו של סימן השווה.

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

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

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

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

עכשיו שאתה מכיר את המושגים הדרושים לשם כך, הבה נתכנת את הכפתור שיצרת בחלק הקודם, כך שברגע שילחצו עליו הוא יגרום לתווית המכילה את שמך להעלם. דבר זה נבצע באמצעות התכונה Visible של התווית. לחץ לחיצה-כפולה על הכפתור cmd_vanish כדי לפתוח את בלוק-המאורע שלו, וכתוב בתוך הבלוק שורה אשר תקבע את ערכה של התכונה Visible של התווית lbl_name לערך False. הדבר צריך להראות כך:

Private Sub cmd_vanish_Click()          'פתיחת בלוק המאורע
lbl_name.Visible = False                'העלמת התווית
End Sub                                 'סגירת בלוק המאורע

בוודאי שמת לב שכאשר כתבת את הסימן = בשורת הקוד האמצעית, Visual Studio אוטומטית פתח לך רשימה עם שתי אפשרויות, True ו-False. כשם שהסטודיו פותח אוטומטית את רשימת התכונות של כל אובייקט כאשר אתה כותב את שמו, הוא פותח אוטומטית רשימות דומות בכל פעם שאתה נמצא במצב בו צריך לבחור מתוך מספר מוגבל של אפשרויות.

כעת, יש לך תוכנה. לחץ על הסימן "התחל" (שנראה כמו Play) המופיע בסרגל הכלים שבראש התוכנה, או על מקש הקיצור שלו F5 (ניתן גם להפעיל באמצעות התפריט Run > Start). כעת יופיע הטופס שעיצבת, ובו הכפתור והתווית המכילה את שמך. הטופס נראה בדיוק כפי שמשתמש המריץ את התוכנה היה רואה אותו. לחץ על הכפתור שהכנת ו- ראה זה פלא! התווית נעלמה! ;-)

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

תרגיל - שינוי תכונה של אובייקט לפי תכונה של אובייקט אחר[עריכה]

כעת, באמצעות הידע שרכשת בפרק האחרון, נסה לכתוב בעצמך תוכנה (התשובה מופיעה להלן - אל תציץ!). מחק את הכפתור והתווית מהטופס (ואל תשכח למחוק גם את כל הקוד מחלון הקוד!), ומקם על הטופס כפתור חדש בשם cmd שעליו יהיה כתוב "העבר". מקם תווית על הטופס, קרא לה lbl וכתוב עליה את שמך. כעת מקם תיבת-טקסט (זהו רכיב נוסף בו עדיין לא השתמשנו, אך ניתן להוסיף אותו בדיוק כפי שהוספת את התווית ואת הכפתור). קרא לתיבה בשם txt. ההבדל בין תיבת-הטקסט (TextBox) לבין התווית (Label) הוא שתווית מכילה כיתובית קבועה מראש אותה ניתן לשנות רק באמצעות קוד, ואילו בתיבת-הטקסט, המשתמש בתוכנה יכול לכתוב בעצמו.

כתוב תוכנית אשר תגרום לכך, שכאשר המשתמש לוחץ על הכפתור, התווית lbl תשנה את תכולתה ותכיל את הטקסט הכתוב בתיבת הטקסט. התוכנה צריכה להיות מסוגלת להתאים את התווית לתיבת-הטקסט שוב ושוב, גם אם המשתמש משנה את תכנה של התיבה. לשם כך עליך לדעת, כי התכונה המכילה את תכנה של תיבת-הטקסט נקראת Text ולא Caption.

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

Private Sub cmd_Click()           'פתיחת בלוק המאורע
lbl.Caption = txt.Text            'העברת הטקסט מהתיבה לתווית
End Sub                           'סיום בלוק המאורע

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


יתכן ששמת לב, שכאשר כתבת את שמו של אובייקט ולאחריו נקודה (כמו cmd.), הרשימה שנפתחה הכילה פריטים שלידם הופיע הסימן Vb property.png וגם פריטים לידם הופיע הסימן Vb method.png. הסימן הראשון מייצג תכונות של אובייקט, שעל השימוש בהן למדנו בפרק זה. הסימן השני מייצג מתודות, עליהן נלמד מאוחר יותר כיוון שהן דורשות רמת-ידע גבוהה יותר בשפה.

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

סיימנו לעבוד על התוכנה הראשונה שלך. כדי לשמור אותה, יש לשמור גם את הפרוייקט (Project) וגם את הטופס (Form). לשם כך, לחץ על תפריט File > Save Form1, ושמור את הטופס בכל שם שבא לך. לאחר מכן, לחץ על File > Save Project ושמור את הפרוייקט. כעת, אם תסגור את Visual Studio או את הפרויקט הנוכחי, תוכל לפתוח שוב את הפרויקט מאוחר יותר ולהמשיך לעבוד עליו.

הידור[עריכה]

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

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

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

יכולת הבנייה אינה קיימת בגרסאות הלימודיות של Visual Basic. אם הגרסה שברשותך אינה גרסה לימודית, כל שעליך לעשות כדי לבנות את התוכנה הוא ללחוץ על הכפתור Make project.exe (כאשר במקום המילה project יופיע שם הפרויקט שלך) שבתפריט File. בחלון שיפתח, בחר איפה לשמור את התוכנה שלך ותן לה שם, ואז לחץ על "אישור". תוך מספר שניות יושלם ההידור, וכעת - יש לך על המחשב תוכנה לכל דבר, אותה ניתן לפתוח מכל מחשב עליו מותקנת מערכת ההפעלה חלונות. כל הכבוד!

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


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