المسيلة M'sila 28 لكل الجزائريين و العرب
 
الرئيسيةالتسجيلقائمة الاعضاءس .و .جمكتبة الصوردخول

شاطر | 
 

 دروس دلفى,تعليم واحتراف دلفى

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:44 pm

ماهو الدلفى ؟

ديلفي هو منتج بورلاند الأكثر مبيعاً للتطوير السريع للتطبيقات RAD (Rapid Application Development) والمستخدم لكتابة تطبيقات ويندوز ، ويمكنك باستخدام الدلفي إنشاء تطبيقات ويندوز بسرعة أكبر وبسهولة أكثر من أي وقت مضى
هذا يعني أنك تستطيع إنشاء واجهة المستخدم ( يقصد بواجهة المستخدم القوائم ومربعات الحوار والإطار الرئيسي ..) لبرنامجك مستخدماً تقنيات السحب والإفلات لمطور تطبيقات سريع ، يمكنك أيضاً وضع تحكمات أكتيف إكس Active X على نماذجك لإنشاء برامج متخصصة مثل برامج استعراض الويب ولكن حتى تصبح مبرمج تطبيقات ويندوز يتطلب منك عمل كبير .
تقوم دلفي بعمل جيد وذلك بإخفاء بعض التفصيلات التي تشكل أحشاء برنامج الويندوز ولكن ليس بإمكانها كتابة البرامج من أجلك ، لذلك يجب في النهاية أن تكون مبرمجا ، ويمكن لهذه العملية أن تكون طويلة ، والخبر الجيد أن دلفي تجعل رحلتك غير متعبة وحتى أنها تجعلها ممتعة .

نظرة عن مكونات ديلفي IDE

سنتعرف في هذا القسم على بيئة التطوير المتكاملة للدلفي IDE (Delphi Integrated Development Environment) .

عندما تشغل برنامج الدلفي تظهر لك بيئة التطوير فيه والتي سنتعرف عليها كل على حده

بيئة دلفي مكونة من ثلاثة أقسام :

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

2- مفتش الكائنات : (شرحه التفصيلى فى الدروس قادمة)

والذي يتم بواسطته تعديل الخصائص والأحداث للمكون وسوف تستخدمه بشكل دائم خلال عملك مع ديلفي وهناك بابين لمفتش الكائنات هما الخصائص Properties والأحداث Events.

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

مصطلح الحدث Event هو شيء ما يحصل كنتيجة لتفاعل المكون مع المستخدم أو مع ويندوز.

مصطلح معامل الحدث Event Handler هو مقطع من البرمجة ينفذ استجابة للحدث.

3- منطقة عمل ديلفي

الجزء الثالث هو منطقة عمل ديلفي وعادة ما يظهر مشروعاً جديداً .
في المقدمة مصمم النموذج وخلفه محرر الشيفرة الذي تدخل عبره البرمجة عند كتابة برامجك.
وكلا من مفتش الكائنات ومصمم النموذج ومحرر الشيفرة تتفاعل فيما بينها عند بناء التطبيقات لتكون البرنامج .
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: رد: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:44 pm

الدرس الثانى


ملفات مشروع ديلفي

سنتعرف في هذا القسم على الملفات التي ينشئها مشروع الدلفي ، لتجسيد ذلك سنقوم بإنشاء تطبيق بسيط ونلقى نظرة على ما يحدث عندما يبني الدلفي ملف تنفيذي للبرنامج

يتم تنفيذ الخطوات التالية :

1- يمكنك قبل البداية إنشاء دليل جديد للدلفي على القرص الصلب لحفظ الملفات

2- بعد تشغيل البرنامج اختر File | Close All لكي تبدأ من جديد ، بعدها اختر File | New Application من القائمة الرئيسية ليعرض فورم خالي

3- اختر File | Save All من القائمة الرئيسية ، سوف تسأل عن اسم ملف الوحدة Unit تأكد من أن تضعه في الدليل الخالي الذي أنشأته.

4- بعدها سوف تسأل عن اسم المشروع Project .

5- اختر Project | Build Test من القائمة الرئيسية ، سوف يقوم الآن الدلفي بتصريف البرنامج وقد يستغرق ذلك دقائق .

6- اختر File | Close All من القائمة وانتقل بعدها لمستكشف ويندوز وحدد مكان الدليل الذي حفظت فيه المشروع ، ستشاهد العديد من الملفات المتنوعة سوف نتعرف على أهمها من خلال السطور القادمة

1- ملف المشروع : والذي يحوي وحدات المشروع له الامتداد Dpr ويمكنك إظهاره باختيار أمر Project |View Source لا تقم بتعديل الملف مالم تعرف ما تفعله بالضبط.

2- ملف الوحدة: ويحوي شيفرة المصدر وله الامتداد Pas وهو الذي تضيف إليه سطور البرمجة.

3- ملف النموذج: ويحتوي على تفصيلات الفورم Form الذي قمت بتصميمه ، يتغير كلما تغير النموذج بإضافة العناصر أو حذفها أوتعيير خصائصها أو خصائص النموذج نفسه

هذه الملفات الازمة لبناء البرنامج ،هناك عدة ملفات ينشئها ديلفي لا يهمنا شرحها الآن ومنها بعض الملفات التي تنتهي بالتوسع (~) وهي ملفات نسخ احتياطي Backup يستخدمها الدلفي في بعض البرامج

محتوى مشروع ديلفي

- يجب أن يتبع مشروع ديلفي تنسيقاً معرفاً مسبقاً لكي يستطيع المترجم قراءته لتنفيذ البرنامج .

- يحتوي مشروع ديلفي على الكلمة Program متبوعاً باسم المشروع وكتلة أوامر محصورة بين الأمرين Begin و End

- كل أسماء الوحدات التي تظهر بعد uses وحتى الفاصلة المنقوطة هي الوحدات المتطلبة للمشروع أو الوحدة بالترتيب.


- لنلق نظرة على وحدة باسكال اختر الأمر File| New ثم اختر Unit سينشئ ديلفي وحدة جديدة .

هذه الوحدة تبدأ بكلمة Unit ويتبعا اسم الوحدة وتظهر الكلمة End في آخر الوحدة تختلف هذه الشيفرة عن السابقة بأنها تحتوي على مقاطع Interface , Implementation والوحدة غير الرئيسية في المشروع يجب أن يحتوي على هذين القسمين لاتجد كلمة begin هذة الوحدة لأنها غير قابلة للتفيذ بدون ملف المشروع.

- القسم Interface

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

- القسم Implementation

وهو قسم التنفيذ للوحدة ويحتوي هذا القسم على الشيفرة الفعلية للوحدة حيث يتم تعريف الروتين (الإجراء أو التابع أو اصطلح ما شئت ) أو المتغير في القسم Interface وكتابة برمجته الفعلية في هذا القسم .


- القسمان Initialization , finalization

يستخدم القسم Initialization لإعداد (تعيين) القيم الابتدائية للمتغيرات أو بناء الكائنات وشحنه إلى الذاكرة ويقوم القسم finalization بهدم الكائن وتحرير الذاكرة منه ، لا يوجد قسم finalization بدون Initialization مع أن كلا القسمين اختياريين.

- كلمات أساسية إضافية مستخدمة في الوحدات:

كلمة const : وتستخدم لتعريف ثوابت معرفة لا يمكن تغييرها أثناء سير البرنامج.

كلمة type : وتستخدم لتعريف أنواع جديدة يستخدمها البرنامج.

كلمة Var : وتستخدم للتصريح عن متغيرات ضمن شيفرة البرمجة.


