المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : دروس في البرمجة بلغة دلفي بالصوت والصورة (4)


omf_12000
17-02-2010, 03:10 PM
السلام عليكم ورحمة الله وبركاته
الإخوة الكرام في منتدى 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://rapidshare.com/files/242694486/Project.rar
رابط لتنزيل الدرس في ملف ورد:
http://rapidshare.com/files/242695680/Lesson_4.rar

للاطلاع على باقي الدروس :
http://www.delphi4arab.com/forum/showthread.php?t=6000

Delphi7
27-03-2010, 11:38 PM
بارك الله فيك اتابع دورتك اول باول
لكن فقط اخبرك انه هناك مشكل ولم تلاحظه في الدرس التالت

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

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

وشكرا

omf_12000
28-03-2010, 12:30 PM
بارك الله فيك اتابع دورتك اول باول
لكن فقط اخبرك انه هناك مشكل ولم تلاحظه في الدرس التالت

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

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

وشكرا

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

kachwahed
28-03-2010, 01:19 PM
وعليكم السلام ورحمة الله
أحيي الأخ فارس على مجهوده الطيب وعمله الممتاز، في انتظار المزيد واصل بارك الله لك

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

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

هذا ما لم يتم تغيير رمز الفاصلة في البرنامج بتغيير قيمة المتغير DecimalSeparator بشيء مثل:
DecimalSeparator := '.';
والله أعلم.

cygnux
28-03-2010, 03:22 PM
ما هي النسخة الأحسن في دلفي التي تنصحونني بالعمل
عليها؟ (وما رأيكم في دلفي 2010)