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

Composants VCL Delphi Discussion :

[TrichEdit] espacer les lignes


Sujet :

Composants VCL Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut [TrichEdit] espacer les lignes
    salut

    j'utilise un TRichEditWB mais je suppose que c'est pareil que le TrichEdit; je cherche un moyen d'espacer les lignes

    j'ai regardé dans les propriétés du composant, mais je ne trouve pas

    il y a bien borderwidth pour une marge à gauche, mais rien pour espacer les lignes


    exemple :

    ceci est la 1ère phrase
    et là, la 2ème


    il faudrait que ça donne :

    ceci est la 1ère phrase

    et là, la 2ème


    bon là, j'ai juste sauté une ligne, mais ce n'est pas ce que je cherche, j'aimerais vraiment définir moi même l'espace et ce ne sera pas applicable à toutes les lignes c'est pourquoi il faut le faire par le code

    merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    A ma connaissance, cette option n'existe pas dans TRichEdit.

    Pour l'obtenir, il faut utiliser des composants développés pas des tiers du type TRichViewEdit. Mais, ils sont généralement payants.

    Adresse http://www.trichview.com

    Il doit exister d'autres pistes à rechercher.

    @+

  3. #3
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Pourquoi ne pas tout simplement insérer une ou plusieurs lignes vides #13#10 ou un simple espace ' ' entre les lignes de texte concernées? Par exemple si ma phrase se termine par un point alors j'ajoute ma ou mes lignes vides sinon je n'en ajoute aucune.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Gilbert Geyer Voir le message
    Bonjour,

    Pourquoi ne pas tout simplement insérer une ou plusieurs lignes vides #13#10 ou un simple espace ' ' entre les lignes de texte concernées? Par exemple si ma phrase se termine par un point alors j'ajoute ma ou mes lignes vides sinon je n'en ajoute aucune.

    A+.
    bin le problème c'est que la ligne vide j'ai déjà essayé et ça fait un trop grand espace ! en plus certaine lignes comporteront des images et donc selon l'image l'espace sera différent

    je trouve dommage qu'il n'y ait pas de propriété "aussi simple" dans un composant aussi complet

    bin oui ... espacer les lignes, ils en ont jamais pensé ?

    j'aimerais que tout le texte soit bien présenté, ça fait tout moche de voir des lignes avec de grand espace (taille de l'image) et des lignes avec peu d'espace

    une autre solution peut être ?

  5. #5
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113

  6. #6
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Sinon, toujours dans la même idée :

    Citation Envoyé par Gilbert Geyer
    Pourquoi ne pas tout simplement insérer une ou plusieurs lignes vides #13#10 ou un simple espace ' ' entre les lignes de texte concernées? Par exemple si ma phrase se termine par un point alors j'ajoute ma ou mes lignes vides sinon je n'en ajoute aucune.
    Il te suffit de modifier la taille de la police pour les lignes. Ainsi, tu auras des petites lignes, qui ressembleront a des interlignes. C'es quand même du bricolage, mais tu peux t'en sortir ...

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par BuzzLeclaire Voir le message
    merci pour tes liens, j'ai trouvé presque mon bonheur sur le premier : le hic c'est qu'une fois le code d'augmentation de l'espace exécuté, le résultat prend effet 2 lignes après

    ex :

    fsfsfsfsdfsdf
    fsdfsdfsfsdfsdf (j'exécute le code là par exemple)
    fsdfsdfsdfsdfsdf (cette ligne là est censé avoir un espace)

    dqsdsfsdfsdfsdf

    fsdfsdfsdfsdff

    fsfsfsfsfsfsdf

    si j'ajoute une ligne vide, l'écart est plus grand

    mick605 on ne peut pas avoir des lignes avec des polices différentes, ça le fera pas

  8. #8
    Membre éclairé Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Points : 790
    Points
    790
    Par défaut
    Citation Envoyé par Coussati Voir le message
    mick605 on ne peut pas avoir des lignes avec des polices différentes, ça le fera pas
    Première nouvelle

    Tu peut changer la fonte, la couleur, etc y compris plusieurs fois sur la même ligne.
    Essaye ceci:
    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
    const
      Police1='Times new Roman';
      Police2='Comic sans MS';
      Police3='Tahoma';
      TailleInterligne=3;
    begin
      with RichEdit1 do
      begin
        Clear;
        SelAttributes.Name:=Police1;
        SelAttributes.Size:=10;
        SelAttributes.Color:=clRed;
        SelText:= 'Texte en ' + Police1 + ' rouge';
        SelAttributes.Color:=clYellow;
        SelAttributes.Name:=Police2;
        SelText:= 'Texte en ' + Police2 + ' jaune';
     
        SelAttributes.Size:=TailleInterligne;
        SelText:=#13#10' '#13#10;
     
        SelAttributes.Name:=Police3;
        SelAttributes.Size:=10;
        SelAttributes.Color:=clGreen;
        SelText:= 'Texte en ' + Police3 + ' vert';
      end;
    end;
    À +
    Pat.


    Si vous avez trouvé chaussure à votre pied... euh solution à votre problème, n'oubliez pas de clôturer le sujet en le marquant comme:
    ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
    Windows 8.1, Lazarus 1.8.2 SVN 57369 FPC 3.0.4 x86_64-win64-win32/win64

  9. #9
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    je ne dis pas que c'est infaisable, je dis que ça ira pas pour mon projet : les lignes doivent avoir la même police, et le même style

  10. #10
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re-Bonjour,

    PFM_LINESPACING ne marche pas chez moi, par contre on peut faire varier l'espace avant un ou des paragraphe(s) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    procedure EspaceYAvantParagraphe(RE : tRichEdit; Espace : single); //Espace en cm
    var       pf2: ParaFormat2;
    begin     FillChar(pf2, SizeOf(pf2), 0);
              pf2.cbSize := SizeOf(PARAFORMAT2);
              pf2.dwMask := PFM_SPACEBEFORE; // pf2.dwMask :=PFM_LINESPACING; lineSpacing ne marche pas chez moi
              pf2.dySpaceBefore:=round(Espace/2.54*1440);
              SendMessage(RE.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
    end;
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TForm1.Button1Click(Sender: TObject);
    var	  i : integer;
    begin      RichEdit1.clear;
               for i:=0 to 10 do begin
                  if (i>3) and (i<=6) then EspaceYAvantParagraphe(RichEdit1,1.5) //Espace en cm
                                      else EspaceYAvantParagraphe(RichEdit1,0);
                  RichEdit1.lines.add('Tagada-Truc-Muche');
               end;
    end;
    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  11. #11
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    super ! ça l'air de bien fonctionner !

    merci encore à toi

  12. #12
    Nouveau membre du Club
    Homme Profil pro
    Archi
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Archi
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    je deterre le post car je dois faire la même chose dans un TDBRichedit


    J'ai du texte word enregistré dans une base acces que l'utilisateur modifie via le TDBRichedit , texte word qui comprend des interlignes différents.


    Mais juste un soucis dans l'exemple ci dessus :

    dans la déclaration de la variable :
    var pf2: ParaFormat2;

    ma version delphi XE2 ne reconnait pas le format 'ParaFormat2' dans le TDBRichedit

    Ce format et valable uniquement pour le TRichedit ?

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Un recherche google aurait vite donné la réponse PARAFORMAT2 structure (richedit.h) soit en Delphi l'unité "Winapi.RichEdit.pas"
    Pensez aussi à la recherche dans les souces "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source"

    Code search : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\rtl\win\Winapi.RichEdit.pas [4]
      C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\rtl\win\Winapi.RichEdit.pas(948):   PARAFORMAT2 = record
      C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\rtl\win\Winapi.RichEdit.pas(975):   TParaFormat2 = PARAFORMAT2;
      C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\rtl\win\Winapi.RichEdit.pas(975):   TParaFormat2 = PARAFORMAT2;
      C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\rtl\win\Winapi.RichEdit.pas(976):   {$EXTERNALSYM PARAFORMAT2}
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Archi
    Inscrit en
    Décembre 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Archi
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 38
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    Merci pour le retour.
    N'etant pas développeur pro, je ne vois pas toujours comment orienter mes recherches
    je planche la dessus entre les fêtes . . .

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

Discussions similaires

  1. Espacer les lignes d'un tableau
    Par DJPi dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 29/07/2010, 16h03
  2. Espacement entre les lignes ?
    Par Slumpy dans le forum Mise en forme
    Réponses: 4
    Dernier message: 19/11/2006, 02h04
  3. Réponses: 3
    Dernier message: 19/07/2006, 10h53
  4. [TRichEdit] Comment numéroter les lignes ?
    Par ARDILLER dans le forum Composants VCL
    Réponses: 1
    Dernier message: 27/03/2006, 15h43
  5. Espacement entre les ligne d'un tableau
    Par Flobel dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 02/11/2004, 09h33

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