- يمكن أن تكتب تعليقات داخل البرنامج ليسهل قراءته أو لتذكر الهدف من أوامر معينة وينصح بالتعليق على البرامج خاصة إذا كنت تطور البرنامج لفترات طويلة أو كان من يقوم بتطوير البرنامج مجموعة أشخاص
* * * * * * * * * * * * * * * * * * * * * * * * * *
لعمل تعليقات داخل البرنامج استخدم القوسان { } للعبارات المكتوبة بينهما وأيضا (* *) وأيضا العلامتان // للسطور ،حيث يبدأ التعليق من العلامتان إلى نهاية السطر مع العلم بأن القوسان { } لهما استخدام آخر في ديلفي مع وجود $ وتستخدم كتوجيهات للمترجم }$HINTS OFF}وغيرها

مســـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ28000ـــــــــــmsilaـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــيلة





الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: رد: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:45 pm

الدرس الثالث :

خصائص وأحداث عنصر النافذة

كل مشروع له على الأقل نافذة واحدة Form تمثل النافذة الرئيسة ، كما يمكن أن يكون للمشاريع أكثر من نافذة واحدة. لعنصر النافذة خصائص وأحداث سنستعرضهم في هذا الدرس

عند بداية مشروع جديد ينشئ دلفي نافذة يسميها Form1 بإمكانك إضافة نافذة جديدة من خلال الأمر File|New Form ولكل نافذة وحدة Unit خاص بها يحتوي على برمجة هذه النافذة
ويمكنك الدلفي من التعامل مع النافذة والتعامل مع خصائصها وإضافة أحداث لها من خلال العنصر التالي
والذي سنتعرف الآن على أبرز خصائصة التي يمكننا من التعامل معها

أولا : نتعرف على خصائص عنصر النافذة Properities

ActiveControl : يحدد أي عنصر موضوع على النافذة الرئيسة هو العنصر النشط يمكن التحريك بين العناصر باستخدام الزرTab

AutoScroll : إعطها القيمة True لتظهر وتختفي أشرطة التمرير Scroll bars تلقائياً عند حدوث نقص في مساحة النافذة.

Cruser : يعين شكل مؤشر الفأرة عندما تقع على مساحة النافذة.

Enabled : أعطها القيمة True لكي تستجيب النافذة لأحداث الفأرة ولوحة المفاتيح وعنصر التوقيت Timer وعند إعطائها القيمة False لاتستجيب لاتفعل ذلك إلا إذا كنت تدري ما تفعل .

HerzScrollBar: يظهر شريط التمرير الأفقي للنافذة.

Icon: تحديد أيقونة النافذة ويظهرها على شريط العنوان.

KeyPreview: أعطها القيمة True لكي تتلقى النافذة أغلب أحداث لوحة المفاتيح.

Menu: تستخدم لتحديد قوائم النافذة أحياناً في بعض برامج واجهة المستندات المتعددة Multiple Document Interface واختصاراً MDI كبرنامج مايكروسوفت وورد يمكنك إثناء التشغيل تغيير القوائم.

ObjectMenuItem: يستخدم مع تطبيقات OLE لقواعد البيانات.

PixelsPerInch: يحدد كيف يقوم التطبيق لإنشاء النافذة ليتم قياسها بالنقاط لكل بوصة استخدمه مع Scaled لانشاء نافذة متشابهة في الحجم مع دقة شاشة مختلفة إذاكانت Scaled محددة بالقيمة False فإن PixelsPerInch ليس لها أي تأثير
Position: تحدد المناهج لحساب حجم ومكان النافذة حسب القيم التالية

poDefault يعرض النافذة وموضها المصمم
poDefaultPostOnly يحدد المكان المصمم للنافذة ولكن يحسب حجمها وقت التشغيل (يحدد ويندوز الحجم البدائي لها).

poDefaultSizeOnly يحدد الحجم المصمم للنافذة ولكن يحسب موضعها وقت التشغيل

poScreenCenter عرض النافذة في وسط الشاشة

Scaled: تحدد بالقيمة True لاستخدام خاصة PixelsPerInch يقوم بتغيير مقاسات الشاشة وهو هام لضمان ظهور النص بشكل سليم في تحكم النافذة على أنظمة تستخدم خطوط كبيرة ، كما في الويندوز 98 وويندوز NT والتي يستطيع المستخدم فيها اختيار قياسات الخطوط

Tag: لايوجد تحديد مسبق يمكنك استخدم Tag لتمرير أي قيمة عدد صحيح تريد أو عدد يفحصه في أثناء التشغيل

VertScrollBar: يظهر شريط التمرير الرأسي للنافذة

Visible: تحدد بالقيمة True ليجعل العنصر مرئياً أو False ليخفيه حتى يستدعي البرنامج المنهج Show

WindowMenu: يستخدم في تطبيقات واجهة المستندات المتعددة MDI تصمم القائمة لعرض عناوين النوافذ المفتوحة حدد هذه الخاصية في بنود تغيير النوافذ


ثانيا : نتعرف على أحداث عنصر النافذة Events

OnActive: يتم استدعائه عندما يقوم البرنامج بالتعامل مع النافذة عندما تنتقل من تطبيق آخر

OnDblClick: يتم استدعائه عندما يقوم المستخدم بالنقر المزدوج على
النافذة

OnClick: يتم استدعائه عندما يقوم المستخدم بالنقر المفرد على النافذة

OnClose: يتم استدعائه عندما تغلق النافذة

OnCloseQuery: يستدعى قبل أن تغلق النافذة مباشرة ، يمكنك استخدام هذا الحدث لمنع فقدان البيانات وسؤال المستخدم عن موافقتهم على حفظ البيانات التي تم تغييرها قبل أن تغلق النافذة أو منع النافذة من الإغلاق

OnCreate: يستدعى مرة واحدة عند إنشاء النافذة في الذاكرة.

OnDestory: يستدعى قبل (تدمير) النافذة وهي الفرصة الأخيرة لأداء أي عمل قبل إنهاء التطبيق.

OnDonner, OnBlitzen: تحدث عند حدوث أي حدث مهما كان للنافذة.

OnHide: يستخدم لأداء أعمال عندما تكون النافذة مختفية مثلاً تحريرالذاكرة عندما تكون النافذة في حالة غير مرئية.

OnKeyDown: يستدعى عندما يضغط المستخدم أي مفتاح بما في ذلك مفاتيح التي لها وظائف خاصة استخدم هذا الحدث في حالة ضغط أكثر من مفتاح مثل مفاتيح Alt, Shift, Ctrl مع مفاتيح أخرى يمكن تكرار هذا الحدث قبل رفع الزر ، استخدم القيمة True للخاصة KeyPreview عند استخدام هذا الحدث.

OnKeyPress: يستدعى عندما يضغط المستخدم أي مفتاح غير المفاتيح التي لها وظائف خاصة ، هذا الحدث بعدOnKeyDown وقبل OnKeyUp ، استخدم القيمة True للخاصة KeyPreview عند استخدام هذا الحدث.

OnKeyUp: يستدعى عندما يضغط المستخدم أي مفتاح بما في ذلك مفاتيح التي لها وظائف خاصة يمكن استعمال هذا الحدث مع OnKeyDown فقط لتنظيم نشاط لوحة المفاتيح كما في الألعاب مثلاً، استخدم القيمة True للخاصة KeyPreview عند استخدام هذا الحدث.

OnMouseDown: يحدث عندما يضغط المستخدم على أي زر للفأرة .

OnMouseMove: يحدث عندما يحرك المستخدم مؤشر الفأرة داخل مساحة النافذة يمكنك تحديد فيما إذا ضغط المستخدم على المفاتيح Alt, Shift, Ctrl .

OnMouseUp: يحدث عندما يرفع المستخدم زر الفأرة .

OnPaint: عندما تحتاج محتويات النافذة للتحديث مثلاً عندما يقوم المتخدم بتحريك نافذة أخرى جانباً أو عندما تتغير موقع أو أبعاد النافذة.

OnShow: يستدعى قبل أن تصبح النافذة مرئية ، استخدم هذا الحدث لتنفيذ ما تريد ظهوره عند ظهور النافذة.

مســـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ28000ـــــــــــmsilaـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــيلة





الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: الدرس الرابع   الجمعة يونيو 13, 2008 2:46 pm

الدرس الرابع :

المتغيرات في برنامج الدلفي Variable

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

كود:

var

x:Integer;

y:Integer;

في المثال السابق قمنا بتعريف متغيرين بالذاكرة يحملان الإسمين x,y ويختصان بحفظ بيانات من نوع الأعداد الصحيحة
يمكن التصريح عن قسم Var في عدة أمكنة فيمكن أن يتواجد القسم Var على مستوى الوحدة أو على مستوى الإجرائية أو التابع أو في كليهما حتى أنه من الممكن تواجد عدة أقسام Var في الوحدة الواحدة ، إليك المثال التالي


كود:
proceder TForm1.Test;

var

s: string;


begin

s:=’هذا هو برنامجي الأول’;

Label1.Caption:=s

end;



التصريح عن متغير يحجز مكان في الذاكرة الموقتة لتخزين قيمة المتغير أثناء تنفيذ البرنامج .


تخضع أسماء المتغيرات لقواعد ، يمكن استخدام الحرف الصغير والكبير والأرقام والخط السفلي (_) ولايحتوي على مسافات ويجب أن لا يبدأ إسم المتغير برقم ، لاتوجد قيود على طول الإسم ولكن في الواقع سيقوم المترجم بتجاهل ما بعد 255 حرف . وفي الواقع إذا تجاوز طول الإسم عن 20 حرفاً فإن هذا لن يكون مفيداً وعمليا

أمثلة للأسماء المقبولة :


كود:
aVaryLongVaribleName:Integer;

my_var1:Integer;

x:=Integer;


ويجب ملاحظة أن لغة باسكال والدلفي ليست حساسة لشكل الحرف كبير كان أو صغير.


عدل سابقا من قبل admin في الجمعة يونيو 13, 2008 2:50 pm عدل 1 مرات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: رد: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:47 pm

الدرس الخامس

الثوابث في الدلفي Const

التعرف على الثوابت Constant في برنامج الدلفي بتفصيل أكبر وهي تعد من الكلمات الأساسية في البرنامج .
يحتوي القسم Const على لائحة من المتغيرات المعروفة بثوابت لا يمكن تغييرها
كمثال على ذلك ليكن هناك بعض القيم التي يستخدمها برنامجك مرارا وتكرارا ، يمكنك من أجل هذه القسم وضع متغيرات من نوع Constant لتبيان ذلك نشاهد المثال التالي

كود:
Unit Unit2;

Interface

Const
AppCaption =’برنامجي الأول ‘;

Procedure DoSomething;

Implementation

Const
X = 20 ;
Y = 200;

Procedure DoSomthing;
Begin
{أوامر الإجراء DoSomthing تكتب هنا }
End;

End.

في المثال السابق أضفنا القسم Const واحد للثوابت العامة ( التي يمكن للوحدات الأخرى التعامل معها ) وآخر للثوابت التي تستخدمها هذه الوحدة فقط .

بما ان الثابت AppCaption مصرح عنه في القسم InterFace ، فإنه يمكن إستخدامه في أي مكان في الوحدة وفي أي وحدة أخرى واردة في لائحة Uses لهذه الوحدة

ولإن الثوابت y و x مصرح عنها في القسم Implementation فمن الممكن إستخدامها فقط في هذه الوحدة

مســـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ28000ـــــــــــmsilaـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــيلة





الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: رد: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:47 pm

الدرس السادس

الكلمات الأساسية Else – If , Then

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


كود:
var
x:integer;


begin

x:=StrToInt(Edit1.Text)
if x>10 then
Label1.Caption:='عليك أن تدخل عدد من 1 -10';
end;

في المثال السابق يقوم البرنامج بطلب إدخال من المستخدم ويقارن المدخل بشرط بحيث إذا كان الشرط x>10 متحققا وكان العدد المدخل أكبر من عشرة ينفذ البرنامج الجملة بعد الشرط ويطلب بإدخال عدد أصغر من 10

