الأخوة الأعزاء
السلام عليكم ورحمة الله وبركاته
أرسل إليكم الدرس الثاني وأسف للتأخير عليكم
بعد أن أكملنا الدرس الأول والذي نشر على الرابط التالي:
http://www.gisclub.net/vb/showthread.php?threadid=3104
نكمل اليوم الخطوات البرمجية لما عملناه سابقاً وأود أن أشير إلى بعض الأمور الخاصة بهذا الأمر وهي:
1. القاعدة العامة لبرمجة التطبيقات هي تعريف الملف ثم الوصول إليه
2. بعد ذلك يتم الوصول إلى الليرات عند ذلك يتم التعامل مع مكونات الليرات مثل الجداول والرسومات ... الخ
عمل هذا الكود هو الوصول إلى الليرات وعرض أسمائها وطبعا هذا مثال من اجل معرفة الطريقة.
وان شاء الله سأحاول أن أرسل الدرس الثالث حول بعض الأمور المتقدمة للتعامل مع الليرات.
أتمنى من الأخوة من اجل التعلم عدم استخدام النسخ في كتابة هذا الكود عند تطبيقه بل كتابته يدوياً..
وفي الختام ارجوا ان استقبل الردود حول طريقة الشرح وهل هي مجدية أم لا وعن الفائدة وبدون أي مجاملات من اجل الوصول إلى الأسلوب الأمثل لفائدة الأعضاء في المنتدى
مع التقدير
ملاحظة : من اجل عمل هذا الكود يجب ان يحتوي الملف على ليرات
[align=left]Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pMap As IMap
Set pMap = pMxDoc.FocusMap
Dim pLayer As ILayer
Dim pMapLayers As IEnumLayer
Set pMapLayers = pMap.Layers
Set pLayer = pMapLayers.Next
Do Until pLayer Is Nothing
MsgBox pLayer.Name
Set pLayer = pMapLayers.Next
Loop[/align]
مشكور اخوي وسام على هذا الدرس
وأقول لك أي معلومه تقدمها في هذا المنتدى سوف تكون محل تقدير لدى الجميع
أما بخصوص عرض ادرس اقترح عليك اذا عملت برنت سكرين ان تقص الجزء المطلوب حتى يكون حجم الصورة صغير
هكذا
وكتابة الكود بهذه الطريقة
كود:Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument Dim pMap As IMap Set pMap = pMxDoc.FocusMap Dim pLayer As ILayer Dim pMapLayers As IEnumLayer Set pMapLayers = pMap.Layers Set pLayer = pMapLayers.Next Do Until pLayer Is Nothing MsgBox pLayer.Name Set pLayer = pMapLayers.Next Loop
وفي النهاية تمنيت ان أرى نتيجة عملك
وأخير اشكرك من أعماق قلبي على هذه الدروس وستمر فيها
اخوك فهد
[align=center][mshosh2]http://up1.mlfnt.net/images/nyfiy0fvtw9p7m9yp1n1.gif[/mshosh2][/align]
[align=center]موقع الشخصي
[http://faculty.ksu.edu.sa/falmutlaq/default.aspx[/align]
Dear All
I Hope be fine and live with full scale of love and happiness, according to tutorial , if you want a complete
tutorial for arcobjects , please send me email and i forward you with the tutorial
i.nawasrah@gmail.com
Regards
Ibrahim Nawassrah
Khatib-Alami
ESRI - Lebanon
Alriyadh
بسم الله الرحمن الرحيم
مشكور أخ وسام والله يعطيك الصحة والعافية
كنت أتمنى ألا يقتصر العمل على وضع الكود البرمجي بل يتخطى إلى شرح هذا الكود
فمثلاً متى نستخدم كل عبارة وما هي أهميتها
ما هو
IMxDocument, IMap, IEnumLayer
ومتى نستخدمهم ؟
فسابقاً كنا نعرف متغير ما X من نوع Integer
أما الآن فنعرف متغير pMxDoc من نوعIMxDocument
ما هو هذا النوع وهل هناك أنواع أخرى من نفس النمط يمكن الاستفادة منها؟
يعني نريد دروس من نوع (لا تعطيني سمكة ولكن علمني كيف أصطاد)
Dim pMxDoc As IMxDocument
Set pMxDoc = ThisDocument
Dim pMap As IMap
Set pMap = pMxDoc.FocusMap
Dim pLayer As ILayer
Dim pMapLayers As IEnumLayer
Set pMapLayers = pMap.Layers
Set pLayer = pMapLayers.Next
Do Until pLayer Is Nothing
MsgBox pLayer.Name
Set pLayer = pMapLayers.Next
Loop
وجزاكم الله كل خير
الاخوة الاعزاء
شكرا جزيلا لكم
بالنسبة للدروس البرمجة اود ان اشير الى انها دروس تمهيدية لمراحل اخرى سوف نتطرق اليها لاحقا ان شاء الله كما سوف نقوم بشرح الكود وكذلك المتغيرات حسب معرفتنا البسيطة.
وان شاء الله سوف اقوم باعداد الدرس الثالث بالقريب العاجل
مع التقدير
مشكور اخي على الشرح ولكن الصور لا تظهر عندي
وشي تاني الادوات اللازمة في البرمجة من اين احصل عليها؟
بعد التحية
ارجو من الخ وسام السماح لي بالتعقيب و شرح الكود.
اولا: يجب النتباه بان VBA ليس برنامجا مستقلا بذاته و انما متاكمل مع تطبيقات ArcMap/ArcCatalog لذلك فان جميع المكتبات التي تحتاجها عند كتابة برنامج تكون معرفة مسبقا, و في حالة الاحتياج لتعريف مكتبات اضافية يمكنك ذلك من preferences
ثانيا: الشرح
Dim pMxDoc As IMxDocument تعريف الوثيقة الاساسية ل ArcMap(MXD)
Set pMxDoc = ThisDocument اسناد قيمة المتحول Pmxdoc ليتعامل مع الوثيقة النفتوحة
Dim pMap As IMap تعريف متحول للتعامل مع dataFrame
Set pMap = pMxDoc.FocusMap اسناد قيمة dataFrame الفعال للمتحول
Dim pLayer As ILayer تعريف متحول للتعامل مع الشرائح في الخريطة
Dim pMapLayers As IEnumLayer تعريف متحول من نوع مصففوفة لتخزين كل الشرائح
Set pMapLayers = pMap.Layers اسناد كل الرائح الموجودة في الخريطة للمتحول من نوع مصفوفة
Set pLayer = pMapLayers.Next اسناد اول قيمة في المصفوفوة للشريحة
Do Until pLayer Is Nothing قراءة كل القيم في المصفوفة و اظهار رسالة باسم الشريحة
MsgBox pLayer.Name سوف تنتهي القراءة عندما تنتهي الشرائح
Set pLayer = pMapLayers.Next
Loop