我想在 TMemo 中获取文本(aWord)的像素位置/位置。我的代码是这样的:
var
Size: TSize;
Pt: Cardinal;
aWord: string;
x, y: Integer;
begin
...
Pt := Perform(EM_POSFROMCHAR, aStart-1, 0);
Windows.GetTextExtentPoint32(DC, PChar(aWord), aLen, Size);
x:= Smallint(LoWord(Pt));
y:= Smallint(HiWord(Pt));
最初它工作正常,但是当我向下滚动备忘录时,我在最后一行收到范围检查错误。
向下滚动时如何获取位置?
官方文档说:
如果字符已滚动到编辑控件的客户区域之外,则返回的坐标可能为负数。坐标被截断为整数值。
我不知道如何解释这个。