Pages: 1
- Sujet précédent - Arcobjet : quelqu'un saurait-il ce qui cloche dans mon gxdialogue ? - Sujet suivant
#1 Sat 18 March 2006 00:11
- Julien
- Membre
- Lieu: Paris
- Date d'inscription: 13 Feb 2006
- Messages: 138
Arcobjet : quelqu'un saurait-il ce qui cloche dans mon gxdialogue ?
Bonjour à tous je commence à programmer sous arc object, et je ne parviens pas à ouvrir un raster à partir d'un pgsdialog. J'arrive sans problème à le faire pour un shapefile. Est ce quelqu'un pourrait m'aider, je vous montre mon code qui bloque à "Set prlayer.Raster = pgxdataset.Dataset", en mettant un message d'erreur
En vous remerciant par avance
Private Sub cmd_addraster_Click()
Dim pmxdocument As IMxDocument
Dim pgxdialog As IGxDialog
Dim pgxobjectfilter As IGxObjectFilter
Dim penumgxobj As IEnumGxObject
Dim pgxdataset As IGxDataset
Dim prlayer As IRasterLayer
Dim jindex As Long
Dim pmap As IMap
Dim pmaps As IMaps
Set pgxdialog = New GxDialog
Set pmxdocument = ThisDocument
Set pgxobjectfilter = New GxFilterDatasets
pgxdialog.AllowMultiSelect = True
pgxdialog.Title = "Veuillez choisir votre/vos rasterclasses"
Set pgxdialog.ObjectFilter = pgxobjectfilter
If Not pgxdialog.DoModalOpen(ThisDocument.Parent.hWnd, penumgxobj) Then
MsgBox "Vous avez mis fin à l'opération", vbExclamation
Exit Sub
End If
penumgxobj.Reset
Set pgxdataset = penumgxobj.Next
Do Until pgxdataset Is Nothing
Set prlayer = New RasterLayer
Set prlayer.Raster = pgxdataset.Dataset
pmxdocument.FocusMap.AddLayer prlayer
Set pgxdataset = penumgxobj.Next
Loop
pmxdocument.UpdateContents
pmxdocument.ActivatedView.PartialRefresh esriViewGeography, Nothing, Nothing
End Sub
Hors ligne
#2 Mon 20 March 2006 09:42
- oDevArc
- Juste Inscrit !
- Date d'inscription: 7 Sep 2005
- Messages: 7
Re: Arcobjet : quelqu'un saurait-il ce qui cloche dans mon gxdialogue ?
Bonjour,
Il vous suffit de changer la ligne "Set prlayer.Raster =
pgxdataset.Dataset" en "prlayer.CreateFromDataset
pgxdataset.Dataset".
Bonne journée,
Olivier de LA POMMERAYE
GeoSYS
Hors ligne
#3 Mon 20 March 2006 10:00
- Frédéric Prally
- Participant occasionnel
- Date d'inscription: 25 Oct 2005
- Messages: 16
Re: Arcobjet : quelqu'un saurait-il ce qui cloche dans mon gxdialogue ?
Bonjour Julien,
J'ai apporté deux modifications sur ta procédure :
- Définition du filter pour ne faire apparaitre que les données de type raster.
- Récupération du dataset et ajout du raster au bloc de données.
Etant donné que tu récupéres le dataset de ton raster, il faut que tu crées le layer qui va s'afficher dans la Toc via la méthode CreateFromDataset.
Code:
Private Sub cmd_addraster_Click() Dim pmxdocument As IMxDocument Dim pgxdialog As IGxDialog Dim pRasterFilter As IGxObjectFilter 'ici changement Dim penumgxobj As IEnumGxObject Dim pgxdataset As IGxDataset Dim pRasterDataset As IRasterDataset Dim prlayer As IRasterLayer Dim jindex As Long Dim pmap As IMap Dim pmaps As IMaps Set pgxdialog = New GxDialog Set pmxdocument = ThisDocument Set pRasterFilter = New GxFilterRasterDatasets 'ici changement pgxdialog.AllowMultiSelect = True pgxdialog.Title = "Veuillez choisir votre/vos raster classes" Set pgxdialog.ObjectFilter = pRasterFilter If Not pgxdialog.DoModalOpen(ThisDocument.Parent.hWnd, penumgxobj) Then MsgBox "Vous avez mis fin à l'opération", vbExclamation Exit Sub End If penumgxobj.Reset Set pgxdataset = penumgxobj.Next Do Until pgxdataset Is Nothing Set pRasterDataset = pgxdataset.Dataset Set prlayer = New RasterLayer prlayer.CreateFromDataset pRasterDataset 'ici changement pmxdocument.FocusMap.AddLayer prlayer Set pgxdataset = penumgxobj.Next Loop pmxdocument.UpdateContents pmxdocument.ActivatedView.PartialRefresh esriViewGeography, Nothing, Nothing End Sub
Hors ligne
Pages: 1
- Sujet précédent - Arcobjet : quelqu'un saurait-il ce qui cloche dans mon gxdialogue ? - Sujet suivant