gpt4 book ai didi

delphi - 如何在TMemo中获取文本位置(以像素为单位)?

转载 作者:行者123 更新时间:2023-12-03 18:34:53 25 4
gpt4 key购买 nike

我想在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));


最初它可以正常运行,但是当我向下滚动便笺时,在最后一行出现了范围检查错误。

向下滚动时如何获得位置?



官方 documentation说:


如果字符已经被返回,则返回的坐标可以为负。
滚动到编辑控件的工作区之外。该坐标
被截断为整数值。


我不知道该怎么解释。

最佳答案

愚蠢。我的主意是“坐标被截断为整数值”-我仍然不知道这是什么意思。我正在尝试转换这些坐标。

解决方案很愚蠢:如果我们得到一个负数,则意味着文本在屏幕之外。我们不会尝试提取/转换Loword和HiWord。我们只是退出该过程。



Pt也应为“ NativeInt”。

关于delphi - 如何在TMemo中获取文本位置(以像素为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54381240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com