how to stop code execution - vb6

ALEX999

New member
how to stop code execution - vb6

שלום, יצרתי תוכנית שמורכבת ממספר פונקציות רקורסיביות, לולאות מקוננות ואוסף וואלידציות לשדות . ב - Form ראשי יש פקד "GO".. שברגע שהתוכנית מופעלת ע"י לחיצה על כפתור זה. התווית של הפקד משתנה ל - "STOP". אני מעוניין שברגע שהפקד נלחץ בפעם השניה.. כלומר על תווית STOP... הביצוע של התוכנית יפסק והמסך הראשי ישאר מוצג. להשתמש ב - סוג של Boolean שבודקים אותו בכל מקום אפשרי (כל פונק', לולאה וכו...) שנותן חיווי ולאחריו לבצע את כל סוג ה- exit - sub..function..for...וכו לא נראה לי יעיל במיוחד. כנ"ל לגבי שימוש ב- unload me...מכיוון שאני מעוניין שהמסך של האפליקציה עדיין יוצג. אשמח לשמוע על אפשרות לבצע עצירה ויציאה מוחלטת אשר מביאה חמצב התחלתי. תודה מראש
 

טרמפיסט

New member
כיוון אפשרי

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

ALEX999

New member
DoEvents הוא לא אפשרות מבחינתי

אני מנסה להמנע מהכנסת פקודה \ משתנה גלובלי בכל מקום בו יש לולאה.. זה פשוט נראה לי מיותר להכניס משהו שיבדק בכל מחזור של לולאה כאשר ב 99.9% מקרים הוא אינו נחוץ. תודה בכל מקרה
 
למעלה