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

Langage Delphi Discussion :

Personaliser un Font


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut Personaliser un Font
    Bonjour, Je voudrais, sur un Tpanel, mettre le font r_ansi en size 8 mais avec la même hauteur qu'en size 14. C'est à dire un font un peu étiré en hauteur.

    C'est possible ça?

    Merci.

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

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,


    Il existe 2 propriété pour changer la taille d'un Font


    SIZE

    Indique la hauteur de la fonte,exprimée en points.

    Syntaxe Delphi :

    propertySize:Integer;

    Syntaxe C++:

    __ property intSize ={read=GetSize,write=SetSize,stored=false,nodefault};

    Description

    Utilisez la propriétéSize pour spécifier la hauteur de la fonte en points.Si la valeur est négative,le talus interne,apparaissant au-dessus de chaque ligne de texte est inclus.Si la valeur est positive,Size représente la hauteur des caractères sans le talus interne.

    Pour déterminer la taille de la fonte en pixels,utilisez la propriétéHeight.La valeur de Size peut être déterminée àpartir de la hauteur en pixels en utilisant la formule suivante :

    Font.Size =-Font.Height *72 /Font.PixelsPerInch

    Si une valeur positive est affectée àla propriétéSize,la propriétéHeight de la fonte prend une valeur négative.A l'inverse,si une valeur positive est affectée àla propriétéHeight,la propriétéSize de la fonte devient un nombre négatif.


    ET


    HEIGHT

    Spécifie la hauteur de la fonte.

    Syntaxe Delphi :

    propertyHeight:Integer;

    Syntaxe C++:

    __property intHeight ={read=GetHeight,write=SetHeight,nodefault};

    Description

    Utilisez la propriétéHeight pour spécifier la hauteur de la fonte en pixels.Si la valeur est négative,le talus interne,apparaissant au-dessus de chaque ligne de texte n'est pas mesuré.Si la valeur est positive,Height représente la hauteur des caractères plus le talus interne.

    Pour spécifier la taille de la fonte en points,utilisez la propriétéSize.Les utilisateurs spécifient généralement une taille de fonte en points dans une application,tandis que les programmeurs utilisent généralement la taille réelle d'une fonte en pixels pendant l'affichage d'une fonte àl'écran.

    La valeur de la propriétéHeight est déterminée àpartir de la hauteur en points au moyen de la formule suivante :

    Font.Height =-Font.Size *Font.PixelsPerInch /72

    A l'inverse,si une valeur positive est affectée àla propriétéHeight,la propriétéSize de la fonte devient un nombre négatif.Si une valeur positive est affectée àla propriétéSize,la propriétéHeight de la fonte prend une valeur négative.


    Attention SIZE et HEIGHT ce modifie l'un l'autre (Change Size change height et reciproquement)
    Et certaines fonte de caractères ne support que certaine tailles.

    Dans ce cas vous pouvez essayer de jouer sur PixelsPerInch mais ce n'est pas toujour probant.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Oui, c'est ça mon problème, j'ai essayé avec Height et Size mais chacun modifie l'autre réciproquement.

    Y a pas une autre soluce?

  4. #4
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    748
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 748
    Points : 500
    Points
    500
    Par défaut
    salut , je te donne une procedure que j'utilise , peut etre pourra tu en faire quelque chose , elle permet d'ecrire dans tout les sens et si mes souvenir sont bon tu peu definir la hauteur et la largeur..
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    procedure TfconfigMux.afficheTexteVertival(texte:string;Destination:Tlabel;Size:integer);
    var
      LgFnt : TLogFont;
      Fnt   : TFont;
      st    : string;
      X,Y,H,L:integer;
    begin
      if texte<>'' then
      begin
           st:=Destination.name;
      end;
     
      st:=Destination.name;
     
      Destination.Canvas.Font.Name :=Police;
      Destination.Canvas.Font.style:=[Fsbold];
      Fnt := TFont.Create;
      Fnt.Assign(Destination.Canvas.Font);
     
      GetObject(Fnt.Handle, sizeof(LgFnt), @LgFnt);
      LgFnt.lfEscapement :=900;
      LgFnt.lfQuality := ANTIALIASED_QUALITY;
      LgFnt.lfHeight :=20;
      LgFnt.lfWidth := round(LgFnt.lfHeight / 2.5 );
      LgFnt.lfWeight :=1;
      Fnt.Handle := CreateFontIndirect(LgFnt);
      Destination.Canvas.Font.Assign(Fnt);
      Destination.Canvas.Font.color:=clgray;
     
      H:=Destination.Canvas.TextHeight(texte);
      L:=Destination.Canvas.Textwidth(texte);
     
      X:=(destination.Width-H) div 2 ;
      Y:=(destination.Height-L) div 2 ;
      Y:=destination.Height-Y;
      Fnt.Free;
      Destination.Canvas.TextOut(X,Y,texte);
    LgFnt.lfQuality => const..
    DEFAULT_QUALITY
    DRAFT_QUALITY
    PROOF_QUALITY
    NONANTIALIASED_QUALITY
    ANTIALIASED_QUALITY

    Bye .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    En ce qui concerne le height et le size qui se modifie les un les autres il n'y a rien a fair. C'est le comportement normale.

    Essayer en changant le PixelByInch, cela peux fonctionner. Si cela ne marche pas, essayer de contourner le problème comme le sugère PetitCoucou31.

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 19
    Points : 10
    Points
    10
    Par défaut
    Salut Petitcoucou31,

    En chipotant un peu avec ton code j'y suis arrivé.

    Merci beaucoup.

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

Discussions similaires

  1. Image font d'ecran
    Par jeannot27 dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/01/2004, 11h47
  2. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35
  3. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41
  4. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53
  5. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46

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