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 :

colorier ligne dans un TRichEdit


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut colorier ligne dans un TRichEdit
    appramment en faisant dans richedit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SelStart := Perform(EM_LINEINDEX, 3, 0);
        Perform(EM_SCROLLCARET, 0, 0);
    je selectionne laa ligne 3 mais comment la mettre en rouge?
    [Balises CODE rajoutées par Pedro. Merci d'y penser à l'avenir.]

  2. #2
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      RichEdit1.SelAttributes.Color := clRed;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    oui mais sa ne marche pas quand je tape juste avant Richedit1.SelAttributes.Color := clRed;

  4. #4
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      with RichEdit1 do begin
        SelStart := Length(Lines[0]) + 2 + Length(Lines[1]) + 2;
        SelLength := Length(Lines[2]) + 2;
        SelAttributes.Color := clRed;
      end;
    +2 à cause des caractères de fin de ligne (CR LF ou #10#13)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    sa a l'aire de marcher.
    Que dois-je remplacer si je veux colorier la ligne X?

  6. #6
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    J'avais poster une solution ici il y a quelque temps (suis le lien)
    http://www.developpez.net/forums/vie...ight=trichedit

    (regardes dans mes deux posts)

    Bon dev

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 50
    Par défaut
    un appareil envoie 10 mesures au PC qui les ecrit dans richedit.En fait en appuyant sur UN bouton mon programme lie les valeurs de lappareil puis les ecrit dans richedit pui je voudrait qu'il en mette une en rouge (en sachant qu'audepart la valeur est

  8. #8
    Membre Expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Par défaut
    Avec le lien que je t'ai donné tu n'as pas trouvé ton bonheur : : :
    tu n'as pas du tout lire alors...

    Sinon, la valeur au départ est quoi ???

    Bon, alors dans ton unité tu places ça quelque part :
    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
    procedure Surligne(const RE: TRichEdit; const Color: TColor);
    var
      Format : CHARFORMAT2;
    begin
      FillChar(Format, SizeOf(CHARFORMAT2), 0);
      Format.cbSize := SizeOf(CHARFORMAT2);
     
      SendMessage(RE.Handle, EM_GETCHARFORMAT, WPARAM(True), LPARAM(@Format));
     
      Format.dwMask := CFM_BACKCOLOR;
      Format.crBackColor := ColorToRGB(Color);
      Format.dwEffects := 0; // CFE_AUTOBACKCOLOR
     
      SendMessage(RE.Handle, EM_SETCHARFORMAT, SCF_SELECTION, LPARAM(@Format))
    end;
     
     
    procedure SurligneUneLigne(const RE: TRichEdit; const Color: TColor;NumeroDeLigne:integer);
    begin
      RE.SelStart:=RE.Perform(EM_LINEINDEX, NumeroDeLigne, 0);
      RE.SelLength:=RE.Perform(EM_LINELENGTH, RE.SelStart, 0);
      Surligne(RE,Color);
    end;
    Et ça, c'est le code de ton bouton
    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
    procedure TForm1.Button1Click(Sender: TObject);
    var s:string;
         i:integer;
    begin
      //on efface le richedit
      richedit1.clear;
     
      for i:=0 to 9 do //10 mesures
      begin
         //lecture des mesures
         s:=liremesure(i);  //<--là c'est toi qui sait faire
     
         //écrire dans le richedit 
        richedit1.lines.add(s);
      end;
     
      //surligne
      SurligneUneLigne(RichEdit1, clMoneyGreen,2);
    end;

Discussions similaires

  1. Marquer des lignes dans un TRichEdit
    Par Speed41 dans le forum Débuter
    Réponses: 3
    Dernier message: 06/04/2011, 17h33
  2. colorier une ligne dans un DBgrid
    Par looping dans le forum Langage
    Réponses: 1
    Dernier message: 12/12/2008, 08h22
  3. Colorier une ligne dans un StringGrid et cacher une colonne
    Par Siguillaume dans le forum Langage
    Réponses: 8
    Dernier message: 02/07/2008, 20h24
  4. [VBA-E] Colorier une ligne dans une feuille excel
    Par skyst3f dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/10/2006, 11h42
  5. Réponses: 3
    Dernier message: 04/10/2006, 15h15

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