المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الثاني في استخدام الفيجوال بيسك للتطبيقات Vba



وسام التميمي
08-19-2008, 11:40 AM
الأخوة الأعزاء
السلام عليكم ورحمة الله وبركاته

أرسل إليكم الدرس الثاني وأسف للتأخير عليكم
بعد أن أكملنا الدرس الأول والذي نشر على الرابط التالي:

http://www.gisclub.net/vb/showthread.php?threadid=3104

نكمل اليوم الخطوات البرمجية لما عملناه سابقاً وأود أن أشير إلى بعض الأمور الخاصة بهذا الأمر وهي:

1. القاعدة العامة لبرمجة التطبيقات هي تعريف الملف ثم الوصول إليه
2. بعد ذلك يتم الوصول إلى الليرات عند ذلك يتم التعامل مع مكونات الليرات مثل الجداول والرسومات ... الخ

عمل هذا الكود هو الوصول إلى الليرات وعرض أسمائها وطبعا هذا مثال من اجل معرفة الطريقة.
وان شاء الله سأحاول أن أرسل الدرس الثالث حول بعض الأمور المتقدمة للتعامل مع الليرات.
أتمنى من الأخوة من اجل التعلم عدم استخدام النسخ في كتابة هذا الكود عند تطبيقه بل كتابته يدوياً..

وفي الختام ارجوا ان استقبل الردود حول طريقة الشرح وهل هي مجدية أم لا وعن الفائدة وبدون أي مجاملات من اجل الوصول إلى الأسلوب الأمثل لفائدة الأعضاء في المنتدى
مع التقدير

ملاحظة : من اجل عمل هذا الكود يجب ان يحتوي الملف على ليرات


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

http://www.gisclub.net/vb/images/uploads/2414_1621648aa83eb68664.JPG
http://www.gisclub.net/vb/images/uploads/2414_975748aa843099ca2.JPG
http://www.gisclub.net/vb/images/uploads/2414_422448aa8476cc1d6.jpg
http://www.gisclub.net/vb/images/uploads/2414_1867748aa84c864299.jpg
http://www.gisclub.net/vb/images/uploads/2414_1670548aa8500454ad.jpg

فهد المطلق
08-19-2008, 06:45 PM
مشكور اخوي وسام على هذا الدرس

وأقول لك أي معلومه تقدمها في هذا المنتدى سوف تكون محل تقدير لدى الجميع

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

http://www.gisclub.net/vb/images/uploads/3079_3019348aae91090033.jpg


وكتابة الكود بهذه الطريقة



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


وفي النهاية تمنيت ان أرى نتيجة عملك


وأخير اشكرك من أعماق قلبي على هذه الدروس وستمر فيها

اخوك فهد

ابراهيم نواصرة
05-25-2009, 11:13 AM
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

محمد فواز
05-25-2009, 11:26 AM
بسم الله الرحمن الرحيم

مشكور أخ وسام والله يعطيك الصحة والعافية

كنت أتمنى ألا يقتصر العمل على وضع الكود البرمجي بل يتخطى إلى شرح هذا الكود
فمثلاً متى نستخدم كل عبارة وما هي أهميتها
ما هو
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

وجزاكم الله كل خير

وسام التميمي
06-02-2009, 01:11 PM
الاخوة الاعزاء

شكرا جزيلا لكم

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

مع التقدير

منار عبد
10-28-2010, 01:40 PM
مشكور اخي على الشرح ولكن الصور لا تظهر عندي
وشي تاني الادوات اللازمة في البرمجة من اين احصل عليها؟

ماهر عبدالكريم
10-28-2010, 07:17 PM
بعد التحية
ارجو من الخ وسام السماح لي بالتعقيب و شرح الكود.
اولا: يجب النتباه بان 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