الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس طريقة صنع برنامج مثل ال winamp

مغلق
بدأه zain50 في 24 أغسطس 2006 · 36 رد · 12,429 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

أقدم لكم درس " كيف تصنع برنامجا مثل الـ winamp "

وسنستخدم فى هذا الدرس الـ MediaPlayer وأنا هنا أقصد الميديا بلاير العادية "القديمة"

ولقد تعجبت حينما لم أجد هذه الأداة وأنا استعمل الفجوال بيسك بوندوز xp وأنا حاليا أستعمل

وندوز ملينيوم !!!!

نبدأ الدرس بالصلاه والسلام على رسول الله

نبدأ مشروعا جديدا standerd

ثم نضع اداة الـ MediaPlayer وذلك من project >> components

ثم نختار الأداة windows media player وهى غالبا آخر القائمة

ثم نضغط ok والأداة كما بالشكل

1tw7.png

وبعد ذلك نقوم بوضعها على النموذج ونضع كذلك الآتى :-

   Commandbuttontame	   Name	 Caption	 

					 1		   cmdplay		 Play

					 2		  cmdpause		Pause

					 3		  cmdstop		 Stop

					 4		   cmdmute		 Mute

ونضع بعد ذلك أداة ListBox

ونختار الأداة CommonDialog وذلك من project << components

واسمها Microsoft common Dialog control 6.0 ثم نضغط Ok

وبعد ذلك نقوم بوضعها على النموذج "Form"

ثم نقوم بفتح قائمة menu editor ونقوم بعمل الآتى :-

Caption >> File

Name >> mnufile

ثم نضغط على next ونختار السهم المتجه ناحية اليمين , ونكتب

Caption >> Open

Name >> mnuopen

ونضغط Ok , أنظر الشكل :-

2se0.jpg

ويجب ان يصبح البرنامج كالشكل التالى :-

3db4.jpg

وثانى مرحلة هى كتابة الأكواد :

ملحوظة : قمت فى بعض الأكواد بكتابة 1 , 2 , 3 , 000 وذلك لكى تسهل لى طريقة الشرح

فيجب ازالتها فى الكود الأصلى 0

أولا : الزر Play

Private Sub cmdplay_Click ()
1 : On Error Resume Next
2 : MediaPlayer1.FileName = List1.Text
3 : MediaPlayer1.Play
End Sub

1 : هذا الكود يعنى تجاهل الأخطاء فإذا ضغط الشخص زر play

دون اختياره الملف الصوتى يمنع هذا الكود حدوث رسالة خطأ0

2 : يعنى تجهيز الميديا بلاير بتشغيل ما فى الـ ListBox0

3 : هذا أمر التشغيل0

ثانيا : الزر Pause

Private Sub cmdpause_Click()
On Error Resume Next
If MediaPlayer1.PlayState = 1 Then
  MediaPlayer1.Play
cmdpause.Caption = "Pause"
Else
  MediaPlayer1.Pause
  cmdpause.Caption = ">"
End Sub

الشرح : إذا كانت الميديا فى حالة تشغيل أى play يتم إيقاف التشغيل

إيقافا مؤقتا, وإذا ضغطنا على الزر مرة اخرى يتم تشغيل الميديا

من الوضع نفسه الذى كانت ثابتة عليه0

ثالثا : الزر Stop

Private Sub cmdstop_Click()
MediaPlayer1.Stop
End Sub

ويعنى إيقاف الميديا عن العمل نهائيا وليس مؤقتا0

رابعا : الزر Mute

Private Sub cmdmute_Click()
On Error Resume Next
If cmdmute.Caption = "Mute" Then
  MediaPlayer1.Mute = True
  cmdmute.Caption = "Mute X"
Else
  MediaPlayer1.Mute = False
  cmdmute.Caption = "Mute"
 End If
End Sub

ويعنى انه إذا كان الزر اسمه Mute فإنه يقوم بإلغاء الصوت ويصبح اسمه Mute X ,

و إذا كان الزر اسمه Mute X فإنه يقوم بتشغيل الصوت ويصبح اسمه Mute ,,, وهكذا .

أما عن القائمة : Open

الكود الخاص بـ "mnuopen"

Private Sub mnuopen_Click()
On Error Resume Next
1 : Dim add As String
2 : With CommonDialog1
3 : .Filte  "A7medzain@yahoo|*.mp3;*.avi;*.asf;*.wmv;*.wav;*.wmp;*.wma;*.mid"
4 : .ShowOpen
5 : If .FileName = "" Then
6 : Exit Sub
7 : End If
8 : End With
9 : add = CommonDialog1.FileName
10 : CommonDialog1.FileName = ""  
11 : List1.AddItem add
12 :add = ""
End Sub

1 : تم تعريف "add" بأنها " String " أى مجموعة من الحروف0

2 : قمت باستخدام الـ CommonDialog الذى سيظهر نافذة Open

وقمت باستخدام With حتى استطيع استخدام CommonDialog بدون

كتابته كل مرة واكتفيت بوضع النقطة 0

3 : وهذه هى الملفات التى يمكن تشغيلها ولكنى لا أعرف جميع الملفات التى

تشغلها الميديا بلاير فمن يعرف ملفات غير هذه يقوم بإضافتها إليها0

4 : وهذا أمر لفتح نافذة Open

5 , 6 : ويعنى انك إذا قمت بفتح نافذة Open ولم تختر شيئا- أى ضغطت على Cancel

فإن النافذة تغلق دون إضافة أى شىء للـ ListBox

9 : مساواة add بما تم اختياره من القائمة Open

10 : وهذا الأمر يفرغ ما تم اختياره من القائمة Open إذا رجعت فى رأيك واخترت Cancel

11 : وهذا الأمر لإضافة ما فى add الى الـ ListBox

12 : لتفريغ add مرة اخرى حتى اذا قمت باختيار Open مرة اخرى تكون add

فارغة لاستقبال ملفات صوتية اخرى0

وأدعو الله ان تكونوا قد فهمتم هذا الدرس واستفدم منه

ولغاية ما وصلنا فى الشرح وضعت لكم البرنامج لتستعينوا به بعد الاستعانة بالله

وهو بالمرفقات

وللدرس بقية إن شاء الله

MP3.1.zip

1
#2

شرح جميل ورائع

استمر اخي العزيز ولك جزيل الشكر

#3

بارك الله فيك و جعله في ميزان حسناتك

مواضيع و دروس
الكتابة بعدة ألوان داخل الــ TetxBoxمكتبة الأكوادتحميل الــ Visual Basic Express 2005
تحميل فيجوال بسيك 6أكواد × أكواددروس في الخوارزميات
لتحميل عدة إصدارات من كريستال ريبورتتحميل برنامج Activ Skin 4.3جمل الــ Sql من الألف إلى الياء
معظم المواقع المختصة بالفيجوال بيسيكموقع كويس للأيقوناتمرجع شامل لأدوات ActivX
كيفية نطق الحرف المكتوب شرح عن كيفية إقامة علاقة مع Data Reprot باستخدام الــ DataEnvironment علاقة مع الـ Datareport بدون استخدام DataEnvironment (( شرح ))
كتاب Migrating From DAO to ADOإضافة لـ VB6 بريمج IndenterVB, إضافة لبيئة تطوير فيجوال بيسك 6حوار بينى و بين عضو حول ال winsock , اتمنى ان يعجبكم
Smart Indenter 3.5 لتنسيق الأكواد, هديه لكل الأعضاء السلسلة الدهبية في المواضيع العلمية ، إستغلال الـ Balloons في الـ Windows XP مصفوفات الأدوات Control Arrays افكار وتلميحات ! , لمن افتقدها من أيام الـ VB6.0
جعل خلفية الـ Mid Form تظهر بالكامل خواص الاداة Winsock لربط الاجهزة عن طريق الانترنتكيف يتم عمل تقارير بإستخدام HTML

7.gif
#4

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

عمل رائع بارك الله فيك

والسلام عليكم ورحمة الله وبركاته

ادعو لي بالهداية فأنا أحتاج هذا الدعاء بشدة

منتدى تصميم التطبيقات (و يشمل نظم التشغيل) و تعريبها. <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

بعض ردودي ومشاراكاتي في المنتدى:

1- هل تريد التحكم بجهازك كأنك محترف, ( إذاً تعال معي وتعلم الرجستري Registry ).

...|-->> فكرة عامة عن الرجستري وكيفية التعامل معه ( رقم المشاركة 1 - 4 )

...|-->> كتابة ملف رجستري

...|-->> تشغيل الرجستري دون رسائل( في الخفاء )

...|-->> بعض التحكمات التي يقدمها الرجستري

