Ir para conteúdo
Fórum Script Brasil
  • 0

gerenciador de fonte de um richedit


laine

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0
estou precisando permitir que o usuario defina qual fonte irá usar para um richedit, pois em determinado momento o usuário precisa mudar a fonte das informações que estão em um componente richedit ou DBMemo
laine, para possibilitar a formatação do texto, você deverá usar apenas componentes descendentes da classe TCustomRichEdit que oferecem este recurso. Assim, no lugar de TDBMemo, use TDBRichEdit.

Quanto ao código, ele é bastante simples.

Para definir as características padrão em termos do fonte, você usa a propriedade DefAttributes (veja no help todas as "sub-propriedades" dela - basicamente é as que usarei no exemplo) - e qualquer alteração nesta propriedade afeta todo o richedit e deve ser feita na criação do form (uma única vez). Já quanto as definições que serão modificadas durante a edição, estas são feitas através da propriedade SelAttributes. Apesar do nome, a alteração do fonte ocorrerá sobre uma seleção existente, mas se nenhuma seleção estiver destacada, a alteração passa a valer do ponto onde o ponto de inserção está em diante.

Voce precisa adicionar um componente TFontDialog (paleta Dialogs) o qual será utilizado para possibilitar a alteração das características da fonte. No exemplo, estaremos inicializando estas características a partir daquelas pertencentes à fonte onde o ponto de inserção (vulgo cursor) se encontra. Uma vez que alguma alteração seja realizada e o botão de Ok do dialogo seja clicado, passaremos ao processo inverso, onde ajustamos os atributos da fonte do texto para aqueles da fonte do dialogo:

procedure TForm1.Button1Click(Sender: TObject);
begin
  with RichEdit1.SelAttributes do
  begin
    FontDialog1.Font.Name := Name;
    FontDialog1.Font.Charset := Charset;
    FontDialog1.Font.Color := Color;
    FontDialog1.Font.Pitch := Pitch;
    FontDialog1.Font.Size := Size;
    FontDialog1.Font.Style := Style;
    FontDialog1.Font.Height := Height;
  end;
  if FontDialog1.Execute then
  with FontDialog1.Font do
  begin
    RichEdit1.SelAttributes.Name := Name;
    RichEdit1.SelAttributes.Charset := Charset;
    RichEdit1.SelAttributes.Color := Color;
    RichEdit1.SelAttributes.Pitch := Pitch;
    RichEdit1.SelAttributes.Size := Size;
    RichEdit1.SelAttributes.Style := Style;
    RichEdit1.SelAttributes.Height := Height;
  end;
end;

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...