.OnShow()是当Form1.Visible由false变true时,才激活一次;
即执行Form1.Show()方法时,事件才有一次机会;

解决方案 »

  1.   

    onshow()后又执行了onactived(),给刷新了!所以看不见了.....放在onactived()就行了!
      

  2.   

    不是ONSHOW菜,而是你才菜。
    首先你因该了解form生成是触发的事件的次序,然后你才能决定在哪儿家。
    你这种做法是让我不知说什么好。给你一个例子:
    procedure WMERASEBKGND(var Msg: TWMEraseBKGnd); message WM_ERASEBKGND;
    procedure TMain_Frm.WMERASEBKGND(var Msg: TWMEraseBKGnd);
    var
      MDC: HDC;
      Ro, Co: Word;
    begin
      MDC := TWMEraseBKGnd(Msg).DC;
      for Ro := 0 to ClientHeight div Image1.Picture.Height do
        for Co := 0 to ClientWidth div Image1.Picture.Width do
          BitBlt(MDC, Co * Image1.Picture.Width, Ro * Image1.Picture.Height,
                 Image1.Picture.Width, Image1.Picture.Height,
                 Image1.Picture.Bitmap.Canvas.Handle, 0, 0, SRCCOPY);
      Msg.Result := 1;
    end;在这里用BITBLT或者其他的多可以