delphi中怎么判断memo滚动条滑到底部了
2017-03-20 · 知道合伙人软件行家
关注
展开全部
Memo 控件是 delphi 中的一个常用控件,用于进行简单的多行纯文本编辑。Memo 控件在初始默认设置时,不显示滚动条,需要手动设置 ScrollBars 属性为 ssBoth、ssVertical、ssHorizontal 用于显示水平、垂直滚动条:
Memo组件提供了文本编辑功能,但并没有直接提供获取滚动条的位置等属性,如果想获取滚动条的位置,可以借用 Windows API 中的相关函数来进行。相关的函数如下:
此 API 函数,经过 delphi 进行转换,定义函数原型如下:
其中 TScrollInfo 的结构定义如下:
结合上述资料信息,可以编写实现代码示例如下:
procedure TForm1.Button1Click(Sender: TObject);
var
SF: TScrollInfo;
begin
SF.fMask := SIF_ALL;
SF.cbSize := SizeOf(SF);
GetScrollInfo(Memo1.Handle, SB_VERT, SF);
if SF.nPos + SF.nPage = SF.nMax + 1 then
begin
ShowMessage('滚动条到达底部');
end;
Memo2.Lines.Add('');
Memo2.Lines.Add('cbSize: '+IntToStr(Sf.cbSize));
Memo2.Lines.Add('nMin: '+Sf.nMin.ToString);
Memo2.Lines.Add('nMax: '+Sf.nMax.ToString);
Memo2.Lines.Add('nPage: '+IntToStr(Sf.nPage));
memo2.Lines.Add('nPos: '+Sf.nPos.ToString);
Memo2.Lines.Add('nTrackPos: '+Sf.nTrackPos.ToString);
end;
运行截图:
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询