منتدى Borland Delphi

 اسم العضو:khaled helal  الخميس,20/شوال/1425 هـ,07:41 صباحاً
ماهو الدلفى ؟ ديلفي هو منتج بورلاند الأكثر مبيعاً للتطوير السريع للتطبيقات RAD (Rapid Application Development) والمستخدم لكتابة تطبيقات ويندوز ، ويمكنك باستخدام الدلفي إنشاء تطبيقات ويندوز بسرعة أكبر وبسهولة أكثر من أي وقت مضى هذا يعني أنك تستطيع إنشاء واجهة المستخدم ( يقصد بواجهة المستخدم القوائم ومربعات الحوار والإطار الرئيسي ..) لبرنامجك مستخدماً تقنيات السحب والإفلات لمطور تطبيقات سريع ، يمكنك أيضاً وضع تحكمات أكتيف إكس Active X على نماذجك لإنشاء برامج متخصصة مثل برامج استعراض الويب ولكن حتى تصبح مبرمج تطبيقات ويندوز يتطلب منك عمل كبير . تقوم دلفي بعمل جيد وذلك بإخفاء بعض التفصيلات التي تشكل أحشاء برنامج الويندوز ولكن ليس بإمكانها كتابة البرامج من أجلك ، لذلك يجب في النهاية أن تكون مبرمجا ، ويمكن لهذه العملية أن تكون طويلة ، والخبر الجيد أن دلفي تجعل رحلتك غير متعبة وحتى أنها تجعلها ممتعة . نظرة عن مكونات ديلفي IDE سنتعرف في هذا القسم على بيئة التطوير المتكاملة للدلفي IDE (Delphi Integrated Development Environment) . عندما تشغل برنامج الدلفي تظهر لك بيئة التطوير فيه والتي سنتعرف عليها كل على حده بيئة دلفي مكونة من ثلاثة أقسام : 1- الإطار العلوي : يمكن اعتباره الإطار الرئيسي يحتوي على أشرطة الأدوات ولوحة المكونات توصلك أشرطة أدوات ديلفي إلى وظائف كالفتح والتخزين والبناء وتحتوي لوحة المكونات على كثير من مكونات ديلفي التي يمكن وضعها في برامجك (لافتة نصية ، علب تحرير ، مربعات سرد وأزرار وما شابه ذلك ). لتكون أكثر ملائمة فإن المكونات مقسمة إلى مجموعات ، حتى تضع مكون على برنامجك انقر على المكون ومن ثم انقر على المكان حيث تريد وضع المكون على النموذج. 2- مفتش الكائنات : (شرحه التفصيلى فى الدروس قادمة) والذي يتم بواسطته تعديل الخصائص والأحداث للمكون وسوف تستخدمه بشكل دائم خلال عملك مع ديلفي وهناك بابين لمفتش الكائنات هما الخصائص Properties والأحداث Events. مصطلح الخاصة Property يحتوي على خصائص لها قيم تحدد عمل المكون يتضمن باب الأحداث Events قائمة أحداث المكون . تتشكل الأحداث نتيجة لتفاعل المستخدم مع المكون مثلا عند نقر المكون يتولد حدث يخبرك بأن المكون قد نقر بإمكانك كتابة أوامر تستجيب لهذه الأحداث. مصطلح الحدث Event هو شيء ما يحصل كنتيجة لتفاعل المكون مع المستخدم أو مع ويندوز. مصطلح معامل الحدث Event Handler هو مقطع من البرمجة ينفذ استجابة للحدث. 3- منطقة عمل ديلفي الجزء الثالث هو منطقة عمل ديلفي وعادة ما يظهر مشروعاً جديداً . في المقدمة مصمم النموذج وخلفه محرر الشيفرة الذي تدخل عبره البرمجة عند كتابة برامجك. وكلا من مفتش الكائنات ومصمم النموذج ومحرر الشيفرة تتفاعل فيما بينها عند بناء التطبيقات لتكون البرنامج .  

 اسم العضو:khaled helal  الخميس,20/شوال/1425 هـ,07:54 صباحاً
