עזרה ב vb

p i o n e e r

New member
עזרה ב vb

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

טרמפיסט

New member
תשובה

שאלתך היא איך ניתן לעדכן את צבע הרקע של פקד התמונה לפי ערכי הסליידרים בפורמט RGB. ובכן; לפי התמונה שהעלת אכן כבר עשית את רוב העבודה הדרושה לשם כך. הקו המנחה בפתרון הוא ההבנה שלכל שלושת הסליידרים תפקוד זהה בתכלית: עדכון צבע הרקע של פקד התמונה, מה שבהחלט מוביל אותנו למסקנה שאין לנו צורך בשלושה סליידרים שונים לגמרי אלא בשלושה סליידרים שהם העתק האחד של השני. השלב הבא הוא הכנת סליידר מתאים למשימה. היות ופורמט הצבע RGB נקבע עפ"י ערכי אדום-ירוק-כחול הנעים בין 0 ל-255 ניצור סליידר ונקרא לו: sldrRGB כעת נציב בתכונה Min שלו את הערך 0 ובתכונה Max שלו את הערך 255. כעת נכנס לקוד התוכנית: מכיוון שאנו רוצים לעדכן את צבע הרקע של פקד התמונה בכל פעם שערך אחד הסליידרים משתנה, אנו משתמשים באירוע (sldrRGB_Click(Index As Integer שיתעורר בכל פעם שערך אחד הסליידרים ישתנה. בקוד נכתוב כך:
picRGB.BackColor = RGB(sldrRGB(0).Value, sldrRGB(1).Value, sldrRGB(2).Value)​
משמעות השורה היא: קבע את ערך צבע הרקע של פקד התמונה הנקרא picRGB לצבע התואם את ערכי הסליידרים לפי ציון האינדקסים שלהם בהתאמה: הראשון (0) יקבע את הערך האדום, השני (1) יקבע את הערך הירוק וכן לגבי השלישי (2) שיקבע את הערך הכחול. פונקציית RGB מקבלת שלוש פרמטרים שהם ערכי אדום-ירוק-כחול בהתאמה וממירה אותם למספר סידורי גדול בו פקד התמונה יודע להשתמש. בהצלחה.
 

p i o n e e r

New member
מה כווהת ב sldrRGB(0).

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

טרמפיסט

New member
אכן

sldrRGB כפי שציינתי הוא שם הסליידר, כמוהו יכולת לתת כל שם אחר. בסוגריים מציינים את אינדקס הפקד במערך. כלומר; כשמשכפלים פקד כל הכפילים משתמשים באותו קוד וברוב האירועים מצויין הפרמטר Index (כפי שאתה רואה בוודאי: Index As Integer) למקרה ונרצה בכל זאת להבחין בין פקד אחד לשני. השכפול המדובר יוצר מעין מערך של פקדים ולכן מציינים את האינדקס כפי שמציינים אינדקס בפניה לתא כלשהוא במערך רגיל. בדוגמה זו הקוד הוא משותף לכל שלושת הכפילים, הרי התנהגותם זהה לחלוטין - אך בכל זאת אנו מעוניינים לגשת לכל אחד בנפרד כדי לדעת מה ערכו: פקד באינדקס 0 הוא הסליידר הראשון ובערכו נשתמש לציון הצבע האדום וכן הלאה.
 
למעלה