unit Demo7Frm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  RVScroll, RichView, RVEdit, ExtCtrls, StdCtrls;

type
  TfrmDemo7 = class(TForm)
    Panel1: TPanel;
    rve: TRichViewEdit;
    txt: TEdit;
    btnMark: TButton;
    btnUnmark: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure btnMarkClick(Sender: TObject);
    procedure btnUnmarkClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


implementation
uses MainFrm;

{$R *.DFM}

{
 See advanced versions of this demo on the forum:
 http://www.trichview.com/forums/viewtopic.php?t=57
}

procedure TfrmDemo7.FormCreate(Sender: TObject);
begin
  rve.Clear;
  rve.LoadText(ExtractFilePath(Application.ExeName)+'MainFrm.pas',0,0, False);
  rve.Format;
end;

procedure TfrmDemo7.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_ESCAPE then Close;
end;

procedure TfrmDemo7.btnMarkClick(Sender: TObject);
begin
  rve.SetSelectionBounds(0,rve.GetOffsBeforeItem(0),0,rve.GetOffsBeforeItem(0));
  while rve.SearchText(txt.Text, [rvseoDown]) do
    rve.ApplyTextStyle(sncomMarked);
// Note: every call of ApplyTextStyle reformats affected paragraphs
end;

procedure TfrmDemo7.btnUnmarkClick(Sender: TObject);
begin
  rve.SelectAll;
  rve.ApplyTextStyle(sncomNormal);
  rve.Deselect;
  rve.Refresh;
end;

end.
