[align=center]~*¤ô§ô¤*~*¤ô§ô¤*~الدرس الثاني~*¤ô§ô¤*~*¤ô§ô¤*~[/align]
في هذا الدرس سوف نتعامل مع الأدوات المتاحة والمتيسرة للمبرمج في نظم المعلومات الجغرافية وسوف يتميز هذا الدرس بإضافة أوامر جديدة، كم من الأعضاء سأل عنها وحاول أن يجد لها عن جواب ولكن دون جدوى .
ولان نقول لهم شدوا الأحزمة وستعدو للانطلاق في تصميم واجهة برمجية تعمل بكفاءة مع خرائط نظم المعلومات الجغرافية
[align=center]ونقول بالبداية][][§¤°^°¤§][][ ( بسم الله مجريها ومرساها)][][§¤°^°¤§][][[/align]
الخطوة الأولى
الأدوات المطلوبة في تصميم الواجهة
1- Mapcontrol
2- Microsoft Common Dialog Control
3 Toolbar
4- ImageList
5- Label
والحمد الله كل هذه المكونات متوفرة لديكم وتستطيعون إضافتها من خلال النافذة التالية
وأعتقد أنكم تعرفون كيف الوصول إلى هذه النافذة ( راجع الدرس الأول
)
الخطوة الثانية
نرسم هذه الأدوات على الواجهة البرمجية
الخطوة الثالثة
نأخذ Right Click على اداة ImageList ثم ناختار Propreties كما هو موضح في الصورة السابقة تظهر لنا النافذه التالية
من خلال ايقونة Insert Picture نستطيع إضافة صور الأيقونات ( وأكيد تعرفون مسار مكان صور الايقونات ) راجع الدرس السابق
وهنا يجب علينا الدقة بمانكتبه هل لاحرف كبتل او اصمول وحفظ ترتيب مكان الايقونات ويستحسن احضار ورقة وقلم
Key . Index . Image
صورة فتح ملف . 1 . Open
صورة اضافة طبفة . 2 . LoadData
صورة مؤشر السهم . 3 . Pointer
صورة الزووم . 4 . Zoom
صورة الوضع الطبيعي . 5 . FullExtent
صورة الاستعلام . 6 . Identify
صورة تحديد الظاهرات . 7 . Trackevents
بعد لانتهاء نضغط على OK
الخطوة الرابعة
نأخذ Right Click على اداة Toolbar ثم ناختار Propreties كما هو موضح في الصورة تظهر لك النافذة التالية وقوم بتغير ماهو موضح في رقم ( 2 )
بعد ذلك انتقل الى التبويب Button تظهر لك النافذة التالية
من هذه النافذة نقوم بإضافة الايقونات التي صممناها في الخطوة الثالثة وهنا تعرفون لماذا طلبنا منكم إخضار ورقة وقلم
في رقم ( 1 ) يمثل رقم ال Index وتفقنا ان رقم واحد هو فتح ملف والان ماعليك الا كتابة Open في خانة رقم ( 4 , 5 , 6 ) وبعد ذلك تضيف الايقونه الثانية من خلال الضغط على رقم ( 7 ) Insert Button وتفقنا انها تكون إضافة بيانات وتكتب LoadData في خانة رقم ( 4 , 5 , 6 ) وهكذا كرر العملية مع كل الايقونات
حتى يخرج شكلها النهائي بهذا الشكل
الخطوة الخامسة
نقوم بإضافة الأكواد الى الواجهة البرمجية
اعمل دبل كلك على Toolbar وكتب الكود التاليكود:Private Sub Toolbar1_ButtonClick(ByVal button As MSComctlLib.button) 'ÝåÏ ÇáãØáÞ With MapControl1 Select Case button.Key Case "Open" CommonDialog1.DialogTitle = "Browse Map Document" CommonDialog1.Filter = "Map Documents (*.mxd)|*.mxd" CommonDialog1.ShowOpen MapControl1.LoadMxFile CommonDialog1.FileName Case "LoadData" 'Get IGxDialog interface Dim pGxDialog As IGxDialog Set pGxDialog = New GxDialog 'Get IGxObjectFilter interface Dim pGxObjectFilter As IGxObjectFilter Set pGxObjectFilter = New GxFilterFeatureClasses 'Set GxDialog properties Set pGxDialog.ObjectFilter = pGxObjectFilter pGxDialog.AllowMultiSelect = True pGxDialog.Title = "Add Feature Data" 'Get IEnumGxObject Dim pEnumGxObject As IEnumGxObject 'Display the GxDialog and set the EnumGxObject. Exit if user cancel the dialog If pGxDialog.DoModalOpen(MapControl1.hWnd, pEnumGxObject) = False Then Exit Sub Dim pFeatureLayer As IFeatureLayer Dim pFeatureClass As IFeatureClass Dim pGxDataset As IGxDataset 'Get IGxObject interface Dim pGxObject As IGxObject pEnumGxObject.Reset Set pGxObject = pEnumGxObject.Next 'Loop through the GxObjects Do While Not pGxObject Is Nothing 'Query interface for IGxDataset interface Set pGxDataset = pGxObject 'Get IFeatureClass interface Set pFeatureClass = pGxDataset.Dataset 'Get IFeatureLayer interface Set pFeatureLayer = New FeatureLayer 'Set layer properties Set pFeatureLayer.FeatureClass = pFeatureClass pFeatureLayer.Name = pFeatureClass.AliasName 'Add the layer to the MapControl MapControl1.AddLayer pFeatureLayer, 0 'Add the layer name to the control Set pGxObject = pEnumGxObject.Next Loop Case "Zoom" .MousePointer = esriPointerZoomIn Case "Pointer" MapControl1.MousePointer = esriPointerDefault Case "Pan" MapControl1.MousePointer = esriPointerPan MapControl1.Pan Case "Fullextent" MapControl1.Extent = MapControl1.FullExtent Case "Trackevents" MapControl1.MousePointer = esriPointerHotLink Case "query" .MousePointer = esriPointerCrosshair Case "Identify" MapControl1.MousePointer = esriPointerDefault Dim pIdentifyDialog As IIdentifyDialog Dim pIdentifyDialogProps As IIdentifyDialogProps Dim pEnumLayer As IEnumLayer Dim pLayer As ILayer Dim pActiveView As IActiveView ' Set pMxDoc = Application.Document Set pActiveView = Me.MapControl1.ActiveView.FocusMap 'Create a new IdentifyDialog and associate it 'with the focus map and the map's display Set pIdentifyDialog = New IdentifyDialog Set pIdentifyDialogProps = pIdentifyDialog 'QI Set pIdentifyDialog.Map = Me.MapControl1.ActiveView.FocusMap Set pIdentifyDialog.display = pActiveView.ScreenDisplay 'Clear the dialog on each mouse click pIdentifyDialog.ClearLayers 'Perform an identify on all of the layers the dialog 'says are searchable Set pEnumLayer = pIdentifyDialogProps.Layers pEnumLayer.Reset Set pLayer = pEnumLayer.Next Do While Not pLayer Is Nothing pIdentifyDialog.AddLayerIdentifyPoint pLayer, x, y Set pLayer = pEnumLayer.Next Loop pIdentifyDialog.Show End Select End With End Sub
نضيف الكود التالي الى Mapcontrol عن الحدثOnMouseDown
نضيف الكود التالي الى Mapcontrol عن الحدثOnMouseMoveكود:If button = vbLeftButton Then MapControl1.Extent = MapControl1.TrackRectangle End If With Toolbar1.Buttons If .Item("Zoom").Value = tbrPressed Then MapControl1.Extent = MapControl1.TrackRectangle ElseIf .Item("Pan").Value = tbrPressed Then MapControl1.Pan ElseIf .Item("Trackevents").Value = tbrPressed Then AddGeoEvent mapX, mapY ElseIf .Item("query").Value = tbrPressed Then SearchShape End If End With
الخطوة السادسةكود:Label1.Caption = "1:" & MapControl1.MapScale 'ÝåÏ ÇáãØáÞ
والآن نضيف ملفات النظام المطلوبة من References حتى لا تظهر لكم الرسائل المزعجة وتخبركم بوجود خطأ
والملفات المطوبة هي ( أنظر الصورة)
[align=center]
والآن تمتع ببرنامجك الجديد[/align]
[align=center]«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»وأخيراً نسألكم الدعاء لي و لي والدي«®°·.¸.•°°·.¸¸.•°°·.¸.•°®»[/align]





رد مع اقتباس