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

دروس في البرمجه بلغة C#2005, تعلم خطوة بخطوة , مع الإجابة عن أي سؤال

مغلقرائج
بدأه حماة النهضة في 19 أبريل 2007 · 208 رد · 80,594 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#126

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

انا عاوز أعمل برنامج أبعت بيه ايميلات

بس بشرط يكون الايميل (الرسالة نفسها) عبارة عن صفحة

html

موجودة عندي

#127

Ben_Laiid كتب:
السلام عليكم

تحياتي لحماة النهضة وفي إنتظار الترفيع في النسق خاصة بعد تثبيت الموضوع ;)

نشكركم أخي العزيز على تقدير مجهوداتنا , وإن شاء الله نكون عند حسن ظنكم

وقريباً جداً إن شاء الله سنضح بقية الدروس

ym2ponline

يمكن أن تفتح صفحة الـ Html وتقرأها إلى متغير String بواسطة TextReader

وهذا كود إرسال الرسالة :


MailMessage mail = new MailMessage();
mail.From = ""; // ضع عنوان المرسل بين علا متى الإقتباس
mail.To = ""; // وهنا عنوان الرسل إليه
mail.Subject = ""; //عنوان الرسالة
mail.Body = ""; // نص الرسالة بكود أتش تي أم الذي قرأته إلى متغير نصي
SmtpMail.SmtpServer = ""; //مخدم البريد
// ولإرسال الرسالة :
SmtpMail.Send(mail);
	 // إنشاء كائن الرسالة

بالتوفيق :)

..

تم تعديل هذه المشاركة بواسطة حماة النهضة في 18 أغسطس 2007 في 12:31

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#128

السلام عليكم اخي حماة النهضة

ارجوا منكم الاستمرار معنا ومواصلة المسيرة

#129

السلام عليكم اخي حماة النهضة

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

عندما اردت فتح الملف من الزر المخصص يتوقف البرنامج

وايضا وجدت هذا الخطأ وقد ارفقته لكم

ارجوا التوضيح ما المقصود بتسجيل الملف dll الذي قمنا بانزاله فقد لاحظت ان الخطأ هو سبب عدم تسجيل هذا الملف

ارجوا الافادة

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

post-111441-1187548064_thumb.gif

#130

السلام عليكم

شكرا للاخوه حماه النهضه على الرد

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

كنت اعتقد اننى دخلت الموضوع متأخرا

اطمع فى ثلاث اسئله اخرى ان امكن

--------------------------------------------------------

اولا : كيف انادى على

inputbox

من خلال السى شارب دوت نت على غرار الفيجوال

------------------------------

ثانيا : فى الرساله الموجهه للمستخدم فى حاله الضغط على نعم او لا

z = MessageBox.Show ("are you sure you want to delete the data","حذف البيانات",MessageBoxButtons .YesNo ).ToString();

كيف اعرف انه ضغط عليها كنت فى الفيجوال اقول

if z = vbYes

فماذا اقول فى السى شارب دوت نت

------------------------------

ثالثا : بالنسبه للكمبو

combobox

عند الضغط عليه فى ايام الفيجوال كان يعطى حريه الاختيار من الاتى

على سبيل المثال

ComboBox1_DropDown

ComboBox1_SelectedIndexChanged

ComboBox1_KeyDown

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

لا يظهر لى الا خيارا واحد فقط

------------------------------------------------------

مره اخرى شكرا للاخوه حماه النهضه

#131

شكراااااااااااااااااااااا لشرح حضرتك المتميز بس انا مش عارفة انزل sharp developer عشان الر ابط مابيشتغلشى ياري حضرتك تقولى موقع ننزل منه

تقبل تحياااااااااااااااااااااتى

#132

ghubein كتب:
السلام عليكم اخي حماة النهضة

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

عندما اردت فتح الملف من الزر المخصص يتوقف البرنامج

وايضا وجدت هذا الخطأ وقد ارفقته لكم

ارجوا التوضيح ما المقصود بتسجيل الملف dll الذي قمنا بانزاله فقد لاحظت ان الخطأ هو سبب عدم تسجيل هذا الملف

ارجوا الافادة

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

غريبة المشكلة أخي ...

إصدار الوندوز الذي تعمل عليه كامل ؟

وهل أنت متأكد من أن الملف هو الموجود بالرابط في الدرس الرابع ؟

..

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#133

general كتب:
السلام عليكم

شكرا للاخوه حماه النهضه على الرد

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

