Ejercicios Con Visual Basic 6

Ejercicios con Visual Basic 6: MonthView y DtPicker : Calendario. Despliega Fecha y Hora Validar un texto a través del P

Views 143 Downloads 3 File size 309KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Ejercicios con Visual Basic 6: MonthView y DtPicker : Calendario. Despliega Fecha y Hora Validar un texto a través del Procedimiento Validate Crear Controles en tiempo de Ejecución ImageCombo: Despliega Listas incluyendo Imágenes CoolBar: Barra que contiene otros Controles Barra de Progreso Barra de Estado Pestañas que contienen otros Controles ListView vinculada a una ImageList TreeView vinculado a una ImageList Control Chart para despliegue de Gráficos Gráficos con Chart y una consulta SQL Gráficos con Chart y una planilla de Excel Formulario de Datos: Asistente DHTML: Hola Mundo DHTML: Operaciones: Suma, Resta, Multiplicación y División

Ejercicio Nº 1: Nuevos Controles. Estos dos controles: el MonthView y el DTPicker son controles especiales que trae la versión 6 y que podemos traer de Componentes,

seleccionando Microsoft Windows Common Controls - 2 6.0, y como vemos nos despliegan hora y fecha y un calendario que podemos recorrer. El ejercicio puede bajarse de Aquí.

Ejercicio Nº 2: Validar un texto. El control caja de Texto tiene ahora en esta versión 6 un nuevo procedimiento que nos permite controlar la información que se ingresa, y una vez validada recién pasar al campo de texto siguiente. Prueben tratar de pasar a la caja de texto siguiente sin ingresar ningún dato con la tecla Tab y verán que no lo permite. El código es: Private Sub Text1_Validate(Cancel As Boolean) If Text1.Text "MIRTA" Then MsgBox "Debes tipear MIRTA en el primer texto para pasar al segundo.", vbInformation, "Instrucciones" Cancel = True End If End Sub Private Sub Text2_Validate(Cancel As Boolean) If Text2.Text "CONSUDEC" Then MsgBox "Debes tipear CONSUDEC en el segundo texto para pasar al tercero.", vbInformation, "Instrucciones" Cancel = True

End If End Sub El ejercicio puede bajarse de Aquí.

Ejercicio Nº 3: Crear controles. Ahora Visual Basic nos permite, crear controles en tiempo de ejecución sin necesidad de hacerlo dentro de un array, a partir del primero creado en tiempo de diseño. El código es: Private WithEvents cmdmiboton As CommandButton Private Sub cmdmiboton_Click() cmdmiboton.Caption = "¡Me hiciste Clic!" End Sub Private Sub Label2_Click() Set cmdmiboton = Controls.Add("VB.commandbutton", "Button") With cmdmiboton .Visible = True .Width = 3000 .Caption = "¡¡Qué Sorpresa!!" .Top = 3000 .Left = 1000 End With Label2.Enabled = False End Sub Primero hacemos Click en la Label que crea el botón y luego con el Click del botón cambiamos su propiedad Caption. El ejercicio completo lo podemos bajar de Aquí.

Ejercicio Nº 4: ImageCombo.

Este nuevo control pertenece al grupo de componentes: Microsoft Windows Common Controls 6.0. Y nos permite desplegar imágenes además de texto en un Combo desplegable.

Private Sub Command1_Click() Static i% 'un contador de numeros enteros Static imgi% 'un indice para las imagenes del control ImageList Dim comboimage As ComboItem 'variable de tipo objeto para 'declarar un comboItem 'Agrega una referencia al objeto comboItem usando el metodo 'Add Set comboimage = ImageCombo1.ComboItems.Add 'agrega un texto ImageCombo1.ComboItems.Add , , "Soy el item Nº " & CStr(i%) ImageCombo1.Text = "Soy el Item Nº " & CStr(i%) 'agrega un 'grafico comboimage.Image = imgi% + 1 'controlar que no se exceda de 'la cantidad de images del ImageList If imgi% = ImageList1.ListImages.Count - 1 Then imgi% = 0 Else imgi% = imgi% + 1 End If 'incrementa la variable contadora i% = i% + 1 End Sub Private Sub Form_Activate() ImageCombo1.ImageList = ImageList1 End Sub El ejercicio puede bajarse de Aquí.

Ejercicio Nº 5: Coolbar.

Este control pertenece al grupo Microsoft Windows Common Controls 3 6.0, y permite desplegar una barra que contenga otros controles. En este caso al hacer Click en el icono del Reloj despliega la hora. Estos controles que se insertan dentro de la Coolbar pueden mantenerse flotantes o fijos. El código es: Private Sub Command1_Click() Label1.Caption = Time End Sub Private Sub Form_Activate() List1.AddItem "Chocolates" List1.AddItem "Caramelos" List1.AddItem "Chupetines" List1.AddItem "Galletitas" End Sub En el caso de la Lista le agregamos distintos Items a través del Método AddItem en tiempo de ejecución. El ejercicio puede bajarse de Aquí.

Ejercicio Nº 6: Barra de progreso. Este ejercicio nos muestra el uso de una barra de progreso que podemos usar mientras se realiza la carga de un archivo o en otro momento de espera hasta que se complete una

tarea. El código es el siguiente: Option Explicit Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() 'Inicializamos el timer para que este apagado Timer1.Enabled = False End Sub Private Sub cmdComenzar_Click() 'Inicializamos la barra de progreso, y comenzamos el Timer Progreso.Value = 0 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() 'Si el progreso todavía no termina, seguir aumentando Value hasta 100 With Progreso If .Value < .Max Then .Value = .Value + 1 Else 'Termino MsgBox "Proceso Terminado", , "Barra de Progreso" 'Deshabilitamos el Timer Timer1.Enabled = False End If End With End Sub Aquí usamos with para referirnos al control y no tener que repetir su nombre. Esto es muy útil cuando debemos modificar los valores de varias propiedades por código de un mismo control. El ejercicio completo puede bajarse de AQUÍ.

Ejercicio Nº 7: Barra de estado. Un ejemplo de como modificar en tiempo de ejecución la Barra de estado. En el formulario tenemos una caja de texto donde ingresamos el texto a

desplegar y luego en el click de un botón lo asignamos al panel de la barra correspondien te. El código correspondiente es: Private Sub cmdAceptar_Click() StatusBar1.Panels("Texto").Text = txtPanel End Sub Como vemos es muy sencillo, para asignarle un valor al panel correspondiente debemos identificarlo con el nombre del mismo, determinado en la ventana propiedades, para tener acceso al mismo debemos hacer click con el boton derecho sobre el control y alli podemos configurar los distintos paneles. El ejercicio puede bajarse de AQUÍ.

Ejercicio Nº 8: Pestañas. Es común usar el control TabStrip para mostrar aplicaciones con pestañas, sin embargo es mucho más potente el control Tabbed Dialog ya que cada panel puede contener otros controles, esto facilita el diseño y su codificación. En el formulario dibujamos un control SStab traido de componentes y luego en su primer pestaña dibujamos varias labels que nos vincularan con las otras pestañas, donde se mostrará en una texto y en la otrs una imagen. El código es el siguiente: Option Explicit Private Sub Form_Load() SSTab1.Tab = 0 'esto hace que se muestre el primer panel End Sub Private Sub

Label1_Click() Text1.Text = "Aqui podemos cargar un texto con formato richtextbox, sobre el Tema 1." SSTab1.Tab = 1 End Sub Private Sub Label4_Click() Picture1.Picture = Picture2 SSTab1.Tab = 2 End Sub Private Sub Label5_Click() Text1.Text = "Aqui podemos cargar un texto con formato richtextbox, sobre el Tema 2." SSTab1.Tab = 1 End Sub Private Sub Label6_Click() Picture1.Picture = Picture3 SSTab1.Tab = 2 End Sub Como vemos lo importante es la propiedad Tab y la asignación del indice del panel de l control que queremos mencionar. El código completo lo pueden bajar de AQUÍ.

Ejercicio Nº 9: ListView. Este control nos permite desplegar una lista de archivos al estilo el Explorador de Windows. En este caso los agregamos a traves del ingreso de datos de cajas de texto. Y despliegan un icono al azar seleccionado de un control ImageList, que hemos usado en otros ejercicios. El formulario,

