Un Mot d'une ligne en gras!!!! [Résolu]

Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Dernière intervention
24 juillet 2007
- - Dernière réponse : ThWilliam
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
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.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
1
3
Merci
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

       
 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ThWilliam
Messages postés
31
Date d'inscription
mercredi 13 avril 2005
Dernière intervention
24 juillet 2007
0
Merci
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
Commenter la réponse de saiyajin3
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Dernière intervention
26 novembre 2013
1
0
Merci
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
Commenter la réponse de ThWilliam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.