我的scrollbox里面是动态提取的控件,行数不确定,用两个label来模拟翻页,用SendMessage()翻页时,每点击一下翻三行,我想达到的效果是,向下翻到最后结尾时,控制向下的label变灰,同样,向上翻到最顶时,向上的label变灰,但是不知道该怎么判断是翻到了结尾,请大家指教,先拜大家了!
procedure TForm3.Label1Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEUP, 0);
end;procedure TForm3.Label2Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
end;
procedure TForm3.Label1Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEUP, 0);
end;procedure TForm3.Label2Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
end;
解决方案 »
- 怎样用delphi编写个电子琴程序?
- 突然在网上看见两年前未能解决的问题,delphi高手请进!!!
- 第三方控件TRzCheckTree第三层数据如果被选中变灰不能被修改如何实现?
- 如何实现这样的效果
- 请教edit控件怎样设置才能只接受数字输入?
- 请教简单的API函数的问题 !
- 怎样使控件如按钮,滚动条变成平面的,用setwindowslong吗?
- 请问在局域网中能否指定一台机器作为主服务器给局域网中的其它机器提供Web Service服务?
- 如何修改网卡的IP地址?
- 谁知道断点下载在DELPHI里如何实现?
- 如何将unicode编码的文件转化位ascii文件
- 为何在TCusomGrid的Paint过程中第一行代码上下了断点,但在程序执行中不能产生中断?
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
if scrollbox1.VertScrollBar.Range - scrollbox1.VertScrollBar.Position + 20 = scrollbox1.Height then
button1.Enabled:= false
else
button2.Enabled:= true;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEUP, 0);
if scrollbox1.VertScrollBar.Position = 0 then
button2.Enabled:= false
else
begin
button1.Enabled:= true;
end;
end;
begin
ScrollBox1.HorzScrollBar.Position:=ScrollBox1.HorzScrollBar.Position+3;
end;
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEUP, 0);
if scrollbox1.VertScrollBar.Position = 0 then
label1.Enabled:= false
else
begin
label2.Enabled:= true;
end;
end; //这个成功了,向上翻到最后,这个label变灰了
procedure TForm3.Label2Click(Sender: TObject);
begin
SendMessage(ScrollBox1.Handle, WM_VSCROLL, SB_PAGEDOWN, 0);
if scrollbox1.VertScrollBar.Range - scrollbox1.VertScrollBar.Position + 79 = scrollbox1.Height then
label2.Enabled:= false
else
label1.Enabled:= true;
end; //这个不行,翻到最后,还是亮的
var p:integer;
begin
p:=ScrollBox1.HorzScrollBar.Position;
ScrollBox1.HorzScrollBar.Position:=ScrollBox1.HorzScrollBar.Position+50;
if p=ScrollBox1.HorzScrollBar.Position then button1.Enabled:=false;
end;
var p:integer;
begin
p:=ScrollBox1.HorzScrollBar.Position;
ScrollBox1.HorzScrollBar.Position:=ScrollBox1.HorzScrollBar.Position+50;
if p=ScrollBox1.HorzScrollBar.Position then button1.Enabled:=false;
end;