permite a traves del uso de botones de opcion seleccionar que modalidad queremos que tengan los iconos. El código es el siguiente: Option Explicit Function NroAzar(Min As Integer, Max As Integer) As Integer NroAzar = Int((Max - Min + 1) * Rnd + Min) End Function Private Sub cmdAgregar_Click() Dim Nuevo As ListItem Dim IndiceIcono As Integer 'Elegir un icono al azar para el elemento IndiceIcono = NroAzar(1, ilIconos.ListImages.Count) 'Agregar el nuevo elemento, y asignarle el icono elegido Set Nuevo = lvwPersonas.ListItems.Add(, , txtNombre, IndiceIcono, IndiceIcono) Nuevo.SubItems(1) = txtEdad Nuevo.SubItems(2) = txtSexo Nuevo.SubItems(3) = txtTelefono End Sub Private Sub cmdEliminar_Click() lvwPersonas.ListItems.Remove lvwPersonas.SelectedItem.Index End Sub Private Sub cmdSalir_Click() End End Sub Private Sub optVista_Click(Index As Integer) 'Cambiamos el tipo de vista en View lvwPersonas.View = Index End Sub Elegimos un Icono al azar de un ImageList el texto lo ingresamos a traves de las Cajas de Texto. Tenemos dos botones con la opcion de Agregar y de Borrar, los ingresos. Y Botones de Opcion para seleccionar la propiedad View de la Lista acorde al Indice del option Button. los iconos que se muestran en los encabezados fueron asignados al ingresar el Nombre de las columnas y asociando la propiedad Icon Index a los Iconos de la ImageList ilColumnas. o sea que tenemos dos controles ImageList. El codigo completo puede bajarse de AQUÍ.

Ejercicio Nº 10: TreeView. Este ejercicio muestra un tipico arbol de archivos de windows con su raíz principal y sus derivados. Acompañado de Iconos tomados también de un control ImageList. El método Add, agrega un Nodo al arbol de Archivos. El código es: Option Explicit Private Sub Arbol_Click() lblActual = Arbol.SelectedItem.Text End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() Dim i As Integer Arbol.Nodes.Add , , "Raiz", "Nodo raiz", 1 For i = 1 To 3 Arbol.Nodes.Add "Raiz", tvwChild, "Hijo " & i, "Hijo " & i, (i + 1) Next i Arbol.Nodes.Add "Hijo 1", tvwChild, "Nieto 1", "Nieto 1", 5 Arbol.Nodes.Add "Nieto 1", tvwNext, "Nieto 2", "Nieto 2", 6 Arbol.Nodes.Add "Nieto 1", tvwPrevious, "Nieto 0", "Nieto 0", 7 End Sub El ejercicio completo puede bajarse de Aquí.

Ejercicio Nº 11: Control Chart.

El control Miscrosoft Chart nos permite desplegar gráficos asociados a determinados datos que podemos cargar de otros archivos como puede ser una planilla de Excel o una Base de datos, o determinarlos por código. El control lo traemos de Componentes. Y al dibujarlo en el formulario vamos a ver que contiene de manera predeterminada un gráfico con datos apócrifos para mostarnos su diseño. Como organiza los datos: El control MSChart requiere que todos los datos se organicen en filas y columnas. Además requiere saber cuántos puntos de datos habrá en cada fila y columna que debe graficar. Por lo general se cuenta con una columna de datos con múltiples filas (algo parecido a un alista de números). Por ejemplo: si se desean graficar las ventas de una empresa durante los últimos doce meses, contará con una sola columna(un año) y doce filas(una por cada mes). Si desea comparar los dos últimos años, tendrá dos columnas (una por cada año) y doce filas(una por cada mes). Para poder organizar los datos usamos las propieddaes ColumnCount y RowCount. En el ejemplo mencionado: ColumnCount= 1 RowCount= 12 ChartType= 1 (vtChChartType2dBar) Para agregar datos en tiempo de diseño: capturamos 12 cifras en tiempo de diseño para poder apreciar el gráfico. establecemos la propiedad AutoIncremente a True y en la propiedad Data asignamos el valor 1, 2 o 3 para incrementar. Hagan la prueba, de esa manera carga datos de manera automática. Vamos a hacer un primer ejercicio viendo las propiedades y siguiendo un poco el ejemplo anterior:

Option Explicit Dim data(1 To 5, 1 To 3) As String Dim i As Integer Dim m As Integer

Private Sub Form_Load() Randomize 'Establece la cantidad de filas MSChart1.RowCount = 3 'asigna la cantidad de columnas de color MSChart1.ColumnCount = 3 'Puedo asignar un valor determinado a la columna de color de una fila en este caso la verde. MSChart1.Row = 3 MSChart1.Column = 2 MSChart1.data = 34 'Le cambia el texto a la Primer fila o row MSChart1.Row = 1 MSChart1.RowLabel = "Primera Fila" 'Le cambio el texto a la etiqueta del color azul, teniendo la propiedad ShowLegend a True MSChart1.ShowLegend = True MSChart1.Column = 3 MSChart1.ColumnLabel = "Azul" 'Le agrego un texto al pie del grafico MSChart1.FootnoteText = "Este es el pie del gráfico." 'Le agrego un Título. MSChart1.TitleText = "Gráfico MSChart" 'Puedo cambiar el tipo de letra del titulo y del Pie de grafico With MSChart1.Title.VtFont .Name = "Arial" .Style = VtFontStyleBold .Effect = VtFontEffectUnderline .Size = 14 .VtColor.Set 0, 0, 255 End With With MSChart1.Footnote.VtFont .Name = "arial" .Style = VtFontStyleBold .Effect = VtFontEffectUnderline .Size = 10 .VtColor.Set 125, 150, 155 End With 'Con la propiedad ChartType podemos cambiar el tipo de grafico. 'Por ejemplo: vtChChartType3dBar: es un grafico de Barras en 3D.

'Tambien podemos crear un array de 2 dimensiones (una tabla) y graficarla. For i = 1 To 5 For m = 1 To 3 data(i, m) = Rnd * 100 Next m Next i MSChart1.ChartData = data End Sub

Ejercicio Nº 12: Gráficos con Chart. En este ejercicio vamos a abrir una tabla y a traves de una consulta SQL vamos a graficar los datos de la misma. La tabla que usamos se llama books6.mdb y esta incluida en el codigo de los ejercicios del Control Chart. En este ejercicio vamos a usar un menu que consta de Archivo: Grabar, Imprimir y Salir.Un menu Edicion que copia al portapapeles y Un menu de Gráficos que despliega distintos tipos de graficos , uno de ellos a traves de la base de datos y otros por código. Option Explicit 'debemos cargar la referencia Microsoft ActiveX data object 2.0 y el MSChart. Private Sub Form_Load() End Sub Private Sub Form_Resize() With MSChart1 .Left = 0 .Top = 0 .Width = Me.ScaleWidth .Height = Me.ScaleHeight

End With End Sub Private Sub mnuArchivoGuardar_Click() Dim strArchivoGuardar As String strArchivoGuardar = App.Path & "\" & App.EXEName & ".bmp" MSChart1.EditCopy SavePicture Clipboard.GetData, strArchivoGuardar MsgBox "El gráfico ha sido guardado en " & strArchivoGuardar, vbInformation, "Guardar Gráfico" End Sub Private Sub mnuArchivoImprimir_Click() MSChart1.EditCopy Printer.PaintPicture Clipboard.GetData, 0, 0 Printer.NewPage Printer.EndDoc MsgBox "El gráfico ha sido enviado para su impresión.", vbInformation, "Imprimir gráfico" End Sub Private Sub mnuArchivoSalir_Click() Unload Me End Sub Private Sub mnuEdicionCopiar_Click() MSChart1.EditCopy MsgBox "El gráfico se copiado a la memoria.", vbInformation, "Copia de gráfico" End Sub Private Sub mnuGraficosBaseDatos_Click() 'abrimos una conexion a datos con el uso de un proveedor OLEDB 'cuidado con la ruta donde esta la base de datos. Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim strProveedor As String Dim strOrigenDatos As String Dim strSQL As String strProveedor = "Microsoft.Jet.OLEDB.3.51" strOrigenDatos = App.Path & "\books6.mdb" strSQL = "SELECT Title, SUM(Sales) AS Ventas FROM BookSales GROUP BY Title HAVING SUM(Sales) > 0" cnn.Open "provider=" & strProveedor & "; Data Source=" & strOrigenDatos rst.Open strSQL, cnn, adOpenStatic

With MSChart1 .ShowLegend = True .chartType = VtChChartType2dBar 'esta linea carga los datos Set .DataSource = rst End With End Sub Private Sub mnuGraficosIncrAut_Click() Dim intBucle As Integer With MSChart1 .chartType = VtChChartType3dBar .ColumnCount = 12 .RowCount = 12 .AutoIncrement = True For intBucle = 1 To 144 .Data = intBucle Next .AllowDynamicRotation = True .ShowLegend = True End With End Sub Private Sub mnuGraficosMatriz_Click() Dim avarDatos(0 To 3, 1 To 5) As Variant Dim intCol As Integer Dim intFila As Integer 'carga las leyendas y los datos With MSChart1 .chartType = VtChChartType3dBar .ColumnCount = 6 .RowCount = 12 'los bucles generan los datos de la matriz dimensionada como variant For intCol = 1 To 5 For intFila = 1 To 3 If intCol = 1 Then avarDatos(intFila, intCol) = "trim" & CStr(intFila + 1) Else avarDatos(intFila, intCol) = Int((50 - 10 + 1) * Rnd + 10) End If Next Next

.ShowLegend = True End With 'asigna los datos al control chart MSChart1.ChartData = avarDatos End Sub Private Sub mnuGraficosPuntos_Click() Dim intCol As Integer Dim intFila As Integer With MSChart1 .chartType = VtChChartType3dBar .ColumnCount = 6 .RowCount = 12 For intCol = 1 To 6 For intFila = 1 To 12 .Column = intCol .Row = intFila .Data = intCol * intFila Next Next .ShowLegend = True End With End Sub

Ejercicio Nº 13: Control Chart y Excel. Vamos a usar datos de una planilla de Excel, para generar un gráfico al cargarse el formulario que contiene al control MiSChart. El código es el siguiente: Option Explicit ' Coloque este código en la sección Declaraciones. ' Si utiliza Office 97, asegúrese de establecer una ' referencia a Microsoft Excel 8.0 Object Library. ' Si utiliza Office 95, establezca una referencia a ' Microsoft Excel 5.0 Object Library y declare

' la variable como Worksheet. Dim wkbObj As Workbook ' Declara una variable de objeto. Private Sub Form_Load() ' Establece después la variable con el método GetObject. Set wkbObj = GetObject _ (App.Path & "\pepe.xls") Dim matrizDatos(1 To 6, 1 To 2) Dim i As Integer For i = 1 To 6 ' Los valores de la columna A llenan la primera serie de las ' matriz. Si estos valores son cadenas, se convierten ' las etiquetas de las filas. matrizDatos(i, 1) = wkbObj.Worksheets(1) _ .Range("A" & i + 1).Value ' Después los valores de la columna B llenan la segunda. matrizDatos(i, 2) = wkbObj.Worksheets(1) _ .Range("B" & i + 1).Value Next i MSChart1.ChartData = matrizDatos End Sub Los códigos de los tres últimos ejercicios que usan el Control Chart pueden bajarse de AQUÍ.

Ejercicio Nº 14: Formulario de Datos. Visual Basic cuenta con una cantidad importante de Asistentes. Entre ellos el asistente para la creación de un Formulario de datos, osea un formulario que va a mostrar datos de una Base de datos. Para incorporar al Asistente vamos a Complementos, Administrador de complementos y alli se nos abre una ventana desde donde podemos seleccionar cualquiera de los Asistentes.

Seleccionamo s VB 6 Data Form Wizard y hacemos doble click, o marcamos en la casilla de selección, para qu se cargue. Luego hacemos Aceptar y al ir a Complemento s veremos la opcion de del asistente incluida. La seleccionamo s y se abrirá una ventanacon la introducción al Asistente. Pasamos a Siguiente, ya que aquí no podemos cargar la configuración de ningún perfil, porque no tenemos ninguna configuración o plantilla grabada.

En esta pantalla seleccionamo s qué tipo de base de datos vamos a usar, si una de Access o de un servidor remoto. En este caso elegimos Access. Y pasamos a la pantalla siguiente.

En esta pantalla si hacemos Click en el botón Examinar podemos elegir la base de datos que vamos a usar.

Aquí aparece una lista de opciones, que nos permite elegir qué tipo de formulario vamos a crear y como vamaos a mostrar los datos. Registro individual: nos mostrará registro por registro. Cuadrícula: lo hará en una grilla. Maestro/Detall e: relaciona dos tablas. FlexGrid mostrará: las tablas con sus resúmenes y totales de los datos existentes en la tabla y Chart lo hará de manera gráfica. Nosotros vamos a elegir a manera de grilla o Cuadrícula.

En esta pantalla seleccionamo s la tabla de la base de datos. Y de ella los campos que queremos mostrar. Los seleccionamo s y con los botones con flecha los vamos pasando a la lista de la derecha. Si queremos ordenar los datos por un campo determinado lo elegimos del combo desplegable. Aqui hacemos Click en seleccionar todos los botones o elegimos solo algunso. estos nos permiten navegar la grilla. La pantalla Siguiente nos pregunta si queremos guardar esta configuración como una plantilla para futuros formularios. Luego hacemos Finalizar.

Al cerrase la ventana del Asistente veremos en nuestro proyecto estándar un nuevo formulario, si no usamos el primero o Form1 lo podemos eliminar. Posicionados en la ventana proyecto con el botón derecho tenemos la opción de eleminarlo. Y grabamos la aplicación con el formulario que creó el asistente. Sino lo usamos como formulario de presentación. Como vemos en la ventana código el asistente, ya codificó los botones de navegación y de cierre de la Aplicación. El ejercicio completo podemos bajarlo de Aquí.

Ejercicio Nº 15: DHTML: Hola Mundo Visual Basic en su versión 6 cuenta con un tipo de proyecto que nos permite crear un archivo con extensión html y por lo tanto al ejercutarlo, se abre en el navegador, para esto crea una .dll donde convierte el codigo visual basic a htm. Como vemos en la imagen debemos elegir en proyecto Nuevo: Aplicación DHTML (Dinamic Html). Tenemos aquí también una caja de herramientas y una ventana diseño y otra ventana código aunque con ciertas modificaciones, en el nombre de los objetos y en sus procedimientos. Vamos a hacer el típico ejemplo de Hola Mundo pero en este editor de código HTML. La aplicación en tiempo de ejecución abre una página web con las siguientes características:

Vamos a dibujar un control image, un botón y una caja de texto, modificamos sus propiedades a través de la ventana propiedades, y luego codificamos en la ventana código, la sintáxis es la siguiente: Private Function Button1_onclick() As Boolean Image1.border = 4 TextField1.Value = "Hola mundo" End Function Los procedimientos aquí se llamarán funciones. Y la caja de texto en lugar de Caption tiene una propiedad llamada Value. Y la función no es Click sino onClick.

Ejercicio Nº 16: DHTML: Operaciones Ahora vamos a hacer una calculadora simple de operaciones matemáticas. Abrimos un nuevo proyecto DHTML y dibujamos una tabla con etiquetas y cajas de texto y cinco botones. En tiempo de ejecución se ve como la imagen de la izquierda. Y la codificación es la siguiente: Dim numero1 As Integer

Dim numero2 As Integer Private Sub BaseWindow_onload() TextField1.Select End Sub Private Function Button1_onclick() As Boolean numero1 = TextField1.Value numero2 = TextField2.Value TextField3.Value = Val(numero1 + numero2) End Function Private Function Button2_onclick() As Boolean numero1 = TextField1.Value numero2 = TextField2.Value TextField3.Value = Val(numero1 - numero2) End Function Private Function Button3_onclick() As Boolean numero1 = TextField1.Value numero2 = TextField2.Value TextField3.Value = Val(numero1 * numero2) End Function Private Function Button4_onclick() As Boolean numero1 = TextField1.Value numero2 = TextField2.Value TextField3.Value = Val(numero1 / numero2) End Function Private Function Button5_onclick() As Boolean TextField1.Value = "" TextField2.Value = "" TextField3.Value = "" End Function