الدرس الثانى ملفات مشروع ديلفي سنتعرف في هذا القسم على الملفات التي ينشئها مشروع الدلفي ، لتجسيد ذلك سنقوم بإنشاء تطبيق بسيط ونلقى نظرة على ما يحدث عندما يبني الدلفي ملف تنفيذي للبرنامج يتم تنفيذ الخطوات التالية : 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}وغيرها 

 اسم العضو:khaled helal  الخميس,20/شوال/1425 هـ,08:39 صباحاً
الدرس الثالث : خصائص وأحداث عنصر النافذة كل مشروع له على الأقل نافذة واحدة 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: يستدعى قبل أن تصبح النافذة مرئية ، استخدم هذا الحدث لتنفيذ ما تريد ظهوره عند ظهور النافذة.  

 اسم العضو:النبهاني  الاثنين,24/شوال/1425 هـ,04:19 مساءً
شيء رائع بالفعل اخي العزيز ولكن اعتقد ما ينقص هو الشرح بالصور خصوصا عندما تحدثت عن بيئة التطوير وعن واجهة البرنامج والقوائم وكيفية اشاء مشروع جديد .. الى الامام وتقبل تحياتي  

 اسم العضو:khaled helal  الثلاثاء,25/شوال/1425 هـ,02:48 مساءً
الدرس الرابع : المتغيرات في برنامج الدلفي 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;

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

 اسم العضو:أبو محمـد  السبت,29/شوال/1425 هـ,05:35 مساءً
السلام عليكم بارك الله فيك ، جهد رائع أخي khaled helal أتمنى لك التوفيق ،، 

 اسم العضو:khaled helal  الثلاثاء,03/ذو القعدة/1425 هـ,02:56 مساءً
الدرس الخامس الثوابث في الدلفي 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 فمن الممكن إستخدامها فقط في هذه الوحدة 

 اسم العضو:eslol  الأحد,15/ذو القعدة/1425 هـ,12:11 مساءً
شكرا على المعلومات الأكثر من رائعة أخ خالد هلال 

 اسم العضو:khaled helal  الثلاثاء,17/ذو القعدة/1425 هـ,02:38 مساءً
الدرس السادس الكلمات الأساسية 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);

 

 اسم العضو:khaled helal  الثلاثاء,17/ذو القعدة/1425 هـ,02:50 مساءً
الدرس السابع حلقات التكرار تستخدم الحلقات لأداء عمل معين بشكل متكرر حتى يتحقق شرط معين. ويتم إستخدامها في البرامج بشكل واسع الحلقة التكرارية 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 لتوقف عمل الحلقة مباشرة ولاتستحدم خارج الحلقات. 

 اسم العضو:khaled helal  الثلاثاء,17/ذو القعدة/1425 هـ,02:56 مساءً
الدرس الثامن عبارة 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;

 

 اسم العضو:eslol  السبت,26/ذو الحجة/1425 هـ,09:47 صباحاً
يسلمو يا اخ خالد على الشرح الرائع  

 اسم العضو:مجاهدة  الاثنين,28/ذو الحجة/1425 هـ,10:40 مساءً
[ALIGN=center]
[COLOR=darkblue]بارك الله فيك أخ خالد وجعله في ميزان حسناتك [/COLOR]
[/ALIGN] [SIZE=6][ALIGN=center][COLOR=indigo]
ننتظر تكملة الدروس
[/COLOR][/ALIGN][/SIZE] 

 اسم العضو:خلفاوى  الخميس,28/فر/1426 هـ,09:50 صباحاً
الأخ الكريم رائع وجزاك الله خير .. انا كنت عايز اى اصدار للغة دلفى حتى اتعامل معها انشاء الله لأن الموضوع جديد بالنسبة لى وشكراَ 

 اسم العضو:خلفاوى  الخميس,28/فر/1426 هـ,09:51 صباحاً
