1. Introducción
Antes de iniciar, quisiera hacer una referencia a los programadores que antes hayan iniciado su introducción en otros lenguajes , pues debido a otros tipos de escritura en las sintaxis de las intrucciones de cada lenguaje, puede que en delphi encuentren algunos problemas.
Vamos a definir dos grandes reglas que deberemos tener en cuenta a la hora empezar a escribir un programa:
Para todos nos es conocido que debemos usar " al escribir en una variable como a$="hola", pues en delphi deremos utilizar ' que se encuentra junto a la tecla 0 del teclado , ya que delphi las utiliza en vez de las comillas conocidas ".
Otra es la utilización necesaria del punto y coma ; al final de cada linea entera de código escrito salvo en algunas excepciones que ya veremos en su capítulo correspondiente.
Salvo estas dos indicaciones que son las más importantes, las demás ya las iremos viendo paso a paso.
2. Las fichas o Forms
En este capítulo vamos a tratar que es delphi y su entorno.
El delphi es un lenguaje que principalmente viene heredado del pascal aunque con grandes diferencias y matices, pero principalmente todas sus instrucciones vienen de dicha lenguaje.
A excepción principalmente de que estamos utilizando un entorno visual y casi todo lo haremos con el ratón aunque tengamos que escribir código de vez en cuando.
En delphi existen principalmente las fichas o forms, los objetos , los y los componentes, dentro de estos ultimos en escritura encontraremos las propiedades, los eventos y los métodos de dichos componentes.
Fichas o Formularios
Son las ventanas que nos crea delphi para que en ellas introduzcamos los componentes que vamos a utilizar (imagenes, botones, campos de textos, etc..) , cuando a delphi le indicamos que cree una nueva ficha, nos da varias opciones (de dialogo, de base de datos, de entrada de claves, etc...) siempre nos debemos hacercar lo más posible a lo que queramos crear, de esta forma tendremos que escribir mucho menos código, puesto que creándolo delphi de forma automática , el mismo se encargará de crear todo el código escrito que necesitará para manejar dicha ficha.
Aunque también una vez creada la ficha podremos añadirle cuantos componentes queramos añadir y manejar.
Los Componentes
Los componentes son utilidades que nos facilitan la creación de programas de forma que nos permiten incluirlos en las forms sin tener que escribir todo el código, tan solo tendremos que poner el componente en el form y delphi crea el código de forma automática.
Si por ejemplo quisieramos hacer un programa donde tuvieramos que controlar el tiempo que transcurre en segundos para que cada 5 segundos se activase algo, tendríamos que escribir todo el código para controlar el reloj del sistema, pero con los componentes, solo tendremos que insertar el componente del reloj del sistema y el mismo componente se encargará de generar todo él código de control del sistema, solo tendremos que decirle los segundos que queremos que transcurran y qué activar al pasar dicho tiempo.
El código no será necesario crearlo cada vez que querramos controlar el tiempo, solo tendremos que poner el componente y el sistema lo hará todo.
El sistema de componentes es fácil y sencillo de usar además de cómodo, es necesario que se acostumbre a usar los componentes y no a programar sus propias funciones, por que de esa forma conseguirá ganar tiempo al realizar sus programas.
Las propiedades de los Objetos
Las propiedades son determinadas características de cada componente que se pueden o no modificar.
Una propiedad es por ejemplo el nombre del componente, el nombre que aparecerá reflejada en la pantalla, el color de la letra, la fuente, el tamaño, etc..
Propiedad es lo que permite alterar las funciones y/o resultados que nos vayan a dar el componente.
Normalmente los componentes tienen propiedades comunes, algunos tienen propiedades que en otros no estan, y cada propiedad nos permitirá hacer una o varias cosas.
Dependiendo de cada componente dispondremos de determinandas propiedades aunque debe saber que las propiedades añadidas son las que determina el programador de dicho componente y no tienen por que ser conocidas por usted, por lo que si encuentra alguna propiedad que no conoce, lea las instrucciones del componente, si las tiene, y si no tuviera , es aconsejable que haga pruebas antes de ponerlo en su programa, hagalo en un form nuevo y que no sirva y cuando conozca como funciona dicha propiedad entonces incluyalo en su programa y trabaje con él, pero seguro de lo que hace y como funciona.
Eventos de un Componente
Un evento es una acción (función) que se ejecuta cuando se cumple una determinada característica.
Existen tantos eventos como desee programador del componente, pero lo más normal es que encuentre el evento OnClick, OnDoubleClick y otros , éstos controlan los eventos del teclado o del ratón u otros que el programador haya incluido en el componente y sirven por ejemplo para que al pulsar el botón del ratón se produzca la función que nosotros hayamos metido en el evento de OnClick.
Los eventos los utilizamos para producir determinadas aplicaciones o controlamos la pulsación de tecla, o el movimiento del ratón u otros que nos facilitan el trabajo.
Los Objetos
Objeto es practicamente todo en el entorno Delphi, la forms, las herramientas, los componentes, todos son objetos, que tienen propiedades ya definidas antes de usar o que se definen conforme las vamos usando.
En realidad practicamente no necesita aprender más de los objetos, pues utilizará las propiedade que se le den dentro de cada objeto , y podrán ser comunes a otros o distintas, por lo que no es necesario que se aprenda de memoria determinadas propiedades, pues en cada objeto puede ser distinta.
3. Los tipos de Datos
En éste segundo capítulo vamos a tratar los tipos de datos con los que podemos trabajar en delphi.
Cuando nos referimos a datos, nos estamos refiriendo por ejemplo cuando queremos trabajar con núameros (sumar, restar,etc..) o cuando queremos trabajar con letras o frases o palabras, estos reciben el nombre de datos y pueden ser de varios tipos:
Tipos de Datos
Shortint: Va desde el -128 al 127 y ocupa 8 bits
Byte: Va desde 0 a 255 y ocupa 8 bit
SmallInt: Va desde -32768 al 32676 y ocupa 16 bits
Word: Va desde el 0 a 65535 y ocupa 16 bits
Integer y Longint: Van desde -2147483648 al 2147483647 y ocupa 32 bits
Cardinal: Va desde 0 a 2147483647 y ocupa 32 bits
Single: Permite 8 dígitos (letras o números)
Real: Permite 12 dígitos ( letras o números)
Double: Permite 16 dígitos (letras o número)
Extended: Permite 20 dígitos (letras o números)
Comp: Permite 20 dígitos (letras o números)
Currency: Permite 20 dígitos (letras o números)
A su vez los datos pueden ser Constantes o variables, es decir pueden tener un valor fijo que nosotros le damos desde el comienzo del programa o bien pueden obtener dicho valor durante la ejecución del programa o pueden ser alterados mientras dicha ejecución.
Dentro de los del tipo de letras, estos pueden ser de un solo carácter (Char) de una cadena de hasta 255 caracteres (ShorString) o de cadena de cualquier longitud (String y AnsiString)
.Y también podemos tener cadenas de cualquier longitud terminadas con un código nulo (Pchar) el uso de cada una de ellas las iremos viendo conforme las vallamos utilizando.
Una parte importante es como saber utilizar cada tipo de datos para manejar los decimales.
El tipo Comp solo permite almacenar números enteros.
Los tipos Single, Real, Double y Extended permiten almacenar datos sin limite de decimales, mientras que el tipo Currency solo permite y lo hace siempre tener 4 decimales, osea que el 14 aparecería en el modo Currency 14.0000.
Cada tipo lo usaremos siempre dependiendo de lo que vayamos a necesitar, no es aconsejable utilizar un tipo que ocupe mas de lo necesario. Por ejemplo si utilizamos un entero que nunca sobrepasaría el valor de 32000 utilizaremos un Smallint o un Word pero no usaremos un Integer puesto que no lo necesitamos y este ultimo ocupa 32 bit, mientras que el Smallint o Word ocupan solo 16 bits.
Es importante que conozca los tipos de datos que podemos usar para cadenas puesto que uno permiten varias letras, frases o ilimitadas letras mientras que otros solo permiten una letra, un error de este tipo puede ocasionar que el programa no funcione correctamente, o que el compilador al ejecutarlo nos de un error.
El tipo Char solo permite un carácter
El tipo String una cadena de letras de cualquier longitud.
El tipo ShortString una cadena de hasta 255 caracteres
El tipo AnsiString una cadena de cualquier longitud.
Al igual que en tipo anterior solo usaremos lo que vayamos a necesitar, si vamos a almacenar letras sueltas usaremos el Char y no otro.Es importante que se familiarice con los tipos de datos que ofrece Delphi y los adapte a las necesidades exactas de su programa, con ello ahorrar memoria y con ello conseguirá que el programa funcione mas rápido y se ejecute con mayor velocidad.
Algunas Puntualizaciones
Aunque existen otros tipos de datos distintos a los anteriores, no es necesario que los conozca hasta que necesitemos utilizarlos, y en ese caso ya serán explicados con detalles, apréndase los enumerados anteriormente para poder manejarlos con soltura.
4. La Matrices
Matrices son variables agrupadas bajo un mismo nombre, pero que nos permite tener distintos valores.
Supongamos que queremos grabar los nombres de diez amigos nuestros, si lo hicieramos por variables tendríamos que tener 10 variables, una por cada amigo, osea:
nombre1, nombre2, nombre3..... y así hasta 10
Esto significa que tendríamos que manejar diez variables, para buscar un nombre en concreto.
Con las matrices, esa misma declaración de nombres sería así:
nombres: Array[1..10] of string
Con ésta simple declaración tenemos declarados diez nombres, pues supongamos que en vez de 10 fueran 1000, si lo hicieramos con variables , tendríamos que declarar 10.000 variables, mientras que con las matrices, declaramos una sola linea, y ponemos de 1 a 10000 elementos.
Ésta es la principal ventaja del uso de las matrices, y su forma de declararla es como se ha indicado anteriormente.
Así mismo si queremos ir a un elemento concreto de la matriz, solo tenemos que poner su número,
EJEMPLO:
amigos: Array[1..10] of string
amigos[0]:='Antonio';
amigos[1]:='Luis';
amigos[2]:='Pedro';
amigos[3]:='Paco';
amigos[4]:='María';
Si quisieramos ir a Paco , solo tendríamo que poner:
quienes := amigos[3];
Con esto ya tendríamos puesto en la variable quienes el nombre del amigo que se encontrara en el número 3 de la matriz amigos.
Como se puede observar, es fácil tanto el manejo como la utilización de las matrices para almacenar distintos nombres pero que necesitamos que tengan una misma variable, para no tener que manejar muchas variables a la hora de trabajar con ellas.
Tipo de Matrices
Las matrices pueden ser tanto de caracteres(string) como númericas o de otro tipo, para ello nos tendremos que ir al capítulo de tipos de datos para saber cual es el modelo que más se ajuste a nuestros intereses, pero sabiendo que las matrices nos aportan poder declararlas de cualquiera de los tipos que maneja delphi.
5. La sentencia If
If es una sentencia condicional, la cual nos da la oportunida de seleccionar un determinado valor de una variable para cada funciòn a acometer.
Si tuvieramo una variable llamada por ejemplo, VALOR, para cada uno de los posibles valores que fuera cogiendo a lo largo del programa, le podriamos seleccionar un evento determinado.
EJEMPLO:
Valor := 10;
If Valor=10 then do begin
end;
Con esto obviamente se ejecutaria lo que pusieramos dentro del bucle if, pero si en vez de determinar su valor desde el principio, el valor de la variable fuera introducido por el cliente, entonces podriamos hacer:
if valor=5 then do begin
end;
if valor=10 then do begin
end;
if valor=15 then do begin
end;
Con este ejemplo vemos claramente que con la misma variable podemos realizar distintas tareas o eventos, solo depende del valor que fuera adquiriendo la variable a lo largo del programa , y entonces el valor ya no seria dado desde el principio por nosotros sino que seria dado por el propio usuario de nuestro programa.
6. La sentencia Case
Case es una sentencia condicional parecida al if en su forma de seleccionar un determinado evento para un valor determinado de una variable, siendo dicho valor el que determina el evento a realizar.
EJEMPLO:
Case opcion[1] of
'A' : Realizar la opcion A
'B' : Realizar la opcion B
'C' : Realizar la opcion C
'D' : Realizar la opcion D
end;
Con esto vemos como es la sentencia Case en su estrutura y uso, el funcionamiento dependera del valor que tome
la variable opcion, que en este caso es alfanumerica y formada por letras, segun la cual, dependiendo de la letra
que tenga la variable opcion, realizara las opciones que cada una de ellas realizarà.
En vez de utilizar el begin, se utilizan los : detras de la opcion elegida para indicar que evento debe realizar si se pulsara dicha letra.
7. La sentencia For
Con la sentecia For, creamos lo que se denominan bucles, mediante los cuales podemos repetir cuantas veces querramos una determinada instrucciòn, grupo de instrucciones o eventos.
La declaracion de una sentecia For es:
For variable=1 to 100 do
end;
variable es la que realiza el conteo de los numeros que hemos introducido antes del TO y despues de el, siendo dicho margen el que determinada las veces que se repite el bucle:
For variable=1 to 100 significa que se repitira 100 veces el contenido dentro de la sentencia.
El margen que podemos determinar viene indicado por el tipo de dato que sea la variable , repase el capitulo de tipos de datos para recordarlo, pero si el bucle se debe repetir como maximo 32000 veces podra usar el tipo integer al declarar en Var a la variable como integer.
Las opciones que nos permiten los bucles son muchas, y las ira viendo conforme vaya profundizando en el lenguaje delphi, pero cada una de las oportunidades que nos ofrece la iremos viendo a su debido tiempo.
8. El bucle Repeat..Until
Aunque sean sentencias como For, Case y otras que componen el lenguaje delphi, la realidad es que se ejecutan de modo conjunto , dado que en realidad es un bucle determinado por una determinada condiciòn.
EJEMPLO:
Repeat
Aqui lo que se vaya a repetir
Until varibale=1;
Podemos ver claramente cual es la estructura de la sentecia, comenzando por Repeat y dentro todo lo que se vaya a ejecutar y terminando por Until y variable es aquella que determina si el bucle debe o no seguir la ejecuciòn, hasta que determine su termino, en el ejemplo propuesto dicho bucle terminara cuando variable sea 0.
Con esto podemos realizar por ejemplo un contador atras, de modo que el termino de dicho contador sera cuando la variable de termino sea 0, entonces el bucle terminara y la instruccion Repeat entonces al ser su variable dentro de Until de valor 0 entonces dara por finalizado el bucle.
9. Los Procedimientos
Un Procedimiento es en realidad un trozo dentro del programa y al cual nos podemos referir en cualquier parte de todo el programa, de modo que no tendremos que repetir constantemente un mismo trozo de lineas de codigo
EJEMPLO:
Procedure Aqui;
begin
valor:=valor+1
if valor=10 then application.terminate;
end;
Este ejemplo es muy significativo de la necesidad de usar los procedimientos siempre que podamos, con esto conseguimos,
entre otras cosas , reducir el tamaño de nuestro programa final, el EXE, reducir el tiempo que necesita
el ordenador para ejecutar nuestros programas y muchas mas posibilidades.
El ejemplo propuesto en realidad lo que hace es sumar 1 a la variable valor y comprobar que no supera a diez, cuando llegue a diez entonces generara una determinada sentencia.
Con este simple ejemplo podemos ver que en primer lugar , podemos aumentar el valor de la varible en 1 en cualquier parte del programa y despreocuparnos de si llega a 10 o no, solo debemos llamar al procedimiento Aqui y el se encargara de sumar 1 a la varible y comprobar que sea 10 y ejecutar lo que querramos.
Los procedimientos se declaran de diversas formas, pero si queremos usar un procedimiento que sea utilizable en todo el programa, debemos declararlo como privado en la zona Private de nuestro codigo, siempre esta arriba del todo de las lineas de codigo, y despues declararlo al final del codigo, antes de la instruccion end. pero teniendo presente que dado que es un procedimiento privado que se ejecutara en todo el codigo de nuestro programa de ese form en concreto, debemos declararlo con el nombre del form, repase los capitulos anteriores para saber lo que era un form.
Esto va en la zona private al principio de las lineas de codigo de nuestro programa, busque la palabra private
Private
Procedure Pita
Esto ira al final del codigo de nuestro programa
Procedure Form1.pita;
begin
end;
Esto debe tenerlo en cuenta siempre que vaya a declarar un procedimiento que usara dentro del codigo.
Conforme vayamos avanzando en el curso vera la utilidad a la hora de crear procedimientos.
10 . La excepciones (Errores)
A la hora de programar , casi con toda seguridad nos encontraremos con los errores .
Estos errores, en delphi se llama excepciones, y los tenemos de dos tipos:
* De ejecucion
* De compilacion
Los de compilacion, son los mas faciles de encontrar, pues son detectados mientras el programa se esta compilando para ser probado, el error lo detecta el compilador y nos avisa, dandonos la linea de error, y pasariamos a arreglarlo.
Pero los de ejecucion son muy dificiles de encontrar pues no dan error durante la compilacion sino al ejecutarse el programa , un ejemplo mas claro seria:
Si declaramos a una variable por ejemplo Numeros como integer, y al empezar el programa le ponemos el valor de
A, al compilar, el compilador nos avisara de que son de distinto tipo el char y el integer y tendremos que cambairlo.
Pero si en vez de ponerle el valor A desde programacion, osea en el codigo, este valor se pudiera introducir por una caja de texto, el error no seria detectado al compilarse puesto que aun no se le ha asignado ningun valor anormal, pero al darle un valor de letra a traves de un cuadro de texto en ejecucion, esto nos produciria un error que no indica linea ni lugar de donde se ha producido, y esto nos llevaria tiempo arreglar, evidentemente nos iriamos directamente al codigo donde tenemos el campo de texto que produce el error y sabriamos rapidamente lo que ha pasado, pero es un ejemplo clarificador, imaginaros que no supieramos de donde viene el error, ¿ Cuanto tiempo tardariamos en encontrarlo ?.
Para poder hacer frente a las excepciones, delphi tiene dos intrucciones que interceptan los errores producidos para que los tratemos segun nos interese.
La palabras son Try y Except.
El funcionamiento es el siguiente, supongamos que tenemos que hacer una division, pero no sabemo si el valor que se va a introducir puede ser o no un cero, para poder controlar el error si se produjera, existe la posibilidad de impedir que pongan un cero pero para este ejemplo como si no existiera, las instruccione serian asi:
Try
Cociente := dividento / dividisor;
except
Showmessage('La division no se puede realizar');
end;
El funcionamiento es el siguiente: Con Try preparamos el sistema de gestion de errores, luego hacemos la supuesta division y si esta division produjera un error, entonces saltaria el error y daria el mensaje, pero con esto conseguimos que el programa no se pare, de no ser asi, entonces se produciria el error y se pararia el programa, imaginaros que el programa se para justo al calcular el valor total de una factura de un cliente que ha comprado 100 cosas y ya se le ha hecho toda la cuenta, solo quedaba sumar y cuando suma el programa se para y da un error, saldria y tendria que empezar de nuevo la compra de ese cliente y tiene una cola de 50 personas detras , ¿ a ver que hace ?. Es un ejemplo muy claro de lo que pensaria el dueño de la tienda de vosotros, los que han hecho ese programa.
Es por esto y por otros muchos motivos por lo que es necesario controlar los errores.
Este tema , cuando hagamos practicas, lo veremos con mas detalle al ver los errores y su tratamiento en las practicas.
11. El Entorno
El entorno es donde vamos a trabajar en delphi, ose las ventanas, controles, propiedades, etc, en dichas ventanas iremos seleccionando aquello que necesitemos y su forma de uso. Este es un ejemplo del entorno, aunque es de delphi 2 practicamente casi todas las versiones de delphi tienen un entorno parecido para hacerlo mas conocido al cambiar de version.
Como podra observar hay varias ventanas que se nos abren al entrar en delphi, estas ventanas que veremos su uso mas adelante, nos da un control directo sobre el aspecto de nuestro programa una vez compilado y terminado.
Nosotros iremos colocando componentes en la ventana o formulario de programacion,que es la ventana central y donde tengo las indicaciones de que ventana es cada una de las que hay disponibles, lo que coloquemos en esa ventana sera lo que se vea al ejecutar nuestro programa y evidentemente como quedara nuestro programa una vez hecho, esta tecnologia se denomina WYSING o lo que quiere decir que como se vea es como se queda, a groso modo, lo que pongamos y como lo pongamos sera lo que vera el cliente que compre nuestro programa.
Los componentes, que ya sabemos lo que es, sino es asi repasa las lecciones anteriores, son lo que nos van a permitir y facilitar la creacion de nuestro programa.
Si queremos que el cliente pueda introducir un valor, como el nombre de una persona, no vamos a crear toda la rutina de lectura de teclado, almacenamiento , etc.. sino que usamos el componente correspondiente, en este caso el textbox o caja de texto directamente que ya esta creada , lo que nos simplifica su elaboracion.
En capitulos sucesivos iremos viendo los componentes que tenemos a nuestra disposicion, donde encontrar muchos mas y si fuera necesario y no lo encontraramos, crear nuestros propios componentes.
En el menu de arriba del todo, vemos que tenemos varias opciones como archivo(file), edicion(edit), ver(View), etc.. este es el menu de opciones del programa, con el podremos cargar un proyecto ya existente, grabarlo, crearlo, eliminarlo, etc..
En la ventana de propiedades vemos tambien que tiene una pestaña en la que pone eventos, los eventos, para refrescar la memoria, son acciones que se producen si se cumple una determinada condicion, pulsar con el raton, con el teclado , doble click de raton, etc.., si pulsamos sobre la pestaña de eventos veriamos los eventos del componente que tenemos en ese momento, en la parte de arriba vemos a que se refieren esos eventos, en el ejemplo anterior se puede leer arriba que pone Form1: TForm1, esto significa que los eventos son del form o ventana donde se colocan los componentes.
Ya veremos que hace cada evento de cada componente en las sucesivas lecciones, esto es solo para que se familiarize con el entorno de trabajo.
Arriba vemos las opciones de componentes
Esta fotografia esta cortada, osea que podemos tener muchisimos componentes, tantos como necesitemos y tengamos a mano.
Como se puede observar tenemos varias pestañas, al pulsar las pestañas nos salen componentes nuevos que corresponden a esa pestaña en particular, normalmente cada pestaña es un grupo de componentes que tienen algo en comun, el fabricante, lo que hacen, etc..
Cuando lleguemos al capitulo de componentes veremos como se pueden añadir nuevos componentes para poder usados en ptras ocasiones. Los componentes se pueden usar tantas veces como necesitemos, solo es buscarlo entre los que tenemos en las pestañas, seleccionarlo y ponerlo en la ventana de colocacion de componentes.
12. El componente Label
Para poder escribir algo en nuestra ventana de colocacion de componentes, deberemos usar un label, osea , en la ventana no se puede escribir donde querramos de forma directa, sino que tendremos que utilizar el label, colocarlo donde querramos y dentro del label escribir aquello que queriamos que se viera, para seleccionarlo pulse la opcion de la imagen que se ve arriba (aparece una A) y vaya a la ventan de colocacion de componentes, pulse con el boton izquierdo del raton y sin soltarlo determine moviendolo de arriba a abajo y de derecha a izquierda, el tamaño que quiere que tenga el label, osea si va a escrbir mucho texto, o quiere que salga cuadrado, alargado, etc.. se selecciona mediante la forma y el tamaño que tendra el label. Una vez hecho esto la forma que tendra es la siguiente:
Como puede ver aparece la palabra Label1, si pusiera otra apareceria Label2, asi sucesivamente, para poder cambiar esto, vaya a la ventan de propiedades que vimos antes, pero a la de propiedades no a la de eventos, si no ve esta ventana, vaya a la opcion de los menus de arriba y busque la opcion Ver (View) y elija la opcion Inspector de Objetos (Object Inspector) y aparecera esta ventana. En ella vemos todas las propiedades del componente label.
Ahora vamos a ver cada una de ellas y para que sirven
Las Propiedades
Align: Con esta opcion seleccionamos donde, dentro de la ventana de colocacion de componentes, aparece el
label, osea si queremos que salga a la derecha, a la izquierda, arriba o abajo, esto desplaza el label y lo coloca
en la posicion que le hayamos dicho dentro de la ventana
Alignment:Con esta opcion seleccionamos donde, dentro del propio label, estara alineado el texto que hayamos escrito, si queremos que salga en el centro , a la derecha o a la izquierda, de forma parecida a como lo hacen los procesadores de textos cuando alineamos una carta, con esta opcion alineamos el texto dentro del label. En este ejemplo vemos las posibles opciones de alineacion y sus efectos sobre el label..
Autosize: Con esta opcion seleccionamos si queremos que el tamaño del label se ajuste a lo que escribamos, como en el ejemplo de antes, vemos que el label es mayor que lo que hay escrito, con esta opcion el tamaño del label seria justo lo que haya escrito.
Esta opcion no la podemos activar si queremos alinear texto dentro del label, pues el label se ajustaria a lo que hay escrito y entonces no habria alineado alguno.
Caption: Sirve para poder cambiar el contenido del label, donde aparece la palabra que sera la que se ve en la pantalla, si queremos cambiar las palabras, con el raton, vamos a caption y pulsamos sobre lo que haya escrito, nos saldra el cursor y entonces podremos borrar lo que haya o cambiarlo por lo que nos interese.
Color: Con esto cambiamos el color de fondo del label, osea el color de fondo de las letras.
Cursor: Con esta opcion, podemos seleccionar el tipo de cursor que nos aparecera cuando pasemos por encima del label con el raton, osea que normalmente tendremos el tipo de cursor que siempre hemos puesto, pero al cambiar esta opcion, el cursor del raton cambiara al que le especificamos cuando el cursor pase por encima del label.
DragCursor: Con esta opcion, selecciona el tipo de cursor para las opciones de arrastrar y soltar, esto lo veremos detallamente el capitulos posteriores.
DragMode: Con esta opcion elegimos y la opcion de arrastrar y soltar se hara de forma manual o automatica, ya lo explicaremos en su capitulo correspondiente.
Enabled: Esta propiedad indica si el label esta o no activo, si lo ponemos en false el color de la letra pasa automaticamente a gris claro, indicando que no esta activada.
FocusControl: Esto indica la opcion de control de foco, esto indica que el control del programa lo tendra un elemento en concreto, esto al igual que el Dragcursor y Dragmode se vera en su capitulo correspondiente al ser algo generalizado a todos los componentes y ademas de ser especificos en su programacion.
Font: Con esta opcion podemos cambiar el tipo de fuente de la letra del label, como negrita, el color, cursiva, tamaño de la letra, etc..
Height: Con esto indicamos el alto del label, osea la altura que tendra el label , no el tamaño de letra sino el tamaño del label.
Hint y ShowHint: Estas dos propiedades van unidas, en Hint escribimos lo que queramos que aparezca y con ShowHint le indicamos que queremos que sea vea, esto es por que en Hint podemos escribir que es lo que hace el label, osea, al pasar por encima del label, si la opcionde ShowHint la ponemos a True entonces al pasar por encima del label, lo que hayamos escrito en la propiedad Hint se hara visible justo debajo del cursor del raton, digamos que es una forma de informar que es lo que hace o algo especial que recordar al pasar por encima del label.
Left: Con esto indicamos donde se coloca la posicion de la izquierda, osea, dentro de la ventana de colocacion de componentes, le podemos indicar si queremos que se aleje o acerque mas al borde de la izquierda de dicha ventana de colocacion componentes(formulario).
Name: Aqui ponemos el nombre que tendra el label a nivel de programacion, osea como se llama el label para poder hacer referncia a el si nos fuera necesario.
ParentColor, ParentFont, ParentShowInt: Con estas tres opciones podemos hacer que todas las labels de un mismo formulario(ventana de colocacion de componentes), sean iguales, con esto digamos que podemos crear una apariencia homogenea en todos los labels.
ShowAccelChar: Aqui podemos dar un formato (subrayado, negrita, etc.) de forma rapida y directa mediante codigo, seleccionando la opcion a True
Label1.ShowAccelChar := True;
Label1.Caption := 'An &Underlined character appears here';
Tag: Aqui podemos introducir un valor que nos haga falta, esta propiedad esta vacia y el sistema no lo utiliza para nada, se ha creado para poder ser usada por el programador, la unica restriccion que tiene es que el dato deber ser entero, ni letras, palabras, etc.. solo valores numericos enteros.
Top: Esta opcion al igual que LEFT, indica la posicion del label dentro del formulario, pero en vez de aproximarse o alejarse del borde izquierdo del formulario, con top lo hace de border superior.
Tranparent: Con esta opcion controlamos si queremos que el fondo de las letras del label sean transparentes o de un color , si lo ponemos a true, entonces lo que haya debajo del label se vera a traves de las letras, con lo que veremos el texto del label y de fondo el fondo de atras del label, imaginate una especie de cristal sobre el que escribimos con un rotulador, las letras del rotulador las veriamos y tambien lo que habria debajo del cristal, al ser transparente.
Visible: Aqui seleccionamos si queremos que se vea o no el label, osea que podemos tenerlo por decirlo asi de forma invisible y que se vea solo cuando nosotros quisieramos.
Width: Aqui le indicamos el ancho del label, no del texto, sino del label, esta propiedad es igual al Height pero a lo ancho.
WordWrap: Aqui le indicamos si el texto es o no enriquecido, osea si queremos que lo pege a la izquierda para despues tratarlo como si fuera un procesador de textos, esto no es normal que se use pero esta disponible.
Los Eventos
Vamos a ver ahora los eventos del componente Label, los eventos son lo que sucede cuando se cumplen las condiciones que indican dichos eventos.
Para todos los eventos cuando pulse sobre ellos le saldra un cuado como este:
Solo que no aparecera el Label1Click sino el evento que haya seleccionado, fijese en eso.
OnCLick: Esto es cuando pulsamos sobre el label con el raton, osea al pulsar con el boton del raton estando sobre el label se ejecutara lo que hayamo puesto dentro de las instrucciones, aqui se pone el nombre del procedimiento, para que se haga una idea mas clara, pulse dos veces sobre onclick y vera como automaticamente le pone el procedimiento Label1.Onclick y le pone a disposicion la ventana de codigo escrito para que escriba en el lo que quiere que haga cuando se pulse.
Un ejemplo mas claro, es :
1- Pulse dos veces con el raton sobre el evento Onclick osea sobre Onclick hasta que le ponga automaticamente el nombre del procedimiento y le salga la pantalla de introducir codigo, pero el click debe hacerlo sobre la zona blanca que aparece cuando de un click sobre Onclick y entonces vaya a la derecha hasta el fondo blanco de Onclick y pulse doble click sobre el , entonces lo rellenara el solo y le saldra una ventana nueva de codigo y entonces escriba esto:
debajo del begin
label1.caption:='HOLA ESTO ES AL HACER CLICK';
Con esto vera que al hacer Click con el raton sobre el label, entonces el texto del label cambiara y le pondra el texto anterior.
OnDbCLick: Es igual al Onclick solo que obedece cuando se hace una doble pulsacion de raton sobre el label.
OnMouseDown y OnMouseUp: Es cuando pulsa alguno de los botones del raton estando sobre el label, igual al onclick.
OnMoueMove: Es cuando el raton se mueve sobre el label.