...|-->>=>> إيقاف عمل Ctrl+Alt+delete ( Task Manager )

...|-->>=>> إخفاء قائمة ملف file وبذلك لن ترى قائمة file

...|........... في مشاركة أخرى >> حتى ولو قمت بالضغط على أي ملف أو مجلد بزر الفأرة الأيمن

...|-->>=>> لإيقاف وإخفاء عمل البحث Find من على الجهاز

...|-->> بعض المعلومات التي يقدمها الرجستري

...|-->>=>> معرفة الأجهزة المتصلة بالـIDE ورقم السريال الخاص لكل جهاز

...|-->> من أحسن مواقع الرجستري

...|-->>=>> http://technet2.microsoft.com/WindowsServe...3.mspx?mfr=true

منتدى مبرمجي لغة Microsoft Visual Basic <<<<<<

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

برامج من صنعي:

1- لعبة (من صنعي ), جربها وقول رأيك

2- ساعة حائط, من صنعي

بعض ردودي ومشاراكاتي في المنتدى:

1- طريقتان لفتح ملف معين وليكن بامتداد SWF ببرنامجك [ الطريقة الأولى - الطرقة الثانية ]

2- هل تريد ألا يتحكم أحد في الجهاز غيرك؟

3- كود ايقاف عمل زر الاغلاق x بزاوية الفورم

4- عرض صورة متحركة بالكود , أي بدون استخدام أدوات

5- اجعل الـComboBox [ تنسدل - لما تكتب فيا تنسدل وتظهر الاسماء التى تبدأ بالحرف اللي كتبته فى الكومبو ]

6- إنشاء مكون أثناء تشغيل البرنامج ثم إدخاله تحت نطاق مكون آخر مثلاً إدخاله داخل نطاق microsoft tabbed dialog control

أسئلتي في المنتدى التي تم الإجابة عليها:

1- كيف يمكن قراءة الإشارات الصوتية الخارجة من الميكروفون أو السماعات ( لرسمها أو العبث بها ) ؟ أرجو المزيد من الردود ...

2- إيقاف عمل الرجستري

أسئلتي في المنتدى التي لم يتم الإجابة عليها:

اقتباس
ردك يعطي حافذ للإجابة على أسئلتك
#6

بسم الله الرحمن الرحيم

اخى فى الله

لديك طريقة سهلة و بسيطة للشرح ارجوا لك التوفيق و ننتظر المزيد

لا اله الا الله محمد رسول الله

#8

بسم الله الرحمن الرحيم

نبدأ المرحلة الثانية من الدرس إن شاء الله

الصوت :-

لكى نستطيع عمل شريطة الصوت نتبع الآتى :

نختار Microsoft windows common controls 6.0 sp6

وذلك من project >> components

وبعد ذلك نختار الأداة Slider

ونكتب فى خصائصها الآتى :

Brderstyle = 1
Max = 2500
Min = 0
Selstart = 2500
Tickstyle = 3
Value=2500

2500 هو اعلى رقم للصوت و 0 هو أقل رقم للصوت

و Selstart هو عند بداية البرنامج يكون الصوت على أعلى درجاته

و Value هو القيمة الكلية للصوت التى لا يجوز تجاوزها

ونكتب الكود التالى فى الحدث Scroll

Private Sub Slider1_Scroll()
On Error Resume Next
MediaPlayer1.Volume = Slider1.Value - 2500
If Slider1.Value = 0 Then
MediaPlayer1.Mute = True
Else
MediaPlayer1.Mute = False
End If
End Sub

وهذا الكود يعنى مساواة صوت الميديا بالشريطة التى قمنل بإنشائها

وإذا حركت هذه الشريطة للقيمة صفر يتم إسكات الصوت أى "Mute = true"

** وبذلك نكون غير مقيدين بأزرار الميديا بلاير

وبالتالى يجب ان يصبح الشكل هكذا :

4mv4.jpg

فتح مجلد صوت كامل :

أولا : نضع فى الـ menu editor ما يلى :

نقوم أولا بتغيير الـ Caption الخاصة بـ Open

وجعلها Open File

ثم نقوم بكتابة Open Folder فى Caption جديد

ونجعل الـ Name الخاصة به mnuopenfolder

ونضغط Ok

ونكتب فى الكود الخاص به ما يلى :

Private Sub mnuopenfolder_Click()
Form2.Show
End Sub

وهذا الكود يقوم بإظهار فورمة جديدة والتى سنقوم بإضافتها

وذلك بعد قراءة ما يلى

ثانيا: نقوم بإدراج فورم جديدة "Form2"

وذلك من Project >> Add Form

ونضع فى هذه الفورم الجديدة مايلى :

DriveListBox  &  DirListBox  &  FileListBox

CommandButton : Name = cmdok , Caption = Ok / Cance

CommandButton : Name = cmdall , Caption = Add All

CommandButton : Name = cmdadd , Caption = Add

وذلك كما بالشكل التالى :

5ho0.jpg

ونقوم بكتابة هذه الصيغ *.mp3;*.avi;*.asf;*.wmv;*.wav;*.wmp;*.wma

فى Pattern الخاصة بـ File1

وهذه الصيغ التى ستظهر فقط فى File1 ويمكن زيادتها بكل أنواع

صيغ الملفات التى تقبلها الميديا يلاير

وثانى مرحلة هى كتابة الأكواد :

كود Drive1

Private Sub Drive1_Change()
On Error Resume Next
Dir1.Path = Drive1.Drive
End Sub

وهذا الكود معروف فهو لإظهار المجلدات التى فى الدرايف أو السواقة فى Dir1

كود Dir1

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

وهذا الكود لإظهار الملفات التى فى الداير أو المجلدات فى File1

كود الزر Add All

Private Sub cmdall_Click()
For X = 1 To File1.ListCount
File1.ListIndex = X - 1
Form1.List1.AddItem File1.Path & "\" & File1.FileName
Next X
End Sub

وهذا الكود للقيام بإضافة مجلد صوت كامل

فإذا كتبت الكود الذى فى الستر الثالث فقط

يقوم بإضافة الملف الصوتى الأول فقط وانا هنا قمت

باستخدام For,Next ليقوموا بعمل Loop

أى بإدراج كل الملفات التى فى المجلد

كود الزر Add

Private Sub cmdadd_Click()
Form1.List1.AddItem Dir1.Path & "\" & File1.FileName
End Sub

إذا كنت لا تود بإدراج كل الملفات التى فى المجلد

وتريد إدراج بعضها فقط فعليك بإختيار الملف

وضغط هذا الزر

فهذا الكود يعنى إضافة الملف المختار أو المنشط فقط

وليس كل ما فى المجلد , وقد ذكرته فى كود الزر السابق

كود الزر OK / Cancel

Private Sub cmdok_Click()
Unload Me
End Sub

وهو يقوم بإغلاق نافذة فتح مجلد وهذه هى وظيفته فقط

ويمكن استبدالها بها الكود Form2.hide ولن يحدث أى إختلاف

كود File1

Private Sub File1_DblClick()
cmdadd_Click
End Sub

وهذا الكود نضعه فى الحدث DblClick

وهو يعنى انك إذا قمت بالضغط DblClick على أى ملف

صوتى ينفذ الكود الذى فى الزر Add أى يقوم بإضافة هذا الملف

الصوتى الى الـ ListBox دون إضافة المجلد بأكمله

وهذه تعتبر إختصارة بدل كتابة كود الزر Add فى File1_DblClick

القائمة menu editor :

نقوم بإضافة التالى :

Caption = New List , Name = mnunew

Caption = Refresh, Name = mnuRefresh

Caption = Delete, Name = mnudel

Caption = Exit, Name = mnuExit

ويجب ان يكونوا مثل هذا الشكل :

6wr8.png

وتصنع هذه الفواصل بكتابة – أى كتابة "ناقص" وتكتب فى

الـ Caption وتكون كالتالى فى الـ menu editor

Caption = - , Name = mnu1

ونكتب فى الـ Name أى حاجة أى لا نتقيض بكتابة شىء

معين لأننا لن نستخدمها فى الأكواد

كتابة الأكواد :-

الزر New List

Private Sub mnunew_Click()
Dim Message As String
Dim Title   As String
Dim ButtonsAndIcon As Long
Dim Response As String
Message = "are you sure"
ButtonsAndIcon = vbYesNo + vbQuestion + _
			vbMsgBoxRtlReading
Title = "New List"
Response = MsgBox(Message, ButtonsAndIcon, Title)
If Response = vbYes Then
List1.Clear
End If
End Sub

وكود عمل صفحة جديدة هو List1.Clear وبالمعنى الأصح هو يمسح

ما فى الـ ListBox

أما ما فعلته أنا اظهار رسالة بنعم أو لا فإذا اخترت نعم سينفذ الكود

وقمت بفعل ذلك حتى لا يضيع ما وضعته فى الـ ListBox سهوا

الزر Refresh

Private Sub mnuRefresh_Click()
List1.Refresh
End Sub

وهو لتنشيط الـ ListBox

الزر Delete

Private Sub mnudel_Click()
On Error Resume Next
List1.RemoveItem List1.ListIndex
End Sub

وعند اختياره يقوم بمسح الملف الصوتى المختار

الزر Exit

Private Sub mnuExit_Click()
Form2.Hide
End
End Sub

وهو لغلق البرنامج وكذلك غلق نافذة فتح مجلد

جديد اذا كانت مفتوحة

الحدث Form1.Unload

Private Sub Form_Unload(Cancel As Integer)
Form2.Hide
End Sub

وذلك اذا قمنا بالضغط على علامة الغلق

X تقوم بغلق البرنامج و نافذة فتح مجلد

جديد اذا كانت مفتوحة 0

ويارب يكون الشرح قد نال اعجابك

وارجو منكم الدعاء لى وللمسلمين

ولغاية ما وصلنا وضعت لكم البرنامج بالمرفقات

والسلام عليكم ورحمة الله وبركاته

MP3.2.rar

#9

شكراً اخي العزيز

فضلاً عندي سؤال

نلاحظ في برامج الصوتيات او اي برامج اخرى

في القائمة ملف يكون هناك ( link ) رابط

لاخر خمسة واسبع ملفات تم فتحها كيف يمكن عمل ذلك

ولك جزيل الشكر

#10

من أراد عمل شئ إحترافي يطلع على هذا الكود

http://www.planetsourcecode.com/vb/scripts...83&lngWId=1

اقتباس
في القائمة ملف يكون هناك ( link ) رابط

لاخر خمسة واسبع ملفات تم فتحها كيف يمكن عمل ذلك

وما المشكلة في هذا ؟

أضف عنصر جديد الى القائمة Add new menu item باستخدام InsertMenuItem ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#11
الحيوتي كتب:
شكراً اخي العزيز

فضلاً عندي سؤال

نلاحظ في برامج الصوتيات او اي برامج اخرى

في القائمة ملف يكون هناك ( link ) رابط

لاخر خمسة واسبع ملفات تم فتحها كيف يمكن عمل ذلك

ولك جزيل الشكر

شكرا اخى " الحيوتي " لإهتمامك بالموضوع

وانا فهمت سؤالك ووضعت لك مثال بالمرفقات

وإن شاء الله سأسعى بتقديمه لكم بصورة بسيطة

فى اى درس لاحق وارجو ان تخبرنى هل هذا

المثال هو ما تريد ؟

وارجو منك المتابعة :)

Link_in_File.rar

#12

شكرا اخى " cipher " على الرابط الجميل

وانا امتلك الكثير من برامج الصوت التى قام

الأجانب بصنعها ولكنك عندما تنظر للكود الخاص بها

تجدها معقدة وقد لا تستطيع فهم اجزاء كثيرة منها

وانا هنا اقدم لكم طريقة بسيطة جدا لكى تستطيع

تكوين برنامج صوتى بنفسك , وهذا لا يعنى اننى

لم استفد من هذه البرامج فقد افادتنى كثيرا 0

وبالنسبة للأخ " الحيوتي " نسيت ان أقول لك ان

تفتح الـ menu editor وتغير الـ Caption وتجعلها

الرابط الذى يوجد به الملف الصوتى الذى تريد تشغيله مع العلم

ان المثال الذى قدمته ما هو إلا فكرة توجهك لإنجاز السؤال

الذى قدمته 0

#13
اقتباس
وانا امتلك الكثير من برامج الصوت التى قام

الأجانب بصنعها ولكنك عندما تنظر للكود الخاص بها

تجدها معقدة وقد لا تستطيع فهم اجزاء كثيرة منها

كاتب الموضوع الذي أشرت إليه اسمه Abdullah Al-Ahdal وأعتقد أنه سعودي والله أعلم ..

لا أرى أي تعقيد في الكود .. كود منظم جداً ويعتمد على MCI API ولا يحتاج لأي مكونات وحاز إعجاب الكثيرين وهو بالفعل يستاهل ذلك ..

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#14

السلام عليكم

اشكرك اخي Zain 50 على ردك علي

لقد رايت المثال المرفق لكن ماقصدته ليس وضع الرابط من قبل المصمم

اي انك تفرض على المستخدم فتح ملفات معينة

ماقصدته هو ما يوجد في جميع البرامج ولنفترض برنامج مثل الورد

ففي قائمة ملف يوجد في اسفل القائمة روابط لاخر خمسة او ست ملفات تم

فتحها من قبل المستخدم وهذه الروابط تتغير باستمرار حسب فتح المستخدم لاكثر من

ملف فكيف يتم فعل ذلك هل هناك متغيرات يتم التخزين فيها لروابط هذه الملفات مؤقتاً

لحين فتح ملف اخر فيتغير الرابط لهذا المتغير ام ماذا

واعتذر ان كان سؤالي قد خرج عن اطار شرحك

وشكراً

#15

راجع ردي سابقاً

اقتباس
أضف عنصر جديد الى القائمة Add new menu item باستخدام InsertMenuItem ..

راجع MSDN لمعلومات أكثر عن الدالة .. او ابحث عن add menu item on runtime , اعتقد احد الأخوة وضع سؤال من قبل في قسم الفيجوال بيسك عن هذا الشئ

"First they ignore you, then they laugh at you, then they attack you, then you win"

===

اقتباس

حُكَّامُـنَا إِنْ تَصَـدّوا لِلْحِمَــى اقْتَحَمُـوا ***** وَإِنْ تَصَدَّى لَـهُ المُسْتَعْمِـرُ انْسَحَبُـوا

هُمْ يَفْرشـُونَ لِجَيْـشِ الغَــزْوِ أَعْيُنَـهُـمْ ***** وَيَدَّعُــونَ وُثُـوبَـاً قَـبْـلَ أَنْ يَثِـبُــوا

الحَاكِمُـونَ و«وَاشُنْـطُـنْ» حُكُومَتُـهُـمْ ***** وَاللامِعُــونَ وَمَـا شَعَّـوا وَلا غَرَبُــوا

القَاتِلُـــونَ نُبُــوغَ الشَّـعْــبِ تَرْضِـيَـــةً ***** لِلْمُعْتَدِيــنَ وَمَـا أَجْـدَتْـهُـمُ الـقُــرَبُ

لَهُمْ شُمُـوخُ «المُثَنَّـى» ظَاهِـرَاً وَلَهُـمْ ***** هَـوَىً إِلَـى بَابَـك الخَرْمِـيّ يُنْتَسَـبُ

البردوني "أبو تمام وعروبة اليوم" 1971

===

اقتباس
عبيد الهوى يحكمون البـلاد ***** ويحكمهــم كلّهـــم درهــــــم

و تقتـادهـم شهـوة لا تنــام ***** وهـــم فـي جـهالتهــم نــــوّم

ففــي كـــلّ ناحيــة ظـالـــم ***** غبــــــيّ يسـلـّطــــه أظلـــم

أيا من شبعتم على جوعــنا ***** وجـــوع بنينـا ألـم تتخمـــوا ؟

ألم تفهموا غضبة الكادحين ***** على الظلـم ؟ لا بدّ أن تفهموا

البردوني "نحن و الحاكمون "

#16

هذا المثال المرفق يوجد به ما اقصده

فبامكانك فتح اي ملف صوتي ثم ترى رابط لهذا الملف

في القائمة ملف وحتى اذا اردت تشغيله مره اخرى بامكانك

الضغط على الرابط وهذه الروابط تتغير باستمرار حسب فتح الملفات

المشكله انه اذا اغلاق البرنامج واعيد فتحه مره اخرى تختفي هذه الروابط

معنى هذا الكلام انها تكون في فترة تشغيل البرنامج فقط وانا اريدها ان تكون باستمرار

حتى يتم فتح ملفات اخرى وتتغير باستمرار

ali.rar

#17

جزاك الله كل خير اخي العزيز

#18

أخى "cipher" لقد قمت بتحميل الملف وهو رائع

ولقد سررت حينما قلت ان الذى عمله عربى

ولكن هذا البرنامج لا يعتبر كاملا أو شاملا

ولكنه مفيد لقيامه بوضع شرح بالكود

ومثل ما قلته انت كوده سهل جدا

وشكرا لمتابعتك لموضوعى

#19

أخى "الحيوتي" أولا شكرا لمتابعتك لى

ثانيا لقد قلت لك ان ما قدمته مجرد فكرة

ولكنى ان شاء الله سوف افكر فيها جيدا

وارجو منك المزيد من المتابعة

شكرا لتعقيبك يا اخ " yasserstars "

وأرجو منك المتابعة

#20

بسم الله الرحمن الرحيم

نبدأ المرحلة الثالثة من الشرح بإذن الله

اضافة بسيطة فى Form2:-

كود الزر Add

Private Sub cmdadd_Click()
If File1.ListCount > 0 Then
Form1.List1.AddItem Dir1.Path & "\" & File1.FileName
Else
MsgBox "No files were found in specific folder", vbOKOnly, "Error"
End If
End Sub

كود الزر Add All

Private Sub cmdall_Click()
If File1.ListCount > 0 Then
For X = 1 To File1.ListCount
File1.ListIndex = X - 1
Form1.List1.AddItem File1.Path & "\" & File1.FileName
Next X
Else
MsgBox "No files were found in specific folder", vbOKOnly, "Error"
End If
End Sub

لقد قمت فى الكودين السابقين بإضافة رسالة تظهر فى حالة

عدم وجود ملفات فى Flie1

وهذا هو محتوى الرسالة "No files in this folder" فى حالة

عدم وجود الملفات المطلوبة 0

إضافة Slider2

نقوم بإضافة Slider2 ونجعل خصائصها كالتالى :

BorderStyle = 0
Max = 2500
SelStart = 1
TickStyle = 0

ثم نقوم بإضافة Timer بالخصائص الآتية :

Name = Timersilder2
Interval = 1

كود Timersilder2 :

Private Sub Timersilder2_Timer()
On Error Resume Next
Slider2.Value = MediaPlayer1.CurrentPosition
End Sub

وهو يساوى بين قيمة Slider2 وقيمة CurrentPosition الخاصة

بالميديا بلاير, والـ CurrentPosition هى قيمة مدة الملف الصوتى

المختار , ومدد كل الملفات الصوتية مختلفة بالطبع عن بعضها 0

كود Slider2

ونضع هذا الكود فى الحدث Scroll الخاص بتحريك الشريطة

يمينا ويسارا

Private Sub Slider2_Scroll()
On Error Resume Next
MediaPlayer1.CurrentPosition = Slider2.Value
End Sub

وهو نفس الكود الذى فى الـ Timer

** وبذلك نكون بغنى عن استخدام شكل الميديا بلاير

ولا يوجد مانع من عدم إظهارها للمستخدم

أى نجعل الخاصية Visible = False الخاصة

بالميديا بلاير لكى لا نظهرها للمستخدم

وذلك كما بالشكل :

7sz4.png

إضافات للقائمة menu editor :-

نقوم بإضافة القائمة Play بجوار القائمة File ونجعل

خصائصها كالآتى :

Name = mnuplay
Caption = Play

ونضع الأتى فى فرعها :

Name : mnuNormalPlay
Caption : Normal Play
Checked = True  نضع علامة صح
Name : mnuContinuouPlay
Caption : Continuous Play
Name : mnuShuffel
Caption : Shuffel

وذلك كما بالشكل :

8oo7.png

ونقوم بإضافة 3 Timer بالخصائص الآتية :

Timer1

Name: tmrNormalPlay
Interval = 1

*********************
Timer2

Name: TmrContinuousPlay
Interval = 1000

*********************
Timer3

Name: tmrShuffel
Interval = 100

الأكواد :

كود tmrNormalPlay

لن نضع به كود وشرح ذلك سوف يأتى

كود TmrContinuousPlay

Private Sub TmrContinuousPlay_Timer()
On Error Resume Next
If Slider2 = Slider2.Max Then
List1.ListIndex = List1.ListIndex + 1
cmdplay_Click
End If
End Sub

وهذا الكود يعنى تشغيل ما فى الـ List1 بالترتيب

أنظر List1.ListIndex + 1 هذا الواحد يعنى

عند الإنتهاء من الملف الصوتى الأول يشغل الملف

الصوتى الذى يليه مباشرة 0

أى لو غيرنا هذا الواحد برقم ثلاثة مثلا فعند الإنتهاء من

الملف الصوتى الأول يتم تشغل الملف الصوتى الذى

يليه بثلاث ملفات0

