当前位置 : 主页 > 手机开发 > 无线 >

德尔福 – 移动TRichEdit Caretpos

来源:互联网 收集:自由互联 发布时间:2021-06-10
有没有办法改变像素中的插入位置? 每当我移动鼠标鼠标时,我想移动护理pos. 喜欢: 的OnMouseMove: MoveCaretPos(X,Y); 不,您不能在特定点设置插入符号的位置,而是必须将插入符号设置在字
有没有办法改变像素中的插入位置?

每当我移动鼠标鼠标时,我想移动护理pos.

喜欢:

的OnMouseMove:
  MoveCaretPos(X,Y);

不,您不能在特定点设置插入符号的位置,而是必须将插入符号设置在字符位置.为此,必须使用 EM_CHARFROMPOS消息检索指定点的最近字符,然后将返回的值设置为 SelStart属性.

检查此样本

procedure TForm1.RichEdit1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
 APoint  : TPoint;
 Index   : Integer;
begin
   APoint := Point(X, Y);
   Index :=  SendMessage(TRichEdit(Sender).Handle,EM_CHARFROMPOS, 0, Integer(@APoint));
   if Index<0 then Exit;
   TRichEdit(Sender).SelStart:=Index;
end;
网友评论