FieldByName parameter bold

3

Hello, I have a RichText that I made the insertion of the text via programming, however there are some parts of this text that I bring from the bank, I need these specific fields to be bold inside RichText.

Following is an example of the code.

Texto1.RichText:='A Diretora da Escola teste no uso de suas atribuições e tendo em vista a conclusão do '
                + 'Periodo I'+ ' do Curso ' + pipMestre['NOME_CURSO'] 
                + ', Eixo Tecnológico ' + reconhecimento.FieldByName('eixo') 
                + ', confere o Título de ' + 'a';

You would need the FieldByName to be in bold.

Thank you for your attention.

    
asked by anonymous 07.06.2018 / 16:53

1 answer

3

To put some of the text in bold using RichEdit (I do not have the RichText component), we have to select the word that we want to put in bold inside the text. For this we need to find it.

Then I created a function that you pass the RichEdit and the text that you want to put in bold for it to be applied.

procedure TForm1.textoNegrito(ARichEdit: TRichEdit; ATexto: String);
var
  iPosIni : integer;
begin
    ARichEdit.SelStart  := 0;
    ARichEdit.SelLength := length(ARichEdit.Text);

    //Encontra e atribui a posição inicial do texto no RichEdit
    iPosIni := ARichEdit.FindText(ATexto, 0, length(ARichEdit.Text), []);

    //Verifica se o texto foi encontrado
    if iPosIni >= 0 then
    begin
        ARichEdit.SelStart  := iPosIni;
        ARichEdit.SelLength := length(ATexto);
        // Aplica o negrito
        ARichEdit.SelAttributes.style := [fsBold];
    end;
end;

Its use would look something like:

...
var
  vlA,vlB : string;
begin
  vlA :=  'teste 1';
  vlB :=  'teste 2';

  Texto1.Text := 'A Diretora da Escola teste no uso de suas atribuições e tendo em vista a conclusão do '
                + 'Periodo I'+ ' do Curso ' + vlA
                + ', Eixo Tecnológico ' + vlB
                + ', confere o Título de ' + 'a';

  textoNegrito(Texto1,vlA);
...

Reference used: link

    
07.06.2018 / 18:52