المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [تمرين ]تضمين ملف صوتي mp3 بتطبيق دلفي


B.M.AbdelAziZ
21-08-2011, 10:43 AM
السلام عليكم ورحمة الله

التمرين ببساطة لديك ملف صوتي mp3 بحجم صغير نوعا ما وهدفك تضمينه بالملف التنفيذي
بالنهاية يصبح لديك ملف تنفيذي فقط وعند تشغيله يمكن تشغيل ملف mp3 المدمج به سابقا
كل الطرق مسموحة للحل يمكن استخدام اي مكونات/برامج او اي شيئ
المهم: دلفي + mp3 = ملف exe واحد
يمكن و كتابة سؤال او استفسار متعلف بالتمرين هنا
مدة التمرين اسبوع بعدها ان لم يكن هناك مشاركات صحيحة ساضع ثلاث طرق للحل (هناك أكثر)

بالتوفيق

louay
21-08-2011, 12:01 PM
سلام الله عليك

أي لو نقلت الملف التنفيذي لأي مكان يشتغل الملف الصوتي دون الحاجة لنقل الملف معه

B.M.AbdelAziZ
21-08-2011, 12:16 PM
تماما
احد الطرق :ملف صوتي بصيغة wav
http://www.delphi4arab.com/forum/showthread.php?t=42

cargem
21-08-2011, 09:04 PM
انا جربت
لا ينجح مع mp3
تحياتي

paix144
22-08-2011, 12:17 AM
السلام عليكم و رحمة الله
هذه هي محاولتي أستاذ

B.M.AbdelAziZ
22-08-2011, 07:53 AM
وعليكم السلام ورحمة الله
لا ينجح مع mp3
ذكرت الموضوع كفكرة لاستخدام الرسورس وليس كحل للتمرين والباقي عليك مثلما فعل paix144

paix144 لا باس بالمحاولة
انتبه في حالة انظمة Vista/7 عند عدم وجود الصلاحية الكافية لا يسمح بانشاء ملف واستخراج الmp3 وبالتالي فشل التشغيل

paix144
22-08-2011, 04:07 PM
انتبه في حالة انظمة vista/7 عند عدم وجود الصلاحية الكافية لا يسمح بانشاء ملف واستخراج الmp3 وبالتالي فشل التشغيل

أنا على النظام xp
بارك الله فيك على الملاحظة يا أستاذ
سأجرب مرة ثانية

cargem
22-08-2011, 05:43 PM
تصدق انا ما عرفت انه تمرين
تعودت على قسم سؤال و جواب حول دلفي
طبعا انت عارف ان KMPlayer مبرمج بالدلفي
حليتها
http://img818.imageshack.us/img818/8426/picture0001e.png
هل تريد الحل على الخاص؟
كيف نظامكم في التمارين!

cargem
22-08-2011, 11:46 PM
حل مشكلة mp3 يكمن في استخدام الملفات في المرفق
تحياتي للجميع
http://www.un4seen.com/

B.M.AbdelAziZ
25-08-2011, 07:20 PM
هل تريد الحل على الخاص؟
كيف نظامكم في التمارين!
ليس على الخاص
حلول التمارين ترفق بالموضوع

cargem
26-08-2011, 12:38 AM
هذا مثال لتشغيل mp3
اسف استاذنا الكريم
المثال لايحمل ملف الصوت مع الملف التنفيذي
تحياتي

B.M.AbdelAziZ
26-08-2011, 05:14 AM
المثال لايحمل ملف الصوت مع الملف التنفيذي
التمرين تضمين ملفmp3بالملف التنفيذي وليس مجرد تشغيله
وما ارفقته هو مثال من امثلة BASS من Ian Luck صاحب un4seen
فكر/حاول/ابحث

cargem
26-08-2011, 06:46 PM
وما ارفقته هو مثال من امثلة BASS من Ian Luck صاحب un4seen
انا ذكرت مثال لكي يستفيد المنتدى ولم انسبة لي

بالنسبة للتمرين
يمكننا تحويل اي ملف الى الى الصيغة *.Res
بأستخدام RCDATA
سأحاول مرة اخرى

cargem
28-08-2011, 05:06 PM
لقد مر اسبوع
انا متشوق للحلول
لقد حاولت عدة مرات ولم انجح
المشكلة هي في قراءة الملف وهو في الذاكرة
مشكلتي ما طبقت امثلة بهذا الخصوص
لقد وجدت اشياء جميلة اثناء بحثي في هذا الموضوع مثل استخراج ملف صوتي من الملف التنفيذي
بصراحة الدلفي تستطيع عمل اي شي
تحياتي

syscall
28-08-2011, 10:20 PM
السلام عليكم

الحل مبني على فكرة الموقع التالي مع بعض الاضافات القليلة
http://delphi.about.com/od/objectpascalide/a/embed_resources.htm

في المرفقات ملفان الاول ملف تنفيذي يقوم بتشغيل ملف صوتي كما هو مطلوب
والمرفق الثاني الشيفرة المصدرية للحل

سلام وكل عام وانتم بخير

cargem
29-08-2011, 12:59 AM
لا يصح نقل الملفات ثم تشغيبها
المطلوب تضمين الملف mp3 الى exe

cargem
29-08-2011, 01:11 AM
الهدف هكذا

syscall
29-08-2011, 01:13 AM
السلام عليكم

لا يصح نقل الملفات ثم تشغيبها

اخي العزيز ربما لم تقرأ سؤال التمرين بشكل جيد او ربما انا فهمته خطأ

كل الطرق مسموحة للحل يمكن استخدام اي مكونات/برامج او اي شيئ

المطلوب تضمين الملف mp3 الى exe

لقد قمت بوضع الملف داخل الملف التنفيذي ثم قمت باستخراجه وتشغيله وعند الانتهاء يقوم بحذفه من مجلد temp بدون ان يشعر المستخدم بذلك

هذا مافهمته من التمرين والله اعلم
صححوا لي افادكم الله

والسلام ختام

cargem
29-08-2011, 05:18 PM
اولا حلك مكرر
ثانيا ليس مطلوب نقل الملفات
لو كان المطلوب تشغيل ملف خارجي
لكان الحل سطر واحد
هذا التمرين تعبني
حلولت الملف الى arrea ودون فائدة
اكيد هناك كمبوننت (D7) عملت دور كبير

syscall
29-08-2011, 06:44 PM
السلام عليكم

لماذا تقول نقل الملفات أنا لاانقل الملف بل استخرجه من داخل الملف التنفيذي ثم ابني ملف في مجلد temp ثم اقوم بتشغيله وبعد لانتهاء احذفه اين الخظا في ذلك اعتبرت الهارد ذاكره مؤقته حتى اقوم بحل الإجرائية قم بتحميل inside exe.rar وجرب

أنا لم اكرر اي حل بل قمت بالبحث واعطيت الموقع الذي استعنت عليه بالحل مع اضافة بعض التعديلات

والسلام ختام

B.M.AbdelAziZ
30-08-2011, 02:30 PM
انا ذكرت مثال لكي يستفيد المنتدى ولم انسبة لي
الهدف حل التمرين فارفق حلك فقط، ول اباس من الاستفادة من اي ملفات مصدرية اخرى حسب نص التمرين
بالنسبة لمكتية bass فسبق ذكرها اكثر من مرة، استخدم خاصية البحث بالمنتدى - فقط كلمة bass
لقد مر اسبوع
انا متشوق للحلول
الحل يومين بعد العيد ان شا ءالله
الحل مبني على فكرة الموقع التالي مع بعض الاضافات القليلة

