Visual Basic
Visual Basic
Visual Basic
Barra de herramientas
La barra de herramientas contiene iconos para las opciones más comunes en Visual
Basic. Por ejemplo hay iconos para crear una nueva forma y módulos, guardar un
proyecto, iniciar y parar la ejecución de un programa, y facilidades para checar los
errores (depurar). La tabla siguiente lista todos los iconos, su función, y la opción
equivalente si se usan los menus.
Menu
Icon Operación
Equivalente
Crea una nueva forma File | New Form
File | New
Crea un nuevo módulo
Module
File | Open
Abre un proyecto existente
Project
File | Save
Salva el proyecto actual
Project
Muestra la ventana del diseñador Window | Menu
de menus Design
Window |
Presenta la ventana de propiedades
Properties
Ejecuta la aplicación que esta en Run | Start
modo diseño.
Realiza una pausa en la ejecución Run | Break
de la aplicación
Suspende la ejecución de la Run | End
aplicación actual
Debug | Toggle
Realiza una pausa en la línea actual
Breakpoint
Muestra el valor de lo actualmente Debug | Instant
seleccionado en la ventana de Watch
código
Muestra la estructura de la llamada Debug | Calls
activa
Ejecuta cada una de las líneas de Debug | Single
código Step
Ejecuta el código de un Debug |
procedimiento u orden en la Procedure Step
ventana de código
Nota: No todos los controles se pueden cambiar de tamaño. En el caso del Timer y el
Common Dialog solo pueden aparecer pequeños cuadros.
Formas
Las formas son usadas para crear ventanas y cajas de díalogo en una aplicación. Ellas
actuan como contenedoras gráficas de controles tales como botones, etiquetas, cajas
combinadas, etc. Existen tres tipos de formas:
La interface de documento simple (SDI) no tiene padre ni niños, es una simple ventana
donde se colocan los controles. La interface de múltiple documento (MDI) necesita una
forma padre y una o varias formas niños. Estos dos tipos de formas MDI se usan para
crear aplicaciones que pueden abrir más de un documento a la vez. Cualquier forma
niño es contenida por una forma MDI padre. Un ejemplo de este tipo puede ser Excel de
Microsoft.
Nota: Para crear una aplicación MDI primero deberás crear una forma MDI padre
escogiendo 'File | New MDI Form'. Las formas niño pueden ser creadas como una
forma normal y seleccionando en las propiedad `MDI Child' a 'True'.
Barra de menus
La barra de menús da acceso a todas la s opciones del medio ambiente de Visual Basic.
Representa un menú estandar para el ambiente de windows
Las opciones más usadas son presentadas usando icones en la Barra de herramientas.
Ventana de proyecto
La ventana de proyecto muestra todas las formas,
módulos y controles del proyecto actual. El botón
marcado con 'View Form' es usado para mostrar la
forma si esta no esta realmente visible. El botón de
'View Code' muestra una ventana de código para la
forma o módulo seleccionado. La ventana de código
también dando doble clik sobre un control.
Icon Meaning
Forma SDI (Single Document Interface)
Forma padre MDI (Multiple Document Interface)
Forma niño MDI (Multiple Document Interface)
Módulo (Module)
Control
Ventana de Propiedades
La ventana de propiedades muestra
opciones para que todas las propiedades
de los controles puedan ser cambiadas
en modo de diseño. La propiedades
pueden cambiar para diferentes
controles. Por ejemplo el control
Etiqueta (Label) se le agrega texto el la
propiedad Caption, no así para el
control caja de texto (Text Box)
control, en la cual se le agrega texto en
la propiedad Text.La ventana de
propiedades solamente muestra las
propiedades que son aplicables al
control seleccionado y no se pueden
cambiar propiedades que no existen
para ese control.
1. Diseñando la Interface. Se crea una forma colocando sobre ella los controles u
objetos necesarios, cambiandolos de lugar y/o de tamaño. Esta será la
presentación de nuestra aplicación.
2. Dando valores a las propiedades de los objetos colocados en la forma y a la
forma misma.
3. Escribir el código en los objetos para indicar que acciónes o eventos se deberán
realizar cuando el usuario interaccione con estos objetos. Este paso es conocido
como " Dar funcionalidad a la aplicación".
Antes de empezar a constuir tu programa, es necesario que primero lo tengas planeado.
Deberás entender las caracteristicas de los objetos contenidos en las diferentes pantallas,
todo esto para que la interface sea amigable y funcional. VB te da una descripción de
cada uno de los controles de la caja de herramientas (toolbox), para ver esto, selecciona
el menú Help, enseguida ejecuta el comando search..., en el campo de la nueva ventana
escribe toolbox y da enter, en la ventana de abajo da doble click sobre toolbox.
1. Diseñando la Interface
Cuando arrancar VB automáticamente entras a modo diseño, si lees el contenido de la
barrra de título te daras cuenta de ello. Esto significa que el sistema esta listo para que
empieces a consruir tu aplicación. Puedes también cargar una aplicación previamente a
sidi salvada, ejecutarla o continuar trabajando en modo diseño con ella. El modo diseño
presenta una forma en blanco, titulada Form1. En ella la interface será contruida (o la
primera pantalla de la interface).
Si colocamos el mouse sobre uno de estos puntos, el curso cambia a una doble flecha, si
en seguida hacemos un clic sostenido y arrastramos couando este cursor se presente
(doble flecha) podremos cambiar el tamaño del objeto moviendo el mouse hacia arriba,
abajo o a los lado, dependiendo que punto seleccionamos. Cuando tenemos el tamaño
adecuado soltamos el clic del mouse.
Para cambiar los valores de las propiedades de un objeto en la forma, dé clic sobre el
objeto para seleccionarlo. En la caja de objetos de la ventana de propiedades aparece el
nombre del objeto seleccionado. En este lugar (caja de objetos) esta una lista de los
objeto y controles colocados en la forma, por tanto también se pueden seleccionar desde
este lugar. Después de seleccionar un objeto, la ventana de propiedades muestra una
lista de las propiedades de éste objeto con los valores actuales. Para cambiar un valor
selecciona una propiedad dando doble clic sobre ella y coloca el nuevo valor en el
campo que se selecciona abajo de caja de objeto.
En el ejemplo la calculadora tiene de fondo el color amarillo. Este color fue colocado
utiliando la propiedad BackColor, al seleccionar esta propiedad aparece un paleta de
colores de la cual se escoge una celda de color.
3. Escribiendo código para el programa
El paso final es escribir el código para que la aplicación se ejecute adecuadamente. En
el ejemplo de la calculadora el código hace que los dígitos aparezcan en el display
(pantalla de salida) cuando se presiona un dígito, y tambíen hace que se realicen los
cálculos cuando se presiona un símbolo de opración como ‘+’, ‘-’, ‘x’, ‘/’ and ‘%’ .
Una vez que la ventana de código para un objeto es abierta, se pueden seleccionar otros
objetos para introducir código en ellos. Para seleccionar otro objeto desde esta ventana
usa el menú llamado Object del lado izquierdo, presionando la flecha hacia abajo de
este campo, esto mostrará todos los objetos que contiene la forma (ver imagen de
abajo).
En seguida se presenta una lista de todos los eventos de Visual Basic. Notará que cada
control utiliza un subconjunto de eventos, esto es un objeto de control no puede tener
acceso a todos los tipos de eventos de la lista siguiente.
Después de completar los tres pasos arriba mencionados (diseño de la interface, colocar
los valores de las propiedades, escribir código), la aplicación puede ejecutarse dando
clic en o presionando la tecla F5.
Menu
Visual Basic llama a una colección de archivos que componen todo el proyecto de la
apliación. Un proyecto consiste de:
Los archivos con extensión .FRM contienen toda la información asociada con la forma.
Detalles de controles, sus popiedades y el código asociado a los objetos que stan en la
forma. Por default los archivos de formas no son salvados como ASCII, para hacer esto
marca 'Save as Text' en la caja de diálogo de save.
Módulos
Aparte del código asociado a los objetos en la forma y la respuesta de los eventos a
ellos, la programación en VB involuvra la escritura de procedimientos generales que
son idependientes a los objetos de la forma y que pueden ser llamados desde culaquier
lugar usando código. Tales módulos tienen extensión .BAS . Note que los archivos
.BAS fpueden no contener declaraciónes (de variables, constantes , etc.). Como las
formas, los archivos de módulo no se salvan por default en formato ASCII. para hacer
esto marca 'Save as Text' en la caja de diálogo de save.
Controles Personales
Los archivos con extensión .VBX contienen la información necesaria para incluir un
control en la caja de herramientas (toolbox) .Para agregar un control .VBX, se utliza el
menú file, usando el comando Add File, al agregarlo, el correspondinete icono es
automaticamente insertado en la caja de herramientas y esta lista para ser utilizado por
el programador.
Archivo de Proyecto
El archivo de proyecto (.MAK) contiene los nombre de todos los archivos que
componene el proyecto (.FRMs, .VBXs, .BASs) y los detalles de sus rutas de acceso.
Este archivo también guarda información acerca del medio ambiente de VB
(environment settings). Los archivos de Proyecto son salvados en código ASCII y se
pueden leer con aplicaciones como el Notepad. esto, lo puedes modificar facimente, sin
embargo, no trates de cambiar una línea a menos que estes seguro de lo que vas a
realizar.
La cja de medio ambiente (environment) una cierta cantidad de valores que pueden ser
modificados para personalizar la apariencia de la ventana de código de VB (tal como los
colores para el código, los comentarios, lo seleccionado), las líneas o puntos guías, y el
comportamiento del sistema (tal como si el proyecto es salvado antes de ejecutar el
comando run y si las variables deberán ser declaradas antes de ser usadas o no).
La caja de díalogo del proyecto contiene tres opciones. La segunda es la más usada en
esta etapa. Esta contiene la identificación de la primera forma que será cargada cunado
la aplicación se esté ejecutando. Generalmente esta deberá ser la Form1 (Es el valor por
default), pero no necesariamente. Cualquier forma puede ser diseñada para ser la
priemra en arrancar (the start up form). Alternativamente, tú puedes desear iniciar una
aplicación sin mostrar una forma (por ejemplo, quieres determinar primero el día de la
semana y entonces cargar una de siete formas). Esto puede realizarce creando un
módulo llamado Sub Main, escribimos el código de inicio aquí y entonces hacemos que
este módulo sea el primero en cargarse seleccionado Sub Main como iniciador en start
up 'form' en la caja de díalogo de las opciones del proyecto.
Creando, abriendo y salvando proyectos
Comando Acción
New Cierra la aplicación actual, presentando una ventana para salvar los últimos
Project cambios. Crea un proyecto en blanco.
Cierra la aplicación actual, presentando una ventana para salvar los últimos
Open
cambios. Presenta una ventana de diálogo ella cula presnta los proyectos
Project
que se pueden seleccionar para abrir. Abre un proyecto existente.
Save
Actualiza el archivo del actual proyecto (.MAK) .
Project
Save Actualiza el archivo del actual proyecto (.MAK) , salvandolo bajo el nuevo
Project As nombre que proporciones. Salvas cualquier cambio hecho al archivo.
Note que los proyectos comparten archivos comunes. Sin embargo es importante
para comprender que VB solamente almacena una copia del archivo. Cuando agregas un
archivo al proyecto, VB no hace una copia del archivo en el proyecto. Esto significa que
cualquier cambio a un archivo deberá afectar todos los proyectos que uses con este
archivo.
Ten cuidado de eliminar archivos fuera del medioambiente de VB (por ejemplo usando
el ardministrador de archivos) , entonces la aplicación que use este archivo no podrán
encontrarlo a pesar de que está su información en el proyecto y ésto producirá un error
en la ejecución del proyecto.
Cuando un proyecto esta completo, se puede crear un archivo ejecutable (.EXE), este
puede ejecutarse fuera del ambiente de >VB (por ejemplo desde el admistrador de
archivos de cualquier máquina que este ejecutando Windows sin necesidad de tener VB)
. Para realizar un ejecutable slecciona 'Make EXE File' del menú File. Debers escribir
un nombre para archivo. Puedes especificar un icono para la aplicación, tecleando el
nombre o seleccionandolo de una lista en la caja 'Use Icon From'.
Nota: Simpre que un proyecto a sido convertido a ejecutable (.EXE) , para poder
ejecutarlo fuera del ambiente de VB deberá necesitar un o más archivos externos. Esto
es porque los archivos EXE de VB no tienen están completamente en código de
máquina. estos están en un Pseudo-código. De esta forma es necesario un archivo .DLL
externo el cual traduce los comando P-Code a comandos que pueden ser entendidos por
Windows En seguida se muestra una lista de los archivos DLL que son necesarios:
Vesión de Visual Archivo DLL
Basic Requerido
1.0 VBRUN100.DLL
2.0 VBRUN200.DLL
3.0 VBRUN300.DLL
4.0 (16-bit) VB16400.DLL
4.0 (32-bit) VB32400.DLL
Menu
Estilos de programación
Cada programador tiene su propio estilo para escribir. Un buen estilo para programar
deberá tener una estructura de código fácil de entender, no solo para otra gente sino
también para si mismo. Aquí hay varios criterios para un buen estilo:
Nombre de controles en VB
Nota: Los nombres de control son usados para hacer referencia a un especifico control
de tiempo de ejecución, no se deben confundir con propiedades de control tales como
‘text’ y ‘caption’.
For num_semana = 1 To 52
Print "Semana #"; num_semana
For num_dia = 1 To 7
Select Case num_dia
Case 1
Print "Domingo"
Case 2
Print "Lunes"
Case 3
Print "Martes"
Case 4
Print "Miércoles"
Case 5
Print "Jueves"
Case 6
Print "Viernes"
Case 7
Print "Sábado"
End Select
Next num_dia
Next num_semana
Las líneas en blanco pueden también ser identadas entre las líneas de código para
romper un procedimiento y hacerlo en pequeños bloques de código.
Documentando el Código
Ejemplo:
Ejemplo:
Procedimienos Coherentes
Cada procedimiento deberá ser diseñado para una tarea simple.Si un procedimiento
maneja muchas tareas, es lógico que pueda ser dificíl de entender y pueda ocurrir
facilmente un error.
Minimizar el acoplamiento
Las variables y los arreglos pueden se accesados por código en diferentes partes de un
programa, desde cualquier lugar si son Globales. Esto es lo ideal, pero sin no hay
cuidado algunos efectos extraños pueden ocurrir en otras partes del programa, como
colocando un valor en una variable por error. Restringuiendo el rango de acceso, o el
alcance de una variable o un arreglo se puede evitar este problema. Un alcance
intermedio es el acceso necesario para una variable durante todo el simple módulo. Esto
significa que cualquier procedimiento en el módulo puede accesar la variable, pero los
procedimientos en otros módulos tienen acceso denegado.
Menú
Estructura de datos
[ Variables | Variables estaticas (Static) | Constantes | Arreglos | Arreglos Dínamicos ]
Variables
Las variables son estructura de datos usados para almacenar información. Hay dos tipos
de información que puede ser almacenada: Números y texto. Antes de usar una variable
ésta, deberá primero ser definida:
Una vez que una variable se ha creado, se le puede asignar un valor. Para esto se usa el
operador ' = '. En el primer ejemplo de abajo a una variable se le asigna un valor
constante, mientras que en el segundo se le asigna el contenido de una variable
multiplicada por 10.
El Alcance de una variable es definido como su rango de operación. Hay tres tipos de
alcance en una variable:
1. Local - La variable solo puede ser usada en el procedimiento actual ( use Dim
dentro del procedimiento requerido).
2. Módulo - La variables pueden ser accesadas desde cualquier procedieminento
de la forma actual (use Dim dentro de la sección de Declaraciones Generales de
la forma).
3. Global - Pueden ser accesados desde cualquier procedimiento y desde cualquier
forma. (usa Global dentro de la sección de Declaraciones Generales de un
módulo).
Variables Estáticas
El declarar variables y arreglos (ver abajo ) como local en un procedimieneto/función es
muy usado, porque esto minimíza los efectos extraños que pueden ocurrir cuando se
usan variables globales. Sin embargo, cuando usamos una variable local en un
procedimiento VB crea un espacio de memoria para mantener el valor de esta variable ,
esto sucede cuando lee el estatuto Dim, pero cuando llega al final del procedimiento
(End Sub) VB libera el espacio asigndo para el valor de la variable local. Agrega el
siguiente código a un botón de comando y observa que valores son impresos:
Sub Command1_Click ()
Dim numero As Integer ' Crea una variable Local normal
numero = numero + 1
Print numero
End Sub
Después de dar clic varias veces al botón de comando deberás ver una columna de unos
en el lado izquierdo de la forma. El valor nunca será arriba de uno a pesar de que el
valor de la variable se incrementa en uno cada vez. Esto es porque cada vez que el
procediemineto es llamado, haciendo clic en el botón, VB esta trabajano con una
variable diferente. Esta tiene exactamente el mismo nombre en el programa pero es una
variable completamente diferente. Para que ésto no suceda así, introduce Staticen el
lugar de Dim:
Sub Command1_Click ()
Static numero As Integer ' Crea una variable estática
local
numero = numero + 1
Print numero
End Sub
Constantes
Las constantes son similares a una variable pero tienen un valor determinado que se
mantiene igual en toda la ejecución del programa. El contenido de una varible puede
cambiar tantas veces sea necesario. ¿Porque usar una constante si no puede cambiar de
valor?. Hacemos esto cuando deseamos usar un mismo número o una palabra (string)
varias veces. Por ejemplo, en un programa para calcular los impuestos de todo el año,
deberá hacer referencia a un valor en varias partes del programa, que puede ser el
porciento de impuesto mensual con respecto a las ganancias. Par ello podemos usar una
variable llamada IMP, que mantendrá el valor en el evento Form_Load.
En el siguiente ejemplo definimos una contante llamada ' IMP ' y le asignamos el valor
de 1.175. Ese es usado en estatuto Print con la variable pago_total para calcular la
cantidad total a pagar. Note que en lugar de escribir 1.175 en la fórmula nos referimos a
el nombre de la constante.
Ejemplo:
pago_total = 560.95
Como las variables las constantes también tiene reglas de alcance. Hay constantes
globales que pueden ser accesadas por cualquier módulo o cualquier forma del
proyecto, las constantes de módulo solo son accesadas por la foma que los contiene, y
las contantes locales son accesadas solamente por el objeto actual o
procedimiento/función.
Arreglos (arrays)
La variables son muy usadas para lamacenar pequeñas cantidades de información, pero
no son convenientes para grandes cantidades de información muy similar. Por ejemplo,
para almacenar los salarios de doscientos empleados, necesitaremos 200 variables
diferentes. Una mejor forma de almacenar esta información será usra una estructura de
datos llamada arreglos array.
salarios(23) = 25000
Contrario a lo anterior, si deseamos saber cula es el salario del empleado número 189,
podemos usar:
lblvalor.Caption = salarios(188)
Nota: En los dos ejemplos anteriores, para accesar un elemento es necesario colocar el
número del elemento anterior (si deseamos el 150, pedimos el 149). esto es VB empieza
un arreglo de 0, no de 1. Sin embargo VB pude ser forzado a empezar con 1, agregando
el estatuto 'Option Base 1' en la sección de declaraciones generales de la forma o el
módulo.
Dynamic Arrays
Podemos crear arreglos tantas veces lo necesitemos , pero en ciertos momentos es
necesario cambiar el tamaño del arreglo en una aplicación. Para hecer esto podemos
usar un arreglo ' dínamico '. Primero el arreglo puede ser declarado en la misma forma,
pero sin el número de elementos:
Para cambiar el tamaño de este arreglo use el comando 'ReDim ' y especifique el número
de elementos :
ReDim libros(99)
Ir al Menú
Control de un Programa
[ If | Case Select | Do While | Loop While | For...Next ]
Visual Basic como otros lenguajes de programación ejecutan las líneas de código de
arriba hacia abajo. Sin embargo fecuentemente deseamos que no todas la líneas se
ejecuten siempre cuando el progrma esta corriendo. En lugar de escribir varios
progrmas diferentes para este trabajo, se pueden usar comandos de repetición y
bifurcación (ramificación).
Comandos de ramificación
If
If en Multi-línea (Ejemplo):
El If de multi-línea necesita una expresión 'End If' para definir el final del bloque
If.
If y Else (Ejemplo):
If y ElseIf (Ejemplo):
If a > 10 And b < 20 Then
lblFirst.Caption = "A es mayor que 10"
lblSecond.Caption = "B es menor que 20"
ElseIf c = 8
lblFirst.Caption = "A es menor o igual que 10 OR"
lblSecond.Caption = "B es mayor o igula que 20"
lblThird.Caption = "Sin embargo, C es igual a 8"
Else
lblFirst.Caption = "Los primeros dos test fallarón"
End If
Selecciona caso
Case (Ejemplo):
La expresión 'End Select' define el final del bloque de casos. Si deseamos que
presente un mensaje si se introduce un valor no definido en el bloque de casos,
deberemos usar 'Case Else' de la siguiente manera.
...
Case 7
nombre_del_dia = "Sábado"
Case Else
MsgBox "Error en selección, una semana tiene solamente 7 dias"
End Select
Estructuras de repetición
Los siguientes comandos pueden ser usados para repetir varias veces la ejecución
de una sección de código.
Ciclo Do (Sintaxis):
Do While condición
líneas de código
Loop
Ciclo Do (Ejemplo):
hoy = 1
Do While hoy = 7
hoy = hoy + 1
Loop
Do
líneas de código
Loop While condición
Ciclo While (Ejemplo):
temp = 0
Do
temp = temp + 1
Loop While temp = 100 ' No hierve
Los ciclos For si los programadores saben cuantas veces un cliclo debe ser
ejecutado.
For semana_actual = 1 To 52
For dia_actual = 1 To 7
...
Next dia_actual
Next semana_actual
El incremento en Step como parte del ciclo, es usado para decirle a VB cuanto
debe aumentar en cada ciclo la variable de control. Introduce el siguiente código y
observa que valores se imprimen.:
Ir al Menú
Los menús Pull down son usados en todas las aplicaciones de Windows. Con ellos
se tienen las siguientes ventajas:
• Los nombres de los menús son visibles textualmente sobre la barra de menús, de
tal forma que el usuario puede ver de un solo vistazo las funciones principales
de la aplicación.
• Los títulos de los menús y los comandos del menú (tal como Open Project en el
menú File) no deberán ser ambiguos, esto nos lleva a poder crear iconos para
botones en una forma rápida y clara (como ejemplo el icono para abrir ).
• La barra de menús está en la parte más alta ocupando poco espacio en la
pantalla.
• Los menús son accesados por medio de una combinación de teclas (manteniendo
presionada la tecla Alt y la letra que esta subrayada en el nombre del menú..
• Las funciones son agrupadas para formar un conjunto de comandos que están
relacionados, esto ayuda a los usuarios al buscar una funcioes especifica (saben
donde encontrarla).
• Se han realizado esfuerzos para estandarizar los nombres y el orden de los
menús (Especialmente por Microsoft), tal que los paquetes sean fáciles de
aprender y usar.
Cuando se construye una nueva aplicación en VB, existen reglas para la creación de
menús que deberían usarse. Hablaremos aquí como se construye un menú.
Los menús son creados usando la ventana de Menu Designque está dentro del menú
Window . Esta ventana puede ser invocada dando clic en icono de la barra de
herramientas.
La parte de arriba del Menu Design Window contiene propiedades para el control del
menú. La parte de abajo es para el contenido de la caja del menú, donde se puede
constuir el menú y los submenús si son necesarios. El contenido en el diseño del menú
en la gráfica anterior produce el siguiente menú.
Cuando un comando es tecleado en la caja para crear el menú, este deberá aparecer en el
menú al ser desplegado. Para editar un comando, solo se selecciona ( de la misma
manera se pueden editar las propiedades en la parte de arriba de la ventana, como el
name, caption, Shortcut, etc.).
For set_menu = 1 To 6
Rem Ninguna línea de sub.meú tiene una marca de activo.
mnuTracking(set_menu).Checked = False
Next set_menu
End Sub
Menús Pop-up
Un menú pop-up es aquel que es mostrado enla forma pero no esta amarrado a
la barra de menús.
El código de abajo muestra un menú pop-up, que puede accesar si usas el botón
derecho del ratón apliandolo a la forma. Para probar este ejemplo, crea una
forma con un menú llamado “mnuFile” (“mnuFile” debera tener el sub-menú
también). Copia el código en la sección de Declarations de la forma y ejecuta la
aplicación.
End Sub
Nota: Todos los controles son presentados con las coordenadas relativas al
objeto padre, tal que si cambiamos X y Y ambos a cero ' 0 ' el menú en la
esquina superior izquierda de la forma.displays a pop-up menu at the top left
corner of the form.
Menú
Interface
Comportamiento
Este es un simple programa que contiene tres menús, tres cajas de listas un botón para
terminar.
Todos los menús actuan sobre las cajas de listas, cambiando el color de fondo
(background) y el color de las letras (foreground), el tamaño y el tipo y permite insertar
y borrar datos. Cualquiera de estas acciones lafecta las tres listas simultaneamente.
Nota: Dando clic sobre cualquier dato en la lista causa que las otras dos listas
seleccionen inmendiatamente palabras correspondientes.
Colours Fonts
Vocabulry
Color de texto> Grey Tamaño> 10pt
Agregar
Light Blue 12pt
Borrar
Light Green 15pt
Light cyan 20pt
Color del fondo> Black 25pt
Blue Tipo> Ro
Green
Script
Cyan Courier
Red Modern
Magenta
Yellow
Ayuda:
1. Si no sabes como crear un menú de cascada, por favor lee : Menús de cascada y
Popup.
2. Introduce los datos en las listas tal que correspondan las palabras con la misma
posición en cada lista. Puedes agregar un dato (item) con la sentencia AddItem
en el procedimento FormLoad o usar la función Add del menú bar para hacerlo
en tiempo de ejecución. Sientete libre de variar el lenguaje o vocabulario.
3. La propiedad ListIndex da la posición del item seleccionado en la lista. La
forma de sincronizar las listas es asignar solo el The way to synchronise the lists
is to assign the ListIndex del seleccionado a las otras listas to the other lists,
Esto aplicado en el evento Click de la lista lstFrench introducoriamos:
4. lstGerman.ListIndex = lstFrench.ListIndex
5. lstEnglish.ListIndex = LstFrench.ListIndex
6. Para borra una palabra seleccionada en las tres listas, solo usa el ListIndex para
accesarlas.
7. La función Add necesita las indicaciones del usuario para que los tres items de
las lista sean las adecuadas en la selección. .
Tutorial 4 (Cajas de listas y cajas combinadas)
Menú
Las cajas de lista y las cajas combinadas son usadas para proporcionar una lista de
opciones al usuario. En la caja de herramientas estos dos controles estan representados
por : para la caja de lista y para una caja combinada.
Cajas de lista
Una caja de lista es útil cuando al usuario se le presenta un conjunto de opciones fijas
(el puede escoger solamente de las opciones mostradas, no hay posibilidad de teclear
otra alternativa).
Un ejemplo puede ser al ofrecer una lista de los dias de la semana, los lugares para
vacacionar de una agencia de viajes, o los tratamientos ofrecidos por un salón de
belleza.
Para crear una caja de lista, haz doble clic en el icono que esta en la caja de
herramientas. Traza una caja del tamaño que deseas para que contenga los datos dentro
de la forma. El lado izquierdo de la imagen de abajo, muestra una caja de lista que fué
creada en la Form1. En seguida de la imagen está el código que se require para mostrar
una sección de nombres de autos en la lista. Los datos se incluyen en el procedimiento
Sub Form_Load de tal forma que estos aparecerán cuando la Form1 es cargada. Al final
aparece una imagen que muestra como como se verá la forma cuando la aplicación se
ejecuta. Note que las barras de desplazamiento vertical son agregadas automaticamente
si la caja de lista no es lo suficientemente grande para mostrar todas las selecciones.
Sub Form_Load ()
List1.AddItem "Peugot 405"
List1.AddItem "VW Passat"
List1.AddItem "Volvo 740"
List1.AddItem "Montego"
List1.AddItem "Nissan Sunny"
List1.AddItem "Vauxhall Astra"
List1.AddItem "Mercedes"
List1.AddItem "Ford Sierra"
List1.AddItem "Citroen"
End Sub
En el ejemplo anterior, note que los items en la caja de lista aparecen en el orden en que
fueron tecleados. Pero si cambiamos la propiedad sorteda veradadero (true) en lugar de
falso (false) en la caja de propiedades de este control, los nombres de autos aparecerán
en orden alfabético (primero Citroen).
Agregar un itema una lista, si la lista esta ordenada, Jaguar 4.2 se colocará en orden
alfabético, de otra forma este item aparecerá al final de la lista.
La lista de items puede ser númerado con 0, 1, 2, etc. Esta expresión insertará Jaguar 4.2
al inicio de la lista. Cuidado de usar este mecanismo cuando la propiedad sorted es
verdadera, porque el resultado puede ser impredecible.
List1.RemoveItem 0
Se puede agregar un item con elegancia, usando una caja de dialogo para entrada de
datos (InputBox). Prueba la siguiente línea de código:
Tarea:
1. Crea la caja de lista que aquí se mostró. Explora como trabaja en tiempo en la
ejecución con la propiedad sortedprimero false y luego true. Luego agrega un
botón de comando como se muestra abajo. Usa este botón con el evento clic,
para agrgar items a lista o para eliminarlos.
2. Crea una caja de texto que muestre el número de items en la lista. Ejecuta la
aplicación y checa el cambio en la caja de texto creada al agregar un item o al
eliminarlo. Create a text box to display the number of items in the list. Run the
application and see this text box change as you add and remove items. Más
abajo se muestra el código que será agregado en le botón de comando usando el
eventoclic. Note que las partes fijas del txto que se muestra entre comillas ( " ),
el valor de la propiedad ListCount esta concatenado por signo llamado
ampersand (&).
3. Sub Command1_Click ()
4. List1.AddItem "Jaguar 4.2"
5.
6. Text1.Text = "Hay " & List1.ListCount & " autos en el
lote."
7. End Sub
Hay tres tipos de Cajas combinadas (0, 1 and 2), El valor que se coloca en la
propiedad style es el que determina el tipo. Las cajas combinadas (estilos 0 y 2)
son una buena opción cuando el espacio es limitado, porque toda la lista se
muestra como un menú de cascada, así no ocupa el espacio en la pantalla hasta
que se da clic a la flecha hacia abajo. Las cajas combinadas (estilos 0 y 1) se
considerá cuando el usuario puede introducir una opción que no este predefinida.
Este tipo de caja no tiene botón de flecha hacia abajo para crear una caja de
cascada, la lista siempre permanece en panatalla. Si todos los items no aparécen,
las barras de despazamiento vertical aparecenrán automaticamente. Como en el
tipo anterior, los usuarios pueden introducir texto en el campo de edición.
Este control se comporta como una caja de lista, solo que al seleccionar no se
muestran todos los items, estos aparecen hasta que se da clic a la flecha hacia
abajo. el usuario puede seleccioar de la lista, no se puede introducir texto.
Tip: Cuando selecciones los controles en este ejercicio, toma en cuenta los
aprendidos en turoriales anteriores. Usa la propiedad Visible para hacer que la
lista apropiada sea visible/invisible según se requiera. Trata de importar
imágenes y gráficos de otos paquetes incluyendo el Word Art.
Es fácil hacer esto. Creamos el primer elemento en la forma normal usando la caja de
herramientas. Supongamos que creamos una caja de texto llamada Text1. Ahora
seleccionamos Text1 (dando clic en él) y escogemos copiar del menú Edit. En seguida
sleccionamos Paste del mismo menú. VB deberá presentar una caja de díalogo
diciendote que ya tienes un control con el mismo nombre y te pregunta si deseas crear
un arreglo, si contestas YES estas creando el arreglo de dos elementos hasta este
momento, si contestas NO se crea otro nuevo objeto. Al contestar YES y crear el arreglo
con un nuevo elemento, inspecciona la ventana de propiedades de los dos objetos veras
que las cajas se llaman Text1(0) y Text1(1); Al primer elemento en un arreglo de VB
se le da el índice de 0. Continua creando tres cajas de texto más y ve sus índices.
Usando un control array
Lo más importante que tenemos que recordar cuando nos referimos a un arreglo (array)
es su índice. Para usar un poco el control Array, aquí tenemos una pequeña pieza de
código para un arreglo de cajas de texto que tu deberás crear.
Interface
Coloca el color amarillo en la propiedad forecolor de todas las cajas de texto. Esto se
puede realizar dando clic en una parte de la forma y con el clic sostenido arrastrar el
mouse hasta crear un rectángulo que encierre los objetos que deseas seleccionar,
enseguida en la ventana de propiedades cambia el color (forecolor) como si lo hicieras
para un objeto.
Comportamiento
Sub Command1_Click ()
Dim i As Integer
For i = 0 To 4
text1(i).BackColor = QBColor(i)
text1(i).Text = i
Next i
End Sub
1. Manten la misma interface que tienes arriba, pero elimina el botón de comando.
Crea un panel 3D debajo de las cajas de texto (como una barra de estado). Usa la
caja de herramientas para esto. Cambia el backcolor de todas las cajas de texto a
gris. Programa el evento MouseMove de Text1() tal que:
b) El Panel 3D (el cual es usado como una barra de estatus) tenga un caption, el
cual su valor será la caja de texto que se selecciono esto es, deberá aparecer por
ejemplo,: “El mouse esta sobre el Text1(3)”.
2. Modifica el programa de tal forma que cuando el cursor entre a una nueva caja
de texto, esta caja se seleccione y la pcaja previa se deseleccione . Algo como
esto:
3. Sub Text1_MouseMove (index As Integer, Button As Integer,
Shift As Integer, X As Single, Y As Single)
4. ' NOTA que tbmax (significa la caja de texto de máximo
indice) es una constante global declarada
5. ' en el module1.bas y tendra un valor de 4.
6. ' prev es una variable global, declarada en module1.bas e
inicializada
7. ' en Form_Load y será tbmax+1 (esto es fuera de rango).
8.
9. If index <> prev Then ' Aqui se hace un cambio de
selección
10. text1(index).BackColor = QBColor(4) ' rojo
11. If prev <= tbmax Then text1(prev).BackColor = QBColor(8)
' gris
12. prev = index ' almacena el indice actual en prev
13. panel3d1.Caption = "El mouse está ahora sobre Text1(" &
index & ")"
14. End If
15.
16. End Sub
La sintaxis es :
Menu
Usa la ayuda de VB para encontrar más acerca de estos controles (selecciona uno de
estos controles de la caja de herramientas y presiona F1; F1 da ayuda al contexto).
Tareas
1. Escribe una simple aplicación como la siguiente:
Interface:
Comportamiento:
Las cajas de texto en el final de las barras muestran los valores máximos y
mínimos (pon los valores en el modo diseño).
Tip:El código para la barra horizontal esta más abajo. El símbolo ‘&’ es un
operador para la concatenación el cual permite pegar elementos de cadena
(string). Note que las partes constantes La velocidad actual es aparecen entre
comillas, con ello Vb la presentara tal como esta escrita. Las variables tales
como hscroll.value (el valor actual de la barra horizontal) puede ser inculido
para seguir a una cadena de caracteres - estas variables son evaluadas y VB
inserta el resultado de ellas.
Sub HScroll1_Change ()
txtCurrSpeed.Text = "La velocidad actual es " &
HScroll1.Value & " mph"
End Sub
2. Usando las barras para manipular objetos en la pantalla,en este ejemplo se usan
objetos diferentes.
Interface:
Comportamiento:
Cuando generes el objeto, experimenta con el ancho y el alto para determinar los
máximos valores sensibles. Los mínimos valores de las barras a el valor del alto
y anco que tienen los objetos al inicio.
Tip: Esta aplicación solo tiene UNA línea de código para cada uno de los cinco
controles interactivos.
De hecho se puede alterar las propiedades interactivamente (tal como size) de
la pantralla de objetos de otras maneras, por ejemplo usando menus, botones de
comando, cajas de verificación, etc. - realiza unos experimentos cambiando el
color y fontsize por diferentes métodos.
3. Usa Paintbrush para diseñar una serie de imagenes que puedan ser mostradas
sucesivamente creando con ello una animación . Crea un arreglo conn estas
imagenes usando el control Picture . Usa el portapapeles (clipboard) para
importar las imagenes una por una en el arreglo creado. Pon la propiedad
Visible en False a todas la imagenes . Crea una caja más que no sea parte del
arreglo, ésta deberá ser visible. Agrega un botón de comando a la forma. Pon
código en este botón usando el evento Click para que con él arranque la
animación. La animación se realizará ciclando las imaganes, (usa un contador
como se uso en la tarea 1) carga cada imagen en turno dentro de la cada visible.
Dibuja un hombre con trazos de líneas, es más fácil y puede tener un
movimeinto más efectivo.
Menu
• Para agregar una forma en blanco a una aplicación, seleccione New Form del
menú File. Esta forma puede ahora ser diseñada y códificada de la misma
forma como la primera (la aplicación).
• Para incluir en nuestro proyecto una forma que fué creada y salvada ( en el disco
duro o un disco flexible), selecciona Add File del menú File.
• Para moverte entre las formas en tiempo de ejecución necesitas esconder la
forma que dejas Hide, y presentar la forma a la que vas Show. Para hacer esto
utiliza las instrucciones que estan en seguida, solo cambia frmX y frmY,
colocando los nombres de tus formas. Este código puede colocarse en algún
evento (button click po ejemplo) para que el cambio de la forma se realice.
• frmX.Hide
• frmY.Show
Unload frmX
Tarea
Solo para tener una idea rápida de una aplicación multi-forma, crea un programa
maestro que contenga varios de los ejercicios realizados en los tutoriales anteriores.
Inicia un nuevo proyecto. La primera forma deberá tener una pantalla de bienvenida
(llamala frmWelcome), usa herramientas gráficas se vea atractiva. Incluye sobre la
forma un panel 3D que contenga tres botones de comando con aprpiadas imagenes
sobre ellos(usa el botón de comando 3D ) para representar las tres aplicaciones que
deseas incluir (por ejemplo el language tutor, restaurant program, animation
program). Agrega un botón para salir y terminar el programa.
Usando la opción Add File, carga las formas de las aplicaciones en tu proyecto. Las
formas deberán tener npmbres diferentes entre ellas antes de cargarlas. Si cuando las
creaste y las salvaste con el nombre de form1, antes de cargarlas a tu aplicación
cambiales el nombre.
Codifica los botones de comando en la pantalla de bienvenida para que esta pantalla se
esconda y muestren la siguiente forma.
Si las pantallas siguientes tiene un botón de salir (quit) cambia el Caption y su código
para que con el se pueda regresar a la pantalla de Bienvenida, si no tienen agrega un
botón para que tenga esta función.
Diagrama de la aplicación
Menu
• Entender como operan un MDI padre y las formas niño, y diferencias entre
estas.
• Crear un forma MDI padre con un menú de cascada.
• Crear una forma MDI niño con su propio menú.
• Cargar y descargar formas niño cuando sean requeridas durante tiempo de
ejecución.
Tarea
1. Crea forma MDI padre y cambia varias de sus propiedades (por ejemplo
Caption).
2. Crea un menú de cascada para la forma pade con la siguiente estructura:
3. File
4. ...New
5. ...-
6. ...Exit
7. Crea una forma ‘normal’ y transforma aen una MDI niño. Esto se hace en la
ventana de propiedades.
8. Crea un menú de cascada en la forma MDI niño con la siguiente estructura:
9. File
10. ...New
11. ...Close
12. ...-
13. ...Exit
14. Window
15. ...Cascade
16. ...Tile
17. ...Arrange Icons
18. Coloca cualquier control en la forma niño tal como cajas de texto, cajas de
imagenes y botones de comandos.
19. En el comando ‘New’ del menú del MDI padre introduce el código para crear
una forma MDI niño nueva.
Exemplo:
Sub mnuNew_Click ()
Dim frmNew As New frmChild ' Crea una nueva forma niño
frmNew.Show
frmNew.Caption = "MDI Child #" & (forms.Count - 1)
End Sub
El código de arriba crea una nueva forma de tipo niño debido a la instrucción
‘frmChild’. El nombre de la nueva forma es ‘frmNew’ y la siguiente línea usa el
comando Show para mostrar la forma.
Nota:ebido a que los menus de las formas niño es remplazado por los menus del
padre, es necesario introducir algo de código.
20. Introduzca ‘Unload Me’ en la opción ‘Close’ del menú de la forma niño.
21. Escribe el código para las opciones de presentación de las ventanas, tales como
cascada, . El código para hacer esto es el siguiente:
22. frmMDIParent.Arrange 0 ' Cascada
23.
24. frmMDIParent.Arrange 1 ' Tile (horizontally)
25.
26. frmMDIParent.Arrange 2 ' Tile (vertically)
27.
28. frmMDIParent.Arrange 3 ' Arrange icons
29. En la ventana de creación de menus, estando en la forma MDI niño, haga clic en
la caja de verificación de Windows List (Ver abajo en la gráfica).
Menu
Archivo
• FileAttr - Devuelve información del sistema operativo acerca dl archivo que
esta abierto.
• FileDateTime - Devuelve una cadena de caracteres que indican la fecha y la
hora de la última modificación del archivo.
• FileLen - Devuelve un entero largo que indica la longuitud en bytes de un
archivo .
• FreeFile - Devuelve el siguiente numero de archivo valido que no esta en uso.
• GetAttr - Devuelve un entero qu indica los atributos de un archivo, directorio, o
etiqueta de volumen.
• Loc - Devuelve la posición actual en un archivo abierto.
• LOF - Devuelve el tamaño en bytes de un archivo abierto.
• Seek - Devuelve la posición del archivo actual.
Número
• Abs - Devuelve el valor absoluto de un número.
• Atn - Devuelve el arcotangente de un número.
• Cos - Devuleve el coseno de un ángulo (ángulo en radianes).
• Sin - Devuelve el seno de un ángulo (ángulo en radianes).
Cadena
• InStr - Devuelve la posición de la primera ocurrencia de una cadena dentro de
otra cadena de caracteres
• LCase, LCase$ - Devuelve una cadena de caracteres en la cuál todas las letras
han sido convertidas a minúsculas.
• Left, Left$ - Devuelve los n cacarteres a la izquierda de un cierto argumento.
(cadena).
• Len - Devuelve el número de caracteres en una expresión de cadena o el número
de bytes necesarios para almacenar una variable.
• LTrim, LTrim$ - Devuelve una copia de una cadena eliminando todos los
espacios en blanco.
• Mid, Mid$ - Devuelve una cadena qu es parte de una cadena.
• Right, Right$ - Devuelve los n caracteres más a la derecha de un argumento
determinado.
• RTrim, RTrim$ - Devuelve una copia de la cadena de caracteres con los
espacios de la derecha eliminados.
• Space, Space$ - Devuelve una cadena que consiste de un número especifico de
espacios.
• Trim, Trim$ - Devuelve una copia de una cadena con los espacios de ambos
lados eliminados.
• UCase, UCase$ - Devuelve una cadena con todas las letras convertidas a
mayúsculas.
Hora/Fecha
• Date, Date$ - Devuelve la fecha actual..
• IsDate - Returns a value indicating whether of not a Variant argument can be
converted to a date.
• Minute - Returns an integer between 0 and 59, inclusive, that represents the
minute of the hour corresponding to the time provided as an argument.
• Month - Returns an integer between 1 and 12, inclusive, that represents the
month of the year for a date argument.
• Now - Returns a date that represents the current date and time according to the
setting of the computer's system date and time.
• Time, Time$ - Returns the current system time.
• Timer - Returns the number of seconds that have elapsed since 12:00 a.m.
(midnight).
• Weekday - Returns an integer between 1 (Sunday) and 7 (Saturday) that
represents the day of the week for a date argument.
• Year - Returns an integer between 100 and 9999, inclusive, that represents the
year of a date argument.
Variable Conversion
• CCur - Explicitly converts expressions to the Currency data type.
• CDbl - Explicitly converts expressions to the Double data type.
• CInt - Explicitly converts expressions to the Integer data type.
• CLng - Explicitly converts expressions to the Long data type.
• CSnd - Explicitly converts expressions to the Single data type.
• CStr - Explicitly converts expressions to the String data type.
• CVar - Explicitly converts expressions to the Variant data type.
• CVDate - Converts an expression to a Variant of VarType 7 (Date).
Menú
Tipos de archivos.
Visual Basic tiene tres formas interconstruidas para accesar alchivos (excluyendo el
control Data la cual accesa bases de datos): 1) Acceso secuencial, 2) Acceso aleatorio, y
3) Acceso binario.
Acceso secuencial: Los datos de los archivos son leidos y escritos línea por línea. El
almacenamiento es eficiente, pero al accesar los datos en diferentes secciones del
archivo es díficil, por el mecanismo secuencial de acceso.
Acceso aleatorio Lee y escribe datos registro por registro a cualquier localización
dentro del archivo. Este tipo de acceso es conveniente cuando el archivo contiene tipos
de datos homogeneos.
Acceso BinarioLee y escribe datos byte por byte a cualquier localización dentro del
archivo. este tipo de archivo es efieciente en términos de almacenamiento, pero es
dificil de programar.
Nota: la variable ‘temp’ es usada porque las propiedades no pueden ser usadas
directamente con un argumento de salida. Así, cada línea del archivo es leída
dentro de ‘temp’.
12. El código de arriba define un tipo de dato nuevo llamado ‘PersonData’ el cual
puede ser usado para declarar variables . Declaremos una variable para este tipo
introduciendo código en la sección de declaraciones generales de la forma
principal :
13.
14. Option Explicit
15. Dim Person As PersonData
Eso crea una nueva variable llamada ‘Person’.Sin embargo esto no es un tipo de
dato como String, Integer, Long, etc, esto es un nuevo tipo de datos llamado
PersonData.
16. Crea una estiquetas (label) y unas cajas de texto en la forma principal para que el
usuario pueda introducir o editar información de cada persona en la base de
datos.
17. para que los datos se almacenen podemos introducir las siguientes líneas :
18.
19. Person.FirstName = txtFirstName.Text
20. Person.LastName = txtLastName.Text
21. Person.PhoneNo = txtPhoneNo.Text
22. Para salvar los datos a un archivo primero este deberá ser abierto. Deberemos
decirle a VB la longuitud en caracteres de cada registro. Los errores aquí tienen
consecuencias desagradables. Para los detalles en ña base de datos personal la
longuitud es (20 + 25 + 14 + 2 + 100). Esta es la longuitud de las cadenas
(strings) agregadas más 2 lo cual es el número de caracteres que un entero
necesita.
23.
24. Dim FileNum As Integer
25. Dim Position As Integer
26.
27. FileNum = FreeFile
28. Position = 1 ' Determina cual registro debe ser
accesado
29.
30. Open "A:\PERSONAL.DAT" For Random As FileNum Len = 161
31. Put #FileNum, Position, Person
32. Close #FileNum
33. Para leer datos de un archivo aleatorio usa el siguiente código despues de que el
archivo este abierto:
34.
35. Get #FileNum, Position, Person
36. txtFirstName.Text = Person.FirstName
37. txtLastName.Text = Person.LastName
38. ...
Nota: Cuando trabajes con algún tipo de archivo de VB , para checar que el
contenido del archivo sea correcto, minimiza Vb y abre el archivo que deseas
verificar usando el Notepad de windows, el nombre del archivo es
PERSONAL.DAT). Note Pad u otros programas pueden ser usados para crear
archivos para VB la única condición es que esten en código ASCII.
Menu
El objetivo de este tutorial es aprender como se establece una liga entre una base
de datos creada en Access y una aplicación hecha en VB. Al termino de este
tutorial seras capaz de:
Microsoft Access
MS Access Es una base de datos relacional que almacena datos (información) en
campos los cuales son se agrupan para formar registros. Una tabla es una colección de
registros. Los campos son pequeñas unidades de datos en una tabla. Como en Vb los
campos sirven para especificar un acceso aleatorio, en Access los campos también se
pueden asignar de diferentes tipos que son:
• Text (Default)
• Memo
• Number
• Date/Time
• Currency
• Yes/No
• OLE Object
Los campos tienen relación con los registros, por ejempo: Un registro médico puede
incluir los siguientes campos: nombre del paciente, dirección del paciente, edad, peso,
altura historial clínico, lista de alergias, notas, etc. cada paciente tendrá un registro de
información. Por lo tanto si un Doctor tiene 10 pacientes , significa que tendrá una tabla
de 10 registros.
Posibilidades adicionales.
Navegación:
En lugar de confiarse de los controles Data para cambiar a diferentes registros en la base
de datos, pueden usarse los comandos especiales Recordset. Cambia la propiedad
Visible del control Data a False. Ahora se puede agregar un botón que contenga el
siguiente código para ir al siguiente registro:
Sub Command1_Click ()
Data1.Recordset.MoveNext
End Sub
Otros comandos se pueden incluir:
Buscando:
Sub cmdFind_Click ()
Dim SearchCriteria
End Sub
Menu
Tutorial 9: Usando el control Rejilla
(Grid)
El objetivo de este tutorial es aprender como crear y usar una rejilla. Al terminar
este tutorial serás capaz de:
Rejillas (Grids)
El control grid crea tablas las cuales pueden ser capaces de de mantener texto y/o
gráficos. Las rejillas son muy usadas para presentar y resumir datos númericos como
una hoja de cálculo (como Excel) El tamaño de una rejilla puede ser controlado por dos
propiedades: Row (profundidad), y Col (ancho). El tamaño máximo de una rejilla o celda
es de 2000 filas (rows) y 400 columnas (columns). Las cajas individuales dentro de una
rejilla se les lIaman celdas. Cada celda, como en un arreglo elemental, tiene una
dirección de referencia usando dos cooredenadas para ello, que son fila y columna. El
contenido de cada celda pude ser leido y editado en tiempo de ejecución.
Tarea
Crea una tabla de gastos caseros usando una rejilla para tener un control presupuestal
sencillo.
Nota: Como los arreglos en las celdas de las rejillas de VB inician con 0,
implica que ´Enero´ estara en la columna 0, fila 1, y ´Gas´ en la columnn 1, fila
0.
3. Centra los encabezados de gastos y alinea a la derecha las celdas que no tienen
información fija. Checa en Help sobre ColAlignment() para las celdas que no
tienen valor fijo, y FixedAlignment() para las celdas fijas.
4. cambia el ancho de la columna hasta donde sea necesario para tener una
presentación tal que no se trunquen los datos al ser presentados.
5. Introduce los gastos a las celda de la rejilla. Recuerda que antes de introducir un
dato a una celda, debes de decirle a Vb que celda deseas alterar. Usa la
propiedad Row y Col para hecer esto en tiempo de ejecución:
6. grdExpenses.Row = 1
7. grdExpenses.Col = 1
8. grdExpenses.Text = “50.99”
Nota:Como las cajas combinadas y las cajas de lista, el mejor lugar para colocar
este código es en el evento ‘Form_Load’ .
9. Agrega una nueva columna en la parte más baja de la rejilla que represente los
Totales. Etiqueta la columna ´0´ como Totales y entonces usa alguna estructra
repetitiva (en tiempo de ejecución) que a través de todas la celdas y en cada
columna coloque el total. Esta fila de totales deberá ser igual a todos los gastos
de Gas en el año (para la columna de Gas) y de la misma manera para los demas
gastos.
Nota: La rejilla muestra números, pero estos están almacenados como texto
(strings). Para sumar dos strings como si ellos fueran números, primeros hay que
usar la función Val()para los números y sumarlos con esta función.
Menu
Picture1 = LoadPicture("D:\VB\ICONS\COMM\PHONE08.ICO")
Si primero creas un frame y luego le agregas los botones de opciones dando clic
sobre el control en la caja de herramientas y arrastras el cursosr de cruz delgada
dentro del frame para crear ete control, esto dará como resultado que los botones
de opciones estén fijos al frame, tal que si deseamos moverlos, todos se moverán
juntos. Nota que si creas primero el frame y enseguida para crear los botones de
opciones das doble clic sobre el control en la caja de herramientas y luego cada
botón de opción creado lo arrastras hasta colocarlo dentro del frame, cuando
estan integrados y deseas moverlo, no se moveran juntos.
Los botones de opciones son mutuamente excluyentes, solo permiten que solo
una opción seá seleccionada. Suponiendo que deseamos presentar al usuario
varias opciones de las cuales puede escoger varias. En este caso el uso de cajas
de verificación es más adecuado. Crea una aplicación como la mostrada abajo.
El usuario podra escoger el item que necesite dando clic en la caja de
verificación. Los iconos serán mostrados al seleccionar un item. Un clic en un
item seleccionado (contiene una cruz) lo deberá de-seleccionar. La propiedad
value de la caja de verificación deberá ser 1 para una slección y 0 para una de-
selección.
Esta aplicación requiere insertar algo de código en un evento clic para cada una
de las cajas de verificación. El código nos dira si la caja esta seleccionada
mostrarando el icono apropiado y si no esta seleccionada presentará un blanco
en la picture box. Este procedimiento lógico usa una expresión condicional (un
if) que determina el estado de la propiedad value. El código para la primera caja
de verificación se da abajo. estudia como trabaja y que hace. Introduce este
código en la forma. Haz lo mismo para cada uno de los otras cajas de
verificación (el código puede ser copiado y pegado).
Sub Check1_Click ()
If Check1.Value = 1 Then
Picture1 = LoadPicture("D:\VB\ICONS\COMPUTER\DISK02.ICO")
Else
Picture1 = LoadPicture()
End If
End Sub
Si creaste el programa cargando los iconos directamente de la ventana de
propiedades, cuando lo ejecutes todos los iconos aparecerán aún si están
deseleccionadas. Para estar seguro que que todas las imágenes y las cjas de
verificación esten en blanco, introduciremos código en la forma para un evento
cargar (load event). Para realizar esto haz doble clic en la forma si estas en el
modo de diseño. Del código que usaste para las cajas de verificación, deberas ser
capaz de modificarlo y adaptarlo para usarlo aquí.
Finalmente , en tiempo de ejecución trata de dar color a las picture box Finally.
Consulta el Help de VB Help para buscar la función QBColor para saber como
se puden cambiar los colores. QBColor tiene un simple parámetro que esta entre
0 (negro) y 15 (blanco). En el código de abajo se agrego una expresión para el
color de fondo del picture box antes de sea mostrado el icono. Una segunda
expresión se agrego para para cambiar el color de fondo a blanco si la imagen es
en blanco (no hay imagen).
Sub Check1_Click ()
If Check1.Value = 1 Then
Picture1.BackColor = QBColor(10)
Picture1 = LoadPicture("D:\VB\ICONS\COMPUTER\DISK02.ICO")
Else
Picture1.BackColour = QBColor(15)
Picture1 = LoadPicture()
End If
End Sub
Ir al Menú