delphi4arab منتديات دلفي للعرب

نسخة كاملة : دروس في البرمجة بلغة دلفي بالصوت والصورة (4)
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
الإخوة الكرام في منتدى Delphi4Arab
اسمحوا لي أن أقدم لكم الدرس الرابع من سلسلة دروس في البرمجة بلغة دلفي بالصوت والصورة، وأتمنى أن تكون ذات فائدة للجميع. في الدرس (3) تعرفنا على أنواع المتغيرات وتعريف المتغيرات. في هذا الدرس إن شاء الله سوف نستمر مع المبادئ الأساسية للبرمجة بلغة دلفي، سوف نقوم بتصميم برنامج لحساب مجموع عددين وإظهار النتيجة في (Edit).
سوف نحتاج إلى:
(Edit1) لإدخال العدد الأول.
(Edit2) لإدخال العدد الثاني.
(Edit3) لإظهار النتيجة.

سوف نقوم بتعريف ثلاث متغيرات من نوع (Integer):
كود :
var n1, n2, sum: Integer;

المتغير الأول (n1) للعدد الأول.
المتغير الثاني (n2) للعدد الثاني.
المتغير الثالث (sum) للعدد للمجموع.
بحيث: (sum = n1 + n2)

سوف نقوم بتعيين القيمة الموجود في (Edit1) للمتغير (n1):
كود :
n1 := Edit1.Text;

طبعا سوف تظهر رسالة خطأ، لماذا؟ لعدم توافق المتغيرات:
كود :
Integer = String

ما هو الحل؟ الحل استخدام الدالة: (StrToInt) لتحويل String إلى Integer
كود :
n1 := StrToInt(Edit1.Text);

بنفس الطريقة
كود :
n2 := StrToInt(Edit2.Text);
ومن ثم حساب الناتج وتعيين قيمة sum لـ Edit3 وسوف نستخدم الدالة (IntToStr) للتحويل من Integer الى String.
كود :
Sum := n1 + n2; Edit3.Text := IntToStr(sum);

الكود كاملا:
كود :
procedure TForm1.Button1Click(Sender: TObject); var n1, n2, sum: Integer; begin n1:=StrToInt(Edit1.Text); n2:=StrToInt(Edit2.Text); sum:=n1+n2; Edit3.Text:=IntToStr(sum); end;


وبنفس الطريقة يمكن تصميم برنامج يقوم بحساب حاصل طرح عددين، وحاصل الضرب وأيضا حاصل القسمة.
لاحظ عند تشغيل البرنامج وإدخال بيانات خاطئة مثل (فراغ أو حروف) سوف تظهر رسالة خطأ، في هذه الحالة يمكن استخدام جملة (try except) وتستخدم للتعامل مع الأخطاء مثل القسمة على صفر أو إدخال بيانات غير صحيحة.
كود :
try ststments except exception block end;

بحيث يتم تنفيذ الأوامر المحصورة بين (try- except) وفي حالة وجود خطأ يتم تنفيذ الأوامر المحصورة بين (except- end) ويصبح الكود كالاتي:
كود :
procedure TForm1.Button1Click(Sender: TObject); var n1, n2, sum: Integer; begin try n1:=StrToInt(Edit1.Text); n2:=StrToInt(Edit2.Text); except ShowMessage('لقد تم إدخال بيانات غير صحيحة'); Exit; end; sum:=n1+n2; Edit3.Text:=IntToStr(sum); end;


(ShowMessage) تستخدم لإظهار رسالة للمستخدم.
(Exit) للخروج من procedure.

رابط لتنزيل الكود:
كود :
http://www.4shared.com/rar/HJQ1Sp0U/Lesson_4_Project.html
رابط لتنزيل الدرس في ملف ورد:
كود :
http://www.4shared.com/rar/tW-qYaBa/Lesson_4.html

للاطلاع على باقي الدروس :
http://www.delphi4arab.net/forum/showthr...p?tid=6000

Delphi7

بارك الله فيك اتابع دورتك اول باول
لكن فقط اخبرك انه هناك مشكل ولم تلاحظه في الدرس التالت

لما تعمل ;(r:=StrToFloat(edit1.text

ولما تكتب عدد بالفاصلة متلا 3.2 وتعمل المحيط او المساحة تحدث Erorr ولا يشتغل شيء حتى تعيد تشغيل الدلفي

وشكرا
delphi7 كتب :لما تعمل ;(r:=strtofloat(edit1.text

السلام عليكم ورحمة الله وبركاته
تحية طيبة وبعد
لقد راجعت الدرس الثالث، وأعتقد أنه لا يوجد به أي خطأ، شكرا على التنبيه.
ممكن تعطيني نص رسالة الخطأ التي تظهر لك.
تحياتي...!
وعليكم السلام ورحمة الله
أحيي الأخ فارس على مجهوده الطيب وعمله الممتاز، في انتظار المزيد واصل بارك الله لك

إقتباس :ولما تكتب عدد بالفاصلة متلا 3.2 وتعمل المحيط او المساحة تحدث erorr ولا يشتغل شيء حتى تعيد تشغيل الدلفي
الأعداد ذات فاصلة عائمة تكتب برمز الفاصلة المحدد في النظام، حسب الإعدادات الإقليمية لنظام التشغيل

فإذا حددت رمز الفاصلة هو النقطة "." فإن الرمز 3,2 لا يعتبر عددا أصلا، ويعيد البرنامج رسالة خطأ
وإذا حددت رمز الفاصلة هو الفاصلة "," فإن الرمز 3.2 لا يعتبر عددا أصلا، ويعيد البرنامج رسالة خطأ

هذا ما لم يتم تغيير رمز الفاصلة في البرنامج بتغيير قيمة المتغير DecimalSeparator بشيء مثل:
كود :
DecimalSeparator := '.';
والله أعلم.
ما هي النسخة الأحسن في دلفي التي تنصحونني بالعمل
عليها؟ (وما رأيكم في دلفي 2010)
شكرا اخي على الدورة
وتم تحميل الدرس الرابع بنجاح
السلام عليكم ورحمة الله بركاته
يمكنك تحميل الدرس الرابع على (4shared) الروابط جديدة بأول مشاركة
تحياتي...!
بارك الله فيك
splenter sell كتب :بارك الله فيك

فيك بارك الله
تحياتي...