דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. הוספת פרמטר לפרוצדורת אירוע vb6

הוספת פרמטר לפרוצדורת אירוע vb6

מתוזמן נעוץ נעול הועבר ארכיון code613m
7 פוסטים 3 כותבים 390 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

    יש למישהו מושג איך להתגבר על הדבר הזה
    http://msdn.microsoft.com/en-us/library/office/gg264805.aspx
    אני חייב פרמטר לפרוצדורת אירוע ולמרות שאני עושה optional הוא גורם לשגיאה.

    פורסם במקור בפורום CODE613 ב09/12/2013 19:34 (+02:00)

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

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #2

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

      פורסם במקור בפורום CODE613 ב10/12/2013 00:42 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • dovidD מנותק
        dovidD מנותק
        dovid ניהול
        כתב ב נערך לאחרונה על ידי
        #3

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

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

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

        אחרי שאני קורא את הטריק של רחמים, אני מבין שאולי באמת כוונתך לשלוח פרמטר לטופס בעת יצירתו.
        אם ככה אתה אמור להשתמש בפרמטר בקונסטרקטור, ובאמת בVBA אני לא יודע איך עושים זאת, יעויין http://stackoverflow.com/questions/15224113/pass-arguments-to-constructor-in-vba

        פורסם במקור בפורום CODE613 ב10/12/2013 14:36 (+02:00)

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        תגובה 1 תגובה אחרונה
        0
        • א מנותק
          א מנותק
          ארכיטקט
          כתב ב נערך לאחרונה על ידי
          #4

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

          פורסם במקור בפורום CODE613 ב10/12/2013 22:56 (+02:00)

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

          תגובה 1 תגובה אחרונה
          0
          • רחמיםר מנותק
            רחמיםר מנותק
            רחמים מורחק
            כתב ב נערך לאחרונה על ידי
            #5

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

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

            פורסם במקור בפורום CODE613 ב11/12/2013 09:23 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #6

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

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

              פורסם במקור בפורום CODE613 ב11/12/2013 11:13 (+02:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0
              • א מנותק
                א מנותק
                ארכיטקט
                כתב ב נערך לאחרונה על ידי
                #7

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

                פורסם במקור בפורום CODE613 ב11/12/2013 15:38 (+02:00)

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

                תגובה 1 תגובה אחרונה
                0

                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום