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

beeeep

مغلق
بدأه abboodd dude في 20 يونيو 2007 · 11 رد · 988 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندما يكتب المستخدم مثلاً كلمة سر خاطئة في العادة تظهر له message box تخبره فيها بأن كلمة السر خطأ ، ولكن لمزيد من التميز في برنامجك يمكنك أن تظهر له صوتاً يعبر له عن ذلك .

طبعاً يمكنك أن تكتب الأمر beep فيصدر البرنامج صوتاً ولكن أين التميز ؟ التميز في استعمال الدالة beep وسأشرح لك كيف

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

Private Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

هنا الإجراء هو beep من مكتبة kernel32 والمتغير dwfreq من النوع الطويل ويدل على نوعية الصوت والمتغير dwduration من النوع الطويل ويدل على مدة الصوت

والآن في الحدث click لزر الأوامر اكتب

private sub command1_click ()

dim a as long

dim b as long

dim c as long

a=(int(rnd*10000))

b=(int(rnd*1000))

if text1.text="abd" then

form2.show

else

c=beep(a,B)

end if

end sub
private sub form1_load ()
randomize
end sub

اكتب هذا الكود ولاحظ أنه إذا كان النص في مربع النص يساوي abd فسيظهر لك الفورم الثانية وإذا كان خطأ ففي كل مرة تضغط فيها الزر سيعطيك صوتاً مختلفاً ذا مدة مختلفة

متطلبات هذا البرنامج :

1-برنامج فيجوال بيسيك

2-كرت صوت

3-سبيكرات موصولة إلى الجهاز

4-جهاز كمبيوتر

أرجو مراعاة متطلبات البرنامج وقراءتها بحذر ومثال عن البرنامج موجود في المرفق وشكراً

beeeep.rar

#2

:rolleyes: عفواً هناك خطأ حيث أن الصحيح هو c=beep(a,b( وأظن أنكم لا حظتم الخطأ

#3

مشكور وبارك الله فيك

#4

شكرا لك بارك الله فيك ,, تحياتي

50610597.gif

68195903.png

43618215.gif

#5

تشكر اخي , ويرجى شرح الكود بمزيد من التفصيل :

الكود بعد التعديل :

private sub command1_click ()

dim a as long

dim b as long

dim c as long

a=(int(rnd*10000))

b=(int(rnd*1000))

if text1.text="abd" then

form2.show

else

c=beep( a , b )

end if

end sub
private sub form1_load ()
randomize
end sub
اقتباس
If A is success in life, then A equals x plus y plus z. Work is x; y is play; and z is keeping your mouth shut

Albert Einstein

مدخل إلى برمجة وتصميم الألعاب : كيف أبدأ ؟

#6

بسم الله

موضوع شيق

ومساهمة مني في هذا الموضوع اللذيذ اضع هذا المثال البسيط

طبعا لا يسمى برنامج وانما هو مجرد شيء ترفيهي

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

ويمكن استدعائها وتشغيلها بالسرعة الذي يريدها المستخدم

ارجو ان ينال اعجابكم

Music.rar

#7

شكراً أيها الأخوة الكرام على تفاعلكم وجزيل الشكر للأخ ala2 vb على تصحيح الكود الملخبط وللأخ amir imam على البرنامج الجميل

أما بالنسبة لشرح الكود فأولاً كتابة الإجراء في لوحة الإعلانات العامة لا أظن أنه بحاجة إلى الشرح

وثانياً كتابة التعليمات :

أولاً نعرف المتغيرات a و b و c على أنها من النوع الطويل

ثم نكتب لكل من المتغيرين a و b الكود التالي

a=(int(rnd*10000))

b=(int(rnd*1000))

هذا يعطي كلاً من المتغيرين قيمة عددية صحيحة عشوائية حيث أن كلمة int تعطي المتغير قيمة عددية والكلمة rnd تعطيه قيمة عشوائية والعدد المضروب بالrnd هو الحد الأقصى له وطبعاً لا ننسى إغلاق كل الأقواس

ثم الكود

if text1.text="abd" then

form2.show

else

c=beep(a,B)

end if

هذا الكود يتحقق من قيمة مربع النص فإذا وجدها abd ينتقل بك إلى الفورم التالي وإذا وجدها غير ذلك يقوم بتعريف الإجراء beep ويمرر إليه القيمتين العشوائيتين a و b

وبهذا يعطيك صوتاً عشوائياً ذات مدة عشوائية كل مرة تضغط فيها الزر

ولكن قد تعتقد أن هذه القيم عشوائية ولكنها موضوعة بنظام محدد اختاره لها الويندوزمن عنده لذلك نكتب الكود التالي في حدث تحميل الفورم

randomize

وبذلك تعطي قيماً عشوائية حقيقية

أرجو أن تكونوا استفدتم وأنا موجود لتسألوني عن أي نقطة لم تفهموها من الشرح

abboodd dude

#9

أنا الآن قرأت السورس كود تبع برنامجك واكتشفت أنو ذوقك حلو أخ amir imam وعندك أفكار حلوة استطعت تظهرها بكود ما في أبسط منه

#10

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

open app.path & "\az.txt" foroutput as #1

close #1

بهذا يعيد صنع ملف التيكست من جديد

#11

بسم الله

الاخ العزيز abboodd dude

شكرا جدا على الملحوظة دي

لكن انا كنت عامل المثال مجرد تجربة وممكن اي حد يضيف او يطور فيه

وممكن يبدأ فكرة بسيطة زي كده ويوصل بمجهود الاعضاء لبرنامج كبير ومفيد

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

#12

شكراً أخ amir imam وأرجو من الأخوة الأعضاء المشاركة في هذا الموضوع بطرق لاستخدام دوال الapi بطريقة ممتعة لنجمع بين التعلم والتسلية

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