F fatBaby Unregistered / Unconfirmed GUEST, unregistred user! 2001-01-18 #1 我需要知道当前的滚动条有没有拉到最下面,请教方法, 我用 GetScrollRange 和 GetScrollPos 得出的值有点不对,不知为什么
D dq Unregistered / Unconfirmed GUEST, unregistred user! 2001-01-18 #2 试了一下,发现即使拉到最下面了,TScrollInfo里的nPos还是不会等于nMax的。 用Ctrl-End或是拖动滚动条到不能再拖的方法得到的nPos等于nMax-nPage; 再用点滚动条的向下滚动按钮直到不能再往下的时候nPos也只是增加了1。 如果这个现象是普遍的,那么可以这样判断—— procedure TForm1.Button1Click(Sender: TObject); var SI: TScrollInfo; begin SI.cbSize := SizeOf(TScrollInfo); SI.fMask := SIF_ALL; GetScrollInfo(RichEdit1.Handle, SB_VERT, SI); if SI.nPos + SI.nPage >= SI.nMax then ShowMessage('已经到底了!'); end;
试了一下,发现即使拉到最下面了,TScrollInfo里的nPos还是不会等于nMax的。 用Ctrl-End或是拖动滚动条到不能再拖的方法得到的nPos等于nMax-nPage; 再用点滚动条的向下滚动按钮直到不能再往下的时候nPos也只是增加了1。 如果这个现象是普遍的,那么可以这样判断—— procedure TForm1.Button1Click(Sender: TObject); var SI: TScrollInfo; begin SI.cbSize := SizeOf(TScrollInfo); SI.fMask := SIF_ALL; GetScrollInfo(RichEdit1.Handle, SB_VERT, SI); if SI.nPos + SI.nPage >= SI.nMax then ShowMessage('已经到底了!'); end;