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

 Delphi Discussion :

Connaître les données en gras d'un TRichEdit


Sujet :

Delphi

  1. #1
    Membre actif Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Points : 210
    Points
    210
    Par défaut Connaître les données en gras d'un TRichEdit
    Bonjour,

    Je voudrais mettre en évidence le texte en gras d'un TRichEdit
    et j'ai écris ce petit code et ça marche mal. Pas très doué j'aimerais votre aide car j'use le soleil depuis ce matin

    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
    procedure TModuloCle.Applique_formatClick(Sender: TObject);
    var n, t, w : integer;
        reponse : string;
        gras : boolean;
    begin
      w:=-1;
      reponse:='';
      for n:=0 to memo1.Lines.Count-1 do
          begin
            gras:=false;
            for t:=1 to length(memo1.Lines[n])-1 do
                begin
                  inc(w);
                  memo1.SelStart:=w;
                  memo1.SelLength:=1;
                 if fsbold in memo1.SelAttributes.style then
                     begin
                       if not(gras) then
                          begin
                            reponse:=reponse+'#G#';// le texte sera en gras
                            gras:=true;
                          end;
                     end else
                     begin
                       if gras then
                          begin
                            reponse:=reponse+'#PG#';// le texte n'est plus en gras
                            gras:=false;
                          end;
                     end;
                  reponse:=reponse+memo1.seltext;
                end;
              memo2.lines.add(reponse);
              memo1.Lines[n]:=reponse;
              reponse:='';
          end;
    end;
    Les lignes se décalent ...

    Par avance merci

  2. #2
    Membre actif Avatar de Speed41
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    718
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 718
    Points : 210
    Points
    210
    Par défaut
    Bonjour

    Je viens de trouver ça et ça marche
    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
    procedure TModuloCle.Applique_formatClick(Sender: TObject);
    var n, t : integer;
        reponse : string;
        gras : boolean;
    begin
      w:=-1;
      for n:=0 to memo1.Lines.Count-1 do
          begin
            gras:=false;
            for t:=1 to length(memo1.Lines[n]) do
                begin
                  memo1.SelStart := Perform(EM_LINEINDEX, n, 0) + t;
                  memo1.SelLength:=1;
                  if fsbold in memo1.SelAttributes.style then
                     begin
                       if not(gras) then
                          begin
                            reponse:=reponse+'#G#';
                            gras:=true;
                          end;
                     end else
                     begin
                       if gras then
                          begin
                            reponse:=reponse+'#PG#';
                            gras:=false;
                          end;
                     end;
                  reponse:=reponse+copy(memo1.lines[n],t,1);
                end;
              memo1.Lines[n]:=reponse;
              reponse:='';
          end;
    end;
    Faut encore y travailler mais ça vient

    Si quelqu'un à une autre solution je suis preneur

    a+

  3. #3
    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
    Salut

    Pour mettre en gras facilement, tu sélectionnes le texte que tu veux a l'aide des propriétés SelStart et SelLength, puis tu changes SelAttributes.Style a fsBold ...

    Je ne sais pas trop ce que fais ton code par contre ... Donc je sais pas si c'est que tu cherches ....

    Bonne chance

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

Discussions similaires

  1. [9.1] Connaître les droits d'un utilisateur sur une base de données
    Par stc074 dans le forum Administration
    Réponses: 3
    Dernier message: 03/03/2014, 20h12
  2. Réponses: 13
    Dernier message: 14/10/2003, 14h31
  3. Réponses: 4
    Dernier message: 18/08/2003, 09h53
  4. trier les données dans le cache ??
    Par psyco2604 dans le forum XSL/XSLT/XPATH
    Réponses: 31
    Dernier message: 10/06/2003, 10h03
  5. Réponses: 5
    Dernier message: 06/03/2003, 13h27

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