Eu tenho um String numa tabela que foi pego de um arquivo .RTF contendo o código RTF. Para inserir num controle eu tenho de fazer LoadFromStream(varStream), então eu tenho que converter o valor que está no campo da tabela para a variável varStream do tipo TMemoryStream. Alguém sabe como converter essa String para MemoryStream?
Tentei usar uma function que vi na internet onde fiz pequena modificação, mas não funciona ou se trata de outro problema.
Stream são linhas em um determinado arquivo, e no meu caso eu tenho apenas uma linha que está nesta String, e é exatamente isso que eu acho que está o problema. Não sei se eu deveria ter um TStrings e não um String com todo o conteúdo. Será isso o problema?
A function que eu estou usando:
var
MS : TMemoryStream;
procedure ...
begin
MS := TMemoryStream.Create;
try
if StringParaMemoryStream(sqlite3Info.Value) then
MeuControle.LoadFromStream(MS);
finally
MS.Free;
end;
end;
function TForm1.StringParaMemoryStream(Str : String) : Boolean;
begin
MS.Write(Pointer(Str)^, Length(Str));
Result := MS.Size <> 0;
if Result then
MS.Position := 0;
end;
---------
Até funciona, mas não mostra todo o texto, acho que deve ser porque só tem uma linha (String), será que com um TStrings funcionaria? o problema seria para criar esse TStrings (ou StringList) que vai ter que mudar todo o código do componente.