visual ejercicios resueltos

65
Visual Basic VERSIÓN 6.0

Upload: yoni-escobar

Post on 16-Feb-2016

50 views

Category:

Documents


3 download

DESCRIPTION

libro

TRANSCRIPT

Page 1: Visual ejercicios resueltos

Visual Basic

VERSIÓN 6.0

Page 2: Visual ejercicios resueltos

Página 2

VISUAL BASIC

Lenguajes de Programación:

Un lenguaje de programación es un medio para comunicar al hombre con la computadora. Existen distintos tipos de lenguajes: Lenguajes de máquina, ensambladores y lenguajes de alto nivel.

Lenguaje de Máquina:

Un programa, es una secuencia de instrucciones que orienta a la unidad central de proceso en el desarrollo de cálculos. Este programa debe expresarse en un lenguaje que pueda comprender la CPU, y ella solo entiende su lenguaje de máquina, y cada instrucción debe expresarse en 0 y 1 o sea en forma binaria. Como resulta muy difícil expresar un programa en binario, han surgido lenguajes que facilitaron la tarea del programador.

La Programación Visual:

La revolución causada por las computadoras tomó otro rumbo cuando los diseñadores de los sistemas operativos, decidieron darles una apariencia visual, a partir de ese momento las aplicaciones comenzaron a realizarse con símbolos y componentes gráficos.

La apariencia visual es un componente clave en cualquier software actual, durante la ejecución de un programa el contenido de la pantalla cambia a medida que pasamos de un proceso a otro. Cada pantalla nueva trae consigo la posibilidad de ingresar datos o recibir información textual, gráfica, o auditiva.

Los controles gráficos o visuales son recursos usados por esta interfaz gráfica del usuario. Este debe familiarizarse gradualmente con ellos, entendiendo su propósito y uso, ya sea como usuario o posible programador de aplicaciones. Algunos de estos componentes visuales, son: iconos, botones, imágenes, cajas de texto, etiquetas...

El modelo de programación visual permitió un desarrollo de interfaces visuales, métodos y técnicas utilizadas en el diseño y elaboración de programas, que hizo que se ampliara la participación del usuario y que a su vez incentivara a nuevos programadores a lanzarse a la creación de sus propias aplicaciones.

Esta Interfaz gráfica del usuario (GUI, Graphical User Interface) utiliza ventanas similares a hojas de papel, donde es fácil desplegar información textual o gráfica, y donde cada ventana es independiente y agrupa solamente aquellos componentes que

Page 3: Visual ejercicios resueltos

Página 3

sirven para un mismo fin. Un programa puede tener decenas de ventanas, según lo complejo de la aplicación.

LA INTERFAZ DE VISUAL BASIC:

Para comenzar a investigar cualquier programa, lo mejor es empezar por el análisis de la interfaz; que es la pantalla con la cual nos encontramos y con la que nos tendremos que familiarizar para poder trabajar cómoda y rápidamente. Con más razón si se trata de VB, ya que no es una aplicación, sino un Lenguaje de Programación generador de Aplicaciones. Al comenzar VB le presenta una ventana como ésta donde se distinguen tres solapas y varias opciones: Las solapas dicen:

1) Nuevo, que es la opción que utilizaremos y por lo tanto debemos pulsar el botón abrir. –

2) Existente, sirve para abrir un proyecto que ya tenemos guardado con anterioridad. –

3) Reciente, esta opción es parecida a la anterior pero nos muestra los últimos proyectos con los que hemos estado trabajando. – Por lo tanto hacemos clic en el botón Nuevo, las otras opciones las explicaremos más adelante. –

Ahora sí nos encontramos con la Interfaz:

Esta pantalla presenta como todas las aplicaciones de Windows la Barra de título, la Barra de menús, que se describirá con posterioridad, pero damos por supuesto que Ud. ya se encuentra familiarizado con las aplicaciones Windows como ser Word (Procesador de textos), el Excel (Planilla de cálculos), etc.

2

3

4

5

6

1

Page 4: Visual ejercicios resueltos

Página 4

Por lo tanto, describiremos en principio las otras partes que hemos procedido a numerar en color rojo para identificarlas mejor.

El número 1 es la Barra de Herramientas, el nro. 2 es la Caja de Herramientas, el nro. 3 es el Explorador de Proyectos, el nro. 4 es la Ventana de Propiedades, el nro. 5 la Ventana de posición del Formulario y el nro. 6 es la Ventana de diseño de Formularios, en donde diseñaremos las Aplicaciones.

Por lo tanto daremos una breve descripción de cada uno de ellos, comenzando por diferenciar la Barra de Herramientas de la Caja de Herramientas.

La Barra de Herramientas:

Caja de Herramientas

La Caja de Herramientas:

Con estas herramientas uno crea controles para agregar funcionalidad a sus programas, son muy fáciles de usar. Simplemente se hace un doble clic sobre la herramienta seleccionada o clickea y luego, sobre el formulario, al cambiar el puntero de Mouse ( ), hacemos click, y lo arrastramos, dibujándolo automáticamente sobre el formulario. Después podrá cambiarlos al tamaño que desee. Se lo iremos explicando a medida que vaya realizando las distintas aplicaciones que le proponemos a lo largo del presente trabajo.

Los nombres de cada herramienta los puede leer dejando el puntero del Mouse sobre la herramienta, y en ese momento aparecerá un mensaje.

1

2

Page 5: Visual ejercicios resueltos

Página 5

Le indicamos los nombres de cada una de las herramientas que aparecen por defecto:

Cerrar la Caja

(1) Puntero

(2) PictureBox (3) Label

(4) TextBox

(5) Frame (6)CommandButton

(7) CheckBox

(8) OptionButton (9) ComboBox

(10) ListBox

(11) HScrollBar (12) VScrollBar

(13) Timer

(14) DriveListBox (15) DirListBox

(16) FileListBox (17) Shape (18) Line

(19) Image (21) OLE

(20)Data

Page 6: Visual ejercicios resueltos

Página 6

(a) (b)

El Explorador de Proyectos:

El explorador de proyectos permite observar cada uno de los formularios que hayamos creado, lo mismo que los módulos que podemos agregarle al mismo.

En el presente ejemplo se puede observar que nos encontramos en el Proyecto número 1 y que cuenta con un solo Formulario. En su parte superior presenta dos botones de suma importancia, el primero, al pulsarlo nos muestra la Ventana de Código (a) y el segundo nos muestra la Ventana de Diseño del Formulario (b). –

La Ventana de Propiedades:

Esta ventana es una de las más importantes, se compone de la Ventana de Controles:

A través de la cual uno puede elegir el control sobre el que se trabajará u observar si en realidad estamos operando sobre el control deseado.

Luego se pueden observar dos solapas; Alfabética y Por Categorías: Esto en realidad es una cuestión de preferencias, en la forma de manejarnos para seleccionar las distintas modificaciones a realizar sobre las Propiedades

También se pueden modificar sobre la parte derecha de la ventana los distintos Valores

Por último, en la parte inferior de la Ventana se puede observar una ayuda en castellano (para los que tienen VB 5.0 en español) sobre la propiedad seleccionada, en este caso nos muestra el Caption (Título). –

Ventana de Posición del Formulario:

Esta ventana nos muestra la posición exacta donde aparecerá nuestro formulario, dentro de la pantalla. Si nos dirigimos hacia él con el Mouse, automáticamente este se modifica a “cuatro flechas” y podemos arrastrar el formulario al sector exacto de la pantalla en donde nos interesa que aparezca.

3

5

Page 7: Visual ejercicios resueltos

Página 7

Ventana de Diseño del Formulario:

Sobre esta ventana es donde trabajaremos permanentemente para crear la interfaz de nuestro programa. El Formulario es un objeto contenedor de otros objetos. Sobre él y a través de la caja de Herramientas, colocaremos los distintos controles, que se llaman Objetos.

Al hacer doble click sobre el formulario se pasa a otra Ventana, que se denomina Ventana de Código, en la cual se escriben las sentencias necesarias (Código), para que funcione nuestra aplicación. –

La Ventana de Código:

Al hacer doble click sobre el Formulario, o sobre cualquier Objeto que esté contenido dentro del Formulario, entramos automáticamente en esta Ventana. La misma presenta en la parte superior dos Cajas Desplegables:

(a) Nos muestra todos los objetos que tenemos creados dentro de nuestro proyecto. (b) Muestra todos los eventos posibles para cada uno de los objetos. Por último podemos observar donde escribiremos nuestras sentencias de código (c).

6

(b) (a)

(c)

Page 8: Visual ejercicios resueltos

Página 8

Atención: Al grabar su proyecto VB, primero le pide a través de una ventana el nombre del Proyecto y luego le pide, a través de otra ventana el nombre para el Formulario (ambos nombres pueden ser iguales). En caso de usarse más de un formulario le irá pidiendo a través de distintas ventanas un nombre para cada formulario y por ultimo el nombre del Proyecto. No puede repetir los nombres de los Formularios, pues se sobreescriben. Cuando quiera levantar esta aplicación y grabarla e un diskette para llevarla a otra máquina, hágalo por favor a través del explorador de Windows copiando los archivos a una carpeta. Verá que además de los archivos .frm de los formularios y .vbp del proyecto, Visual Basic creó automáticamente otros archivos de extensión .frx o .vbw, No los borre y cópielos también en el diskette, VB en estos archivos compila las imágenes y funciones necesarias para ejecutar el programa. –

Datos y Tipo de datos:

Podemos decir que DATO: es la expresión general que describe los objetos con los cuales opera una computadora. Hay diferencias básicas entre los lenguajes de programación, según los tipos de datos que usan, las operaciones permitidas con esos tipos de datos y el modo en que pueden organizarse para formar estructuras más complejas. El conjunto de datos fijos que provee un lenguaje se llama: primitivos o básicos. En el caso de VB estos son:

Byte Numérico: 0 a 255

Boolean Lógico: verdadero o falso

Integer Numeración: entero (-32.768 a 32.768)

Long Numérico: enteros largos

Single Numérico: coma flotante (simple precisión)

Double Numérico: coma flotante (doble precisión)

String Cadena de caracteres

Currency Numérico: enteros de 64 bits

Variant Cualquier tipo de valor

Date Fechas desde 1/1/100 hasta 31/12/9999

Object Cualquier referencia a un objeto

Page 9: Visual ejercicios resueltos

Página 9

Las variables se declaran en la parte general con la sentencia Private y en los procedimientos locales con la sentencia Dim.

USO DE DISTINTAS ESTRUCTURAS:

Las estructuras fundamentales son siete y se utilizan para la toma de decisiones, para seleccionar un caso en particular, o para efectuar repeticiones de acuerdo con el evento que ocurra o con las necesidades que tengamos para la realización de nuestro programa. Las hemos dividido en: 1) Estructura de Decisión Simple: If . . . Then. –

2) Estructura de Decisión Compleja: If . . . Then _ ElseIf _ Else . –

