Einzelnen Beitrag anzeigen

Benutzerbild von Guido R.
Guido R.

Registriert seit: 5. Jul 2007
137 Beiträge
 
Delphi 11 Alexandria
 
#1

JvRichEdit Text markieren und Attribute erhalten

  Alt 21. Mai 2020, 14:45
Delphi-Version: 10.3 Rio
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.
  Mit Zitat antworten Zitat