banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 18 May 2010 15:57

zaynabe
Participant occasionnel
Date d'inscription: 13 May 2010
Messages: 12

[ArcGIS 9.x] Faire clignoter une entité sélectionnée

bonjour tout le monde
je vais enchainer sur mon sujet que j'ai publié avant sur "la récupération des identifiants de quelques unités sélectionnées dans un listbox"!
voilà, j'ai récupéré les identifiants dans la listbox, ce que je cherche à faire, c'est pouvoir ;en cliquant sur un identifiant dans la listbox; voir clignoter l'entitée correspondante à cet identifiant, bien sur , toute en gardant les entitées sélectionnées!!!
j'ai pensé à la methode "flash", et j'ai trouvé un bout de code qui peut me servir, mais je n'arrive pas à le faire fonctionner
voici le code que j'essais de faire fonctionner

Code:

Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

  Dim pMxDoc As IMxDocument
  Dim pPoint As IPoint
  Dim pFeature As IFeature
    
  Set pMxDoc = ThisDocument
  Set pPoint =pMxDoc.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y)
    
  If (pFeature Is Nothing) Then Exit Sub
    
  ' now we must highlight the selected feature by flashing its geometry
  FlashFeature pFeature, pMxDoc
  
  Exit Sub
end sub

en plus , il ya le code suivant:

Code:

Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
 
Public Sub FlashFeature(pGeom As IGeometry, pMxDoc As IMxDocument)
  
  ' Start Drawing on screen
  pMxDoc.ActiveView.ScreenDisplay.StartDrawing 0, esriNoScreenCache
  
  ' Switch functions based on Geomtry type
  Select Case pGeom.GeometryType
    Case esriGeometryPolyline
      FlashLine pMxDoc.ActiveView.ScreenDisplay, pGeom
    Case esriGeometryPolygon
      FlashPolygon pMxDoc.ActiveView.ScreenDisplay, pGeom
    Case esriGeometryPoint
      FlashPoint pMxDoc.ActiveView.ScreenDisplay, pGeom
  End Select
  
  ' Finish drawing on screen
  pMxDoc.ActiveView.ScreenDisplay.FinishDrawing
End Sub
 
 
Public Sub FlashLine(pDisplay As IScreenDisplay, pGeometry As IGeometry)
  Dim pLineSymbol As ISimpleLineSymbol
  Dim pSymbol As ISymbol
  Dim pRgbColor As IRgbColor
  
  Set pLineSymbol = New SimpleLineSymbol
  pLineSymbol.Width = 4
  
  Set pRgbColor = New RgbColor
  pRgbColor.Green = 128
  
  Set pSymbol = pLineSymbol
  pSymbol.ROP2 = esriROPNotXOrPen
  
  pDisplay.SetSymbol pLineSymbol
  pDisplay.DrawPolyline pGeometry
  Sleep 300
  pDisplay.DrawPolyline pGeometry
End Sub

voilà, je cherche à adapter ces codes à mes besoins, et j'ai besoin de l'aide
merci d'avance
NB:: j'ai posté le meme sujet sur cette page de forumsig http://www.forumsig.org/showthread.php?t=27101 , mais j'ai pas encore eu de réponse

Hors ligne

 

#2 Tue 18 May 2010 16:18

Jeirhome
Membre
Lieu: Liverion
Date d'inscription: 22 Aug 2006
Messages: 4298
Site web

Re: [ArcGIS 9.x] Faire clignoter une entité sélectionnée

Le code que tu cites ne risque pas de fonctionner tout seul. Il faut donner les bons paramètres aux fonctions !

Le premier m'a l'air très bien, sauf qu'entre "Dim pFeature As IFeature" et "FlashFeature pFeature, pMxDoc" il faudrait un petit "set pFeature = ..." où ... est l'objet sélectionné !


Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !

Hors ligne

 

Pied de page des forums

Powered by FluxBB