إشترك

أفكار و دروس لاحتراف التعامل مع edit






بسم الله الرحمان الرحيم
السلام عليكم و رحمة الله تعالى و بركاته في درس اليوم سنتعلم أشياء رائعة و مفيدة نراها في جميع البرامج العالمية و درس اليوم كله يتعلق بأداة  edit  هذه الأداة التي تمكننا من كتابة نصوص فيها أثناء تنفيذ البرنامج و سيكون هذا الدرس مقسم على نفسه إلى عدة أفكار و أقسام و هي كالآتي :
أولا : نظرة عن المكون
·         مكون edit
هذا المكون لا يق أهمية عن المكونات الأخرى فما بالك إذا وجدت برنامج يقوم بفعل شيء ما و هو لا يحتوي على هذا المكون فهذا المكون يساعد على إدخال المعلومات و القيم للبرنامج أي يصبح البرنامج حي و يمكن التعديل عليه بواسطة المستخدم .
ثانيا : شرح بعض خصائص المكون
الخاصية
الشرح
autoSelect
هذه الخاصية إذا كانت true  فهذا يعني أن البرنامج عند التنفيذ يحدد مباشرة على النص الموجود في الأداة
BorderStyle
هده الخاصية لجعل المكون يحتوي على إطار أسود أو لا
Ctl3d
هذه الخاصية إذا كانت false  فهذا يجعل الإطار الذي على المكون مستطيل عادي
passwordchar
هذه الخاصية لتحديد شكل أو رمز الأحرف عند الكتاب
Text
أي النص الموجود في الأداة أثناء تصميم أو تنفيذ البرنامج
ثالثا : شرح بعض أحداث المكون :
الحدث
الشرح
OnChange
يعني عند التغير أي عند زيادة حرف أو حذفه من النص
OnkeyUp
أي عند الضغط على زر النزول إلى الأسفل الموجود في لوحة المفاتيح
مثال 1 :
أضف مكون label و button  و edit  إلى النموذج الأول و بعدها قم بكتابة الكود التالي في حدث onclic  الخاص بالمكون button
Label1.caption:=edit1.text;
في هذا الكود سيقوم البرنامج بجعل عنوان المكون label1  مطابق للنص الموجود في edit1  و هذا عند الضغط على button
تم اقتطاف هذا من "مجلة مكونات دلفي "
ثانيا : بعض الأفكار البرمجية
كيفية جعل النص المكتوب في الأداة يظهر على شكل نجمات " كلمة سر "
يعني كيف يمكن جعل النص المكتوب على شكل رموز مثلما نجد في أي برنامج أو موقع على الانترنت و هذا أمر بسيط و هو يتعلق بخاصية ذكرناها سابقا و هي خاصية passwordchar و  بهذه الخاصية تستطيع أن تجعل النص الذي يظهر في الأداة على أي شكل تريد فإذا أردت أن يظهر النص هكذا aaaaaa فما عليك إلى كتابة حرف a  مكان 0# و بمجرد كتابتك للحرف سيحول إلى شفرة الأسكي يعني أثناء التصميم و عند كتابتك لحرف  a  فإنه سيحول إلى 97#
كيفية جعل المكون يتحمل حد معين من الحروف
هذه خاصية رائعة و هي لتحديد العدد الأقصى للأحرف في النص أثناء تنفيذ البرنامج و للتحديد القيمة العظمى للنص  توجه إلى خاصية  maxlength و حدد القيمة الأعضمية "5..10" و الآن قم بتنفيذ البرنامج و فمثلا إذا كانت القيمة التي حددتها هي 5 و نفذت البرنامج و حاولت كتابة " مبرمج " فلن يتم قبوله
كيفية جعل المكون للقراءة فقط
يعني جعل النص الموجود في المكون قابل للقراءة فقط و لا يمكن لا كتابة و لا حذف و لا أي تعديل فقط القراءة و للقيام بهذا التغير ما عليك إلى التعديل على خاصية readonly  و جعلها في الوضع true  يعني السماح بالقراءة فقط
كيفية جعل عنوان النموذج يتغير بتغير اسم المكون
يعني كيفية جعل النص المكتوب في الأداة و الذي يمكن التعديل عليه و في مرحلة التعديل يظهر لنا كعنوان للنموذج form  وهذا لا يتم إلى عن طريق كتابة الأمر التالي في حدث onchange  الخاص بالمكون
Form1.caption:=edit1.text;
حيث أن في هذا الكود سيقوم البرنامج بتغير عنوان النموذج كلما تم حذف أو إضافة حرف للنص الموجود في الأداة
كيفية جعل أمر ما ينفذ عند الضغط على Entrée  / زر آخر  من لوحة المفاتيح
يعني عند الضغط على " دخول" من لوحة المفاتيح يتم تنفيذ أمر ما مثلا الضغط على زر / تغير عنوان النموذج ... و للقيام بهذا أكتب الكود التالي في حدث OnKeyPress :
if key = char( VK_Return ) then
form1.caption:=edit1.text;
في هذا الكود استخدمنا جملة الشرط if..then  و الكود السابق معناه إذا تم الضغط على زر دخول من لوحة المفاتيح إذا عنوان النموذج سيصبح نص هو نص الأداة edit1  و أنتم تلاحظون أمرا غريبا و هو VK_Return و ما هو  إلى قيمة معرفة في الدلفي و هي بمثابة الضغط على زر دخول من لوحة المفاتيح .
كيفية جعل نص الأداة edit  لا يقبل إلى الأرقام
أي عند كتابة حرف ما لا يستجيب البرنامج و لا يكتب أي شيء و للقيام بهذا الأمر عليك بكتابة الكود التالي في حدث OnKeyPress  المتعلق بالمكون edit1  :
const s = ['0','1','2','3','4','5','6','7','8','9'];
begin
if not ( key in s )
then key:= char(vk_capital)
و في الأخير أتمنى أن يكون درس اليوم أعجبكم

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



