我想请问一下,image大的时候,不怎么闪烁,只是缩小的时候,移动很历害,怎么回事,如何解决?
image1.Parent.DoubleBuffered := True我已经设置过了

解决方案 »

  1.   

    procedure TfmSplash.FormCreate(Sender: TObject);
    begin
     DoubleBuffered := true;
     
    end;
      

  2.   

    移动慢一点。好办法,不过据说3.6GCPU+4G内存,1G.GPU+1G显存可以彻底解决这个问题
      

  3.   

    >>3.6GCPU+4G内存,1G.GPU+1G显存(﹃_﹃!!)
      

  4.   

    按道理设置了Image的Parent的DoubleBuffer为True,就应该不会了呀,我以前也做过,完全不会闪烁了。
      

  5.   

    image1.stretch:=true;-------------------------
    水晶控件http://www.codeidea.com
      

  6.   

    我记得stretch和闪烁没关系Transparent和闪烁才有关系并且通过DoubleBuffer应该可以解决
      

  7.   

    试试看我的方法吧,闪烁情况试了再说。procedure TForm1.RefreshPicture();
    var
      Jpeg: TJpegImage;
    begin  self.Image1.Picture := nil;
      Jpeg := TJpegImage.Create;
      Jpeg.LoadFromFile('D:\tmp.jpg');
      self.Image1.Canvas.StretchDraw(Rect(0,0,Image1.Width,Image1.Height),Jpeg);
      Jpeg.Free;end;procedure TForm1.FormCreate(Sender: TObject);
    begin  self.DoubleBuffered := TRUE;
     Image1.Align := alClient;
      RefreshPicture();end;procedure TForm1.FormResize(Sender: TObject);
    begin  self.RefreshPicture();end;
      

  8.   

    FAQ里有现成的答案:
    Image可以更改Image.Proportional:=False  
     
    这样一来可以改变TControl.ControlStyle  
     
    ControlStyle  :=  ControlStyle  +  [csOpaque]  
    ---------------------------------------------------------------  
     
    在窗口的Create  事件中加入:  
       Self.DoubleBuffered  :=  True;  
    ---------------------------------------------------------------  
     
    Self.DoubleBuffered  :=  True;/ScrollBox.DoubleBuffered  :=  True;  
    //Self  or  parent  is  Image's  parent;  
    ---------------------------------------------------------------  
     
    哈,我也遇到过类似问题。最后解决了:  
    1.确定你的Canvas控件的父控件,即如果你的Canvas控件是Image1,它在Panel1上,他的  
    父控件为Panel1,如果在Scrollbox1上,他的父控件为Scrollbox1;  
    2.设置  父控件.doublebuffered:=true;