שימוש במערך פקדים ב++VC

שימוש במערך פקדים ב++VC

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

ihovav

New member
תשובה :

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

ציינת בתשובה שלך "מופעלת פונקציה של התיבה..." - ואם יש 250 תיבות?! מה אז? תעשה COPY ו-PASTE הרבה פעמים (249)?! זו לא הדרך. אמורה להיות פונקציה אחת בלבד שמקושרת בדרך כלשהי למערך פקדים, וכל הקשה על אות באחד הפקדים מיד קוראת לאותה פונקציה, תוך שהיא מעבירה כפרמטר את האינדקס של הפקד או המזהה שלו וכך בעזרת פונקציה אחת כללית, ניתן לטפל במספר לא מוגבל ולא ידוע מראש של פקדים במערך. כמו שהזכרתי, למי שמכיר VB - שם זה ממומש בדיוק כך, אבל שם זה חלק ממה שמספקת סביבת העבודה, לא צריך לעשות משהו מיוחד. מה המקביל ב-VC? תודה.
 

ihovav

New member
לא הבנת את הכוונה...

הכוונה לפונקציה של הקלאס שמכיל את מערך התיבות - ל DOCUMENT CLASS אותו הקלאס צריך להכיל מטודה שהפרמטר שהיא מקבלת הוא האינדקס - והיא יודעת להזיז את הסמן לתיבה הבאה מובן שלא מדובר בהעתקת קוד ב CUT & PASTE כמו"כ - מאחר ומדובר בOOD - אתה בסך הכל צריך לממש במטודה שנקראת בזמן הקשת תו - קריאה לאותה הפונקציה עם האינדקס או הכתובת של התיבה כפרמטר
 

ihovav

New member
אהה, עכשיו הבנתי... אני חושב...

בזמן הקשה על המקלדת נשלחת הודעה בשם WM_KEYDOWN ההודעה הזו מפעילה ב MESSAGE MAP מטודה ווירטואלית בשם OnKeyDown אתה צריך להוסיף את הקוד שקורא למטודה שהזכרתי במימוש של המטודה הזו לגבי הקריאה לאותה הפונקציה - אתה יכול להשתמש במטודה GetActiveView וב VIEW שמתקבל - ישנה מטודה בשם GetDocument ככה אתה יכול לקבל את ה DOCUMENT ולהפעיל את המטודה לחילופין - אתה יכול להחזיק פוינטר סטאטי מסוג *DOC ובתחילת השימוש בתכנית - המשתנה יאותחל לכתובת של ה DOCUMENT - ואז לא צריך כל פעם "לחפש" את ה DOCUMENT - אלא להשתמש בפוינטר שכבר קיים ונגיש לכל האינסטנסים מאותו הקלאס - תיבות הטקסט
 
היי, מצטער על האיחור ../images/Emo4.gif

פשוט בסופי שבוע אין לי גישה לאינטרנט... נראה לי שהתשובה האחרונה שלך מתקרבת למה שאני באמת מחפש, אבל רגע לפני שאני ניגש לממש, אתה אולי יודע, איך עושים את אותו דבר אבל בסביבה של GUI מסוג DIALOG BOX? כלומר אני לא עובד ב-DOCUMENT-VIEW אלא בשיטה של חלון דיאלוג (זה אפילו אמור לפשט את העניין, לא?) תודה. גיליוטין
 

ihovav

New member
ממש לא הבנתי - תיצור איתי קשר במייל

הוא מופיע בכרטיס האישי שלי אני מעוניין לשמוע ממך טיפה יותר על התכנית והבעיות שהיא מעלה
 
למעלה