Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 184 857

  • Nb. de membres 187
  • Nb. d'articles 1 270
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» Comment déterminer la hauteur d'un texte (TextExtent.te_Height ?) ?

Comment déterminer la hauteur d'un texte (TextExtent.te_Height ?) ?#2224

4Contributeur(s)
zzd10hartblinksinisrusthellier
3 Modérateur(s)
K-LElwoodcorto
zzd10h zzd10hicon_post
Bonjour,
je me demande si le te_Height retourné par TextExtent() est vraiment la taille en pixels du texte affiché sur un RastPort.

Disons que j'ai une fenêtre de 132 pixels de haut avec un Text dont le TextExtent() me renvoie un te_Height à 128.
Si je bouge mon Text en y=130, il devrait être verticalement centré, non ?

Dans le test suivant, j'essaye de centrer verticalement un texte de 128 (selon TextExtent()) dans une fenêtre de 132 pixels de haut (selon window->Height et SysMon)

J'utilise une simple police (Topaz) avec un ta_YSize ) 128 mais le même soucis de centrage se produit pour toutes les polices que j'ai essayées.
La hauteur du texte est retourné le textDimension.te_Height de la structure texteDimension suivante  :

struct TextExtent texteDimension ;
TextExtent(window->RPort,bufferHeure, strlen(bufferHeure),&texteDimension);

Donc, si TextExtent() te_Height n'est pas vraiment la hauteur en pixels du texte affiché dans un RastPort, connaissez-vous un moyen de la déterminer, cette hauteur ?

Merci par avance, 
Guillaume




également posté sur OS4Coding 



Message édité par : zzd10h / 27-12-2015 16:40
artblink artblinkicon_post
Dis moi pas que sur une fenêtre de 136 de haut, c'est centré????

T'as essayé?

;-)
zzd10h zzd10hicon_post
artblink artblinkicon_post
Si j'ai bien pigé :

T'as une police de 128 pixels de haut (en théorie)

Que tu veux afficher dans une fenêtre de 132 pixels de haut, mais t'arrive pas a centrer. Porker?!

Quand je regarde le résultats à l'écran, je me dis, mais ou sont passé les 4 pixels du bas!!! (pour le j,g,q par exemple)

Donc, c'est pas une fenêtre de 132 pixels de haut que tu dois ouvrir, mais une fenêtre de 136 pixels



sinon, tu transforme t'a fenêtre en sprite et tu fais en sorte d'afficher de Y+64 a Y-64 avec Y=64-Nbrepixelsvideduhaut
Message édité par : artblink / 27-12-2015 20:50
zzd10h zzd10hicon_post
En effet, merci, c'est bien à cause des "j,g,q"

Thomas Rapp (quelle précieuse aide ce Thomas !), m'a indiqué comment tenir compte de la Baseline d'une police;

Bon, ça marche pour Topaz.font mais pas pour les autres...

artblink artblinkicon_post
Comme quoi ça me sert toujours mes histoires de matrice des caractères pour créer des sprites sous basics locomotive ;-)

Je transformais la police du cpc pour faire mes sprite et mes tiles lol

Je pouvais coder en assembleur ZX80, mais vu que déjà le C me rebute, alors imagine l'assembleur ;-)

Je préférais le Basic :-p
sinisrus sinisrusicon_post
Juste au cas ou. Tu peux pas mettre un spacing ou vspace  en haut et en bas?
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
zzd10h zzd10hicon_post
@Sinisrus

En fait le pb est que je ne sais pas quelle police a besoin d'espace en plus ou pas.
Pour l'instant, je laisse tomber ce "projet"

@Artblink

Ouaip !
sinisrus sinisrusicon_post
Pour le coups je te dirais bien de faire ça en Hollywood tu te prendrais moins la tête :-)
Mais bon tu as fais ton choix ;-)
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
zzd10h zzd10hicon_post
Je ne vois pas en quoi Hollywood serait mieux.
Comment centrer verticalement une police en n'utilisant que les caractères numériques ?

OK avec Nimbus mais KO avec Topaz.
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme