טיפים ליישומי דלפי מרובי רזולוציה

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

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

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

שיקולים חשובים

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

קבע את הטפסים עמדה רכוש למשהו שאינו מעצב, שמשאיר את הטופס בו השארת אותו בזמן העיצוב. בדרך כלל זה בסופו של דבר בדרך שמאלה במסך 1280x1024 - ובאופן מוחלט מסך 640x480.

instagram viewer

אל תקהל בקרות בטופס - השאר לפחות 4 פיקסלים בין פקדים כך ששינוי של פיקסלים אחד במיקומי הגבול (עקב שינוי גודל) לא יופיע כבקרות חופפות.

עבור תוויות קו בודדות שכן alLeft או בסדר מיושר, הגדר גודל אוטומטי נכון. אחרת, הגדר גודל אוטומטי לא נכון.

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

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

היזהר מפתיחת פרויקט ב- IDE ברזולוציות שונות. הטופס PixelsPerInch המאפיין ישתנה ברגע שנפתח הטופס וישמר ב- DFM אם תשמור את הפרויקט. עדיף לבדוק את האפליקציה על ידי הפעלת אותה עצמאית ולערוך את הטופס ברזולוציה אחת בלבד. עריכה ברזולוציות שונות ובגדלי גופנים מזמינים בעיות הסחף וגודל של רכיבים. ודא שאתה מגדיר את ה- PixelsPerInch עבור כל הטפסים שלך ל -120. ברירת המחדל היא 96, מה שגורם לבעיות בקנה מידה ברזולוציה נמוכה יותר.

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

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

שימו לב מקרוב לכל הרכיבים שהם למעשה קו חד TMemos—דברים כמו TDBLookupCombo. בקרת העריכה הרב-שורתית של Windows מציגה תמיד רק שורות טקסט שלמות - אם הפקד קצר מדי לגופן, א TMemo לא יראה כלום (א TEdit יציג טקסט חתוך). עבור רכיבים כאלה עדיף להפוך אותם למספר פיקסלים גדולים מדי מאשר להיות פיקסלים אחד קטנים מדי ולא להציג טקסט כלשהו.

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

עוגנים, יישור ואילוצים: VCL של צד שלישי

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

בעבודה עם דלפי גרסה 4 ומעלה, מספר מאפיינים נועדו לעזור לנו לשמור על המראה ועל פריסת הפקדים בטופס.

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

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

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

הליך ScaleForm
(F: TForm; מסך רוחב, מסך גובה: LongInt);
התחל
F.Scaled: = נכון;
F.AutoScroll: = שווא;
F.Position: = poScreenCenter;
פ.פונט. שם: = 'אריאל';
אם (מסך. רוחב <> מסך רוחב) ואז התחל
גובה: =
LongInt (F.Height) * LongInt (מסך. גובה)
div ScreenHeight;
רוחב: =
LongInt (F. רוחב) * LongInt (מסך. רוחב)
div מסך רוחב;
F.ScaleBy (מסך. רוחב, רוחב מסך);
סוף;
סוף;