potřeboval bych dostat formátovanej text RTF do databáze a zpět.
zkoušel jsem použít DBRichEdit i obyčejný TRichEdit
Ukládal jsem ho jak do WARCHAR, tak i do BLOB, PlainText:= True i False.
TRichEdit do BLOB:
- Kód: Vybrat vše
//uložit
var ms: TMemoryStream;
// .....
ms := TMemoryStream.Create;
RichEdit1.Lines.SaveToStream(ms);
ms.Seek(0, soFromBeginning) ;
IBQuery1.Active:= True;
IBQuery1.Insert;
TBlobField(IBQuery1.FieldByName('POPIS')).LoadFromStream(ms);
IBQuery1.Post;
FreeAndNil (ms);
end;
//načíst
var ms: TMemoryStream;
// .....
ms := TMemoryStream.Create;
IBQuery1.Active:= True;
TBlobField(IBQuery1.FieldByName('POPIS')).SaveToStream(ms);
ms.Seek(0, soFromBeginning) ;
RichEdit2.Lines.LoadFromStream(mS);
FreeAndNil (ms);
TRichEdit do WARCHAR
- Kód: Vybrat vše
//uložit
var textPopisu: AnsiString;
ms: TMemoryStream;
// .....
ms := TMemoryStream.Create;
ms.Clear;
RichEdit1.Lines.SaveToStream(ms);
ms.Position := 0;
if (ms.Size > 0) then begin
SetLength(textPopisu, ms.Size);
if (ms.Read(textPopisu[1], ms.Size) <= 0) then
raise EStreamError.CreateFmt('End of stream reached with %d bytes left to read.',[stream.Size]);
end;
ms.Free;
IBQuery1.FieldByName('POPIS').AsAnsiString := textPopisu;
//načíst
var textPopisu: AnsiString;
ms: TMemoryStream;
// .....
textPopisu := sql.FieldByName('POPIS').AsAnsiString;
ms := TMemoryStream.Create;
ms.Clear;
ms.Write(PAnsiChar(textPopisu)^, Length(textPopisu));
ms.Position := 0;
RichEdit2.Lines.LoadFromStream(ms);
ms.Free;
bohužel se mi nedaří do RichEdit2 dostat zformátovanej text, kterej sem napsal do RichEdit1 ..(barva písma, velikost, font)
můžete mi s tím prosím někdo pomoct, na netu jsem přečetl spoustu rad, ale žádná mi nefunguje.