كنت اعتقد اننى دخلت الموضوع متأخرا

اطمع فى ثلاث اسئله اخرى ان امكن

--------------------------------------------------------

أهلا بك أخي مجدداً تفضل إسأل ..

اقتباس
اولا : كيف انادى على

inputbox

من خلال السى شارب دوت نت على غرار الفيجوال

للأسف هذه الخاصية غير موجود بالسي أو السي شارب

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

راجع هذه المقالة للمزيد من التفاصيل

اقتباس
ثانيا : فى الرساله الموجهه للمستخدم فى حاله الضغط على نعم او لا

z = MessageBox.Show ("are you sure you want to delete the data","حذف البيانات",MessageBoxButtons .YesNo ).ToString();

كيف اعرف انه ضغط عليها كنت فى الفيجوال اقول

if z = vbYes

فماذا اقول فى السى شارب دوت نت

هذا مثال للتأكد من القيام بعملية حذف مثلاً :


{
تعليمات الحذف
}
esle
{
إلغاء الأمر
}
if(MessageBox.Show("هل أنت متأكد من الحذف ؟", "هل أنت متأكد", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)

اقتباس
ثالثا : بالنسبه للكمبو

combobox

عند الضغط عليه فى ايام الفيجوال كان يعطى حريه الاختيار من الاتى

على سبيل المثال

ComboBox1_DropDown

ComboBox1_SelectedIndexChanged

ComboBox1_KeyDown

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

لا يظهر لى الا خيارا واحد فقط

------------------------------------------------------

مره اخرى شكرا للاخوه حماه النهضه

يمكنك إظهار جميع إحداث الكومبو بإختياره في نافذة التصميم

ثم الذهاب لجدول الخصائص وفتح تبويب الأحداث

image5-1.jpg

وعند النقر مزدوجا على أي حدث تنتقل للكود

وتكتب هناك التعليمات التي ترغب بها عند إنطلاق الحدث

بالتوفيق أخي

..

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#134

بطة مصرية كتب:
شكراااااااااااااااااااااا لشرح حضرتك المتميز بس انا مش عارفة انزل sharp developer عشان الر ابط مابيشتغلشى ياري حضرتك تقولى موقع ننزل منه

تقبل تحياااااااااااااااااااااتى

أهلا بك أختي الكريمة

هذا رابط مباشر للـ Sharp Develop

ننتظر تطبيقاتك :)

بالتوفيق

..

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#135

السلام عليك

اقتباس
للأسف هذه الخاصية غير موجود بالسي أو السي شارب

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

راجع هذه المقالة للمزيد من التفاصيل

post-91400-1187962331_thumb.jpg

Made in arabteam2000 ;)

#136
اقتباس
السلام عليك

Made in arabteam2000 ;)

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

جزاك الله خيراً أخي:)

..

تم تعديل هذه المشاركة بواسطة حماة النهضة في 26 أغسطس 2007 في 23:22

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#137

الدرس الثالث عشر

التحكم بالصوت

هناك العديد من الطرق للوصول إلى إجهزة الصوت في نظام التشغيل

منها الطريقة المباشرة و التي تتعامل مباشرة مع محركات أجهزة الصور

وهذه الطريقة معقدة نسبياً وقد تؤدي إلى إعطاب أجهزة الصوت في الحاسوب إذا ما أخطأ المبرمج في تعليمة واحدة

وهناك طرق غير مباشرة تتعامل مع أدوات تشكل وسيط بين أجهزة الصوت ولغة البرمجة

بحيث يسهل التعامل مع الإجهزة , و تجنب أي ضرر في أجهزة الحاسوب إذا ما حدث خطأ ما

الإداة الوسيطة التي سنستخدمها هي أداة Homa_Audio

وهذه الأداة تستخدم إصدار حديث من مكتبة Microsoft.DirectX.dll

وتستخدم مكتبة جديدة Microsoft.DirectX.DirectSound.dll

وبالتالي يجب إستبدال أداة Microsoft.DirectX.dll من الدروس السابقة

بالإصدار الجديد الذي سيتم تنزيله مع الأداة الوسيطة

التطبيق:

أنسخ هذا الملف إلى مجلد Debug داخل مجلد bin داخل مجلد المشروع

الإن إفتح المشروع , ومن نافذة متصفح المشروع إختر Add Reference كما فعلنا في الدرس الرابع :

image4-3.jpg

ستظهر لك هذه النافذة:

image13-1.jpg

إختر Browse من تبويب .Net Assemply ثم أضف ملف

Homa_Audio.dll

الذي قمت بتنزيله

حتى يظهر الملف في قائمة الملفات المختارة رقم 3 , ثم إختر OK

سترى أن الملف تم إضافتها إلى قائمة الملفات الملحقة :

image13-2.jpg

الآن في أعلى كود النافذة الرئيسية للبرنامج

قم بإستدعاء الملف ليتعرف عليه المعالج وذلك بإضافة الكود:

using Homa_Audio;

يضاف هذا الكود أسفل تعليمات الإضافة السابقة كما في الصورة :

image13-3.jpg

الآن قم بتعريف كائن التحكم بالصوت :

private HVolume hv=new HVolume();

تحت المتغيرات من الدروس السابقة :

image13-4.jpg

وإذهب إلى التصميم , وإسحب إلى الفورم إداة TrackBar

image7-2.jpg

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

image13-5.jpg

ثم إختر الأداة التي قمت بإضافتها وغير خاصية Name إلى vt

وغير أيضاً خاصية Value من 0 إلى 10 حيث ستكون هذه هي أداة التحكم بالصوت

من التصميم أنقر مزدوجاً على أداة التحكم بالصوت لتنتقل إلى الكود , ثم أكتب هناك الكود التالي :

hv.Volume=vt.Value;

كائن التحكم بالصوت hv يحتوي على خاصية Volume تستقبل رقم من 0 إلى 10 يمثل مستوى الصوت

فلو أسندنا لهذه الخاصية القيمة 0 فلن نسمع أي صوت

وبالتالي فهذه الخاصية ستأخذ أي قيمة من 0 إلى 10 من خلال كائن شريط التحكم بالصوت vt

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

الواجب :

أضف مربع إختيار Check Box يمثل خاصية كتم الصوت ليصبح التطبيق هكذا :

image13-6.jpg

مساعدة :

إسحب أداة مربع الإختيار إلى النافذة الرئيسية :

image13-7.jpg

ثم إختره وغير خاصية Name إلى mute وخاصية Text إلى "كتم"

ثم أنقر عليه مزدوجاً لتنتقل إلى الكود وأكتب هذا الكود هناك :

			if(mute.Checked)
			{					
			hv.Volume=...;
			}
			else
			{
			hv.Volume=vt.Value;
			}

الكود السابق يفحص مربع الإختيار إذا كان مختاراً ينفذ من بين الحاصرتين الأولى

وإن لم يكن مختاراً ينفذ ما بين الحاصرتين الثانية وهي إسناد قيمة شريط التحكم بالصوت vt.Value

إلى خاصية Volume في كائن التحكم بالصوت hv

أكل الفراغ بقيمة محددة لكتم الصوت - تم شرحها سابقاً في الدرس -

ثم أرسل التطبيق

ملاحظة :

عند تشغيل التطبيق ثم تفعيل مربع "كتم" سينقطع الصوت

ولكن عند تحريك شريط التحكم بالصوت سيرجع الصوت مع أن مربع "كتم" مفعل

وبالتالي يجب وضح شرط في حدث تحريك كائن الصوت ليتم فحص مربع "كتم"

فإذا كان مربع "كتم" مفعلاً فلا يجب أن يتغير الصوت , ويصبح كود تحريك شريك التحكم بالصوت هكذا :

			if(mute.Checked)
			{					
			}
			else
			{
			hv.Volume=vt.Value;
			}

الكود السابق يفحص إذا كان مربع "كتم" مفعل فلن ينفذ شي

وإن لم يكن مفعلاً فسينفذ كود تغيير الصوت

يمكن كتابة الكود السابق بطريقة أخرى , بإستخدام معامل العكس !

حيث يتم إضافة رمز التعجب ! قبل الجملة المنطقية ليعكس الجملة كلها

مثلاً :

			if(mute.Checked)

تعني إذا كان مربع الكتم مفعل , و :

			if(!mute.Checked)

تعني إذا لم يكن مربع الكتم مفعلاً

وبالتالي فيمكن كتابة كود تحريك شريط التحكم بالصوت هكذا :

			if(!mute.Checked)
			{
			hv.Volume=vt.Value;
			}

. نهاية الدرس الثالث عشر .

..

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#138

السلام عليكم

مممم عودة الإمتياز

