ABA


"שאלה פשוטה (לכם) ב-VB6, אני צריך שמישהו"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #8512 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 8512
M h

   17:41   09.12.02   
אל הפורום  
  שאלה פשוטה (לכם) ב-VB6, אני צריך שמישהו  
 
   עבר עריכה לאחרונה בתאריך 09.12.02 בשעה 17:55
 
יסביר לי מה אני עושה כדי לקבל לחצן פקודה של Close ? אני כל הזמן צריך לעשות debug ואני לא מבין מה הבעיה.
זה הקוד שכתבתי:
Private Sub cmdClose_Click()
cmdClose.Value = True
End Sub

וזה מה שכותבים לי אחרי שאני מפעיל את הקובץ:
http://rotter.net/User_files/nor/3df4bce605781712.gif

בתודה מראש למי שעוזר.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה מתכוון לכפתור שלחיצה עליו תצא מהתוכנית? BubbleBoy 09.12.02 20:33 1
  תשובה: Dudenland 10.12.02 16:46 2
     תודה רבה לשניכם עזרתם לי מאוד!!!! M h 10.12.02 19:22 3

       
BubbleBoy

   20:33   09.12.02   
אל הפורום  
  1. אתה מתכוון לכפתור שלחיצה עליו תצא מהתוכנית?  
בתגובה להודעה מספר 0
 
   אם כן אז:

Private Sub cmdClose_Click()
End
End Sub


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Dudenland

   16:46   10.12.02   
אל הפורום  
  2. תשובה:  
בתגובה להודעה מספר 0
 
   כל תוכנית שאתה בונה, כשהיא מועלה לזיכרון (כשאתה מפעיל אותה), היא מעלה לזיכרון את קטע הנתונים (משתנים וכו'...), ואת קטע הקוד (פונקציות וכו'...).

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

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

כשנתת את הפקודה cmdClose.Value = True, בעצם אמרת שהכפתור לחוץ...זאת אומרת שכאילו לחצת עליו...

ברגע שאתה עושה את זה בפונקצייה שמטפלת במצבים שבהם הכפתור נלחץ, הפונקצייה הזו (Private Sub cmdClose_Click) קוראת לעצמה..ברקורסייה...בלי תנאי...

כלומר, אתה כאילו יוצר לולאה אינסופית...אבל בכל זאת, קיבלת סוף...למה ?

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
M h

   19:22   10.12.02   
אל הפורום  
  3. תודה רבה לשניכם עזרתם לי מאוד!!!!  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net