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

Résolu
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007 - 21 juin 2006 à 10:50
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 - 22 juin 2006 à 10:55
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

ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
21 juin 2006 à 14:18
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

       
 
3
saiyajin3 Messages postés 31 Date d'inscription mercredi 13 avril 2005 Statut Membre Dernière intervention 24 juillet 2007
22 juin 2006 à 10:22
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
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
22 juin 2006 à 10:55
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
0
Rejoignez-nous