استعمال الوحدات المرفقة مع الدلفي " الوحدة math "


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

استعمال الوحدات المرفقة مع الدلفى الدالة math

المشكلة المطروحة انه يمكن أن تستعمل الكثير من الدوال و الإجراءات المرفقة مع الدلفى و ألان في هدا المثال سنستعمل الدوال الرياضية فالمبرمج في حاجة إليها دائما دعونا من الكلام التطبيق .
1- افتح الدلفى
2- أظر للصورة

3- أضف في قسم  
   
Use 
الكلمة
Math
كما في الصورة


                                                                                                                                                                                        

ألان كتابة الكود بسيطة

  showmessage ('Max is '+(inttostr(math.Max(strtoint(edit1.Text),strtoint(edit2.Text)) )));
النتيجة

القائمة كبيرة جدااا و هدا متال بسيط جدا عن وحدة الرياضيات ففي بعض البرامج تغنيك هده الوحدة عن كتابة سطور برمجية كثير
الدالة المستعملة في مثالنا هى الدالة  التي تاخد القيمة الأكبر
MAX

هناك الكثير من الوحدات اخرى كثيرة في المسار التالى
C:\Program Files\Borland\Delphi7\Lib
متال اخر


تعلم كيف تصنع لعبة أسئلة و أجوبة


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



sEdit1 هي edit  
الخاصية
كيف تصبح
Text
أكتب اسمك من فضلك
Button1
Caption
دخول اللعبة
خصائص النموذج رقم 1
Caption
RahicheSoft<dakii>
AutoSize
True
BorderStyle
bsDialog
Cilentheight
500
Clientwidth
700
أما المكون الآخر الظاهر في الصورة فهو لوضع مظهر جميل للعبة و يمكن الحصول عليه من خلال تدويناتي السابقة " لمن أراده يبحث عنه " و الآن سنضيف النموذج الثاني و بعدها أكتب الكود التالي في حدث الضغط على button1  


Form2.caption:='hello'+ sedit1.text ;
form2.Show;
و في هذا الكود سيقوم البرنامج أثناء التصميم عند الطلب بالتنفيذ بالربط بين النموذجين وافق و بعدها عند التنفيذ عند كتابة الاسم و الضغط على الزر سيصبح عنوان النموذج الثاني هو مرحبا + الاسم و الآن سنشرح الفكرة البرمجية للعبة .
الفكرة البرمجية للعبة :

أنت ترى بأن هناك اختلاطا كبيرا في الأحرف في الجزء العلوي و هذا يعني و جود أكثر من عنصر Label  أما عن button  فأنت ترى بأنها منظمة لكن تحت كل button  يوجد أخر و لتنضيم العمل قمت بالتالي : 
    1 -   تسمية الأزرار  button  حسب ترتيبها كالأتي : b1 /b2 /b3 /…..
    2 -   تسمية label  الخاصة بالسؤال بالترتيب ك الآتي . q1 / q2 /q3
صناعة لعبة أصعب من صناعة برنامج بكثير
                                                            
و الآن أنت قمت بإضافة  4button  و كتبت الاختيارات فيها ثم كتبت السؤال قم بسمية الbutton  الأربعة على التالي : b1.b2.b3.b4   بالترتيب ثم اجعل اسم مكون label1  هو q1  و الآن هناك ثلاثة أجوبة خاطئة مثلا هي موجودة في b1.b2.b3  أم الجواب فهو في b4  قم بالضغط على b1.b2.b3  من شجرة العناصر

ثم توجه إلى محرر الخواص و بعدها للأحداث المتعلقة بالمكونات الثلاثة و اختر الحدث  OnClic  و بهذا يكون الأمر الذي سنوجهه الآن سيطبق على كل من  b1.b2.b3  أكتب الأمر التالي  :
form2.Close;
form1.Caption:='game over  '  + form1.sEdit1.Text;
يعني عندما يجيب خطأ يخرج البرنامج من النموذج الثاني و ينتقل للنموذج الأول و يجعل عنوانه هو  game over  بالإضافة إلى الاسم الذي اخترناه في بداية اللعبة و الآن ما هو الكود اللازم عندما يجب صح ؟؟ الكود يجب أن يخفي السؤال الأول و جميع الاقتراحات الخاصة بالسؤال الأول و يظهر لنا السؤال الثاني و اقتراحاته و هذا هو الكود اللازم :
q2.Visible:=true;
q1.Visible:=false;
b1.Visible:=false;
b2.Visible:=false  
b3.Visible:=false;  
b4.Visible:=false;   
b5.Visible:=true;
b6.Visible:=true;
b7.Visible:=true;
b8.Visible:=true;
و نعاود الكرة مع السؤال الثاني أم بالنسبة للكود الذي يمنح النقاط فهو هنا :
بما اسم المكون الذي يقوم بإظهار النقاط لنا هو slabel2   فسنضيف الكود التالي إلى الكود السابق
slabel2.Caption:=(inttostr(strtoint(slabel2.Caption) +1));
و يمكنكم طرح أي استفسار أو أي سؤال . لأن هذا الدرس هدفه النقاش لأنه لا توجد مواضيع تتحدث عن الألعاب " النقاش في مدونة تعلم دلفي"


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

جميع الحقوق محفوظة لــ تعلم دلفي بالعربية 2015 ©