trichview.com

trichview.support




Re: Overwrite input mode


Return to index


Author

Message

Sergey Tkachenko

Posted: 05/07/2002 11:12:48


Hi,


It does not support overwrite mode directly.

But one solution is possible - selecting a next character after caret on key

pressing.

The code is below.

It looks like this code works on the latest version of RichView.

But there were some changes in keyboard input since the last trial version.

If this code will not work properly on your version, try to call

rve.DeleteSelection at the end of RichViewEdit1KeyPress (instead of

Invalidate).


var IgnoreNextChar: Boolean = False;


procedure TForm1.RichViewEdit1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

  IgnoreNextChar := RichViewEdit1.SelectionExists;

end;


procedure TForm1.RichViewEdit1KeyPress(Sender: TObject; var Key: Char);

var rve: TCustomRichViewEdit;

    ItemNo, Offs: Integer;

begin

  if IgnoreNextChar then begin

    IgnoreNextChar := False;

    exit;

  end;

  IgnoreNextChar := False;

  if not ((Key=#9) or (Key>=' ')) then

    exit;

  rve := RichViewEdit1;

  while rve.InplaceEditor<>nil do

    rve := TCustomRichViewEdit(rve.InplaceEditor);

  if rve.SelectionExists then

    exit;

  ItemNo := rve.CurItemNo;

  Offs  := rve.OffsetInCurItem;

  if (Offs>=rve.GetOffsAfterItem(ItemNo)) then begin

    if (ItemNo+1<rve.ItemCount) and

       not rve.IsFromNewLine(ItemNo+1) then begin

      inc(ItemNo);

      Offs := rve.GetOffsBeforeItem(ItemNo);

      end

    else

      exit;

  end;

  rve.SetSelectionBounds(ItemNo, Offs, ItemNo, Offs+1);

  rve.Invalidate;

end;






> Hi,

>

> TRichViewEdit can change between Insert mode and overwrite mode?

>

> if can not, are you planning to support?

>

> Thanks,

>

> Lee





Powered by ABC Amber Outlook Express Converter