3) Estructura de Selección de un Caso: Select Case. –

4) Estructura para Bucles Simple: For . . . Next. –

5) Estructuras para Bucles Complejos: For . . . Next _ Step. –

6) Estructuras Repetitivas: Do . . . Loop. –

7) Temporizador: Timer. –

Page 10: Visual ejercicios resueltos

Página 10

1) Estructura de Decisión Simple: If . . . Then:

Nos permite evaluar una condición en el programa y llevar a cabo una serie de acciones basándose en el resultado de dicha condición. En su forma más simple, una estructura de If ... Then se escribe en una única línea If condición Then sentencia básica del programa

Ej.: If Total >= 20 Then Label1.Caption = “Ha ganado”

En el ejemplo anterior si se cumple la condición del Marcador >= 20, el programa deberá asignar a la propiedad Caption del objeto Label1 el valor ¡Ha ganado! ; si no, saltará la sentencia de asignación y ejecutará la siguiente línea del proceso de suceso. Este tipo de comparaciones genera siempre como resultado un valor Verdadero o Falso. Una expresión no puede producir otro tipo de Valor.

2) Estructura de Decisión Compleja: If . . . Then _ ElseIf _ Else:

VB cuenta también con esta estructura que permite incluir varias expresiones condicionales y puede ocupar varias líneas de código.

If condición1 Then

Sentencias a ejecutar si condición1 es Verdadera

ElseIf condición2 Then

Sentencias a ejecutar si condición2 es Verdadera

[ElseIf condición3 etc. cuantas líneas requiera de condiciones Then]

Else

Sentencias a ejecutar sí ninguna de las condiciones Verdadera

End If

VB examina la condición1 en primer lugar. Si esta expresión es Verdadera, se ejecuta el bloque de sentencias que hay debajo. Si la primera condición no es Verdadera, evaluará la segunda y así sucesivamente cuantos bloques de sentencias ElseIf existan. Por último, si ninguna condición es Verdadera, se ejecutarán las sentencias que siguen a la palabra clave Else. La estructura debe cerrarse con la palabra clave End If.

Importante: El orden de las expresiones condicionales es muy importante en este tipo de estructuras, sobre todo, cuando nos manejamos con valores numéricos, hay que ordenar las distintas posibilidades de menor a mayor.

Page 11: Visual ejercicios resueltos

Página 11

3) Estructura de Selección de un Caso: Select Case:

Esta estructura es bastante similar a la anterior, la diferencia es que se utiliza una variable y se puede incluir más de un valor en cada cláusula Case (separados por comas). La sintaxis de una estructura Select Case es la siguiente:

Select Case variable

Case valor1Sentencias de programa a ejecutar si valor1 coincide con variable

Case valor2

Sentencias de programa a ejecutar si valor2 coincide con variable

Case valor3

Sentencias de programa a ejecutar si valor3 coincide con variable

End Select

Ejemplo:

Select Case Edad

Case 18

Label1.Caption = “Estas en la secundaria”

Case 21

Label1.Caption = “Ya eres mayor de edad”

Case 65

Label1.Caption = “Disfruta de la jubilación”

End Select

También permite una cláusula Case Else, que podemos utilizar para mostrar un mensaje si ninguna de las edades anteriores coincide:

Page 12: Visual ejercicios resueltos

Página 12

Ejemplo:

Select Case Edad

Case 18

Label1.Caption = “Estas en la secundaria”

Case 21

Label1.Caption = “Ya eres mayor de edad”

Case 65

Label1.Caption = “Disfruta de la jubilación”

Case Else

Label1.Caption = “Linda edad”

End Select

También podemos utilizar operadores de comparación ( =, <>, >, <, >=, <=); para ello debemos deberemos utilizar las palabras claves Is o la palabra clave To:

Siguiendo el ejemplo anterior:

Select Case Edad

Case Is < 13

4) Estructuras para Bucles: For . . . Next:

Un bucle For . . . Next se utiliza para ejecutar sentencias un número concreto de veces dentro de un procedimiento de suceso. Esto resultar muy útil para no tener que repetir una larga lista de sentencias que realicen lo mismo. VB nos permite definir un grupo de sentencias y que dichas sentencias se ejecuten tantas veces como queramos. La sintaxis es la siguiente:

For variable = inicio To fin

Sentencias que se van a repetir

Next variable

Page 13: Visual ejercicios resueltos

Página 13

Por ejemplo, el siguiente bucle For ... Next emite cinco pitidos en una sucesión rápida a través del parlante de la computadora, primero debe declarar una variable de tipo Integer a la que por convenio se denomina i para realizar este tipo de bucle For ... Next, la variable se irá incrementando en uno (la primera vez contendrá el valor 1, o valor de inicio y la última vez contendrá el valor 5 o valor final):

For i = 1 To 5

Beep

Next i

Para la computadora esto, sería lo mismo que escribir cinco veces lo mismo:

Beep

Beep

Beep

Beep

Beep

5) Estructuras para Bucles Complejos: For . . . Next _ Step:

Sirve para crear un bucle con un patrón contador distinto de a, 2, 3, etc., podemos especificar un valor distinto para el inicio del bucle y después utilizar la palabra clave Step para incrementar el contador en intervalos distintos. Por ejemplo, el bucle:

For i = 5 To 25 Step 5

Print i

Next i

Page 14: Visual ejercicios resueltos

Página 14

Imprimirá en el formulario la siguiente secuencia de números:

5

10

15

20

25

Sentencia Exit For:

Pueden existir casos en los que hay que interrumpir el bucle For ... Next antes de su finalización, para esto hay que usar la sentencia Exit For. De esta forma podremos responder a un suceso específico que ocurra antes de que el bucle se haya ejecutado el número de veces previsto. Por ejemplo:

For i = 1 To 30

Nombre = InputBox(“Escriba su nombre o escriba Fin para Salir”)

If Nombre = “Fin” Then Exit For

Print Nombre

Next i

El bucle solicita al usuario treinta nombres y los imprime en el formulario, a menos que se introduzca la palabra Fin, y en ese caso automáticamente saldrá del bucle.

6) Estructuras Repetitivas: Do . . . Loop:

Este tipo de bucle ejecuta un grupo de sentencias hasta que cierta condición sea Verdadera. Son muy útiles, porque a menudo no podemos saber de antemano cuántas veces debemos repetir un bucle. Como pudimos observar en el caso anterior de Exit For.

La sintaxis es:

Do While condición

Bloque de sentencias

Loop

Page 15: Visual ejercicios resueltos

Página 15

Ejemplo:

Do While Nombre <> “Fin”

Nombre = InputBox(“Escriba su nombre o escriba Fin para Salir”)

If Nombre <> “Fin” Then Print Nombre

Loop

Otra forma sería:

Do

Nombre = InputBox(“Escriba su nombre o escriba Fin para Salir”)

If Nombre <> “Fin” Then Print Nombre

Loop While Nombre <> “Fin”

Como evitar un bucle sin fin (Until):

Los bucles Do utilizan la palabra clave While para ejecutar una serie de sentencias mientras que la condición del bucle sea verdadera. VB también nos permite utilizar la palabra clave Until; esta palabra puede utilizarse al principio o al final de una condición. Ejemplo:

Do Nombre = InputBox(“Escriba su nombre o escriba Fin para Salir”)

If Nombre <> “Fin” Then Print Nombre

Loop Until Nombre = “Fin”

Como puede observar es muy similar al que utiliza la palabra clave While, a excepción de que la condición suele contener el operador contrario: operador = (igual a) frente a <> (distinto de).-

Page 16: Visual ejercicios resueltos

Página 16

8) Temporizador: Timer VB nos permite ejecutar un grupo de sentencias durante un período específico de tiempo mediante el uso de un objeto temporizador. Un objeto temporizador es un cronómetro invisible en tiempo de ejecución, que nos da acceso al reloj del sistema desde nuestros programas. Puede utilizarse para ir descontando tiempo, provocar un retraso en un programa, o para repetir una acción un cierto número de intervalos. Los objetos temporizadores tienen una precisión relativa de 1/1000 de segundo. Para establecer el intervalo de un temporizador utilizaremos la propiedad Interval. Una vez activado el temporizador, se ejecuta de forma infinita (realizando un procedimiento de suceso en el intervalo prescrito) hasta que el usuario detenga el programa o se desactive el temporizador. Cuadros de Mensaje: Función MsgBox

VB cuenta con funciones, que no son otra cosa que procedimientos automatizados. En este caso las típicas ventanitas de Windows que nos despliegan un mensaje, ya sea Informativo, de Alerta, Interrogativo...

La Función MsgBox consta de varios argumentos, si vamos a Ayuda y escribimos el nombre de la función se nos indican los posibles valores de los mismos.

En este caso usamos El Prompt que es el mensaje que queremos desplegar y que va entre comillas por ser una cadena de caracteres, luego el valor 1 para indicar que vamos a desplegar un icono y le concatenamos (con + o con &) el valor del icono requerido, luego por último el título de la ventana de mensaje, también entre comillas.

MsgBox "Este es un Cuadro de Mensaje", 1 + 64, "Información"

MsgBox "¿Está seguro que quiere hacer esto?", 1 + 32, "Interrogación"

MsgBox "¡Siga así, está haciendo un muy buen trabajo!", 1 + 48, "Exclamación"

MsgBox "Pare, Mire y Escuche", 1 + 16, "Atención"

Page 17: Visual ejercicios resueltos

Página 17

Cuadros de Entrada: Función InputBox

Esta función abre una ventanita con una caja de texto donde le permite al usuario entrar un tipo de datos. Por ejemplo podríamos usarla para pedir una contraseña, una cantidad, una fecha, un nombre...

La sentencia Option Explicit debe estar al comienzo de la ventana código, podemos insertarla manualmente o eligiendo: Herramientas /Opciones /Se requiere declaración de variables. Y seleccionamos ese CheckBox. Esto hace que VB controle si todas las variables que usamos han sido declaradas. (Repasar: Identificadores: Constantes y Variables en Resolución de problemas y Algoritmos).

En este caso la variable es 'nombre' y de tipo String: cadena de caracteres.

La debemos dimensionar como variable de un tipo determinado para ahorrar memoria, la sentencia Dim cumple esta función.

nombre = InputBox("Por Favor Introduzca su Nombre.")

Cambiar de formulario activo

Para pasar de un formulario a otro, vamos a usar estos dos métodos: primero se oculta el formulario activo (Hide) y luego se muestra el que se vincula a la acción ejecutada (Show).

Form2.Show

Form1.Hide

Zonas calientes o HotSpot:

Muchas veces cuando navegamos por Internet o en algunas enciclopedias, vemos que al pasar el puntero del mouse por encima de una imagen o texto, este se transforma en una manito, que nos indica que allí es posible una acción. Vamos a ver como podemos hacer esto con VB.

Page 18: Visual ejercicios resueltos

Página 18

Función Ucase

