| 项目咨询 |积分体系 | 加入收藏 | 设为首页 | RSS
您当前的位置:首页 > 市场 > 百科 > 技术 > 夸父专栏

基于RICHVIEW的EMR开发文档十

时间:2013-10-08 20:45:23  来源:  作者:
更多

 http://blog.sina.com.cn/game7788

   夸父
何为覆盖模式?
当我们在编辑文档或者写代码时,经常会按到电脑上的insert按键来改变输入模式,正常情况下我们都是用的insert模式,当改变成overwrite模式下,会发现我们输入字符后不再自动退格,而是直接覆盖前面文字,按回车也不会自动增加新行!richview本身并没有支持overwrite模式,下面代码通过健盘的输入事件简单的实现这个功能。
var rve: TCustomRichViewEdit;
    ItemNo, Offs: Integer;
begin
  if IgnoreNextChar then begin //全局变量,判断当前item是否为空
    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
       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; 
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目更新
栏目热门