#1 Fri 24 October 2014 10:56
- Alexandre A
- Participant occasionnel
- Date d'inscription: 21 Oct 2014
- Messages: 11
[MapBasic] Modifier le style d'un objet sélectionné
Bonjour à tous,
Dans une commande MapBasic je cherche à modifier le style d'un objet géographique sélectionné.
Pour être précis, j'ai créé un Checkbox avec différentes actions sur une couche de cadastre, et je souhaiterais qu'à la fin, quand l'utilisateur lance le exe de la Checbox, il y a entre autres une modification des lignes et trames d'une parcelle sélectionnée (mais juste elle, pas les parcelles alentours).
Voici un code sur lequel je travaille mais qui ne fonctionne pas, malgré de très nombreux essais :
(à noter que la sélection de la parcelle est effectuée auparavant, par des menus pop up, cette partie fonctionne donc je mets pas le code)
Code:
Declare Sub Parcelle Sub Parcelle Dim Parcelle_selectionnee as string Dim c_var as Pen Dim b_var as Brush Dim SelObj as object Parcelle_selectionnee=SelectionInfo(SEL_INFO_TABLENAME) c_var=MakePen(1, 2, BLUE) b_var=MakeBrush(6, BLUE, -1) Set Map Layer Parcelle_selectionnee Editable On SelObj=Parcelle_selectionnee Alter Object SelObj Info OBJ_INFO_PEN, c_var Alter Object SelObj Info OBJ_INFO_BRUSH, b_var Set Map Order Parcelle_selectionnee End Sub
Je sais qu'il s'agit probablement d'un redit et qu'il existe d'autres sujets identiques sur le forum (sujets que j'ai consulté), mais aucun ne m'a été utile malheureusement.
Merci par avance de votre aide, encore une fois
Hors ligne
#2 Fri 24 October 2014 13:20
- didou72
- Participant assidu
- Date d'inscription: 21 Mar 2012
- Messages: 192
Re: [MapBasic] Modifier le style d'un objet sélectionné
Je résume ton code pour l'instant
pour moi la variable "parcelle sélectionnee" prend le nom de la table sélectionnée.
C_var c'est le style contour?
B_ var c'est le remplissage du polygone
Après tu provoques une modification du style et du remplissage par Alter Object
Comment tu choisis le code pour la couleur que tu souhaites? je trouve pas d'explication sur le sujet..
a+
Dernière modification par didou72 (Fri 24 October 2014 13:21)
Hors ligne
#3 Fri 24 October 2014 20:12
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [MapBasic] Modifier le style d'un objet sélectionné
Salut,
Je sais qu'il s'agit probablement d'un redit et qu'il existe d'autres sujets identiques sur le forum (sujets que j'ai consulté), mais aucun ne m'a été utile malheureusement.
Ce sujet ne t'as pas aidé?
--> http://georezo.net/forum/viewtopic.php?id=92481
A décortiquer ---> http://georezo.net/jparis/mb_r/down/Varia.zip
Code:
Declare Sub Parcelle Sub Parcelle Dim Parcelle_selectionnee as string Dim c_var as Pen Dim b_var as Brush Dim SelObj as object Parcelle_selectionnee=SelectionInfo(SEL_INFO_TABLENAME) SelObj=selection.obj c_var=MakePen(1, 2, BLUE) b_var=MakeBrush(6, BLUE, -1) Set Map Layer Parcelle_selectionnee Editable On Alter Object SelObj Info OBJ_INFO_PEN, c_var Alter Object SelObj Info OBJ_INFO_BRUSH, b_var End Sub
A essayer
A+
Joël
Dernière modification par Spacejo (Fri 24 October 2014 21:38)
Hors ligne
#4 Mon 27 October 2014 13:40
- Alexandre A
- Participant occasionnel
- Date d'inscription: 21 Oct 2014
- Messages: 11
Re: [MapBasic] Modifier le style d'un objet sélectionné
Comment tu choisis le code pour la couleur que tu souhaites? je trouve pas d'explication sur le sujet.
Tu peux aller voir à la page 424 du doc suivant, ils sonnent les explications pour le choix de la trame d'un objet (style et couleur) :
http://i-signum.com/download/Documentat … erence.pdf
Hors ligne
#5 Mon 27 October 2014 14:31
- Alexandre A
- Participant occasionnel
- Date d'inscription: 21 Oct 2014
- Messages: 11
Re: [MapBasic] Modifier le style d'un objet sélectionné
Je ne comprends pas le code ne fonctionne toujours pas.
Pourtant je suis persuadé d'être sur la bonne piste : Parcelle_selctionnee est ma table avec l'objet en question, qui est déjà sélectionné à la base, je définie la table puis je lui demande de la mettre éditable et je la modifie.
Petite piste : je me rends compte qu'il n'a même pas rendu la table éditable, donc le problème doit se situer au début du code.
Autre question : quelle est la différence entre mon code (ou je passe par Alter Object et Info OBJ_INFO_PEN) et "Set style pen makepen(3,2,RED)" que j'ai pu voir sur l'autre sujet?
Merci pour votre aide
Dernière modification par Alexandre A (Mon 27 October 2014 14:34)
Hors ligne
#6 Mon 27 October 2014 18:01
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [MapBasic] Modifier le style d'un objet sélectionné
As tu essayé mon code?
Hors ligne
#7 Mon 27 October 2014 20:44
- Alexandre A
- Participant occasionnel
- Date d'inscription: 21 Oct 2014
- Messages: 11
Re: [MapBasic] Modifier le style d'un objet sélectionné
Oui j'ai essayé le code mais ça ne fonctionne pas. Si je dis pas de bêtise il y avait juste la séquence "SelObj=selection.obj" dont l'emplacement a été changé?
Juste pour confirmation : cette séquence sert à définir l'utilisation de l'objet sélectionné?
Merci Joël pour ton aide!
Hors ligne
#8 Tue 28 October 2014 09:02
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: [MapBasic] Modifier le style d'un objet sélectionné
Salut,
Oupsss un petit oubli
--> Update selection set obj = Selobj
Ceci devrait fonctionner :
Code:
Declare Sub Parcelle Sub Parcelle Dim Parcelle_selectionnee as string Dim c_var as Pen Dim b_var as Brush Dim SelObj as object Parcelle_selectionnee=SelectionInfo(SEL_INFO_TABLENAME) SelObj=Selection.obj c_var=MakePen(1, 2, BLUE) b_var=MakeBrush(6, BLUE, -1) Set Map Layer Parcelle_selectionnee Editable On Alter Object SelObj Info OBJ_INFO_PEN, c_var Alter Object SelObj Info OBJ_INFO_BRUSH, b_var Update selection set obj = Selobj End Sub
Si je dis pas de bêtise il y avait juste la séquence "SelObj=selection.obj" dont l'emplacement a été changé?
Pas vraiment
Dans ton code --> SelObj=Parcelle_selectionnee
Dans le mien --> SelObj=Selection.obj
Autre question : quelle est la différence entre mon code (ou je passe par Alter Object et Info OBJ_INFO_PEN) et "Set style pen makepen(3,2,RED)" que j'ai pu voir sur l'autre sujet?
Le "Alter Object" modifie le style d'une sélection le "Set style" définit un style.
A+
Joël
Dernière modification par Spacejo (Tue 28 October 2014 09:05)
Hors ligne
#9 Tue 28 October 2014 14:47
- Alexandre A
- Participant occasionnel
- Date d'inscription: 21 Oct 2014
- Messages: 11
Re: [MapBasic] Modifier le style d'un objet sélectionné
ça a marché!
Encore une fois merci pour ton aide
Hors ligne