delphi中获取memo鼠标所在位置的行和列


本文整理自网络,侵删。

 
function GetLine(X, Y: integer): TPoint;
var
  OldFont : HFont;
  Hand : THandle;
  TM : TTextMetric;
  Rect : TRect;
begin
  Hand := GetDC(mmotest.Handle);
  try
    OldFont := SelectObject(Hand, mmotest.Font.Handle);
    try
      GetTextMetrics(Hand, TM);
      mmotest.Perform(EM_GETRECT, 0, longint(@Rect));
      Result.Y:= GetScrollPos( mmotest.Handle, SB_VERT ) +
                 (Y - Rect.Top) div (TM.tmHeight);
      Result.X:= (X - Rect.Left) div (TM.tmHeight);
      
      ShowMessage( IntToStr( Result.X ) + ',' + IntToStr( Result.Y ) );
    finally
      SelectObject(Hand, OldFont);
    end;
  finally
    ReleaseDC(mmotest.Handle, Hand);
  end;
end;

procedure TF_Main.mmotestMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  GetLine( x, y );
end;

相关阅读 >>

Delphi tarray<tarray<string>> 用法

Delphi2010安装twordapplication控件

Delphi colorbox不需要系统那么多颜色,只想自定义显示其中几个,怎么做?

Delphi strutils.dupestring - 反复字符串

Delphi内嵌汇编实现�载任意进程的某个dll

Delphi xe2 硬盘序列号

Delphi png异形窗口

Delphi dbgrid1查询只显示50条记录修改

Delphi10及以上版本安装activex控件

Delphi异常重启自身

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    正在狠努力加载,请稍候...