السلام عليكم ورحمة الله وبركاتة
اول مشاركة لي بالمنتدى , معذرة على ذلك ^^"
في البداية اعتذر لطول العنوان
... اين وصلت وأين انتهيت واين هي مشكلتك ؟؟
اليوم بدأت برمجة برنامج بسيط وهو [ مشغل فيديو ] بدأت به الساعة 9 صباحاً [ تقريبا ] واها آنا الأن
أوجه بعض المشاكل البسيطة
دعوني اذكر ماذا قمت به حتى الآن ...
في البداية قمت بتصميم واجه البرنامج وهي تتكون من
1- Button1
2- MediaPlayer1
3- OpenDialog1
4- Panel1
5- Timer1
6- TrackBar1
طيب بعد ان اضفت المكونات ...
بدأت اضيف الأكود
و في الـ Button1 في حدث الـ OnClick اضفت الكود
procedure TForm1.Button1Click(Sender: TObject); begin if OpenDialog1.Execute then begin MediaPlayer1.FileName := OpenDialog1.FileName; MediaPlayer1.Open; MediaPlayer1.Play; TrackBar1.Max := MediaPlayer1.Length; end; end;
وأضفت في الـ Timer1 في حدث الـ OnTimer اضفت الكود
procedure TForm1.Timer1Timer(Sender: TObject); begin try TrackBar1.Position := MediaPlayer1.Position; except exit; end; end;
وأضفت في الـ TrackBar1 في حدث الـ OnChange أضفت الكود
procedure TForm1.TrackBar1Change(Sender: TObject); begin try MediaPlayer1.Position := TrackBar1.Position; except exit; end; end;
طيب الأكود لا توجد معها أي مشكلة .. اين المشكلة .. المشكلة اطاال الله في اعمااركم
هي تضاارب الأحداث ي الـ Timer1 والـ TrackBar1 .... كيف ؟
التآيمر يقوم بـ
TrackBar1.Position := MediaPlayer1.Position;
يعني راح يكون المكون TrackBar1 يمشيء مع الوقت الفيديو << كعداد مثل مشغلات الفيديو الباقية
هنا تمام ...
لكن يعتبر هذا الأمر تغيير بالـ TrackBar1 ويكذا راح نفعل الامر حقه الي هو [ OnChange ]
وراح يتضاارب حدث الـ TrackBar1 وال هو
MediaPlayer1.Position := TrackBar1.Position;
مع حدث الـ Timer1 ويتوقف الالفيديو ... ولكي اشغله يتوجب علي إعطاء امر للـ MediaPlayer1 وهو
MediaPlayer1.Play;
وما راح يكون برنامج تشغيل ملتيميديا إذا كل ما اشغله يتوقف
أعتقد اني وضحت المشكلة .. بطريقة مناسبة :)
والي ما فهم او عنده لبس .. يتفضل السرورس كود للبرنامج وينظر للمشكلة بنفسة
http://www.gulfup.com/X2cq7ykj1quhw4