Sign in Join
Wiki copytemporary

BGRABitmap tutorial 1/es: what changed

Revision 3 to 4. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-[[BGRABitmap tutorial/es|**Home**]] | **Tutorial 1** | [[BGRABitmap tutorial 2/es|**Tutorial 2**]] | [[BGRABitmap tutorial 3/es|**Tutorial 3**]] | [[BGRABitmap tutorial 4/es|**Tutorial 4**]] | [[BGRABitmap tutorial 5/es|**Tutorial 5**]] | [[BGRABitmap tutorial 6/es|**Tutorial 6**]] | [[BGRABitmap tutorial 7/es|**Tutorial 7**]] | [[BGRABitmap tutorial 8/es|**Tutorial 8**]] | [[BGRABitmap tutorial 9/es|**Tutorial 9**]] | [[BGRABitmap tutorial 10/es|**Tutorial 10**]] | [[BGRABitmap tutorial 11/es|**Tutorial 11**]] | [[BGRABitmap tutorial 12/es|**Tutorial 12**]] | [Edit](<http://wiki.lazarus.freepascal.org/index.php?title=Template:BGRABitmap_tutorial_index/es&action=edit>)
1+Esta tutoría muestra como usar la librería [[BGRABitmap]].
22
3-Esta tutoría muestra como usar la librería [[BGRABitmap]].
3+### Crear un nuevo proyecto
44
5-## Contents
5+Crea una aplicación gráfica con el menú **Proyecto \> Nuevo proyecto**.
66
7- * 1 Crear un nuevo proyecto
8- * 2 Agrega referencia a BGRABitmap
9- * 2.1 Mediante la instalación del paquete BGRABitmap
10- * 2.2 Añadiendo las unidades de BGRABitmap a la ruta de búsqueda
11- * 3 Agrega algunos dibujos
12- * 4 Código resultante
13- * 5 Ejecuta el programa
7+La unidad principal debería verse como esto :
148
15-### Crear un nuevo proyecto
9+``` pascal
10+unit UMain;
1611
17-Crea una aplicación gráfica con el menú **Proyecto > Nuevo proyecto**.
12+{$mode objfpc}{$H+}
1813
19-La unidad principal debería verse como esto :
20-```
21-unit UMain;
22-
23- {$mode objfpc}{$H+}
24-
25- interface
26-
27- uses
28- Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
29-
30- type
31-
32- { TForm1 }
33-
34- TForm1 = class(TForm)
35- private
36- { private declarations }
37- public
38- { public declarations }
39- end;
40-
41- var
42- Form1: TForm1;
43-
44- implementation
45-
46- initialization
47- {$I UMain.lrs}
48-
49- end.
14+interface
15+
16+uses
17+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
18+
19+type
20+
21+ { TForm1 }
22+
23+ TForm1 = class(TForm)
24+ private
25+ { private declarations }
26+ public
27+ { public declarations }
28+ end;
29+
30+var
31+ Form1: TForm1;
32+
33+implementation
34+
35+initialization
36+ {$I UMain.lrs}
37+
38+end.
5039```
5140
52-Si no la encuentras usa **Ctrl-F12** para mostrar la lista de archivos.
41+Si no la encuentras usa **Ctrl-F12** para mostrar la lista de archivos.
5342
54-Guarda tu proyecto en una carpeta siguiente a la librería BGRABitmap con el menú **Archivo > Guardar todo** (no necesariamente en la misma carpeta).
43+Guarda tu proyecto en una carpeta siguiente a la librería BGRABitmap con el menú **Archivo \> Guardar todo** (no necesariamente en la misma carpeta).
5544
5645### Agrega referencia a BGRABitmap
5746
58-En la unidad añade referencia a BGRABitmap y a BGRABitmapTypes luego de 'Dialogs'.
59-```
47+En la unidad añade referencia a BGRABitmap y a BGRABitmapTypes luego de 'Dialogs'.
48+
49+``` pascal
6050uses
61- Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
62- BGRABitmap, BGRABitmapTypes;
51+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
52+ BGRABitmap, BGRABitmapTypes;
6353```
6454
65-Luego tienes que hacer el proyecto dependiente de las unidades de BGRABitmap. Hay dos formas.
55+Luego tienes que hacer el proyecto dependiente de las unidades de BGRABitmap. Hay dos formas.
6656
6757#### Mediante la instalación del paquete BGRABitmap
6858
69-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.
59+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.
7060
71-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.
61+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.
7262
7363#### Añadiendo las unidades de BGRABitmap a la ruta de búsqueda
7464
75-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 proyecto**. En **Opciones del Compilador > Rutas > Otros archivos de unidad** agrega BGRABitmap. Por ejemplo, si BGRABitmap esta en una carpeta siguiente a tu proyecto, la ruta relativa puede ser "..\BGRABitmap".
65+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 proyecto**. En **Opciones del Compilador \> Rutas \> Otros archivos de unidad** agrega BGRABitmap. Por ejemplo, si BGRABitmap esta en una carpeta siguiente a tu proyecto, la ruta relativa puede ser "..\BGRABitmap".
7666
77-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.
67+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.
7868
79-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.
69+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.
8070
8171### Agrega algunos dibujos
8272
83-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:
84-```
73+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:
74+
75+``` pascal
8576procedure TForm1.FormPaint(Sender: TObject);
86- var bmp: TBGRABitmap;
87- begin
88- bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
89- bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet); //rellena un rectángulo naranja
90- bmp.Draw(Canvas, 0, 0, True); //renderiza el BGRABitmap en la Forma
91- bmp.Free; //libera la memoria
92- end;
77+var bmp: TBGRABitmap;
78+begin
79+ bmp := TBGRABitmap.Create(ClientWidth, ClientHeight, BGRABlack);
80+ bmp.FillRect(20, 20, 100, 40, BGRA(255,192,0), dmSet); //rellena un rectángulo naranja
81+ bmp.Draw(Canvas, 0, 0, True); //renderiza el BGRABitmap en la Forma
82+ bmp.Free; //libera la memoria
83+end;
9384```
9485
95-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.
86+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.
9687
97-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.
88+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.
9889
99-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.
90+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.
10091
101-No olvides liberar el objeto luego de usarlo, para evitar pérdida de memoria.
92+No olvides liberar el objeto luego de usarlo, para evitar pérdida de memoria.
10293
10394### Código resultante
10495
105-Deberías obtener el siguiente código:
106-```
96+Deberías obtener el siguiente código:
97+
98+``` pascal
10799unit UMain;
108-
109- {$mode objfpc}{$H+}
110-
111- interface
112-
113- uses
114- Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
115- BGRABitmap, BGRABitmapTypes;
116-
117- type
118-
119- { TForm1 }
120-
121- TForm1 = class(TForm)
122- procedure FormPaint(Sender: TObject);
123- private
124- { private declarations }
125- public
126- { public declarations }
127- end;
128-
129- var
130- Form1: TForm1;
131-
132- implementation
133-
134- { TForm1 }
135-
136- procedure TForm1.FormPaint(Sender: TObject);
137- var bmp: TBGRABitmap;
138- begin
139- bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
140- bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
141- bmp.Draw(Canvas,0,0,True);
142- bmp.Free;
143- end;
144-
145- initialization
146- {$I UMain.lrs}
147-
148- end.
100+
101+{$mode objfpc}{$H+}
102+
103+interface
104+
105+uses
106+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
107+ BGRABitmap, BGRABitmapTypes;
108+
109+type
110+
111+ { TForm1 }
112+
113+ TForm1 = class(TForm)
114+ procedure FormPaint(Sender: TObject);
115+ private
116+ { private declarations }
117+ public
118+ { public declarations }
119+ end;
120+
121+var
122+ Form1: TForm1;
123+
124+implementation
125+
126+{ TForm1 }
127+
128+procedure TForm1.FormPaint(Sender: TObject);
129+var bmp: TBGRABitmap;
130+begin
131+ bmp := TBGRABitmap.Create(ClientWidth,ClientHeight,BGRABlack);
132+ bmp.FillRect(20,20,100,40,BGRA(255,192,0),dmSet);
133+ bmp.Draw(Canvas,0,0,True);
134+ bmp.Free;
135+end;
136+
137+initialization
138+ {$I UMain.lrs}
139+
140+end.
149141```
150142
151143### Ejecuta el programa
152144
153-Deberías obtener una ventana rellenada en negro con un rectángulo naranja en ella.
145+Deberías obtener una ventana rellenada en negro con un rectángulo naranja en ella.
154146
155-[![BGRATutorial1.png](/wiki-images/e/ea/BGRATutorial1.png)](</File:BGRATutorial1.png>)
147+![](/wiki-images/e/ea/BGRATutorial1.png)
156148
157149[[BGRABitmap tutorial 2/es|Siguiente tutoría (cargar imágen)]]
158150
159151---
160-*From the Free Pascal wiki, page "BGRABitmap tutorial 1/es", as the Internet Archive kept it on 2022-07-06. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
152+*From the Free Pascal wiki, page "BGRABitmap tutorial 1/es", as it stood on 2020-02-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
153+Category: Castellano
154+Category: Español

Back to history