يعرض
البرنامج مجموعة من المفردات في ListBox بحيث يتم النقر على أحد هذه
المفردات لتظهر الكلمة التي تم النقر عليها ويظهر معناها على يسار الـ
ListBox
كما هو واضح في الصورة.
ونلاحظ من إطار البرنامج أنه يحتوي على الآتي :
العنصر ListBox .
خمسة عناصر من Label .
ثلاث عناصر من Bevel .
العنصر Button .
تصميم البرنامج :
أولاً يتم استخدام الخاصية Items للعنصر ListBox لإضافة المفردات وذلك
بنقر الزر ذو الثلاث نقاط بجوار الخاصية Items كما في الشكل التالي :
http://www.itpro2u.com/Images/Lessons/Delphi_4_2.htmوبذلك يظهر الإطار String List Editor الذي يظهر في الصورة التالية :
http://www.itpro2u.com/Images/Lessons/Delphi_4_3.htmيتم إدخال المفردات كما هو مبين ، ثم النقر على الزر OK .
بهذا نكون قد جهزنا ListBox لعرض المفردات في إطار البرنامج .
الآن ، نقوم بتجهيز باقي عناصر إطار البرنامج وتنسيقها كما هو موضح في شكل أعلاه.
برمجة العناصر :
البرنامج يتكون من إجراء واحد هام وهو إجراء النقر على أحد المفردات في
لائحة العنصر ListBox وهذا الإجراء فكرته تعتمد على أنه عند النقر على أحد
المفردات تظهر
الكلمة ومعناها في المكان المخصص لهما في الإطار ، وهذا كل شئ . أما
الإجراء الآخر في البرنامج فهو إجراء الخروج من البرنامج وهو إجراء غني عن
التعريف.
إجراء النقر على ListBox :
كود:
Procedure TForm1.ListBox1Click (Sender : Tobject ) ;
begin
Case ListBox1.ItemIndex of
0 : Label4.Caption := ‘تطبيق’ ;
1 : Label4.Caption := ‘كائن’ ;
2 : Label4.Caption := ‘مكتبة’ ;
3 : Label4.Caption := ‘قاعدة بيانات’ ;
4 : Label4.Caption := ‘قائمة’ ;
5 : Label4.Caption := ‘إطار’ ;
6 : Label4.Caption := ‘نظام’ ;
7 : Label4.Caption := ‘حدث’ ;
8 : Label4.Caption := ‘خاصية’ ;
9 : Label4.Caption := ‘شفرة’ ;
end ;
Label2.Caption := ListBox1.Items[ListBox1.ItemIndex] ;
end ;
شرح الإجراء :
- استخدمت جملة Case في الإجراء السابق على أساس أن لائحة المفردات في
ListBox1 ترتب من 0 إلى 9 لأنها عشرة كلمات وبالتالي عند النقر على أحد هذه
الكلمات فإن البرنامج يسجل رقم ترتيب ItemIndex هذه الكلمة وباستخدام جملة
Case يستطيع البرنامج تحديد الترجمة المناسبة للكلمة التي تم النقر عليها
( تم
اختيارها ) ويقوم الإجراء بتخصيص هذه الترجمة إلى الخاصية Caption للـ Label4 وفي كل الأحوال يخصص البرنامج الكلمة المختارة للخاصية
Caption للـ label2 بواسطة السطر البرمجي الأخير والذي يعرف الكلمة المختارة ListBox1.Items[ ] من خلال رقم ترتيبها والذي يعرف
من خلال الخاصية ItemIndex كما هو موضح في الإجراء.
- تذكر أن الخاصية Items [ ] تستخدم للتعامل مع الكلمة التي تم النقر
عليها داخل أي ListBox وذلك من خلال كتابة رقم ترتيب هذه الكلمة داخل قوسي
[
] الخاصية وذلك سواء تم كتابة الرقم مباشرة داخل القوسين مثل [ 0 ]
للتعبير عن الكلمة الأولى أو كان التعبير عن الرقم باستخدام الخاصية
ItemIndex التي
تتعرف تلقائياً على رقم ترتيب الكلمة .
- يلاحظ أن أي ListBox يمكن استخدامه لكتابة أي كلمات أو جمل أو عبارات أو
نقاط معينة وذلك أثناء تصميم البرنامج باستخدام الإطار String List
Editor السابق شرحه أو كان ذلك بواسطة الأسطر البرمجية باستخدام الوظيفة Add ( ) للخاصية Items للعنصر ListBox حيث يتم كتابة أي
سلسلة حرفية بين قوسي الوظيفة Add .
مرشد اللغة :
• جملة Case :
- صيغتها كالآتي :
كود:
Case متغير ما عدا المتغيرات الحرفية do
Caseحالة : جملة أو أكثر ;
Caseحالة : جملة أو أكثر ;
Caseحالة : جملة أو أكثر ;
.
.
.
else
جملة أو أكثر ;
end;
- طبعاً في حالة كتابة أكثر من جملة يجب أن تحاط بين Begin وEnd .
- تستخدم Else مع جملة Case لتنفيذ الجملة أو الجمل التي تليها إذا ما كانت قيمة المتغير لا تحققها أي حالة من حالات Case المحددة في
الجملة.
- حالات Case يمكن أن تكون عل هيئة مدى معين مثل 1 .. 5 أي أن قيمة
المتغير إذا كانت 2 فإن الحالة تصبح متحققة لوقوع القيمة 2 في المدى 1
.. 5 وهكذا .كما سنرى فيما بعد.
- يجب الانتباه إلى أنه يجب ألا تتداخل حالات جملة Case بمعنى أنه يجب عدم تكرار أي قيمة في القيم التي تحدد حالات Case .
• جملة with :
- في التطبيق السابق كان من الممكن كتابة السطر التالي :
كود:
Label2.Caption := ListBox1.Items[ListBox1.ItemIndex] ;
كما يلي :
كود:
With ListBox1 do
Label2.Caption := Items[ItemIndex] ;
- باستخدام جملة with تصبح الجمل البرمجية أسهل فهماً وكتابةً.
- بالطبع سنستخدم Begin و End في حالة كانت هنا أكثر من جملة تحتاج لخدمات جملة Wit