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é ?

#1 Mon 28 January 2002 20:38

Laurent
Invité

Récupérer la position du curseur

Bonjour,
J'ai un petit probleme avec l'utilisation du commandInfo et des ToolButton
sur une fenetre carte ok mais sur une fenetre donnees (Browse) rien.
je devrais obtenir la colonne (CMD_INFO_X) et le Row (CMD_INFO_X)

ToolButton
DrawMode DM_CUSTOM_POINT
Cursor MI_CURSOR_CROSSHAIR
Icon 195
Calling Chercher
end sub

Sub Chercher
note CommandInfo(CMD_INFO_X)
end sub

Si quelq'un a une soluce
salut
laurent

 

#2 Tue 29 January 2002 20:38

Jacques Paris
Invité

Re: Récupérer la position du curseur

Mes excuses pour ce message assez long mais j’ai perdu la trace d’un e-mail
(perso ou babillard?) faisant remarquer qu’un « bouton-bascule »
(togglebutton) ne permettait pas de recuperer la position du curseur sur un
tableau, quoique en semble dire le fichier d’aide (ou plutot de pas en
dire). J’ai fait quelques recherches mais je n’ai pu obtenir que cette info
: seul l’outil MapBasic (present automatiquement des qu’une application
contient la sub ToolHandler) permettrait de recuperer de l’info sur une
carte, un tableau ou une mise-en-page.

Alors un premier challenge : comment combiner bouton-bascule et outil
Mapbasic? Avec un deuxieme, comment se debarrasser de l’outil MapBasic qui
reste la tant que l’application qui le nomme est active? Ma solution vaut ce
qu’elle vaut et devrait preter a controverse : il s’agit d’isoler l’
utilisation de l’outil Mapbasic dans un mbx ouvert et ferme par le
bouton-bascule .

Un autre chalenge est plus theorique. MI enonce clairement qu’une procedure
« ----handler » ne devrait pas changer le focus de l’interface graphique
(GUI) donc ne devrait pas contenir d’enonces comme Note, Print (directement
a la boite de messages), Dialog. J’ai eu en effet de serieux problemes (MI
disparaissant sans avertissement ni trace) en cliquant sur le OK d’une note
affichee par SelChangedHandler alors qu’une carte etait en cours d’edition.
D’ou ma recommandation : ne se servir du ---handler que pour recuperer les
donnees voulues et pour appeler une sub qui les traitera.

Voici un exemple, pas trop long et qui donne une bonne idee de ce que j’ai
essaye d’expliquer

Programme principal
include mapbasic.def
include Icons.def

declare sub main
declare sub chercher

dim status as logical

sub main
alter buttonpad ID 3 add
separator
togglebutton
Icon 195
calling Chercher
status=false
end sub

Sub Chercher
if not status then
Run application XYposition.MBX
status=true
else
Terminate application XYPosition.MBX
status=false
end if
end sub

Programme special
include mapbasic.def

declare sub Main
declare sub ToolHandler
declare sub doit

dim xi,yi as integer
dim xd,yd as float

sub main
set coordsys layout units cm
end sub

Sub ToolHandler
yi= CommandInfo(CMD_INFO_Y)
xi= CommandInfo(CMD_INFO_X)
yd= CommandInfo(CMD_INFO_Y)
xd= CommandInfo(CMD_INFO_X)
call doit
End Sub

sub doit
if xi=xd and yi=yd then
Note Row:  +str(yi)+ Chr(10) +  Col:  + str(xi)
else
Note X pos:  +str(xd)+ Chr(10) +  Y pos:  +  str(yd)
end if
end sub

Jacques Paris
e-mail jacques@texte-a-enlever.paris-pc-gis.com
MapBasic-MapInfo support http://www.paris-pc-gis.com

 

Pied de page des forums

Powered by FluxBB