Sign in Join
Wiki copytemporary

Lazarus Tutorial/es: what changed

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

OldNewLine
11*Estos son los primeros pasos de una tutoría de Lazarus. Por favor, añade aquí tus experiencias.*
22
33## Resumen
44
55   Lazarus es una herramienta de desarrollo libre y de código abierto para el compilador Free Pascal (Object Pascal), que a su vez lo es también. El IDE de Lazarus ([Captura de pantalla](http://wiki.lazarus.freepascal.org/images/3/31/Lazarus_IDE_general.png)) es un entorno de programación estable y con abundantes características para crear aplicaciones tanto con interfaz gráficas como de consola. Actualmente funciona en sistemas operativos Linux, FreeBSD y Windows 32 bits, y proporciona un editor de código fuente personalizable y un entorno visual para crear formularios, junto con un generador de paquetes, un depurador y una completa integración del GUI con el compilador FreePascal.
66
77## ¡Tú primer programa con Lazarus!
88
99Quizá sea recomendable que aprendas antes un poco de Pascal. En Wikilibros tienes este completo curso de [Programación en Pascal](http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Pascal) que puedes seguir antes o al mismo tiempo que este.
1010
1111### Comenzando
1212
1313   Descarga, instala ([[Installing Lazarus/es|Instalación de Lazarus]]), con lo que también instalarás el compilador FreePascal y ejecuta Lazarus.
1414
1515   Notas: en Linux Ubuntu, al menos, el comando para iniciar a Lazarus desde consola es "startlazarus". Si se instaló desde un paquete Debian, habrá una entrada de menú Lazarus en el menú Aplicaciones / Programación.
1616
1717   En Debian y Ubuntu el archivo ejecutable principal y el paquete se denominan "lazarus-ide" porque el paquete "tct" ya viene con una utilidad llamada "Lazarus".
1818
1919   Aparecerán varias ventanas en el escritorio: el menú principal arriba, el Inspector de Objetos a la izquierda, el Editor de Código Fuente ocupando la mayor parte del escritorio, y un formulario *Form1*, preparado sobre el Editor de Código fuente.
2020
2121   En la ventana superior, por debajo de la línea del menú, hay una fila de pestañas. Si la pestaña *Standard* no está seleccionada, selecciónala pulsando sobre ella con el ratón. Después busca el icono *Button* (un rectángulo con *OK*) y selecciónalo con el ratón, después pulsa sobre la ventana *Form1*, en alguna parte de la misma. Aparecerá un rectángulo sombreado etiquetado *Button1*. Selecciona de nuevo el icono *Button* en la pestaña estándar, y pulsa sobre *Form1* en otra parte del formulario: aparecerá otro rectángulo etiquetado *Button2*.
2222
2323   Ahora selecciona el botón *Button1* con el ratón. El Inspector de Objetos mostrará las propiedades del objeto *Button1*. Entre las primeras hay una propiedad llamada 'Caption', que muestra el valor 'Button1'. Entra en la casilla, y cambia 'Button1' por 'Pulsa'. Si pulsó la tecla *INTRO* o cambió a otra casilla, verá como el rotulo del botón en *Form1* cambia a 'Pulsa'. Ahora haz selecciona la pestaña **Eventos** del Inspector de Objetos, para ver los eventos de que dispone el botón. Éstos son, por ejemplo, *OnClick*, *OnEnter*, *OnExit*, etc. Selecciona la casilla que hay a la derecha de *OnClick*: la casilla se transforma en desplegable y también aparece un botón con unos puntos suspensivos. Al pulsar este, aparecerá el cursor en el Editor de Código Fuente dentro ya de la plantilla del procedimiento del evento:
2424
2525``` pascal
2626 procedure TForm1.Button1Click(Sender: TObject);
2727 begin
2828 {ahora escribe:} Button1.caption := 'Pulsa otra vez';
2929 {el editor siempre termina el procedimiento con}
3030 end;
3131```
3232
33-   Si pulsas <span class="kbd">F12</span> aparecerá la ventana del formulario, al pulsar otra vez F12 volverás al Editor de Código.
33+   Si pulsas `F12` aparecerá la ventana del formulario, al pulsar otra vez F12 volverás al Editor de Código.
3434
3535   Ahora edita las propiedades de *Button2*: pulsa sobre Button2 para mostrar sus propiedades en el Inspector de Objetos. Cambia su propiedad *Caption* por 'Cerrar' en lugar de *Button2*. Ahora selecciona la pestaña Eventos, y haz doble pulsaciónen la casilla de *OnClicK*, cómo antes, aparecerá el cursor en el Editor de Código Fuente dentro ya de la plantilla del procedimiento del evento:
3636
3737``` pascal
3838 procedure TForm1.Button2Click(Sender: TObject);
3939 begin
4040 {ahora escriba:} Close;
4141 {el editor siempre termina el procedimiento con}
4242 end;
4343```
4444
45-   Pulsa <span class="kbd">F12</span> para ver la ventana *Form1*.
45+   Pulsa `F12` para ver la ventana *Form1*.
4646
4747   Es conveniente guardar ahora tu trabajo, seleccionando 'Proyecto \> Guardar proyecto' (que al no haber guardado nuúnca funciona exactamente igual que 'Guardar como...'. Elije una ubicación y pon nombre a la unidad que contiene el formulario (unit1.pas, por defecto) y al proyecto (proyect1.lpi, por defecto). Lazarus guarda automáticamente una copia del proyecto en el directorio *backup* con el estado del proyecto antes de compilar las últimas modificaciones. Es importante guardar por tu cuenta los estados 'estables' del proyecto.
4848
49-   Estás listo ahora para compilar. La forma más simple de hacerlo pulsar la flecha verde que hay en el panel a la izquierda de la barra de pestañas, que equivale a la opción de menú 'Ejecutar -\> Ejecutar F9', o más rápido aún: pulsar simplemente <span class="kbd">F9</span>. Con esto compilaremos el código y después (si todo es correcto) enlazará y ejecutará el programa.
49+   Estás listo ahora para compilar. La forma más simple de hacerlo pulsar la flecha verde que hay en el panel a la izquierda de la barra de pestañas, que equivale a la opción de menú 'Ejecutar -\> Ejecutar F9', o más rápido aún: pulsar simplemente `F9`. Con esto compilaremos el código y después (si todo es correcto) enlazará y ejecutará el programa.
5050
5151   Durante el proceso aparece una ventana con mensajes de texto, informando sobre el proceso de compilación y enlazado, y finalmente la aparecerá la ventana de *Form1* sin la rejilla de puntos; ésto indica que es una verdadera ventana de la aplicación, ya dispuesta para que actúe sobre ella, pulsando alguno de los botones que has creado o los que por defecto tiene la ventana, en la barra del título.
5252
5353   Pulsa el botón etiquetado 'Pulsa'. Verás que cambia a 'Pulsa otra vez'. Si lo pulsas otra vez, seguirá diciendo ¡¡'Pulse otra vez'!!
5454
5555   Ahora hazlo con el botón marcado 'Cerrar'. La ventana se cierra, terminando la ejecución del programa. Retornamos a Lazarus, con el formulario *form1* para poder continuar el proceso de edición del mismo y del código asociado.
5656
5757### Segunda sesión
5858
5959   Reabre el proyecto guardado antes, si es que los has cerrado.
6060
6161   Selecciona *Button1* del *Form1* En la ventana *Form1*.
6262
6363   Selecciona la pestaña 'Eventos' en el Inspector de Objetos, Selecciona la casilla de *OnClick*, pulsa sobre los puntos suspensivos, para situarte el punto apropiado en el Editor de Código Fuente.
6464
6565   Edita el código para poner lo siguiente:
6666
6767``` pascal
6868 procedure TForm1.Button1Click(Sender: TObject);
6969 {Utilizaremos la propiedad Tag del botón, asignándole el valor 0 o 1}
7070 begin
7171 if Button1.tag =0 then
7272 begin
7373 Button1.caption := 'Pulsa otra vez';
7474 Button1.tag := 1
7575 end
7676 else
7777 begin
7878 Button1.caption := 'Pulsa';
7979 Button1.tag := 0
8080 end
8181 end;
8282```
8383
8484   Guarda el trabajo, compila y ejecuta. El botón de la izquierda alternará entre los dos mensajes al pulsarlo.    ¡El resto corre de tu cuenta!
8585
8686   Si prefieres escribir programas en PASCAL para consola o basados en texto (por ejemplo si está siguiendo un curso de programación en PASCAL básico, o necesitas escribir programas para usar en tratamiento por lotes o para programar el sistema), puedes también utilizar Lazarus para editar, compilar y ejecutar estos programas. Es un entorno ideal para el desarrollo de PASCAL. Ver [[Console Mode Pascal/es|PASCAL en modo consola]].
8787
8888## El Entorno integrado de desarrollo (IDE) de Lazarus
8989
9090   Al ejecutar por primera vez Lazarus aparecen en el escritorio varias ventanas desconectadas separadas o 'flotantes'.
9191
9292### Ventana principal
9393
9494   La primera, en la parte superior derecha del escritorio, con el rótulo **Editor vXX.XX.XX de Lazarus - project1** (que posteriormente reflejará el nombre que pongas al proyecto). Ésta es la ventana principal que controla tu proyecto, y contiene el Menú Principal, la Paleta de Componentes y el panel de Botones Rápidos.
9595
96-<center>
97-
98-<figure>
99-<img src="lazarus_principal.png" title="lazarus_principal.png" />
100-<figcaption>lazarus_principal.png</figcaption>
101-</figure>
102-
103-</center >
96+![](/wiki-images/0/04/Lazarus_principal.png)
10497
10598   Una línea por debajo de la barra de título está el **Menú Principal** con las habituales opciones Archivo, Editar, Buscar, Ver, Ventanas y Ayuda, y con las opciones que son específicas de Lazarus. Debajo, a la izquierda hay un sistema de Botones Rápidos, que te llevan ágilmente a opciones del Menú Principal, y a la derecha está la Paleta de Componentes.
10699
107100### Otras ventanas del IDE
108101
109102   Debajo de la ventana del editor de Lazarus aparecerá a la izquierda la ventana **Inspector de Objetos**, y la del **Editor de Código Fuente** a la derecha.
110103
111-<div class="floatleft">
112-
113-<figure>
114-<img src="Lazarus_Inspector_de_Objetos.png" title="Lazarus_Inspector_de_Objetos.png" />
115-<figcaption>Lazarus_Inspector_de_Objetos.png</figcaption>
116-</figure>
117-
118-</div>
119-
120-<div class="floatright">
121-
122-<figure>
123-<img src="Lazarus_Editor_Codigo_Fuente.png" title="Lazarus_Editor_Codigo_Fuente.png" />
124-<figcaption>Lazarus_Editor_Codigo_Fuente.png</figcaption>
125-</figure>
104+![](/wiki-images/0/05/Lazarus_Inspector_de_Objetos.png)
126105
127-</div>
106+![](/wiki-images/b/b2/Lazarus_Editor_Codigo_Fuente.png)
128107
129-Puede haber otra ventana más pequeña, etiquetada, en principio, **[Form1](http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg)**, sobre la ventana del Editor de Código. Si no es visible inmediatamente, puede hacerse aparecer presionando la tecla **<span class="kbd">F12</span>**, que alterna entre la vista del Editor de Código y la vista del formulario *Form1*. La ventana del formulario es en la que constituirá el interfaz gráfico de tu aplicación, mientras que el Editor de Código es la ventana que muestra el código de PASCAL asociado a la aplicación que está creando. El Inspector de Objetos se describe con detalle más adelante, junto con la Paleta de Componentes.
108+Puede haber otra ventana más pequeña, etiquetada, en principio, **[Form1](http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg)**, sobre la ventana del Editor de Código. Si no es visible inmediatamente, puede hacerse aparecer presionando la tecla **`F12`**, que alterna entre la vista del Editor de Código y la vista del formulario *Form1*. La ventana del formulario es en la que constituirá el interfaz gráfico de tu aplicación, mientras que el Editor de Código es la ventana que muestra el código de PASCAL asociado a la aplicación que está creando. El Inspector de Objetos se describe con detalle más adelante, junto con la Paleta de Componentes.
130109
131110   Cuando comience un nuevo proyecto (o cuando ejecute Lazarus por primera vez) se construirá un formulario predefinido, que se compone de una caja en la que hay una rejilla de puntos para ayudarle a colocar los diversos componentes del formulario, y una
132111
133-<div class="floatright">
134-
135-<figure>
136-<img src="Lazarus_Inspector_del_Proyecto.png" title="Lazarus_Inspector_del_Proyecto.png" />
137-<figcaption>Lazarus_Inspector_del_Proyecto.png</figcaption>
138-</figure>
139-
140-</div>
112+![](/wiki-images/e/e7/Lazarus_Inspector_del_Proyecto.png)
141113
142114barra a lo largo de la parte superior que contiene los botones habituales **Minimizar**, **Maximizar** y **Cerrar**. Si usted pulsa con el ratón en cualquier lugar de la caja, verá las propiedades de este formulario mostradas en el Inspector de Objetos en el lado izquierdo del escritorio.
143115
144116   Otras ventanas que pueden llegar a ser visibles durante su trabajo: **Inspector del Proyecto**, que contiene los detalles de los archivos incluidos en su proyecto, y permite que agregar archivos o eliminar archivos de su proyecto; la ventana **Mensajes**, que muestra mensajes del compilador, errores o informes sobre el progreso de su proyecto; si Lazarus fuese ejecutado desde una ventana de terminal, el terminal original seguiría siendo visible y los mensajes detallados del compilador también se mostrarían allí.    Por último, también puede ver una ventana de mensajes en la parte inferior de la pantalla: ésta es utilizada por Lazarus para mostrar los resultados al programador, por ejemplo, al compilar un programa.
145117
146-<div style="clear:both;">
147-
148-</div>
149-
150118### El Menú Principal
151119
152-   La línea del menú principal contiene las siguientes entradas: <u>A</u>rchivo <u>E</u>ditar <u>B</u>uscar <u>V</u>er <u>P</u>royecto <u>E</u>jecutar <u>C</u>omponentes (Paquete en la versión 0.9.26.2) <u>H</u>erramientas E<u>n</u>torno <u>V</u>entanas A<u>y</u>uda
120+   La línea del menú principal contiene las siguientes entradas: Archivo Editar Buscar Ver Proyecto Ejecutar Componentes (Paquete en la versión 0.9.26.2) Herramientas Entorno Ventanas Ayuda
153121
154-   Como de costumbre, las opciones se pueden seleccionar colocando el cursor del ratón sobre la opción del menú y pulsando con el botón izquierdo, o pulsando <span class="kbd">Alt</span>+<span class="kbd">F</span> en el teclado (suponiendo que la ventana del Menú Principal tenga el foco: si no lo tiene, pulse <span class="kbd">Tab</span> varias veces para completar un ciclo del foco a través de varias ventanas hasta que la ventana deseada tenga su barra de título resaltada).
122+   Como de costumbre, las opciones se pueden seleccionar colocando el cursor del ratón sobre la opción del menú y pulsando con el botón izquierdo, o pulsando `Alt`+`F` en el teclado (suponiendo que la ventana del Menú Principal tenga el foco: si no lo tiene, pulse `Tab` varias veces para completar un ciclo del foco a través de varias ventanas hasta que la ventana deseada tenga su barra de título resaltada).
155123
156124   Para obtener más detalles, consulte [[Main menu/es]].
157125
158126### Panel de botones rápidos
159127
160-<div class="floatright">
161-
162-<figure>
163-<img src="Lazarus_Botones_Rapidos.png" title="Lazarus_Botones_Rapidos.png" />
164-<figcaption>Lazarus_Botones_Rapidos.png</figcaption>
165-</figure>
166-
167-</div>
128+![](/wiki-images/c/c4/Lazarus_Botones_Rapidos.png)
168129
169130   Un pequeño panel de herramientas a la izquierda en la ventana principal, justo debajo del Menú Principal y a la izquierda de la Paleta de Componentes, contiene un conjunto de botones de acceso a las opciones de uso más frecuente del menú principal:
170131
171132
172133**![](/wiki-images/d/d5/Lazarus_Boton_Rapido_Nueva_Unidad.png) Nueva unidad**, **![](/wiki-images/a/a5/Lazarus_Boton_Rapido_Abrir.png) Abrir**, **![](/wiki-images/d/d9/Lazarus_Boton_Rapido_Recientes.png) Recientes**, **![](/wiki-images/2/21/Lazarus_Boton_Rapido_Guardar.png) Guardar**, **![](/wiki-images/1/15/Lazarus_Boton_Rapido_Guardar_Todo.png) Guardar todo**, **![](/wiki-images/8/80/Lazarus_Boton_Rapido_Nuevo_Formulario.png) Nuevo formulario**,
173134
174135**![](/wiki-images/5/52/Lazarus_Boton_Rapido_Ver_Form_o_Unidad.png) Ver formulario/unidad (F12)**, **![](/wiki-images/4/42/Lazarus_Boton_Rapido_Ver_Unidades.png) Ver unidades**, **![](/wiki-images/c/c7/Lazarus_Boton_Rapido_Ver_Formularios.png) Ver formularios**,
175136
176137**![](/wiki-images/2/21/Lazarus_Boton_Rapido_Ejecutar.png) Ejecutar (F9)** (compila, enlaza y ejecuta en modo depuración), **![](/wiki-images/5/53/Lazarus_Boton_Rapido_Detener.png) Detener**, **![](/wiki-images/6/69/Lazarus_Boton_Rapido_Paso_F7.png) Paso a paso por instrucciones (F7)**, **![](/wiki-images/8/85/Lazarus_Boton_Rapido_Paso_F8.png) Paso a paso por funciones (F8)** (las cuatro últimas son funciones del depurador).
177138
178139## La Paleta de Componentes
179140
180141   Una barra de herramientas con pestañas que muestra un gran número de iconos que representan los componentes más utilizados para construir formularios.
181142
182143   Cada pestaña hace que se muestre un conjunto diferente de iconos, que representa a un grupo funcional de componentes. El icono que está más a la izquierda en cada grupo es una flecha inclinada hacia la izquierda, llamada Herramienta de selección.
183144
184145   Si deja el cursor del ratón inmóvil sobre cualquier icono de la Paleta de Componentes, sin pulsar sobre el icono, aparecerá el rótulo de ese componente. Advierta que cada rótulo empieza por 'T' - esto significa 'Tipo' o más exactamente 'Clase' de un componente. Cuando selecciona un componente para incluirlo en un formulario, la clase se añade a la sección **tipo** de la parte **interface** de la unidad (normalmente como parte del TForm1), y se añada una **instancia** de esa clase a la sección **var** (normalmente como la variable Form1). Cualquier **Método** que diseñe para que sea usado por el formulario o sus componentes (por ejemplo, procedimientos o funciones) será colocado en la parte **implementation** de la unidad.
185146
186147### Cómo utilizar la paleta
187148
188149   Para utilizar la paleta, debe haber un formulario abierto a la vista en el editor (si no hay uno, selecciona Archivo -\> Nuevo formulario). Haz clic en el icono de la pestaña correspondiente de la paleta para el componente que deseas utilizar y haz clic en el formulario, cerca de donde quieres que aparezca el componente. Cuando el componente aparezca se puede seleccionar haciendo clic en él con el ratón. Una vez seleccionado en el formulario, el objeto se encuentre seleccionado también en la ventana Inspector de Objetos, donde puedes editar sus propiedades y eventos.
189150
190151   Ajustes de la apariencia visual de un objeto pueden hacerse, ya sea mediante la alteración de su representación en el formulario usando el ratón, o cambiando la propiedad correspondiente en el Editor de objetos para ese componente
191152
192153   Si instalas componentes adicionales, ya sean los que has escrito, o los vienen en un paquete de alguna otra fuente, los iconos correspondientes aparecerán en la paleta de componentes, en una de su pestañas o en una pestaña nueva adicional. Estos nuevos componentes se pueden seleccionar y utilizar en sus formularios de la misma forma que los suministrados por defecto
193154
194155   En la lista que sigue de los componentes, encontrarás vínculos a archivos que contienen descripciones de las unidades en que se encuentran. Si deseas obtener información sobre las propiedades de un componente en particular, a menudo merece la pena mirar en la herencia de ese componente e inspeccionar las propiedades del tipo base del que se deriva. Por ejemplo, para entender TMaskEdit también es útil examinar TCustomMaskEdit.
195156
196157### Pestañas de la Paleta de Componentes
197158
198159   Los nombres de las pestañas son bastante descriptivos de su contenido. Las imágenes y los componentes reseñados corresponden a los que vienen por defecto con la Versión 0.9.24 de Lazarus:
199160
200161#### * [Standard](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/index-4.html)
201162
202163(Ver [[Standard tab/es|Pestaña Standard]] para la descripción de los componentes)
203164
204-<center>
205-
206-<figure>
207-<img src="Lazarus_Paleta_Standard.png" title="Lazarus_Paleta_Standard.png" />
208-<figcaption>Lazarus_Paleta_Standard.png</figcaption>
209-</figure>
210-
211-</center>
165+![](/wiki-images/f/f5/Lazarus_Paleta_Standard.png)
212166
213167
214168*Componentes utilizados con frecuencia:* [TMainMenu](http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit#TMainMenu), [TPopupMenu](http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit#TPopupMenu), [TButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt#TButton), [TLabel](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TLabel), [TEdit](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TEdit), [TMemo](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TMemo), [TToggleBox](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TToggleBox), [TCheckBox](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TCheckBox), [TRadioButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TRadioButton), [TListBox](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TListBox), [TComboBox](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TComboBox), [TScrollBar](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TScrollBar), [TGroupBox](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TGroupBox), [TStaticText](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls#TStaticText), [TRadioGroup](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TRadioGroup), [TCheckGroup](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TCheckGroup), [TPanel](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls#TPanel), [TActionList](http://lazarus-ccr.sourceforge.net/docs/lcl/actnlist/tactionlist.html)
215169
216170#### * [Additional](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/index-4.html)
217171
218172(Ver [[Additional tab/es]] para la descripción de los componentes)
219173
220-<center>
221-
222-<figure>
223-<img src="Lazarus_Paleta_Adicional.png" title="Lazarus_Paleta_Adicional.png" />
224-<figcaption>Lazarus_Paleta_Adicional.png</figcaption>
225-</figure>
226-
227-</center>
174+![](/wiki-images/2/23/Lazarus_Paleta_Adicional.png)
228175
229176
230177*Más, componentes utilizados a menudo:* [TBitBtn](http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tbitbtn.html), [TSpeedButton](http://lazarus-ccr.sourceforge.net/docs/lcl/buttons/tspeedbutton.html), [TStaticText](http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tstatictext.html), [TImage](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/timage.html), [TShape](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tshape.html), [TBevel](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tbevel.html), [TPaintBox](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tpaintbox.html), [TNotebook](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tnotebook.html), [TLabeledEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tlabelededit.html), [TSplitter](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tsplitter.html), [TTrayIcon](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/ttrayicon.html), [TMaskEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/maskedit/tmaskedit.html), [TCheckListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/checklst/tchecklistbox.html), [TScrollBox](http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tscrollbox.html), [TApplicationProperties](http://lazarus-ccr.sourceforge.net/docs/lcl/forms/tapplicationproperties.html), [TStringGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tstringgrid.html), [TDrawGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/grids/tdrawgrid.html), [TPairSplitter](http://lazarus-ccr.sourceforge.net/docs/lcl/pairsplitter/tpairsplitter.html), [TColorBox](http://lazarus-ccr.sourceforge.net/docs/lcl/colorbox/tcolorbox.html), [TColorListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/colorbox/tcolorlistbox.html), [TChart](http://lazarus-ccr.sourceforge.net/docs/lcl/chart/index.html)
231178
232179#### * [Common Controls](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/index-4.html)
233180
234181(Ver [[Common Controls tab/es]] para la descripción de los componentes)
235182
236-<center>
237-
238-<figure>
239-<img src="Lazarus_Paleta_Comunes.png" title="Lazarus_Paleta_Comunes.png" />
240-<figcaption>Lazarus_Paleta_Comunes.png</figcaption>
241-</figure>
242-
243-</center>
183+![](/wiki-images/8/89/Lazarus_Paleta_Comunes.png)
244184
245185
246186[TTrackBar](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/ttrackbar.html), [TProgressBar](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/tprogressbar.html), [TTreeView](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/ttreeview.html), [TListView](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/tlistview.html), [TStatusBar](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/tstatusbar.html), [TToolBar](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/ttoolbar.html), [TUpDown](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/tupdown.html), [TPageControl](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/tpagecontrol.html), [TTabControl](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/ttabcontrol.html), [THeaderControl](http://lazarus-ccr.sourceforge.net/docs/lcl/comctrls/theadercontrol.html), [TImageList](http://lazarus-ccr.sourceforge.net/docs/lcl/controls/timagelist.html), [TPopupNotifier](http://lazarus-ccr.sourceforge.net/docs/lcl/popupnotifier/index.html)
247187
248188#### * [Dialogs](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/index-4.html)
249189
250190(Ver [[Dialogs tab/es]] para la descripción de los componentes)
251191
252-<center>
253-
254-<figure>
255-<img src="Lazarus_Paleta_Dialogos.png" title="Lazarus_Paleta_Dialogos.png" />
256-<figcaption>Lazarus_Paleta_Dialogos.png</figcaption>
257-</figure>
258-
259-</center>
192+![](/wiki-images/7/77/Lazarus_Paleta_Dialogos.png)
260193
261194
262195[TOpenDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/topendialog.html), [TSaveDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tsavedialog.html), [TSelectDirectoryDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tselectdirectorydialog.html), [TColorDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tcolordialog.html), [TFontDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tfontdialog.html), [TFindDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tfinddialog.html), [TReplaceDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/treplacedialog.html), [TOpenPictureDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/extdlgs/topenpicturedialog.html), [TSavePictureDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/extdlgs/tsavepicturedialog.html), [TCalendarDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/extdlgs/tcalendardialog.html), [TCalculatorDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/extdlgs/tcalculatordialog.html), [TPrinterSetupDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tcustomprintersetupdialog.html), [TPrintDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tcustomprintdialog.html), [TPageSetupDialog](http://lazarus-ccr.sourceforge.net/docs/lcl/dialogs/tcustomprintersetupdialog.html)
263196
264197   Algunos procedimientos y funciones útiles de **[[Dialog Examples/es|Dialogos]]** no aparecen en la Paleta, pero se pueden utilizar fácilmente mediante llamadas directas desde tu programa fuente.
265198
266199   Puede ver algunos buenos ejemplos de cómo usar los componentes en la subcarpeta \$LazarusPath/lazarus/examples de su instalación. Muchos programas muestran cómo usar diálogos y otros componentes directamente sin usar el IDE y la paleta de componentes o tienen un archivo de definición de formularios separado: todos los componentes están total y explícitamente definidos en el programa Pascal principal. Otros programas de ejemplo hacen un uso pleno del IDE.
267200
268201   Si algunos ejemplos no funcionan bien: puede que necesite modificar rutas y permisos de archivos o carpetas. Si quiere compilar algún ejemplo, compruebe que tiene permisos de lectura/escritura/ejecución para los archivos y carpetas, o copie los archivos a una carpeta donde tenga los permisos adecuados.
269202
270203   Intente ejecutar el programa 'testall' para ver un menú de componentes disponibles junto con pequeños formularios ejemplo de prueba para la mayoría de ellos; después mire el código para ¡descubrir como funcionan!
271204
272205#### * **Misc**
273206
274-<center>
275-
276-<figure>
277-<img src="Lazarus_Paleta_Misc.png" title="Lazarus_Paleta_Misc.png" />
278-<figcaption>Lazarus_Paleta_Misc.png</figcaption>
279-</figure>
280-
281-</center>
207+![](/wiki-images/6/67/Lazarus_Paleta_Misc.png)
282208
283209
284210[TColorButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt), [TSpinEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/spin/tspinedit.html), [TFloatSpinEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/spin/tfloatspinedit.html), [TArrow](http://lazarus-ccr.sourceforge.net/docs/lcl/arrow/tarrow.html), [TCalendar](http://lazarus-ccr.sourceforge.net/docs/lcl/calendar/tcalendar.html), [TEditButton](http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/teditbutton.html), [TFileNameEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/tfilenameedit.html), [TDirectoryEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/tdirectoryedit.html), [TDateEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/tdateedit.html), [TCalcEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/editbtn/tcalcedit.html), [TFileListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/filectrl/tfilelistbox.html), [TXMLPropStorage](http://lazarus-ccr.sourceforge.net/docs/lcl/xmlpropstorage/txmlpropstorage.html), [TIniPropStorage](http://lazarus-ccr.sourceforge.net/docs/lcl/inipropstorage/tinipropstorage.html), [TBarChart](http://lazarus-ccr.sourceforge.net/docs/lcl/chart/tbarchart.html), [TButtonPanel](http://lazarus-ccr.sourceforge.net/docs/lcl/buttonpanel/tbuttonpanel.html), [[doc:lcl/shellctrls/tcustomshelltreeview.html|TCustomShellTreeView]], TIDEDialogLayoutStorage
285211
286212#### * [Data Controls](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/index-4.html)
287213
288-<center>
289-
290-<figure>
291-<img src="Lazarus_Paleta_Controles_Datos.png" title="Lazarus_Paleta_Controles_Datos.png" />
292-<figcaption>Lazarus_Paleta_Controles_Datos.png</figcaption>
293-</figure>
294-
295-</center>
214+![](/wiki-images/d/d0/Lazarus_Paleta_Controles_Datos.png)
296215
297216
298217*Componentes de datos que son como los de los grupos Standard y Additional, pero aplicables a bases de datos:* [TDBNavigator](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbnavigator.html), [TDBText](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbtext.html), [TDBEdit](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbedit.html), [TDBMemo](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbmemo.html), [TDBImage](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbimage.html), [TDBListBox](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdblistbox.html), [TDBComboBox](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbcombobox.html), [TDBCheckBox](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbcheckbox.html), [TDBRadioGroup](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbradiogroup.html), [TDBCalendar](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbcalendar.html), [TDBGroupBox](http://lazarus-ccr.sourceforge.net/docs/lcl/dbctrls/tdbgroupbox.html), [TDBGrid](http://lazarus-ccr.sourceforge.net/docs/lcl/dbgrids/tdbgrid.html)
299218
300219#### * [[Data Access]]
301220
302-<center>
303-
304-<figure>
305-<img src="Lazarus_Paleta_Acceso_Datos.png" title="Lazarus_Paleta_Acceso_Datos.png" />
306-<figcaption>Lazarus_Paleta_Acceso_Datos.png</figcaption>
307-</figure>
308-
309-</center>
221+![](/wiki-images/5/54/Lazarus_Paleta_Acceso_Datos.png)
310222
311223
312224TDatasource, TMemDataset, TSdfDataSet, TFixedFormatDataSet, TDbf
313225
314226#### * [[System]]
315227
316-<center>
317-
318-<figure>
319-<img src="Lazarus_Paleta_Sistema.png" title="Lazarus_Paleta_Sistema.png" />
320-<figcaption>Lazarus_Paleta_Sistema.png</figcaption>
321-</figure>
322-
323-</center>
228+![](/wiki-images/4/46/Lazarus_Paleta_Sistema.png)
324229
325230
326231[TTimer](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/ttimer.html), [TIdleTimer](http://lazarus-ccr.sourceforge.net/docs/lcl/extctrls/tidletimer.html), [TLazComponentQueue](http://lazarus-ccr.sourceforge.net/docs/lcl/lresources/tlazcomponentqueue.html), [THtmlHelpDatabase](http://lazarus-ccr.sourceforge.net/docs/lcl/lazhelphtml/thtmlhelpdatabase.html), [THtmlBrowserHelpViewer](http://lazarus-ccr.sourceforge.net/docs/lcl/lazhelphtml/thtmlbrowserhelpviewer.html), [TProcessUTF8](http://lazarus-ccr.sourceforge.net/docs/lcl/asyncprocess/tprocessutf8.html), [TAsyncProcess](http://lazarus-ccr.sourceforge.net/docs/lcl/asyncprocess/tasyncprocess.html), [[doc:fcl/process/tprocess.html|TProcess]], [[doc:fcl/simpleipc/tsimpleipcclient.html|TSimpleIPCClient]], [[doc:fcl/simpleipc/tsimpleipcserver.html|TSimpleIPCServer]], [[doc:lcl/xmlpropstorage/txmlconfigstorage.html|TXMLConfig]], [[doc:fcl/eventlog/teventlog.html|TEventLog]]
327232
328233#### * [[SynEdit]]
329234
330-<center>
331-
332-<figure>
333-<img src="Lazarus_Paleta_SynEdit.png" title="Lazarus_Paleta_SynEdit.png" />
334-<figcaption>Lazarus_Paleta_SynEdit.png</figcaption>
335-</figure>
336-
337-</center>
235+![](/wiki-images/a/aa/Lazarus_Paleta_SynEdit.png)
338236
339237
340238TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynFreePascalSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynPhytonSyn, TSynAnySyn, TSynMultiSyn
341239
342240
343241   *Un grupo de componentes para ayudar a interactuar con otros lenguajes y herramientas de software. SynEdit es un control de edición multilínea avanzado, disponible también para Borland Delphi, Kylix y C++Builder. Soporta resaltado de sintaxis y terminación de código, e incluye filtros de exportación para html, tex y rtf. Son controles desarrollados enteramente con VCL/CLX , lo que significa que no son un envoltorio para controles de M\$Windows, y por tanto no precisa de ninguna librería de tiempo de ejecución; esto hace a SynEdit un componente de plataforma cruzada. La compatibilidad con FreePascal está también planeada, y SynEdit es el componente de edición en el IDE de Lazarus.* Ver [SynEdit](http://wiki.freepascal.org/SynEdit/es).
344242
345243#### * **IPro**
346244
347-<center>
348-
349-<figure>
350-<img src="Lazarus_Paleta_IPro.png" title="Lazarus_Paleta_IPro.png" />
351-<figcaption>Lazarus_Paleta_IPro.png</figcaption>
352-</figure>
353-
354-</center>
245+![](/wiki-images/e/ee/Lazarus_Paleta_IPro.png)
355246
356247
357248TIpFileDataProvider, TIpHtmlPanel
358249
359250#### * **SQLdb**
360251
361-<center>
362-
363-<figure>
364-<img src="Lazarus_Paleta_SQLdb.png" title="Lazarus_Paleta_SQLdb.png" />
365-<figcaption>Lazarus_Paleta_SQLdb.png</figcaption>
366-</figure>
367-
368-</center>
252+![](/wiki-images/2/25/Lazarus_Paleta_SQLdb.png)
369253
370254
371255TSQLQuery, TSQLTransaction, TSQLScript, TSQLConnector, TPQConnection, TOracleConnection, TODBCConnection, TMySQL40Connection, TMySQL41Connection, TSQLite3Connection, TMySQL50Connection, TIBConnection
372256
373257#### * **RTTI**
374258
375-<center>
376-
377-<figure>
378-<img src="Lazarus_Paleta_RTTI.png" title="Lazarus_Paleta_RTTI.png" />
379-<figcaption>Lazarus_Paleta_RTTI.png</figcaption>
380-</figure>
381-
382-</center>
259+![](/wiki-images/3/3f/Lazarus_Paleta_RTTI.png)
383260
384261
385262TTIEdit, TTIComboBox, TTIButton, TTICheckBox, TTILabel, TTIGroupBox, TTIRadioGroup, TTICheckGroup, TTICheckListBox, TTIListBox, TTIMemo, TTICalendar, TTIImage, TTIFloatSpinEdit, TTISpinEdit, TTITrackBar, TTIProgressBar, TTIMaskEdit, TTIColorButton, TMultiPropertyLink
386263
387264## Como utilizar los controles estándar, comunes y extendidos
388265
389266   Las unidades *StdCtrls*, *ComCtrls* y *ExtCtrls* contienen definiciones y descripciones de algunos de los controles más comunmente utilizados en la contrucción de formularios (Forms) y otros objetos de las aplicaciones generadas con Lazarus.
390267
391268   Algunos de los controles finales que el desarrollador utiliza, tales como *TButton*, *TMemo*, *TScrollBar* etc, tienen su correspondiente clase ancestro tal como *TCustomButton*, *TCustomMemo* o *TCustomScrollBar*. Algunas de las propiedades y métodos relevantes para el control final se definen (y se explican) más en profundidad en la clase *TCustomXXX* , y son **heredados** por el control final.
392269
393270   Si se sitúa un componente en el editor de formularios no se necesita añadir código explícitamente para crearlo. El componente es creado automáticamente por el IDE junto con el formulario (form) e igualmente destruido al tiempo que el formulario se destruye.
394271
395272   De igual forma, si creas un componente por tí mismo, no debes olvidarte de liberar sus recursos cuando ya no sea necesario.
396273
397274   Si colocas un componente en el diseñador de formularios (Form Designer) y observas el Inspector de Objetos (Object Inspector), puedes ver como cambian las propiedades a medida que mueves el componente por el formulario.
398275
399276   Por ejemplo, si pones un botón (TButton) en el formulario, lo seleccionas con el ratón y lo arrastras por el formulario podrás observar como los valores de las propiedades *Top* (arriba) y *Left* (izquierda) cambian en el Inspector de Objetos para reflejar la nueva posición. Igualmente si utilizas las barras de redimensionado para ajustar su tamaño, puedes observar como cambian los valores de las propiedades *Height* (altura) y *Width* (anchura).
400277
401278   Por otro lado, utilizando el inspector de objetos, puedes modificar el valor asociado con una determinada propiedad tal como la altura (*Height*) y dandole un nuevo valor (dentro del rango soportado); de esta forma puedes observar directamente como el tamaño del objeto seleccionado en el formulario (o el mismo formulario si es el seleccionado) cambia para reflejar el nuevo valor.
402279
403280   Puedes además cambiar explícitamente las propiedades del objeto mediante código tecleando (**en la sección de implementación apropiada** del editor de código fuente), por ejemplo
404281
405282``` pascal
406283 Formulario1.Boton1.Height := 48;
407284```
408285
409286   Si escribes este nuevo valor en el editor de código fuente y miras de nuevo en el diseñador de formulario (Form Designer), puedes observar que el botón en el formulario ha tomado el nuevo tamaño. El nuevo valor se mostrará también en el inspector de objetos.
410287
411288   En resumen, la mayor parte de las veces las propiedades de un objeto se pueden establecer de tres formas diferentes para lograr lo mismo:
412289
413290- Utilizando el ratón,
414291- Estableciendo los valores en el inspector de objetos,
415292- explícitamente escribiendo en el código fuente en la sección adecuada.
416293
417294> **Note:**    **Nota:** todo lo que se dice respecto de modificar las propiedades de los objetos mediante código, **tiene efecto únicamente en tiempo de ejecución**, por lo que los efectos de los valores modificados no pueden observarse en el Inspector de Objetos.(iskraelectrica)
418295
419296   Los componentes definidos en estas unidades tienen varias propiedades que son comunes a la mayor parte de ellos, mientras que otras propiedades son específicas de componentes individuales. Aquí describiremos algunos de los más comunes. Las propiedades menos usuales o específicas de controles se describirán en la explicación de los controles individuales.
420297
421298   Siempre se puede obtener ayuda adicional seleccionando una propiedad o palabra, tanto en el inspector de objetos como en el editor de código fuente, y a continuación presionando **F1**. Esto hará que el visor de ayuda nos presente la página adeduada que buscamos dentro de la documentación disponible.
422299
423300   Si la descripción de una propiedad en dicha página no es suficiente, se puede navegar a la correspondiente descripción en las clases ancestro, seleccionando los enlaces en el listado de herencia o seleccionando un tipo de ancestro en la declaración del objeto.
424301
425302   Los **constructores** tales como ***Create*** reservan la memoria y otros recursos del sistema que necesita el objeto. También llama a los constructores de los objetos que componen la clase.
426303
427304   **Destructores:** eliminan el objeto y liberan la memoria y los otros recursos que pudiera haber tomado. Si se llama a ***Destroy*** de un objeto que todavía no se ha inicializado se produce un error. Siempre se debe utilizar el método *Free* para desalojar objetos porque comprueba cuando el valor del objeto no está establecido, es **nil**, antes de invocar a *Destroy*.
428305
429306   Hay que tomar las siguientes precauciones cuando alguien crea su propio método *Destroy*:
430307
431308- Declarar *Destroy* con la directiva **override** , porque es un método **virtual**.
432309- Llamar siempre **inherited Destroy;** como lo último en el código del destructor.
433310- Tener en cuenta que se puede generar una excepción (*exception*) por parte del *constructor* en el caso de que no exista suficiente memoria para crear el objeto, o cualquier otra cosa salga mal. Si no se maneja la excepción dentro del constructor, entonces el objeto solamente se construirá parcialmente. En este caso se llamará a *Destroy* en el momento que no se espera, por lo que el destructor debe comprobar si los recursos fueron realmente asignados antes de liberarlos.
434311- Recuerda llamar a *Free* para todos los objetos del constructor.
435312
436-<table>
437-
438-<caption>
439-
440313**Algunas propiedades habitualmente listadas:**
441314
442-</caption>
443-
444-<tr>
445-
446-<td>
447-
448315**Propiedad**
449316
450-</td>
451-
452-<td>
453-
454317**Significado**
455318
456-</td>
457-
458-</tr>
459-
460-<tr>
461-
462-<td>
463-
464319Action
465320
466-</td>
467-
468-<td>
469-
470321La acción principal o el evento asociado con el objeto. Por ejemplo, seleccionando un botón 'Salir' debería causar la acción 'Cerrar'
471322
472-</td>
473-
474-</tr>
475-
476-<tr>
477-
478-<td>
479-
480323Align
481324
482-</td>
483-
484-<td>
485-
486325Define la manera en la que un objeto se alinea con el objeto padre. Los posibles valores son alTop (situado arriba del todo y utilizando el máximo ancho disponible), alBottom, alLeft (situado a la izquierda y utilizando la máxima altura disonible), alRight. alNone (ubicado en cualquier sitio del objeto padre) o alClient (toma todo el espacio disponible hasta los controles cercanos alineándolo hacia arriba, abajo, izquierda y derecha)
487326
488-</td>
489-
490-</tr>
491-
492-<tr>
493-
494-<td>
495-
496327Anchor
497328
498-</td>
499-
500-<td>
501-
502329Utilizado para mantener un control a una cierta distancia de los bordes definidos del control padre, cuando este último es redimensionado. Por ejemplo **\[akBottom, akRight\]** mantendrá el control a una distancia fija de la esquina inferior derecha.
503330
504-</td>
505-
506-</tr>
507-
508-<tr>
509-
510-<td>
511-
512331AutoSelect
513332
514-</td>
515-
516-<td>
517-
518333Cuando su valor es verdadero (True), se selecciona todo su texto en un control de edición cuando recibe el foco (es seleccionado) o cuando se presiona la tecla Enter (Intro).
519334
520-</td>
521-
522-</tr>
523-
524-<tr>
525-
526-<td>
527-
528335AutoSelected
529336
530-</td>
531-
532-<td>
533-
534337Verdadero (True) indica que el control edit o combobox ya han realizado una operación AutoSelect por lo que los subsecuentes clicks de ratón y pulsaciones de tecla proceden con normalidad sin seleccionar texto.
535338
536-</td>
537-
538-</tr>
539-
540-<tr>
541-
542-<td>
543-
544339BorderSpacing
545340
546-</td>
547-
548-<td>
549-
550341El tipo y el espacio alrededor del borde entre un control anclado (*Anchored*) y su padre.
551342
552-</td>
553-
554-</tr>
555-
556-<tr>
557-
558-<td>
559-
560343Caption
561344
562-</td>
563-
564-<td>
565-
566345El texto que es mostrado en o cerca del control; debería sugerir el tipo de función del control, o una instrucción como 'Close' o 'Execute'. Por defecto *Caption* se establece para tener el mismo valor que la propiedad 'Name', y el programador de la aplicación debería sustituirlo por uno con mayor significado para la aplicación, en lugar de dejar el valor dado automáticamente.
567346
568-</td>
569-
570-</tr>
571-
572-<tr>
573-
574-<td>
575-
576347CharCase
577348
578-</td>
579-
580-<td>
581-
582349Indica como se muestra el texto en un control de edición: Normal (reteniendo el tipo de letra (mayúsculas/minúsculas) tecleada por el usuario), convertido a mayúsculas (uppercase), o convertido a minúsculas (lowercase)
583350
584-</td>
585-
586-</tr>
587-
588-<tr>
589-
590-<td>
591-
592351Constraints
593352
594-</td>
595-
596-<td>
597-
598353Establecen el tamaño mínimo y máximo para un control. Si un control se redimensiona, las nuevas dimensiones estarán siempre comprendidas dentro del rango definido aquí. Se debe tener especial cuidado cuando se establecen estas opciones para que no entren en conflicto con las configuraciones de ancho y alineado.
599354
600-</td>
601-
602-</tr>
603-
604-<tr>
605-
606-<td>
607-
608355Color
609356
610-</td>
611-
612-<td>
613-
614357El color a usar para dibujar el control o para escribir texto que contiene.
615358
616-</td>
617-
618-</tr>
619-
620-<tr>
621-
622-<td>
623-
624359Enabled
625360
626-</td>
627-
628-<td>
629-
630361Propiedad booleana para determinar cuando o no un control es capaz de ser seleccionado y realizar una accción. Si no se encuentra habilitado *(Enabled)*, entonces se presenta con un color grisaceo **(Grayed)** fuera en el formulario.
631362
632-</td>
633-
634-</tr>
635-
636-<tr>
637-
638-<td>
639-
640363Font
641364
642-</td>
643-
644-<td>
645-
646365Fuente que se utilizará para escribir el texto asociado con el control - tampoco caption o label, o las cadenas de texto contenidas en el control. La entrada en el inspector de objetos habitualmente tiene un cuadro (+) a la izquierda, y seleccionándolo muestra más opciones tales como el juego de caracteres, color y tamaño.
647366
648-</td>
649-
650-</tr>
651-
652-<tr>
653-
654-<td>
655-
656367Hint
657368
658-</td>
659-
660-<td>
661-
662369Un trozo corto de texto informativo emergente (pop-up) que aparece si se deja el cursor del ratón sobre el control por un breve espacio de tiempo.
663370
664-</td>
665-
666-</tr>
667-
668-<tr>
669-
670-<td>
671-
672371Items
673372
674-</td>
675-
676-<td>
677-
678373El listado de cosas 'Things' que un objeto contiene, tal como un grupo de imágenes, una serie de líneas de texto, un número de acciones en un actionlist, etc
679374
680-</td>
681-
682-</tr>
683-
684-<tr>
685-
686-<td>
687-
688375Lines
689376
690-</td>
691-
692-<td>
693-
694377Una matriz de cadenas de texto, conteniendo datos textuales en controles con más de una sola línea de datos, tal como un Edit-Box o un Combo-Box. La matriz tiene un índice con base cero, eg las líneas están numeradas \[0..numLines-1\]
695378
696-</td>
697-
698-</tr>
699-
700-<tr>
701-
702-<td>
703-
704379Name
705380
706-</td>
707-
708-<td>
709-
710381El identificador por el que el control es conocido en el programa. El IDE( Entorno Integrado de Desarrollo) le asigna un nombre por defecto basándose en su tipo subyacente, por ejemplo, sucesivas instancias de TBitButton se deberían nombrar Form1.BitBitton1 y Form1.BitButton2; depende ya del programador de la aplicación darle un nombre con más significado tal como ExitButton o OKButton. Por defecto el nombre del control se aplica a Caption, pero el texto de Caption puede ser cambiado por separado.
711382
712-</td>
713-
714-</tr>
715-
716-<tr>
717-
718-<td>
719-
720383PopUpMenu
721384
722-</td>
723-
724-<td>
725-
726385Una ventana conteniendo un menú de información sensitivo al contexto que emerge (pop-up) cuando se acciona el pulsador derecho del ratón en el objeto.
727386
728-</td>
729-
730-</tr>
731-
732-<tr>
733-
734-<td>
735-
736387Position (or Top, Left)
737388
738-</td>
739-
740-<td>
741-
742389Determina donde se ubica el control en el formulario o ventana padre/td\>
743390
744-</tr>
745-
746-<tr>
747-
748-<td>
749-
750391ReadOnly
751392
752-</td>
753-
754-<td>
755-
756393Propiedad booleana que si está establecida a verdadero (True), significa que el contenido del control puede ser leido por el usuario o la rutina llamante, pero que no puede ser escrita o cambiada.
757394
758-</td>
759-
760-</tr>
761-
762-<tr>
763-
764-<td>
765-
766395ShowHint
767396
768-</td>
769-
770-<td>
771-
772397Permite una pequeña ventana (bocadillo) conteniendo ayuda sensible al u otra descripción que deba mostrarse cuando el cursor se sitúa sobre el objeto.
773398
774-</td>
775-
776-</tr>
777-
778-<tr>
779-
780-<td>
781-
782399Size (or Height and Width)
783400
784-</td>
785-
786-<td>
787-
788401Las dimensiones del control
789402
790-</td>
791-
792-</tr>
793-
794-<tr>
795-
796-<td>
797-
798403Style
799404
800-</td>
801-
802-<td>
803-
804405Las opciones disponibles para estilo (Style) dependen del tipo de control que se vaya a considerar: por ejemplo el estilo puede ser definido para TFormStyle, TBorderStyle, TButtonStyle etc.
805406
806-</td>
807-
808-</tr>
809-
810-<tr>
811-
812-<td>
813-
814407TabOrder
815408
816-</td>
817-
818-<td>
819-
820409Entero que sirve para definir en que solapa se encuentra (dentro de un objeto) del listado total de las disponibles
821410
822-</td>
823-
824-</tr>
825-
826-<tr>
827-
828-<td>
829-
830411TabStop
831412
832-</td>
833-
834-<td>
835-
836413Propiedad booleana que si se establece a verdadero (True)sitúa este control en la secuencia de objetos que el usuario puede alcanzar pulsando sucesivamente la tecla de tabulación (TAB)
837414
838-</td>
839-
840-</tr>
841-
842-<tr>
843-
844-<td>
845-
846415Text
847416
848-</td>
849-
850-<td>
851-
852417Cadena de texto que representa el dato actual que contiene el control. Se aplica particularmente a los tipos de objeto Text, Memo y StringLis. La mayor parte de las operaciones de edición (tales como *Select*, *Clear*, *Cut*, *Copy*) se realizan en esta parte del objeto, que mantiene la cadena actual que va a ser editada. Si el control contiene más de una sola línea de texto, por ejemplo *TMemo* o *TComboBox*, entonces los elementos textuales se organizan como una matriz de cadenas (con base cero, ie numeradas desde \[0..numLines-1\]) en *Líneas*.
853418
854-</td>
855-
856-</tr>
857-
858-<tr>
859-
860-<td>
861-
862419Visible
863420
864-</td>
865-
866-<td>
867-
868421Si su valor es verdadero (True), el objeto se puede ver en el formulario; si es falso (False), el objeto permanece oculto
869422
870-</td>
871-
872-</tr>
873-
874-<tr>
875-
876-<td>
877-
878423WordWrap
879424
880-</td>
881-
882-<td>
883-
884425Flag (bandera o señalizador) para mostrar si el desplazamiento de palabra está habilitado o no. eg si una palabra está cercana al final de una línea y va a ser demasiado larga para contener en ella, entonces se la emplaza abajo en la siguiente línea.
885426
886-</td>
887-
888-</tr>
889-
890-</table>
891-
892427   Algunas acciones se listan comunmente en la solapa 'Eventos' del inspector de objetos. Seleccionando una entrada del listado aparece un ComboBox con un listado leleccionable (DropDown list)mostrando las acciones que tiene definidas, y permitiendo escoger una para asociarla a este evento. Alternativamente se puede seleccionar la elipsis (tres puntos ...) que nos llevará a un área del editor de código fuente donde se puede empezar a teclear nuestras propias instrucciones de acción para el evento seleccionado.
893428
894429   A pesar de la gran cantidad de eventos disponibles para un control dado, en la práctica lo más habitual es utilizar sólamente unos pocos de ellos. Para la mayor parte de los controles es más que suficiente el uso de 'OnClick'; para otros más complejos 'OnEntry' (cuando el cursor del ratón entra en el control y le da el foco o selección) y 'OnExit' (cuando el cursor del ratón abandona el control); o puedes necesitar escribir un gestor de enventos para 'OnChange' o 'OnScroll', dependiendo de la naturaleza de un control particular con el que se esté tratando.
895430
896431   El menú emergente (pop-up) que aparece cuando se hace click con el pulsador derecho del ratón en el diseñador de formularios tiene como primer elemento: 'Create default event' y seleccionando esta opción tendremos el mismo efecto que seleccionando la elipsis en el inspector de objetos para el evento por defectot, usualmente OnClick: esto nos lleva al área de implementación del editor de código fuente donde podemos escribir el código para el manejador del evento.
897432
898433   Una estrategia habitual en la programación orientada a objetos es aportar un listado de acciones *(ActionList)* con la facilidad de entrar, eliminar o editar un determinado número de acciones predefinidas desde las que poder seleccionar las más apropiadas para un determinado propósito.\
899434
900-<table>
901-
902-<caption>
903-
904435**Algunas acciones listadas habitualmente**
905436
906-</caption>
907-
908-<tr>
909-
910-<td>
911-
912437**Acción**
913438
914-</td>
915-
916-<td>
917-
918439**Significado**
919440
920-</td>
921-
922-<tr>
923-
924-<td>
925-
926441OnChange
927442
928-</td>
929-
930-<td>
931-
932443Acción a realizar si se detecta un cambio (eg movimiento del ratón, click de ratón, pulsación de tecla, edición de texto, cambio de una imagen, etc)
933444
934-</td>
935-
936-</tr>
937-
938-<tr>
939-
940-<td>
941-
942445OnClick
943446
944-</td>
945-
946-<td>
947-
948447Acción a realizar cuando se acciona el pulsador izquierdo del ratón. Esta es habitualmente la acción principal o por defecto del control; por ejemplo, accionando un pulsador en un checkbox inicia la acción asociada con el checkbox. Esto puede iniciar alternativamente un proceso de selección, por ejemplo en un TextBox o Memo, o señalizar el comienzo de dibujo con un lápiz (Pen) o brocha (Brush).
949448
950-</td>
951-
952-</tr>
953-
954-<tr>
955-
956-<td>
957-
958449Click
959450
960-</td>
961-
962-<td>
963-
964451Un método para emular mediante código el efecto de accionar en un control. Este método se encuentra frecuentemente en controles del tipo Button(TButton, TBitBtn, TSpeedButton etc). Se puede escribir un procedimiento que llame el mismo código que la acción OnClick. Esta facilidad puede ser particularmente útil si la activación del control por accionamiento produce una cascada de activación de otros controles, y el método Click se puede utilizar para iniciar la acción, en lugar de que el usuario tenga que hacer click explícitamente en gran cantidad de controles.
965452
966-</td>
967-
968-</tr>
969-
970-<tr>
971-
972-<td>
973-
974453OnDragDrop
975454
976-</td>
977-
978-<td>
979-
980455Acción a realizar durante un Drag-Drop manoeuvres, ie cuando el ratón se utiliza para capturar 'capture' un elemento o algún texto etc y lo mueve hacia alguna alguna ubicación nueva en la pantalla.
981456
982-</td>
983-
984-</tr>
985-
986-<tr>
987-
988-<td>
989-
990457OnEditingDone
991458
992-</td>
993-
994-<td>
995-
996459Acción a realizar cuando el usuario ha terminado todas las ediciones / modificaciones al control. Esto a menudo se utiliza para validar el contenido del control (por ejemplo, comprobar si un texto escrito es una dirección IP válida)
997460
998-</td>
999-
1000-</tr>
1001-
1002-<tr>
1003-
1004-<td>
1005-
1006461OnEntry
1007462
1008-</td>
1009-
1010-<td>
1011-
1012463Acción a realizar cuando el cursor del ratón entra en el área ocupada por el objeto, usualmente transfiriendo el foco al objeto. Esto puede incluir cambios en el aspecto del objeto tales como luminosidad o la aparición de un borde emergente.
1013464
1014-</td>
1015-
1016-</tr>
1017-
1018-<tr>
1019-
1020-<td>
1021-
1022465OnExit
1023466
1024-</td>
1025-
1026-<td>
1027-
1028467Acción a realizar cuando el ratón se mueve fuera del área del objeto, habitualmente transfiriendo el foco fuera del objeto.
1029468
1030-</td>
1031-
1032-</tr>
1033-
1034-<tr>
1035-
1036-<td>
1037-
1038469OnKeyPress
1039470
1040-</td>
1041-
1042-<td>
1043-
1044471Acción a realizar ante la pulsación de cualquier tecla. Sutilmente diferente de OnKeyDown, la cual cual simplemente responde a una tecla, independientemente de si ya estaba pulsada cuando se obtuvo el foco por parte del control. OnKeyPress requiere que una tecla sea pulsada mientras el control tiene el foco.
1045472
1046-</td>
1047-
1048-</tr>
1049-
1050-<tr>
1051-
1052-<td>
1053-
1054473OnKeyDown
1055474
1056-</td>
1057-
1058-<td>
1059-
1060475Acción a realizar si se pulsa una tecla mientras el control tiene el foco. Sutilmente diferente de OnKeyPress - por ejemplo la tecla debe haberse presionado con el foco ya obtenido por el control, mientras que OnKeyPress requiere que la tecla sea pulsada mientras el foco está en el control.
1061476
1062-</td>
1063-
1064-</tr>
1065-
1066-<tr>
1067-
1068-<td>
1069-
1070477On Key Up
1071478
1072-</td>
1073-
1074-<td>
1075-
1076479Acción a realizar si la tecla no está pulsada (eg no presionada) mientras el control tiene el foco.
1077480
1078-</td>
1079-
1080-</tr>
1081-
1082-<tr>
1083-
1084-<td>
1085-
1086481OnMouseMove
1087482
1088-</td>
1089-
1090-<td>
1091-
1092483On Mouse Down - Acción a ser realizada si el cursor del ratón se mueve mientras el control tiene el foco.
1093484
1094-</td>
1095-
1096-</tr>
1097-
1098-<tr>
1099-
1100-<td>
1101-
1102485OnMouseDown
1103486
1104-</td>
1105-
1106-<td>
1107-
1108487Acción a realizar si el pulsador del ratón está accionado mientras el control mantiene el foco (está seleccionado).
1109488
1110-</td>
1111-
1112-</tr>
1113-
1114-<tr>
1115-
1116-<td>
1117-
1118489OnMouseUp
1119490
1120-</td>
1121-
1122-<td>
1123-
1124491Acción a realizar si el pulsador del ratón no está presionado mientras el cursor está sobre el control. Implica que el pulsador del ratón fué previamente accionado y posteriormente soltado. El caso en el que el cursor entra en el control, pero el pulsador del ratón no ha sido todavía presionado es tratado por OnEntry o OnMouseEnter.
1125492
1126-</td>
1127-
1128-</tr>
1129-
1130-<tr>
1131-
1132-<td>
1133-
1134493OnResize
1135494
1136-</td>
1137-
1138-<td>
1139-
1140495Acción a realizar cuando el control es redimensionado. Puede requerir realineación del texto o selección de un tipo de tamaño de fuente diferente etc.
1141496
1142-</td>
1143-
1144-</tr>
1145-
1146-</table>
1147-
1148497## Cómo utilizar menús en nuestros programas
1149498
1150499   El componente de tipo *TMainMenu* es responsable de crear el menú principal que aparece en la parte superior de muchos formularios; los diseñadores pueden personalizarlo eligiendo itens para el menú. El componente de tipo *TPopupMenu* creará un menú en una ventana emergente, con opciones pertinentes según el contexto, normalmente aparece al pulsar el botón derecho del ratón sobre cierto control.
1151500
1152501   TMainMenu es un componente *invisible*: el icono que representa al componente no aparece en tiempo de ejecución, lo que aparece es el menú que hemos definido mendiante el Editor de Menú. Lo mismo sucede con los componentes TPopupMenu que insertemos en nuestros formularios.
1153502
1154503   Para acceder al ([Editor de Menú](http://wiki.lazarus.freepascal.org/Image:IDE_Editor_Menu.png)) hacemos doble clic sobre el icono del componente en el formulario; aprecerá una ventana donde podremos definir los elementos que compondrán el menú. Al aparecer por primera vez la ventana muestra un botón rotulado *New Item1*. Si pulsamo el botón derecho mientras lo señalamos con el ratón se mostrará el menú contextual con las opciones posibles que podemos ralizar: añadir un nuevo elemento (después o antes), borrar el elemento, crear un submenú, y otras.
1155504
1156505   Las propiedades del elemento seleccionado, como su etiqueta, nombre o comportamiento, pueden ser editadas en el Inspector de Objetos.
1157506
1158507   Lo mínimo que debemos cambiar es el rótulo (propiedad *Caption*) que mostrará el elemento en el menú, para que se identifique la acción que se realiza con con la opción del menú ("Abrir archivo", "Salir", etc.).
1159508
1160-   Si queremos asociar cierta letra del rótulo como un *atajo de teclado* hay que preceder la misma con un símbolo &. Así, &Archivo se verá al ejecutar el programa como <u>A</u>rchivo. Al pulsar esa letra (A, en este ejemplo) junto con Alt activará la opción correspondiente del menú. También podemos asignar una combinación de teclas como atajo (normalmente para opciones de submenú), tales cómo <span class="kbd">Ctrl</span>+<span class="kbd">C</span> para copiar o <span class="kbd">Ctrl</span>+<span class="kbd">V</span> para pegar, mediante la propiedad *ShortCut* del elemento.
509+   Si queremos asociar cierta letra del rótulo como un *atajo de teclado* hay que preceder la misma con un símbolo &. Así, &Archivo se verá al ejecutar el programa como Archivo. Al pulsar esa letra (A, en este ejemplo) junto con Alt activará la opción correspondiente del menú. También podemos asignar una combinación de teclas como atajo (normalmente para opciones de submenú), tales cómo `Ctrl`+`C` para copiar o `Ctrl`+`V` para pegar, mediante la propiedad *ShortCut* del elemento.
1161510
1162511   Es provechoso utilizar los controles de menú en el conjucción con un *ActionList* que contenga una serie de acciones (*Actions*) estándar o personalizadas. Los items de menú se pueden enlazar en el Inspector de Objetos a las acciones en la lista, y estas mismas acciones se pueden enlazar a Botones, Barras de Botones (*ToolBar Buttons*), Botonés rápidos (*SpeedButtons*), etc.Economizaremos esfuerzos al reutilizar el mismo código para responder a varios acontecimientos, en vez de escribir código para el evento *OnClick* de cada control individual.
1163512
1164513   De forma predeterminada ciertas acciones normales se cargan en *StdActns* o, si son controles de Datos (*DataAware*) en *DBActns* y estas se pueden seleccionar mediante el editor de *ActionList* que aparece al hacer bole clic sobre el icono del componente en el formulario.
1165514
1166515## El Depurador
1167516
1168517
1169518*Todavía está por escribir?*. esta linea se deja por respeto al autor(a)
1170519
1171520[[solucion depurador]]
1172521
1173522
1174523En version 0.9.26 menú 'Entorno'-\>'Options ...' -\> 'Debugger' elegir 'GNU debugger (gdb)' y buscar ubicación (en ubuntu /debian es '/usr/bin/gdb').
1175524
1176525   Nota1: gdb (sin extensión), es el archivo ejecutable linux del depurador.
1177526
1178527## Los archivos de Lazarus
1179528
1180529`   (Gracias a Kevin Whitefoot.)`\
1181530`   (Añadidos de Giuseppe Ridinò, `Usuario:Kirkpatc` y Tom Lisjac)`
1182531
1183532   Al guardar se graban dos archivos:
1184533
1185534``` pascal
1186535 xxx.pas
1187536 yyy.lpr
1188537```
1189538
1190539   (Se guardan más, pero estos son a los únicos que tiene que poner nombre). El archivo proyecto (lpr) y el archivo unidad (pas) no deben tener el mismo nombre porque amablemente Lazarus renombrará la unidad (dentro del código fuente) con el mismo que el del archivo unidad y el programa con el mismo del archivo proyecto (es necesario hacer esto, porque si no el compilador probablemente no sea capaz de encontrar la unidad, más tarde, cuando se refiera a ella en el archivo proyecto). Claro, para ser coherente cambia siempre unit1 por xxx.
1191540
1192541   Así que si guarda un proyecto llamado **again**, si intenta guardar again.pas y again.lpr obtendrá fallos, porque los nombres de la unidad y el programa son iguales, con lo que se produce un error de duplicación de nombre.    A continuación, lo que obtuve:
1193542
1194543``` pascal
1195544 e:/lazarus/kj/lazhello:
1196545 total 4740 free 76500
1197546 -rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe
1198547 -rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi
1199548 -rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr
1200549 -rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm
1201550 -rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs
1202551 -rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas
1203552 -rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu
1204553 -rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat
1205554```
1206555
1207556   Observe que hay más de los dos archivos que pensé que estaba guardando.
1208557
1209558   A continuación, una breve nota sobre cada archivo:
1210559
1211560   **again.exe:** El programa principal ejecutable binario. Win32 añade una extensión "exe". En Linux no tiene ninguna. Este archivo será enorme en Linux debido a la inclusión de símbolos de depuración. Ejecute la utilidad 'strip' para borrarlos y disminuir bastante el tamaño del ejecutable.
1212561
1213562   **again.lpi:** Este es el archivo principal del proyecto Lazarus (Lazarus Project Information); el archivo principal de una aplicación equivalente en Delphi será .dpr. Se almacena en formato XML.
1214563
1215564   **again.lpr:** El archivo fuente del programa principal. A pesar de su extensión específica de Lazarus es en realidad un archivo fuente totalmente normal de Pascal. Tiene una cláusula de usos que permite al compilador encontrar las unidades que necesita. Nótese que la declaración del programa no tiene que ponerle el mismo nombre al programa que al archivo.
1216565
1217566   **againu.lfm:** Aquí es donde Lazarus almacena el diseño del formulario. Lazarus utiliza esto para generar un archivo fuente que está incluido en la sección de inicio de la unidad againu.pas unit. Los archivos de Delphi dfm se pueden convertir a formato lfm format en el IDE de Lazarus mediante Herramientas-\>Convertir archivo DFM A LFM.
1218567
1219568   **again.lrs:** Este es el archivo fuente generado. Adviértase que no es un archivo fuente de Windows.
1220569
1221570   **againu.pas:** La unidad que contiene el código del formulario.
1222571
1223572   **again.ppu:** La unidad compilada.
1224573
1225574   **ppas.bat:** Un script sencillo que enlaza el programa para crear el ejecutable: Si la compilación tiene éxito, lo borra el compilador.
1226575
1227576### [[Lazarus IDE Tools/es|Herramientas del IDE de Lazarus]]
1228577
1229578## Colaboradores iniciales y cambios
1230579
1231580   Esta página se ha importado desde el epiwiki [version](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial).
1232581
1233582- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
1234583- Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 User:Kirkpatc
1235584- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
1236585- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
1237586- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
1238587- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
1239588- Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 User:Kirkpatc
1240589- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
1241590- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
1242591- More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 User:Kirkpatc
1243592- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
1244593- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
1245594- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
1246595- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
1247596- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
1248597- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
1249598- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
1250599- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
1251600- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
1252601- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
1253602- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
1254603- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
1255604- Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 User:Kirkpatc
1256605- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
1257606- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
1258607- Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 User:Kirkpatc
1259608- Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 User:Kirkpatc
1260609- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
1261610- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
1262611- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
1263612- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
1264613- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
1265614- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
1266615- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
1267616- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
1268617- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
1269618- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
1270619- Some edits and additions to the Lazarus Component section. 23th Jan 2009 User: Miyatake
1271620- Ilustración gráfica (casi) completa y actualizada a la versión 0.9.26.2 de Lazarus. 17 junio 2009. User:Iskraelectrica
1272621
1273622---
1274623*From the Free Pascal wiki, page "Lazarus Tutorial/es", as it stood on 2021-12-08 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).*

Back to history