ממפות סיביות לסמלים, לסמנים ועד טבלאות מחרוזת, כל תוכנית Windows משתמשת במשאבים. משאבים הם אותם רכיבים בתוכנית התומכים בתוכנית אך אינם קוד הפעלה. במאמר זה נעבור על כמה דוגמאות לשימוש במפות סיביות, סמלים וסמנים ממקורות.
מיקום המשאבים
להצבת משאבים בקובץ .exe יש שני עיקריים יתרונות:
- ניתן לגשת למשאבים במהירות רבה יותר מכיוון שלוקח פחות זמן לאתר משאב בקובץ ההפעלה מאשר לטעון אותו מקובץ דיסק.
- ניתן להכיל את קובץ התוכנית והמשאבים ביחידה אחת (קובץ ה- exe) ללא צורך בהרבה קבצים תומכים.
עורך התמונות
ראשית, עלינו ליצור קובץ משאב. סיומת ברירת המחדל עבור קבצי משאבים היא.RES. ניתן ליצור קבצי משאבים בעזרת עורך התמונות של דלפי.
אתה יכול לתת שם לקובץ המשאבים כל דבר שתרצה, כל עוד יש לו סיומת ".RES" ושם הקובץ ללא סיומת אינו זהה לשום קובץ יחידה או פרויקט. זה חשוב מכיוון שברירת המחדל כל אחד מהם פרויקט דלפי שמרכיב ליישום יש קובץ משאב עם אותו שם כמו קובץ הפרויקט, אך עם סיומת ".RES". עדיף לשמור את הקובץ באותה ספריה כמו קובץ הפרוייקט שלך.
כולל משאבים ביישומים
על מנת לגשת לקובץ המשאבים שלנו, עלינו לומר לדלפי לקשר את קובץ המשאבים שלנו ליישום שלנו. זה מתבצע על ידי הוספת הנחיות מהדר לקוד המקור. הנחיה זו צריכה למלא מיד את הוראת הטופס, כמו להלן:
{$ R * .DFM}
{$ R DPABOUT.RES}
אל תמחק בטעות חלק {$ R * .DFM} מכיוון שזו שורת הקוד המורה לדלפי לקשר בחלק הוויזואלי של הטופס. כשאתה בוחר מפת סיביות עבור לחצני מהירות, רכיבי תמונה או רכיבי כפתור, דלפי כוללת את קובץ מפת הסיביות שבחרת כחלק ממשאב הטופס. דלפי מבודדת את רכיבי ממשק המשתמש שלך בקובץ ה- DFM.
כדי להשתמש במשאב בפועל, עליך להכין כמה ממשק API של Windows שיחות. ניתן לאחזר כרטיסי סיביות, סמנים וסמלים המאוחסנים בקבצי RES באמצעות פונקציות ה- API LoadBitmap, סמן Load, ו LoadIcon בהתאמה.
תמונות במקורות
הדוגמה הראשונה מראה כיצד לטעון מפת סיביות המאוחסנת כמשאב ולהציג אותה ב- תמונה רכיב.
תהליך TfrMain.btnCanvasPic (שולח: TObject);
var bBitmap: TBitmap;
התחל
bBitmap: = TBitmap. צור;
נסה
bBitmap. ידית: = LoadBitmap (hInstance, 'אתנה');
Image1. רוחב: = bBitmap. רוחב;
Image1.Hight: = bBitmap. גובה;
Image1.Canvas. צייר (0,0, bMbitmap);
סוף סוף
bBitmap. חינם;
סוף;
סוף;
הערה: אם מפת הסיביות שנטענת אינה נמצאת בקובץ המשאב, התוכנית עדיין תפעל, היא פשוט לא תציג את מפת הסיביות. ניתן להימנע ממצב זה על ידי בדיקה כדי לבדוק אם bBitmap. ידית הוא אפס לאחר קריאה ל - LoadBitmap () ולנקוט בצעדים המתאימים. ה נסה / סוף סוף חלק בקוד הקודם אינו פותר את הבעיה, זה רק כאן כדי לוודא שה- bBitmap מושמד והזיכרון המשויך אליו משוחרר.
דרך נוספת בה אנו יכולים להשתמש כדי להציג מפת סיביות ממשאב היא כדלקמן:
תהליך TfrMain.btnLoadPicClick (שולח: TObject);
התחל
תמונה1.תמונה. מפת סיביות.
LoadFromResourceName (hInstance, 'EARTH');
סוף;
סמנים במקורות
מסך. סמנים [] הוא מערך של הסמנים שסופקו על ידי דלפי. על ידי שימוש בקבצי משאב, אנו יכולים להוסיף סמנים מותאמים אישית לנכס הסמנים. אלא אם כן אנו מעוניינים להחליף אחת מהברירות המחדל, האסטרטגיה הטובה ביותר היא להשתמש במספרים של הסמן החל מ -1.
תהליך TfrMain.btnUseCursorClick (שולח: TObject);
const NewCursor = 1;
התחל
מסך. סמנים [NewCursor]: =
סמן Load (hinstance, 'CURHAND');
Image1.Cursor: = NewCursor;
סוף;
סמלים במשאבים
אם נסתכל על דלפי אפשרויות-פרויקט-יישום הגדרות, אנו יכולים לגלות שדלפי מספקת את סמל ברירת המחדל לפרויקט. סמל זה מייצג את היישום בסייר Windows וכאשר ממזערים את היישום. אנו יכולים לשנות זאת בקלות על ידי לחיצה על כפתור 'סמל טען'.
אם אנו רוצים, למשל, להנפיש את סמל התוכנית כאשר ממוזערת התוכנית, אז הקוד הבא יבצע את העבודה.
לצורך האנימציה אנו זקוקים לסרטון טימר רכיב בטופס. הקוד טוען שני סמלים מקובץ המשאב למערך של TIcon חפצים; יש להכריז על מערך זה בחלק הציבורי של הצורה העיקרית. נצטרך גם NrIco, זהו סוג מספר שלם משתנה, הוכרז ב ציבורי חלק. ה NrIco משמש כדי לעקוב אחר הסמל הבא שיוצג.
ציבורי
nrIco: מספר שלם;
MinIcon: מערך [0..1] של TIcon;
...
תהליך TfrMain. FormCreate (שולח: TObject);
התחל
MinIcon [0]: = TIcon. צור;
MinIcon [1]: = TIcon. צור;
MinIcon [0]. Handle: = LoadIcon (hInstance, 'ICOOK');
MinIcon [1]. Handle: = LoadIcon (hInstance, 'ICOFOLD');
NrIco: = 0;
Timer1.Interval: = 200;
סוף;
...
תהליך TfrMain. Timer1Timer (שולח: TObject);
התחלה IsIconic (יישום. ידית) לאחר מכןהתחל
NrIco: = (NrIco + 1) mod 2;
יישום. אייקון: = MinIcon [NrIco];
סוף;
סוף;
...
תהליך TfrMain. FormDestroy (שולח: TOBject);
התחל
MinIcon [0]. חינם;
MinIcon [1]. חינם;
סוף;
בתוך ה Timer1.OnTimer מנהל אירועים, IsMinimized הפונקציה משמשת כדי לראות אם עלינו להנפיש את הסמל הראשי שלנו או לא. דרך טובה יותר להשיג זאת תהיה לכידת הלחצנים למקסום / צמצום ולא לפעול.
מילים אחרונות
אנחנו יכולים למקם כל דבר (טוב, לא הכל) בקבצי משאבים. מאמר זה הראה לך כיצד להשתמש במשאבים כדי להשתמש / להציג מפת סיביות, סמן או אייקון ביישום דלפי שלך.
הערה: כשאנחנו שומרים פרויקט של דלפי בדיסק, דלפי יוצרת אוטומטית קובץ .RES אחד ששם זהה לפרויקט (אם אין דבר אחר, הסמל הראשי של הפרויקט נמצא בפנים). למרות שנוכל לשנות את קובץ המשאב הזה, זה לא מומלץ.