السبت 8 ذو القعدة 1423 هـ الموافق 11 يناير 2003 ننتقل في هذه الحلقة الى تعريف المشروع وكيفية استكماله بلغات متعددة وننظر في عمل الوحدة ودفاتر العناوين وكيفية تحديث بعض البيانات تم ننتقل الى الفلترة التي تعتبر أهم اجزاء البرنامج. ـ المشروع project: هو الكيان الكبير الذي يضم كل وحدات التطبيق المزعم بناؤه وللشروع في مشروع جديد نذهب الى القائمة الرئيسية فنختار منها العنصر File ثم وبعد انسدال القائمة نختار منها العنصر New application. ـ الشاشات Form: وهي الحاوية التي نقوم برصف أدواتنا التي نرغب في إظهارها للمستخدم عليها مثل - الأزرار والقوائم المنسدلة وصناديق الادخال.... الخ. ـ الوحدة Unit: تتكون لغات البرمجة الحديثة من عدد كبير من الوحدات مسبقة الصنع تخصص كل وحدة للقيام بدور معين وهي اللبنات التي سوف يبنى بها المشروع وقد أتاحت هذه اللغات للمستخدم استعمال هذه الوحدات المسبقة الصنع تيسيرا عليه وتجنيبه لكتابة شفرتها المعقدة . وتضيف الدلفي عدداً من الوحدات الأساسية الى كل شاشة جديدة يضيفها المستخدم وللتعرف على هذه الوحدات ابدأ مشروعا جديدا ثم أضغط على المفتاح F12 وسترى أن هناك عددا كبيرا من الوحدات قد أضيفت الى الشاشة بشكل آلي وتقع تحت التصريح Uses . ولكن هذه الوحدات التي تضاف آليا قد لاتفي بالغرض ففي مثالنا هذا سوف نضيف وحدة Adialog يدويا لكي تقوم بتعريب صناديق الحوار . بعد أن استعرضنا عددا من أمثلة دفاتر العناوين وبلغات برمجية متعددة وجدناها موجهة للمتدرب المبتدئ وهي بالتالي تضعه على أول الطريق ولكنها لا تضيف له أية مهارات برمجية . لذلك حرصنا كل الحرص على أن نخاطب المستخدم المتوسط أو من لديه خبرة ولو بسيطة بأي لغة من لغات البرمجة حتى وان لم تكن لغة الدلفي التي نحن بصددها . لهذا وانطلاقا من هذا المبدأ الذي نفترض فيه بأنك ملم ببعض المفاهيم البسيطة عن خصائص الكائنات Object مثل: الاسم Name العنوان Caption المحاذاة من اليمين الى اليسار والعكس Alignment المتغيرات Variable ومدى تأثيرها Scoop فمنها ما هو عام Public تستطيع الوصول اليه من وحدة من وحدات البرنامج المختلفة ومنها ما هو خاص Privet لا تستطيع الوصول اليه الا من خلال الوحدة التي تم تعريفه فيها. لقد استخدمنا هذا الاجراء لتحديث بعض البيانات التي نريد ظهورها بشريط الحالة، وفي وضعنا استخدمناها لاظهار عدد السجلات في قاعدة البيانات. لاحظ هنا كيف استخدمنا الـ format لاضافة رقم الى داخل نص. procedure tfm main. updatetatus. begin statusbar.panels(0) text: = format (سجل d% عدد السجلات) tbladdress.recordcount: end ان اسم هذا الاجراء اختياري، فيمكنك تسميته كما تريد، ولكن طريقة تعريف هذا الاجراء، ثابتة وتعرف كما عرفناها هنا. ويستخدم هذا الاجراء لاظهار رسائل المساعدة في شريط الحالة. procedure tfrmmain.showhint (sender: tobject): begin if length (application.hint) 0 then statusbar.panels (1) text:= application.hint else statusbar. panels (1) text:= end. ان اسم هذا الاجراء اختياري. يمكنم تسميته كما تريد، ولكن طريقة تعريف هذا الاجراء ثابتة وتعرف كما عرفناها هنا. لقد اعترضنا هنا رسالة الخطأ الصادرة من قواعد البيانات .. وبما اننا نعرف اي نوع من الرسائل نريد اعتراضها. قمنا بفحص الخطأ، وبعد التأكد من انه هو النوع المطلوب، قمنا بفحص نص الرسالة للتأكد من انها الرسالة المراد اعتراضها، وبما اننا نعرف ان هذا الرسالة تحتوي على اسم الحقل الفارغ والذي يجب تعبئته.. فقمنا بنسخ هذا الاسم الى متغير نصي، كي نظهره برسالة خاصة بالبرنامج. ويعتبر اجراء الفلترة اهم جزء بالبرنامج فهو الذي يقوم بفلترة السجلات حسب الحرف المختار من قبل المستخدم. انه في حقيقة الأمر غاية في السهولة، فما نقوم به هو التعرف على الحرف المختار وحفظه بمتغير اسمه key. وان كانت قيمة هذا المتغير تساوي «الكل» فنخرج من الاجراء ونعتبر الاجابة صحيحة، وذلك لكي يتسنى لقاعدة البيانات اظهار السجل، اما في حالة اخرى فنقارن اول حرف من قيمة الحقل بالمتغير key وان كانا متساويان فنعطي الاجابة صح. نلاحظ أننا قمنا بمعالجة حروف الألف.. وذلك لتشابهها، فما قمنا به هنا هو اعتبار كل احرف الألف متساوية