![]() |
Textübernahme von mehrere Memofelder in RichEdit felder,
Hi
ich habe folgendes Problem: ich möchte in ein Richedit Feld mehrere Memofelder aus der Datenbank einfügen jeweils mit einer Überschrift dabei erhalte ich die Fehlermeldung: "Fehler bei Einfügen von RichEdit-Zeile ".
Delphi-Quellcode:
der Fehler taucht in der Zeile: " RichEdit1.Lines.Add(dm_stamm.q_detail['m1']);"
if dm_stamm.q_detail['m1'] <> null then
begin RichEdit1.Lines.Add(suchfeld[I]); //Word in RichEdit einfügen RichEdit1.SelStart := Pos(suchfeld[I],RichEdit1.Text)-1; //Position des Wortes bestimmen RichEdit1.SelLength := Length (suchfeld[I]); //Länge festelegen RichEdit1.SelAttributes.Style := [fsBold]; RichEdit1.SelLength := 0; //Markierung aufheben. RichEdit1.Lines.Add(dm_stamm.q_detail['m1']); end; auf. Wa mache ich falsch ??? :gruebel: |
Re: Textübernahme von mehrere Memofelder in RichEdit felder,
Hallo!
Was wird denn wirklich bei Lines.Add() hinzugefügt? Erzeug doch einmal eine temp. String-Variable, schreib den Wert dann dort rein und übergib diese dann beim Lines.Add(). Ich würde mir aber zuvor einen Breakpoint setzen nund mal schaun, was da wirklich kommt! Grüsse! |
Re: Textübernahme von mehrere Memofelder in RichEdit felder,
es wird folgendes übergeben:
Delphi-Quellcode:
'{\rtf1\ansi\deff0{\fonttbl{\f0\froman\fcharset0 Times New Roman;}}
\viewkind4\uc1\pard\lang1031\f0\fs24 Saccharomyces boulardii, Trockenhefe 50 mg \par \par } ' |
Re: Textübernahme von mehrere Memofelder in RichEdit felder,
Dann solltst du die Eigenschaft "Plaintext" des Richedit auf "true" setzen ;-)
|
Re: Textübernahme von mehrere Memofelder in RichEdit felder,
Sag mal ist dm_stamm.q_detail['m1'] ein Blob oder ein Char Feld
|
Re: Textübernahme von mehrere Memofelder in RichEdit felder,
Also wenn ich das richtig verstanden hab, dass möchtest Du 2/mehrere RTF formatierte Texte "mergen", allerdings macht dir das RTF Format da einen Strich durch die Rechnung. Ich hab das gerade mal ausprobiert und so hat's geklappt:
Code:
Ist zwar noch ganz und garnicht schön gelöst (...bitte nicht schlagen :oops:), aber klappt hier zumindest schonmal.
procedure TForm1.AddSomeRTF(const RTFText: string);
var mStream: TMemoryStream; begin mStream:= TMemoryStream.Create; RichEdit1.Lines.SaveToStream(mStream); mStream.Seek(-4, soFromEnd); mStream.WriteBuffer(RTFText[1], length(RTFText)); mStream.Seek(0, soFromBeginning); RichEdit1.Lines.LoadFromStream(mStream); mStream.Free; end; Mit dem "mStream.Seek(-4, soFromEnd);" entferne ich die letzte } des RTF-Quelltextes und füge dann dort den neuen Text ein. Von diesem neuen Text hab ich jedoch zuvor die Kopfinformationen entfernt, sodass nun nur noch "\viewkind4\uc1\pard\lang1031\f0\fs24 Saccharomyces boulardii, Trockenhefe 50 mg\par\par }" übergeben wird. Grüsse! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz