Ich habe einmal etwas herum gespielt, mit folgendem Code kann man durchaus Farbmanipulationen durchführen:
Delphi-Quellcode:
var
format:tparaformat2;
begin
richedit1.SelStart:=11;
richedit1.SelLength:=40;
memo1.Lines.Text:=richedit1.seltext;
format.cbSize:=sizeof(format);
format.dwMask:=PFM_SHADING;
richedit1.Perform(EM_GETPARAFORMAT,0,longint(@format));
application.ProcessMessages;
format.dwMask:=PFM_SHADING;
format.cbSize:=sizeof(format);
format.wShadingWeight:=50;
// format.wShadingStyle:=$0FF0;
// format.wShadingStyle:=$0700;
format.wShadingStyle:=$0800;
richedit1.Perform(EM_SETPARAFORMAT,0,longint(@format));
application.ProcessMessages;
richedit1.Lines.SaveToFile('c:\temp\test.rtf');
end;
Das ist dann das Ergebnis:
Code:
{\rtf1\
ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil Tahoma;}}
{\colortbl ;\red0\green0\blue0;}
\viewkind4\uc1\pard\f0\fs16 RichEdit1
\par \pard\cbpat1\shading50 das ist der zweite Absatz
\par dies ist der der dritte
\par \pard und das ist nummero4
\par
\par }
Wobei sich je nach eingegebenem wert die colortbl ändert.
Aber wenn
wShadingStyle:=$x8xx;
gesetzt wird, dann hat man einen schwarz hinterlegten Absatz in der Word-Anzeige. Ist dieses Bit nicht gesetzt, dann gibt es keine Farben und auch sonst nichts zu sehen.
(Word2003)
Gruß
K-H