Gravação com formatação

25/10/2009

0

Estou pedindo ajuda se possível para uma função que vai formatar um texto de um RichEdit em NEGRITO, ITÁLICO ou SUBLINHADO ou sem nenhuma formatação e gravar no banco entre tags html.
A formatação é feita seleciona o que quer e clicando no checkbox correspondentes e até aqui eu consegui fazer mas a função para percorrer cada caracter do que o usuário digitou e gravar entre tags html eu não consegui.
1 - Se o usuario digitar por exemplo SOU MUITO FELIZ, selecionar SOU e marcar a opção Negrito vair gravar no banco <b>SOU</b> MUITO FELIZ

2- Se o usuario digitar por exemplo SOU MUITO FELIZ, selecionar MUITO e marcar a opção Itálico vair gravar no banco SOU <i>MUITO</i> FELIZ

3- Se o usuario digitar por exemplo SOU MUITO FELIZ, selecionar FELIZ e marcar a opção Sublinhado vair gravar no banco SOU MUITO <u>FELIZ</u>

4- Se o usuario digitar por exemplo SOU MUITO FELIZ e não marcar nada grava sem nenhum formatação

5 - A função esta abaixo

E assim por diante. Se puderem me ajudar agradeço.

procedure TFormTeste.btnValidarClick(Sender: TObject);
begin
   fnVerificarFormatacoes(RichEdit1.Text);
end;

function TFormTeste.fnVerificarFormatacoes(_rstrString: String): String;
var
   _rTemp : TFontStyles;
   _rstrCaracter, _rstrNegrito, _rstrItalico, _rstrSublinhado : String;
   _rintAuxConteudo : Integer;
begin
   // Função que percorre cada caracter da string verificando
   // Se é negrito, itálico ou sublinhado montando a string final em html
   Result          := '';
   _rstrNegrito    := '';
   _rstrItalico    := '';
   _rstrSublinhado := '';
   if Length(_rstrString) <> 0 then
   begin
      for _rintAuxConteudo := 1 to Length(_rstrString) do
      begin
         _rstrCaracter := Copy(rchteste.Text,_rintAuxConteudo,1);
         // Verificar o estilo do caracter
         _rTemp := rchteste.SelAttributes.Style[_rstrCaracter];<-- Aqui acontece o erro
         if _rTemp = [fsBold] then
         begin
            _rstrNegrito := _rstrNegrito + _rstrCaracter;
         end;
         if _rTemp = [fsItalic] then
         begin
            _rstrItalico := _rstrItalico + _rstrCaracter;
         end;
         if _rTemp = [fsUnderline] then
         begin
            _rstrSublinhado := _rstrSublinhado + _rstrCaracter;
         end;// <b>NEGRITO</b> <i>ITÁLICO</i><u>SUBLINHADO</u>
         Result := _rstrNegrito + _rstrItalico + _rstrSublinhado;
      end;
      ShowMessage('String Formatada Final: ' + Result);
   end;
end;

Jordelino Santos

Jordelino Santos

Responder

Posts

18/01/2010

Jordelino Santos

Resolvido
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar