Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.555 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Datasnap: RTF-Text "on the fly" in PlainText konvertieren, wie?

  Alt 20. Sep 2015, 14:53
Ich habe in meinem Datasnap-Server dem entsprechenden Dataset mit dem Feldeditor ein Feld hinzugefügt (Name PlainText, BlobType ftMemo, FieldKind fkInternalCalc). Im OnCalcFields des Dataset steht momentan dieser Code:
Delphi-Quellcode:
procedure TServerMethods1.TexteTableCalcFields(DataSet: TDataSet);
var
  RE: TRichEdit;
  Stream, PlainStream: TStream;
begin
  RE := TRichEdit.CreateParented(HWND_MESSAGE);
  try
    Stream := DataSet.CreateBlobStream(DataSet.FieldByName('Text'),
      TBlobStreamMode.bmRead);
    try
      Stream.Seek(0, TSeekOrigin.soBeginning);
      RE.PlainText := false;
      RE.Lines.LoadFromStream(Stream);
      RE.PlainText := true;
      PlainStream := TStringStream.Create;
      try
        RE.Lines.SaveToStream(PlainStream);
        PlainStream.Seek(0, TSeekOrigin.soBeginning);
        (DataSet.FieldByName('PlainText') as TBlobField)
          .LoadFromStream(PlainStream);
      finally
        PlainStream.Free;
      end;
    finally
      Stream.Free;
    end;
  finally
    RE.Free;
  end;
end;
Damit ernte ich bei der Ausführung "Datenmenge weder im Editier- noch im Einfügemodus". Füge ich ein Dataset.Edit ein, enthält es keine Daten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat