{
关键字=delphi中获取memo鼠标所在位置的行和列
采集软件=MKM - 我的知识管理
采集日期=2023-11-23 17:31:01
数字签名=733B67985DAFBC81508A8E5426294853
}
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Menus, ImgList;
uses umd5, MMSystem, shellapi;
//delphi中获取memo鼠标所在位置的行和列
function GetLine(X, Y: integer): TPoint;
var
OldFont: HFont;
Hand: THandle;
TM: TTextMetric;
Rect: TRect;
begin
{delphi中获取memo鼠标所在位置的行和列
}
Hand := GetDC(form1.memo1.Handle);
try
OldFont := SelectObject(Hand, form1.memo1.Font.Handle);
try
GetTextMetrics(Hand, TM);
form1.memo1.Perform(EM_GETRECT, 0, longint(@Rect));
Result.Y := GetScrollPos(form1.memo1.Handle, SB_VERT) +
(Y - Rect.Top) div (TM.tmHeight);
Result.X := (X - Rect.Left) div (TM.tmHeight);
finally
SelectObject(Hand, OldFont);
end;
finally
ReleaseDC(form1.memo1.Handle, Hand);
end;
end;