بسم الله الرحمن الرحيم
تكرم عيونك اخي kachwahed
طبعا لست ضليع في الشرح لكن سوف احاول جاهداً ان اوصل المعلومة بشكل سهل وبسيط
اولاً :
معنى الكود :
PHP كود :
ListBox1.Items.AddObject(Edit1.Text, Edit1);
هذا يذكرني بالمؤشرات Pointers ايام الباسكال التي لم نعد نستخدمها كثيرا في حياتنا البرمجية الا ماندر
للوهلة الاولى نظن بأن التعليمة السابقة تعمل عمل المنهج Add يعني اضافة النص الى ListBox
ولكن مع قليل من التروي نرى بأننا قمنا باضافة نص والذي يمثل قيمة Edit1.Text الى listbox ليشير الى الكائن Edit1 .
الى الان الامور ليست واضحة تماما للقارئ لا بأس سوف اكمل الشرح لكن تمهلوا قليلاً :
1 - المنهج Add يقوم باضافة نص من النوع string الى listbox وهذا امر معروف وبسيط
2 - المنهج AddObject يقوم بعمل Add مع اضافة بسيطة ولكن فعلها كبير وهي وضع مؤشر مع القيمة ليشير الى الموقع الذي يشير اليه العنصر Edit1 .
طيب هذا كلام جميل طالما اصبحت القيمة الموجودة في listbox تشير الى العنصر Edit1 كيف سوف اتعامل معها من خلال listbox ؟
بسيطة من خلال Type cast اي قلب الانواع
مثال : على فرض ان Edit1.text كان يوحي القيمة "Hallo" ونفذنا التعليمة
PHP كود :
ListBox1.Items.AddObject(Edit1.Text, Edit1);
الان سوف نتعامل مع العنصر Edit1 من ListBox1 لتغيير لون العنصر Edit1 الى الاحمر
لاحظوا سحر الدلفي
PHP كود :
TEdit(ListBox1.Items.Objects[ListBox1.Items.IndexOf('Hallo')]).Color:=clRed;
ماهذا مافعلت هذا يسمى قلب الانواع الذي حصل انني قمت بجلب العنوان الذاكري الذي تم تخزينه في القيمة Hallo والذي يشير الى العنصر Edit1 ثم قمت بتحويله من Tobject الى TEdit حتى استطيع الوصول الى الخاصية Color وقمت بعدها بتغيير اللون.
ياالله الفرق من الارض للسما
طيب لقد اطلت عليكم الشرح لكن هذه الامانة العلمية
**** من الله ان اكون قد افدت بشرحي هذا