#1 Fri 08 February 2008 22:06
- Guest
- Invité
Formatage de texte
Bonjour,
Je suis à la recherche des fonctions mapinfo permettant le formatage du texte dans les etiquettes chr$(...) (gras, italique,...).
Sauriez vous me dire ou est ce que je peux les retrouver?
Merci d'avance
Priscilla
#2 Fri 08 February 2008 23:25
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Formatage de texte
Bonjour
Tout le texte d'une étiquette a le même format: pas de "variation interne" possible...
On peut choisir celui-ci avant création, dans le contrôle des couches->étiquettes, puis le modifier en double cliquant sur une étiquette
Mais vous parlez peut être de commandes MapBasic ??
Auquel cas il s'agit de la commande Set Map, genre:
Set Map Layer 1
Label Line Arrow
Pen( 2, 1, 255)
Hors ligne
#3 Sat 09 February 2008 00:18
- Guest
- Invité
Re: Formatage de texte
C'est bien dans le controle des couches. je souhaiterais connaitre les fonctions chr$ utilisé dans les scripts des etiquettes du controle des couches pour gérer les mise en page des etiquettes.
#4 Sat 09 February 2008 08:54
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Formatage de texte
Les seuls utiles/utilisables sont chr$(13) (ou chr$(10), quasi pareil) pour le retour à la ligne et chr$(34) pour les guillemets
Hors ligne
#5 Sat 09 February 2008 14:31
- Guest
- Invité
Re: Formatage de texte
Je suis en train de faire des etiquettes par expression ou j'ai nom de commune, population 99, et évolution de population, sachant que je rajoute un peu de texte pour que ce soit compréhensible et je souhaiterai mettre le résultat correspondant à la colonne pop 99 en gras et celui de la colonne évolution de pop en italique. Pas toute l'étiquette. Apparemment c'est possible par chr$ mais je sais pas comment.
#6 Sat 09 February 2008 20:10
Re: Formatage de texte
Bonjour,
Je me range du côté de l'avis de Maurice. Une étiquette associée à une couche à le même formatage sur toute sa chaine (gras, italique...). La commande Chr$() ne faisant que 'traduire' le code Ascii d'une touche clavier ( à ma connaissance du moins).
Pour faire ce que vous souhaitez, il n'y pas d'autres solutions que de dupliquer la couche et réaliser 2 étiquettes...
Bonne continuation.
Florent
Hors ligne
#7 Sun 10 February 2008 10:09
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: Formatage de texte
Bonjour,
Quelques précisions sur le langage Visual Basic (que MapBasic implémente en partie).
Il ne faut pas confondre les opérateurs de chaîne (MID$(), Left$(), &, Trim$(), CHr$(), ASC() ) et le formatage des chaînes de caractères.
Chr$(ACode) renvoi le caractère associé au code ascii ACode. (ASC() est la fonction inverse) .
La seule façon de gérer le formatage d'une chaîne en VB est d'utiliser un objet StdFont et d'affecter la propriété font d'un contrôle. Exemple:
Code:
Dim X As New StdFont X.Bold = True X.Name = "Arial" Set Text1.Font = X
Ou de gérer cela par les API Windows en définissant une police logique et en utilisant la fonction TextOut(). Ce n'est pas trivial.
Ces indications sont valables pour les applications sous windows. Je ne sais malheureusement pas si MapBasic permet d'intégrer toutes les notions VB6 (je ne crois pas) et il ne faut pas oublier que MI est l'application maître et qu'il ne laisse pas forcement accès à tous ses composants, il faudrait pour votre exemple que vous ayez accès au handle et au DC du conteneur de vos étiquettes et ça ça m'étonnerais car ce genre de code présenterai de gros risques d'interférences avec l'application maître.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#8 Sun 10 February 2008 18:59
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: Formatage de texte
Comme je l'ai dit au début: "Tout le texte d'une étiquette a le même format: pas de "variation interne" possible..."
La seule solution pour faire ce que vous souhaitez est celle évoquée par Florent, et les chr$(xxx) n'y peuvent rien ...
Hors ligne