平滑滚动的奥妙!(高手请指点)(200分)

  • 主题发起人 主题发起人 dropme
  • 开始时间 开始时间
D

dropme

Unregistered / Unconfirmed
GUEST, unregistred user!
想实现ReadBook那样的平滑滚动,听说现在一般的做法是把文字变成图片,然后输出到一个image上,再滚动,但是这样很浪费资源,而且改变窗口大小时,窗口闪的厉害。其实大家可以做一下这个实验<br>如果你的鼠标有滚轮的话,打开一个记事本,多输入些文字,让右边有滚动条,然后按下鼠标中键,怎样?效果很棒吧?而且滚动条还会自动下拉。<br>怎样模拟这个过程呢?请高手指教。<br>我查到了一个函数,应该有用:ScrollWindow,还有一个ScrollWindowEx;还请大家讨论一下;<br>哦,忘了说了,比如让一个RichEdit滚动,则用一个计时器,写上<br>ScrollWindow(RichEdit.handle,0,-1,。。。)就行了,不过会有一些问题。大家作做就知道了!<br>
 
用webbrower吧...做成html網頁型式...一定可以平滑滾動.
 
具体点可好?我菜菜!
 
ontime事件<br>var doc:ihtmldocument2;<br>&nbsp; &nbsp;MaxScrollHeight:integer=0;<br>&nbsp; &nbsp;ScrollHeight:integer=0;<br>begin<br>if webbrowser1.Document &lt;&gt; nil then<br>begin<br>&nbsp; &nbsp;doc:=webbrowser1.document as ihtmldocument2;<br>&nbsp; &nbsp;maxscrollheight:=doc.body.getAttribute('scrollheight',0);<br>&nbsp; &nbsp;if &nbsp;scrollheight &lt; maxscrollheight then<br>&nbsp; &nbsp;begin<br>&nbsp; &nbsp;scrollheight:=scrollheight+scrspeed;<br>&nbsp; &nbsp;if scrollheight&lt;=maxscrollheight then<br>&nbsp; &nbsp;doc.Get_parentWindow.scrollBy (0,scrspeed);<br>end<br>else<br>&nbsp; &nbsp;scrollheight:=maxscrollheight;<br>end;
 
还是曲线救国的方法,ScrollWindowEX不可以的吗??
 
SendMessage(Memo1.Handle, WM_VSCROLL, SB_LINEDOWN, 0);<br><br>用一个定时器触发时调用以上方法就可以了
 
循环向下滚屏<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>&nbsp; VMsg: integer;<br>begin<br>&nbsp; VMsg := SendMessage(RichEdit1.Handle, EM_SCROLL,SB_LINEDOWN,0);<br>&nbsp; if VMsg = 65536 then SendMessage(RichEdit1.Handle,EM_SCROLL, SB_top,0);<br>end;
 
我也想知道。
 
SendMessage(RichEdit1.Handle, EM_SCROLL,SB_LINEDOWN,0);<br>这种东西会一行一行的向下跳啊?这能叫平滑??
 
readbook用的是DirectDraw技术。
 
你试试这段 看看算不算平滑?<br><br>&nbsp; repeat<br>&nbsp; &nbsp; R := Memo1.Perform(EM_SCROLL, SB_LINEDOWN, 0);<br>&nbsp; &nbsp; Memo1.Update;<br>&nbsp; &nbsp; Sleep(100);<br>&nbsp; until LoWord(R) = 0;
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=676892<br>如何实现象ReadBook一样实现文本的无级卷屏(200分大赠送)<br>AAFont 平滑特效字体控件包 V2.59<br>http://www.yygw.net/download/AAFont2.59.zip
 
AAfont那个包我用了,挺好的,但是他也是转成图,然后滚动。你用下ReadBook,滚动时还可以选择文字呢!怎么说?
 
可以试试用把memo放到Panel里然后改变memo的TOP试试可以很平滑的呵呵,再放ScrollBar<br>到memo…………<br>呵呵我以前都是这么做的,很傻呵。
 
多谢这位老兄!<br>===============================<br>不过哪个高手可以正面解决我的问题啊??<br><br>不然给我说下怎么用ScrollWindowEx来滚动RichEdit。
 
后退
顶部