تنفيذ عدة عبارات داخل الشرط
لنفترض أن لديك عدة سطور من البرمجة يجب أن تنفذ عندما يكون الشرط محققاً عندها سوف تحتاج إلى begin..end لتجعل هذه السطور تشكل كتلة واحدة يكون داخلها تنفيذ الشرط إذا كان متحقق

كود:

if x>10 then
begin
Label1.Caption:='عليك أن تدخل عدد من 1 -10';
Edit1.text:= '10';
end;


إستخدام الشرط Else
أحياناً تحتاج لعمل تنفيذ ما إذا كان الشرط محققاً ولكن تريد البرنامج بأن يؤدي عملاً آخر إذا كان الشرط غير محقق مثل:

كود:

if x=0 then
y:=0
else
y:=sin(x);


مســـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ28000ـــــــــــmsilaـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــيلة





الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: رد: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:48 pm

الدرس السابع

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

الحلقة التكرارية For
وهي تعد أكثر أنواع الحلقات التكرارية شيوعا
تتطلب هذه الحلقة محددتين القيمةالبدائية والقيمة النهائية إذا كانت الحلقة تصاعدية تستخدم To وإذا كانت تنازلية نستخدم كلمة DownTo .

الصيغة العامة لجملة for التصاعدية هي

كود:

for var := initial_value to end_value do
begin
statment;
end;



في المثال السابق حلقة تكرر الشيفرة الممثلة بعبارة statement حتى تصل إلى القيمة النهائية end_value . لا داعي لاستخدام begin , end إذا كان جسم التكرار يتكون من عبارة واحدة. ولكن عندما نريد إضافة العديد من السطور فنحتاج لإستخدام Begin – End


الصيغة العامة لجملة for التنازلية:

كود:

for var := initial_value DownTo end_value do
begin
statment;
end;

في المثال السابق كتلة الشيفرة يجب أن تكون initial_value أكبر من end_value وتتناقص قيمة العداد المتغير var واحداً في كل تكرار للحلقة

مثال عملي :

أنشئ مشروعاً جديداً

وأضف له زراً Button1 ومكون المفكرة Memo1 غير الخاصة Caption للزر واجعله " ابدأ " أنشئ الحدث OnClick له ، واكتب معالج الحدث كالتالي

كود:

var
I:Integer;

begin

Memo1.Clear;

for I := 0 to 9 do
Memo1.Lines.Add('هذا السطر رقم '+IntToStr(I));

end;

الآن يمكنك تشغيل البرنامج ، إضغط الزر ابدأ وشاهد عمل الحلقة …


الحلقتين التكراريتين While - Repeat

والآن بعد أن رأيت كيف تعمل حلقة for لن يكون صعباً جداً عليك أن تطبق ذات المعنى على حلقتي while , repeat

لنلقي الآن نظرة عليهما الآن.

حلقة while

تختلف حلقة while عن الحلقة For في كونها تحتوي على شرط يفحص عند بداية كل تكرار للحلقة . طالما أن الشرط محقق تستمر الحلقة في التنفيذ ويتوقف التنفيذ للحلقة عندما يكون الشرط غير محقق .

إليك الشكل العام للحلقة while

كود:

While cond_expr do
Begin
Statements;
End;


حيث يفحص البرنامج الشرط cond_expr وعند تحقق الشرط فإن البرنامج ينفذ الأوامر بين الأمرين End – Begin ويعود لقراءة الشرط مرة أخرى وهكذا يستمر في تنفيذ التكرار إلى أن يصبح الشرط غير متحقق فيخرج من التكرار

وإذا كان جسم الحلقة مؤلف من عبارة واحدة فليس هناك داعي لإستخدام Begin – End

حلقة Repeat

مثل حلقة while ولكن الحلقة While تقوم بفحص الشرط في بداية الحلقة ولكن في حالة الحلقة Repeat فإن الشرط يفحص في نهاية الحلقة

إليك هذا البرنامج الذي يبين عمل الحلقة Repeat وهو نفس مثال البرنامج للحلقة For مع تعديل سطور البرنامج