الأخ الكريم رائع وجزاك الله خير .. انا كنت عايز اى اصدار للغة دلفى حتى اتعامل معها انشاء الله لأن الموضوع جديد بالنسبة لى وشكراَ 

 اسم العضو:جوندرو  الثلاثاء,23/محرم/1427 هـ,12:26 صباحاً
مشكوررررررررررررررررررررررررررررررررررر 

 اسم العضو:m_gadir  الاثنين,23/جمادى الأولى/1427 هـ,11:04 صباحاً
شكراً جزيلاً والى الامام 

 اسم العضو:DelphiX  الجمعة,01/محرم/1428 هـ,10:53 صباحاً
السلام عليكم يا اخ khaled helal الدروس رائعة واذا كنت من سوريا فهم مبرمجون رائعون شهادت حق يجب ان تقال سؤالى هو هل استمر على الدلفى 7 ام انتقل الى ال DOT NET DELPHI حقا يحيرنى وانت ما هو الاصدار الذى تفضله وشكراااا 

 اسم العضو:delphi555  الخميس,14/شوال/1428 هـ,03:51 مساءً
ما شاء الله على المنتديات الحلوة والله مشكوووووووووووووووووور اخوك محمد 

 اسم العضو:حمود العملاق  الخميس,23/محرم/1429 هـ,12:39 مساءً
بارك الله فيك أخ خالد وجعله في ميزان حسناتك 

 اسم العضو:hocine cheniki  السبت,21/شعبان/1429 هـ,02:48 صباحاً
مشكوووووووووووووور واصل 

 اسم العضو:safogx  الاثنين,21/رجب/1430 هـ,10:07 صباحاً
شكرا لك على كل شئ 

 اسم العضو:info gest  الأحد,22/ربيع الثاني/1432 هـ,12:02 صباحاً
bekole saraha dite faida baraka ellah fikom sa3edtoni f el dorouse taw3i 

 اسم العضو:info gest  الثلاثاء,24/ربيع الثاني/1432 هـ,11:05 مساءً
ana mehtaja logiciel * gestion de stock*baraka ellah fikom:o 

 اسم العضو:info gest  الثلاثاء,24/ربيع الثاني/1432 هـ,11:11 مساءً
ana mehtaja logiciel * gestion de stock*baraka ellah fikom:o 

 اسم العضو:وائل عبد الكريم  الخميس,17/شوال/1432 هـ,03:12 مساءً
وفقك الله وأنالك مبتغاك الحقيقة أن الدرس شيق والأسلوب ممتاز لك جزيل الشكر 

 اسم العضو:lionm57  الاثنين,24/ربيع الأول/1434 هـ,07:06 مساءً
[SIZE=6][ALIGN=CENTER]ممكن سؤالين هل حضرتك تجيد الدلفي و[/SIZE]هل انت من مصر [/ALIGN] 

 اسم العضو:سلمات مصطفى  الأحد,18/ذو القعدة/1434 هـ,09:03 مساءً
[B][ALIGN=CENTER][SIZE=7]مشكور [/SIZE][/ALIGN][/B] 

 اسم العضو:soki22  الاثنين,23/جمادى الأولى/1435 هـ,01:34 صباحاً
