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

Composants VCL Delphi Discussion :

Problème de richedit


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 20
    Par défaut Problème de richedit
    Bonsoir,

    Je souhaite copier le style d'un richedit à un autre quand je selectionne du texte. Ce code fonctionne bien mais le probleme c'est que le richedit2 garde toujours le style de richedit1 meme aprés la sélection. Par exemple je selectionne un mot et je décide de le souligner, le mot du rich edit 2 est souligné aussi mais aprés je continue à écrire normalement (sans style) dans le richedit1 mais le richedit2 écrit toujours en souligné. COmment faire pour annuler la recopie de style une fois que l'on a fini la sélection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TForm1.RichEdit1Change(Sender: TObject);
    begin
    RichEdit2.Text := RichEdit1.Text;
    RichEdit2.SelStart := RichEdit1.SelStart;
    RichEdit2.SelLength := RichEdit1.SelLength;
    RichEdit2.SelAttributes.Style := RichEdit1.SelAttributes.Style;
     
     
     
    end;
    Merci

  2. #2
    Membre chevronné
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Par défaut Style
    Bonjour.

    A part réatribuer le style précédent, je ne vois pas.

    Quelque chose comme ça.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    Var
        StyleTemp : TTextAttributes;
     
     
    begin
     
        StyleTemp := TTextAttributes.Create;
        procedure TForm1.RichEdit1Change(Sender: TObject);
        RichEdit2.Text := RichEdit1.Text;
        RichEdit2.SelStart := RichEdit1.SelStart;
        RichEdit2.SelLength := RichEdit1.SelLength;
        StyleTemp.Assign(RichEdit2.SelAttributes); 
        RichEdit2.SelAttributes.Style := RichEdit1.SelAttributes.Style;
    .
    .
    .
    .
    .
    .
    .
    RichEdit2.SelAttributes.Assign(StyleTemp);
    StyleTemp.Free;

    Je pense que c'est dans cette voie qu'il faut chercher. Voir l'aide de DELPHI.


  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 20
    Par défaut
    J'ai une erreur de compilation à la ligne

    StyleTemp := TTextAttributes.Create;
    Que dois-je mettre dans la parenthèse aprés le Create?

    Merci

  4. #4
    Membre chevronné
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Par défaut
    Autant pour moi !

    Voici l'aide de Delphi sur le sujet. Désolé, je n'ai pas le temps ce soir.

    Aide DELPHI.
    Crée une instance de TTextAttributes.
    type TAttributeType = (atSelected, atDefaultText);
    constructor Create(AOwner: TCustomRichEdit; AttributeType: TAttributeType);

    Description
    N'appelez pas le constructeur de TTextAttributes. Les objets TTextAttributes sont créés à partir du constructeur du contrôle éditeur de texte formaté. Ce contrôle utilise un objet ayant le type d'attribut atDefaultText pour implémenter sa propriété DefAttributes et un autre objet ayant le type d'attribut atSelected pour implémenter sa propriété SelAttributes.

    Si j'ai le temps demain, j'aprofondirais.

    en attendant, consultes l'aides et les exemples.

    A+

  5. #5
    Membre chevronné
    Avatar de Philippe Gormand
    Inscrit en
    Mars 2002
    Messages
    330
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 330
    Par défaut Style
    Patiennce et longueur de temps font plus que force ni que rage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Var
       Style : TfFontStyles;
     
    procedure TForm1.RichEdit1Change(Sender: TObject);
    begin
    RichEdit2.Text := RichEdit1.Text;
    RichEdit2.SelStart := RichEdit1.SelStart;
    RichEdit2.SelLength := RichEdit1.SelLength;
    Style := RichEdit2.SelAttributes.Style; 
    RichEdit2.SelAttributes.Style := RichEdit1.SelAttributes.Style;
    .
    .
    .
    .
    .
    .
    RichEdit2.SelAttributes.Style := Style;
    Pas de problème de compilation. En espérent que cela peut
    résoudre ton problème.

  6. #6
    Membre averti
    Inscrit en
    Février 2006
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 20
    Par défaut
    Tout d'abord, je souhaite vous remercier de prendre du temps pour répondre à mon problème.

    Je souhaiterais savoir à quel moment je dois insérer
    RichEdit2.SelAttributes.Style := Style;
    dans mon code. J'ai essayé de le mettre dans la procedure TForm1.RichEdit1Change(Sender: TObject); mais les deux instructions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     RichEdit2.SelAttributes.Style := RichEdit1.SelAttributes.Style;
    RichEdit2.SelAttributes.Style := Style;
    end;
    se suivent et il ne prend que la première. Le style de RichEdit est toujours celui selectionné (par exemple souligné) . Comme avec l'ancien programme, celui de RichEdit1 redevient normal. En fait je selectionne du texte dans le richEdit1 puis j'ai un bouton souligné , je clique de dessus, il me souligne RicheEdit 1 et aussi RichEdit 2 ( c normal jusque là) mais aprés je clique pour continuer d'ecrire dans richedit 1 , la police est normale dans le 1 mais reste souligné dans le 2.

Discussions similaires

  1. [RichEdit] Problème de focus sur outils
    Par darkendorf dans le forum Débuter
    Réponses: 3
    Dernier message: 18/02/2010, 15h02
  2. Problèmes avec Richedit
    Par sys1 dans le forum Débuter
    Réponses: 3
    Dernier message: 03/02/2008, 19h33
  3. problème avec Richedit
    Par stanfordia dans le forum Visual C++
    Réponses: 3
    Dernier message: 29/03/2007, 12h34
  4. [MFC] Problème avec un RichEdit et couleur
    Par Erakis dans le forum MFC
    Réponses: 1
    Dernier message: 24/03/2005, 14h12
  5. problème de police dans un richedit
    Par chtiot dans le forum Composants VCL
    Réponses: 4
    Dernier message: 28/10/2003, 09h48

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