trichview.support
Re: Is it a bug? |
Author |
Message |
Sergey Tkachenko |
Posted: 06/28/2004 15:15:46 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; > Why TRichViewEdit can not worked in OVERWRITE mode? > Nothing happened after I pressed INS key.All input text were in INSERT mode. > > |
Powered by ABC Amber Outlook Express Converter