Pages: 1
- Sujet précédent - placer un symbol sur une carte puis lancer un code mapbasic - Sujet suivant
#1 Wed 15 April 2009 12:10
- sdauphin
- Participant occasionnel
- Date d'inscription: 30 Aug 2009
- Messages: 20
placer un symbol sur une carte puis lancer un code mapbasic
Bonjour,
Je ne trouve pas la meilleure façon de procéder pour l'interface de mon programme mapbasic.
Il faut que l'utilisateur clic sur la carte pour localiser un endroit de dysfonctionnement, ensuite le programme s'exécute pour sélectionner des objets d'une ou plusieurs tables pouvant être responsables du problème.
Il faut donc cliquer dans une map pour placer le point, dessiner un symbole, récupérer les coordonnées, puis lancer la recherche dans les tables. Concrètement, Pour commencer je lance mon programme avec un bouton, il y a dans un premier temps vérification des tables ouvertes et affichées, ensuite je voudrais avoir la main avec un curseur pour placer ce point et récupérer les coordonnées, puis je continue avec un nearest pour sélectionner l'objet le plus proche et cela fonctionne bien.
J'ai réussi à leur faire avec un bouton spécial, mais comme celui-ci ne sert qu'une fois j'aimerai mieux m'en passer, y a t'il une solution autre, comme utiliser le bouton de dessin de point ?
Voila le bout de code que j'utilise pour l'instant, quand je clique sur mon bouton spécial :
Code:
Set CoordSys Earth Projection .... xdys = Round(CommandInfo(CMD_INFO_X), 0.1) ydys = Round(CommandInfo(CMD_INFO_Y), 0.1) ' Create Point Into Window nomcarte (xdys,ydys) Symbol (53,16711680,15,"MapInfo Cartographic",288,0) nom_objet_creer = "Dysfonctionnement_" + Str$(n_dys+1) Update nomtable1 Set NOM = nom_objet_creer ' 'trouve l'objet le plus proche du point de dysfonctionnement alias1 = nomtable1 + ".RowID" Nearest 1 From Table selection To nomtable1 Into nomtable2 Type Cartesian' Data NOM = alias1
merci pour votre aide
Dernière modification par olreb (Wed 15 April 2009 12:11)
Hors ligne
#2 Wed 15 April 2009 13:16
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: placer un symbol sur une carte puis lancer un code mapbasic
...comme utiliser le bouton de dessin de point ?...
Bonjour
Vous devriez pouvoir accéder à ça par Run Menu Command 1711 ...
Hors ligne
#3 Wed 15 April 2009 14:36
- sdauphin
- Participant occasionnel
- Date d'inscription: 30 Aug 2009
- Messages: 20
Re: placer un symbol sur une carte puis lancer un code mapbasic
merci Maurice
J'ai déjà essayé, je vais retenté, je m'y suis peut-être mal pris...
Hors ligne
#4 Wed 15 April 2009 14:46
- sdauphin
- Participant occasionnel
- Date d'inscription: 30 Aug 2009
- Messages: 20
Re: placer un symbol sur une carte puis lancer un code mapbasic
si je place cette ligne de commande ("Run Menu Command 1711") avant d'exécuter mon code (le bout ci-dessus). J'ai une erreur avec la ligne "ydys = Round(CommandInfo(CMD_INFO_Y), 0.1)" qui est "CommandInfo : argument 2 en dehors des limites". Je n'ai pas le temps de placer le point, l'erreur apparaît de suite.
il faut que ce soit l'événement de placer le point qui déclenche le code, mais je n'ai pas tout (rien :-/) compris avec les "handler"
Hors ligne
#5 Mon 27 April 2009 16:17
- sdauphin
- Participant occasionnel
- Date d'inscription: 30 Aug 2009
- Messages: 20
Re: placer un symbol sur une carte puis lancer un code mapbasic
c'est désespérant, je n'ai toujours pas trouvé...
si j'utilise "Run Menu Command 1711", je ne vois pas comment lancer ma procédure au moment du clic sur la carte, je ne suis pas sûr que cela soit possible en fait.
il y a une fonction pour écouter l'utilisation d'un bouton ? j'ai essayé avec commandinfo(CMD_INFO_TOOLBTN), mais sans succès...
Hors ligne
Pages: 1
- Sujet précédent - placer un symbol sur une carte puis lancer un code mapbasic - Sujet suivant