עצות

כיצד להטביע קבצי מדיה להפעלה של דלפי (RC / .RES)

כיצד להטביע קבצי מדיה להפעלה של דלפי (RC / .RES)

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

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

קבצי משאבים (.RES)

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

כלול מספר קבצים בינאריים בהפעלה שלך מורכב מחמישה שלבים:

  1. צור ו / או אסף את כל הקבצים שברצונך להכניס ל- exe.
  2. צור קובץ סקריפט משאבים (.rc) שמתאר את המשאבים המשמשים את היישום שלך,
  3. ערוך את קובץ סקריפט המשאבים (.rc) ליצירת קובץ משאבים (.res),
  4. קשר את קובץ המשאב הידור לקובץ ההפעלה של היישום,
  5. השתמש באלמנט המשאב האישי.

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

לפני שנמשיך, הנה כמה הצהרות חשובות הנוגעות למגבלות בעבודה עם משאבים:

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

בואו נראה כיצד ליצור קובץ המתאר משאבים.

יצירת קובץ סקריפט משאבים (.RC)

קובץ סקריפט משאבים הוא רק קובץ טקסט פשוט עם סיומת .rc המפרטת משאבים. קובץ הסקריפט בפורמט זה:

ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2

ResNameX ResTYPEX ResFileNameX

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

כדי ליצור קובץ סקריפט משאב חדש, פשוט בצע את הפעולות הבאות:

  1. צור קובץ טקסט חדש בספריית הפרויקטים שלך.
  2. שנה את שמו ל- AboutDelphi.rc.

בקובץ AboutDelphi.rc יש את השורות הבאות:

שעון WAVE "c: mysounds projects clock.wav"
MailBeep WAVE "c: windows media newmail.wav"
מגניב AVI מגניב
מבוא RCDATA introsong.mp3

קובץ התסריט פשוט מגדיר משאבים. בעקבות הפורמט הנתון, התסריט AboutDelphi.rc מפרט שני קבצי WAV, אנימציה .avi אחד ושיר MP3. כל ההצהרות בקובץ .rc משויכות שם, סוג ושם קובץ לזהות משאב נתון. ישנם כתריסר סוגי משאבים מוגדרים מראש. אלה כוללים סמלים, מפות סיביות, סמנים, אנימציות, שירים וכו '. RCDATA מגדיר משאבי נתונים גנריים. RCDATA מאפשר לך לכלול משאב נתונים גולמי ליישום. משאבי נתונים גולמיים מאפשרים הכללת נתונים בינאריים ישירות בקובץ ההפעלה. לדוגמה, הצהרת RCDATA לעיל מציינת את מבוא המשאב הבינארי של היישום ומציין את הקובץ introsong.mp3, המכיל את השיר עבור אותו קובץ MP3.

הערה: ודא שיש לך את כל המשאבים שאתה מפרט בקובץ ה- .rc שלך. אם הקבצים נמצאים בספריית הפרויקטים שלך אינך צריך לכלול את שם הקובץ המלא. בקובץ ה- .rc שלי. שירי WAV ממוקמים * איפשהו * בדיסק וגם שירי האנימציה וגם MP3 נמצאים בספריה של הפרויקט.

יצירת קובץ משאבים (.RES)

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

כלי שורת הפקודה של Borland Compiler מורכב בספריית Delphi Bin. השם הוא BRCC32.exe. פשוט עבור לשורת הפקודה והקלד brcc32 ולחץ על Enter. מכיוון שספריית Delphi Bin נמצאת בנתיב שלך, מופעל המהדר של Brcc32 ומציג את עזרה השימוש (מכיוון שהוא נקרא ללא פרמטרים).

כדי לקבץ את קובץ AboutDelphi.rc לקובץ .res בצע פקודה זו בשורת הפקודה (בספריית הפרויקטים):

BRCC32 AboutDelphi.RC

כברירת מחדל, בעת עריכת משאבים, BRCC32 נותן שמות לקובץ המשאב הידור (.RES) עם שם הבסיס של קובץ ה- .RC וממקם אותו באותה ספריה כמו קובץ ה- .RC.

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

כולל (קישור / הטבעה) משאבים להפעלה

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

כדי לעקוב אחר המאמר, תזדקק לפרויקט חדש של דלפי עם טופס ריק (ברירת המחדל לפרויקט החדש). כמובן להוסיף את ההנחיה {$ R AboutDelphi.RES} ליחידה של הטופס הראשי. סוף סוף הגיע הזמן לראות כיצד להשתמש במשאבים ביישום דלפי. כאמור לעיל, כדי להשתמש במשאבים המאוחסנים בתוך קובץ exe עלינו להתמודד עם API. עם זאת, ניתן למצוא מספר שיטות בקבצי העזרה של דלפי שמופעלות "משאב".

לדוגמה, הסתכל ב LoadFromResourceName שיטה של ​​אובייקט TBitmap. שיטה זו מחלצת את משאב מפת הסיביות שצוינה ומקצה לו אובייקט TBitmap. זה * בדיוק * מה שעושה קריאת API של LoadBitmap. כמו תמיד דלפי שיפרה את שיחת פונקציית ה- API שתתאים לצרכים שלך בצורה טובה יותר.

כעת, הוסף את רכיב TMediaPlayer לטופס (שם: MediaPlayer1) והוסף לחצן TB (כפתור 2). תן לאירוע OnClick להיראות:

בעיה אחת * קטנה * היא שהיישום יוצר שיר MP3 במחשב משתמש. אתה יכול להוסיף קוד שמוחק את הקובץ לפני סיום היישום.

חילוץ *. ???

כמובן שאפשר לאחסן כל סוג אחר של קובץ בינארי כסוג RCDATA. TRsourceStream תוכנן במיוחד כדי לעזור לנו לחלץ קובץ כזה מפעיל הפעלה. האפשרויות הן אינסופיות: HTML ב- exe, EXE ב- exe, בסיס נתונים ריק באקסיס וכדומה.