trichview.com

trichview.support




Re: Insert/Overtype Status


Return to index


Author

Message

Louis Kessler

Posted: 02/10/2003 2:22:34


Sergey:


This works, but is there any way to keep that next character selected as a

visual indicator to the user that it is the character that will next be

overwritten?


The selection gets deleted by TCustomRichViewEdit.KeyPress just after the code

below is executed.


Louis Kessler

Winnipeg, Manitoba, Canada




"Sergey Tkachenko" <[email protected]> wrote in message

news:[email protected]...

> RichView does not support overwrite mode directly.

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

> pressing. The code is below.

>

> 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.TopLevelEditor;

>   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;

>

>

>





Powered by ABC Amber Outlook Express Converter