Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
Delphi 10.4 Sydney
|
AW: RichEdit markiert nicht mehrere unterschiedliche Einträge.
1. Jul 2014, 09:11
Wenn du magst kannst du ja mal das durchlaufen lassen und kur Bescheid geben ob das auch für > D2007 jeht?. Thanx!
Delphi-Quellcode:
type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
FSelList: TStringList;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Highlight(RichEdit: TRichEdit;
SelList: TStrings; SelColor: TColor; SelStyle: TFontStyles);
var
I, J, Pos, Index: Integer;
begin
RichEdit.Lines.BeginUpdate;
try
Index := 0;
for I := 0 to RichEdit.Lines.Count - 1 do
begin
for J := 0 to SelList.Count - 1 do
begin
Pos := PosEx(SelList[J], RichEdit.Lines[I], 1);
while Pos > 0 do
begin
RichEdit.SelStart := Index + Pos - 1;
RichEdit.SelLength := Length(SelList[J]);
RichEdit.SelLength := Length(SelList[J]);
RichEdit.SelAttributes.Color := SelColor;
RichEdit.SelAttributes.Style := SelStyle;
Pos := PosEx(SelList[J], RichEdit.Lines[I], Pos + 1);
end;
end;
Index := Index + Length(RichEdit.Lines[I]) + Length(sLineBreak);
end;
finally
RichEdit.Lines.EndUpdate;
RichEdit.SelStart := 0;
RichEdit.SelLength := 0;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
RichEdit1.Font.Color := clLtGray;
RichEdit1.Lines.Add('+++ Liveticker Deutschland gegen Algerien +++');
RichEdit1.Lines.Add('Löw ist restlos bedient - wie reagiert er?');
RichEdit1.Lines.Add('Deutschland, der klare Favorit im WM-Achtelfinale? Denkste!');
RichEdit1.Lines.Add('Algerien ist überlegen, hat viele Großchancen.');
RichEdit1.Lines.Add('Deutschland spielt unsicher und konfus.');
RichEdit1.Lines.Add('Löw ist restlos bedient - hat er ist einen Plan?');
RichEdit1.Lines.Add('Verfolgen Sie die Partie im Liveticker.');
FSelList.Clear;
FSelList.Add('Löw');
FSelList.Add('ist');
FSelList.Add('Liveticker');
Highlight(RichEdit1, FSelList, clBlack, [fsBold]);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FSelList := TStringList.Create;
// RichEdit1.HideSelection := false;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FSelList.Free;
end;
|
|
Zitat
|