Показать сообщение отдельно
  #4  
Старый 12.04.2010, 23:11
Аватар для pesi
pesi pesi вне форума
Активный
 
Регистрация: 12.09.2008
Сообщения: 275
Репутация: 43
По умолчанию

Код:
function TextColorReplace( RE :TRichEdit; TextPos :string; TextColor :TColor; Flags: TReplaceFlags ): Integer;
var
  SearchStr : string;
  Offset: Integer;
  i :integer;
  TextLength :integer;
begin
  Result := 0;
  SearchStr := re.Text;
  i := 0;
  Offset := 1;
  TextLength := length(TextPos);

if rfIgnoreCase in Flags then
  begin
    SearchStr := AnsiUpperCase(SearchStr);
    TextPos := AnsiUpperCase(TextPos);
  end;

if not (rfReplaceAll in Flags) then
  begin
   Offset := Pos(TextPos, SearchStr);
   if Offset <> 0 then
   begin
    RE.SelStart := Offset-1;
    RE.SelLength := TextLength;
    RE.SelAttributes.Color := TextColor;
    Inc(Result);
   end;
  end
else
  while Offset <> 0 do
  begin
    Offset := PosEx(TextPos, SearchStr, i);
    if Offset <> 0 then
    begin
      RE.SelStart := Offset-1;
      RE.SelLength := TextLength;
      RE.SelAttributes.Color := TextColor;
      Inc(Result);
      i := Offset+1;
    end;
  end;
end;

Код:
Application.MessageBox(PChar('Закрашено '+IntToStr(TextColorReplace(RichEdit1, 'и', clred, [rfReplaceAll, rfIgnoreCase]))+' вхождений текста'), PChar('Количество вхождений текста'), MB_OK	);
Ответить с цитированием