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

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

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

       
 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ThWilliam
saiyajin3 31 Messages postés mercredi 13 avril 2005Date d'inscription 24 juillet 2007 Dernière intervention - 22 juin 2006 à 10:22
0
Utile
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
ThWilliam 424 Messages postés mardi 3 janvier 2006Date d'inscription 26 novembre 2013 Dernière intervention - 22 juin 2006 à 10:55
0
Utile
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.