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 :

Espacement des lignes dans un RichEdit


Sujet :

Langage Delphi

  1. #1
    tsp
    tsp est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 54
    Points
    54
    Par défaut Espacement des lignes dans un RichEdit
    Bonjour,

    Peut on modifier l'espacement des lignes dans un RichEdit ? Car je trouve le texte trop écarté lorsque l'on passe à la ligne dans un RichEdit.

    Merci

  2. #2
    Membre actif Avatar de petitprince
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juillet 2006
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juillet 2006
    Messages : 322
    Points : 267
    Points
    267
    Par défaut
    Oui c'est tout à fait possible via cette technique:
    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
    uses
      RichEdit;
     
    procedure RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing: Byte);
    var
      pf2: ParaFormat2;
    begin
      FillChar(pf2, SizeOf(pf2), 0);
      pf2.cbSize := SizeOf(PARAFORMAT2);
      pf2.dwMask := PFM_LINESPACING;
      pf2.bLineSpacingRule := lineSpacing;
      SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
    end;
     
    //Example: Setlinespacing to 1:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      RE_SetLineSpacing(RichEdit1, 1); // il n'y a qu'à changer la valeur ....
    end;
    Voilà!
    Bon coding ...

  3. #3
    tsp
    tsp est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Points : 54
    Points
    54
    Par défaut
    Merci pour ta réponse, je suis allé voir dans ce sens là en effectuant une petite modification mais malheureusement ça ne donne pas l'effet voulu. J'ai pourtant utilisé plusieurs méthodes différentes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    procedure RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing: Byte);
    var
      pf2: ParaFormat2;
    begin
      FillChar(pf2, SizeOf(pf2), 0);
      pf2.cbSize := SizeOf(PARAFORMAT2);
      pf2.dwMask := PFM_LINESPACING;
      pf2.bLineSpacingRule := 4;              // mode de modification de l'interligne
      pf2.dyLineSpacing := lineSpacing;     // permet de modifier l'interligne
      SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
    end;
    D'après la MSDN :

    bLineSpacingRule
    Type of line spacing. To use this member, set the PFM_SPACEAFTER flag in the dwMask member. This member can be one of the following values.
    0
    Single spacing. The dyLineSpacing member is ignored.
    1
    One-and-a-half spacing. The dyLineSpacing member is ignored.
    2
    Double spacing. The dyLineSpacing member is ignored.
    3
    The dyLineSpacing member specifies the spacingfrom one line to the next, in twips. However, if dyLineSpacing specifies a value that is less than single spacing, the control displays single-spaced text.
    4
    The dyLineSpacing member specifies the spacing from one line to the next, in twips. The control uses the exact spacing specified, even if dyLineSpacing specifies a value that is less than single spacing.
    5
    The value of dyLineSpacing / 20 is the spacing, in lines, from one line to the next. Thus, setting dyLineSpacing to 20 produces single-spaced text, 40 is double spaced, 60 is triple spaced, and so on.
    Mais j'ai beau essayer tous les modes (notamment 4 et 5), les lignes se rapprochent ou s'éloignent mais elles se chevauchent et il y a toujours une ligne blanche qui les séparent.

Discussions similaires

  1. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  2. Ajout/Suppression dynamique des lignes dans une table
    Par codexomega dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/08/2005, 18h50
  3. Récuperer le numero de ligne dans un RichEdit
    Par nbutin dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/05/2005, 12h40
  4. [C#] Affichage des lignes dans un tableau.
    Par maldufleur dans le forum ASP.NET
    Réponses: 4
    Dernier message: 21/04/2004, 11h28
  5. Couleur des lignes dans DBGrid
    Par eddie dans le forum C++Builder
    Réponses: 5
    Dernier message: 21/06/2002, 18h15

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