Hallo !
Ich möchte in einem t(Jv)RichEdit bestimmte Worte finden und mit einer roten Wellenlinie markieren. Dazu verwende ich die Prozedur :
Delphi-Quellcode:
const
CFU_UNDERLINETHICK = 9;
CFU_UNDERLINEWAVE = 8;
CFU_UNDERLINEDASHDOTDOT = 7;
CFU_UNDERLINEDASHDOT = 6;
CFU_UNDERLINEDASH = 5;
CFU_UNDERLINEDOTTED = 4;
CFU_UNDERLINE = 1;
CFU_UNDERLINENONE = 0;
{...}
procedure RE_SetCharFormat(ARichEdit: TJvRichEdit; AUnderlineType: Byte; AColor: Word);
var Format: CHARFORMAT2;
begin
FillChar(Format, SizeOf(Format), 0);
with Format do
begin
cbSize := SizeOf(Format);
dwMask := CFM_UNDERLINETYPE;
bUnderlineType:=AUnderlineType or AColor;
ARichEdit.Perform(EM_SetCharFormat,SCF_Selection,Longint(@Format));
end;
end;
und rufe diese mit
RE_SetCharFormat(RichEdit, CFU_UnderlineWave, $50);
auf.
Wenn die Suche abgeschlossen ist, bzw. wenn ich den Text speichern möchte, sollen diese Markierungen wieder entfernt werden
RE_SetCharFormat(RichEdit, CFU_UNDERLINENONE, $50);
.
Dabei werden aber auch "normale"
Unterstriche entfernt. Hat jemand eine Idee, wie ich dieses Attribut des (evtl. geänderten) Textes wieder herstellen kann, oder die Wellenlinien über ein Underline lege,
so dass die Entfernung der Wellenlinie auf das Underline keinen Einfluss hat?
LLAP
Guido R.