Sube a mayúsculas el texto ingresado por el usuario, lo que permite escribirlo de distinta manera, por ejemplo: todo con mayúsculas, algunas mayúsculas y otras minúsculas y antes de chequearlo o corregirlo V.B. lo pasa todo a mayúsculas

Private Sub Image1_Click()

pais = InputBox("¿De que país es esta bandera?", "Banderas")

If UCase(pais) = "BRASIL" Then

Label2.Caption = "¡Correcto!"

Else

Label2.Caption = "¡Incorrecto!"

End If

End Sub

Función: RGB

Esta función nos permite determinar colores en tiempo de ejecución, combinado los tres colores básicos, Red, Green, Blue de ahí las siglas RGB, con valores que van del 0 al 255,(o sea con una paleta de 256 colores). Para esto debemos convocar a la función RGB y entre paréntesis especificar un valor para cada uno de sus colores. Veamos un ejemplo en el siguiente ejercicio.

Función:QbColor

Una manera más sencilla es usar para determinar colores, la función QBColor, que maneja solo 16 colores, o sea valores del 0 al 15. Si quieren ver la tabla de colores en Ayuda, ingresando QBColor aparece la lista correspondiente a cada color, sino en el siguiente ejercicio probaremos los distintos colores, ingresando en dos cajas de texto los valores correspondientes para asignarlos a una tercer caja de texto donde cambiaremos el color del fondo (Backcolor) de la caja de texto y su letra (ForeColor).

Arreglos: Array de controles:

En el Módulo 1 habíamos definido un array o arreglo, ahora vamos a aplicarlo en VB pero para la creación de un arreglo de controles, todos con las mismas características pero con un subíndice que los identifica.

Page 19: Visual ejercicios resueltos

Página 19

Controles Line y Shape:

VB cuenta con dos controles que permiten diseñar figuras y líneas: estos son Shape y Line, que podemos encontrar en su caja de herramientas estándar.

Estos controles no responden a eventos, o sea no tienen procedimientos que posibiliten acciones.

Método Move:

En VB además del Timer fundamental para cualquier animación, control que automatiza la secuencia de imágenes, hay un método muy importante que se llama Move: que tiene dos argumentos fundamentales x, y que indican que valor se mueve sobre la coordenada X y que valor sobre la coordenada Y.

Controles de texto: Text y RichTextBox

Para mostrar texto VB cuenta con su control estándar Text, vamos a ver como hacemos para directamente desplegar un texto ya copiado y grabado en un archivo con extensión TXT, que podemos tipear en cualquier editor como el NotePad, por ejemplo y otro texto con formato RTF (Rich Text File, o sea archivo de texto enriquecido), este formato puede grabarse en el Word, vamos a grabar como... y allí seleccionamos RTF.

Se llama texto enriquecido porque permite incluir distintos tipos de letras, colores y tamaños o sea más variantes en su formato.

Y el control que vamos a usar para desplegar este texto con formato RTF es el RichTextBox, para el texto común o sea con formato TXT, usaremos un TextBox de la caja de herramientas estándar.

Editor de Menúes:

VB posee un Editor o creador de Menúes para sus Aplicaciones y para abrirlo podemos seleccionarlo de la barra de iconos cuya imagen es:

Page 20: Visual ejercicios resueltos

Página 20

Al abrirlo se nos presenta la siguiente ventana:

Explorador de imágenes:

Visual Basic cuenta con controles especiales para el manejo de Archivos dentro del sistema, podemos identificar el dispositivo, el directorio, los subdirectorios y carpetas y luego abrir un archivo en particular y desplegarlo en un control, adecuado para texto o imagen.

Procedimiento MouseDown, MouseUp:

Hasta ahora hemos trabajado con el Procedimiento Click como uno de los más usados, si descomponemos este movimiento, tenemos dos procedimientos dentro del mismo apretar el botón izquierdo del mouse, y luego soltarlo.

Control Data: Base de Datos

VB tiene un control que nos permite conectarnos a una Base de Datos y recorrer alguna de sus tablas, volcando sus distintos campos en controles de texto. El control data se encuentra en la Caja de Herramientas.

Page 21: Visual ejercicios resueltos

Página 21

Codificación de botones para la relación con Access

Primero

Data1.Recordset.MoveFirst

Último

Data1.Recordset.MoveLast

Siguiente

Data1.Recordset.MoveNext

If Data1.Recordset.EOF Then

MsgBox "Este es el Último Registro.", , "Registros"

Data1.Recordset.MoveLast

End If

Previo

Data1.Recordset.MovePrevious

If Data1.Recordset.BOF Then

MsgBox "Este es el Primer Registro.", , "Registros"

Data1.Recordset.MoveFirst

End If

Buscar

buscar = InputBox("Ingrese la Ciudad a Buscar:", "Búsqueda")

Data1.Recordset.FindFirst "City=" & "'" & buscar & "'"

If Data1.Recordset.NoMatch Then

mensaje = MsgBox("No existe la Ciudad Buscada.", vbCritical)

Command4.Enabled = False

Else

Command4.Enabled = True

End If

Eliminar

mensaje = MsgBox("¿Está seguro de Borrar el registro?", vbOKCancel, "Eliminación de Registros")

If mensaje = vbOK Then

Data1.Recordset.Delete

Data1.Recordset.MoveNext

If Data1.Recordset.EOF Then Data1.Recordset.MoveLast

End If

Guardar

Data1.Recordset.AddNew

Agregar

mensaje = MsgBox("Complete los datos y haga un Click" + Chr(10) + "en el botón de registro siguiente.", vbInformation)

Data1.Recordset.AddNew

Text2.SetFocus

Page 22: Visual ejercicios resueltos

Página 22

EJERCICIOS RESUELTOS Ejercicio Nº 1:

Realizar un programa que muestre el texto: “¡Nuestro primer trabajo en Visual Basic!”

al pulsar sobre un botón.

Explicación:

Una vez abierto el programa, debemos preparar el formulario para que tenga el

aspecto que deseemos. Para ello en primera instancia introducimos el control que

contendrá el texto que debe visualizarse cuando pulsemos un botón creado para tal

fin. Seleccionamos del cuadro de herramientas el control LABEL (etiqueta). Este tipo

de control se usa para escribir textos que se mantendrán invariables a lo largo de la

ejecución del programa. Una vez colocado sobre el formulario, trabajaremos con sus

propiedades para que adquiera el aspecto deseado.

Para ello establecemos en la ventana propiedades las siguientes características:

a. La propiedad que hace referencia a su contenido es Caption. Lo que aquí se escriba se mostrará al ejecutarse el programa. Escribimos el texto que se desea visualizar.

b. Autosize ajusta el tamaño de la etiqueta al texto que se introduzca c. En la propiedad BackColor establecemos el color de fondo del cuadro de texto. d. La propiedad Font nos permite seleccionar el tipo de letra. e. Usamos ForeColor para establecer el color de la fuente. f. Con Alignment establecemos la alineación del texto dentro del cuadro de texto. g. En este caso no debe verse el texto cuando se ejecute el programa sino al

pulsar sobre el botón correspondiente, por lo tanto emplearemos la propiedad Visible que deberá contener el valor False.

h. Appearance establece la apariencia, vista 2D o 3D i. BorderStyle permite elegir el tipo de marco. j. BackStyle establece el tipo de fondo: puede ser opaco o transparente.

El paso siguiente será preparar el botón que permitirá visualizar el texto al pulsarlo, para ello seleccionamos del cuadro de herramientas el control COMMANDBUTTON (botón de comando). Antes de programar la acción que realizará al ser pulsado vamos a modificar su

aspecto trabajamos para ello con algunas de sus propiedades:

k. Nombre identificador del objeto o control seleccionado. l. Caption lo que escribamos aquí será el texto que se visualice sobre el botón,

escribimos “Mostrar frase”. m. Style si se sitúa en 1 (modo gráfico) se podrán modificar varias de sus

características como el color de fondo, o colocarle una imagen como fondo. n. BackColor establece el color de fondo. o. Font permite elegir el tipo de fuente a emplear. p. Enabled si su valor es True, el botón estará activado al ejecutarse el programa;

si es False aparecerá desactivado.

Por último deberá escribirse el código que permita visualizar la frase cuando se pulsa

sobre el botón correspondiente, para ello hacemos doble clic sobre dicho botón. Se abrirá la

ventana Código. En la que escribiremos la línea que figura a continuación.

Lista desplegable que con-

tiene una lista de los con-

troles que se usaron

Lista desplegable que con-

tiene una lista de los even-

tos relacionados con el

control Procedimiento

Page 23: Visual ejercicios resueltos

Página 23

Los procedimientos asociados a un evento comienzan con las palabras Private

Sub y finalizan con End Sub. Las instrucciones que figuran entre ambas conforman

las acciones que se ejecutarán cuando el usuario realice el evento especificado.

Dentro de un procedimiento pueden cambiarse las propiedades de un

formulario o de un control como respuesta a una determinada acción del usuario. En

nuestro caso necesitamos que cuando se pulse sobre el botón se pueda visualizar el

contenido de la etiqueta que contiene el texto en cuestión; para lo cual es necesario

modificar la propiedad Visible, que contenía valor falso y adjudicarle valor verdadero.

Para modificar las características de un control se emplea la siguiente sintaxis:

Nombre del objeto.propiedad = valor de la propiedad

Procedemos a ejecutar nuestro proyecto, para ello hacemos clic sobre el icono

de comenzar de la barra de herramientas

Para volver a nuestro proyecto, hagamos un clic sobre el

botón de la barra de herramientas de finalizar

Vamos a completar nuestro programa, le incluimos un botón que nos permita

abandonar el programa cuando pulsemos sobre él y escribimos el código

correspondiente.

Elaboremos el mismo programa pero estableciendo el texto desde la ventana

código.

Ejercicio Nº 2

Elaborar un programa que permita al pulsar sobre un botón visualizar la leyenda “Estoy trabajando solo” y modificar el nombre de la ventana por “Desarrollo de una aplicación”. La asignación del texto debe establecerse por línea de comando.

Ejercicio Nº 3

Elaborar un programa que permita visualizar un mensaje de bienvenida y uno de despedida (ambos en la misma etiqueta). Cada mensaje deberá visualizarse según se pulse sobre el botón correspondiente. Deberá contener, además, un botón que permita abandonar el programa. Establecer desde las propiedades un color de fondo para el formulario y un nombre. El mensaje de bienvenida deberá contener las siguientes características: Texto en color, fuente en tamaño 20, en negrita, fondo de la etiqueta en un color que contraste con el texto.

Page 24: Visual ejercicios resueltos

Página 24

El mensaje de despedida deberá contener las siguientes características: Texto en otro color, tamaño 14, en cursiva, subrayado, deberá cambiar el tipo de letra y el color de fondo de la etiqueta y del formulario

Ejercicio Nº 4

Realizar un proyecto que permita generar la siguiente aplicación: El formulario deberá contener una etiqueta, con un color de fondo, en la que se

