Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Imagen de Fondo en form (https://www.clubdelphi.com/foros/showthread.php?t=3223)

lafirma 28-08-2003 03:08:43

Imagen de Fondo en form
 
Tiempo atras use Visual Fox de MS, en esa herramienta indicaba una imagen de fondo para un form y si era pequeña la expandia al tamano del form, hacia una especie de copiar y pegar de la imagen hasta llenar el tamano del form, he intentado hacer esto en el form de delphi, no puede hacerlo porque no hay una propiedad que me permita indicar un bitmap, asi que lo ke he hecho es pegar un Image y alinear con alClient, pero cuando hago que la imagen se expanda ésta se distorsiona, por lo que no aparece de una forma agradable, como puedo lograr el efecto que quiero?

Er_Manué 28-08-2003 18:59:41

Es cierto que no tiene ninguna propiedad para poner una imagen de fondo del formulario, pero es facil hacerlo manualmente ;)

Este sería el código que debes añadir en tu aplicación para que nos pinte una imagen en el fondo del formulario en mosaico.

Código:

type
  TfPrincipal = class(TForm)
                              ....
                      private
                              ...
                              fondo : TBitmap;
                              ...
                      end;           

procedure TfPrincipal.FormCreate(Sender: TObject);
begin
  ....

  //Creamos las variables
  fondo := TBitmap.Create;

  //Cargamos las imagenes de fondo
  fondo.LoadFromFile('imagenes\Logo.bmp');
  ....
end;

procedure TfPrincipal.FormDestroy(Sender: TObject);
begin
  ...

  //Liberamos la memoria reservada para la imagen
  fondo.free;

  ...
end;

procedure TfPrincipal.FormPaint(Sender: TObject);
var
  fila,
  columna : integer;
begin
 
  //Recorremos toda la extensión del formulario pintando la imagen seleccionada
  for fila :=0 to Trunc(self.Height/fondo.Height) do
    for columna :=0 to Trunc(self.Width/fondo.Width) do
      canvas.Draw(columna * fondo.Width,
                  fila * fondo.Height,
                  fondo);
end;

Espero que te haya servido de utilidad ;)
Salu2


La franja horaria es GMT +2. Ahora son las 14:00:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi