Professional Documents
Culture Documents
VBA
صندوق الحوار الخاص بعملية التخصيص ( , )Customizationو يتم الوصول إليه بطريقتين :
.aمن قائمة . Tool > Customize
:Toolbars
و تحتوي على جميع أشرطة األدوات الموجودة في البرنامج ,بحيث يمكن التحكم بإظهار وإخفاء هذه األشرطة,
كما يمكن إنشاء شريط جديد إلضافة األوامر التي قمت بتطويرها.و هذا ما سنقوم به الحقا في هذا الدرس.
:Commands
هذا القسم يحتوي على جميع األوامر و األدوات المتاحة من قبل البرنامج و هذه األدوات مقسمة في مجموعات
حسب وضيفة كل أداه .بحيث يمكن أن تختار ما تريد إظهاره و وضعه في شريط أدوات مناسب و يتم ذلك عن
طريق السحب و الرمي ( )Drag and Dropألي أداة تريد أن تكون متاحة في شريط األدوات.
:Options
يحتوي على تفصيالت و خيارات أكثر لعملية التخصيص.
إضافة شريط أدوات جديد إلى أل (.)ArcMap
فتح صندوق الحوار الخاص بالتخصيص. -1
اضغط على الزر ( ,)Newسيظهر صندوق الحوار التالي: -2
يحتوي هذا الصندوق على حقلين ,الحقل األول لكتابة اسم الشريط الجديد ,و الحقل الثاني لتحديد مكان
تخزين الشريط الجديد ,و هنا يوجد نوعين من التخزين و هما:
التخزين في الملف الحالي ( و يتم باختيار اسم الملف ( .) Untitled
التخزين على مستوى التطبيق ,بمعني أن الشريط الجديد سوف يكون متاحا لجميع الملفات التي
سوف يتم إنشاءها باستخدام أل ( ,)ArcMapو تتم هذه باختيار (. )Normal.mxt
بعد اختيار اسم شريط األدوات الجديد و مكان التخزين انقر األمر ( .)OKستالحظ أن الشريط الجديد -3
قد ظهر على الشاشة و يمكنك وضعه في المكان الذي تريد في المساحة المخصصة لذلك.
بعد إنشاء شريط األدوات و إضافته إلى أل ( )ArcMapاآلن يمكنك إنشاء أمر جديد و إضافته إلى شريط
األدوات الجديد.
UIButtonControl
UIEditBoxControl
UIToolControl
UIComboBoxControl
مثال:
يحتوي الشكل على خريطة آسيا ,و لقد قمت باختيار مدينة الرياض عاصمة المملكة العربية السعودية كمثال ,
سوف أقوم بكتابة أل ( )Codeالالزم للوصول على المعلومات الوصفية لمدينة الرياض .و إظهار هذه
المعلومات في صندوق حوار باستخدام ( .)VBAهذا المثال البسيط جدا يوضح كيف يمكن أن نتعامل مع المعالم
الموجودة على الخريطة من خالل البرمجة باستخدام ال (.)ArcObjects
سوف نستخدم لغة ال ( )VBAو التي هي موجودة أصال ضمن برناج ال ( , )ArcMapو يمكن الوصول اليه
بأكثر من طريقة كاآلتي :
هذه االقسام تساعد في تخزين التخصيص الذي قمت به ,فعلي سبيل المثال اذا قمت بكتابة الكود الخاص بك في
قسم ال ( )Normalسيكون متاح الي ( ).mxdيتم انشاءها باستخدام اآلرك ماب ,أما اذا قمت بتخزينه في (
)TemplateProjectفإنه سوف يكون متاح لكل ( )mxd.تستخدم هذا القالب .و أخيرا اذا قمت بتخزين
التخصيص في قسم ( )Projectسوف يكون متاح فقط للملف الحالي و سوف لن ترى اي أثر له في أي ()mxd.
أخرى.
مالحظة :
ال ( )TemplateProjectلن يظهر اال اذا كنت تستخدم قالب (.)mxt.
في حالتنا سوف نقوم بكتابة الكود في قسم ال ( )Projectبمعنى اننا سوف نقوم بتخزين التخصيص في الملف
الحالي و لن يكون متاح في اي ملف آخر.
هذا الكود سوف ينفذ عندما يتم الضغط على زر االمر الجديد ‰و الذي اسمه (.)UIButtonControl1
سوف نقوم بانشاء ( )UserFormلنستخدمه في عرض بيانات مدينة الرياض ,كما يلي :
اضغط على الزر األيمن للفأرة و أنت تشير الى ( )Projectكمت يبين الشكل :
هنا تم الوصول الى الملف الذي امتداده ( )mxd.و الذي من نوع ()MxDocument
الوصول الى الخريطة الفعالة.
و يستخدم للوصول الى ال ( )Feature Classالخاصة بالمدن .ال ( )Feature Classعبارة عن مجموعة من
المعالم ذات الشكل الهندسي الواحد ,مثل ( . )Line , Point , Polygonو أيضا تكون لها نفس المعلومات
الوصفية ( )attributesو نفس المرجعية المكانية (.)spatial reference
في هذة الحالة سوف يتم ارجاع سجل واحد فقط و هو مدينة ‰الرياض .
هذة الجملة تبحث في مجموعة السجالت الموجودة في ( )pFClassو ترجع الذي بحقق الشرط فقط .
السطور الخمسة األخيرة و يتم تعريف متغير من نوع ( )IFeatureليتم استخدامه بشكل مؤقت لنتمكن من
الوصول الى المعلومات الوصفية التابعة لهذا ال (.)IFeature