Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Textübernahme von mehrere Memofelder in RichEdit felder, (https://www.delphipraxis.net/26126-textuebernahme-von-mehrere-memofelder-richedit-felder.html)

Reini64 18. Jul 2004 20:41


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:
   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;
der Fehler taucht in der Zeile: " RichEdit1.Lines.Add(dm_stamm.q_detail['m1']);"
auf.

Wa mache ich falsch ??? :gruebel:

mischerr 20. Jul 2004 12:52

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!

Reini64 20. Jul 2004 13:38

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 }
'

Ultimator 20. Jul 2004 13:48

Re: Textübernahme von mehrere Memofelder in RichEdit felder,
 
Dann solltst du die Eigenschaft "Plaintext" des Richedit auf "true" setzen ;-)

franktron 20. Jul 2004 14:00

Re: Textübernahme von mehrere Memofelder in RichEdit felder,
 
Sag mal ist dm_stamm.q_detail['m1'] ein Blob oder ein Char Feld

mischerr 20. Jul 2004 17:10

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:
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;
Ist zwar noch ganz und garnicht schön gelöst (...bitte nicht schlagen :oops:), aber klappt hier zumindest schonmal.

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 16:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz