Board logo

Subject: 在AAFont基础上写的一个水平滚动控件 [Print This Page]

Author: Bear_hx    Time: 2007-12-27 20:15     Subject: 在AAFont基础上写的一个水平滚动控件

在TAAGraphicControl的基础上继承,支持TAAFontEffect字体效果的水平滚动控件,管理员看看是否可以加入组件包。
Author: Passion    Time: 2007-12-27 23:18

感谢关注。
请问在哪儿?
Author: Bear_hx    Time: 2007-12-28 22:36

我已经把代码发给你。
Author: Bear_hx    Time: 2007-12-28 22:48

控件代码在你的Cnpack邮箱里面。附件是演示Demo

Attachment: 水平滚动演示Demo AALevScrTextDemo.zip (2007-12-28 22:48, 233.22 K) / Download count 557
http://bbs.cnpack.org/attachment.php?aid=367
Author: Passion    Time: 2007-12-29 00:42

能否告知您发的邮件主题是什么?不好意思,每天接近上千封垃圾邮件,不容易找。
Author: Passion    Time: 2007-12-29 00:47

啊不对,我论坛中登记的邮件地址还是passion这个旧的。估计没收到。
发到master@cnpack.org吧?
Author: Passion    Time: 2007-12-29 12:16

代码非常不错,如果您同意开源的话,可以加入CnPack组件包。
新组件拟命名为TCnAAMarqueeText(字幕文本组件),并入AACtrl.pas文件,文件中将保留您的署名。
请问您意下如何?
Author: jAmEs_    Time: 2007-12-29 12:41

支持~~
Author: Bear_hx    Time: 2007-12-29 16:36

个人没有问题,谢谢版主可以加入控件组
Author: Bear_hx    Time: 2007-12-29 16:37

个人没有问题,谢谢版主可以加入控件组
Author: kendling    Time: 2008-1-3 15:19

好占资源噢。
Author: croslq    Time: 2008-1-6 14:32

你这个程序速度有问题,哈哈,我把你哪个demo最大化,速度就明显变慢


应该优化一下,如:只滚动变化哪一块,
哈哈,不好意思,我只是提出了个人使用的感觉

[ 本帖最后由 croslq 于 2008-1-6 14:35 编辑 ]
Author: Passion    Time: 2008-1-7 10:07

哪位朋友有兴趣来优化一下?
Author: Bear_hx    Time: 2008-1-11 16:00

你这个程序速度有问题,哈哈,我把你哪个demo最大化,速度就明显变慢

应该优化一下,如:只滚动变化哪一块,
哈哈,不好意思,我只是提出了个人使用的感觉

最大化是很占CPU资源的,因为平滑是取附近的点进行运算平滑的,代码:
  for j := 0 to RGBBmp.Height - 1 do
  begin
    pMask := Mask.ScanLine(j);
    pRGB := RGBBmp.ScanLine[j];
    for i := 0 to RGBBmp.Width - 1 do
    begin
      Weight := pMask^ * AAlpha shr 8; //混合系数
      if Weight <> 0 then
      begin
        if Weight = 255 then
        begin                           //前景色
          pRGB^.rgbtBlue := b;
          pRGB^.rgbtGreen := g;
          pRGB^.rgbtRed := r;
        end
        else
        begin                           //混合
          Inc(pRGB^.rgbtBlue, Weight * (b - pRGB^.rgbtBlue) shr 8);
          Inc(pRGB^.rgbtGreen, Weight * (g - pRGB^.rgbtGreen) shr 8);
          Inc(pRGB^.rgbtRed, Weight * (r - pRGB^.rgbtRed) shr 8);
        end;
      end;
    end;
  end;
所以控件不能太大,不然运算范围很大,CPU就占用很严重。
Author: croslq    Time: 2008-1-17 19:50

你只选取你滚动的地方,叠加三




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0