وفى النهاية وضعت cmdplay_Click لتقوم بعمل

تشغيل للملف الصوتى أى انها تذهب للكود الذى فى

الزر cmdplay

كود tmrShuffel

Private Sub tmrShuffel_Timer()
If MediaPlayer1.CurrentPosition = MediaPlayer1.Duration Then
On Error Resume Next
Randomize
List1.ListIndex = Int(List1.ListCount * Rnd - 1)
cmdplay_Click
End If
End Sub

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

الى آخر مدته " MediaPlayer1.Duration "

يقوم بإختيار أى صوت موجود فى الـ List1

بطريقة عشوائية " Rnd "

و Randomize امر عشوائى ولكنه ليس الأساس0

أكواد القائمة Play " menu editor "

كود Normal Play

Private Sub mnuNormalPlay_Click()
TmrContinuousPlay.Enabled = False
tmrShuffel.Enabled = False
tmrNormalPlay.Enabled = True
mnuNormalPlay.Checked = True
mnuContinuouPlay.Checked = False
mnuShuffel.Checked = False
End Sub

وهذا الكود واضح فهو يغلق كل الـ Timrs التى ليس

لها علاقة بـ Normal Play 0

وانا جعلت tmrNormalPlay لا يحتوى على كود

لأننى اريد تشغيل الملف الصوتى مرة واحدة فقط

وهذا هو الوضع الأساسى فهو لا يحتاج الى كود

لأنك تعطى الأمر Play فيتم تشغيل الملف وعند

الإنتهاء منه لن يجد أمر لينفذه فيوقف أمر التشغيل0

أما بالنسبة للـ Checked فهى علامة الصح

التى فى الـقائمة Play وهى لإعلام المستخدم

الزر المختار هل هو Shuffel ام Continuous Play 00 وهكذا

كود Continuous Play

Private Sub mnuContinuouPlay_Click()
tmrShuffel.Enabled = False
tmrNormalPlay.Enabled = False
TmrContinuousPlay.Enabled = True
mnuNormalPlay.Checked = False
mnuContinuouPlay.Checked = True
mnuShuffel.Checked = False
End Sub

نفس الشرح السابق0

كود Shuffel

Private Sub mnuShuffel_Click()
tmrShuffel.Enabled = True
TmrContinuousPlay.Enabled = False
tmrNormalPlay.Enabled = False
mnuNormalPlay.Checked = False
mnuContinuouPlay.Checked = False
mnuShuffel.Checked = True
End Sub

نفس الشرح السابق ايضا 0

ونكمل الشرح فى المرة القادمة ان شاء الله

وأحب ان اقول لإخى "الحيوتي" اننى توصلت لما تريد

وإن شاء الله سأقدمه المرة القادمة , وأعتذر لعدم تقديمه

فى هذا الشرح ولكن وقتى اصبح ضيقا لإقتراب امتحانى

وذلك يوم 12/9 المقبل

فادعوا لى بالنجاح وجزاكم الله خيرا 0

ولغاية ما وصلنا وضعت البرنامج بالمرفقات0

والسلام عليكم ورحمة الله وبركاته

MP3.3.rar

#21

عفوآ لم استطيع قرائه الموضوع كامل لكن عندي اداه تحتوي على equalizer

222222222222222222222222

rmixs100.zip

rmeds174.zip

I believe that there is no god but Allah and Mohamed is Allah Messenger

#22
Unlimated destroye كتب:
عفوآ لم استطيع قرائه الموضوع كامل لكن عندي اداه تحتوي على equalizer

222222222222222222222222

جزاك الله يا أخى كل خير

لقد قدمت لى شيئا بحثت عنه

كثيرا ولم اجده

بارك الله فيك وزادك من علمه

والسلام عليكم ورحمة الله وبركاته

#23

أشكرك أخي zain50 وأتمنى أن تتحفنا بمثلها

#24
mhalamin كتب:
أشكرك أخي zain50 وأتمنى أن تتحفنا بمثلها

مشكور لأهتمامك يا أخى "mhalamin" بالموضوع

وانتظر منى باقى الشرح ان شاء الله

ولكن أعذرنى ان تأخرت , فأنا عندى

امتحان تكميلى يوم 12/9

أسألكم الدعااااااااااااااااااااااااء الخالص

#25

مشكور جدا يا أستاذ على هذا الشرح الوافي .

هذا الموضوع مغلق.

مواضيع مشابهة