在程序运行过程中移动TPanel控件超过了它的容器后如何产生滚动条?(10分)

  • 主题发起人 主题发起人 cb422
  • 开始时间 开始时间
C

cb422

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序运行过程中移动TPanel控件超过了它的容器后如何产生滚动条?
 
ScrollBox可以
 
yzhshi
我说的是在程序运行的过程中,而不是在设计的过程中
 
也许发送消息可以,我试试看。
 
其实ScrollBox可以在运行的时候起作用呀。没问题的。
 
yzhshi,当我在scrollbox中移动TPanel控件到scrollbox的边缘时,scrollbox没有出现
滚动条
 
出现啊,只要设置ScrollBox的AutoScroll为True,就可以的,我实验了。
放一个Button1,然后在ScrollBox里面放置一个Edit1,然后在Buton1的OnClick里面写:
Edit1.Left:=400,看看是否有效果?
我就是这样实验的。OK!
 
你说的情况我已经试过了,可以但是我想实现的效果是,在scrollbox中点击button控件
并且移动它(在运行中点击鼠标移动控件),但超过scrollbox如何马上出现滚动条?
可以发送什么消息吗?
 
写出你的事件来。
 
yzhshi,上面的问题我已经解决。现在我不知道如何捕捉scrollbox在运行时出现的消息
 
procedure TQRArea.WMVSCroll(var Msg:TWMVSCroll);
var
//滚动条信息
SI: TScrollInfo;
pos: integer;
i: integer;
begin
inherited;
pos := 0;
SI.cbSize := SizeOf(TScrollInfo);
SI.fMask := SIF_ALL;

for i :=0 to ControlCount - 1 do
begin
if Controls is TQRTable then
begin
if Pos < Controls.Top + Controls.Height then
pos := Controls.Top + Controls.Height;
end;
end;
 
后退
顶部