![]() |
|
كود مشابه و ربما موديل - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم أسئلة واستفسارات الأعضاء - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=94) +--- قسم : قسم Visual Basic 6 وما قبله (http://vb4arb.com/vb/forumdisplay.php?fid=167) +--- الموضوع : كود مشابه و ربما موديل (/showthread.php?tid=9775) |
كود مشابه و ربما موديل - asto - 24-07-13 السلام عليكم لقد طرحت في احدى المرات سؤال عن تحريك عناصر في الفورم فكان الجواب كالتالي : في الكلاس موديل : كود : Public WithEvents Picture As PictureBoxو في الفورم في القسم العام كود : Dim Ctrl1Event As New ControlEventsو اريد عمل كود ينفذ اوامر معينة عند ضغط كوماند1 او 2 أو 3 أو .....................100 المهم ماذا تنصحوني بالموديل او بالكلاس موديل و هل اكتب كود شبيه في الكلاس موديل اعلاه مع تغيير اسم الكلاس موديل الى الاسم الذي اريده و تغيير الكود الى الكود الذي اريده و سؤال أخير اذا ما استعملت عنصرا معينا من فورم معين مثلا ليكن الامر : command12.visible=false فهل اكتبه كما هو ام اكتبه بالشكل :form4.command12.visible=false كود مشابه و ربما موديل - ناجي إبراهيم - 24-07-13 السلام عليكم... * نصيحة: إذا كان لديك عدد كبير - أو حتى عدد قليل - من المكونات من نفس النوع و التي تريد أن تطبق عليها نفس الكود (التحريك مثلاً) فإن أسهل و أوضح طريقة و أكثرها اختصاراً للكود هي استعمال مصفوفة مكونات (Control Array) حيث يكون للمكونات جميعاً (التابعين للمصفوفة) نفس الاسم و يميز بينها رقم المؤشر (Index). للتوضيح: ضع زر أمر (Command1 مثلاً) و انقر عليه نقراً مزدوجاً لفتح الكود. سيكون إجراء الحدث Click للزر كالتالي: كود : Private Sub Command1_Click()الآن امسح هذا الكود (الإجراء) و عد إلى خصائص الزر و اضبط الخاصية Index على صفر، ثم انقر عليه نقراً مزدوجاً مرة أخرى. سيكون الإجراء بالشكل التالي: كود : Private Sub Command1_Click(Index As Integer)الآن يمكنك نسخ الزر و لصقه أي عدد من المرات، و سيكون الاسم المشترك لجميع الأزرار هو Command1 و تتميز فيما بينها برقم الـ Index. الميزة في هذا أن جميع الأزرار (أو أية مكونات أخرى في مصفوفة مكونات) تتشارك نفس الإجراءات مع تمرير رقم الـ Index للمكون الذي قام باستدعاء الإجراء. بالإضافة إلى ذلك يمكنك إضافة المزيد من المكونات إلى المصفوفة أو إزالتها منها دون الحاجة إلى تعديل الكود. ممتاز! لنفرض - في مثالك - أن لدينا مربعات صورة (PictureBox) ضمن مصفوفة مكونات باسم pbx تحتوي على 10 عناصر (0 إلى 9) أو أي عدد تريده. سيكون كود التحريك كالتالي: كود : Private SSX As Integerو إذا كان لدينا مجموعة أزرار في مصفوفة باسم MyCommand و نريد تنفيذ أمر معين حسب الزر المضغوط فإن الإجراء يكون كالتالي: كود : Private Sub Command1_Click(Index As Integer)نرجو الاستفادة و السلام. كود مشابه و ربما موديل - asto - 25-07-13 و إذا كان لدينا مجموعة أزرار في مصفوفة باسم MyCommand و نريد تنفيذ أمر معين حسب الزر المضغوط فإن الإجراء يكون كالتالي: كود: كود : Private Sub Command1_Click(Index As Integer)اذا كيف نعرف هذه المصفوفة و كيف ننسب العناصر اليها و اذا بدلنا العبارة كود : Private Sub Command1_Click(Index As Integer)بــــــــــ كود : Private Sub Picture1_DblClick()هل سوف ينفذ عند الضغط مرتين على اي بكشتر في مصفوفة البكتشرات مثلا كود مشابه و ربما موديل - VB_Coder - 25-07-13 السلام عليكم - إذا أردت إنشاء مصفوفة أداوت لابد أن تكون من نوع واحد وبإسم واحد , فمثلاً تريد إنشاء مصفوفة أزرار بإسم MyCommand قم بتسميه أو زر بهذا الإسم وعند تسمية الزر الثاني ستأتيك رسالة من الفيجول تقول لك يوجد أداة بنفس الإسم هل تريد إنشاء مصفوفة أداوت ثم أضغط زر نعم وهكذا أي أداة من نفس النوع تسميها بنفس الإسم الموحد ستنضم لعناصر المصفوفه تلقائياً , وتقدر تغير ترتيب عناصر المصفوفة عن طريق خاصية الـ Index لكل أداة . - تحياتي . كود مشابه و ربما موديل - asto - 25-07-13 اوك شباب مشكورين بس انا بدي اكتب كودي مرة واحدة مو عيدو 100 مرة مثلا بالنسبة لنوع معين من العناصر و نوع معين من الاحداث كود مشابه و ربما موديل - VB_Coder - 25-07-13 السلام عليكم - لاتعيد الكود 100 مرة ، فقط مره واحده وضعه في حدث الClick وعند ضغط أي زر من المصفوفة سينفذ الكود . كود : Private Sub Command1_Click(Index As Integer)- تحياتي . كود مشابه و ربما موديل - asto - 26-07-13 مشكورين جدا كود مشابه و ربما موديل - asto - 26-07-13 صار في تعارض مع الكود في الكلاس موديل الخاص بالتحريك يعني يعطي خطأ فما هو الحل لهذه المشكلة كود مشابه و ربما موديل - VB_Coder - 26-07-13 السلام عليكم - إستخدم هذه الطريقة أعتقد هي المثالية : كود : Dim SSX As Integer- تحياتي . |