#1 Mon 04 May 2009 11:31
- tnicolas
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 64
[ArcGis 9.1] point d'ancrage
EDIT : se sujet concerne la version 9.1 et non la 9.2
Bonjour,
Je suis en train de programmer une mise en page automatique dans laquelle il y aura des zones de texte dont le remplissage se fera en fonction des données présentes dans une table. J'ai réussi à remplir automatiquement ces zones de texte, à leur donner des coordonnées mais je n'arrive pas à changer le point d'ancrage. Par défaut il est en bas à gauche et je voudrais le centrer. Sur le net je n'ai rien trouvé et l'aide donne "object.anchorpoint = value", mais avec ma zone de texte je n'arrive pas à avoir la fonction (si c'est comme ça que ça s'appelle) anchorpoint.
Pour information voici le code que j'utilise :
Code:
Dim mondoc As IMxDocument Dim pLayout As IPageLayout Dim pGraphics As IGraphicsContainerSelect Dim pElementProp As IElementProperties Dim pTextElement As ITextElement Dim matable As ITable Dim maligne As IRow Dim UnElement As IElement Dim pPoint As IPoint Dim pGContainer As IGraphicsContainer Set mondoc = ThisDocument Set pLayout = mondoc.PageLayout Set pGraphics = pLayout pGraphics.SelectAllElements 'dans un boucle qui permet de renseigner toutes les zones texte à partir de la base For i = 0 To pGraphics.ElementSelectionCount - 1 Set pElementProp = pGraphics.SelectedElement(i) If TypeOf pElementProp Is ITextElement Then 'on choisit la zone une zone de text particulière If pElementProp.Name = "txt_surface" Then Set pTextElement = pElementProp If maligne.Value(matable.Fields.FindField("surface_parcelle")) <> "" Then 'on la remplit avec la base pTextElement.Text = maligne.Value(matable.Fields.FindField("surface_parcelle")) & " m²" 'on lui donne des coordonnées Set pGContainer = pLayout Set pPoint = New Point pPoint.x = 24.48 pPoint.y = 25.55 Set UnElement = pTextElement UnElement.Geometry = pPoint pGContainer.UpdateElement UnElement Else pTextElement.Text = "-" End If End If . . . Next i
Comment faire pour modifier le point d'ancrage d'une zone de texte ?
Dernière modification par tnicolas (Mon 04 May 2009 14:53)
Hors ligne
#2 Mon 04 May 2009 11:49
Re: [ArcGis 9.1] point d'ancrage
Explorons un peu le modèle objet de l'API d'ArcGIS, et commençons d'abord par l'objet TextElement, puisque c'est de lui qu'on parle.
On trouve 17 interfaces disponibles. Mais je n'ai trouvé qu'une seule interface contenant la propriété en lecture / écriture AnchorPoint : IElementProperties3
En utilisant cette interface, ça devrait être assez facile désormais.
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#3 Mon 04 May 2009 12:50
- tnicolas
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 64
Re: [ArcGis 9.1] point d'ancrage
Euh ... je me sui trompé c'est pas la version 9.2 que j'ai mais la 9.1 désolé ...
Merci pour ta réponse mais j'ai bien trouvé IElementProperties et IElementProperties2 mais pas la IElementProperties3. Etait-elle présente dans la 9.1 ou est-elle apparue plus tard ?
Hors ligne
#4 Mon 04 May 2009 14:10
Re: [ArcGis 9.1] point d'ancrage
D'après la doc, cette interface existe depuis le 9.2
Malheureusement il faut bien avoir des avantages à avoir une version à jour
Jérôme Cuinet
L'avantage de la Chine, c'est que le soleil se couche plus tard !
Hors ligne
#5 Mon 04 May 2009 14:41
- tnicolas
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 64
Re: [ArcGis 9.1] point d'ancrage
Bon ben il ne me reste plus qu'à faire des calculs savants en fonction de la longueur de mes textes
Merci pour tout
Dernière modification par tnicolas (Mon 04 May 2009 14:42)
Hors ligne