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

(Resolvido) limpar formatação de richedit


vms

Pergunta

14 respostass a esta questão

Posts Recomendados

  • 0

Você terá que "escolher" uma formatação padrão para a sua aplicação. Segue código:

RichEdit1.Font.Size  := 20;
RichEdit1.Font.Name  := Times New Roman';
RichEdit1.Font.Style := RichEdit1.Font.Style + [fsBold]; //coloca em negrito
RichEdit1.Font.Style := RichEdit1.Font.Style + [fsItalic]; //coloca em itálico
RichEdit1.Font.Size  := 8;
RichEdit1.Font.Name  := 'Arial';
RichEdit1.Font.Style := RichEdit1.Font.Style - [fsBold]; //tira o negrito

Você pode editar toda a formatação do texto, basta chamar o comando "Font" e sua respectiva propriedade. Agora é com você!

Editado por Duduh_Capixaba
Link para o comentário
Compartilhar em outros sites

  • 0

OK! ate ai beleza, mas as vezes faço um cntrl + c , cntrl + v de outros texto e o texto vem com uma formataçao estranha.

um espaço enorme entre uma linha e outro e não dar pra deletar nem editar no espaço porque e o mesmo espaço da linha anterior.

ex:

primeira linha de texto...

segunda linha de texto...

terceira linha de texto...

...

Link para o comentário
Compartilhar em outros sites

  • 0
mas as vezes faço um cntrl + c , cntrl + v de outros texto e o texto vem com uma formataçao estranha.

um espaço enorme entre uma linha e outro e não dar pra deletar nem editar no espaço porque e o mesmo espaço da linha anterior.

vms, que tipo de formatação você utiliza então com este RichEdit?

Porque tá parecendo que você não faz uso de formatação alguma e, daí, talvez fosse mais interessante utilizar um TMemo ou então, habilitar a propriedade PlainText (True).

Link para o comentário
Compartilhar em outros sites

  • 0

ola michells

pra que serve esse PlainText? não aconteceu nada!

dei uma olhada no word e notei que aquela formatação estranha que citei antes, era o espaçamento entre linhas

alem das outros tipos de formatação(negrito,subliado,italico)eu queria controlar o espaçamento entre linhas

Ex: com um click do button deixaria o espaço entre linhas com 1mm

valeu.

Editado por vms
Link para o comentário
Compartilhar em outros sites

  • 0
ola micheUs

pra que serve esse PlainText? não aconteceu nada!

serve para trabalhar como o RichEdit como se fosse um TMemo, ou seja, sem formatação. (pelo menos deveria)

dei uma olhada no word e notei que aquela formatação estranha que citei antes, era o espaçamento entre linhas

alem das outros tipos de formatação(negrito,subliado,italico)eu queria controlar o espaçamento entre linhas

Ex: com um click do button deixaria o espaço entre linhas com 1mm

Esta precisão, acho que você não vai obter. O entre-linhas pode ser 1, 1.5 e 2 - apenas.

No RichEdit, quando você cola um texto formatado, ele tenta manter estas formatações. No geral, quando você quer formatar algo no componente, você precisará selecionar o texto desejado. Ou definir uma formatação, que ficará disponível a partir da posição do cursor em diante - como funciona no Word.

O componente não tem muitos recursos- ele não suporta todo o padrão RTF. Ele está mais para o WordPad (que vem com o Windows).

Quer ter uma idéia do que ele pode fazer? Então, dê uma olhada no msdn: About Rich Edit Controls. Neste link, você também encontrará uma lista com todos os atalhos de teclados (Rich Edit Shortcut Keys) para aplicar algumas das formatações do texto.

O componente, na verdade, oferece poucos recursos para manipulação do texto. Basta ver a quantidade de mensagens (opções) que ele pode tratar - são aquelas que começam com "EM_".

Veja um exemplo de como utilizar, nesta dica que postem em Tutoriais & Dicas: Justificação E Entre-linhas Em Richedit

ou neste post, onde implementei uma função "Destaca Texto"

Abraços

p.s. Veja se escreve meu nome com U e não com LL. Faz tempo que o corrijo e nem percebeu. ;)

Link para o comentário
Compartilhar em outros sites

  • 0

vms, desculpe a demora em responder - estive ausente esses dias.

aquele exemplo esta deixando um espaço enorme entre linhas, quase de uma pagina, já tentei com 0, 1,5, 2 e o resultado dar o mesmo.

o que pode ser? fiz como estava lá.

É bem estranho.

Voce chegou a experimentar utilizar os atalhos, no link que indiquei, para modificação do entre-linhas processados pelo próprio componente (ele com foco e você usa o atalho em um parágrafo)?

Será que este efeito estaria ocorrendo após você ter colado algum texto formatado (do Word), por exemplo? Chegou a fazer uso da função em um texto simples (sem formatação)?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
micheus voce pode dar uma dica como fazer isso, porque star dando esse erro

[Error]UDICD.pas(268): Incompatible types: 'TRichEdit' and 'TDBRichEdit'
vms, parece um um erro com a forma como você está usando o código. Dá para você por a parte do código em que o erro ocorre?

Link para o comentário
Compartilhar em outros sites

  • 0

função

// Espaçamento: 0=simples; 1=1,5; 2=duplo
procedure LineSpaceRichEdit(RichEdit :TRichEdit; Espacamento :Integer; AllText :Boolean);
var
  ParaFormat :TParaFormat2;
  SelStart,SelLength :Integer;
begin
  if AllText then
    RichEdit.SelectAll;
  ParaFormat.cbSize := SizeOf(ParaFormat);
  ParaFormat.dwMask := PFM_LINESPACING or PFM_SPACEAFTER;
  ParaFormat.dyLineSpacing := Espacamento;
  ParaFormat.bLineSpacingRule := Espacamento;
  SendMessage(RichEdit.handle, EM_SETPARAFORMAT, 0, LongInt(@ParaFormat));
// Restaura seleção caso tenhamos mudado para All
  RichEdit.SelStart := SelStart;
  RichEdit.SelLength := SelLength;
end;
codigo
procedure TFDICD.JvTransparentButton2Click(Sender: TObject);
begin
  LineSpaceRichEdit(DBRichEdit2,1, False); // espaçamento 1,5 no(s) paragrafo(s)
end;

Editado por Micheus
Substituída tag QUOTE por CODE. Por favor utilize a tag adequada.
Link para o comentário
Compartilhar em outros sites

  • 0

vms, neste caso (utilizar uma função para dois componentes diferentes), você deve tentar utilizar como parâmetro a classe hierárquica comum a ambos, o mais próximo delas. Observe que ambos são descendentes de TCustomRichEdit. Assim, use-a na declaração do cabeçalho da função:

procedure LineSpaceRichEdit(RichEdit :TCustomRichEdit; Espacamento :Integer; AllText :Boolean);

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...