IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Affichage de chaine �trange


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �m�rite
    Avatar de Gouyon
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par d�faut Affichage de chaine �trange
    Bonjour � tous

    Dans une application FMX, je dessine du texte sur un Canvas avec la m�thode FillText et j'ai des r�sultats assez �tranges.
    Quand ma chaine de caract�re commence par un chiffre l'affichage est boulevers� exemple:
    ma chaine originale "-10 pas" s'affiche � l'�cran de cette fa�on pas 10-
    Par contre si je met une lettre en d�but de chaine l'affichage est correct
    ma chaine originale "A -10 pas" s'affiche � l'�cran de cette fa�on A -10 pas
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    String chaine="-10 pas";
    float HYtxt0 = Canvas->TextHeight(chaine);
    float LXtxt1 = Canvas->TextWidth(chaine);
    Canvas->BeginScene();
    Canvas->Fill->Color = claBlack;
    Canvas->FillText(TRectF(100, 150, 100 + LXtxt1, 150 + HYtxt0), stYmin,false, 1, TFillTextFlags() << TFillTextFlag::RightToLeft,TTextAlign::Leading);
    Canvas->EndScene();
    Une id�e???

    Oubli� j'utilise RAD studio v10.3.3

  2. #2
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Moi je dois �tre stupide mais, c'est quoi ta variable stYmin ?

    D'apr�s la documentation FMX.Graphics.TCanvas.FillText, le deuxi�me param�tre c'est ta cha�ne de caract�res const System::UnicodeString AText, donc ta variable chaine

  3. #3
    Membre �m�rite
    Avatar de Gouyon
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par d�faut
    Citation Envoy� par foetus Voir le message
    Moi je dois �tre stupide mais, c'est quoi ta variable stYmin ?
    Oups erreur de copi� coll� il faut lire chaine au lieu de stYmin

    Le bon code est:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    String chaine="-10 pas";
    float HYtxt0 = Canvas->TextHeight(chaine);
    float LXtxt1 = Canvas->TextWidth(chaine);
    Canvas->BeginScene();
    Canvas->Fill->Color = claBlack;
    Canvas->FillText(TRectF(100, 150, 100 + LXtxt1, 150 + HYtxt0), chaine,false, 1, TFillTextFlags() << TFillTextFlag::RightToLeft,TTextAlign::Leading);
    Canvas->EndScene();

  4. #4
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Commence par regarder si les tailles fournies/ calcul�es pour les 2 cha�nes de caract�res sont � peu pr�s proportionnellement �quivalentes (avec 1 r�gle de 3, si avec 7 - 10 caract�res j'ai X, alors pour 10 - 7 caract�res j'attends 10X/7 - 7X/10)

    Limite mets 1 taille tr�s grande (pareil pour ton canvas) pour �tre s�r que ta cha�ne soit affich�e en entier et v�rifier qu'elle est effectivement affich�e compl�te ... ou pas

  5. #5
    Membre �m�rite
    Avatar de Gouyon
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par d�faut
    Ce n'est pas un probl�me de taille j'ai d�j� fait ce test. D'autant que tous les caract�res sont bien affich�s quelque soit le contenu de la chaine de caract�re. Ils le sont juste dans un ordre un peu diff�rent en fonction du contenu de la chaine

    Je me pose plus de question sur ce param�tre TFillTextFlags() << TFillTextFlag::RightToLeft qui en plus n'as qu'une valeur possible RightToLeft et qui semble indiquer un sens de la droite vers la gauche ce qui est oppos� au sens d'�criture "traditionel"

  6. #6
    Membre �m�rite
    Avatar de Gouyon
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 138
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 138
    Billets dans le blog
    5
    Par d�faut
    J'ai trouv� la solution sur un autre forum. Le probl�me viens de << TFillTextFlag::RightToLeft . Il faut le supprimer sinon �a �crit � l'envers.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Canvas->FillText(TRectF(100, 150, 100 + LXtxt1, 150 + HYtxt0), stYmin,false, 1, TFillTextFlags(),TTextAlign::Leading);
    La documentation en ligne � ce sujet est tr�s mal �crite

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. format affichage des chaines de caract�res
    Par gorgonite dans le forum Langage
    R�ponses: 3
    Dernier message: 10/05/2007, 22h14
  2. R�ponses: 4
    Dernier message: 30/09/2006, 12h27
  3. affichage du classeur �trange
    Par DonKnacki dans le forum Macros et VBA Excel
    R�ponses: 6
    Dernier message: 28/08/2006, 09h02
  4. Probl�me saisie et affichage de chaine
    Par sam.fet dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 2
    Dernier message: 11/08/2006, 17h18
  5. [probl�me] affichage de chaines
    Par 123quatre dans le forum C
    R�ponses: 12
    Dernier message: 07/01/2006, 20h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo