Componente do tipo RichEdit, mais inovador ???

Delphi

13/10/2004

Olá pessoal estou a procura de algum componente em Delphi 5, 6 ou 7 que tenha suporte HTML, de forma que possa digitar textos dinamicamente, utilizando assim botões para formatação generalizados.

Agradeço que me ajudar!!!


Faelcavalcanti

Faelcavalcanti

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

13/10/2004

Vc quer um editor RichEdit q exporte pra HTML ou um editor HTML puro?


GOSTEI 0
Faelcavalcanti

Faelcavalcanti

13/10/2004

Na verdade estou buscando um componente se é que existe, que já possua barras de ferramentas de formatação, cor, etc.,

Daí também gostaria de extrair todo o conteúdo digitado e exportar para HTML, ou que fosse da mesma forma como o editor de digitação de texto da Hotmail. Alguém sabe essa, ou pelo menos poderia me dar uma força!

:roll:


GOSTEI 0
Nildo

Nildo

13/10/2004

Você pode usar o próprio richedit. Coloque uns botões pra você testar.
No evento OnClick de um botão você coloca assim:

RichEdit1.SelAttributes.Color := clRed;

dai você vai pro richedit e começa a digitar. Td q vc digitar a partir dali vai ficar vermelho. Essa regra atribue também se você tem um texto selecionado e executar esse comando, sómente o texto selecionado fica em vermelho.


GOSTEI 0
Faelcavalcanti

Faelcavalcanti

13/10/2004

O Problema é que terei que formatar o richedit em formato HTML, mas isso deverei fazer quando enviá-lo, mas como poderei indexá-lo junto ao Componente TIdMessage via SMTP, pois queria enviar em formato HTML e gostaria de gerar as TAGS já formatadas de acordo com as fontes, etc.

Utilizei o seguinte procedimento para formatá-lo :

DopCol: TColor);
var
  i, iDop: Integer;
  s: string;
  Col: TColor;
  isTag, isDop: Boolean;
begin
  iDop := 0;
  isDop := False;
  isTag := False;
  Col := TextCol;
  RichEdit.SetFocus;
  for i := 0 to Length(RichEdit.Text) do 
  begin
    RichEdit.SelStart := i;
    RichEdit.SelLength := 1;
    s := RichEdit.SelText; 
    if (s = ´<´) or (s = ´{´) then 
      isTag := True;
    if isTag then
      if (s = ´"´) then
        if not isDop then 
        begin
          iDop := 1;
          isDop := True;
        end
        else 
          isDop := False;
      if isTag then
        if isDop then 
        begin
          if iDop <> 1 then Col := DopCol;
        end
        else 
          Col := TagCol
        else 
          Col := TextCol;
      RichEdit.SelAttributes.Color := Col;
      iDop := 0;
      if (s = ´>´) or (s = ´}´) then 
        isTag := False;
    end;
    RichEdit.SelLength := 0;
end;



Em seguida efetuo os seguintes procedimentos :

RichEdit1.Lines.BeginUpdate;
HTMLSyntax(RichEdit1, clBlue, clRed, clGreen);
RichEdit1.Lines.EndUpdate;


O Problema é que terei que fazê-lo após toda a digitação, pois após efetuar estes procedimentos ele não deixa eu impor cores, e/ou qualquer coisa que seja relativo a formatação de texto

Como posso então gerar um arquivo HTML, com um texto já pronto.
Talvez eu terei que montar na mão, sei lá usar a TAG <DIV>.
Me Ajudem!!!


GOSTEI 0
Faelcavalcanti

Faelcavalcanti

13/10/2004

Erro meu o código completo abaixo, ficou faltando um pedacinho :lol:

procedure HTMLSyntax(RichEdit: TRichEdit; TextCol, TagCol, DopCol: TColor);
var
  i, iDop: Integer;
  s: string;
  Col: TColor;
  isTag, isDop: Boolean;
begin
  iDop := 0;
  isDop := False;
  isTag := False;
  Col := TextCol;
  RichEdit.SetFocus;
  for i := 0 to Length(RichEdit.Text) do 
  begin
    RichEdit.SelStart := i;
    RichEdit.SelLength := 1;
    s := RichEdit.SelText; 
    if (s = ´<´) or (s = ´{´) then 
      isTag := True;
    if isTag then
      if (s = ´"´) then
        if not isDop then 
        begin
          iDop := 1;
          isDop := True;
        end
        else 
          isDop := False;
      if isTag then
        if isDop then 
        begin
          if iDop <> 1 then Col := DopCol;
        end
        else 
          Col := TagCol
        else 
          Col := TextCol;
      RichEdit.SelAttributes.Color := Col;
      iDop := 0;
      if (s = ´>´) or (s = ´}´) then 
        isTag := False;
    end;
    RichEdit.SelLength := 0;
end;




GOSTEI 0
Marcelo Saviski

Marcelo Saviski

13/10/2004

Você pode usar o [url=http://sourceforge.net/projects/synedit/]SynEdit[/url], que é um edit para exibir códigos formatados, você coloca um SynEdit e linka a propriedade HighLighter com um TSynHTMLSyn.
O texto digitado no ynEdit ficará formatado reaçando tags ou textos etc.
Não é só p/ HTML, tem para trocentas linguagens.

Muito bom.


GOSTEI 0
Bon Jovi

Bon Jovi

13/10/2004

Solução 1: Usar RichEdit normalmente + Exportacao pra HTML. No Delphi já tem um demo completo com tudo q vc quer (C:\Arquivos de programas\Borland\Delphi7\Demos\RichEdit). E pra exportar pra HTML, use o componente TJvRichEditToHtml (aba Jv Internet) do Pacote JEDI VCL (http://homepages.borland.com/jedi/jvcl/).

Solução 2: Usar Editor DHTML, que trabalha diretamente com HTML.


GOSTEI 0
Faelcavalcanti

Faelcavalcanti

13/10/2004

Você pode usar o SynEdit, que é um edit para exibir códigos formatados, você coloca um SynEdit e linka a propriedade HighLighter com um TSynHTMLSyn. O texto digitado no ynEdit ficará formatado reaçando tags ou textos etc. Não é só p/ HTML, tem para trocentas linguagens.


Rapaz este componente é realmente, espetacular!!!!!
Não tenho muito a falar é só conferir!!!!

Mas ainda há uma dúvida, gostaria de formatar várias vezes um TRichEdit ou outro componente, ou talvez este do SynEdit. Não testei ainda.
Mas o que eu queria de fato é Formatar de diversos tamanhos e cores um texto digitado.

Agradeço pela ajuda de todos!!!


GOSTEI 0
POSTAR