Un Mot d'une ligne en gras!!!!

[Résolu]
Signaler
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007
-
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
-
Au secours, ça fait deux jours que je pète un câble...



Je fais un logiciel de comparaison ligne par ligne de 2 fichiers,  qui doit mettre en gras les différences trouvées!

J'aimerais mettre une STRING en gras pour ensuite l'insérer dans une ligne que j'afficherai. Voici un morceau de mon code:

  var
    i: integer ;
    j: integer ;
    k: integer ;



  begin



    j:= 1;
    k:=1;

    while (j<=Length(text1)) and (k<=Length(text2)) do
    begin

    if Text2[k] <> Text1[j] then // Si les caractères sont différents
    begin
      // je voudrais mettre  le caractère Text2[k] en gras ici !!!!!
    end;
    inc(j);
    inc(k);
    end;



    i : = CodeEdit.Lines.Add(Text1) ; // J'ajoute ma ligne.
A voir également:

3 réponses

Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Salut,

Voici une méthode, je te donne le principe :
après avoir ajouté la ligne dans ton RichEdit, il faut faire une sélection du caractère différent puis mettre en gras et en rouge cette sélection. Pour sélectionner, tu emploies la propriété SelStart (position du 1° caractère sélectionné) et SelLength(nb de caractères contigus sélectionnés).
Puis : SelAttributes.Style:=[fsBold];
         SelAttributes.Color:= clred;
Ton problème est donc de mémoriser , dans ton string que tu compares, l'emplacement des caractères modifiés. Tu peux le faire p.ex. dans un tableau dynamique d'integer.
Avant d'ajouter ton string dans le richedit, tu calcules le point de départ de la nouvelle ligne :
une solution :  Depart:= Length(RichEdit1.Text);
Puis : SelStart = Depart +  PositionCarModifie - 1;
         SelLength:= 1;
         SelAttributes...
...
Désolé de ne pas être plus précis, mais je n'ai plus le temps pour le moment.
A +
Thierry

       
 
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Statut
Membre
Dernière intervention
24 juillet 2007

Merci Thierry,

Ta solution est en fait l'action réalisée lorsque on clique sur un bouton de type "Bold" pour mettre un texte sélectionné en gras.

Rassure-toi, tu as bien été assez précis!

merci encore
Messages postés
418
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
3
Salut,

Heureux d'avoir pu t'aider.
La comparaison caractère par caractère entre deux fichiers est assez complexe à réaliser.
Pas de problèmes si on a simplement remplacé un caractère par un autre.
Mais si on a inséré (ou supprimé) un caractère, tu vas avoir tout le reste de la ligne en gras, puisque la position des caractères a changé !
Et je ne parle pas de l'insertion d'une ligne !
Tu as du boulot...

A +
Thierry