حلك تقريبا نفس حل paix144 كونكما انطلقتما من نفس المصدر
لك نصف العلامة مثل الاخ paix144
أوضح قليلا الحل الصحيح
دمج الملف الصوتي بالملف التنفيذي= نصف العلامة
تشغيل الملف الصوتي دون استخراجه = نصف العلامة

mishlimited
31-08-2011, 05:26 AM
السلام عليكم
أخي أنا في انتظار الحل بسرعة و اتمنى ان يكون اليوم قبل الغد
بالطبع لست مبرمج لكن هاو و احاول ان أتعلم من خلالكم فجزاكم الله كل خير
أتمنى ألا يكون الحل البسيط معتمدا على خاصية تحويل ملف mp3 الى صيغة mx و من ثم ادراجها في الريسورس و استدعائها بسهولة حيث ان الملف الناتج بعد التحويل يكون كبيرا عشرة أضعاف تقريبا حجم mp3
اقصد صيغة xm يجب تحويل الملف من ام بي ثري الى ويف ثم من ويف الى اكس ام و في تلك التحويلات جهد و الملف يتضخم مثلا ملف حجمه واحد ميجا سيصبح حجمه بعد التحويلات 9 ميجا فهل هذا حل مناسب ؟

cargem
31-08-2011, 01:36 PM
اخي B.M.AbdelAziZ
لا تنسى انك قلت ثلاث حلول
اخي الدمج بسيط ولكن المشكلة في تشغيل المف من الريسورس

mishlimited
31-08-2011, 02:01 PM
لا أظن أننا نحتاج إلى استخدام ملفات من نوع XM كبديل لادراج ملف بصيغة mp3 و ذلك لانه اوفر لنا أن نقوم بتحويل اي ملف بهذه الصيغة إلى صيغة WAV كبديل عن استخدام كل الحيل المرتبطة باستخدام XM و برنامج xm export الموجود في الموقع

paix144
31-08-2011, 03:08 PM
السلام عليكم و رحمة الله
هذه المحاولة الثانية أستاذ

B.M.AbdelAziZ
31-08-2011, 07:13 PM
وعليكم السلام ورحمة الله

تحويل ملف mp3 الى صيغة xm
تقنيا لا يمكن تحويل ملف mp3 الى ملف xm
ملف mp3 ملف دفق صوتي مضغوط
ملف xm عبارة عن وحدات modules اصوات

هذه المحاولة الثانية..
تختلف عن السابقة باستخدام مجلد Temp
نصف العلامة كونك تستخرج الملف

STRELiTZIA
31-08-2011, 07:20 PM
السلام عليكم و رحمة الله

hint:
البحث في قوقل عن ما يشابه: play mp3 from memory stream

بالتوفيق ان شاء الله

syscall
01-09-2011, 01:55 AM
السلام عليكم

اسف لتأخري بالحل بسبب العيد

الملف الاول يحوي البرنامج التنفيذي للتجربه
والملف الثاني الشيفرة المصدرية

قمت باستخدام عناصر NewAC

والسلام ختام

B.M.AbdelAziZ
01-09-2011, 08:16 AM
وعليكم السلام ورحمة الله
قمت باستخدام عناصر newac
علامة كاملة وأول حل صحيح

TF6M
01-09-2011, 12:00 PM
السلام عليكم و رحمة الله و بركاته
بإستخدام BASS/FMOD/BTMemoryModule
- حجم الملف التنفيذي متعلق بحجم الـ Stream , بدون الريسورس 50<>ko 80
بالتوفيق,,

B.M.AbdelAziZ
01-09-2011, 12:15 PM
بإستخدام BASS/FMOD/BTMemoryModule
علامة كاملة وثاني حل صحيح
ملاحظات
1- تبقى بعض التعديلات ليكمل الحل 100% مع ذلك فهو صحيح كونه يحتوى ما يلزم + الملاحظة 2
2- هذا الحل في حد ذاته يعتبر ثلاث حول
BoxedApp SDK لوحده حل
Bass+BTMemoryModule حل ثاني
FMOD+BTMemoryModule حل ثالث

TF6M
01-09-2011, 12:20 PM
- BoxedApp SDK" لوحده حل"
- نعم لوحده حل , أردت فقط طرح عدة حلول :) يكفي تمرير
الـ virtual path لـ mediaplayer مثلا ؟ , بارك الله فيك .

B.M.AbdelAziZ
01-09-2011, 12:26 PM
نعم
وبهذا ناتي الى نهاية هذا التمرين، ان شاء الله استفدتم + ظهرت امامكم زوايا جديدة لتطوير تطبيقات ...بدلفي.

syscall
01-09-2011, 12:46 PM
السلام عليكم

استفسار
اخي الحبيب هل كنت سوف أخذ العلامة كاملة لو استخدمت fmod او boss لان المكتبتين تستخدمان ملف dll خارجي

والمطلوب دلفي + mp3 = ملف exe واحد

B.M.AbdelAziZ
01-09-2011, 12:55 PM
وعليكم السلام ورحمة الله
هل كنت سوف أخذ العلامة كاملة لو استخدمت fmod او bass لان المكتبتين تستخدمان ملف dll خارجي
لا
fmod او bass لوحدهما لا تفي بالفرض
+BTMemoryModule يصبح الحل كامل
http://www.delphi4arab.com/forum/showthread.php?t=5264

paix144
01-09-2011, 02:17 PM
مدة التمرين اسبوع بعدها ان لم يكن هناك مشاركات صحيحة ساضع ثلاث طرق للحل (هناك أكثر)



السلام عليكم و رحمة الله
هل ممكن أن تضع بقية الحلول ياأستاذ؟
و جزاك الله كل خير

B.M.AbdelAziZ
01-09-2011, 02:46 PM
وعليكم السلام ورحمة الله

حل التمرين انجاز نقطتين أو جزئين
- دمج ملف بالملف التنفيذي
- تشغيل الملف الذي سبق دمجه

بالنسبة للجزء الأول هناك خمس طرق احدها مفتوح واتكلم هنا عامة مهما كان نوع الملف mp3 او غيره

1- اضافة الملف بمصادار الملف التنفيذي Resource
2- اضافة الملف بنهاية الملف التنفيذي ما يسمى Overlay
3- اضافة الملف كجدول بيانات Array of bytes
4- اضافة الملف على شكل .obj
5- استخدام تقنية الVirtualization

ملاحظة: الطريقة 4 تنفع مع الاحجام الصغيرة فقط

بالنسبة للجزء الثاني يمكن استخدام اي مشغل للملف المدمج السابق وهنا خيارات كثيرة انطلاقا من استخدام مكونات دلفي القياسية الى استخدام مكونات/برامج تجارية

اي استفسار لا تتردد

cargem
01-09-2011, 03:54 PM
شكرا لك على التوضيح
بالنسبة للجزء الأول هناك خمس طرق احدها مفتوح واتكلم هنا عامة مهما كان نوع الملف mp3 او غيره
ولكن نريد الحلول المقدمة من قبلكم اضافة الى امثلة توضح التغنيات التي ذكرتها
انا انتظر بفارق الشوق لهذا اليوم

الاخ tf6m وضح مثالك لو تكرمت أو ارفق بعض التوضيحات الى الحلول

الاخ syscall ارفق الكمبوننت المستخدمة لو تكرمت

B.M.AbdelAziZ
01-09-2011, 04:40 PM
..الحلول المقدمة من قبلكم اضافة الى امثلة
لا تنتظر مني شرح كون ذلك يتطلب وقت طويل
اختر طريقة ما وارفقلك مثال
أو اسال سؤال محدد اجيبك

بالنسبة لمكونات New Audio Components موقعها

http://symmetrica.net/newac/

للاشارة توقف صاحبها عن تطويرها من ما يقارب السنة

بالنسبة لBoxedApp SDK موقعها

