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 :

Insertion de couleurs dans un TEdit


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 46
    Points
    46
    Par défaut Insertion de couleurs dans un TEdit
    Bonjour,

    est-il possible de transformer tout ou partie d'un texte dans un TEdit
    dans une couleur différente que n'est définie celle du TEdit.

    Ex: Merci

    Merci d'avance.

    BB

  2. #2
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Peux tu nous en dire un peu plus sur ce que tu souhaites faire?
    Dans ton TEdit, le changement de couleur doit se faire automatiquement, par rapport à une position précise, ...

    Eclaire nous

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Salut,

    oui à partir d'une position précise.
    C'est-à-dire que j'ai une base de données de laquelle j'extrais des terminaisons de mots.

    Dans le programme j'ai une variable string de base par exemple en noir
    et je veux ajouter à cette chaîne une chaîne de la base de données en rouge
    par exemple.

    Voilà et merci

    BB

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Points : 915
    Points
    915
    Par défaut
    Avec un TEdit j'en doute,
    parcontre avec un TRichEdit..
    l'idée est de selectionner le bout de texte à changer de couleur.
    voilà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Par defaut, ecrit en noir et normal
        RichEdit1.DefAttributes.Color := RGB(0,0,0);
        RichEdit1.DefAttributes.Style:=[];
        //Ecrit le mot Merci
        RichEdit1.Text:='Merci';
        //Selectionne la 4eme lettre (index 0)
        RichEdit1.selstart:=3;
        //Selectionne 2 lettres de long
        RichEdit1.SelLength:=2;
        //Met en rouge et en gras la selection
        RichEdit1.SelAttributes.Color:=rgb(255,0,0);
        RichEdit1.SelAttributes.Style:=[fsBold];
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Bonsoir,

    Je trouve l'idée d'Eric Boisvert intéressante.
    Aussi, je rajouterai une ligne supplémentaire afin de me trouver à la fin du RichText :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RichEdit1.SelStart:=Length(RichEdit1.Text);
    Ensuite, concernant tes terminaisons de mots, on sait déjà à l'avance la position de départ de sélection de la terminaison?
    Tu recherches à faire comme dans le forum? Mettre en rouge un texte que l'on recherche?

    J'espère que ca t'aidera
    @ +

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut à tous !

    Si cela peut aider, voici une démo de coloration syntaxique avec un RichEdit. Le programme scanne le texte et colorise les mots choisis :
    http://sub0.developpez.com/delphi/syntax.zip
    De retour parmis vous après 10 ans!!

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Merci à vous,

    en fait j'essaye de représenter un tableau de valeurs avec certaines d'entre elles en couleur.
    En gros la page ressemble un peu à celle qu'on aurait en tapant un verbe dans http://www.leconjugueur.com/.

    Mais il y a peut-être mieux que les TrichEdit à partir du moment où c'est un tableau; je sais pas trop quel est le meilleur moyen en fait.(TStringrid?)

    Merci

    BB

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Le plus important dans tout ça (selon moi) n'est pas trop quel conteneur du va choisir (StringGrid, DrawGrid ou RichEdit) mais plutôt comment tu vas faire pour détecter les mots ou lettres à colorer et comment tu vas les stocker dans ton programme (constantes ou fichiers) - Le principe de détection reste le même dans tous les cas, mais il est vrai que ce sera plus rapide avec un tableau car tu n'as pas à parcourir tout le texte du début à chaque détection, mais uniquement le texte contenu dans la cellule à dessiner. Je te conseille donc l'utilisation d'un StringGrid :

    Avec l'évènement OnDrawCell du StringGrid, tu peux décider de ce que tu veux dessiner dans chaque cellule. Il faut d'abord mettre la propriété DefaulDrawing à False et double cliquer sur OnDrawCell pour créer automatiquement la procédure correspondante dans ton code. Dans cette procédure, tu affiches le texte de chaque cellule via le Canvas de la grille, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Procedure TForm1.StringGrid1DrawCell(Sender: TObject;
      ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
    Begin
       StringGrid1.Canvas.Brush.Color := clRed;
       StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
    End;
    De retour parmis vous après 10 ans!!

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Merci les amis,

    finalement comme mon application n'était pas répétive, j'ai opté pour le TRichEdit car en fait une partie de la chaîne de caractère devait changer
    de couleur et non toute celle-ci (si je t'ai bien compris Sub0).

    Merci

    BB

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

Discussions similaires

  1. Faire clignoter une couleur dans Tedit
    Par redoran dans le forum Composants VCL
    Réponses: 11
    Dernier message: 07/09/2010, 15h59
  2. Plusieurs couleurs de police dans un TEdit?
    Par bryce426 dans le forum Débuter
    Réponses: 3
    Dernier message: 18/02/2010, 17h47
  3. modifier la couleur des caracteres dans un Tedit
    Par sky88 dans le forum Débuter
    Réponses: 3
    Dernier message: 04/12/2008, 09h37
  4. Insertion de Couleur dans Perlform
    Par badgod dans le forum Langage
    Réponses: 1
    Dernier message: 22/12/2007, 20h47
  5. Couleur dans DBgrid a l'insertion
    Par mamou30 dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/05/2007, 00h14

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