trichview.support
Re: Overwrite input mode |
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