Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Calcul des longueur et hauteur d'un texte dans un objet | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Calcul des longueur et hauteur d'un texte dans un objet Lun 16 Aoû 2010 - 14:32 | |
| Ça déjà été fait, et très bien, par Klaus dans une dll. Mais voici un moyen très simple et assez rapide, en Panoramic pur, sous forme de sous-programme à ajouter où on veut. Le calcul tient compte de la police utilisée et des enrichissements (gras, italiques). L'astuce est d'écrire le texte dans un objet invisible et de mesurer ses limites. Le sous-programme n'utilise pas de variables locales. L'utilisation la plus évidente est le centrage d'un texte dans un objet, horizontalement et/ou verticalement. - Code:
-
' Taille texte en fonction de la police, de la taille et des enrichissements DIM txt$, fnt$, szt%, wtx%, htx% LABEL Tailtext
txt$ = "Quand je vois la fiction des éléments, je suis saisi de livides pensées" fnt$ = "Times New Roman": ' Police szt% =18: ' Taille szt% = BIN_OR(szt%, 128): ' bold szt% = BIN_OR(szt%, 64): ' italique szt% = BIN_OR(szt%, 32): ' souligné (pour mémoire, n'influence pas la taille) GOSUB Tailtext PRINT STR$(wtx%) + " x " + STR$(htx%): ' Résultat END
Tailtext: ' Calcul de la largeur wtx% et de la hauteur htx% du texte txt$, en fonction ' de la police (fnt$), de la taille et des enrichissements (szt%). ' szt%: bits 0 à 4 = taille (limitée à 30 par Panoramic) ' bit 5 = Souligné, bit 6 = Italique, bit 7 = Gras. ' (les bits sont numérotés à partir de la droite, selon l'usage: poids croissants). PICTURE 80: TOP 80, -150: WIDTH 80, 900: COLOR 80, 1, 1, 1 PRINT_TARGET_IS 80: FONT_NAME 80,Fnt$: FONT_SIZE 80, BIN_AND(szt%, 31) IF BIN_AND(szt%, 128) <> 0 THEN FONT_BOLD 80 IF BIN_AND(szt%, 64) <> 0 THEN FONT_ITALIC 80 IF BIN_AND(szt%, 32) <> 0 THEN FONT_UNDERLINE 80 FONT_COLOR 80,0,0,0: PRINT Txt$: PRINT_TARGET_IS 0 FOR wtx% = 0 TO 799 IF COLOR_PIXEL_RED(80,wtx%,0)=1 AND COLOR_PIXEL_GREEN(80,wtx%,0)=1 AND COLOR_PIXEL_BLUE(80,wtx%,0)=1 THEN EXIT_FOR NEXT wtx% FOR htx% = 0 TO 799 IF COLOR_PIXEL_RED(80,0,htx%)=1 AND COLOR_PIXEL_GREEN(80,0,htx%)=1 AND COLOR_PIXEL_BLUE(80,0,htx%)=1 THEN EXIT_FOR NEXT htx% DELETE 80 RETURN | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Calcul des longueur et hauteur d'un texte dans un objet Lun 16 Aoû 2010 - 16:35 | |
| Très intéressant et surtout très patique. Pas énorme à intégrer et avec peu de variables à renseigner.Bref, du grand art. Toutefois, J' ai besoin d'une info concernant: - Code:
-
' szt% = BIN_OR(szt%, 128): ' bold (Gras ou pas) ' szt% = BIN_OR(szt%, 64): ' italique ' szt% = BIN_OR(szt%, 32): ' souligné (pour mémoire, n'influence pas la taille)
Si j'ai bien compris, il faut shunter ces lignes si nessecaire et suivant que.... Une épine de moins à mon pied, car pour positionner un texte dans un objet, jusqu'à ce jour, c'était un peu galère. Bravo "la vielle garde"! Un peu de conccurence aux DLL(s) çà me va bien.. Si tu en a d'autres, comme çà, je suis prenneur. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Calcul des longueur et hauteur d'un texte dans un objet Lun 16 Aoû 2010 - 17:08 | |
| Ce serait plutôt quelque chose du genre 'Trucs et Astuces', et tu as raison, c'est court et simple et facile à intégrer.
Bien sûr il faut n'utiliser que ce qui est nécessaire pour les enrichissements (en général, rien), ça sert simplement à positionner un bit indicateur dans szt% (en plus de la taille). C'était simplement pour ne pas avoir à passer de variables supplémentaires.
Et à partir de mercredi matin, 15 jours d'absence (vacances...).
| |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Calcul des longueur et hauteur d'un texte dans un objet Lun 16 Aoû 2010 - 18:39 | |
| | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Lun 16 Aoû 2010 - 20:02 | |
| Et comment on fait, après, par exemple pour mettre au milieu ? Par exemple, dans un memo, il faut diviser wtx% par 20 pour faire string$(int(wtx%/20)," ")+txt$ ? En tout cas, pour les vacances, c'est une bonne idée ! (parce que quand on commence à avoir des pensées livides...) | |
| | | Invité Invité
| Sujet: Re: Calcul des longueur et hauteur d'un texte dans un objet Lun 16 Aoû 2010 - 21:53 | |
| Je te souhaite de bonne vacances. Pour ce qui est du centrage d'un texte, j'avais déjà publié, un code, dont j'utilise celui-ci adapté à mon éditeur à cellules. Pour cet éditeur, je ne crois pas avoir mis cette version en ligne (seulement pour Klaus pour les commandes avec le presse-papier) Il faudrait que je note ce que je publie, j'ai du mal à retrouver les programmes que je mets ici.. J'ai retrouvé le programme sur le forum à center_focus?. Donc j'ai pu le retirer ici et y mettre le lien. https://panoramic.1fr1.net/a-l-aide-f6/center-focus-t795.htm#6216Une chose que j'ai vu dans ton exemple, tu écris sur du noir, et tu as gardé le fond blanc de l'écriture. Je n'ai pas pensé à celà, pour tester, j'ai simplement rajouté un "|" à la fin du texte pour retrouver la fin du texte. En ce sens pour cela ton idée est bonne. Par contre je trouve le temps d'exécution un peu lent, le mien est plus rapide. Profite bien de tes vacances. Le temps sera certainement meilleurs qu'en ce moment. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Calcul des longueur et hauteur d'un texte dans un objet Mar 17 Aoû 2010 - 0:36 | |
| @Tous: Merci pour vos voeux les copains ! et puis le temps ne risque pas d'être pire qu'en ce moment, il flotte sans arrêt. Et je vais à Menton, puis le tour de la Méditerranée occidentale Espagne, Tunisie, Italie @cosmos oui certes c'est un peu lent (relativement quand même) je ne voyais pas ça pour centrer des dizaines de lignes de texte dans un objet, mais plutôt un petit texte dans un bouton maison, par exemple (c'était le besoin initial), et là c'est très acceptable. @jjn4, pour centrer un texte avec ça, rien de plus facile. Soit w% la largeur de l'objet et wtx% la largeur du texte, x et y les coordonnées du print: - Code:
-
x = (w% - wtx%)/2 et pareil en hauteur si on veut centrer verticalement: [code]y = (h% - htx%)/2[code] Et donc: [code]PRINT_LOCATE x, y: PRINT Montexte$[/code] C'est beaucoup plus précis que de rajouter des espaces devant, comme tu dis. (pour les livides pensées... c'était une contrepèterie... vous avez 15 jours pour trouver !) | |
| | | Contenu sponsorisé
| Sujet: Re: Calcul des longueur et hauteur d'un texte dans un objet | |
| |
| | | | Calcul des longueur et hauteur d'un texte dans un objet | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |