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 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 smile

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  smile

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 wink
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 smile
--> 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 wink
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 wink

Hors ligne

 

Pied de page des forums

Powered by FluxBB