الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية التعامل مع متغير على انه كلاس موجود

بدأه shalwan في 14 يناير 2011 · 4 رد · 655 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني

السلام عليكم ورحمة الله وبركاته

لدي ايقونه checkbox اسمها a01 وتتبعها مثيلاتها بنفس الحرف وبزيادة الرقم اي a02 a03 وهكذا

المطلوب

وضعت متغيرات

b1,b2,b3:string

d1,d2,d3:integer;

d3:=0;

d1:=1

b1:='a';

while d3=0 do

begin

b3:=inttostr(d1);

while length(b3)<2 then

b3:='0'+b3;

end;

b2:=b1+b3;

//الأن قيمة المتغير 'a01'=b2

// وارغب التعامل معه كأقيونه بحيث اذا كان checked=true

if b2.checked=true then

begin

//انفذ ما ارغبه هنا واخرج من الدوار

d1:=1;

end

else

begin

//اخرج من الدوار

d1:=1;

end

end;

begin

يشير عندي خطأ في المتغير b2 ولا يعرفه بأنه كلاس

كيف لي بذلك

تحياتي

تم تعديل هذه المشاركة بواسطة shalwan في 14 يناير 2011 في 19:51

نسأل الله الجنه لنا ولوالدينا ولمن لهم حق علينا

#2

السلام عليكم...

طبعاً سيعطي خطأً لأن المتغير b2 عبارة عن string و ليس Object.

إذا أردت الوصول إلى كائن عن طريق اسمه كـ string فإنه يمكنك استعمال الدالة FindComponent مع تحويل النوع (Type casting) فيكون الكود كالتالي:

if TCheckBox(FindComponent(b2)).Checked then

لكن يمكنك أيضاً وضع تلك المكونات في مصفوفة (Array) أو لائحة (TList) و يصبح الوصول إليها باستعمال حلقة (دوار) أسهل و أسرع.

نرجو الاستفادة و السلام.

1

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#3
najy_zl كتب:

السلام عليكم...

طبعاً سيعطي خطأً لأن المتغير b2 عبارة عن string و ليس Object.

إذا أردت الوصول إلى كائن عن طريق اسمه كـ string فإنه يمكنك استعمال الدالة FindComponent مع تحويل النوع (Type casting) فيكون الكود كالتالي:

if TCheckBox(FindComponent(b2)).Checked then

لكن يمكنك أيضاً وضع تلك المكونات في مصفوفة (Array) أو لائحة (TList) و يصبح الوصول إليها باستعمال حلقة (دوار) أسهل و أسرع.

نرجو الاستفادة و السلام.

اخي نا جي

السلام عليكم ورحمة الله وبركاته

شكرا على سرعة ردك

هل هذا يكفي للتأكد بأنها منشأه (create)

if TCheckBox(FindComponent(b2)).create() then

ام لك رأي آخر

كما اود منك كيفية عمل المصفوفه انا لا اعرف

تحياتي

تم تعديل هذه المشاركة بواسطة shalwan في 15 يناير 2011 في 10:51

نسأل الله الجنه لنا ولوالدينا ولمن لهم حق علينا

#4

كلا، هذا إجراء...

وهذه الكتابة غير مقبولة لدى الـ Compiler

جرب شيء مثل:

if Assigned(TCheckBox(FindComponent(b2))) then
1
#5
kachwahed كتب:

كلا، هذا إجراء...

وهذه الكتابة غير مقبولة لدى الـ Compiler

جرب شيء مثل:

if Assigned(TCheckBox(FindComponent(b2))) then

اخي العزيز

كود الأخ ناجي وكودك مقبولان من compiler

واشكركما على ذلك

لكن لي رغبه ان اعرف هل هذه الكلاس منشأه ام لا بمعنى هل هي created اذا كانت نعم يتأكد عن حالتها او ينتقل الى سلسله اخرى او عمل اخر

الأخ ناجي قال يمكن انشاء مصفوفه ( array ) او ( Tlist ) طلبت كيفية انشاؤها منه وانا انتظر منه ذلك ومنك ايضا

تم تعديل هذه المشاركة بواسطة shalwan في 21 يناير 2011 في 18:53

نسأل الله الجنه لنا ولوالدينا ولمن لهم حق علينا

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…