ويمكن ملاحظة ان الحلقة repeat تتنفذ على الأقل مرة واحدة ولكن الحلقة While يمكن أن لا تنفذ ولا مرة


كود:

Var
I:Integer;

begin
I:=5;
Memo1.Clear;

Repeat
Memo1.Lines.Add('هذا السطر رقم '+IntToStr(I));
Dec(I);
Until I=-1;

end;


الإجرائين Break , Continue

قبل أن ننهي الحديث عن الحلقات يجب أن نتعرف على إجرائين يساعدان على التحكم بتنفيذ البرنامج ضمن الحلقة .

- استخدم الأمر Continue لتجبر البرنامج على الانتقال إلى نهاية الحلقة متجاوزاً كل العبارات التي تليه .

- استخدم الأمر Break لتوقف عمل الحلقة مباشرة ولاتستحدم خارج الحلقات.

مســـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ28000ـــــــــــmsilaـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــيلة





الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
ouali
مدير منتدى المسيلة
مدير منتدى المسيلة


الجزائر : الجـزائـــــــــر
ذكر عدد الرسائل : 2372
تاريخ الميلاد تاريخ الميلاد : 24/12/1982
العمر : 34
الموقع : http://msila.sd.ma
المزاج : الحمد لله
الدولة : الجزائر
نقاط : 39001
تقييم الاعضاء لك : 56
تاريخ التسجيل : 30/08/2007

مُساهمةموضوع: رد: دروس دلفى,تعليم واحتراف دلفى   الجمعة يونيو 13, 2008 2:48 pm

الدرس الثامن

عبارة case

يمكن اعتبار تركيب case كتركيب if موسعة ، إنها تمكنك من تنفيذ عبارة واحدة من عدة كتل برمجة معتمدة على نتيجة تعبير معين

التعبير ممكن يكون متغير ، أو نتيجة استدعاء تابع أو أية شفرة من باسكال كلها تعطي تعبيرا

للتعرف على الصيغة العامة لتركيب case نشاهد المثال

كود:

case var of
val_1 : statement_1;
val_2 : statement_2;
val_3 : statement_3;
;
;
else
statement_else;

end;

عندما يبدأ البرنامج في تنفيذ تركيب case سيمر على قيمة val_1 ويقارن بين الثابت val_1 والمتغير Var إذا وجدهما متساويين سيقوم البرنامج بتنفيذ جميع الأوامر التي تليها حتى يصل إلى نهاية الكتلة ( تحدد الكتلة بالعبارات بين Begin , end في حالة استخدام أكثر من عبارة واحدة كما سبق شرحه ) أما إذا لم يجدهما متساويين فإنة سيتخطاها بجميع العبارات الواردة بعدها وينتقل إلى الثابت الآخر ويكرر المحاولة وهكذا يمر البرنامج عليها كلها فإذا لم يجد الثابت المطلوب منها فإنه سيتخطاها إلى كلمة else وينفذ العبارات الواردة بعدها حتى نهاية التركيب .

ملاحظة هامة :

يجب أن يعطى التعبير ضمن الدالة case قيمة تنتمي إلى نمط مرتب من الأنواع ( Integer,Byte,Word )

بحيث لايمكنك كتابة مايلي مثلاً


كود:

case str of
'Own' : {code};
'Two' : {code};
end;

يمكن جعل البرنامج ينفذ كتلة أوامر عند أكثر من قيمة
كما أن إستخدام الدالة else في الإجراء Case يعتبر اختياري ومثال على ذلك


كود:

case x of
1: y:=sin(x);
2,3 : y:=cos(x);
4,5,6: y:=x;
end;


مســـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ28000ـــــــــــmsilaـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــيلة





الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://msila.4umer.net
 
دروس دلفى,تعليم واحتراف دلفى
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
المسيلة 28 لكل الجزائريين و العرب m'sila 28 :: ¤®§(§ منتدى البرامج والبرمجة §)§®¤ :: قسم البرمجة :: لغة دلفى delphi-
انتقل الى: