Put a tiled bitmap in your form's backgound  

Send By: Q3 Team
Web : http://www.q3.nu
Email: dlib@q3.nu
Date: 05/07/01

Tip accessed 512 times

 


It is enough with painting it in the event OnPaint of the form

The idea is the next:

  • Define a global variable type TBitmap to the whole form where we will load the image to put as background, that is to say, we define it in the var of the form:


     var
       Form1: TForm1;
       Fondo:TBitmap;
    



  • In the OnCreate event, we inicialize our variable, and load a bitmap in it:


     procedure TForm1.FormCreate(Sender: TObject);
     begin
       {Creamoa la variable}
       {Create our bitmap variable}
       Fondo := TBitmap.Create;
       {Cargamos en ella una imagen}
       {Load a image file into our bitmap}
       Fondo.LoadFromFile('c:\kk\q3.bmp');
     end;
    



  • And in the OnPaint event, we 'fill' the form's background with our bitmap:


     procedure TForm1.FormPaint(Sender: TObject);
     var
       filas,columnas : Integer;
     begin
    
       for filas:=0 to Trunc(Height/Fondo.Height) do
         for columnas:=0 to Trunc(Width/Fondo.Width) do
           Canvas.Draw(columnas*Fondo.Width,
                       filas*Fondo.Height,
                       Fondo);
     end;
    



  • To finish, before exit of the form, we must free our bitmap variable, so we will make this in the OnDestroy event of the form:


     procedure TForm1.FormDestroy(Sender: TObject);
     begin
       {Liberamos el bitmap}
       {Free our bitmap}
       Fondo.Free;
     end;
    




    Sent by: Manuel Rodriguez (jmrodinf@yahoo.com.mx)


    Se puede omitir el paso de crear la Clase TBMP para luego asignarle la imagen de un archivo con el método LoadFromFile.
    Esto con el simple heco de añadir a nuestra forma un componente TImage y cargarle una imagen en tiempo de diseño.

    El código propuesto anteriormente para el evento ONPaint de la forma permanece igual, sólo cambia la última línea que dibuja al canvas por la siguiente:


     Canvas.Draw(columnas*image1.Width,
                        filas*image1.Height,
                        image1.Picture.Bitmap);
    



    Con esto la imagen estará compilada en el proyecto ahorrando tiempo de ejecución y evitando la necesidad de que exista previamente el archivo de imagen.




    Updated at 05/07/2001