על משחקים וסוגים אחרים של יישומים המשתמשים בקבצי מולטימדיה כמו צלילים והנפשות הפץ את קבצי המולטימדיה הנוספים יחד עם היישום או הטמע את הקבצים בתוך הפעלה.
במקום להפיץ קבצים נפרדים לשימוש היישום שלך, אתה יכול להוסיף את הנתונים הגולמיים ליישום שלך כמשאב. לאחר מכן תוכל לאחזר את הנתונים מהיישום שלך בעת הצורך. טכניקה זו היא בדרך כלל רצויה יותר מכיוון שהיא יכולה למנוע מאחרים לתפעל את אותם קבצי תוספות.
מאמר זה יראה לך כיצד להטמיע (ולהשתמש) בקבצי קול, קטעי וידיאו, אנימציות ובאופן כללי יותר מכל סוג של קבצים בינאריים בהפעלה של דלפי.. למטרה הכללית ביותר, תראה כיצד לשים קובץ MP3 בתוך א דלפי exe.
קבצי משאבים (.RES)
בתוך ה "קבצי משאבים קלים"הוצגו בפניכם מספר דוגמאות לשימוש במפות סיביות, אייקונים ו- סמנים ממשאבים. כאמור במאמר זה אנו יכולים להשתמש בעורך התמונות כדי ליצור ולערוך משאבים המורכבים מסוגים כאלה של קבצים. כעת, כאשר אנו מעוניינים לאחסן סוגים שונים של קבצים (בינאריים) בתוך הפעלה של דלפי, נצטרך להתמודד עם קבצי סקריפט משאבים (.rc), מהדר משאבים של בורלנד כלי ואחרים.
כלול מספר קבצים בינאריים בהפעלה שלך מורכב מחמישה שלבים:
- צור ו / או אסף את כל הקבצים שברצונך להכניס ל- exe.
- צור קובץ סקריפט משאבים (.rc) שמתאר את המשאבים המשמשים את היישום שלך,
- ערוך את קובץ סקריפט המשאבים (.rc) ליצירת קובץ משאבים (.res),
- קשר את קובץ המשאב הידור לקובץ ההפעלה של היישום,
- השתמש באלמנט המשאב האישי.
השלב הראשון צריך להיות פשוט, פשוט החלט אילו סוגים של קבצים תרצה לאחסן בהפעלה שלך. לדוגמא, אנו נאחסן שני שירי .wav, אנימציות .ani ושיר .mp3.
לפני שנמשיך, הנה כמה הצהרות חשובות הנוגעות למגבלות בעבודה עם משאבים:
- טעינה ופריקה של משאבים אינה פעולה הגוזלת זמן. המשאבים הם חלק מקובץ ההפעלה של היישומים ונטענים באותו זמן בו היישום פועל.
- ניתן להשתמש בכל הזיכרון (הפנוי) בעת טעינה / פריקה של משאבים. במילים אחרות, אין מגבלות על מספר המשאבים שנטענו בו זמנית.
- כמובן שקבצי המשאבים אכן מכפילים את גודל ההפעלה. אם אתה רוצה הפעלות קטנות יותר, שקול להציב משאבים וחלקים מהפרויקט שלך ב- ספריית קישורים דינאמיים (DLL) או יותר מכך וריאציה מיוחדת.
בואו נראה כיצד ליצור קובץ המתאר משאבים.
יצירת קובץ סקריפט משאבים (.RC)
קובץ סקריפט משאבים הוא רק קובץ טקסט פשוט עם סיומת .rc המפרטת משאבים. קובץ הסקריפט בפורמט זה:
ResName1 ResTYPE1 ResFileName1
ResName2 ResTYPE2 ResFileName2
...
ResNameX ResTYPEX ResFileNameX
...
RexName מציין שם ייחודי או ערך שלם (ID) שמזהה את המשאב. הקלד מחדש מתאר את סוג המשאב ואת ResFileName הוא הנתיב ושם הקובץ המלא לקובץ המשאב האישי.
כדי ליצור קובץ סקריפט משאב חדש, פשוט בצע את הפעולות הבאות:
- צור קובץ טקסט חדש בספריית הפרויקטים שלך.
- שנה את שמו ל- 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 אודות דלפי. 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, בסיס נתונים ריק באקסיס וכדומה.