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登陆验证方法

Delphi qr /条形码扫描仪应用示例代码(使用zxing,tframestand)

Delphi 对gzip解压

Delphi android实例-红外线操作(xe10.2+小米5)

Delphi检测程序是否在优盘上运行

Delphixe7关于android 检测屏幕是否处于关闭状态

Delphi 内存管理[5]

Delphi findwindow的一些用法

Delphi 把字节数显示成kb或gb的函数

Delphi 金木水火土 生克用法

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



打赏

取消

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

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

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

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

评论

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