Difference between revisions of "BGRABitmap tutorial/es"

From Lazarus wiki
Jump to navigationJump to search
(creación)
 
(categories)
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{BGRABitmap_tutorial}}
+
{{BGRABitmap_tutorial}}[[category:Castellano|C]][[category:Español|C]]
  
 
{{BGRABitmap_tutorial_index/es}}
 
{{BGRABitmap_tutorial_index/es}}
  
Este primer tutorial muestra como usar la librería [[BGRABitmap]].
+
[[Category:Graphics/es]]
 
+
[[Category:Tutorials/es]]
=== Crear un nuevo proyecto ===
 
 
 
Crea una aplicación gráfica con el menú '''Proyecto > Nuevo proyecto'''.
 
 
 
La unidad principal debería verse como esto :
 
 
 
<delphi>unit UMain;
 
 
 
{$mode objfpc}{$H+}
 
 
 
interface
 
 
 
uses
 
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
 
 
 
type
 
 
 
  { TForm1 }
 
 
 
  TForm1 = class(TForm)
 
  private
 
    { private declarations }
 
  public
 
    { public declarations }
 
  end;
 
 
 
var
 
  Form1: TForm1;
 
 
 
implementation
 
 
 
initialization
 
  {$I UMain.lrs}
 
 
 
end.</delphi>
 
 
 
Si no la encuentras usa '''Ctrl-F12''' para mostrar la lista de archivos.
 
 
 
Guarda tu proyecto continuo a la librería BGRABitmap con el menú '''Archivo > Guardar todo''' (no necesariamente en la misma carpeta).
 
 
 
=== Agrega referencia a BGRABitmap ===
 
 
 
En la unidad añade referencia a BGRABitmap y a BGRABitmapTypes luego de 'Dialogs'.
 
 
 
<delphi>uses
 
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 
  BGRABitmap, BGRABitmapTypes;</delphi>
 
 
 
Luego tienes que hacer el proyecto dependiente de las unidades de BGRABitmap. Hay dos formas.
 
 
 
==== Mediante la instalación del paquete BGRABitmap ====
 
 
 
Abre bgrabitmappack.lpk y haz clic en instalar. Un dialogo se muestra preguntando si el paquete debe ser agregado a Lazarus y si es necesario compilarlo nuevamente. Elije Si dos veces.
 
 
 
Si todo sale bien, Lazarus se reinicia y las unidades de BGRABitmap están disponibles. Si esto no funciona, puedes simplemente añadir BGRABitmap a la ruta de búsqueda sin tener que compilar Lazarus.
 
 
 
==== Añadiendo las unidades de BGRABitmap a la ruta de búsqueda ====
 
 
 
La otra forma es agregar las unidades de BGRABitmap a la ruta de búsqueda del proyecto. Para hacer esto, ve a las opciones del compilador con el menú '''Proyecto > Opciones del compilador'''. En la otra ruta de unidades agrega BGRABitmap. Por ejemplo, si BGRABitmap esta en una carpeta siguiente a tu proyecto, la ruta relativa puede ser "..\BGRABitmap".
 
 
 
Si copias los archivos de BGRABitmap en la misma carpeta de tu proyecto, entonces no necesitas agregar esa ruta de busqueda. Pero no es recomendado porque si tienes multiples proyectos usando la librería puede volverse repetitiva la tarea de actualizar la nueva versión de la librería.
 
 
 
Si estás perdido con la ruta relativa, puedes también agregar la ruta relativa añadiendo la unidad BGRABitmap en tu proyecto. Para hacer eso, abre con tu proyecto el archivo bgrabitmap.pas. Luego usa el menú '''Proyecto > Añadir archivo al proyecto'''. Lazarus preguntará si quieres agregar el archivo al proyecto y al nuevo directorio al proyecto.
 
 
 
=== Agrega algunos dibujos ===
 
 
 
Agrega un evento de pintado. Para hacer esto haz clic en la Forma (Form) luego ve al inspector de objetos, en la pestaña de eventos haz doble clic en el evento OnPaint. Lazarus agregará automáticamente un manejador FormPaint a la unidad principal. Agrega por ejemplo el siguiente código dentro:
 
<delphi>procedure TForm1.FormPaint(Sender: TObject);
 
var bmp: TBGRABitmap;
 
begin
 
  bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
 
  bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet);  //rellena un rectángulo naranja
 
  bmp.Draw(Canvas, 0, 0, True);                          //renderiza el BGRABitmap en la Forma
 
  bmp.Free;                                              //libera la memoria
 
end;</delphi>
 
 
 
Como puedes ver, necesitas definir una variable TBGRABitmap y crearla. Hay diferentes constructores para TBGRABitmap. El primero usado aquí crea un bitmap de tamaño ClientWidth x ClientHeiht rellenado con negro. ClientWidth y ClientHeight son propiedades de forma que regresan el espacio disponible para dibujar dentro de la forma.
 
 
 
El procedimiento FillRect toma parametros similares para dibujar un rectángulo, esto es la esquina superior-izquierda seguido por la esquina inferior-derecha mas 1. Esto significa que el pixel a (100,40) es excluido del rectángulo.
 
 
 
Luego de eso, hay un parámetro color con componentes rojo/verde/azul y un modo de dibujo. dmSet significa que simplemente reemplaza los píxeles.
 
 
 
No olvides liberar el objeto luego de usarlo, para evitar pérdida de memoria.
 
 
 
=== Código resultante ===
 
 
 
Deberías obtener el siguiente código:
 
<delphi>unit UMain;
 
 
 
{$mode objfpc}{$H+}
 
 
 
interface
 
 
 
uses
 
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
 
  BGRABitmap, BGRABitmapTypes;
 
 
 
type
 
 
 
  { TForm1 }
 
 
 
  TForm1 = class(TForm)
 
    procedure FormPaint(Sender: TObject);
 
  private
 
    { private declarations }
 
  public
 
    { public declarations }
 
  end;
 
 
 
var
 
  Form1: TForm1;
 
 
 
implementation
 
 
 
{ TForm1 }
 
 
 
procedure TForm1.FormPaint(Sender: TObject);
 
var bmp: TBGRABitmap;
 
begin
 
  bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
 
  bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
 
  bmp.Draw(Canvas,0,0,True);
 
  bmp.Free;
 
end;
 
 
 
initialization
 
  {$I UMain.lrs}
 
 
 
end.</delphi>
 
 
 
=== Ejecuta el programa ===
 
 
 
Deberías obtener una ventana rellenada en negro con un rectángulo naranja en ella.
 
 
 
[[Image:BGRATutorial1.png]]
 
 
 
[[BGRABitmap tutorial 2|Ir al siguiente tutorial (cargar imágen)]]
 
 
 
[[Category:Graphics]]
 

Latest revision as of 15:05, 28 September 2012