Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#12

AW: RTF - Absatzhintergrund setzen

  Alt 7. Jul 2011, 16:23
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat