theo hat geschrieben:Warum machst du
re.Lines.SaveToStream(ss);
und nicht
re.SaveToStream(ss);
Das war der entscheidende Hinweis
theo hat geschrieben:Und warum machst du später nicht das umgekehrte, nämlich
re.LoadFromStream(ss);
Das hatte ich versucht (zwar re.Lines.LoadFromStream(ss)), aber da ja das falsche gespeichert wurde, nützte das natürlich nix.
Außerdem kam auch noch
wp_xyz hat geschrieben:(Beliebter Fehler: nach dem Einlesen des DB-Feldes den Stream wieder an den Anfang zurücksetzen bevor er ans RichEdit übertragen wird)
zum tragen
So sieht das funktionierende Ding jetzt aus:
Code: Alles auswählen
function TForm20.RichText(re: TlzRichEdit): String;
var
ss: TStringStream;
begin
ss := TStringStream.Create ('');
try
re.SaveToStream(ss);
Result := ss.DataString;
finally
ss.Free;
end;
end;
procedure TForm20.Button2Click(Sender: TObject);
begin
SQLQuery1.SQL.Text := 'INSERT INTO texte (titel, text) VALUES (:ttl,:txt)';
SQLQuery1.Params.Clear;
SQLQuery1.Params.CreateParam(ftString,'ttl', ptInput);
SQLQuery1.Params.CreateParam(ftString,'txt', ptInput);
SQLQuery1.ParamByName('ttl').AsString:= 'test';
SQLQuery1.ParamByName('txt').AsString := Richtext(LZRichEdit1);
SQLQuery1.ExecSQL; SQLTransaction1.Commit;
end;
procedure TForm20.Button3Click(Sender: TObject);
var ss: TStringStream;
begin
SQLQuery1.SQL.Text := 'SELECT text from texte where titel = '+#39+'test'+#39;
SQLQuery1.Open;
ss := TStringStream.Create ('');
try
ss.WriteString(SQLQuery1.Fields[0].AsString);
ss.Position:=0;
lzRichEdit1.LoadFromStream(ss);
finally
ss.Free;
end;
SQLQuery1.Close;
end;
Vielen Dank euch allen
Christian
Früher war alles besser. Und aus Holz!