visualice la siguiente leyenda: “Haga doble clic para agrandar el formulario” y un botón

que permita al usuario abandonar el programa. Al hacer doble clic sobre la leyenda

correspondiente debe ampliarse el formulario de tal forma que los valores de las

respectivas propiedades sean: Height = 8000 y Width = 11000. En la barra de título del

mismo debe figurar: “Uso de las propiedades Height y Width, el fondo de la etiqueta

debe ser el mismo que el del formulario y el tamaño de la fuente debe disminuir a 8

puntos. Agregarle al programa anterior un botón Cancelar que devuelva al formulario

el aspecto original.

Ejercicio Nº 5

Elaborar una aplicación que cargue los datos detallados según el botón sobre el que

se pulse, el formulario deberá mostrar un formato similar al siguiente: emplear textbox.

El color preferido deberá visualizarse en negrita y con el texto en el color mencionado.

Ejercicio Nº 6

Elaborar un programa que permita hallar la suma de dos números.

Colocamos 4 label y un botón. Los dos primeros label contendrán los datos. El tercero tendrá el texto “ el resultado de la suma es: “ y el último tendrá el resultado.

La asignación y órdenes se establecerán por comando. Realizarlo y analizar qué sucede.

Page 25: Visual ejercicios resueltos

Página 25

Para lograr el efecto deseado debemos anteponer a cada label la función VAL

La función Val es una rutina especial que convierte un argumento de texto en un valor numérico. Esta conversión es necesaria cuando se deben efectuar operaciones matemáticas con valores introducidos en cuadros de textos; puesto que el tipo de datos que estos contienen son textos, no números

Pero aún el programa no resulta práctico puesto que solo suma los números establecidos.

Agreguemos dos textbox y otro botón e incorporemos el concepto de variable. Agregar un botón que limpie la pantalla

Ejercicio Nº 7

Se desea realizar un programa que permita hallar el área de un rectángulo ingresando sus dimensiones.

Ejercicio Nº 8

Realizar un programa que muestre el texto “Hola mundo” al pulsar sobre un botón y desaparezca cuando se pulsa nuevamente.

Ejercicio Nº 9

Confeccionar una aplicación que permita al usuario elegir entre dos colores para el fondo del formulario. Si el casillero permanece vacío el formulario deberá aparecer en color gris.

Ejercicio Nº 10

El formulario contendrá la foto de dos presidentes cuando el usuario haga clic sobre

alguna de ellas deberá aparecer el nombre del presidente. El formulario deberá

contener además, un botón que permita limpiar el texto y uno que permita salir del

programa.

Estructura de decisión

Page 26: Visual ejercicios resueltos

Página 26

Ejercicio Nº 11

Realizar una aplicación que permita al usuario, visualizar una imagen del tipo de

transporte (aéreo, terrestre o acuático) que elija escribiendo su nombre. El programa

debe contener, además un botón que permita borrar lo escrito anteriormente y

desaparezca la imagen correspondiente. El formulario deberá contener un fondo

(paisaje) que muestre los tres elementos

Ejercicio Nº 12

Elaborar una aplicación que permita seleccionar la imagen

del animal que se desea observar según se seleccione la

casilla de verificación correspondiente. Considerar 3

animales

Control CheckBox

También llamada casilla de verificación, presentan dos estados posibles:

seleccionado, no seleccionado.

La propiedad Value es la que establece su estado, si ésta adquiere valor 1 significa

que está seleccionado, si tiene valor 0 no lo está. Es posible seleccionar varias casillas

simultáneamente. En la propiedad Caption se coloca el texto que aparecerá al lado de

la casilla.

Ejercicio Nº 13

Vamos a realizar un programa que simule una pantalla

que permita realizar una compra interactiva. El formulario

deberá mostrar el siguiente aspecto:

Control OptionButton

También llamados botones de opción, son botones

circulares que se utilizan para elegir una opción de un

grupo, estos pueden activarse o desactivarse. En un mismo formulario pueden

emplearse varios grupos de opciones pero deben organizarse según al tema que

hagan referencia y se colocarán dentro de un marco. Es decir que se trabajará con dos

tipos de objetos frame y option. Dentro de cada grupo puede seleccionarse sólo un

botón.

Page 27: Visual ejercicios resueltos

Página 27

Al diseñarse un formulario que contenga botones de opción, debe primero aplicarse el

control Frame (marco), para reunir dentro de él los botones que pertenezcan al mismo

grupo. Por lo tanto primero se dibuja el marco, seleccionando el control

correspondiente, y sobre él se dibuja un botón de opción. A continuación se selecciona

(el botón recién dibujado), se copia y se pega (seleccionando previamente el marco

dentro del cual deberá quedar dibujado el segundo botón); el programa abrirá un

cuadro de diálogo preguntando si se desea transformar en una matriz... se responde

afirmativamente. Una vez completada la creación de los “n” botones, cada uno de ellos

tendrá el mismo nombre y entre paréntesis aparecerá el número de orden que tendrá

dentro del grupo.

La propiedad que se usa para saber si el botón es activado o no es Value.

Por defecto aparece activado el primer botón. Para que esto no suceda en el

procedimiento LOAD-FORM debe escribirse el siguiente código:

Option1(0).Value = False

Option1(1).Value = False para escribir en el Load-Form debe hacerce doble clic sobre

Option1(2).Value = False cualquier punto vacío del formulario

A continuación se muestra un ejemplo utilizado para programar el evento que se

producirá al seleccionar sobre el botón correspondiente, en nuestro caso visualizar la

imagen correspondiente.

Private Sub Option1_Click(Index As Integer)

If Option1(0).Value = True Then

Image1.Visible = True

Else

Image1.Visible = False

End If

Control ListBox

Los cuadros de lista son objetos que se usan cuando el usuario debe elegir una opción

de una lista de posibilidades; sólo puede seleccionarse un único registro de la lista. El

contenido se puede cargar desde el cuadro propiedades a la derecha de la propiedad

List, se pulsa Control + Enter para pasar al renglón siguiente. Los distintos

elementos que conforman la lista reciben un número de orden dentro de la misma,

comenzando por el 0. La propiedad que contiene el número de orden de cada ítem se

llama ListIndex, cuando el usuario no elige algún elemento de la lista esta propiedad

tiene el valor -1.

Page 28: Visual ejercicios resueltos

Página 28

Ejemplo

El objetivo es que según la opción de pago elegida se visualice una leyenda

explicando las facilidades correspondientes.

Para ello colocamos sobre el formulario el control correspondiente, lo seleccionamos y

desde el cuadro propiedades empleando la propiedad List incorporamos los

elementos que deberá contener la lista.

Private Sub List1_Click()

If List1.ListIndex = 0 Then Label1.Caption = "15% de descuento"

If List1.ListIndex = 1 Then Label1.Caption = "5% de descuento"

If List1.ListIndex = 2 Then Label1.Caption = "sólo dos pagos"

If List1.ListIndex = 3 Then Label1.Caption = "6 cuotas sin intereses"

End Sub

Control ComboBox

Un cuadro combinado es una mezcla de cuadro de texto y lista desplegable. Presenta

la ventaja de poder seleccionar la opción deseada de una lista ya preparada, en vez

de escribirla; pues al escribir la opción requerida en un cuadro de texto puede

cometerse errores.

Para llenar los datos que se observarán se procede de dos formas:

Usando la propiedad List al pulsar sobre el cuadro que está a la derecha se abrirá una

lista vacía que se completará con los elementos que se desean visualizar. Para pasar

al renglón siguiente se deben pulsar las teclas Enter + Control.

Los elementos de la lista se pueden incluir por código en el procedimiento FORM-

LOAD (haciendo doble clic sobre el formulario) pues todo lo que aquí se escriba se

ejecuta cada vez que se ponga en marcha el programa. La sintaxis que se emplea es:

Combo.additem “elemento de la lista”

ejemplo: Combo2.AddItem "15% de descuento"

Los distintos elementos que conforman la lista reciben un número de orden dentro de

la misma, comenzando por el 0. La propiedad que contienen el número de orden de

cada ítem se llama ListIndex

Programación correspondiente a las

acciones que deben producirse al

seleccionar algún elemento de la lista

Listbox

Page 29: Visual ejercicios resueltos

Página 29

Ejemplo

Supongamos que creamos una lista combinada con dos opciones y según el elemento

elegido se visualizará la imagen correspondiente, la programación será la siguiente:

Private Sub Combo1_Click()

If Combo1.ListIndex = 0 Then

Image5.Visible = True

Image2.Visible = False

End If

If Combo1.ListIndex = 1 Then

Image5.Visible = False

Image2.Visible = True

End If

End Sub

Ejercicio Nº 14

Realizar un programa que permita ingresar dos números, seleccionar la operación que se desee realizar y visualizar el resultado

Ejercicio Nº 15

En un nuevo proyecto insertamos cuatro Botones o CommandButton con las siguientes propiedades Caption: Informativo, Interrogativo, Exclamativo, Atención.

El formulario se ve así:

Combobox

Programación correspondiente a las acciones que

deben producirse al seleccionar algún elemento de

la lista

Para trabajar con el símbolo \ se debe

pulsar las teclas ALT 92

Page 30: Visual ejercicios resueltos

Página 30

En la ventana código insertamos en el evento Click de cada uno de los botones las acciones que queremos que se efectúen, en este caso desplegar una ventana con un mensaje y un icono diferente:

Private Sub Command1_Click()' Botón Informativo

MsgBox "Este es un Cuadro de Mensaje", 1 + 64, "Información"

End Sub

Private Sub Command2_Click()'Botón Interrogativo

MsgBox "¿Está seguro que quiere hacer esto?", 1 + 32, "Interrogación"

End Sub

Private Sub Command3_Click()'Botón Exclamativo

MsgBox "¡Siga así, está haciendo un muy buen trabajo!", 1 + 48, "Exclamación"

End Sub

Private Sub Command4_Click()'Botón Atención

MsgBox "Pare, Mire y Escuche", 1 + 16, "Atención"

End Sub

Ejercicio Nº 16:

Realizar un programa que solicite ingresar la base y la altura de un rectángulo y permita visualizar el área del mismo. Emplear cuadro de entrada y salida.

Public b As Single

Public h As Single

Private Sub Command1_Click()

Dim resul As Single

resul = b * h MsgBox "El área del triángulo es: " & resul, 64, "resultado"

End Sub

Private Sub Form_Load()

b = Val(InputBox("Ingrese la base", "valor de la base"))

h = Val(InputBox("Ingrese la altura", "valor de la altura"))

End Sub

Como las variables b y h serán utilizadas en diferentes procedimientos deben

declararse en la sección declaraciones de un módulo, al principio del programa. Se

utiliza la palabra PUBLIC en vez de dim.

Page 31: Visual ejercicios resueltos

Página 31

Ejercicio Nº 17:

Realizar un programa que permita establecer la categoría a la que pertenece cada socio de un club según su edad

