اولى خطواتك مع دلفي
أدوات التحكم في لغة دلفي للبرمجة
لقاؤنا هذا الشهر مع اداة جديدة من ادوات التحكم فى لغة دلفى , وهى اداةListbox
واداةListbox هى مساحة مخصصة من النافذة توضع بها عدة خيارات يمكن للمستخدم اختيار
احداها كما يمكنه اختيار العديد منها مرة واحدة كما فى ويشاع استخدام وهذهالاداة
Listbox فى برامج قواعد البيانات وخاصة البرامج المحاسبية فمثلا يمكن استخدامها فى
وضع اسماء المخازن المتاحة للشركة لكى يسهل على مستخدم البرنامج اختيار اسم المخزن
المراد عمل جرد له , ولتوضيح ذلك نقوم ببناء التطبيق التالى الذي يتكون من العناصر
التالية:
1 - اداةEdit التى يتم من خلالها اضافة اسم مخزن جديد .
2 - اداتاListbox حيث يوضع فى الأولى اسماء جميع المخازن وفى الثانية المخازن
المراد عمل جرد لها.
3 - مجموعة منأادواتButton لكى يتم عن طريقها اضافة وازالة العناصر داخل
اداتىListbox وكذلك زر Button لانهاء البرنامج .
هيا بنا نبدا العمل
1 - ابدا مشروعا جديدا ثم غير خاصيه caption ل- form 1 إلى .Application 4
2 - منComponent palette ومن ورقةstandard اختر اداة التحكم Edit ثم ضعها فى
اعلى الجانب الأيسر من النافذة Form 1 ثم من object inspector امسح القيمة Edit 1
من خاصيةtext
3 - ضع الآداةButton بجانب الآداةEdit مع تغيير خاصيةCaption إلى Add.
4 - منcomponent pallet اضغط على اداة التحكم List box مع ضغط مفتاحShift فتحدد
حواف ايقونة الآداة ثم اضغط فى الجانب الأيسر للنافذة لوضع الآداة ثم اضغط فى
الجانب الأيمن للنافذة لوضع آداة اخرى ثم اضغط على ايقونة المؤشر فى component
palette .
5 - منObject Inspector غير خاصيةSorted للأداتين Listbox الى true و
خاصيةSorted تعنى ترتيب العناصر داخل الآداة Listbox تلقائيا.
6- ضع اربع عناصر من الأداةbutton فى منتصف الفورمة مع تغيير خاصيه Caption
للأول. إلى > والثانى إلى >> والثالث إلى < والرابع إلى << , عدل
ال- font لكل منهم إلى bold وذلك عن طريق ضغطه مزدوجة على خاصية font فى الـ object
Inspector ثم ضغطة مزدوجة علىstyle ثم تعديل خاصية bold الى true.
7 - ضع زر button وغير خاصية caption exit وضع فى معالج حدث clickالخاص بهclose
.
كتابه الكود.
اضغط ضغطة مزدوجة على الزرButton1 فيظهر معالج حدث click الخاص به ثم اكتب الآتى
:
If form 1.Edit1.Text<>'' then
Begin
Form1.Listbox1.Items.Add(Form1.Edit1.Text)
Form1.Edit1.Text:=''
End
وفى هذا الكود يقوم السطر الأول باختبار وجود محتويات فى الآداة .Edit1
فإذاوجد محتويات يقوم بتنفيذ باقى الكود.
والسطر الثالث يقوم باضافة محتويات Edit1 فى .Listbox1
والسطر الرابع يقوم بتفريغ Edit1 من محتوياته .
وفى معالج حدث Click للزر Button2 ذى الـ Caption >> اكتب الكود التالى:
If
Listbox1.Items.Count>0Then
Begin
Form1.Listbox2.Items.Add(Listbox1.Items[Listbox1.ItemIndex])
Form1.Listbox1.Items.Delete(Listbox1.Itemindex)
End
حيث يقوم السطر الأول باختبار عدد العناصر الموجودة فىListbox1 الموجود على يسار
النافذة , فإذا كان العدد أكبر من صفر فيعنى ذلك وجود عناصر .
ويقوم السطر الثالث باضافة العنصر المختار من Listbox 1 إلى Listbox 2 حيثItems
تعبر عن جميع العناصر داخل Listbox 2, أما add فهى تعنى اضافة عنصر إلى تلك العناصر
حيث تضيف قيمة حرفية , أما الذى بداخل قوس Add وهو :
Listbox1.Items
[listbox1.itemindex]
فيعنى الآتى:
Items تعبر عن عناصر Listbox1 و Listbox1. Itemindex تعبر عن رقم العنصر المختار
مع العلم بان ترقيم العناصر يبدأ من صفر. والصيغة السابقة وهى Listbox1.Items [
Listbox1. Itemindex ] ترجع نصا يعبر عن القيمة الحرفية للعنصر المختار .
السطر الرابع يقوم بمسح العنصر المختار من Listbox1 حيث يستخدم لذلك طريقة
Delete الصيغة العامة لها List.Items.Delete رقم العنصر المراد الغائه
حيثList هى اسم الآداة Listbox المراد الغاء عنصر منها, ورقم العنصر المراد
إلغاؤه فى هذا التط--بيق هو العنصر الحالى ولذلك تم التعبير عنه بالصيغة
Listbox1.Iteminde. كرر الكود السابق مع الزر Button4 مع تغيير Listbox1 إلى
Listbox 2 و Listbox 2 إلى Listbox1
وفى معالج حدث Button 3 ذى ال- caption (<<)
قم بتعريف متغير باسم I Var I :Integer
ثم داخل Begin End اكتب
If Listbox1.Items.Count >0Then
For I:=1 To Listbox1.Items.Count Do
Begin
Form1. Listbox2.Add(Listbox1.Items[0])
Form1. Listbox1.Items.Delete(0)
End
حيث يقوم السطر الأول باختبار عدد عناصر Listbox1 , إذا كان اكبر من صفر فيعنى
ذلك وجود عناصر
والسطر الثانى يقوم بانشاء حركة تكرارية يتم من خلالها تكرار الكود المكتوب
بداخلها حسب عداد الحلقة. والعداد هنا يبدا من واحد وينتهى بعدد عناصر ال-Listbox1
حيث يتم التعبير عن عدد العناصر بالصيغة Listbox1.Items .Count والسطر الرابع يقوم
بنسخ العنصر الأول من القائمة Listbox 1 إلى .Listbox 2
والسطر الخامس يقوم بمسح نفس العنصر من القائمة Listbox1 وبذلك فان مهمة الكود
فى السطرين الرابع والخامس هى نقل العنصر الأول من القائمة Listbox 1 إلى القائمة
Listbox 2 فيصبح العنصر الثانى فى القائمةListbox1 هو العنصر الأول,بتكرار الكود
مرة اخرى ينتقل العنصر الأول من القائمة Listbox 1 إلى القائمةListbox 2 ويصبح
العنصر التإلى له هو العنصر الأول وهكذا ,حتى ننقل جميع العناصر مرة واحدة بمجرد
الضغط على الزر فيتم تنفيذ الحلقة التكرارية.
كرر الكود السابق مع الزر Button 5 مع تغيير Listbox1 إلى Listbox2 و Listbox2
إلى .Listbox1
نفذ البرنامج بالضغطF9 أواخترRun من قائمة Run وشاهد النتيجة.
لقاؤنا هذا الشهر مع اداة جديدة من ادوات التحكم فى لغة دلفى , وهى اداةListbox
واداةListbox هى مساحة مخصصة من النافذة توضع بها عدة خيارات يمكن للمستخدم اختيار
احداها كما يمكنه اختيار العديد منها مرة واحدة كما فى ويشاع استخدام وهذهالاداة
Listbox فى برامج قواعد البيانات وخاصة البرامج المحاسبية فمثلا يمكن استخدامها فى
وضع اسماء المخازن المتاحة للشركة لكى يسهل على مستخدم البرنامج اختيار اسم المخزن
المراد عمل جرد له , ولتوضيح ذلك نقوم ببناء التطبيق التالى الذي يتكون من العناصر
التالية:
1 - اداةEdit التى يتم من خلالها اضافة اسم مخزن جديد .
2 - اداتاListbox حيث يوضع فى الأولى اسماء جميع المخازن وفى الثانية المخازن
المراد عمل جرد لها.
3 - مجموعة منأادواتButton لكى يتم عن طريقها اضافة وازالة العناصر داخل
اداتىListbox وكذلك زر Button لانهاء البرنامج .
هيا بنا نبدا العمل
1 - ابدا مشروعا جديدا ثم غير خاصيه caption ل- form 1 إلى .Application 4
2 - منComponent palette ومن ورقةstandard اختر اداة التحكم Edit ثم ضعها فى
اعلى الجانب الأيسر من النافذة Form 1 ثم من object inspector امسح القيمة Edit 1
من خاصيةtext
3 - ضع الآداةButton بجانب الآداةEdit مع تغيير خاصيةCaption إلى Add.
4 - منcomponent pallet اضغط على اداة التحكم List box مع ضغط مفتاحShift فتحدد
حواف ايقونة الآداة ثم اضغط فى الجانب الأيسر للنافذة لوضع الآداة ثم اضغط فى
الجانب الأيمن للنافذة لوضع آداة اخرى ثم اضغط على ايقونة المؤشر فى component
palette .
5 - منObject Inspector غير خاصيةSorted للأداتين Listbox الى true و
خاصيةSorted تعنى ترتيب العناصر داخل الآداة Listbox تلقائيا.
6- ضع اربع عناصر من الأداةbutton فى منتصف الفورمة مع تغيير خاصيه Caption
للأول. إلى > والثانى إلى >> والثالث إلى < والرابع إلى << , عدل
ال- font لكل منهم إلى bold وذلك عن طريق ضغطه مزدوجة على خاصية font فى الـ object
Inspector ثم ضغطة مزدوجة علىstyle ثم تعديل خاصية bold الى true.
7 - ضع زر button وغير خاصية caption exit وضع فى معالج حدث clickالخاص بهclose
.
كتابه الكود.
اضغط ضغطة مزدوجة على الزرButton1 فيظهر معالج حدث click الخاص به ثم اكتب الآتى
:
If form 1.Edit1.Text<>'' then
Begin
Form1.Listbox1.Items.Add(Form1.Edit1.Text)
Form1.Edit1.Text:=''
End
وفى هذا الكود يقوم السطر الأول باختبار وجود محتويات فى الآداة .Edit1
فإذاوجد محتويات يقوم بتنفيذ باقى الكود.
والسطر الثالث يقوم باضافة محتويات Edit1 فى .Listbox1
والسطر الرابع يقوم بتفريغ Edit1 من محتوياته .
وفى معالج حدث Click للزر Button2 ذى الـ Caption >> اكتب الكود التالى:
If
Listbox1.Items.Count>0Then
Begin
Form1.Listbox2.Items.Add(Listbox1.Items[Listbox1.ItemIndex])
Form1.Listbox1.Items.Delete(Listbox1.Itemindex)
End
حيث يقوم السطر الأول باختبار عدد العناصر الموجودة فىListbox1 الموجود على يسار
النافذة , فإذا كان العدد أكبر من صفر فيعنى ذلك وجود عناصر .
ويقوم السطر الثالث باضافة العنصر المختار من Listbox 1 إلى Listbox 2 حيثItems
تعبر عن جميع العناصر داخل Listbox 2, أما add فهى تعنى اضافة عنصر إلى تلك العناصر
حيث تضيف قيمة حرفية , أما الذى بداخل قوس Add وهو :
Listbox1.Items
[listbox1.itemindex]
فيعنى الآتى:
Items تعبر عن عناصر Listbox1 و Listbox1. Itemindex تعبر عن رقم العنصر المختار
مع العلم بان ترقيم العناصر يبدأ من صفر. والصيغة السابقة وهى Listbox1.Items [
Listbox1. Itemindex ] ترجع نصا يعبر عن القيمة الحرفية للعنصر المختار .
السطر الرابع يقوم بمسح العنصر المختار من Listbox1 حيث يستخدم لذلك طريقة
Delete الصيغة العامة لها List.Items.Delete رقم العنصر المراد الغائه
حيثList هى اسم الآداة Listbox المراد الغاء عنصر منها, ورقم العنصر المراد
إلغاؤه فى هذا التط--بيق هو العنصر الحالى ولذلك تم التعبير عنه بالصيغة
Listbox1.Iteminde. كرر الكود السابق مع الزر Button4 مع تغيير Listbox1 إلى
Listbox 2 و Listbox 2 إلى Listbox1
وفى معالج حدث Button 3 ذى ال- caption (<<)
قم بتعريف متغير باسم I Var I :Integer
ثم داخل Begin End اكتب
If Listbox1.Items.Count >0Then
For I:=1 To Listbox1.Items.Count Do
Begin
Form1. Listbox2.Add(Listbox1.Items[0])
Form1. Listbox1.Items.Delete(0)
End
حيث يقوم السطر الأول باختبار عدد عناصر Listbox1 , إذا كان اكبر من صفر فيعنى
ذلك وجود عناصر
والسطر الثانى يقوم بانشاء حركة تكرارية يتم من خلالها تكرار الكود المكتوب
بداخلها حسب عداد الحلقة. والعداد هنا يبدا من واحد وينتهى بعدد عناصر ال-Listbox1
حيث يتم التعبير عن عدد العناصر بالصيغة Listbox1.Items .Count والسطر الرابع يقوم
بنسخ العنصر الأول من القائمة Listbox 1 إلى .Listbox 2
والسطر الخامس يقوم بمسح نفس العنصر من القائمة Listbox1 وبذلك فان مهمة الكود
فى السطرين الرابع والخامس هى نقل العنصر الأول من القائمة Listbox 1 إلى القائمة
Listbox 2 فيصبح العنصر الثانى فى القائمةListbox1 هو العنصر الأول,بتكرار الكود
مرة اخرى ينتقل العنصر الأول من القائمة Listbox 1 إلى القائمةListbox 2 ويصبح
العنصر التإلى له هو العنصر الأول وهكذا ,حتى ننقل جميع العناصر مرة واحدة بمجرد
الضغط على الزر فيتم تنفيذ الحلقة التكرارية.
كرر الكود السابق مع الزر Button 5 مع تغيير Listbox1 إلى Listbox2 و Listbox2
إلى .Listbox1
نفذ البرنامج بالضغطF9 أواخترRun من قائمة Run وشاهد النتيجة.