تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة بعد ايقاف الصوت من خلال اداة الميديا بلاير
#11
عملت كل ذلك وما ظهرت أي رسالة خطأ
هل حاولت معرفة إذا كانت المشكلة في حاسوبك :confused: وذلك بتجربة البرنامج في حاسوب آخر Smile
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة:
#12
نعم اخي العزيز قمت كما قلت بنقل البرنامج الى جهاز آخر مع العلم ان جهازي الذي اعمل علية
وندوز 7 وجهاز اللابتوب الذي قمت بنقل البرنامج اليه وندوز xp
ونفس المشكلة ههههههههههههه
حيرتني
سؤالي بعد التجربة عند قيامي بالغط على أي زر مثلا قمت باضافة زر ومربع نص على الفورم
وعند التشغيل ومن ثم الضغط على اداة الميديا بلير ومن ثم الضغط على ازرارEsc مباشرة تظهر المشكلة
ولكن في حالة التشغيل ومن ثم الضغط على اداة الميديا بلير ومن ثم وضع المؤشر على أي اداة اخرى على الفوم لا تظهر المشلكة
والغريب انها لم تظهر لديكم
ارجوا من الاخوة التجربة قد يكون بسبب النظام في جهازي او بعض الخصائص مممممممم لا اعلم
الرد }}}
تم الشكر بواسطة:
#13
السلام عليكم ورحمة الله وبركاته

أخي الكريم
قمت بتجربة البرنامج من خلال البرنامج التنفيذي مباشرة الموجود في مجلد Debug ولم تظهر أي مشكلة على الإطلاق
ثم قمت بفتح المشروع وتنفيذ البرنامج من داخله وبالفعل ظهر الخطأ التالي
كود :
[color=#ff0000]AccessViolationException[/color]
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
وسبب الخطأ أن أداة الميديا بلير عند الضغط على زر Esc تحاول أن تقوم بعملية ما في نفس الوقت الذي يقوم البرنامج فيه بإغلاق نفسه ومسح بياناته من الذاكرة
فيصبح محاولة الوصول من أداة الميديا بلير إلى بياناتها في الذاكرة مستحيلة حيث أنه تم مسحها بالكامل
حسنا عرفنا سبب المشكلة فما الحل لها؟
إليك الحل أخي الكريم:
استبدل الأمر Me.Close بالأمر End الذي يختلف عن السابق أنه سيقطع جميع الأحداث والوظائف التي لا تزال تعمل في الخلفية وبعدها سيقوم بالخروج من البرنامج وبالتالي لن تبقى أي عملية قيد التشغيل ولن تظهر المشكلة بإذن الله
وكنصيحة وتجنبا للتكرار في الأكواد قم بتغيير القيمة للخاصية CancelButton من None إلى btnExit وذلك من خصائص الفورم
ليصبح الكود بالشكل التالي:
كود :
Public Class Form1
    Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click
        AxWindowsMediaPlayer1.URL = "C:\Wrong_Answer.wav"
    End Sub
    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        End
    End Sub
End Class

بالتوفيق

الرد }}}
تم الشكر بواسطة:
#14
الف شكر اخي العزيز

لكن لو كان لدي عدد من الـ Form

في هذه الحالة End سوف تغلق البرنامج بأكملة وانا اريد اقفال الشاشة الحالية فقط ومن خلال زر Esc
على العموم الف شكر على التوضيح
وإذا كان هناك حل آخر نكون من الشاكرين
الرد }}}
تم الشكر بواسطة:
#15
aftfm كتب :الف شكر اخي العزيز

لكن لو كان لدي عدد من الـ Form

في هذه الحالة End سوف تغلق البرنامج بأكملة وانا اريد اقفال الشاشة الحالية فقط ومن خلال زر Esc
على العموم الف شكر على التوضيح
وإذا كان هناك حل آخر نكون من الشاكرين

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

أخي الكريم
في هذه الحالة ...
فالحل الوحيد هو أن تقوم بإلغاء الضغط على زر Esc ثم الخروج من الفورم بالأمر Me.Close
لاحظ الأسطر الملونة في الكود التالي:

كود :
Public Class Form1
    Private Sub btnPlay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPlay.Click
        AxWindowsMediaPlayer1.URL = "C:\Wrong_Answer.wav"
    End Sub
    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        Me.Close()
    End Sub
    Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        If e.KeyCode = Keys.Escape Then
[COLOR=#ff0000]            e.Handled = True
            e.SuppressKeyPress = True[/COLOR]
[color=#0000ff]            Me.Close()[/color]
        End If
    End Sub
End Class

في هذه الحالة فإن البرنامج سيلغي أي حدث سيظهر في أداة الميديا بلير بعد الضغط على زر Esc
وبالتالي لن تظهر المشكلة بإذن الله

بالتوفيق
الرد }}}
تم الشكر بواسطة:
#16
الله يجعلها في موازين حسناتك الف شكر نعم لم تظهر المشكلة مشي الحال
الرد }}}
تم الشكر بواسطة:
#17
السلام عليكم
ان وضع me.close او end
فما الحل لاغلاق الفورم وحده وتشغيل الفورمات الاخرى
وشكرا
الرد }}}
تم الشكر بواسطة:
#18
محمود اكرم كتب :السلام عليكم
ان وضع me.close او end
فما الحل لاغلاق الفورم وحده وتشغيل الفورمات الاخرى
وشكرا

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

أخي الحبيب ...
الأمر يختلف بحسب الحالة
فمثلاً:
  • الحالة الأولى/ لو كان هذا الفورم هو الفورم الرئيسي فإنه بمجرد كتابة الأمر Me.Close فإنه سيغلق البرنامج بالكامل والسبب أن الخاصية الافتراضية لإغلاق البرنامج هو عند إغلاق الفورم الرئيسي ولهذا يجب إن أردت أن يستمر البرنامج في العمل حتى بعد إغلاق الفورم الرئيسي أن تغير خاصية الخروج من عند إغلاق الفورم الرئيسي إلى عند إغلاق آخر فورم كما في الصورة التالية:

    [ATTACH=CONFIG]3049[/ATTACH]

  • الحالة الثانية/ لو كان هذا الفورم اسمه Form2 وتم إظهاره من فورم آخر من خلال الأمر التالي:
    كود :
    Form2.ShowDialog()

    ففي هذه الحالة بمجرد كتابة Me.Close سوف يغلق Form2 ويعود إلى الفورم الرئيسي

  • وهكذا فلكل حالة طريقة ... إلخ

بالتوفيق


الملفات المرفقة صورة/صور
   
الرد }}}
تم الشكر بواسطة:
#19
شكرا اخ sooriaty03
ولكن طريقة ShowDialog لا تنفعني فاستخدمت طريقة Show فقط لانه تحجز الفورم ويجب ان لا استخدم سوى هذا الفورم
لكن عملت بكل سلاسة
جزيل الشكر
الرد }}}
تم الشكر بواسطة:
#20
Jaseseedorn كتب :serwis honda kraków
Handy Cover
Wędkarstwo

ما فائدة هذه الروابط ؟
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم