Seite 1 von 1

Text in Richtext einfügen

Verfasst: Di, 23. Aug 2011 8:39
von Jürg Litscher
Hallo
... ich habe ein Richtextobjekt in einem Memofeld gespeichert,
nun möchte ich vorne oder hinten einen normalen Text einfügen,
wenn ich dies mache verliere ich die Formatierung!

Beispiel:

FUNCTION AddTxt2RTF( cFeld, cTxt, nPos)
LOCAL oRtf, lBack

DEFAULT nPos TO 0

oRtf := XbpRtf():new(,,,,,.F.)
oRtf:create()

oRtf:textRTF :=&cFeld
oRtf:text := IF(nPos==0, cTxt + oRtf:text, oRtf:text + cTxt )

lBack := SetField(cFeld, oRtf:textRTF )

oRtf:destroy()

RETURN lBack

hat jemand eine Idee?
Gruss Jürg

Re: Text in Richtext einfügen

Verfasst: Di, 23. Aug 2011 18:42
von AUGE_OHR
Jürg Litscher hat geschrieben:... ich habe ein Richtextobjekt in einem Memofeld gespeichert,
nun möchte ich vorne oder hinten einen normalen Text einfügen,
wenn ich dies mache verliere ich die Formatierung!
ein RTF Text verfügt über diverse Steuerzeichen.

Code: Alles auswählen

oRtf:text
enthält nur den Text des Editbuffer ohne Formatierung.
Die Zeichenkette enthält bis auf Zeilenendemarkierungen und TAB-Zeichen keine Formatinformationen
das was du sucht ist vermutlich

Code: Alles auswählen

oRtf:textRTF

Re: Text in Richtext einfügen

Verfasst: Mi, 24. Aug 2011 6:51
von Jürg Litscher
... ja das ist so im oRTF:textRTF ist der formatierte text,
wenn ich aber hier einen normalen string vorne oder hinten einfüge,
dann zerreisst es mir die Formatierung, das heisst sie wird sichtbar.
Darum suche ich einen Weg den formatierten text in oRTF:textRTF und
meinen Eintrag im oRTF:text zusammenzuüfhren ohne dass ich
die Formatierung in oRTF:textRTF verliere,...

Gruss Jürg

Re: Text in Richtext einfügen

Verfasst: Mi, 24. Aug 2011 9:15
von urbi
ich würde hier Platzhalter in original RTF vorsehen
und mit STRTRAN den gewünchsten Tex einfügen

Gruß
Rainer

Re: Text in Richtext einfügen

Verfasst: Mi, 24. Aug 2011 9:39
von Rolf Ramacher
Hi Rainer,

genauso mache ich es mit meinen listen

Re: Text in Richtext einfügen

Verfasst: Mi, 24. Aug 2011 9:42
von Jürg Litscher
... hm, wäre eine Idee, vielleicht gibt es einen Tag der standardmässig immer vorhanden ist, schau mer mal.
Gruss Jürg

Re: Text in Richtext einfügen

Verfasst: Mi, 24. Aug 2011 11:34
von Jürg Litscher
... folgende Zeilen funktioniern gar nicht schlecht ;-)
Bestend Dank.
Gruss Jürg


FUNCTION AddTxt2RTF( cFeld, cTxt, cRepl )
LOCAL lBack, cRTF,;
cTagEnde := "\par }"

cRTF := &cFeld
IF VALTYPE(cRepl) == "C"
cRTF := STRTRAN( cRTF, cRepl, cTxt )
ELSE
cRTF := STRTRAN( cRTF, cTagEnde, "\par "+cTxt+CRLF + cTagEnde )
ENDIF

// in Memo schreiben
lBack := SetField(cFeld, cRTF )


RETURN lBack

Re: Text in Richtext einfügen

Verfasst: Do, 25. Aug 2011 9:20
von brandelh
Hi,

ich hatte mir testweise mit Word RTF Formulare entworfen um diese auszufüllen.
Ging gut, bis ich einzelne Feldnamen nächträglich geändert habe.
Danach wurde im RTF Quellcode der Feldname zerrissen und somit nicht mehr mit strtran() gefunden ... :angry4:

Natürlich kann man das sicher mit einem ANSI Editor korrigieren, aber dazu habe ich keine Lust.
Ich nutze nun Word XML Formulare für den Zweck, das funktioniert sauber ohne Probleme (falls man Word ab 2003 :?: hat ...)