Sign in Join
Wiki copytemporary

BGRABitmap tutorial 1/es: what changed

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

OldNewLine
1-Esta tutoría muestra como usar la librería [[BGRABitmap]].
2-
3-### Crear un nuevo proyecto
4-
5-Crea una aplicación gráfica con el menú **Proyecto \> Nuevo proyecto**.
6-
7-La unidad principal debería verse como esto :
8-
9-``` pascal
10-unit UMain;
11-
12-{$mode objfpc}{$H+}
13-
14-interface
15-
16-uses
17- Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs;
18-
19-type
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>)
202
21- { TForm1 }
3+Esta tutoría muestra como usar la librería [[BGRABitmap]].
224
23- TForm1 = class(TForm)
24- private
25- { private declarations }
26- public
27- { public declarations }
28- end;
5+## Contents
296
30-var
31- Form1: TForm1;
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
3214
33-implementation
15+### Crear un nuevo proyecto
3416
35-initialization
36- {$I UMain.lrs}
17+Crea una aplicación gráfica con el menú **Proyecto > Nuevo proyecto**.
3718
38-end.
19+La unidad principal debería verse como esto :
3920```
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.
50+```
4051
41-Si no la encuentras usa **Ctrl-F12** para mostrar la lista de archivos.
52+Si no la encuentras usa **Ctrl-F12** para mostrar la lista de archivos.
4253
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).
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).
4455
4556### Agrega referencia a BGRABitmap
4657
47-En la unidad añade referencia a BGRABitmap y a BGRABitmapTypes luego de 'Dialogs'.
48-
49-``` pascal
58+En la unidad añade referencia a BGRABitmap y a BGRABitmapTypes luego de 'Dialogs'.
59+```
5060uses
51- Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
52- BGRABitmap, BGRABitmapTypes;
61+ Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
62+ BGRABitmap, BGRABitmapTypes;
5363```
5464
55-Luego tienes que hacer el proyecto dependiente de las unidades de BGRABitmap. Hay dos formas.
65+Luego tienes que hacer el proyecto dependiente de las unidades de BGRABitmap. Hay dos formas.
5666
5767#### Mediante la instalación del paquete BGRABitmap
5868
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.
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.
6070
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.
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.
6272
6373#### Añadiendo las unidades de BGRABitmap a la ruta de búsqueda
6474
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".
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".
6676
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.
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.
6878
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.
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.
7080
7181### Agrega algunos dibujos
7282
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
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+```
7685procedure TForm1.FormPaint(Sender: TObject);
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;
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;
8493```
8594
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.
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.
8796
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.
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.
8998
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.
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.
91100
92-No olvides liberar el objeto luego de usarlo, para evitar pérdida de memoria.
101+No olvides liberar el objeto luego de usarlo, para evitar pérdida de memoria.
93102
94103### Código resultante
95104
96-Deberías obtener el siguiente código:
97-
98-``` pascal
105+Deberías obtener el siguiente código:
106+```
99107unit UMain;
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.
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.
141149```
142150
143151### Ejecuta el programa
144152
145-Deberías obtener una ventana rellenada en negro con un rectángulo naranja en ella.
153+Deberías obtener una ventana rellenada en negro con un rectángulo naranja en ella.
146154
147-![](/wiki-images/e/ea/BGRATutorial1.png)
155+[![BGRATutorial1.png](/wiki-images/e/ea/BGRATutorial1.png)](</File:BGRATutorial1.png>)
148156
149157[[BGRABitmap tutorial 2/es|Siguiente tutoría (cargar imágen)]]
150158
151159---
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
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).*

Back to history