如题,我的一个黑色背景的image,然后上面放了一个label,定时器是1秒钟变化label的数字的,结果发现过程会闪烁,这个怎么解决啊,我设置了,procedure Tfrm_Main.FormCreate(Sender: TObject);
begin
  Self.DoubleBuffered :=true ;
end;
这样好像还是没用啊,咋弄呢

解决方案 »

  1.   

    win7下测试,不会善。可能跟显卡有关系。
      

  2.   

    vcl的重画机制效率比较低导致大面积重画时闪烁。所以要么重载控件的一些跟重画相关的方法,要么用firemonkey。
      

  3.   

    我IMAGE里面放了一个PNG的图片,然后就是图片上放了一个label,每秒改变label的内容,呵呵,有简单点方法吗?重载,没怎么做过,感觉比较复杂
      

  4.   

    不用Label,直接在图片上TextOut画字
      

  5.   

    TEXTOUT好像只能是bitmap,我的是PNG,咋弄呢,还有textout能对输出的字进行FONT类的属性修改吗?
      

  6.   

    要么重载,要么firemonkey,你自己选吧。
      

  7.   

    image.picture.canvas应该可以textout。我是手机不方便核实。textout之前可以设置canvas.font。
      

  8.   

    大图片里textout也许还是会闪烁,你试试看
      

  9.   


    刚才试验了一下,还是闪烁的啊,而且图片只能装在的是BMP,我用的是PNG,输出的字带有矩形区域的,貌似不行啊,呵呵
      

  10.   

    但是我是DELPHI 7  啊,没有别的方法了吗?
      

  11.   

    那你若不把label从image上挪走,就只有重载这一条路了。
      

  12.   

    timer事件有时就会有“闪屏”的效果的
      

  13.   


    我应该重载哪一个函数呢,求指教楼上的兄弟,这个跟TIMER,有关系吗
      

  14.   


    那如果不用TIMER,用什么方法呢?呵呵
      

  15.   

    更正一下,我在这个TIME事件加入事,就不“闪屏”
       label1.Caption:=FormatDatetime('yyyy-mm-dd  hh:mm:ss',now());
      

  16.   

    记不确切了,大概是invalid开头的一个方法。
      

  17.   

    在create事件中加入如下代码:
       label1.Transparent:=true;
      

  18.   

    BambooCaep 
    (乱拳) 
    你继续吧,我明天还要上班了呀,
    这事就交给你了呀
      

  19.   

    恩,我刚才试验了,窗体上放两个最简单的,组件,就一个image和LABEL,还有TIMER,大概25秒左右闪一次,invalid方法,我去看看
      

  20.   

    首先看你图片多大。
    其次是用label来刷真的不是神马好办法。
    最后,如果是我,而且图较小的话我会用双缓冲来画图兼写字。双缓冲画图不是指--->(Self.DoubleBuffered :=true ;)
      

  21.   

    就是上面的图片,一个黑色背景的PNG图片,上面是绿色的数字,那个数字一直动,1秒钟动一次
      

  22.   


    我用的是DELPHI7 ,在网上下载了一个GDI+ PLUS CONTROL ,少了文件:[Fatal Error] GDIPlusControls.dpk(34): Required package 'TntUnicodeVcl_R70' not found请问哪里可以下载到适合D7的类库呢
      

  23.   


    我加载的是PNG图片,canvas好像只有BMP下才可以重绘啊,还有如果不是Self.DoubleBuffered :=true ,那是指什么呢
      

  24.   

    发现那个设置双缓冲 ,只对BMP位图才有效,如果PNG图片的图源好像没什么用啊
      

  25.   

    有那么多时间折腾gdi+,不如直接用firemonkey,绝对不闪。
      

  26.   

    看来真的有必要去学学DELPHI XE2