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

Forms Method & Property

بدأه Shadowz في 25 أبريل 2009 · 5 رد · 1,467 مشاهدة · في قواعد بيانات Visual FoxPro
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

نبهني أحد الزملاء الأعزاء لنقطة تخص النماذج Forms قد أكون غفلت عنها ولم أتطرق لها، وقد لا يعلم بها المبتدئين أو لم يتمكنوا منها، لذا سنتكلم عنها قبل المضي في التحدث

عن الــ Class كون الالمام بها من ضروريات الاستفادة من الـ Class على أحسن وجه.

كما تعلمون فان لكل نموذج جديد مجموعة ثابتة من الخصائص Properties ومجموعة من الاجراءات Methods طبعا يتم الاستفادة منها حسب ما هو مطلوب من النموذج ان

يقدم لنا لذا لن نتكلم عنها هنا بشكل مباشر.

وطبيعي ان يتطلب منا أي برنامج استدعاء اجراء معين او تخزين قيمة معينة للرجوع لها لاحقا، فكيف نتصرف مع هذا الموقف وخاصة اذا كان هذا الاجراء او القيمة المطلوبة لن

تستخدم سوى في هذا النموذج، هنا لا بأس أن اقوم بانشاء برنامج صغير لحل المشكلة فهذا تصرف صحيح.

ولو كان لدي 10 نماذج لكل نموذج اجراءات مختلفة وقيم واجبة التخزين للرجوع اليها، بامكاني ايضا حل المشكلة بانشاء برنامج مرتبط بكل نموذج، أو انشاء برنامج واحد

أخزن فيه كافة الاجراءات أستدعي منه ما أريد وقتما أريد وهذا التصرف صحيح ايضا.

اذن كيفما تصرفت المهم صحة النتيجة.

ولكن ماذا لو تطلب كل نموذج من اجراء واحد الى عدد لا محدود من الاجراءات، بالتأكيد سنبدأ بشد شعرنا للمتاهة التي سندخل فيها..ان لم يكن عاجلا فلا بد أن يكون آجلا...خاصة عند محاولة

تعديل شيء في نموذج معين قمت بتصميمه قبل سنة او سنتين وله 5 اجراءات مرتبطة أو أكثر، وتعال نتذكر وقتها الية العمل ومكان التخزين وووووووو قصة حزينة.

اذا ما هوالبديل الافضل؟؟؟

انه استخدام نفس النموذج لتخزين ما اريد من اجراءات او قيم، حيث يوفر الفوكس برو هذه الامكانية فلماذا لا استغلها افضل استغلال،،

وكمثال بسيط على ذلك دعونا نفترض بان علينا انشاء Procedure معين يقوم بتخزين عدد المرات التي قمنا بها بالضغط على CommandButton معين:

يلزمنا هنا انشاء Method جديد ولنسميه ClickCount

ويلزما انشاء Property جديد ولنسميه lnCount

نبدأ بانشاء نموذج جديد، ثم نتوجه للقائمة الرئيسية ونختارمنها Form ومنها نختار Edit Property/Method

ستظهر لنا شاشة تحتوي على كل ال Methods و الـ Properties المضافة للنموذج

نختار منها New Method ونحدد اسمها المطلوب وهو هنا ClickCount

ثم نختار New Property ونحدد اسمها المطلوب وهو هنا lnCount، ونحدد قيمتها بالصفر كما هو ظاهر بالصورة

post-113506-1240606444_thumb.jpg

الان نضع Commandbutton في النموذج، ونكتب في اجراء Click الامر التالي:

thisform.ClickCount()

ثم نختار من النموذج الاجراء ClickCount بنفس طريقة اختيار أي اجراء عادي ونكتب فيه الكود التالي :

thisform.lnCount=thisform.lnCount+1

thisform.Command1.Caption=ALLTRIM(STR(thisform.lnCount))

وهكذا فكل ضغطة على CommandButton ستستدعي الاجراءClickCount والذي سيقوم بدوره بزيادة قيمة lnCount بمقدار 1 وتغيير

CommandButton.caption حسب القيمة الجديدة

جرب الان ولاحظ النتيجة،

طبعا هذه الاوامر بسيطة وقد نضعها مباشرة في اجراء الـ CommandButton وننهي

الموضع، ولكنها مثال توضيحي فقط،

حيث تتجلى فائدة كل ما سبق في عدة امور منها:

- كتابة الاجراء مرة واحد فقط وامكانية استدعاؤه من حيثما شئنا

- حصر كافة مستلزمات النموذج من اجراءات وخصائص ضمن نطاق النموذج نفسه

- ان استدعاء الـ Method يتم بأمر واحد، فبدلا من ان اعدل مجموعة من الاوامر المكررة في اكثر من مكان، فكل ما يلزمني هنا هو تعديل الـ Method نفسها ولمرة واحدة فقط

- ان استخدام خاصية Properties تقلل من اضطرارنا لاستخدام المتغيرات، بالاضافة الى قوة فاعليتها بشكل عام

وللمزيد حول النماذج اطلع على باب النماذج للاخ عبدالمنعم محمد عبدالخالق ففيها الكثير من الفائدة

والعفو ان اطلت ولكن لتوضيح الصورة.

مع التحية

تم تعديل هذه المشاركة بواسطة a.jallad في 25 أبريل 2009 في 00:47

أستغفر الله العظيم و أتوب إليه

#2

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

مشكور يا اخ عبدالله ... ودائما عند حسن الظن .. وجزاك الله عنا كل خير

ly81f9038b6f.jpg

سقوط الإنسان ليس فشلاً، ولكن الفشل أن يبقى حيث سقط

#3

العفو اخي أكرم ولا شكر على واجب

مع التحية

أستغفر الله العظيم و أتوب إليه

#4

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

مشكور اخي

a.jallad

على جهودك في تطوير الاعضاء

بارك الله فيك

#5

بسم الله الرحمن الرحيم

اخي عبد الله

السلام عليكم

من هذا اليوم سوف نطلق عليك في المنتدى |( رجل المهمات الصعبة))

والله وهذا قليل بحقك

سلامي الى كل الاخوان

#6

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

أخي جواد ( رجل المهمات الصعبة ) مرة وحدة

باوع عيني آني لسه مبتدأ :wacko: واقف عند حرف الــ ر ما وصلت حتى حرف ال ج والله كريم

والاخت Hindoda ان شاء بعمل مجهودي في كل صغيرة وكبيرة

مع التحية للجمبع

أستغفر الله العظيم و أتوب إليه

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