Fórum Ajuada! Como salvar o conteudo um TRichEdit #260207

26/11/2004

0

Como faço para salvar o conteudo de um componente TRichEdit em um bando de dados sem que perca a formatação do texto:
Vou dar um exemplo:

//cdsEnviarMEN_CONTEUDO é um campo do tipo BLOB

CdsEnviarMEN_CONTEUDO.AsVariant:= RichEdit1.Lines.Text;

Assim funciona mas o meu Texto perde toda a formantação:
O texto esta assim:

´Oi preciso de [color=red:75a9c18120][b:75a9c18120]ajuda[/b:75a9c18120][/color:75a9c18120].´
mas banco ele salva assim.
´Oi preciso de ajuda. ´
sem cor ou fonte maior.


Lucianob

Lucianob

Responder

Posts

26/11/2004

Marcelo Saviski

Esta é uma aneira, eu nunca usei campos Blob, mas pelo que parece eles podem armazenar uma stream, então, teste para ver se isso abaixo funciona:

[i:0949d9a07e][color=darkblue:0949d9a07e]//Salva o conteúdo do RichEdit[/color:0949d9a07e][/i:0949d9a07e]
var
  Stream: TStream;
begin
  Stream : TMemoryStream.Create
  RichEdit.Lines.SaveToStream(Stream);
  BlobField.LoadFromStream(Stream);
  Stream.Free;
end;


[color=darkblue:0949d9a07e][i:0949d9a07e]//Carrega no RichEdit[/i:0949d9a07e][/color:0949d9a07e]
var
  Stream: TStream;
begin
  Stream : TMemoryStream.Create
  BlobField.SaveToStream(Stream);
  RichEdit.Lines.LoadFromStream(stream);
  Stream.Free;
end;



Responder

Gostei + 0

26/11/2004

Reginaldo174

Tenho uma solução meio maluca, mas foi a unica que consegui até hoje.

Faça o seguinte :

- antes de salvar crie um arquivo externo do tipo texto e coloque nele o conteudo do Richedit;
- Depois Leia o arquivo externo em Tmemo;
- Salve o texto que está no conteudo do Tmemo.

Dessa forma é salvo tipo o Html. Com tags que informam a sua formatação.

- Para ler use um DBrichedt comum depois de gravado.


Responder

Gostei + 0

26/11/2004

Marcelo Saviski

O código que eu coloquei lá em cima seque mais ou menos essa mesma lógica, só que ao invés de slavar num arquivo externo, salva numa Stream, um pedaço de memória temporário.


Responder

Gostei + 0

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

Aceitar