Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi JvRichEdit Text markieren und Attribute erhalten (https://www.delphipraxis.net/204353-jvrichedit-text-markieren-und-attribute-erhalten.html)

Guido R. 21. Mai 2020 14:45

Delphi-Version: 10.3 Rio

JvRichEdit Text markieren und Attribute erhalten
 
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
Delphi-Quellcode:
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
Delphi-Quellcode:
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf