Modifier la couleur de fond du texte sélectionné dans un richedit

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 180 fois - Téléchargée 38 fois

Contenu du snippet

Modifier la couleur de fond du texte sélectionné dans un RichEdit

Source / Exemple :


uses RichEdit;

// Met la couleur clYellow sur le fond du texte sélectionné

RE_SetSelBgColor(MyRichEdit, clYellow);

// Résupère la couleur clYellow sur le fond du texte sélectionné

myColor := RE_GetSelBgColor(MyRichEdit, clYellow);

procedure TFrmChild.RE_SetSelBgColor(RichEdit: TRichEdit; AColor: TColor);
var
  Format: CHARFORMAT2;
begin
  FillChar(Format, SizeOf(Format), 0);
  with Format do
  begin
    cbSize := SizeOf(Format);
    dwMask := CFM_BACKCOLOR;
    crBackColor := AColor;
    Richedit.Perform(EM_SETCHARFORMAT, SCF_SELECTION, Longint(@Format));
  end;
end;

function TFrmChild.RE_GetSelBgColor(RichEdit: TRichEdit): TColor;
var
  Format: CHARFORMAT2;
begin
  FillChar(Format, SizeOf(Format), 0);
  with Format do
  begin
    cbSize := SizeOf(Format);
    dwMask := CFM_BACKCOLOR;
    Richedit.Perform(EM_GETCHARFORMAT, SCF_SELECTION, Longint(@Format));
    result := Format.crBackColor;
  end;
end;

A voir également

Ajouter un commentaire Commentaire
Messages postés
3
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
14 octobre 2006

Bonjour,
_J'ai une petite question:
Peut-on changer la couleur de fond du TRichEdit partie par partie sans avoir a sélectionner un texte?
_Dans ton code:
myColor := RE_GetSelBgColor(MyRichEdit, clYellow);
devrais être remplacé par:
myColor := RE_GetSelBgColor(MyRichEdit);

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.