Upload
farouk-boum
View
31
Download
0
Embed Size (px)
Citation preview
بسم اهللا الرحمن الرحیم
كیفیة صنع برنامج لتشغیل الملتمیدا یدعم عدة لواحق صوتیة : كتاب عن
))مكیة(فراس نبیل حمید أحمدبقلم الكاتب (
حقوق نشر هذا الكتاب محفوظة لدى المؤلف وال یحق ألي كان سواء كان جهة رسمیة أو مدنیة أعادة نشر هذا الكتاب أو أي -1 :تحذیر جزء منه من دون الموافقة الخطیة من المؤلف
عاقب المخالف إلى أعادة نشر هذا الكتاب أو أي جزء أو االقتباس منه قد یقطع عقوبات مدنیة و إجرامیة بحق المخالف وسوف ی -2 أقصى حد یسمح به القانون
و غیرها هي عالمات تجاریة مسجلة لدى فیجوال بیسكالعالمات التجاریة المذكورة في هذا الكتاب مثل -3 أصاحبها والكاتب یحترم هذه العالمات ویقر بها لمالكیها
ثمن هذا الكتب هو الدعاء لي ولوالدي: مالحظة
أخواني أخواتي نبداء على بركة اهللا كما هو معروف نفتح برنامج فیجوال بیسك بالنقر علیه نقرا
فیمكنك فتحه بالطریقة االتیه اختصارمزدوجا من سطح المكتب أو اذا لم یكن لدیك
أنقر على زر
Start من الجهة الیسرى أسفل الشاشة وأخترAll Programe ثم أنتقل الىMicrosoft
Visual Studio 6.0 وأخترMicrosoft Visual Basic 6.0 فور تشغلیك للبرنامج سوف Stander exeیظهر لك مربع حوار كما في الصورة االتیة فیه عدة أختیارت أختر منه
صورة رقم واحد
ووضع االزمه األدواتسوف یفتح برنامج فیجوال بیسك بالحال االن نبدء بعمل لتشغیل MMcontrolالكودات المطلوبه لتشغیل البرنامج أوال سوف نحتاج أداة
تخدم لتمكینه من سیع حوار للملفتح مر Commondialogاالغنیة وسوف نحتاج
لعمل List boxأختیار االغنیة المطلوب تشغیلها ونحتاج ایظا عدة ازرار امر و Play list م بانشائها لحد االن و یمكن وغیرها من االدوات التي سوف نقو
Toolبنقر الزر االیمین على قائمة االدوات MMcontrolالحصول على أداة
Box سوف تظهر بالحال قائمة منبثقة كما في الصورة االتیة فیها عدة خیارات
صورة رقم اثنان Commponentsنختر منها االمر
Microsoft Commonسوف یظهر لنا بعد النقر بالحال مربع حوار نختر منه
dialog6.0 ونحتار ایظا Microsoft Multimedia control6.0
واالن نكون قد اضفنا اهم اداتین االن نبدء بعمل أزرار االمر لتشغیل البرنامج االن قم بانشاء االتي وغیرها
عنوانها ي سوف نسمیها بهاالسم الذ اسم االداة االفتراضيCommand1 Play Play Command2 Stop1 Stop Command3 Next1 Next Command4 Pr Prev. Command5 Add Add Command6 remove Remove Item Command7 Removeall Remove all Command8 Load Load
List1 List1 ------------- MMControl1 MM -------------
Commondialog1 Com1 ------------- Label2 Pos ------------- Label3 Len ------------- ******** ********* **********
سوف وقمنا بتسمیتها واالن وبعد ان انشئنا االدوات ووضعنها على واجهة الفورم نبدء بالمهم تظهر
الختیار أغنیة لتشغیلها loadواالن سوف نبدء بكتابة اول كود وهو كود زر امر
:كود
- : شرح الكود السابق
لتجربة البرنامج سوف وأضغط على زر F5االن اخي الكریم أضغط على زر
Load بمجرد أختیار االغنیة سوف یتم تـشغیلها.
االن أخي العزیز حان الوقت لنعمل بقیة اكواد ازرار االمر االخرى االن سوف والذي هو كاالتي Stop1نكتب كود زر امر
:كود
-: شرح الكود السابق
Load_Click
Com1.Showopen
MM.Command="Close"
MM.FileName = Com1.FileName
MM.Command="Open"
MM.command="Play" : Play.Caption = "Pause"
End Sub
في السطر االول قمنا بكتابة كود لفتح مربع حوار یتیح للمستخدم أختیار االغنیة المراد تشغیلها منه
وضعنا كود الغالق االغنیة الجل عدم حصول خطاء في MMControlفي السطر الثاني تحسبا لوجود أغنیة في اداة البرنامج عند أختیار اغنیة وبعد ذلك اختیار أغنیة ثانیه حیث سیحصل في هذا الموقف انه سوف یتم تشغیل استمرار تشغیل
عا االغنیة القدیمة وفقدان السیطره علیها وتمكینك من التحكم في االغنیة الجدیده حیث سیتم تشغیل االثنان م
مسار ما تم = مسار االغنیة حیث حددنا مسار االغنیة MMcontrolفي السطر الثالث حددنا من این سوف تاخذ اداة اختیاره في مربع الحوار
في السطر الرابع قمنا بفتح االغنیة في االداة لتمكین السیطره علیها
الى playیل االغنیة وتقوم بتحویل عنوان زر امر بان تبدء بتشغ MMcontrolفي السطر الخامس اعطینا ایعاز الداة pause )سوف تفهم لما قمنا بذلك عند تقدمنا في الشرح(
Stop1_click
MM.command = "Stop"
MM.command = "Prev"
MM.command = "Play" : Play.Caption = "Pause"
End sub
-: الكود السابق شرح
لمالحظة التغیر اذا كنت حاب ذلك F5االن أخي الكریم یمكنك أیظا ضغط زر والتاكد من ان الكود یعمل لدیك
واالن اخي فلنبدء بكتابة كود تشغیل االغنیة وایقافها
:كود
-: شرح الكود السابق
لتوقف تشغیل ملف الصوت المفتوح MMcontrolفي السطر االول اعطینا ایعاز الداة
في السطر الثاني قمنا باعطاء ایعاز ثاني الرجاع ملف الصوت الى بدایته
Pauseالى Playفي السطر الثالث أعطینا ایعاز اخر لبدء تشغیل االغنیة من جدید و تحویل عنوان أداة زر امر
اخي الكریم كل ما في االمر هو ان هذه :واخي الكریم اتوقع انك االن دوخنت ولم تعرف ما هي هذه العالمه ولما استخدمتها العامه تمكنني من كتابة كود اخر بنفس السطر باعتباره سطر جدید
Play_click
If play.Caption = "Play" Then
MM.command = "Play"
Play.Caption = "Pause"
Else
MM.command = "Pause"
Play.Caption = "Play"
End If
End sub
فسوف یقوم البرنامج بتشغیل االغنیة وذلك Play= الشرطیه التي تحدد اذا اذا كان أسم االداة Ifفي السطر االول وضعنا playمعناها في هذا الكود اذا لم یكن أسم االداة Pause Elseویحول عنوانه الى MMcontrol باعطانا ایعاز الداة اال
بالتوقف موقتا في المكان الي االغنیة كانت تشتغل فیه یعني مش بیرجع MMcontrolفهو یقوم بالتالي یعطي ایعاز الداة وفي نهایة الجمله الشرطیه وما دام اصبحت أكثر من سطر زیج Playاالغنیة الى اولها وبعد ذلك یقوم بتحویل عنوانها الى
وضعنا كود نغیر Stop1و loadلختم الشرط االن اخي الكریم اظن انك فهمت لما في زر امر End ifعلینا وضع عنوان هذه االداة لیقوم بالعملیة بصورة صحیحه
,,, أحمد فراس نبیل حمید : عمل الطالب
لعرض وقت االن أخي العزیز والكریم قم بانشاء تایمر وضع الكود التالي بداخلها االغنیة وموقعها
-: شرح الكود السابق
االن وبعد ان اتممنا عمل البرنامج من كلما یلزمه سواء كان لتشغیل الصوت او ایقافه او فتح اغنیة او عرض المعلومات عنها سوف نعمل شغله صغیره جدا ومهمه
في برامج الملتمیدا ما یوجد جدا في نفس الوقت والحاجه هي دائما ما نالحظ انه فهل یجوز ذلك في الفیجوال بیسك شریط یتحرك موقعه على حسب موقع االغنیة
التي یمكن اظافتها من االمر Progress barبكل تاكید وذلك باستخدام أداة Commponents كما شرحت سابقا
لها الخصائص االتیة Progres barكلنا نعرف ان اداة ن اال
لالداة التي تحدد اقصى حد Maxالخاصیة
د لالداة حالتي تحدد ادنى Minالخاصیة
التي تحدد موقع الشریط وكمیة ملئه لالداة Valueالخاصیة
االن حتى اذا كنت ال تعرف الخصائص المهمة في هذه االداة اصبحت االن تعرفها لعرض ة الكود االولاالن وبعد ان شرحت لكم اهم خصائصها سوف نبدء بكتاب
موقع االغنیة
Timer1_Timer
Len.Caption = "Song time :" & MM.Length
Pos.Caption = "Position :" & MM.Position
End sub
كود بسیط جدا حیث
والذي سوف یكون طول االغنیة والذي اخذناه من اداة Lenفي السطر االول قمنا بتعیم ما سوف یكون عنوان اداة MMcontrol وطول االغنیة : حیث سیكون عنوان االداة عبارة طول االغنیه وعالمة
الذي سوف یكون موقع االغنیة وقد اخذناها من اداة التشغیل وایظا pos في السطر الثاني حددنا ما سوف یكون عنوان اداة وموقعها : سوف یكون عنوانها موقع االغنیة وعالمة
نضع هذا الكود ایظا في اداة التایمیر من دون مسح الكود الموجود فیها فقط : كود
-: شرح الكود السابق
واالن اخي الكریم اخي نعمل كود اخر لضمان عمل برنامج خالي من االخطاء في حال لم یكن play & Stopفنظیف الكود االتي في اداة التایمیر لقفل زر امر
هنالك اغنیة لتشغیل
: كود
Timer1_Timer
If MM.FileName <> "" Then
Progressbar1.Max = MM. Length
Progressbar1.Value = MM. Position
End if
End sub
في السطر االول قمنا االول وتفادیا لالغالط التي یمكن ان تحدث بسبب عدم وجود اغنیة كتبنا هذا الكود لتحقق ما اذا السطر أيحرف یعني فارغ أيكان هنالك مسار في اداة تشغیل الصوت وقد حددنا ذلك بوضع عالمتا تنصیص بدون
بطول progressشغیل فیقوم بالتالي وهو تحدید اقصى حد الداة االول باختصار هو اذا كان هنالك مسار في اداة التوذلك الن االن الكود اصبح اكثر من سطر واالن End ifاالغنیة و موقع الشریط االداة بموقع االغنیة ثم وضعنا
واستمتع F5جرب البرنامج بالنقر كما ذكرنا على زر
Timer1_Timer
IIf MM.FileName = "" Then
Play.Enabled = False
Stop1.Enabled = False
Else
Play.Enabled = True
Stop1.Enabled = True
End If
End Sub
-: شرح الكود السابق
االن سوف یكون الكود الكامل الموجود في التایمیر بالشكل التالي
: تجمیع كود
وجرب البرنامج وسوف یعجبك صدقني F5أخي الكریم اضغط االن
یعني elseاما كلمة Play stopفارغا فیقوم باقفال زر امر MMاذا كان مسار اداة اال ifكود وال ابسط حددنا بكلمة مسار فیقوم بفتحها واتمنى ان تكونوا قد فهمت هذا الكود جیدا النه بالرغم من بساطته أياذا عكس ذلك یعني اذا كان فیها
اال انه مهم جدا لتفادي االخطاء الكثیره التي یمكن ان تحدث من دونه
Timer1_Timer
Len.Caption = "Song time :" & MM.Length
Pos.Caption = "Position :" & MM.Position
If MM.FileName <> "" Then
Progressbar1.Max = MM. Length
Progressbar1.Value = MM. Position
End if
IIf MM.FileName = "" Then
Play.Enabled = False
Stop1.Enabled = False
Else
Play.Enabled = True
Stop1.Enabled = True
End If
End Sub
أخي الكریم االن سوف نقوم بانشاء االداوت االتیة وكتابة االكواد االتیه الضافة میزه File1جدیده للبرنامج وهي امكانیة اختیار مجلد كامل وعرض محتویاته في اداة
وتمكین تشغیل ملف الصوت بمجرد النقر علیه لنبدء
و DirListBoxد واحد و عد DriveListBoxأداة -:أنشاء االدوات االتیة والتي هي FileListBox وأكتب االكود االتیه لعمل ارتباط بین
:كود
:كود
:كود
Drive1_Change
Dir.Path = Drive1.Drive
End Sub
Dir1_Change
File1.Path = Dir1.Path
File1.Pattern = "*.Mp3"
End Sub
File1_Click
MM.Command = "Close"
MM.FileName = File1.Path & "\" & File1.FileName
MM.Command = "Open"
MM.Command = "Play"
Play.Caption = "Pause"
End Sub
)1(شرح الكود السابق
)2(شرح الكود السابق
)3(شرح الكود السابق
واستمتع بهذه المیزه الجمیله جدا االن اصبح بمقدور F5االن اخي العزیز قم بضغط زر جمیع االغاني الموجده فیه والتنقل بینها على راحته او لمستخدم اما ان یختار فایل كامل ویحملا
اخي الكریم وبعد اتمام كل هذا ویقوم باختیار اغنیة لتشغیل Loadبالمباشر یضغط على زر نبدء بكتابة االكواد المطلوبه Play listالعمل بقى لنا لختم المشروع هو عمل
: كود
-: شرح الكود السابق
بعرضها Dirدرایف سوف تقوم اداة ال أيكل ما فعلنه في الكود السابق وفي حدث التغیر انه قمنا بتحدید
بعرض الملفات الموجوده به Fileقمنا بتحدید الملفات التي سوف تقوم أداة Dirایظا كما في الكود السابق في حدث التغیر الداة
الملفات المراد اضهارها ومن ثم تحدید نوع
في السطر االول وكما شرحت سابقا قمنا باغالق االغنیة الموجوده في اداة تشغیل الصوت تفادیا للمشاكل ثم بعد ذلك قمنا بتحدد ادخلنا مسارها في اداة تشغیل الصوت ثم بعد ذلك قمنا بفتح االغنیة واعطینا ایعاز ببدء أيمسار االغنیة التي سوف نقوم بتشغیلها
ایظا تفادیا للمشاكل ولقد اوضحت هذه النقطه سابقا Pauseالى playالتشغیل وتحویل عنوان اداة
Add_click
Com1.ShowOpen
List1.AddItem Com1.FileName
End Sub
كود اوكي فلنختار كود مسح أياخي الكریم تم تنفیذ كود اضافة اغنیة الى البي لست االن دور )االغنیة المحدده(اغنیة من البلي لست
:كود
-: شرح الكود السابق
list boxلتشغیل الملف فور النقر دبل كلك من اداة االن اخي سوف اعلمك كود
: كود
في السطر االول فقط اعطینا ایعاز لفتح مربع حوار لیتمكن المستخدم من اختیار االغنیة المراد وضعها في البلي لست ثم بعد ذلك یقوم لماذا لم یتنفذ االمر مع او قبل االمر االول سوف اجیب علیك ) بعد اختیارها(باضافة االغنیة بعد اختیارها اذا كان لدیك سؤال حول
تكونو قد فهمتم ذلك ارج وان الن فیجوال بیسك یقوم بالتنفیذ الكود من السطر االول الى االخیر بالقول
Remove_click
If List1.ListCount <> 0 Then
List1.RemoveItem (List1.ListIndex)
End If
End Sub
كود ال یحتاج الى شرح من بساطته لكني مع ذلك سوف اقوم بالشرح عنه
هو امر لمسح List1.RemoveItemفیقوم باالتي بمسح السجل المحدد حیث 0حددنا انه اذا لم یكن عدد المخزون في البلي لست یمسح ما محدد بفضل الكود هذا الكود أي (List1.ListIndex)و Listسجل من اداة
List1_DblClick
MM.Command = "close"
MM.FileName = List1.Text
MM.Command = "open"
MM.Command = "play" : Play.Caption = "Pause"
End Sub
-: شرح الكود السابق
شرح كود زر التالي االن اخي الكریم ننتقل الى
:كود
:
Next_click
If List1.ListCount <> 0 Then
If List1.ListIndex = List1.ListCount - 1 Then
List1.ListIndex = 0
MM.Command = "close"
MM.FileName = List1.Text
MM.Command = "open"
MM.Command = "play"
Command1.Caption = "Pause""
Exit Sub
End If
List1.ListIndex = List1.ListIndex + 1
MM.Command = "close"
MM.FileName = List1.Text
MM.Command = "open"
MM.Command = "play"
Command1.Caption = "Pause"
End If
لتفادي االخطاء ثم بعد ذلك MMcontrolفي السطر االول كما وضحت سابقا وضعت كود الغالق االغنیة الموجوده في اداة ال
عند الحفظ نحفظ مسار االغنیة في البلي لست ال عنوانهاحددنا مسار االغنیة التي نرید ان نشغلها من البلي لست الننا نعرف كلنا اننا
لبدء بمراسیم تشغیل االغنیة ثم بعد ذلك اعطینا ایعاز لبدء MMcontrolثم بعد ذلك اعطینا امر بفتح االتصال بین االغنیة واداة ال
الى توقیف مؤقت ایظا واظن انك اخي الكریم تعرف لماذا قمنا بذلك playتشغیل االغنیة وتحویل عنوان زر امر
-: شرح الكود السابق
هل تستطیع عمل ذلك نعم بكل تاكید واذا كنت ال backاالن اخي سوف اترك لك عمل زر play listتعرف فانصحك باعادة قرائة هذا الوضوع مال
كود سطر واحد play listاالن اخي كود مسح جمیع الموجود في
انضر الى هذا الكود
:كود
If List1.ListCount <> 0 Then
فیقوم باالتي 0) معناها ال یساوي صفر ( <> listBoxهنا حددنا انه اذا لم یكن عدد السجالت الموجوده في اداة
If List1.ListIndex = List1.ListCount - 1 Then
عدد السحالت یعني list1.listcount -1) = یعني السجل الي واقفین علیه( list1.listindexفي هذا الكود حددنا اذا كان واحد فسوف یعمل االتي یعني باختصار اذا كان السجل الي واقفین علیه هو السجل االخیر فیقوم باالتي –الموجوده جوابي الك افتح برنامج فیجوال بیسك واعمل ) ماذا لیس عدد السجالت فقط ل 1 –قد تتسائل لماذا عدد السجالت (مالحظه
MsgBox List1.ListIndex & "-" & List1.ListCountواملیها مثال بخمس عناصر واكتب بزر امر التالي listboxاداة
وسوف تعرف االن الجواب
ثم بعد ذلك اغلقنا االغنیة الموجوده في اداة تشغیل الصوت كما شرحت ینتقل الى السجل االول ) فبقوم باالتي(اقتباس من االعلى ثم یخرج من االجراء لعدم تنفیذ الشرط العكسي pauseالى playوفتحنا االغنیة وایعاز لتشغیلها وتحویل عنوان زر امر سابقا
listboxاالن نشرح الشرط العكسي یعني اذا لم نكن واقفین على السجل االخیر نیقوم البرنامج باالتي یقوم بتحریك مؤشر اداة ایظا playویفتح المسار الجدید ویشغل االغمیة مع تحویل عنوان زر امر الى االمام خطوة ویقوم كما سبق یغلق االغنیة
Removeall_click
List1.Clear
End Sub
list boxاخي الكریم لباسطة هذا الكود سوف اشرحه هنا هنا اعطینا كود لمسح جمیع ما موجود في اداة
نهایة الكتاب
الدعاء لي ولوالديتحیاتي ال تنسوا اأرجو إن أكون قد ساعدتكم على الفهم تقبلو
تمیدا لإلیصال المعلومات إلیك وجعلك محترف في مجال المفهو كل ما أطلبة مقابل هذا الكتاب الذي بذلت أقصى ما في وسعي
أحمد فراس نبیل: تألیف و كتابة ) الحظ عندما أقول انه تألیف أي لیس اقتباس أو جمع معلومات من أي كتب وال ترجمة(
سنة 14: العمر
عراقي من بغداد: الجنسیة
[email protected] - :البرید االلكتروني
)أطلب العلم من المهد إلى اللحد(
)األسد یمشي على جرحه وما یبین بیه جریح وهذا طبعك یا لعراقي وما یصح إلى الصحیح(
www.vb4arab.com احد اعضاء منتدى فیجوال بیسك الكرام والفائز بمسابقة افضل عضو
ع العلم ان هذا هو الكتاب الثاني الذي اقوم بصنعه م
كدت ان انسى
صورة المشروع