#1 Mon 23 July 2012 14:39
- Cedricc
- Participant actif
- Date d'inscription: 22 Apr 2010
- Messages: 105
[MB 8.5] Vérifier la présence de couche
Bonjour à tous,
Je crée actuellement un programme mapbasic qui selectionne une couche et la rend modifiable.
Avant cela le programme doit vérifier si la couche est présente dans la carte active, et si non la rajouter. C'est là que je bloque, quoiqu'il arrive il me rajoute la table même si elle déjà présente. Voici mon code :
Code:
nbre_couche = mapperinfo(frontwindow(),mapper_info_layers)
for i=1 to nbre_couche
If layerinfo(frontwindow(), i, layer_info_name)<>"ma_table"
then add map Layer "ma_table"
exit for
end if
next
Set map layer "ma_table"
Editable on
Si quelqu'un a une idée pour qu'il ne me rajoute la table que si elle n'est pas déjà présente...
Dernière modification par Cedricc (Mon 23 July 2012 16:16)
Hors ligne
#2 Mon 23 July 2012 17:24
- sylvain poupard
- Participant assidu
- Date d'inscription: 19 Mar 2009
- Messages: 362
Re: [MB 8.5] Vérifier la présence de couche
Bonjour,
En attendant une meilleure réponse voici une piste...
Avec
Code:
for i=1 to nbre_couche
vous faîtes le test de la demande d'ajout pour chaque table ouverte.
Donc forcément mapbasic trouve une table ouverte qui est différente de "ma_table", et ouvre donc "ma_table".
Pour moi le problème viendrait de votre approche...mais je n'en ai pas d'autre à proposer!
Bon courage.
Hors ligne
#3 Mon 23 July 2012 17:26
- Damien BEAUSEIGNEUR
- Participant assidu
- Lieu: meyzieu
- Date d'inscription: 5 Sep 2005
- Messages: 425
Re: [MB 8.5] Vérifier la présence de couche
Bonjour,
l'idée est bonne, actuellement dans ton code, et ceci dès la première boucle tu ajoutes ta table.
Avant d'ajouter il aurait fallu le tester sur toutes tes couches.
Code:
num_couche = 0 for i=1 to nbre_couche If layerinfo(frontwindow(), i, layer_info_name)="ma_table" then num_couche = i exit for end if next if num_couche = 0 then add map layer "ma_table" end if
Hors ligne
#4 Tue 24 July 2012 11:19
- Cedricc
- Participant actif
- Date d'inscription: 22 Apr 2010
- Messages: 105
Re: [MB 8.5] Vérifier la présence de couche
Merci pour vos réponses.
Je n'ai pas pensé à prendre le problème dans le sens de Damien, effectivement ça marche. Comme quoi il faut savoir utiliser des moyens détournés parfois. Et encore merci de m'avoir débloqué.
Hors ligne