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 :

Modifier la taille de la Font d'un Canvas


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut Modifier la taille de la Font d'un Canvas
    Bonjour à tous

    J'affiche dans un Panel, un graphique avec un repère et l'échelle. J'utilise donc des TextOut pour afficher les valeurs des graduations. Ce que je voudrais, c'est réduire la taille du texte que j'affiche dans ces TextOut car ils sont trop gros et se chevauche.

    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Par défaut
    Salut,

    tu aurais du mettre ton code pour voir comment tu fais les TextOut.
    Voici ce que tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        TCanvas * cnv = new TCanvas;
        cnv->Handle = GetDC(Panel1->Handle); 
        cnv->Font->Size = 4;    //Taille de 4 points
        cnv->TextOutA(0,0,"graduations");

  3. #3
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Voilà mon code désolé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
       // On se positionne en x
       x = 15;
     
       // On rend la couleur de la brosse tramsparante
       ImageComposantes->Canvas->Brush->Style = bsClear;
     
       // On définit la couleur de la Font
       ImageComposantes->Canvas->Font->Color = clBlack;
     
       ImageComposantes->Canvas->TextOut(x, (y - 7), i);
     
       // On réactive la brosse
       ImageComposantes->Canvas->Brush->Style = bsSolid;
    ImageComposantes est un TImage
    i est géré par une boucle et correspond a la valeur affichée
    y est géré par une boucle et correspond à l'ordonnée.

    J'ai fait un test en affichant le size de ma police pour savoir quelle valeur il avait et je l'ai ensuite réduit mais la taille n'a pas bougé.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Par défaut
    En fait le size de la font d'un canvas est limité à 8, voici un exemple de comment réduire la taille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
        LOGFONT lf;
        memset(&lf,0,sizeof(LOGFONT));
        lf.lfHeight = 6;
    //création d'une font avec taille 6
        HFONT hFont = CreateFontIndirect(&lf);
     
    //sélection de cette font dans le canvas en cours
        SelectObject(ImageComposantes->Canvas->Handle,hFont);
     
    //afficher texte du canvas en noir
        SetTextColor(ImageComposantes->Canvas->Handle,clBlack);
     
    //ton code
       // On se positionne en x
       x = 15;
     
       // On rend la couleur de la brosse tramsparante
       ImageComposantes->Canvas->Brush->Style = bsClear;
    /*
       // On définit la couleur de la Font
       ImageComposantes->Canvas->Font->Color = clBlack;
    */
       ImageComposantes->Canvas->TextOut(x, (y - 7), i);
     
       // On réactive la brosse
       ImageComposantes->Canvas->Brush->Style = bsSolid;
    Attention il ne faut plus que tu agisses sur Canvas->Font directement sinon la sélection de la font créée dans le canvas est remplacé, c'est pour cela que j'ai mis en commentaire "ImageComposantes->Canvas->Font->Color = clBlack;"
    Tout ce que le Canvas te permet de faire tu peux le faire directement avec les API windows.
    Si dans Borland tu fais "F1" sur CreateFontIndirect puis tu cliques sur "Group" tu verra toutes les APIS se rapportant aux FONT.
    A partir de là tu ne seras plus contraint aux limites de la classe TCanvas.

  5. #5
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Si j'ai bien compris, je dois créer une font et l'affecter à mon canvas.

    Je vais tester tout de suite.

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Pour une petite fonte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Canvas->Font->Name = "Small Fonts"; (taille de 2 à 7)
    Consulter la propriété Font depuis l'inspecteur d'objets voir lister les fontes disponibles.

    La taille de la fonte "MS Serif" commence normalement à partir de 6
    Celle de la fonte "Terminal" commence normalement à partir de 5

    Pour modifier le style, comme par exemple mettre en gras :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Canvas->Font->Style = ...Canvas->Font->Style << fsBold;
    Pour retirer le style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...Canvas->Font->Style = ...Canvas->Font->Style >> fsBold;
    A plus !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Par défaut
    Merci pour les infos, la police "Small Fonts" je connaissais pas.

  8. #8
    Membre éclairé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    934
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 934
    Par défaut
    Moi non plus.

    Merci à toi ChicoLau pour ton aide, ca marche nikel

    Merci à toi Henderson car ta solution semble plus simple, et fonctionne également parfaitement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Div contentEditable modifier/retrouver taille fonte
    Par defacta dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/07/2013, 10h54
  2. Réponses: 7
    Dernier message: 23/01/2008, 23h36
  3. [jpanel] Modifier la taille...
    Par scorpiwolf dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 01/07/2004, 17h11
  4. Modifier la taille de la fenêtre DOS
    Par bobgeldof7 dans le forum Scripts/Batch
    Réponses: 8
    Dernier message: 31/01/2004, 03h10
  5. Réponses: 5
    Dernier message: 27/11/2002, 14h08

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