#1 Fri 26 August 2005 12:03
- R Prest
- Invité
mettre a jour un texte
Hello,
Petite question du jour :
Je sais comment récupérer le contenu d'un objet texte dans la table de
données associée, là pas de problème.
Update matable Set Nom = objectinfo(obj,3)
Maintenant que j'ai mis à jour les données, je voudrais faire la demarche
inverse, un truc du genre :
Update matable Set objectinfo(obj,3) = Nom
...mais bien sur ca ne marche pas ! Des idées ? J'ai la vague impression que
c'est facile mais la solution m'échappe.
Merci,
Robin.
#2 Fri 26 August 2005 12:31
- Autran
- Invité
Re: mettre a jour un texte
Bonjour,
essayer quelque chose comme ce qui suit ...avec la carte comme fenetre
active
Update MesTextes Set Object = CreateText (FrontWindow(), CentroidX(obj)
, CentroidY(obj) , Nom , 0 , 0 , 0)
Bonne journée
Jacques Autran
Chercheur UMR MAP - Equipe Gamsau
CNRS - Ministere de la Culture
#3 Fri 26 August 2005 14:25
- R Prest
- Invité
Re: mettre a jour un texte
Re,
Ca marche bien effectivement et je garde ca en boutique (merci en tout cas)
mais... il reste un chti souci :
je sais je suis difficile mais je ne veux changer que la valeur du texte. La
il y a creation d'un nouveau texte, donc perte de la mise en forme, perte de
l'inclinaison, etc, bref des paramètres de position et de style. Et ca
m'arrange pas trop. Dans le même style on m'a suggéré d'étiqueter + transfo
en texte ce qui est une bonne idée en soi mais qui revient a la meme chose
au final...je perds la mise en forme.
Pas si simple finalement. On doit pouvoir faire quelque chose avec ceci :
OBJ_INFO_TEXTSTRING mais il faut que je potasse un peu pour voir si c'est
faisable sans mbx...
A suivre...
Robin.
#4 Fri 26 August 2005 14:40
- R Prest
- Invité
Re: mettre a jour un texte
Hello,
Pour info : "By issuing an Alter Object statement with an Info clause, you
can reset an object’s style (e.g.,
the Pen or Brush). The Info clause lets you modify the same style attributes
that you can query
through the ObjectInfo( ) function. For example, you can determine an object
’s current Brush
style by calling the ObjectInfo( ) function."
Bref, pour les non anglophones, ca dit qu'on peut modifier et remettre a
zero les attributs d'un objet de la meme facon qu'on peut recuperer l'info
via objectinfo(). Du coup je sens que ca doit ressemble a un truc comme
suit, mais ca ne me semble pas possible via la fenetre mapbasic vu que ca
requiert de boucler dans la table sur tous les objets. Je vais finir par
investir dans le logiciel Mapbasic...
Alter Object matable.obj Info OBJ_INFO_TEXTSTRING , Matable.Nom
A moins que vous n'ayez d'autres idées - sans développement MB bien sur ?
Sinon, c'est pas grave, je vais me debrouiller avec la soluce de jacques.
Robin.
#5 Fri 26 August 2005 15:02
- R Prest
- Invité
Re: mettre a jour un texte
Hello,
J'ai trouvé la requete ideale en farfouillant un peu :
Update Nom_Occupationsol Set Object = CreateText (FrontWindow(),
CentroidX(obj) , CentroidY(obj) , Nom , ObjectGeography(obj,7) , 0 , 0)
Il me manquait ca : ObjectGeography(obj,7)
De cette facon, on garde (au moins) l'angle de rotation des textes. J'ai ce
qu'il me faut c'est parfait !
Bonne journée,
Robin.
Ps : Pour info...
OBJ_GEO_MINX minimum x coordinate of an object's minimum
bounding bounding rectangle (MBR), unless object
is a line; if object is a line, returns same
value as OBJ_GEO_LINEBEGX.
OBJ_GEO_MINY minimum y coordinate of object's MBR. For lines,
returns OBJ_GEO_LINEBEGY value.
OBJ_GEO_MAXX maximum x coordinate of object's MBR. Does not
apply to Point objects. For lines, returns
OBJ_GEO_LINEENDX value.
OBJ_GEO_MAXY maximum y coordinate of the object's MBR. Does not
apply to Point objects. For lines, returns
OBJ_GEO_LINEENDY value.
OBJ_GEO_ARCBEGANGLE beginning angle of an Arc object.
OBJ_GEO_ARCENDANGLE ending angle of an Arc object.
OBJ_GEO_LINEBEGX x coordinate of the starting node of a Line object.
OBJ_GEO_LINEBEGY y coordinate of the starting node of a Line object.
OBJ_GEO_LINEENDX x coordinate of the ending node of a Line object.
OBJ_GEO_LINEENDY y coordinate of the ending node of a Line object.
OBJ_GEO_POINTX x coordinate of a Point object.
OBJ_GEO_POINTY y coordinate of a Point object.
OBJ_GEO_ROUNDRADIUS diameter of the circle that defines the rounded
corner of a Rounded Rectangle object, expressed in
terms of coordinate units (e.g. degrees).
OBJ_GEO_TEXTLINEX x coordinate of end of a Text object's label line.
OBJ_GEO_TEXTLINEY y coordinate of end of a Text object's label line.
OBJ_GEO_TEXTANGLE rotation angle of a Text object.
Where
OBJ_GEO_MINX = 1
OBJ_GEO_LINEBEGX = 1
OBJ_GEO_POINTX = 1
OBJ_GEO_MINY = 2
OBJ_GEO_LINEBEGY = 2
OBJ_GEO_POINTY = 2
OBJ_GEO_MAXX = 3
OBJ_GEO_LINEENDX = 3
OBJ_GEO_MAXY = 4
OBJ_GEO_LINEENDY = 4
OBJ_GEO_ARCBEGANGLE = 5
OBJ_GEO_TEXTLINEX = 5
OBJ_GEO_ROUNDRADIUS = 5
OBJ_GEO_ARCENDANGLE = 6
OBJ_GEO_TEXTLINEY = 6
OBJ_GEO_TEXTANGLE = 7