如何将图片平铺在窗体的画布上?

解决方案 »

  1.   

    onpaint事件中;canvas.draw(0,0,picture.graphics);
    或者StretchDraw
      

  2.   

    谢谢。是 Tile,重复平铺,不是拉伸。
      

  3.   

    //下面是将Image2平铺到Image1里,Image2.Width := 79; Image2.Height := 80
    var
          I : Integer;
    begin
          for I := 0 to Image1.Width div 79 do
                for J := 0 to MainForm.Height div 80 do
                      Canvas.Draw(I * 79, J * 80, Image2.Picture.Graphic);
    end;
      

  4.   

    //把上面改一下var
          I : Integer;
    begin
          for I := 0 to Image1.Width div 79 do
                for J := 0 to Image1.Height div 80 do
                      Image1.Canvas.Draw(I * 79, J * 80, Image2.Picture.Graphic);
    end;
      

  5.   

    //正确的例子
    procedure TForm1.FormPaint(Sender: TObject);
    var
          I, J : Integer;
    begin
          for I := 0 to Form1.Width div 79 do
                for J := 0 to TForm1.Height div 80 do
                      Canvas.Draw(I * 79, J * 80, Image2.Picture.Graphic);
    end;