如上,一解决就结贴
谢谢

解决方案 »

  1.   

    试试:Image1.Parent.DoubleBuffered := True;
      

  2.   

    请查看相关源代码:procedure TImage.PictureChanged(Sender: TObject);
    var
      G: TGraphic;
    begin
      if AutoSize and (Picture.Width > 0) and (Picture.Height > 0) then
    SetBounds(Left, Top, Picture.Width, Picture.Height);
      G := Picture.Graphic;
      if G <> nil then
      begin
    if not ((G is TMetaFile) or (G is TIcon)) then
      G.Transparent := FTransparent;
    if (not G.Transparent) and Stretch and not Proportional then
      ControlStyle := ControlStyle + [csOpaque]
    else  // picture might not cover entire clientrect
      ControlStyle := ControlStyle - [csOpaque];
    if DoPaletteChange and FDrawing then Update;
      end
      else ControlStyle := ControlStyle - [csOpaque];
      if not FDrawing then Invalidate;
    end;重点注意ControlStyle := ControlStyle + [csOpaque]所以可设置Transparent:=False,Proportional:=False,Stretch:=True即可达到你要的效果
      

  3.   

    如果控件的 ComponentStyle 属性集合没有包含 csOpaque 的话,呼叫 Invalidate方法时 会导致元件的背景先被擦掉再重绘。
      

  4.   

    不行就设置VISIBLE为FALSE
    等加载完了再设置为TRUE
      

  5.   

    设置visible这招好象也没什么用啊!
    还有没有什么啊?
      

  6.   

    to  ehom(?!) :
    我是新手
    可不可以在详细的解释一下上边你说的
    “如果控件的 ComponentStyle 属性集合没有包含 csOpaque 的话,呼叫 Invalidate方法时 会导致元件的背景先被擦掉再重绘。”
    谢谢