[URL=http://www.tasleek.org/%D8%AA%D8%B3%D9%84%D9%8A%D9%83-%D9%85%D8%AC%D8%A7%D8%B1%D9%89/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D8%B3%D9%84%D9%8A%D9%83-%D8%A7%D9%84%D9%85%D8%AC%D8%A7%D8%B1%D9%89-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/]افضل شركة تسليك مجارى [/URL] [URL=http://www.tasleek.org/%D8%AA%D8%B3%D9%84%D9%8A%D9%83-%D9%85%D8%AC%D8%A7%D8%B1%D9%89/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D9%8A%D8%A7%D8%B1%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/]تنظيف بيارات بالرياض[/URL] [URL=http://www.tasleek.org/%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA/%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/]كشف تسربات بالرياض[/URL] [URL=http://www.tasleek.org/%d9%83%d8%b4%d9%81-%d8%aa%d8%b3%d8%b1%d8%a8%d8%a7%d8%aa/%d9%83%d8%b4%d9%81-%d8%aa%d8%b3%d8%b1%d8%a8%d8%a7%d8%aa-%d8%a7%d9%84%d9%85%d9%8a%d8%a7%d9%87-%d8%a8%d8%af%d9%88%d9%86-%d8%aa%d9%83%d8%b3%d9%8a%d8%b1/]افضل شركه كشف تسربات [/URL] [URL=http://www.tasleek.org/%d9%83%d8%b4%d9%81-%d8%aa%d8%b3%d8%b1%d8%a8%d8%a7%d8%aa/%d8%a7%d8%b5%d9%84%d8%a7%d8%ad-%d8%aa%d8%b3%d8%b1%d8%a8%d8%a7%d8%aa-%d8%a7%d9%84%d9%85%d9%8a%d8%a7%d9%87/]اصلاح تسربات[/URL] [URL=http://www.tasleek.org/%D8%B4%D8%B1%D9%83%D8%A9-%D8%B9%D8%B2%D9%84-%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA/%D8%B4%D8%B1%D9%83%D8%A9-%D8%B9%D8%B2%D9%84-%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/] عزل خزانات بالرياض[/URL] [URL=http://www.tasleek.org/%D8%B9%D8%B2%D9%84-%D8%A7%D8%B3%D8%B7%D8%AD/%D8%B4%D8%B1%D9%83%D8%A9-%D8%B9%D8%B2%D9%84-%D8%A7%D8%B3%D8%B7%D8%AD-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/]افضل شركة عزل اسطح بالرياض[/URL] [URL=http://www.tasleek.org/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/]تنظيف خزانات [/URL] [URL=http://www.tasleek.org/%D8%B9%D8%B2%D9%84-%D9%85%D8%A7%D8%A6%D9%8A/]شركه عزل مائي[/URL] [URL=http://www.tasleek.org/%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D8%A7%D9%84%D8%B9%D8%B2%D9%84-%D8%A7%D9%84%D8%AD%D8%B1%D8%A7%D8%B1%D9%8A/]احسن شركات العزل الحراري[/URL] [URL=http://www.salehy.org/%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D9%87/]شركة كشف تسربات بالرياض[/URL] [URL=http://www.salehy.org/%D8%AC%D9%87%D8%A7%D8%B2-%D9%83%D8%B4%D9%81-%D8%A7%D9%84%D8%AA%D8%B3%D8%B1%D8%A8-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6/]جهاز كشف التسرب بالرياض[/URL] [URL=http://www.salehy.org/%D8%AD%D9%84-%D8%A7%D8%B1%D8%AA%D9%81%D8%A7%D8%B9-%D9%81%D8%A7%D8%AA%D9%88%D8%B1%D8%A9-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D9%87/]حل ارتفاع فاتورة المياه[/URL] [URL=http://www.salehy.org/%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D9%87-%D8%A7%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%A7/]كشف تسرب المياه الكترونيا[/URL] [URL=http://www.salehy.org/%D8%AA%D8%AE%D8%B2%D9%8A%D9%86-%D8%A7%D8%AB%D8%A7%D8%AB/]تخزين اثاث[/URL] [URL=http://www.salehy.org/%D8%AA%D9%87%D8%B1%D9%8A%D8%A8-%D8%A7%D9%84%D8%AD%D9%85%D8%A7%D9%85%D8%A7%D8%AA-%D9%88%D8%A7%D9%84%D9%85%D8%B7%D8%A7%D8%A8%D8%AE/]تهريب الحمامات والمطابخ[/URL] [URL=http://www.salehy.org/%D8%B9%D8%B2%D9%84-%D8%A7%D8%B3%D8%B7%D8%AD-%D9%88%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA/]شركة عزل خزانات بالرياض[/URL] [URL=http://www.salehy.org/%D9%86%D9%82%D9%84-%D8%A7%D8%AB%D8%A7%D8%AB/]نقل اثاث[/URL] [url=http://www.nile7.com/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]شركة تنظيف بالرياض[/url] [url=http://www.nile7.com/%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%86%D8%B8%D9%8A%D9%81/%D8%A7%D9%81%D8%B6%D9%84-%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D8%A7%D9%84%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%8A-%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]افضل شركات التنظيف في الرياض[/url] [url=http://www.nile7.com/%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%B4%D9%82%D9%82/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%B4%D9%82%D9%82-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]شركة تنظيف شقق بالرياض[/url] [URL=http://www.nile7.com/%D9%85%D9%83%D8%A7%D9%81%D8%AD%D8%A9-%D8%A7%D9%84%D8%AD%D8%B4%D8%B1%D8%A7%D8%AA/%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D9%85%D9%83%D8%A7%D9%81%D8%AD%D8%A9-%D8%A7%D9%84%D8%AD%D8%B4%D8%B1%D8%A7%D8%AA-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]شركة مكافحة الحشرات بالرياض[/URL] [URL=http://www.nile7.com/%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%85%D9%86%D8%A7%D8%B2%D9%84/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%85%D9%86%D8%A7%D8%B2%D9%84-%D8%A8%D8%A7%D9%84%D8%AF%D9%85%D8%A7%D9%85]شركة تنظيف منازل بالدمام[/URL] [URL=http://www.nile7.com/%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D8%AA%D9%86%D8%B8%D9%8A%D9%81/%D8%B4%D8%B1%D9%83%D8%A7%D8%AA-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%A8%D8%A7%D9%84%D8%AF%D9%85%D8%A7%D9%85]شركات تنظيف بالدمام[/URL] [URL=http://www.nile7.com/%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]شركة تنظيف فلل بالرياض [/URL] [URL=http://www.nile7.com/%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84]تنظيف فلل[/URL] [URL=http://www.nile7.com/%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84/%D8%A7%D9%81%D8%B6%D9%84-%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D9%81%D9%84%D9%84-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]افضل شركة تنظيف فلل بالرياض[/URL] [URL=http://soki22.tumblr.com/]here[/URL] [URL=http://taslrek.blogspot.com/2014/03/tasleek.html]here[/URL] [URL=http://saraessam.weebly.com/]here[/URL] [URL=http://sokii22.deviantart.com/journal/?edit]here[/URL] [URL=http://kenanaonline.com/users/soki22/posts/600358]here[/URL] [URL=http://kenanaonline.com/users/soki22/posts]here[/URL] [URL=http://storify.com/saraessam/story-13]here[/URL] [URL=http://sokii22.deviantart.com/journal/]here[/URL] [URL=http://www.nile7.com/%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%B4%D9%82%D9%82/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D9%86%D8%B8%D9%8A%D9%81-%D8%B4%D9%82%D9%82-%D8%A8%D8%A7%D9%84%D8%B1%D9%8A%D8%A7%D8%B6]شركة تنظيف شقق بالرياض [/URL] [URL=http://www.salehy.org/%D8%B9%D8%B2%D9%84-%D8%A7%D8%B3%D8%B7%D8%AD-%D9%88%D8%AE%D8%B2%D8%A7%D9%86%D8%A7%D8%AA/]شركة عزل اسطح بالرياض[/URL] [URL=http://www.salehy.org/%D9%86%D9%82%D9%84-%D8%A7%D8%AB%D8%A7%D8%AB/]شركة نقل اثاث بالرياض[/URL] 

جميع الحقوق محفوظة لـمنتديات المحيط العربي 2004 - 2019