עזרה!!!!!......עזרה!!!!!!

shlomi_e

New member
../images/Emo58.gifעזרה!!!!!......עזרה!!!!!!

ערב טוב. כיצד אני יכול להתאים את הטופס שלי לרזולוציית המשתמש???? אני משתמש ברזולוציה 960X720 וכאשר הרצתי את תוכניתי במחשב אחר בעל רזולוציה 800X600 הטופס נראה אחרת. האם ישנה דרך לפתור את הבעיה???? תודה מראש
 

1Unlimited

New member
רעיון

הכל תלוי במבנה של הטופס. בעיקרון רצוי שתוסיף קוד שמתייחס לשינויים בחלון כלומר, כאשר משנים את גודל החלון או כאשר ה-FORM נטען ישתנו אובייקטים בטופס בהתאם לגודל הטופס שמכיל אותם. למשל:
Sun Form1_Resize() list1.width = me.width-20 list1.height = me.height-20 End Sub​
 

cald

New member
זאת הפכה להיות שאלה פופולרית

ובכן, ישנה דרך, לא מסובכת, אך דורשת מעט עבודה בעיקרון, צריך ליצור מערך הכולל את מאפייני ה Left, Top, Width, Height של כל הפקדים שבטופס. ואז צריך לבנות פונקציה שתקרא כל פעם שמשנים את גודל הטופס, אשר משנה את גודל ומיקום הפקדים בהתאם. ועכשיו, ביתר פירוט. הנה הסבר כיצד לשנות את הגודל בהתאם, בטופס הכולל שני כפתורים. מידות הטופס יהיו 15480 על 11220. ראשית, בדוק את ה Width וה- Height של הטופס איתו אתה עובד. ברזולוציה שציינת, טופס שנמצא במצב Maximized, מאפייניו יהיו: Width: 15480 Height: 11220 עכשיו, נגדיר משתנים הכוללים את הערכים הנ"ל. בחלק ה Declerations רשום: Const FormWidth = 15480 Const FormHeight = 11220 עכשיו, נגדיר סוג משתנה בשם Rect, אשר יכלול מאפיינים של: Left Top Width Height רשום ב Declerations: Private Type Rect Left As Long Top As Long Width As Long Height As Long End Type עכשיו, נגדיר מערך מסוג Rect בעל שני תאים רשום ב Declerations: Dim Control(2) As Rect עכשיו, נכניס את המאפיינים של שני הכפתורים שבטופס למאפיינים שבמערך, כאשר נטען הטופס. באירוע Form_Load רשום: Control(1).Left=Command1.Left Control(1).Top=Command1.Top Control(1).Width=Command1.Width Control(1).Height=Command1.Height Control(2).Left=Command2.Left Control(2).Top=Command2.Top Control(2).Width=Command2.Width Control(2).Height=Command2.Height עכשיו נבנה את הפונקציה שמשנה את גודל הפקדים ()Sub ReSize fw=FormWidth/Form1.Width fh=FormHeight/Form1.Height Command1.Left=Control(1).Left/fw Command1.Top=Control(1).Top/fh Command1.Width=Control(1).Width/fw Command1.Height=Control(1).Height/fh Command2.Left=Control(2).Left/fw Command2.Top=Control(2).Top/fh Command2.Width=Control(2).Width/fw Command2.Height=Control(2).Height/fh End Sub ועכשיו באירוע של הטופס Form_Resize רשום: ReSize - - - זהו, התוכנה מוכנה. כל מה שאתה צריך לעשות, זה להוסיף תאים במערך מאפייני הפקדים Control. לקבוע את המאפיינים של הפד במערך באירוע Form_Load, כמו שעשית עם שני הכפתורים, ולהוסיף את השורות המתאימות לפונקציה ReSize, כאשר כל מה שעליך לשנות בשורות הוא את התא במערך, ואת שם הפקד. מכאן, הכל אמור לעבוד. אני חושב שדרך כזאת, למרות שהיא טיפה ארוכה, עדיפה על שינוי הרזולוציה של המשתמש מתוך התוכנה. לא נראה לי שנוח לעבוד אם הרבה תוכנות כשכל אחת דורשת רזולוציה אחרת... אם זה לא עובד, או שאתה צריך עוד עזרה, רק תרשום
 
למעלה