Si la edad es menor a 12 años la categoría será infantil

Si la edad es menor que 18 la categoría será cadete

Si es mayor o igual a 18 será mayor

Deberá visualizarse, en todos los casos, el nombre de la persona y la categoría a la que pertenece. Trabajar con cuadros de entrada/salida

Ejercicio Nº 18:

Realizar un programa que permita, conociendo las dimensiones de un cuadrilátero, calcular el área si la figura es un cuadrado el perímetro si la figura es un rectángulo. La salida debe visualizarse en un cuadro de mensaje en el que se explique de qué figura se trata y que se calculó de ella.

Ejercicio Nº 19:

Realizar un programa que permita, conociendo un número calcular su doble, su triple, la tercera parte y su mitad. El ingreso de datos se realizará a través de un cuadro de entrada. Los resultados deberán visualizarse cuando se pulse sobre un botón

Ejercicio Nº 20:

Conocidos los promedios de cada trimestre en una determinada materia, realizar una aplicación que permita establecer cuál es la situación de un alumno.

Ejercicio Nº 21:

Abrimos un nuevo proyecto e insertamos un botón, cuya propiedad caption sea: Siguiente, luego agregamos otro formulario e insertamos otro botón cuyo caption sea: Anterior. Para agregar al proyecto otro formulario, vamos a Proyecto / Agregar Form y seleccionamos nuevo. Veremos en la ventana proyecto: dos Forms, el 1 y el 2. El

primer formulario se ve así:

Page 32: Visual ejercicios resueltos

Página 32

Les llamará la atención que tenemos un icono en el botón. Para lograr esto debemos modificar la propiedad Style del botón a Graphical y luego cargar un icono en la propiedad Picture del botón, en este caso es una flecha seleccionada de la carpeta Graphics/Icons que viene con la versión 5 de VB.

En el evento Click del botón del primer form ingresamos el siguiente código:

Private Sub Command1_Click()

Form2.Show

Form1.Hide

End Sub

Y en el evento Click del segundo formulario:

Private Sub Command1_Click()

Form1.Show

Form2.Hide

End Sub

Al ejecutar la aplicación haciendo Click pasamos de un formulario a otro.

Ejercicio Nº 22:

Abrimos un nuevo proyecto y en el formulario insertamos un botón en cuyo evento Click se desarrolla la siguiente acción:

Option Explicit

Dim nombre As String

Private Sub Command1_Click()

nombre = InputBox("Por Favor Introduzca su Nombre.")

Print nombre

End Sub

Page 33: Visual ejercicios resueltos

Página 33

Ejercicio Nº 23:

Abrimos un proyecto nuevo, e insertamos en el formulario dos controles Image con su propiedad Stretch a True para poder estirar el tamaño del icono cargado, en este caso para agrandar la imagen. Y en la propiedad Picture cargamos dos iconos a elección. Luego agregamos una label con su propiedad Caption vacía. El Form se ve parecido a

esta imagen:

La Label1.caption inicialmente está vacía pero por código establecemos que al hacer Click en la imagen de la Tierra, la propiedad Caption se modifique, mostrando "Tierra" y cuando hacemos Click en el Sol despliegue: "Sol".

A esto le vamos a agregar que cuando pasemos el puntero del mouse sobre la imagen de la Tierra se muestre un icono de la tierra, y al pasarlo por arriba del Sol un icono del Sol. Hay dos propiedades que debemos modificar a través de la ventana de propiedades, cargamos un icono en la propiedad MouseIcon de cada Image y cambiamos el valor de la propiedad MousePointer a : 99.

El código correspondiente es el siguiente:

Private Sub Form_Load()

Image1.MousePointer = 99

Image2.MousePointer = 99

End Sub

Private Sub Image1_Click()

Label1.Caption = "Tierra"

End Sub

Page 34: Visual ejercicios resueltos

Página 34

Private Sub Image2_Click()

Label1.Caption = "Sol"

End Sub

Proyecto Banderas:

El proyecto Banderas de distintos países consta de tres formularios y el objetivo del proyecto es en un primer paso desplegar Información diciendo el nombre del país al que corresponden las Banderas, y en un Segundo paso Interrogar al usuario para que ingrese el nombre de la bandera correspondiente. El primer Form tiene 4 controles Image con banderas cargadas de la carpeta Graphics /Icons /Flags , una Label con el título Banderas y un Botón que pasa al formulario siguiente. El Segundo Form también tiene 4 Image con las mismas banderas que el anterior, una Label donde se despliega el mensaje Correcto o Incorrecto según la respuesta del usuario y dos Botones uno de Anterior que vuelve al primer Form y otro de salida que pasa al tercer Form de Cierre. El formulario de Cierre tiene Labels con el nombre del programador, es este caso sus datos.

Ejercicio Nº 24:

Abrimos un nuevo proyecto, cargamos en la propiedad Picture del Formulario una imagen, que debe ser una .bmp, .gif, .wmf, .jpg del tamaño aproximado del formulario, o si no queremos cargar una imagen le damos un color de fondo de nuestro agrado modificando la propiedad Backcolor del Form. Insertamos tres botones uno con la propiedad Caption: Texto, otra con: Borrar y el tercero: Cierre. El primero va a desplegar el texto, el segundo lo borra dejando limpio el formulario y con el tercero salimos de la aplicación.

Por código le vamos a indicar el contenido del texto y también su ubicación dentro del formulario. Para esto vamos a usar dos propiedades: CurrentX y CurrentY que dan los valores de las coordenadas de iniciación del texto. CurrentX se refiere al valor corriente o actual de X y CurrentY al valor actual de Y, o sea dentro de un sistema de coordenadas cartesiano. A continuación tenemos un cuadro explicativo de las distintas medidas que permite manipular VB, aunque su medidad por defecto es el twip, creado especialmente para VB.

Por defecto VB utiliza el twip que como vemos es una medida muy pequeña. Basándose en el tamaño de un punto de impresión. Hay dos propiedades muy importantes en los controles de Vb que son Left y Top y dan el valor en twips desde el margen izquierdo del formulario (Left) y la distancia desde el margen superior (Top). Esto es muy importante para ver su ubicación dentro del formulario, y también para ver las dimensiones del mismo formulario. Esta propiedades se complementan con Height altura de un control y Width: ancho de un control. Como podemos ver no existen las propiedades derecha ni abajo ya que esos valores del form son variables, pues al extender el tamaño de un control o form estos varían. VB toma como referente solo los valores fijos del formulario, o sea izquierda y arriba.

Page 35: Visual ejercicios resueltos

Página 35

El código del ejercicio es:

Private Sub Command1_Click() 'Botón de cierre

End

End Sub

Private Sub Command2_Click() 'botón de borrar

Form1.Cls

End Sub

Private Sub Command3_Click() ' botón de texto

Form1.CurrentX = 200

Form1.CurrentY = 200

Print "Había una vez una hermosa casita "

Form1.CurrentX = 200

Print "en una colina."

Form1.CurrentX = 200

Form1.CurrentY = 1400

Print "Habitaba allí un príncipe "

Form1.CurrentX = 200

Print "encantado llamado Teodorico."

End Sub

El método CLS nos limpia el formulario. En el caso de querer desplegar el texto en una Picture, debemos codificar mencionando al control Picture1 en lugar del Form1.

Page 36: Visual ejercicios resueltos

Página 36

Ejercicio Nº 25:

Abrimos un nuevo proyecto, e insertamos en el formulario tres labels indicativas y tres cajas de texto, donde vamos a ingresar los valores correspondientes a los tres valores de la función RGB. Declaramos dentro del procedimiento tres variables correspondientes a cada valor del RGB como número entero. Todo este código dentro del procedimiento Click de un botón cuyo caption es: Aplicar el color de fondo, también tenemos otro Botón para cerrar la aplicación.

Al hacer Click en el botón que ejecuta el código, se asignan los valores ingresados en la caja de texto, a la función RGB y este color se asigna a la propiedad Backcolor del Formulario, que en este caso está llamado con la instrucción Me, o sea el Formulario activo, si lo desean pueden llamarlo por su name o sea Form1.

Private Sub Command1_Click()

Dim red, green, blue As Integer

red = Text1.Text

green = Text2.Text

blue = Text3.Text

Me.BackColor = RGB(red, green, blue)

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Text1_Click()

Text1.Text = ""

End Sub

Private Sub Text2_Click()

Text2.Text = ""

End Sub

Private Sub Text3_Click()

Text3.Text = ""

End Sub

Page 37: Visual ejercicios resueltos

Página 37

Al hacer Click en las cajas de texto se vacían permitiendo la entrada de otro valor. La aplicación se ve así:

Ejercicio Nº 26:

Abrimos un nuevo proyecto e insertamos en el formulario dos cajas de texto cuya propiedad text dejamos vacía. Observen que el control Text no tiene propiedad caption sino Text. Un tercer control Text va a desplegar un color de fondo y un color de letra, este sí tiene un mensaje en la propiedad Text, en este caso: Color, agregamos dos labels descriptivas, como lo muestra la imagen, y un Botón para ejecutar el código en su procedimiento Click.

Aquí vamos a usar un método importante de las cajas de texto, el SetFocus, que significa que centra el foco en un control determinado, en este caso la primera caja de texto, vemos que esta sentencia la ingresamos en el procedimiento Activate del Form, y cuidado ,no en el Load. La diferencia está en que todo formulario primero se carga (Load9 y luego pasa a estar activo (Activate), entonces debemos diferenciar que instrucciones deben ir en uno o en otro, por ejemplo si vamos a asignar valores a propiedades o variables lo hacemos en el Load, que ocurre primero y si nos vamos a dirigir a un control determinado en el Activate, para que la asignación ocurra después de cargado el formulario y todos sus controles. Así no hay posibilidades de error.

Page 38: Visual ejercicios resueltos

Página 38

El código es el siguiente:

Private Sub Command1_Click()

Text3.BackColor = QBColor(Text1.Text)

Text3.ForeColor = QBColor(Text2.Text)

End Sub

Private Sub Form_Activate()

Text1.SetFocus

End Sub

El formulario se ve así:

Page 39: Visual ejercicios resueltos

Página 39

Ejercicio Nº 27:

Abrimos un nuevo proyecto, en cuyo formulario, insertamos dos cajas de texto con scrollbar, y cuatro botones, como lo muestra la imagen siguiente:

Abrimos un nuevo proyecto, insertamos

Private Sub Command1_Click()

Text1.Text = ""

Text1.SetFocus

End Sub

Private Sub Command2_Click()

Text2.Text = Text1.Text

End Sub

Las cajas de texto tienen modificada la letra y el color, y su propiedad Text está vacía, vamos a ingresar un texto en tiempo de ejecución.

Private Sub Command1_Click() 'botón Ingresar texto

Text1.SetFocus

End Sub

Private Sub Command1_Click() 'botón copiar texto

Text2.Text = Text1.Text

End Sub

Page 40: Visual ejercicios resueltos

Página 40

Private Sub Command3_Click()'botón Borrar Todo

Text1.Text = ""

Text2.Text = ""

End Sub

Private Sub Command4_Click()' botón Imprimir

Me.PrintForm

End Sub

En el botón Imprimir usamos un método llamado PrintForm, que le da salida al formulario por impresora, en tiempo de ejecución.

Ejercicio Nº 28:

Abrimos un nuevo proyecto e insertamos 6 labels que indican el nombre de cada bimestre, ya que lo que vamos a calcular es: a partir de los datos ingresados de cada bimestres, cual fue el valor promedio de ventas de este supuesto negocio y cual el bimestre de mayor venta.

Luego insertamos un control caja de texto y cuidado: aquí viene la creación del Array: Seleccionamos el control texto y hacemos un Click en el icono de copiar de la Barra de menú, o vamos a Editar /Copiar y luego hacemos un Pegar, va a aparecer una ventana con el siguiente mensaje: Ud. ya tiene un control llamado Text1, desea crear un array? Le decimos que sí, o sea hacemos Click en el botón Aceptar. Y vemos que VB creo otra calja de texto con el mismo nombre Text1 pero con el subíndice (1), siendo la primera caja subíndice (0), luego repetimos la operación de copia, y ya no aparece ninguna ventana de consulta, directamente copia inserta otro integrante al array ya declarado.

Agregamos dos labels más para elpromedio y el Valor Máximo de Ventas y dos cajas de texto creadas fuera del array, como controles nuevos desde la caja de herramientas, con los nombre Text2 y Text3. Y un botón Calcular, que es donde vamos a codificar las acciones.

Page 41: Visual ejercicios resueltos

Página 41

El formulario se ve así:

El código correspondiente al evento Click del botón calcular es :

Private Sub Command1_Click()' botón Salir

End

End Sub

Private Sub Command2_Click()' botón calcular

Dim promedio As Single

Dim max As Single

Dim nombre As String

Dim suma As Single

Dim i As Integer

suma = 0

For i = 0 To 5

suma = suma + Text1(i).Text

Next i

Page 42: Visual ejercicios resueltos

Página 42

promedio = suma / 6

Text2.Text = promedio

max = Text1(0).Text

nombre = Label1(0).Caption

For i = 0 To 5

If max < Val(Text1(i).Text) Then

max = Text1(i).Text

nombre = Label1(i).Caption

End If

Next i

Text3.Text = max

Text4.Text = nombre

End Sub

Lo primero que hacemos en el evento click del botón calcular es declarar las variables que vamos a usar, del tipo de dato correspondientes. Luego le asignamos de entrada a suma el valor=0, para que vuelva a 0 cada vez que hagamos Click en el botón Calcular.

Con un bucle For..Next sumamos los valores de las 5 cajas de texto, donde ingresamos los valores, sacamos el promedio y le damos salida a este valor por la caja de texto correspondiente, en este caso text2.text.

Luego con otro bucle For...Next chequeamos cada valor comparándolo hasta obtener el mayor, y le damos salida por la caja de texto, Text3 al valor numérico y por la Text4 al nombre del bimestre de mayor venta.

Ejercicio Nº 29:

Abrimos un nuevo proyecto, insertamos en el formulario: seis botones y una Shape. Cada botón modifica en su evento Click, las posibles formas del control Shape: Rectángulo, Cuadrado, Círculo, Óvalo, Rectángulo redondeado y Cuadrado redondeado. Para esto modificamos la propiedad Shape, del control Shape.

Page 43: Visual ejercicios resueltos

Página 43

El formulario se ve así:

Y el código es el siguiente:

Private Sub Command1_Click()' botón rectángulo

Shape1.Shape = 0

End Sub

Private Sub Command2_Click()

Shape1.Shape = 1

End Sub

Private Sub Command3_Click()

Shape1.Shape = 2

End Sub

Private Sub Command4_Click()

Shape1.Shape = 4

End Sub

Page 44: Visual ejercicios resueltos

Página 44

Private Sub Command5_Click()

Shape1.Shape = 5

End Sub

Private Sub Command6_Click()

Shape1.Shape = 3

End Sub

Métodos Gráficos: Puntos y Líneas

Primero vamos a usar la función Pset que permite dibujar un punto en la pantalla en tiempo de ejecución, determinando dos argumentos: las coordenadas x, y que ubican este punto en el formulario.

También vamos a usar la función Rnd (Random), que nos permite elegir al azar una posición para este punto, complementada con la sentencia Randomize en el procedimiento Load del formulario, que hace que sea una elección azarosa y no se repita siempre los mismos valores. El formulario en tiempo de ejecución se ve así:

Page 45: Visual ejercicios resueltos

Página 45

Ejercicio Nº 30: Puntos

Abrimos un nuevo proyecto, insertamos tres botones, uno para dibujar los puntos, otro para limpiar el formulario y un tercero para Imprimir.

Debemos tener la propiedad AutoRedraw del formulario a True para que se redibuje y nos permita una impresión del formulario.

Veamos el código:

Private Sub Command1_Click() 'botón puntos

Dim x As Integer

Dim y As Integer

Dim color As Integer

Dim i As Integer

For i = 1 To 20

x = Int(ScaleWidth * Rnd)

y = Int(ScaleHeight * Rnd)

color = Int(16 * Rnd)

PSet (x, y), QBColor(color)

Next

End Sub

Private Sub Command2_Click()' botón Borrar

Cls

End Sub

Private Sub Command3_Click()' botón imprimir

Form1.PrintForm

End Sub

Private Sub Form_Load()

Randomize

End Sub

Page 46: Visual ejercicios resueltos

Página 46

El código de impresión del formulario y el de borrar ya lo conocemos porque lo trabajamos con la sentencia Print.

En el procedimiento Click del botón Puntos declaramos las variables que vamos a usar y mediante un bucle For...Next dibujamos 20 puntos, cuyas coordenadas x, y serán determinadas al Azar con la función Rnd. Multiplicados por el Ancho y Alto interno del formulario, determinado por sus propiedades ScaleWidht y ScaleHeight.

Luego determinamos un color, también al azar usando una función conocida: QbColor, y como consta de 16 colores, multiplicamos 16 por la función RND, pero declarando al valor como número entero: Int, es la abreviatura de Integer.

Dibujando en el Form:

Ahora vamos a completar el ejercicio anterior, de sólo puntos con otras funciones, como líneas, rectángulos, círculos...

Ejercicio Nº 31:

Option Explicit Dim x, y, r As Integer Dim x1 As Integer, y1 As Integer Dim x2 As Integer, y2 As Integer Dim color As Integer Dim ccolor As Integer Private Sub Command1_Click() 'puntos extremos y color aleatorio x1 = Fix(Me.ScaleWidth * Rnd) y1 = Fix(Me.ScaleHeight * Rnd) x2 = Fix(Me.ScaleWidth * Rnd) y2 = Fix(Me.ScaleHeight * Rnd) color = Fix(16 * Rnd) Randomize 'trazar una recta Line (x1, y1)-(x2, y2), QBColor(color) End Sub Private Sub Command2_Click() Me.PrintForm End Sub Private Sub Command3_Click() x1 = Fix(Me.ScaleWidth * Rnd) y1 = Fix(Me.ScaleHeight * Rnd) x2 = Fix(Me.ScaleWidth * Rnd) y2 = Fix(Me.ScaleHeight * Rnd) color = Fix(16 * Rnd) Randomize FillStyle = 1 'dibuja un cuadro(B) Line (x1, y1)-(x2, y2), QBColor(color), B End Sub

Page 47: Visual ejercicios resueltos

Página 47

Private Sub Command4_Click() x1 = Fix(Me.ScaleWidth * Rnd) y1 = Fix(Me.ScaleHeight * Rnd) x2 = Fix(Me.ScaleWidth * Rnd) y2 = Fix(Me.ScaleHeight * Rnd) color = Fix(16 * Rnd) Randomize 'dibuja un cuadro(B) Line (x1, y1)-(x2, y2), QBColor(color), BF End Sub Private Sub Command5_Click() Cls End Sub Private Sub Command6_Click() 'coordenadas del Centro, Radio y Color, aleatorias x = Fix(Me.ScaleWidth * Rnd) y = Fix(Me.ScaleHeight * Rnd) r = Fix(1000 * Rnd) color = Fix(16 * Rnd) Randomize FillStyle = 1 'dibuja una circunferencia Circle (x, y), r, QBColor(color) End Sub Private Sub Command7_Click() x = Fix(Me.ScaleWidth * Rnd) y = Fix(Me.ScaleHeight * Rnd) r = Fix(1000 * Rnd) color = Fix(16 * Rnd) ccolor = Fix(16 * Rnd) Randomize FillStyle = 0 FillColor = QBColor(ccolor) 'dibuja una circunferencia Circle (x, y), r, QBColor(color) End Sub Private Sub Command8_Click() Randomize x = Fix(Me.ScaleWidth * Rnd) y = Fix(Me.ScaleHeight * Rnd) color = Fix(16 * Rnd) PSet (x, y), QBColor(color) End Sub

Page 48: Visual ejercicios resueltos

Página 48

Ejercicio Nº 32:

Abrimos un nuevo proyecto, insertamos varios controles, una Image, una Label una Picture... y un Botón de cierre de la aplicación que es sobre el cuál se va a desplegar el puntero animado.

El programa se ve así en tiempo de diseño:

Vemos un array de controles Picture que tienen distintas imágenes de una carita, esta sucesión de pictures va a conformar la animación, como una secuencia de cuadros, en el formulario van a estar invisibles o sea con su propiedad visible a False, nosotros las vemos pero sólo en tiempo de diseño.

También vemos un control Timer, este es un control nuevo, especial para animaciones ya que automatiza un ciclo o bucle, o sea una estructura de repetición, en su propiedad Interval pondremos un valor medido en milisegundos (depende de la velocidad de la máquina), pero que repite las instrucciones dentro del procedimiento Timer, luego de pasado ese intervalo, en forma infinita hasta tanto se lo desactive por código.

Page 49: Visual ejercicios resueltos

Página 49

El codigo es:

Option Explicit

Dim a As Integer 'variable contadora Private Sub Command1_Click()' botón de cierre End End Sub Private Sub Timer1_Timer()' corazón de la animación a = a + 1 If a = 5 Then a = 0 Command1.MouseIcon = Picture2(a).Picture End Sub En el procedimiento Timer del control Timer se ejecuta el corazón de la animación, allí tenemos una variable contadora: "a" que se incrementa en cada ciclo, y que al llegar a 5 se reinicia en 0, para que la animación no se detenga. Como la Picture de las caritas conforma un arreglo todas se llaman Picture2 pero con un subíndice que en este caso representa el valor de la variable "a", esa secuencia de imágenes se asigna a la propiedad MouseIcon del control CommandButton1, o sea el botón de cierre de la aplicación.

Al detener el puntero del mouse sobre el botón se salida del programa se inicia la animación o secuencia de caritas.

Ejercicio Nº 33:

Para la realización de este ejercicio, creamos un nuevo proyecto, llamado Apolo. A la propiedad picture del formulario le cargamos una imagen de fondo relacionada al tema o bien le damos un color de fondo en la propiedad: Backcolor con la paleta de colores.

En el Formulario dibujamos cuatro controles: Una Image con la propiedad Stretch a True. Donde cargamos el icono Rocket de la carpeta Icons /Industry de Visual Basic.Y dos CommandButton, uno con el Caption: "Despegar" y otro con: "Salir" para cerrar el programa. El cuarto control un Timer estará invisible en tiempo de ejecución y ejecutará la animación del Apolo despegando hacia arriba. Recordemos que el Timer inicialmente tendrá su propiedad enabled a False o sea no estará disponible y tendrá un intervalo de 200 milisegundos en su propiedad Interval.

Al clickear sobre el botón Despegue se pondrá en funcionamiento el Timer y mediante el Método Move cuyos argumentos son: un valor para el movimiento horizontal y otro vertical animamos el Apolo.

Page 50: Visual ejercicios resueltos

Página 50

A continuación mostramos el código asociado a cada procedimiento:

Private Sub Command1_Click() 'este es el botón de Despegue

Timer1.enabled = True

End Sub

Private Sub Command2_Click() 'este es el botón de salida

End

End Sub

Private Sub Timer1_Timer()

Image1.Move Image1.Left, Image1.Top - 50

End Sub

En este caso la imagen del Apolo se va a desplazar o mover 0 valor a la izquierda y menos 50 twips hacia arriba, acercándose al borde superior hasta desaparecer.

La imagen del formulario se ve así:

Prueben con otros valores, en relación al margen izquierdo y al borde superior. También pueden probar con otros iconos.

Page 51: Visual ejercicios resueltos

Página 51

Ejercicio Nº 34:

El formulario tendrá el siguiente aspecto:

Tenemos dos controles para desplegar el texto: un Text1 y un RichTextBox1, y dos botones en cuyos eventos Click se desplegarán por código los archivos mencionados en los controles de texto.

Primero debemos crear un archivo en el NotePad o en el Word y grabarlo como TXT y otro con variaciones en el tipo, color y tamaño de la letra y grabarlo como rtf. Luego abrimos visual y en creamos un nuevo proyecto grabándolo en el mismo directorio y carpeta que tenemos los archivos: txt y rtf.

El código de cada botón es el siguiente:

Option Explicit 'Esta expresión nos fuerza a declarar las variables.

Private Sub Command1_Click() 'Este boton es el que carga el archivo TXT Dim pepe As String 'Declaramos una variable para identificar el archivo Dim renglon As String 'Esta variable guardará el tamaño de cada renglón 'del archivo

Page 52: Visual ejercicios resueltos

Página 52

renglon = Chr(13) & Chr(10) ' corta a otra línea Text1.Text = "" Open App.Path & "\rtf.txt" For Input As #1' Abre (Open) y da 'entrada (Input) 'el archivo ubicado en el mismo directorio y carpeta en que está la 'aplicación. App.path significa en la ruta actual de la aplicación. Sino hay 'que indicar cual es el Path. While Not EOF(1) ' esto realiza un bucle o sea repite la acción hasta que se 'llegue al final del archivo 1 (End of File) Line Input #1, pepe$ ' le da entrada a la linea 1 del archivo Text1.Text = Text1.Text & pepe & renglon 'concatena con & el texto del 'archivo y el tamaño del reglón. Wend ' repite las ordenes en tanto la condición es verdadera, en este caso 'hasta tanto no termine el texto del archivo. Close #1 ' cierra el archivo al terminar de cargarlo.

End Sub

Private Sub Command2_Click()'Botón RTF RichTextBox1.LoadFile (App.Path & "\rtf.rtf") 'como podemos ver con el 'Control RichTextBox es más sencillo el manejo de archivos, con la 'sentencia LoadFile se carga el archivo indicando el camino para 'encontrarlo. End Sub

Ejercicio Nº 35:

Abrimos el Editor de menú y vamos confeccionando un menú cuyos componentes son: estilo de Fuente: Color y Estilo y a su vez dentro de Color tenemos como subtema: Rojo, Verde, Azul y dentro de estilo: Negrita y Cursiva. Presten atención a la propiedad Caption: que mostrará el titulo del ítem del menú y a Name que es el nombre interno para que lo identifique VB. En este caso precedidos por mnu para distinguir los procedimientos del editor de los de la Aplicación.

El formulario se ve así:

Page 53: Visual ejercicios resueltos

Página 53

El código que debemos agregar es:

Private Sub mnuColorOpciones_Click(Index As Integer) 'Hacemos un Array 'en la casilla Index los numeramos

Select Case Index

Case 1 mnuColorOpciones(1).Checked = True mnuColorOpciones(2).Checked = False mnuColorOpciones(3).Checked = False Label1.ForeColor = RGB(255, 0, 0) ' color verde

Case 2 mnuColorOpciones(2).Checked = True mnuColorOpciones(1).Checked = False mnuColorOpciones(3).Checked = False Label1.ForeColor = RGB(0, 255, 0) ' color rojo

Case 3 mnuColorOpciones(3).Checked = True mnuColorOpciones(2).Checked = False mnuColorOpciones(1).Checked = False Label1.ForeColor = RGB(0, 0, 255) ' color azul

End Select End Sub

Private Sub mnuEstiloOpciones_Click(Index As Integer)'hacemos un Array

Select Case Index

Case 1 mnuEstiloOpciones(1).Checked = True mnuEstiloOpciones(2).Checked = False Label1.FontBold = True 'negrita activada

Case 2 mnuEstiloOpciones(2).Checked = True mnuEstiloOpciones(1).Checked = False Label1.FontItalic = True 'cursiva activada

End Select End Sub

Page 54: Visual ejercicios resueltos

Página 54

Creamos dos array con el mismo name pero distinto Index: mnuColorOpciones y mnuEstiloOpciones. Con el mismo nombre pero distinto indice, debemos en el Select Case chequear si fue seleccionado o no del Menú, con la propiedad Checked a True o False y en base a eso habilitamos los colores y las opciones de estilo.

Ejercicio Nº 36:

Abrimos un nuevo proyecto, en este ejercicio vamos a crear un explorador de imágenes que consta de dos formularios y usa los controles: FileListBox, DriveListBox, y DirListBox que conecta con los dispositivos de almacenamiento y con el árbol de estos con sus carpetas y archivos.

Luego insertamos 4 botones. Se agrega un segundo formulario vinculado al primero pero no encima sino desplegado hacia abajo donde se muestra la imagen seleccionada en un control Image o a través de un botón siguiente. La aplicación se ve así:

El codigo es:

Dim archivoseleccionado As String 'cadena de caracteres para cargar el 'camino del archivo .bmp. Private Sub Command1_Click()' boton Salir End End Sub

Private Sub Command2_Click() ' botón mostrar pantalla o sea el otro 'formulario Form2.Show End Sub

Page 55: Visual ejercicios resueltos

Página 55

Private Sub Command3_Click() Form2.Hide ' oculta el segundo formulario End Sub

Private Sub Command4_Click() 'si hay más diapositivas en la lista mostrar la siguiente

If File1.ListIndex < 36 Then File1.ListIndex = File1.ListIndex + 1 archivoseleccionado = File1.Path & "\" & File1.List(File1.ListIndex) Form2.Caption = archivoseleccionado ' muestra el camino en el titulo del f'ormulario Form2.Image1.Picture = LoadPicture(archivoseleccionado)'carga la imagen Else Beep MsgBox "Esa es la última diapositiva" ' si es la ultima avisa End If End Sub

Private Sub Dir1_Change()

File1.Path = Dir1.Path 'conecta el camino del archivo con el camino del directorio en 'que se encuentra

End Sub

Private Sub Drive1_Change() Dir1.Path = Drive1.Path 'conecta el directorio con el driver

End Sub

Private Sub File1_Click() archivoseleccionado = File1.Path & "\" & File1.List(File1.ListIndex) Form2.Image1.Picture = LoadPicture(archivoseleccionado)

'si seleccionamos el archivo se despliega

End Sub

Estos controles nos permiten mostrar los arboles de los distintos dispositivos, carpetas y directorios. Y filtramos los archivos a traves de la propiedad Pattern del File1. con la siguiente sintaxis: *.bmp;*.wmf;*.ico.

Page 56: Visual ejercicios resueltos

Página 56

Ejercicio Nº 37:

Abrimos un nuevo proyecto, insertamos tres controles Picture cargando en cada uno de ellos un icono que les guste. Y en la propiedad DragMode de cada picture elegimos la opción Automatic, la numero 1. Esto permitirá mover los controles.

El formulario se ve así:

Pero para que realmente se desplacen debemos agregar al procedimiento Form_DragDrop el siguiente código:

Private Sub DragDrop ( Source as control, X as Single, Y as Single)

Source.Move x, y

End Sub

Dentro de los argumentos entre paréntesis vemos Source que quiere decir origen, o sea el control de origen y esto es muy importante porque quiere decir que no hace falta que especifiquemos que picture estamos moviendo o arrastrando y soltando, el procedimiento lo registra de por sí, y lo que debemos actualizarle son las nuevas coordenadas que leerá el procedimiento a través de x, y. Aquí usamos un método ya conocido el Move. Al correr el programa podemos clickear sobre una de las figuras y manteniendo el botón izquierdo del mouse apretado arrastrarla a la nueva posición que deseamos y luego soltarla.

Page 57: Visual ejercicios resueltos

Página 57

EjercicioNº 38:

Abrimos otro proyecto y hacemos un nuevo ejercico de drageo pero superponiendo una imagen sobre otra.

El formulario se ve así:

Este ejercicio utiliza también imágenes que pueden desplegarse en controles picture o image . En este caso son Images con su propiedad stretch a true lo que permite usar iconos y poder agrandarlos. La Image1 la carita fea tiene la propiedad DragMode en 1: Automática. Y en la propiedad DragIcon tiene cargado el mismo icono para que cuando la arrastremos no se vea una ventana vacía. Pero ahora el procedimiento usado es el DragOver que detecta cuando pasamos por encima de un control determinado. En este caso es el cesto o la Image2. Y el objetivo es que al arrastrar la carita fea sobre el cesto esta desaparezca, simulando que la estamos tirando dentro del cesto. Entonces el código indicado será:

Private Sub Image2_DragOver (...)

Image1.visible = False

End Sub

Esto hace que al pasar la Image1 sobre la Image2 la primera se vuelva invisible lo que simula que la hemos tirado dentro del cesto.

Page 58: Visual ejercicios resueltos

Página 58

Ejercicio Nº 39:

Abrimos un nuevo proyecto, y vamos a combinar en el puntero del mouse distintos iconos, que sumados a los procedimientos mencionados van a dar la sensación de agarrar y soltar cosas en distintos sitios, esto nos permite crear aventuras gráficas, donde se recogen objetos y luego se ubican en determinado lugar siguiendo una secuencia lógica. El formulario se ve así:

Tenemos una Label y tres Pictures la 2 es la goma, la 3 el marcador(en el medio) y la 1 el lápiz.

La idea es que al hacer click en el lápiz quede en el puntero del mouse y así luego hacemos click en la label y aparece la palabra Tarea, como si la hubiésemos escrito, luego dejamos el lápiz haciendo Click en el Formulario. Hacemos Click en la goma y luego en la label y se borra la palabra Tarea. Hacemos Click en el formulario y dejamos la goma. Y al hacer click en el marcador y tenerlo en el puntero del mouse hacemos Click en la Label y esta se vuelve roja, antes era color amarillo. El código es:

Option Explicit

Private Sub Form_Click() If MouseIcon = Picture1.Picture Then ' aqui volvemos al puntero estándar MousePointer = 0 Picture1.Visible = True End If

If MouseIcon = Picture2.Picture Then MousePointer = 0 Picture2.Visible = True End If

If MouseIcon = Picture3.Picture Then MousePointer = 0 Picture3.Visible = True End If

End Sub

Page 59: Visual ejercicios resueltos

Página 59

Private Sub Label1_Click() If MouseIcon = Picture1.Picture Then ' si el puntero es el lápiz la label 'muestra la palabra Tarea en su caption. Label1.Caption = "Tarea" End If

If MouseIcon = Picture2.Picture Then ' si el puntero es la goma borra Tarea. Label1.Caption = "" Label1.BackColor = vbYellow ' fondo de la label amarillo End If If MouseIcon = Picture3.Picture Then ' si el puntero es el marcador el fondo se vuelve 'rojo Label1.Caption = "" Label1.BackColor = VBred

End If End Sub

Private Sub Picture1_Click()'carga el icono del lápiz MouseIcon = Picture1.Picture MousePointer = 99 Picture1.Visible = False

End Sub

Private Sub Picture2_Click()'carga el icono en el puntero de la goma MouseIcon = Picture2.Picture MousePointer = 99 Picture2.Visible = False End Sub

Private Sub Picture3_Click()'carga el icono en el puntero del marcador MouseIcon = Picture3.Picture MousePointer = 99 Picture3.Visible = False End Sub

Page 60: Visual ejercicios resueltos

Página 60

EJERCICITACIÓN

EJERCICIO Nº 1

La escuela La Defiant y sus ositos cariñosos le encomiendan a Usted la confección de un programa para que sus niños aprendan a sumar, restar, multiplicar y dividir, cada vez que la operación matemática seleccionada por el alumno es correcta, deberá aparecer una carita feliz y un mensaje de felicitación, por el contrario, si la operación no es correcta, la carita debe ser triste y el mensaje de error.

El programa contabilizará los errores y aciertos, y le pedirá el nombre del alumno al comienzo del mismo, quedando almacenado en una etiqueta.

EJERCICIO Nº 2

Crear un programa que nos informe el nombre de cada parte de la computadora, haciendo un clic en las figuras.

Nota: las imágenes están en la carpeta de ejercitación correspondiente.

EJERCICIO Nº 3

Realizar la codificación para un crucigrama.

EJERCICIO Nº 4

En esta ocasión se le pide codificar una enciclopedia del sistema solar.

La realización y diseño es personal.

EJERCICIO Nº 5

El restaurante “las delicias de la Defiant” le solicita confeccionar un programa para el cobro de las consumiciones de cada mesa de su local.

Cuenta con 10 mesas, dos menú infantiles, tres menú ejecutivos, tres combos familiares (para cuatro personas), cinco platos individuales, tres postres, y de bebida: agua con y sin gas, gaseosa, vino tinto rosado y blanco (dos variedades de cada uno).

Además se requiere una clave de acceso al programa (será: NCC1701C)

Page 61: Visual ejercicios resueltos

Página 61

EJERCICIO Nº 6

Realizar la codificación para un programa que calcule un precio final a partir de un monto ingresado por un cuadro de entrada, y sobre ese valor dependiendo de botones calcule un recargo del 10% si el pago es con tarjeta y un descuento del 5% si es pago contado.

EJERCICIO Nº 7

Realizar la codificación de un programa que devuelva los días de la semana en letras dependiendo del número ingresados en un cuadro de entrada. El día se debe mostrar en un cuadro de mensaje y en una etiqueta en el formulario, cuya fuente será arial 14 de color azul.

EJERCICIO Nº 8

Se ingresan tres notas (valor entero) por inputbox.

Calcular el promedio.

Por medio de un select case verificar el estado del alumno:

Menor a 4 aplazo

Menor a 6 reprobado

Mayor a 6 aprobado.

EJERCICIO Nº 9

Se ingresan por inputbox tres valores que corresponden a distintos productos,

Todos por unidad.

Con select case calcular e informar el total teniendo en cuenta la siguiente tabla de valores:

Pago con tarjeta: 15% de recargo

Pago con cheque: 7% de recargo

Pago en efectivo: 10% de descuento.

EJERCICIO Nº 10

Una panadería compra harina a tres proveedores distintos, y cada uno cobra un precio distinto.

Page 62: Visual ejercicios resueltos

Página 62

Calcular con un select case lo que se debe abonar, de acuerdo a la cantidad comprada y a la siguiente tabla:

Enterprise inc. $ 1,20 el kilo

Defiant srl: $ 1,10 el kilo

Abismo nueve s.a : $ 1,30 el kilo

EJERCICIO Nº 11

Realizar la codificación de una imagen en movimiento.

Nota: las imágenes están en la carpeta de ejercitación correspondiente.

EJERCICIO Nº 12

Realizar un programa que convierta una suma de pesos en otra moneda cualquiera.

EJERCICIO Nº 13

Crear un reloj y calendario.

EJERCICIO Nº 14

Realizar la codificación para obtener el resultado del cambio en el tipo de medida de un número introducido a milímetros, centímetros, metros, kilómetros y pulgadas.

EJERCICIO Nº 15

Realizar una calculadora que permita las cuatro operaciones básicas de la matemática entre dos números.

EJERCICIO Nº 16

Crear una agenda que registre las actividades y avise cuando un tiempo antes (definido por el usuario).

EJERCICIO Nº 17

Crear un programa que ordene tres números de menor a mayor o de mayor a menor de acuerdo a lo solicitado por el usuario.

Page 63: Visual ejercicios resueltos

Página 63

EJERCICIO Nº 18

Realizar el algoritmo para un programa que verifique la tabla que se brinda al final del ejercicio

El ejercicio debe corregir con una carita triste o feliz dependiendo si el resultado es correcto o no.

EJERCICIO Nº 19

Realizar un programa que calcule la edad de una persona.

EJERCICIO Nº 20

La empresa multinacional Defiant S.A. le encomienda la tarea de confeccionar una planilla en la cual figuren los apellidos, nombres, sueldo básico, horas extras, bonificaciones y deducciones, y calcule del empleado, el sueldo a percibir.

EJERCICIO Nº 21

La veterinaria Defiant S.A. le encomienda a usted, realizar la planilla de control para lo cual tendremos la lista de Artículos, su Precio mayorista, y la Cantidad vendida en un período cualquiera. Sabemos que se quiere ganar el 30% sobre el precio al por mayor, que el IVA es el 21%, y que se necesita conocer tanto el Precio al Público de cada Artículo como el porcentaje de ventas que representa cada producto.

EJERCICIO Nº 22

La empresa Defiant S.A. le encomienda para su fábrica de bulones la confección de una ficha mediante la cual seleccionando el nombre del cliente muestre todos sus datos personales, la fecha de su última compra, forma de pago, por cuanto es la deuda, y de cuanto es el descuento por pago a término, o el recargo por demora.

El descuento por pago en término es del 2% y el recargo por mora es del 5%.

+ =

- =

X =

/ =

> =

< =

Page 64: Visual ejercicios resueltos

Página 64

EJERCICIO Nº 23

La empresa Defiant S.A. le pide la confección de una lista de presupuesto automática para su empresa de turismo.

La misma tendrá la opción de tipo de pago, con un descuento del 10% en efvo. y un recargo del 15% por pago con tarjeta, el cual se seleccionará con una casilla de verificación. El tipo de pasaje se elegirá por medio de botones de opción. Avión o Bus ida, e ida y vuelta. Bus ida y vuelta será el doble de ida, menos el 10%. Avión ida es el 60% mas que bus ida, y avión ida y vuelta el doble de avión ida menos el 7%. Confeccionar la hoja que se imprimirá para el cliente y visualizarla mediante un botón. Guardar el documento con el nombre correspondiente.

EJERCICIO Nº 24

La empresa Defiant S.A. necesita de sus servicios para la realización de una planilla de consulta para su vinería, la misma dará la descripción, marca, precio unitario final, precio de la cantidad requerida (si el stock lo permite) tanto en efectivo como con tarjeta.

EJERCICIO Nº 25

El hotel Defiant le solicita a usted que le confeccione una planilla para control y facturación de cada habitación. Tener en cuenta que las habitaciones que se encuentran entre: 200 y el 299 son simples. 300 y 399 son dobles. 400 y 499 son familiares (cuatro personas).

EJERCICIO Nº 26 El video club Defiant le solicita a Usted la creación de una planilla para el alquiler de

películas, que se imprimirá para adosar a la ficha de cada socio, la misma deberá tener el Nº de socio, teléfono y si retira o se envía a domicilio, código y nombre de la película, si corresponde el descuento por película en promoción o el descuento por antigüedad del socio, y un botón de impresión. Si el socio retira la película, no tiene recargo, si se le envía a domicilio, se le deberá cobrar $ 1.00 en concepto de flete. Los socios cuyo Nº sea inferior a 2000, tiene un descuento del 20%, del 2001 al 3000 un 10%, del 3000 al 4000, un 5%, y del 4000 en adelante, no tienen descuento. Lista de descuentos por código: Del código 1000 al 3000, 5% Del código 3001 al 4000, 4% Del código 4001 al 5000, 2% Del código 5001 en adelante, no tienen descuento. El valor del alquiler por película es de $ 4.14 + IVA. (recuerde que este precio está sujeto a variación)

Page 65: Visual ejercicios resueltos

Página 65

EJERCICIO Nº 27

La Universidad Abierta Defiant, le solicita la confección de una planilla para definir el estado de los alumnos.

Abrir la planilla con el nombre "finales". Cargando el número de libreta, deberán cargarse en forma automática los demás datos, excepto las materias adeudadas, que se calcularán con la fórmula adecuada. Si el número de libreta está en blanco no debe figurar ningún tipo de dato. En situación deberá figurar si adeuda finales Calcular la cantidad de alumnos de 3º año, la cantidad de alumnos para contador en 2º y cuántos adeudan materias.