Mettre la derniere ligne en gras d un riche edit

-
Bonjour, les amis j ai un probleme dans ce fraguement de code:
procedure MAKEBOLD(ARichEdit: TRichEdit; ARow: Integer; Afsstyle: TfontStyles);
begin
with ARichEdit do
begin
SelStart := SendMessage(Handle, EM_LINEINDEX, ARow - 1, 0);
SelLength := Length(Lines[ARow - 1]);
SelAttributes.Style := Afsstyle;
SelLength := 0;
end;
end;
// la procedure me sert a ecrire la derniere ligne de mon rich edit en gras
la procedure fonctionne bien mais a l execution quand j essai de changer la police du richedit avec la procedure suivante;
 procedure TForm1.Button3Click(Sender: TObject);
begin
if fontdialog1.Execute then
richedit1.Font:=fontdialog1.Font;
end;
ne fonctionne plus une fois la procedure MAKEBOLD est executé .
quelqu un a une idee??
Afficher la suite 

Votre réponse

3 réponses

Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Salut,

Il faut tout sélectionner dans le RichEdit, et bien sûr ne pas utiliser l'attribut de style afin de ne pas modifier la ligne précédemment mise en "bold" :

procedure TForm1.Button3Click(Sender: TObject);
begin
  if FontDialog1.Execute then
  begin
    with RichEdit1 do
    begin
      SelectAll;
      SelAttributes.Name := FontDialog1.Font.Name;
      SelAttributes.Size := FontDialog1.Font.Size;
    end
  end;
end; 
Commenter la réponse de korgis
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Salut,

Tsf, mais ta procedure Makebold est bizarre, soit tu modifies les "styles", genre :

procedure SetFontStyles(ARichEdit: TRichEdit; ARow: Integer; FontStyles: TFontStyles);
begin
  with ARichEdit do
  begin
    SelStart := SendMessage(Handle, EM_LINEINDEX, ARow - 1, 0);
    SelLength := Length(Lines[ARow - 1]);
    SelAttributes.Style := FontStyles;
    SelLength := 0;
  end;
end;


sinon pour mettre uniquement en "bold" :

procedure MakeBold(ARichEdit: TRichEdit; ARow: Integer);
begin
  with ARichEdit do
  begin
    SelStart := SendMessage(Handle, EM_LINEINDEX, ARow - 1, 0);
    SelLength := Length(Lines[ARow - 1]);
    SelAttributes.Style := SelAttributes.Style + [fsBold];
    SelLength := 0;
  end;
end;
Commenter la réponse de korgis
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
0
Merci
Bonjour à tous
et salut Korgis ;)

en ce qui concerne le petit problème de :khokho
je te propose cette solution toute simple ^^
procedure TForm1.Button3Click(Sender: TObject);
begin
  if FontDialog1.Execute then
    with RichEdit1 do begin
      SelectAll;
      SelAttributes.Name := fontdialog1.Font.Name;
      SelLength := 0;
    end;
end;

<EDIT>:
  if FontDialog1.Execute then
    with RichEdit1 do begin
      SelectAll;
      SelAttributes.Assign(fontdialog1.Font);
      MakeBold(RichEdit1, Lines.Count, [fsBold]);
      SelLength := 0;
    end;

cette version donne de meilleurs résultats mais oblige à réutiliser la procédure MakeBold
</EDIT>
et comme par miracle tout fonctionne comme prévu :)

pare contre j'ai pas approfondi ... j'ai donc aucune explication au phénomène !! :O

Bon Dimanche,
Cordialement,
francky230123012301
Messages postés
7
Date d'inscription
jeudi 10 mai 2018
Dernière intervention
17 mai 2018
-
C'est pas Korgis c'est Japee (Vieille canaille) :D
Et comme on disait vive les tartes o concombre :D
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
3 août 2018
-
C'est pas vrai !!!!
t'as enfin retrouvé ton MP ^^
ça fait plaisir en tous cas ;)

Cordialement,
@+
korgis
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
-
"t'as enfin retrouvé ton MP ^^"
En tout cas c'est sûr, la tarte aux concombres c'est pas bon pour les neurones :-p
Vieille canaille de Francky ! ^^
Caribensila
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
-
Pffffffffffff ! C'est pas Francky !

Not' Francky à nous avait aussi un nom à la con, mais c'était pas 230123012301 ! :-p
francky230123012301
Messages postés
7
Date d'inscription
jeudi 10 mai 2018
Dernière intervention
17 mai 2018
-
Quel oeil de lynx ce Caribensila : J'me demande si il était pas opticien dans une autre vie :D
Commenter la réponse de Cirec

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.