注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

DELPHI Memo1自动循环上下滚屏  

2013-01-24 22:13:31|  分类: delphi xe3 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

--------------Start--------------------

procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Memo1.Perform(EM_SCROLL,SB_LINEDOWN,0)=0 then
begin
Memo1.Perform(WM_VSCROLL,SB_TOP,0);
end
else
begin
SendMessage(Memo1.Handle,WM_VSCROLL,SB_LINEDOWN,0);
end;
end;

--------------End--------------------

---希望对做屏幕滚动的朋友,有实际的使用价值.



// 执行到底 SendMessage(Memo1.Handle, EM_SCROLL, SB_BOTTOM, 0);
//一步一步往下走 SendMessage(Memo1.Handle,WM_VSCROLL,SB_LINEDOWN,0);
// 往下走 SendMessage(Memo1.Handle,EM_SCROLL,SB_PAGEDOWN,0);

if Memo1.Perform(EM_SCROLL, SB_LINEDOWN, 0)=0 then//下滚
button2.Enable := False;
if Memo1.Perform(EM_SCROLL, SB_LINEUP, 0)=0 then//上滚
button1.Enable := False;


如何编程使Memo的滚动条滚到行首?

发送消息:
WPARAM para = MAKELONG(SB_THUMBPOSITION,0);//将滚动条移动到0
SendMessage(Memo1->Handle,WM_VSCROLL,para,0);

Memo1->Perform(EM_SCROLL, SB_TOP, 0); //第一行
Memo1->Perform(EM_SCROLLCARET,0,0); //自动滚动到最后一行

改进一下:
Memo1->Lines->BeginUpdate();
Memo1->Perform(WM_VSCROLL,SB_TOP,0); //先回到顶部
for(int i=0; i<1500; ++i) //向下滚1500行
Memo1->Perform(WM_VSCROLL,SB_LINEDOWN,0);
Memo1->Lines->EndUpdate();



移到指定位置,发送消息 吧
WPARAM para = MAKELONG(SB_THUMBPOSITION,50);//将滚动条移动到50 Position
//具体参数请看win32帮助有关于WM_VSCROLL的帮助
// Memo1->Perform(WM_VSCROLL,para,0); //这个也行
SendMessage(Memo1->Handle,WM_VSCROLL,para,0);
  评论这张
 
阅读(426)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017