|
دليل استخدام إجراءات VBAppAss.dllللمبرمجين بلغة Visual Basic 6.0 |
تحديد رقم الصف و رقم العمود لعنصر في مصفوفة ثنائية الأبعاد بمعلومية ترتيبه فيها.
الصيغة:
Sub GetRowAndCol(ItemOrder As Long, RowCount As Long, ColCount As Long, ByRef Row As Long, ByRef Col As Long, Optional Row1 As Long = 1, Optional Col1 As Long = 1)
الصنف:
TNumber.
الوسائط (Parameters):
| ItemOrder | ترتيب العنصر في المصفوفة (باعتبار أن العنصر رقم 1 هو العنصر الواقع في الصف الأول و العمود الأول) | |
| RowCount | عدد الصفوف في المصفوفة (البعد الأول). | |
| ColCount | عدد الأعمدة في المصفوفة (البعد الثاني). | |
| Row | بارامتر ممرر بالمرجع (ByRef) حيث سيتم تخزين رقم الصف. | |
| Col | بارامتر ممرر بالمرجع (ByRef) حيث سيتم تخزين رقم العمود. | |
| Row1 | رقم الصف الأول (بداية البعد الأول). الافتراضي 1. | |
| Col1 | رقم العمود الأول (بداية البعد الثاني). الافتراضي 1. |
الشرح:
في بعض البرامج - كالألعاب مثلاً - قد تحتاج أحياناً إلى معالجة عناصر مصفوفة ثنائية الأبعاد و كأنها مرقمة ترقيماً تسلسلياً بدايةً من العنصر الواقع في الصف الأول و العمود الأول، و انتهاءً بالعنصر الواقع في الصف الأخير و العمود الأخير (إذا اعتبرنا أن البعد الأول يمثل الصفوف و البعد الثاني يمثل الأعمدة)، كما في هذين المثالين:
| 1 | 2 | 3 | 4 | 5 | |||||||||||||||||||||
| 1 |
| ||||||||||||||||||||||||
| 2 | |||||||||||||||||||||||||
| 3 | |||||||||||||||||||||||||
| 4 | |||||||||||||||||||||||||
| -2 | -1 | 0 | 1 | 2 | |||||||||||||||||||||
| 5 |
| ||||||||||||||||||||||||
| 6 | |||||||||||||||||||||||||
| 7 | |||||||||||||||||||||||||
| 8 | |||||||||||||||||||||||||
فإذا كنا نعرف الرقم التسلسلي لعنصر ما (مثلاً العنصر المظلل الذي يحمل الرقم التسلسلي 14) و نريد معرفة رقم الصف و رقم العمود اللذين يقع فيهما هذا العنصر فإنه يمكننا استدعاء الإجراء GetRowAndCol كما هو مبين في الاستخدام أدناه. في كل الأحوال يعتبر الإجراء أن الترقيم يبدأ دائماً بالرقم 1.
الاستخدام:
Dim ObjNumber As New TNumber
Dim Row As Long, Col As Long
' للحصول على صف و عمود العنصر رقم 14 (البند المظلل) في المصفوفة الأولى:
ObjNumber.GetRowAndCol(14, 4, 5, Row, Col, 1, 1)
' أو هكذا بإهمال البارامترين الأخيرين لأن القيمة الافتراضية لكليهما هي 1:
ObjNumber.GetRowAndCol(14, 4, 5, Row, Col)
' للحصول على صف و عمود العنصر رقم 14 (البند المظلل) في المصفوفة الثانية:
ObjNumber.GetRowAndCol(14, 4, 5, Row, Col, 5, -2)
' حيث نحتاج إلى تحديد رقم الصف الأول (بداية البعد الأول) و رقم العمود الأول (بداية البعد الثاني).
انظر أيضاً:
الدالة ElementOrder