http://www.boxedapp.com/boxedappsdk/

بالنسبة لFMOD موقعها

http://www.fmod.org/


هناك ايضا AudioLab
http://www.mitov.com/

cargem
01-09-2011, 04:58 PM
ارفق لي ما تيسر لك ولك مني جزيل الشكر
رغم اني محبط لكني مقدر لكم مجهودكم الفريد
اذا الان الكرة في ملعب الاخ tf6m
وانا املي به كبير لانة صاحب الغرائب والاكواد الناذرة
دائما يأتي بالا بسيط ههه!!
تحياتي

B.M.AbdelAziZ
01-09-2011, 05:05 PM
رغم اني محبط
ولما الاحباط ؟

cargem
01-09-2011, 05:05 PM
لو تكرمت امثلة عن
- اضافة الملف بنهاية الملف التنفيذي ما يسمى overlay
3- اضافة الملف كجدول بيانات array of bytes
4- اضافة الملف على شكل .obj
5- استخدام تقنية الvirtualization

اود ان احيط علما بهذه الامور حتى لا اخطأ مرة ثانية
تحياتي

cargem
01-09-2011, 05:09 PM
لقد ارهقني بحثا ووقتا
والجميع حصلوا على علامات وانا حصلت على بيضة ديناصور (0)ههه

B.M.AbdelAziZ
01-09-2011, 05:24 PM
بالنسبة للOverlay فالملف يضاف لنهاية الexe شيئ مشابه تقريبا بهذا الرد
http://www.delphi4arab.com/forum/showpost.php?p=433&postcount=2
بالنسبة للArray of bytes فهو وضع البيانات في جدول شيئ مشابه لهذا
http://www.delphi4arab.com/forum/showthread.php?t=3746
بالنسبة للملف على شكل .obj فهي انشاء شبه بريمج بالتجميع assembly ثم دمجه بدلفي من خلال التعليمة $L
بالنسبة لتقنية الvirtualization فتتمثل في مكونات/برامج مثل MoleBox/Thinstall(ThinApp)/BoxedApp/...

كلها مررت بها او سمعت بها من قبل cargem ولا تقل لي غير ذلك

cargem
01-09-2011, 05:46 PM
شكرا لك
ممكن سؤال عندما تود ارفاق اداة خارجية الى برنامجك
اي الطرق تفضل ؟
وايها لا تعقبها اخطاء!

B.M.AbdelAziZ
01-09-2011, 05:52 PM
ارفاق اداة خارجية الى برنامجك
الأمر يختلف حسب ما هي الاداة وما دور البرنامج
اي اداة مثلا ؟ (اذكر الاسم)

cargem
01-09-2011, 05:54 PM
بالنسبة ل Array of bytes
الرابط انتهى
ممكن ترفقة !

B.M.AbdelAziZ
01-09-2011, 05:58 PM
بالنسبة ل Array of bytes
الرابط انته
ذكرته كمثال فقط
مثال اخر، تعرف

http://ufmod.sourceforge.net/

ufmod بها الاداة eff

TF6M
01-09-2011, 06:27 PM
"الاخ tf6m وضح مثالك لو تكرمت أو ارفق بعض التوضيحات الى الحلول"
- ما هي النقطة الغير مفهومة أخي cargem ؟
1- تم دمج الـ MP3 في الـ Resource
2- تم إستخراج الملف A/B
a- راجع هذا الموضوع : هنا (http://www.delphi4arab.com/forum/showthread.php?t=5264&highlight=BTMemoryModule)
b- تشغيل الملف بعد إستخراجه , إستخدمت كل من FMOD + BASS كطريقتين لكن نفس المبدأ .
- راجع الأمثلة المرفقة : في ما يخص كل من المحرك FMOD + المكتبة BASS تجد الأمثلة مرفقة :
A Quick Guide to FMOD (http://www.gamedev.net/page/resources/_/reference/programming/sweet-snippets/a-quick-guide-to-fmod-r2098?)
www.un4seen.com (http://www.un4seen.com/)

cargem
01-09-2011, 06:33 PM
مثلا الالة الحاسبة

B.M.AbdelAziZ
01-09-2011, 06:53 PM
مثلا الالة الحاسبة
تقصد برنامج الالة الحاسبة التي تاتي مع النظام ؟
بالنسبة لي ابرمج بديل عتها ولا ادمجها ببرنامجي
اما ان كنت تريد دمجها ببرنامج أولا اسال نفسك
هل الملف calc.exe وحده يكفي ؟ الايستخدم مكتبات او ملفات اخرى ؟
ثانيا هل يعمل على انظمة اخرى
مثلا من ياخذ برنامج ينفده على ويندوز XP او 98/95 أو حتى 7 هل سيعمل ؟ ماذا لو نفذه على 7 64 Bits ؟
ما ذا عن اللغة ؟ عربية ؟ فرنسية (نحن في شمال افريقيا) او انجليزية ؟
و اسئلة مماثلة قبل ان تقدم على الدمج

cargem
01-09-2011, 07:09 PM
مثلا من ياخذ برنامج ينفده على ويندوز XP او 98/95 أو حتى 7 هل سيعمل ؟ ماذا لو نفذه على 7 64 Bits ؟
ما ذا عن اللغة ؟ عربية ؟ فرنسية (نحن في شمال افريقيا) او انجليزية ؟

انا ضربت مثال الالة الحاسبة ولكنك لمست الموضوع بشمول وعمق
وانا اكرر لك السؤال
ما الطريقة المفضلة والشاملة لكل ما اسلفة من ميزات
طبعا انت عارف ان هنا برامج تعمل على اصدارات الوندوز سوا 32 او 64 bit
ملف exe واحد
فما رأيك!!

B.M.AbdelAziZ
01-09-2011, 07:16 PM
ما الطريقة المفضلة والشاملة لكل ما اسلفة من ميزات
احسن شيئ طرح أكثر من نسخة والمستخدم يحمل ما يناسبه
كمثال انظر WinRar

http://www.rarlab.com/download.htm

فما رأيك!!
سبق وقلت: أبرمج بديل عنه

cargem
01-09-2011, 07:25 PM
يعني ما ترفق اي رسورس
ولكن قد تخطى في حساب ما او كود قد لا يشمل كل نواحي النظرية
فيصاب البرنامج بما يسمى فاقد الوثوق

B.M.AbdelAziZ
01-09-2011, 07:34 PM
ن قد تخطى في حساب ما او كود قد لا يشمل كل نواحي النظرية
الاختبار و التحقق من صحة العمل مرحلة يمر بها البرنامج/التطبيق قبل نشره

cargem
01-09-2011, 07:51 PM
احيانا قد لا تكتشف الخطا الا من المستخدم
تحياتي لكم جميعا

B.M.AbdelAziZ
01-09-2011, 07:59 PM
احيانا قد لا تكتشف الخطا الا من المستخدم
ومنه جاءت كلمة Patch والخدمة ما بعد البيع واصدارات جديدة :)
ومنها $$ إضافية واستمرارك كمطور...

cargem
01-09-2011, 10:10 PM
تحياتي لك على المعلومات الفيمة

syscall
01-09-2011, 10:20 PM
السلام عليكم
الاخ syscall ارفق الكمبوننت المستخدمة لو تكرمت
تكرم عيونك رابط عناصر newac
http://www.torry.net/vcl/mmedia/audio/newac.zip

mishlimited
02-09-2011, 07:47 AM
بسم الله الرحمن الرحيم
هذه هي محاولتي الأولى لاخراج برنامج صغير لتحفيظ القرآن الكريم على هيئة صفحات
كل صفحة لها برنامج مستقل كبداية في البرمجة بالديلفي
قمت بتحميل البرنامج على الميديا فاير لأن الملف حجمه كبير حوالي 2 ميجا مضغوط و معه السورس الذي اخذته بالطبع من هنا و خاصة من اخي syscaall و ارشادات اخي محمد عبد العزيز
اشكركم جميعا على المجهود و هذا هو الرابط لبرنامج القرآن الكريم صفحة رقم خمسة + السورس
http://www.mediafire.com/?gke6zmcuksm2oo6
لو هناك أية ملاحظات ، في انتظار رأيكم

cargem
02-09-2011, 02:04 PM
syscall انا ابارك لك التفوق والنجاح
تحياتي
اخي mishlimited
page1 in '..\page1.pas' {Form1};

وين page1.pas

mishlimited
02-09-2011, 06:33 PM
السلام عليكم أخي كارجيم
عفوا نسيت هذا الباس
تم رفع الملف من جديد من اجلك رغم ان مكتبة newac اشك في انها لا تتحمل الملفات الصوتية الطويلة
و انا الان بصدد محاولة ادخال الصوت عن طريق ملفات wav دون استخدام مكتبات اضافية لكن تنقصني اكواد الاستئناف
الملف الجديد و معه كل الملفات اخي تفضل
http://www.mediafire.com/?d7b2c23n73dk74h

cargem
02-09-2011, 08:16 PM
لك من كل الشكر والتقدير
تجنب ان ترفع الملف التنفيذي
لان حجمة كبير يكفي السورس
تحياتي

cargem
03-09-2011, 09:28 PM
http://img52.imageshack.us/img52/7378/picture0002p.png
الاخ TF6m
النتيجة بدون صوت
والمثال صعب!!

هل من توضيح فيما يخص المثال المرفق
اي تعليقات حول اسباب استخدام الكود
تحياتي
function MainDlgFunc(hWnd: hWnd; uMSG: Dword; wParam: wParam; lParam: lParam)
: Bool; stdcall;

begin
Result := True;
case uMSG of
WM_INITDIALOG:
begin
CheckRadioButton(hWnd, 12, 13, 12);
BoxedAppSDK_Init;
hFile := BoxedAppSDK_CreateVirtualFile(PAnsiChar('fox.mp3') ,
// MyMP3.mp3 fox
GENERIC_WRITE, FILE_SHARE_READ, nil, CREATE_NEW, 0, 0);
HandleStream := THandleStream.Create(hFile);
ResourceStream := TResourceStream.Create(0, 'intro', RT_RCDATA);
HandleStream.CopyFrom(ResourceStream, ResourceStream.Size);
end;
WM_CLOSE:
EndDialog(hWnd, 0);

WM_DESTROY:
PostQuitMessage(0);

WM_COMMAND:
begin
case wParam of
11:
begin
if IsDlgButtonChecked(hWnd, 12) = BST_CHECKED then
begin
_FreeAll;
if not FSOUND_Init(44100, 32, 0) then
MessageBox(0, 'Error initializing audio!', nil, 0);
hMod := FSOUND_Stream_Open('fox.mp3', 1, 0, 0);
if (hMod = nil) then
MessageBox(0, 'Could not create user stream', nil, 0);
if FSOUND_Stream_Play(0, hMod) < 0 then
MessageBox(0, 'Error playing music!', nil, 0);
end;
if IsDlgButtonChecked(hWnd, 13) = BST_CHECKED then
begin
_FreeAll;
if not BASS_Init(-1, 44100, 0, 0, nil) then
MessageBox(0, 'Error initializing audio!', nil, 0);
mods := BASS_StreamCreateFile(false, Pchar('fox.mp3'), 0, 0,
BASS_MUSIC_RAMP);
if (mods = 0) then
MessageBox(0, 'Could not create user stream', nil, 0);
if not BASS_ChannelPlay(mods, True) then
MessageBox(0, 'Error playing music!', nil, 0);
end;
end;
end;
end
else
Result := false;
end;
end;