حماة النهضة أضن أنه من الممكن إستعمال ال InputBox للفيزوال بازيك بإستخدامMicrosoft.Win32.Visual basicعلى ما أضن أليس كذلك. كانت ملاحظة من أحد الأعضاء ولم أعرف كيف ذلك

السؤال الثاني لو سمحتم حول نوع الملفات الصوتية التي تشغلها هذه المكتبة Homa_Audio.dll

سؤال ثالث ربما يكون خارج عن الموضوع الحالي يتمثل في كيفية قراءة نص الشاشة السوداء. لا أعني نافذةconsole (console.ReadLine...) بلcmd

تم تعديل هذه المشاركة بواسطة Ben_Laiid في 26 أغسطس 2007 في 23:59

#139

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

الدرس الاول

والثاني من الدوره

في كتاب

pdf

(الجزء الاول )

وسوف استمر في تنسيق الدروس وجعلها على شكل pdf

وايضا في المرفقات

http://www.mediafire.com/?42qmrdlmz1u

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

C_2p1.pdf

تم تعديل هذه المشاركة بواسطة y85.fox في 27 أغسطس 2007 في 20:42

#141

احذفوا الرد يا إدارة ^^

بالخطأ

تم تعديل هذه المشاركة بواسطة حماة النهضة في 29 أغسطس 2007 في 22:23

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#142

Ben_Laiid

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

قبل ما أرد يا أخي على كلامك

حابب بصراحة أشكرك شكر كبير جدا

ما شاء الله عنك ساعدتنا كتير و ما زلت بتساعدنا هنا .... و أفترض إنتا اللي ثبتت الموضوع صح ؟

بجد يا أخي تستحق شكر كبير جدا جدا جدا من كل أسرة حماة النهضة بكل من فيها ..... من القائد لآخر شخص دخلها

ربي يجزيك كل خير على تعبك يا أخي و يوفقك

اقتباس
حماة النهضة أضن أنه من الممكن إستعمال ال InputBox للفيزوال بازيك بإستخدامMicrosoft.Win32.Visual basicعلى ما أضن أليس كذلك. كانت ملاحظة من أحد الأعضاء ولم أعرف كيف ذلك

حقيقة لم إجربها , ولكن حتى لو وجدت فلن أستخدمها

عادة ما نتجنب إستدعاء دوال الـ API في الوندوز

وفضاء الإسماء Microsoft.Win32 يحتوي على عدد من دوال الـ API

ربما من بينها InputBox

عند إستدعاء فضاء الأسماء هذا , فإنا نربط البرنامج بإصدار الوندوز

يعني أن التطبيق لن يعمل على نظام Linux مثلاً

وربما لن يعمل على بعض إصدارات وندوز

لذلك نعمل دائما على تجنب إستخدام مكتبات مرتبطة بنظام التشغيل

حتى نجعل التطبيق يعتمد فقط على إطار العمل Net Framework ولا يعتمد على أي من وظائف نظام التشغيل

بما يتناسب مع مقاييس CLR العالمية , وهذا أهم مميزات تقنية Net. - إستقلالية التطبيقات عن أنظمة التشغيل -

لذلك حتى نعمل بإحترافية أكثر الأفضل عدم إستدعاء أي من وظائف نظام التشغيل في فضاء الأسماء Microsoft.Win32

كما أن إستدعاء فضاءات أسماء كثيرة يستهلك موارد الذاكرة على وظائف يمكن عملها بسهولة

اقتباس
السؤال الثاني لو سمحتم حول نوع الملفات الصوتية التي تشغلها هذه المكتبة Homa_Audio.dll

هذه الأداة يقتصر عملها على التحكم بالصوت وتسجيل ملفات wav

كما سنوضح في الدروس القادمة

اقتباس
سؤال ثالث ربما يكون خارج عن الموضوع الحالي يتمثل في كيفية قراءة نص الشاشة السوداء. لا أعني نافذةconsole (console.ReadLine...) بلcmd

أظن أني لم أفهم السؤال جيداً , معروف أن برامج الكونسول يمكن تنفيذها بواسطة cmd

وطريقة القراءة منها هي كما أوضحت console.ReadLine

بالتوفيق أخي , يسعدنا تواجدك دائما ^^

..

y85.fox

أما إنتا يا أخي ....... كلمة الشكر لا توفيك حقك باللي عملته بالدروس يا أخي

ما شاء الله عنك

بجد عملت شيء رائع جدا جدا جدا

الملف شكله و ترتيبه و الفهرس في بدايته

صراحة كل شيء فيه رائع

هو في شغلتين حابين نطلبهم منك لو سمحت

1- إنه ما تحط صورة أي منتدى بالملف ..... لإنه الدروس عامة يا أخي لكل النت مش لمنتدى معين فإنتا لما تحط صورة أي منتدى بيصير كإنه الحماة تابعة لهادا المنتدى

لكن الشيء هادا إنتا تلاشيته بالملف الجديد ..... ما شاء الله عليك ..... رائع

النقطة رقم 2

تقدر تساعدنا يا أخي على طول ؟؟

تشتغل معانا يعني ؟؟

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

تقدر ؟؟

لو تقدر عشان أكلمك و نتفاهم يا أخي على كل شيء ^^

آخر نقطة بس

الروابط يا أخي .... في الملف مش فعالة ...... لو تقدر تخليها فعالة بيكون أفضل كتير عشان يقدر القارئ ينزل الملفات لما يكون في روابط لها

ربنا يحميك و يعزك يا أخي

و بانتظار ردك ^^

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#143

السلام عليكم

اقتباس

احذفوا الرد يا إدارة ^^

بالخطأ

أنا من قام بإخفاء عدة ردود في هذا الموضوع وهي خاصة ردود الشكر والمجاملة والخارجة على الموضوع ولا تحتوي إضافة علمية ومستعد لإرجاعها إن شئت. :)

اقتباس
و أفترض إنتا اللي ثبتت الموضوع صح ؟

لقد ثبته مشرفنا معتز

أخي لا شكر على واجب. إنما الشكر لله عز وجل ول y85.fox

فعلا أحسنت y85.fox, وآمل أن أرى إصدارات أخرى أجمل و أكثر إتقان وسأحاول مع الإدارة إضافة النسخة الأخيرة من هذا الكتاب لمكتبة الموقع لتكون مرجع إن شاء الله.

#144
اقتباس
معروف أن برامج الكونسول يمكن تنفيذها بواسطة cmd

نفترض أني قمت بفتح ال cmd وكتبت تعليمات ما وأريد قراءة المخرجات. لأنني بصدد تطوير مترجم سي شارب وأريد إضهار نتائج الترجمة في ركن من الواجهة يمكن القول مثل الحال في الفيزوال ستوديو.

إستعملت في المرة الأولى ملف bat و الأمور تمام من ناحية الترجمة ولكن لم أتمكن بعد من الحصول على ماأريد

#145
حماة النهضة كتب:

y85.fox

أما إنتا يا أخي ....... كلمة الشكر لا توفيك حقك باللي عملته بالدروس يا أخي

ما شاء الله عنك

بجد عملت شيء رائع جدا جدا جدا

الملف شكله و ترتيبه و الفهرس في بدايته

صراحة كل شيء فيه رائع

هو في شغلتين حابين نطلبهم منك لو سمحت

1- إنه ما تحط صورة أي منتدى بالملف ..... لإنه الدروس عامة يا أخي لكل النت مش لمنتدى معين فإنتا لما تحط صورة أي منتدى بيصير كإنه الحماة تابعة لهادا المنتدى

لكن الشيء هادا إنتا تلاشيته بالملف الجديد ..... ما شاء الله عليك ..... رائع

النقطة رقم 2

تقدر تساعدنا يا أخي على طول ؟؟

تشتغل معانا يعني ؟؟

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

تقدر ؟؟

لو تقدر عشان أكلمك و نتفاهم يا أخي على كل شيء ^^

آخر نقطة بس

الروابط يا أخي .... في الملف مش فعالة ...... لو تقدر تخليها فعالة بيكون أفضل كتير عشان يقدر القارئ ينزل الملفات لما يكون في روابط لها

ربنا يحميك و يعزك يا أخي

و بانتظار ردك ^^

السلام عليكم

اخي الكريم اشكرك على هذا التشجيع .

ومن اجل

1-

سوف تكون الاصدارات القادمة ان شاء الله للكل .

2-

هذا شرف كبير لي ان اكون واحد من الحماه ولو في عمل صغير .

3-

الروابط بان الله سوف يكون لها حل .

وكل الشكر للاخ

Ben_Laiid

وجزاكم الله كل خير على الردود الجميله .

#146

أستاذي الفاضل كل الشكر الجزيل لك

ماشاء الله

كل درس يحوي فيضا من المعلومات بطريقة بسيطة وعرض مترابط

توصلت لهذه المرحلة وظهر عندي الخطأ التالي

untitled.JPG

post-128692-1188470747_thumb.jpg

#147

الدرس الرابع عشر

تسجيل الصوت

سنضيف في هذا الدرس خاصية مهمة للتطبيق

وهي إمكانية تسجيل الصوت سواء من الإجهزة الخارجية بواسطة لاقط الصوت

أو من الكمبيوتر نفسة بإستخدام خاصية Mix in

نحتاج في هذا الدرس إلى كائن جديد من مكتبة Homa_Audio

كائن HAudio الذي يقوم يقوم بعمليات التسجيل

ولإستخدام هذا الكائن في التطبيق لا بد من تعريفه وليكن إسمه ra

إنسخ كود التعريف التالي تحت تعريف كائن تغيير الصوت من الدرس السابق :

		private HAudio ra=new HAudio();

image14-1.jpg

هذا الكائن يحتوي على إجراء التسجيل Record والذي يستقبل مدخل من نوع سلسلة نصية تمثل مسار الملف الي سيتم التسجيل إليه

مثلاً التعليمة التالي :

			ra.Record(@"c:\record.wav");

تقوم بتسجيل الصوت إلى الملف record.wav في القرص المحلي c

أي أن كائن التسجيل يقوم بإنشاء الملف record.wav ثم تسجيل الصوت إليه

ولكن يجب أن لا يكون مسار الملف ثابت , يجب أن يختار المستخدم المكان الذي يرغب بتسجيل الصوت إليه

لذلك سنستخدم نافذة جاهزة أخرى وهي نافذة حفظ الملفات SaveFileDialog

التسجيل

إذهب إلى نافذة التصميم , وإسحب زر جديد من صندوق الادوات يمثل زر التسجيل وأضف إليه صورة مناسبة

إسحب أداة حفظ الملفات SaveFileDialog من صندوق الأدوات

image14-2.jpg

وحددها من الشريط الأصفر في الأسفل

ثم غير خاصية Name إلى SF :

image14-3.jpg

وغير خاصية FileName إلى new.wav

أنقر مزدوجا على زر التسجيل وأنسخ هذا الكود :

			SF.ShowDialog();
			ra.Record(SF.FileName);

السطر الأول يقوم بفتح أداة حفظ الملفات SF كما فعلنا سابقاً في أداة فتح الملفات OF

السطر الثاني يستدعي إجراء التسجيل في كائن تسجيل الصوت ra الذي عرفناه سابقاً

وإستبدلنا مدخل مسار ملف الصوت بناتج أداة حفظ الملفات حيث أن خاصية FileName في كائن SF

ترجع بقيمة سلسلة نصية تمثل المسار المختار من قبل المستخدم

إيقاف التسجيل

كائن التسجيل يحتوي على إجراء أخر يقوم بعملية إيقاف التسجيل وحفظ الملف

StopRecording هو إجراء إيقاف التسجيل , فالتعليمة التالية :

			ra.StopRecording();

هي تعليمة إستدعاء إجراء إيقاف التسجيل

وهذا الإجراء يوقف عملية إلتقاط الصوت ثم يقوم بحفظ الملف الناتج

أي أن ملف التسجيل لن يتم إنشاؤه بشكل صحيح إلا بعد إستدعاء إجراء إيقاف التسجيل

إذهب إلى التصميم وأضف زر يمثل زر إيقاف التسجيل وأكتب داخله الكود المناسب

وذلك هو الواجب ..

ملاحظة :

يمكن للتطبيق الآن أن يسجل الصوت من نفسه , حيث أن إدوات التسجيل منفصلة عن ادوات التشغيل وهذه ميزه مهمة

.نهاية الدرس الرابع عشر .

..

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#148

أنا جئت متأخرة فهل ثمة من يجب على سؤالي بالأعلى

#149

التميمية كتب:
أنا جئت متأخرة فهل ثمة من يجب على سؤالي بالأعلى

بالطبع أختي الكريمة :)

الخطا بسيط أنقري مزدوجاً على سطر الخطأ وعند الإنتقال للخطأ بالكود

إحذفي السطر الذي يوجد به الخطأ كاملا

بالتوفيق

..

إعذرونا , سنضطر للغياب فترة كبيرة

الأمر ليس بيدنا ...... فسامحونا

#150

أشكرك فعلت ذلك ونجحت

أعيد شكري ودعائي لك فقد حققت أمنيتي أتمنى أن تواصل دروسك

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

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