5.1 Que son los Modulos
de Codigos?
Son los que contiene
códigos públicos, declaraciones, procedimientos Sub y Functions,
que pueden compartirse entre todos los módulos de un proyecto.
5.2 Que es un Procedimiento General?
Le dice a su aplicación como realizar una tarea especifica. Una ves que usted ha definido el procedimiento, este debe ser explicitamente llamado por su aplicación.
5.3 Que es un Procedimiento de Evento?
Permanece inactivo hasta que se llama para responder a los eventos causados por el usuario.
5.4 Que es un Procedimiento Sub?
Cualquier procedimiento es una secuencia nombrada de instrucciones que ejecutan como una unidad.
El procedimiento Sub es una unidad de código que realiza una tarea especifica dentro de un programa, pero que no devuelve un valor explícito.
Un procedimiento sub comienza con una instrucción Sub y termina con una instrucción End Sub.
Esto no significa que el procedimiento Sub sea el único, existen una serie de procedimientos que VB trae incluido ej:
Sub DiskCleanup()
Kill
“*.Dat”
Kill
“*.txt”
Beep
Msgbox
“ La unidad esta Limpia”, vbinformation,
“Procedimiento
completo”
End Sub
Para mandarlo a llamar solamente se escribe el nombre del procedimiento sin necesidad de usar los paréntesis DiskCleanup.
También existen procedimientos a los que se le pasan argumentos:
Sub multiplicar(primero
As integer, segundo As integer)
Resultado = primero * segundo
End Sub
Para mandarlo a llamar seria de la siguiente forma:
Dim i As Integer, y
As Integer
I = 3
Y = 4
Multiplicar i, y
5.5 Que es un Procedimiento de Funcion?
Es un procedimiento que realiza una tarea especifica dentro de un programa y devuelve un valor. Una función se define en un modulo que inicia con la instrucción Function y termina con la instrucción End Function.
Funciones Utiles
en VB
Función | Descripción | Ejemplo | Valor |
Len() | Devuelve la longitud de una cadena | Ilen = Len(“Hola”) | Ilen = 4 |
Chr() | Devuelve el carácter del código | Schar = chr(65) | Schar = “A” |
Asc() | Devuelve el código del carácter | Icod = Asc(“A”) | Lcod = 65 |
Ucase() | Convierte a mayúscula | Sup = Ucase(“hola”) | Sup = “HOLA” |
Lcase() | Convierte a minúscula | Slow = Lcase(“HOLA”) | Slow =(“hola”) |
Para convertir un titulo de una manera mas presentable tal como muestra el ejemplo anterior: “el mundo es una ostra” en “El Mundo Es Una Ostra” se escribe el siguiente codigo:
Function titulo(introcadena
As String) As String
Dim fueracadena As
String
Dim espacio As Integer
Introcadena = Trim(Lcase(introcadena))
+ “ “
Espacio = instr(introcadena,
“ “)
While espacio
> 0
Fueracadena = fueracadena + Ucase(Mid(introcadena, 1, 1)) +
Mid(introcadena, 2, espacio –1)
Introcadena = Ltrim(Mid(introcadena, espacio +1))
Espacio = instr(introcadena, “ “)
Wend
Titulo = fueracadena
End function
5.6 Por que Trabajar con Funciones y Procedimientos?
Permiten crear rutinas personalizadas por los programadores para satisfacer las necesidades de su aplicación particular y evitar la inconveniente e innecesaria repetición del código. Se puede aumentar el poder y la versatilidad de los procedimientos incluyendo cualquiera de las instrucciones y funciones integrados de VB, así como las rutinas previamente definidas por usted.
El uso de las funciones
y procedimientos puede ayudar a dividir una aplicación compleja
en unidades de código mas manejables. Si escribe sus propios procedimientos
y funciones a nivel formulario, puede compartir código entre los
controles de un formulario. Si añade sus propios procedimientos
a un modulo estándar, puede compartir su código entre todos
los formularios de su aplicación.
6 INTRODUCCION A LOS CONTROLES, METODOS, PROPIEDADES Y FORMULARIOS
Una vez que ya hemos visto algunas de las sentencias básicas: declaración de variables, sentencias de selección, que son muy parecidos a las sentencias utilizadas en MSDOS. Vamos a empezar a programar en windows y veremos en que se diferencia de la programación clásica en MS DOS, para vamos a introducir el uso de los controles.
Pero ¿Qué son los controles?
Realmente son objetos que disponen de sus propias propiedades y métodos, y cuya utilidad es la de facilitarnos el desarrollo de nuestras aplicaciones. En cualquier aplicación con la que trabajamos estamos rodeados de controles. Quien no ha visto en multitud de programas los botones ACEPTAR y CANCELAR, un cuadro para introducir texto, una lista con datos, por mencionar algunos. Pues todos ellos son controles y no tendremos que preocuparnos por crearlos para nuestras aplicaciones sino que ya vienen con el paquete de VB, lo único que tendremos que hacer es modificar sus propiedades: tamaño, color, entre otros. Para incorporarlos en nuestras aplicaciones y asociarles el código necesario para que se comporten como esperamos al ejecutar la aplicación.
Antes de empezar a conocer los controles básicos veamos cuales son sus características generales:
Propiedades: Todos los controles disponen de una serie de propiedades las cuales podemos cambiar al incluirlos en nuestras aplicaciones. Ejemplos de propiedades son el color, el tipo de letra, el nombre, el texto, entre otros. La sintaxis para asignar una propiedad de un objeto es:
Objeto.Propiedad = Valor
Metodos: Son procedimientos asociados a los controles, es decir, rutinas ya establecidas que podemos invocar desde nuestras aplicaciones para que se realice alguna operación sobre el control. Por ejemplo el control ListView (la lista de archivos que aparece en el explorador de windows) dispone del método order que te ordena los datos aparecidos en la lista. Son procedimientos conectados o integrados, un bloque de código que puede llamarse para impartir alguna acción a un objeto particular. Los metodos pueden requerir informacion adicional en forma de argumento. Su sintaxis es la siguiente:
Objeto.Metodo Arg1,
Arg2... Argn
`ej: pictierra.Move
0,0
Eventos: Son acciones que pueden ser motivadas por el propio usuario o por el mismo sistema operativo. Ejemplos pueden ser el movimiento del ratón o hacer click sobre su botón. En Visual Basic digamos que se utiliza la programación orientada a eventos, lo cual es una de las diferencias más importantes respecto a la programación lineal de MS DOS. No necesitamos detectar cuando se ha producido un evento determinado, Windows lo detecta automáticamente. Los eventos ya están definidos, son bastantes y cada control cuenta con los suyos propios, aunque son muy parecidos. Lo único que tendremos que hacer es asociar el código necesario al evento que necesitemos tratar.
Para mostrar la ventana donde aparecen los controles que Visual Basic carga por defecto nada más arrancar la aplicación tendremos que marcar en Ver del menú principal y activar la opción Cuadro de Herramientas. Obtendremos una ventana como esta en la pantalla
Realmente existen muchos más controles, aunque estos son los más utilizados y por eso aparecen por defecto. Para tener acceso a los demás controles tanto de Visual Basic como los controles que incorporan otras aplicaciones marcaremos en proyecto y luego la opción componentes del menú principal.
Moviendo el ratón
por encima de cualquier control aparecerá una pista indicándonos
el control de que se trata.
6.1 Por que Trabajar con Propiedades y Metodos?
Las técnicas
objeto-propiedad-metodo hacen que el desarrollo de las aplicaciones sea
más fácil, proporcionando herramientas que se adaptan mas
de cerca de la manera en que las personas piensan acerca del mundo.
7 BOTONES DE COMANDOS, CUADRO DE TEXTOS Y ETIQUETAS
Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situación del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamaño que queramos en nuestro formulario.
Se puede almacenar el contenido actual de este control en una variable, ej:
Dim viejotext, nuevotexto
As String
Nuevotexto = “Texto Nuevo”
Viejotexto = introtexto.text
Lee el texto Actual
introtexto.text = nuevotexto
Pone el nuevo texto
PROPIEDADES
Text: Aquí indicamos el texto que aparecerá en el control. Podemos asignarle cualquier texto en tiempo de diseño o ejecución. También podemos tomar el texto que haya introducido el usuario para tratarlo durante la ejecución.
Name: Esta propiedad la tienen todos los controles, el nombre que viene por defecto en este caso Text1 y es el nombre con el que se conocerá el control cuando lo utilicemos en el código. En un mismo formulario no puede haber 2 controles con el mismo nombre. Conviene poner un nombre que represente la función que tiene el control en la aplicación para que el código quede más claro. Ejemplo, si en el textbox vamos a introducir la dirección de una persona podemos asignarle a esta propiedad el valor Dirección.
MultiLine: Permite que introduzcamos varias líneas de texto en el control en lugar de sólo una.
Alignment: Alineación que tendrá el texto dentro del control: izquierda, centro o derecha. Para que funcione la propiedad MultiLine debe estar con el valor true.
Locked: Si esta con valor true bloquea el control, es decir, el usuario no puede introducir ni modificar el texto que contenga. Nos puede servir para utilizar el control como salida de datos sin que el usuario pueda modificarlos por error.
BorderStyle: Determina el tipo de borde.
PasswordChar: Oculta un texto con un carácter simple.
Tag:
Almacena información adicional(cualquier expresión de
cadena), ej: almacenar la
contraseña de su sistema.
Otras propiedades que son
comunes a la mayoría de los controles:
Backcolor: color de
fondo.
Forecolor: color de
letra.
Font: tipo y
tamaño de letra.
Para personalizar las combinaciones de la barra de desplazamiento en un cuadro de texto, se puede establecer la propiedad ScrollBars en Horizontal, Vertical, Both o None.
Cuando la propiedad MultiLine
esta en True se puede usar la propiedad Alignment para ajustar el texto.
EVENTOS
Los eventos son acciones que se pueden realizar en cualquier control: click, doble click, movimiento del ratón. A estos eventos se les puede asociar código para que se ejecute al producir el evento.
MouseMove: al mover el raton por encima del control.
Mousedown: al pulsar cualquier boton del raton
Change: al cambiar el contenido del control
Click: al hacer click con el botón izquierdo del ratón sobre el control
Doubleclick: al hacer
doble click con el con el botón izquierdo del ratón
sobre el control.
Getfocus: este
evento se activa cuando el control recibe el enfoque, es
decir, cuando se activa
el control en tiempo de ejecución para
introducir datos en él
o realizar alguna operación.
Lostfocus: Es
el contrario del anterior evento, se activa cuando el control
pierde el enfoque, es decir,
se pasa a otro control para seguir
introduciendo datos.
EJEMPLO
Vamos a probar el uso del
control TextBox mediante un pequeño ejemplo en el que teniendo un
único control de este tipo en un formulario, lo programaremos de
forma que al pasar el ratón sobre el control (evento mousemove)
aparecerá en el formulario el texto que contenga.
Observamos que al situar
el control en el formulario aparece por defecto el texto Text1. Para que
no aparezca ese texto al ejecutar la aplicación, debemos cambiar
la propiedad Text. Lo que queremos hacer es que cada vez que movamos el
ratón por el control aparezca su contenido en el formulario. Entonces
lo que habrá que hacer abrir la ventana de código, seleccionando
el control. Este proceso nos llevará al cuadro de la imagen siguiente.
Lo que tendremos que hacer
es seleccionar el evento que necesitemos de la sección Proc, en
nuestro caso mousemove y a continuación teclear el código
correspondiente: La instrucción print visualiza un texto en el formulario
y si le ponemos text1.text le decimos que nos muestre la propiedad Text
del control Text1 que ese será el nombre que tendrá el control
por defecto si no lo hemos cambiado en la propiedad name.
Al ejecutar esta pequeña
aplicación pulsando F5 observaremos como aparece en el formulario
lo que hayamos tecleado en el control cada vez que movemos el raton sobre
el Textbox
.
Podemos modificar el programa
para que responda a cualquier otro evento sin más que seleccionarlo
en la sección Proc e introduciendo el código que sea necesario.
Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la visualización de datos en el mismo, no permitiendo la introducción de datos por parte del usuario.
La forma de utilizarlo es similar a la del control anterior, dibujar el control en el formulario con el tamaño que queramos y asignarle un texto en tiempo de diseño o de ejecución esta vez sin utilizar la propiedad text puesto que no la incorpora, sino utilizando la propiedad caption.
Este control sirve para mostrar mensajes en nuestro formulario que orienten al usuario sobre la utilidad de los demás controles que tengamos en la aplicación o para indicarnos acciones que podemos realizar. En el ejemplo anterior donde aparecía un textbox en el formulario, hubiera quedado mejor con un mensaje aclaratorio contenido en un control label
Si se desea que se
despliegue adecuadamente varias líneas de diversas longitudes, puede
establecer las propiedades Autosize y WordWrap en True.
PROPIEDADES
Caption: Es el texto que contendrá el control.
Alignment: Alineación
del texto contenido en el control, no necesita que
esté activada ninguna
otra propiedad.
BorderStyle: Si queremos
que aparezca un borde alrededor del control
activaremos esta propiedad.
Para este control no se suelen
utilizar los eventos ya que su contenido suele cambiar poco a lo largo
de la ejecución de la aplicación. De todas formas los eventos
son casi los mismos del control textbox excepto que no dispone de los eventos
GetFocus y LostFocus ya que a este control no se le puede dar el enfoque.
Se usa un control de botón de comando para iniciar, interrumpir o terminar un proceso en particular.
Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos. En el ejemplo anterior podemos añadir un control de este tipo para salir de la aplicación sin tener que pulsar sobre la equis de la esquina superior derecha.
Pero sólo con introducir
un control de este tipo con el texto salir que se introduce a través
de la propiedad caption no basta. Habrá que asociarle un código
que nos permita salir de la aplicación en el evento adecuado. Y
el evento por excelencia de este control es click. Así pues accederemos
al código del control y la sentencia nos permitirá salir
de la aplicación es End, simplemente tecleamos esa palabra en el
evento click y comprobar que realmente finalizaremos nuestra aplicación
al pulsar sobre dicho botón.
PROPIEDADES
Caption: Aquí
pondremos el letrero que queremos que aparezca en el botón:
aceptar, cancelar, salir,
entre otros.
Enabled: Esta es una
nueva propiedad, cuando su valor es true el botón
funciona normalmente, cuando
su valor es false el botón se
encuentra desactivado, no
responde a los eventos producidos sobre
él y el texto aparece
en un gris claro advirtiéndonos de su estado.
Podemos utilizar esta propiedad
para activar o desactivar un botón
dependiendo del estado de
otros controles. Por ejemplo, en un botón
Aceptar, no activarlo hasta
que se haya introducido una cantidad en
un control textbox, ya que
ese botón nos calculará el IVA de la
cantidad.
Appearance: Selecciona 3-D o apariencia plana.
Cancel: Permite la selección con Esc True, False
Default: Permite la
selección con enter True, False.
EVENTOS
Click: Es el evento tipico de este control y el que más se utiliza.
MouseMove: Como sabemos
detecta el movimiento del ratón sobre el
control. Puede servir para
que aparezca un mensaje en un
control Label que nos aporte
información sobre la utilidad del
control ampliando el texto
que hayamos colocado como
caption del commandbutton.
7.4 Porque usar los cuadros de textos, Botones de comandos y etiquetas?
Cuando los datos de
campos se ven a través de un formulario, esto son usualmente almacenados(o
relacionados) en varios controles TextBox, los que a su vez se identifican
por etiquetas. Es probable que el mismo formulario tenga algunos botones
para navegar a través de los registros de base de datos.
8 BOTONES DE OPCIONES, CASILLAS DE VERIFICACION Y MARCOS
8.1 Que son los botones de Opción?
Es el que despliega una opción que puede encenderse a pagarse, con la propiedad Value del botón puesta en True o False, según el caso.
Para agrupar los controles OptionButton en un marco o cuadro de dibujo, trace el marco o cuadro de dibujo primero y luego trace los controles OptionButton adentro. Esto se hace para asegurarse que sean mutuamente excluyentes y crear una jerarquía de contenedores validas. Si traza los controles fuera del marco y los arrastra adentro, los copia dentro del marco o traza el marco alrededor de los controles existentes, no producirá los resultados deseados.
Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción será un control optionbutton diferente. Facilita la introducción de datos por parte del usuario:
De todas las opciones que
se nos ofrece, en este caso los 4 colores, sólo podremos activar
una. Si activamos cualquier otra opción, se desactivará automáticamente
la última que teníamos activada
.
El marco que está
alrededor de los 4 controles optionbutton se trata del control Frame, es
opcional, aunque es conveniente colocarlo siempre que hagamos uso de las
opciones. No sólo por motivos de presentación sino porque
de esta manera podremos establecer grupos de controles optionbutton independientes
en los que en cada grupo sólo pueda haber una opción activada
a la vez. También, al mover el marco se moverán los controles
incluidos en él facilitándonos las modificaciones.
Del control Frame la única
propiedad que nos interesará es caption, que es el texto que aparecerá
en el encabezado, en el ejemplo anterior: colores.
PROPIEDADES DE OPTIONBUTTON
Caption: El texto que aparecerá al lado del control: Rojo, verde...
Value: Es el valor
que tendrá el control: True si se encuentra activado y
False si no lo está.
Para comprobar que opción ha activado el
usuario comprobaremos el
estado de esta propiedad.
Alignment: Alineación
del texto respecto al control: Left Justify: el control
aparece a la izquierda del
texto. Es el ejemplo anterior.Right Justify:
el control aparece a la
derecha del texto.
Los eventos del control son
los mismos que en anteriores controles, aunque no se suele asociar código
a los eventos de este tipo de controles, sino únicamente conocer
el valor que tienen: true o false.
APLICACION DE EJEMPLO
Para practicar con los controles que hemos visto vamos a realizar una pequeña aplicación que consistirá en realizar con 2 números que introduzcamos, una operación que seleccionemos y mostrar el resultado.
El formulario donde estarán todos los controles es el siguiente:
La propiedad Caption de cada uno de los controles es la que se muestra en el formulario.
He modificado la propiedad Name de cada control para que al utilizarlos desde el código sepamos cual es el control con el que trabajamos:
· Los controles TextBox
tienen los nombres: Num1, Num2 y Resul.
· Los controles Optionbutton
tienen cada uno de ellos el mismo nombre que su caption
· Los controles CommandButton
tienen los nombres: Calcular, Limpiar y Salir.
· A los controles
Label y al Frame no have falta cambiarles el nombre.
Lo que habrá que hacer ahora es asociar código a cada uno de los botones que es de donde se van a realizar las operaciones:
· Para el botón
Calcular que es el que nos mostrará el resultado según la
operación seleccionada, se puede utilizar la instrucción
If Then Else que se vio anteriormente.
El botón Limpiar Datos nos va a servir para borrar de una forma rápida los datos introducidos por el usuario y el resultado preparando los controles para introducir nuevos datos. El código que tendremos que introducir es muy simple:
El botón Salir únicamente
contendrá la sentencia End
8.3 Que son las casillas de verificación?
Un CheckBox muestra una marca cuando esta seleccionado, y la marca desaparece cuando se borra el cuadro. Este control se usa para dar al usuario las opciones True/False , Si/No y Activado/Desactivado.
Se puede desplegar
texto junto a las casillas de verificacion, estableciendo la propiedad
Caption. Use la propiedad Value para determinar el estado del control:
1 = Marcado
0 = Sin marcar
2 = No disponible(desactivado,
aparece atenuado).
Ej:
Select Case
chksound
Case
0
Msg = “No Seleccionado”
Case
1
Msg = “Seleccionado”
Case
2
Msg = “No Disponible”
End Select
MsgBox Msg
Proporciona una forma atractiva de agrupar controles relacionados. Se puede usar un marco para subdividir un formulario en otros.
Primero se traza el control Frame y luego los controles dentro del Frame.
8.5 Por que los botones
de opción y los cuadros de texto?
Frecuentemente es necesario diseñar cuadros de dialogos que presentan al usuario una diversidad de opciones, algunas de las cuales pueden estar desplegadas como un grupo mutuamente excluyente, mientras que otras estan clasificadas en una forma que permiten tener efecto a la vez a una o mas opciones.
Una comprensión
completa de la relación entre los marcos, botones de opciones y
casillas de verificación, así como de sus propiedades y eventos
asociados, aumentará en gran medida su habilidad para diseñar
formularios y cuadros de diálogos de Windows visual y funcionalmente
concisos.
9 CUADROS DE LISTA Y CUADROS COMBINADOS
9.1 Que son los cuadros de lista?
Los cuadros ListBox despliegan una lista de elementos en la que el usuario puede seleccionar uno o más de estos. Si el numero de elementos excede el numero que puede desplegarse a la vista, una barra de desplazamiento se anexa automáticamente al control ListBox. Los eventos Clic o Ddclic del cuadro de lista se utilizan habitualmente para procesar la selección.
Una propiedad Listcount de una lista devuelve el numero de elementos de la lista, mientras que la propiedad ListIndex se una para seguir la pista del elemento actualmente seleccionado.
La propiedad MultiSelect
devuelve(en tiempo de ejecución) o establece(en tiempo de diseño)
un valor que indica si un usuario puede o no hacer una selección
múltiple, y como usted hacerse tal selección. Para seleccionar
mas de un elemento de una lista, la propiedad MultiSelect del control ListBox
puede ponerse en 1 o 2.
Descripción y Ajuste
de MultiSelect
Ajustar | Descripción |
0 | No se permite la selección múltiple(ajuste por omisión) |
1 | Selección múltiple sencilla. un clic del ratón u opresión de la barra espaciadora seleccionada o quita la selección de un elemento de lista. |
2 | Selección múltiple extendida. Oprimiendo mayúsculas y haciendo clic con el ratón u oprimiendo mayúsculas y una de las teclas de flechas, extendiendo la selección del elemento seleccionado anteriormente al elemento actual. |
9.2 Que son los cuadros combinados?
La diferencia entre cuadros combinados (ComboBoxes) y cuadros de lista(ListBox) es que un control ComboBox combina las características de un control Textbox y un control Listbox. Si el usuario no desea seleccionar alguna de las opciones ofrecidas, puede teclear información en la parte del cuadro de texto del control.
Un cuadro combinado tiene tres estilos diferentes, determinados por sus valores en la propiedad Style. Esta propiedad devuelve o establece un valor indicando el tipo de control ComboBox y el comportamiento en el cuadro de lista. Los valores de la propiedad Style del comboBox resumen a continuación:
Descripción y Ajuste
de MultiSelect
Ajustar | Descripción |
0 | DropDown Combo. Incluye una lista desplegable y un cuadro de texto. |
1 | Simple combo. Incluye un cuadro de texto y una lista fija. El tamaño de un simple Combobox incluye las partes de edición y las parte de la lista. |
2 | DropDown List. Este estilo no es realmente un comboBox del todo. Este permite solamente la selección de la lista desplegable, cuando la parte del TextBox no esta disponible al usuario. |
9.3 Propiedades y Métodos Comunes de lista
Estas se resumen en
le siguiente cuadro
Propiedad | Descripción | Ejemplo de Uso |
ListCount | Numero de elementos de una lista | Item = milista.listCount -1 |
ListIndex | Indice numérico del elemento actual | Milista.Listindex = 3 |
List | Con el índice devuelve el elemento de lista | Quintoelemento =milista.List(5) |
Selected | True, si el elemento esta seleccionado | If milista.Selected(3), Then |
Serted | Lista autoordenada si esta en True | Milista.sorted = True |
Método | Descripción | Ejemplo |
Addeitem | Añade la cadena de elemento | Milista.Additem = “Hola Mundo” |
Clear | Elimina todos los elementos de la lista | Milista.clear |
RemoveItem | Elimina un solo elemento de la lista | Milista.RemoveItem 5 |
Es importante en la
manera en que trabajan los métodos Additem y Removeitem. Ambos requieren
un solo argumento, pero Additem espera una expresión de cadena,
mientras que Removeitem requiere un índice numérico.
9.4 Por que usar cuadros de lista y cuadros combinados?
Como programador de
Windows descubrirá una diversidad de usos para los cuadros de lista
y para los cuadros combinados. Casi siempre existe la necesidad de desplegar
información en un formato de lista, del cual le usuario debe hacer
una elección, o algunas veces, debe permitirle teclear su propia
nueva información textual. Los controles Listbox y Combobox ofrecen
una amplia variedad de propiedades de lista y métodos que pueden
usarse para simplificar en gran medida el proceso de añadir funcionalidad
a sus programas.