Sie sind auf Seite 1von 75

Lenguaje de Programacin I INDICE

1.- Caracteristicas generales de VB. 2.- Entorno de trabajo. Barra de herramientas,explorador de proyectos,etc. 3.- Objetos en VB. 4.- Controles label,textbox,commnabutton,frame, y sus propiedades 5.- Convencin para nombrar objetos en Visual Basic 6.- Operadores: Basicos,Comparacion, Etc. 7.- Variables y Tipo de Datos en VB. 8.- Manejo de Formularios:Eventos, Metodos, Modales y no Modales, MDI. Practica 1 9.-Instrucciones Condicionales,Controles optionButton,Checkbox, Evento keypress y Change 10.-Funciones de conversin de datos 11.-CUADROS DE DIALOGO Ejemplo practico 12.-Funciones de Cadenas,Numricas y Fechas 13.-Evento Gotfocus, LostFocus, MouseDown, MouseUp y MouseMove 14.-Instrucciones Repetitivas, Sentencia Exit. Practica3 15.- Barras de desplazamiento (Scroll Bars) 16.- Funcin RGB 17.- Control Timer 18.- CONTROLES GRFICOS:Line,Shape,Image,Picturebox 19.- Metodos graficos:Pset,Line,Circle. 20.- CUADRO DESPLEGABLES(COMBOBOX) Y LISTAS (LIST BOX) 21.- ARREGLOS:ESTATICOS,DINAMICOS,CONTROLES Aplicacion :AHORCADO 22.- MSFLEXGRID Practica4 23.- PROCEDIMIENTOS Y FUNCIONES Practica 5 24.- Registros 25.- Controles ACTIVE X (ToolBar, ImageList, ProgressBar, StatusBar, ShockWaveFlash) Ejemplo de Presentacion de Un Sistema 26.- Manejo de Archivos, Comandos (Dir , Kill, FileCopy, etc.) Controles DRIVE, DIR y FILE 27.- VISUAL BASIC Y BASE DE DATOS Objetos Recordset, propiedades, metodos, etc.

-1-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Semana 1: Entorno de Desarrollo Visual Basic 1.1 .- Caractersticas Generales de Visual-Basic Visual-Basic es una herramienta de diseo de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseo de una interface grfica. En una aplicacin Visual - Basic, el programa est formado por una parte de cdigo puro, y otras partes asociadas a los objetos que forman la interface grfica. Es por tanto un termino medio entre la programacin tradicional, formada por una sucesin lineal de cdigo estructurado, y la programacin orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que VB pertenezca por completo a uno de esos dos tipos de programacin, debemos inventar una palabra que la defina : PROGRAMACION VISUAL.

1.2.- Entorno de Trabajo de Visual Basic


Visual Basic es un entorno de desarrollo diseado para la creacin de aplicaciones para los entornos de trabajo Microsoft Windows 95, 98, NT y 2000. Este lenguaje auna las posibilidades de un lenguaje de alto nivel con las herramientas de diseo grfico, lo cual nos d acceso a todas las funciones de los sistemas anteriormente citados. Para entrar a desarrollar en visual basic nos vamos al menu Inicio- Programas Microsoft Visual Studio 6 Microsoft Visual Basic 6
OJO: El ejecutable que abre el Visual Basic 6 se llama VB6.EXE

La primera pantalla que nos saldra sera la sgte: Aqu escogemos el tipo de proyecto que queremos realizar que en este caso sera EXE STANDARD ya que es el ideal para crear aplicaciones OJO: Los otros tipos de proyecto permite crear cosas distintas como por ejemplo
ActiveX Control Crea un control para poder usarlo

-2-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I
en tus aplicaciones e incluso en una pgina WEB. DLL ActiveX Crea Librerias dinamicas que se podra utilizar desde cualquier lenguaje que tenga compatibilidad. Una vez que hemos escogido el proyecto a desarrollar el sistema nos respondera de la siguiente manera:

Barra de Menu

Barrra de Herramientas Diseador de Formulario

Explorador de Proyecto

Ventana de Propiedades

Cuadro de Herramientas

Los elementos del entrono de desarrollo de Visual Basic son: Barra de herramientas:Permite un acceso rpido a los comando ms utilizados Si en caso no se muestra la barra Nos vamos al Menu Ver-Barra de Herramientas-Estandard Diseador de formularios Es la ventana en la que se disear la interfaz de la aplicacin, en ella se pueden agregar controles grficos e imgenes. Cada formulario de una aplicacin aparecer en su propia ventana. Para mostrarla debemos hacer doble clic al formulario el cual queremos disear Cuadro de herramientas En el cuadro de herramientas podemos encontrar un conjunto de herramientas que permiten insertar los objetos o controles en el formulario durante en tiempo de diseo, los objetos ms comunes son botones(command), etiqueta (label), cuadros de imagen(Picture), imgenes(Image), etc... Si hacemos doble click con el ratn sobre alguno de ellos se insertar automticamente en la ventana del formulario. Ventana de propiedades Los objetos tiene asociados unas propiedades que describen sus atributos, valores, comportamiento y apariencia del objeto. Para sacar las propiedades se hace clic derecho y propiedades o se pulsa F4. Explorador de proyectos Contiene la lista de los archivos que forman parte de la aplicacin

-3-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Ventana editor de cdigo En esta ventana es donde se incluye el cdigo de la apliacin. Se crear una ventana de cdigo para cada formulario o mdulo de la aplicacin. Para tener acceso a la ventana de edici, la forma ms sencilla es hacer doble click sobre el formulario o sobre el objeto al cual quiera incluir cdigo.

1.3.- Objetos en Visual Basic

Un objeto en Visual Basic se caracteriza por tres componentes: propiedades, mtodos y eventos. NOTA: Los objetos vienen a ser los controles como TextBox, Label, Etc. Las propiedades son aquellas caractersticas o atributos que permiten establecer la apariencia de un objeto como el color, tamao, posicin, etc... O el estado del mismo: activo, maximizado, ect... Existen propiedades que slo estn disponibles en tiempo de diseo y otras que slo estn disponibles en tiempo de ejecucin. Ejemplo de Propiedades: alignment, autosize, caption, name, etc. Los mtodos son pequeos programas que actan sobre un determinado objeto y que establecen su comportamiento. As un objeto puede moverse, ocultarse, etc... Puedes utilizar cualquier mtodo que forme parte del objeto. Ejemplo de Metodos: show, hide, etc. Los eventos son las situaciones que se producen y que nos interesan identificar para establecer algn tipo de de respuesta por parte del objeto. As, puedes hacer click sobre un determinado objeto, creando de esta forma un evento reconocible por el objeto. Que suceda algo o no como respuesta a este evento depender de que hayas programado alguna accin en el correspondiente procedimiento de evento. Ejemplo de Eventos: click, dobleclicke ,mousemove, keypress, etc.

1.4.- Controles Label, TextBox, CommandButton, Frame y sus Propiedades

-4-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I * Label o Etiquetas .- Las etiquetas son controles que nos permiten mostrar texto en los formularios y que tienen la particularidad de que el usuario no puede modificar solo muestra informacin acerca de algo. El control de etiqueta es: Algunas propiedades del control etiqueta son: Propiedad Definicin Alignment Establece la alineacin del texto de la etiqueta(derecha, izquierda y centro) Autosize Si su valor es True, el tamao de la etiqueta se adapta automticamente a su contenido Caption Texto que se visualiza en la etiqueta BackStyle Establece si el fondo del label sera opaco o transparente. * TextBox o Caja de Textos.- Los cuadro de texto son el control estndar de entrada de datos en Visual Basic. Permiten al usuario de la aplicacin introducir informacin. El control del cuadro de texto es: Los cuadros de texto son semejantes a las etiquetas, pero con la diferencia que el usuario puede modificar su contenido. El texto que se introduce puede ser tanto numrico como alfanumrico (nmeros y letras). Cuando se recupera un valor de una caja de texto asi se haya ingresado un numero tomar el valor de una cadena. A diferencia de la etiqueta, el tamao del texto es fijo al no permitir la propiedad autosize. Algunas propiedades del objeto cuadro de texto son: Propiedad Definicin Alignment Alineacin de la informacin introducida. Multiline Permite introducir ms de una lnea de texto en el cuadro PasswordCharEstable el caracter que se muestra al realizar una entrada en el control. Slo se mostrar dicho carcter(Por defecto esta vacio) ScrollBars Muestra barras de desplazamiento(Esto solo funciona si la propiedad multiline esta en True) Text Texto que se visualiza en el control * Frame o Marcos.- Se utiliza para agrupar ciertos controles. La nica propiedad interesante de un control marco es la propiedad Caption, que se refiere al texto que se presenta en la parte superior izquierda del control. El control marco acta como contenedor de otros controles. Al mover un marco tambin se mueve los controles que contenga, para ello deberemos crear primero el marco y despues los controles que queremos que contenga dentro del marco. * Command o Botones.- El botn de comando (CommandButton), es muy sencillo, por lo que no tienes que establecer muchas propiedades. Con la propiedad Caption establecemos el texto que aparecer en el botn. Tambin se pueden crear teclas de acceso al botn. El uso principal de los botones de comando es realizar acciones en la aplicacin.

-5-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Bloquear controles Cuando estn situados los controles en el formulario se pueden bloquear para que no puedan moverse de forma accidental. Para esto deberemos hacer clic derecho Bloquear Controles Para desbloquear se hace lo mismo. Otras Propiedades Name .- Quizas la mas importante da el nombre al control. Backcolor .- Establece el color de fondo del control. Forecolor .- Establece el color del texto del control. BorderStyle .- Establece el tipo de borde del control. Visible .- Establece si el control se ver(True) en tiempo de ejecucin o no(False). Picture .- Establece una imagen de fondo al control. Nota: Si el control es un commandbutton la propiedad STYLE debera estar en 1.- Graphical para que se pueda ver la imagen lo mismo es para darle un color de Fondo. Width, Height .- Establece el ancho y el alto del control.(a mayor numero mas ancho o alto) Font.-Establece la fuente, tamao, etc. Enabled.-Permite o no que se puedan realizar acciones sobre el control(esta en True por defecto si esta en False no se podra utilizar el control) TabIndex.-Establece el orden de tabulacin fijado para el control(Esta propiedad sirve para casi todos los controles en VB) TabStop.-Indica si al utilizar el tabulador se puede desplazar entre los controles del formulario ToolTipText.-Establece un texto que se mostrar cuando se pase el mouse por el control como si fuera un comentario. Top .-Establece la distancia que hay desde el borde superior del formulario hasta donde se encuentra el control Left .-Establece la distancia que hay desde el borde izquierdo del formulario hasta donde se encuentra el control Icon .- Establece la imagen de un icono (Solo esta disponible para los formularios) MinButton, MaxButton .- Para ver o no ver los botones de minimizar y maximizar (solo para los formularios) Moveable .- Si esta en True el Form se podr mover ,si esta en false ser lo contrario(solo para los formularios)

1.5.- Convencin para nombrar objetos en Visual Basic


OBJETO Form CheckBox ComboBox Data-bound combobox Command Button Data Directory list box OBJETO ESPAOL Formulario Casilla de verificacin Cuadro combinado Cuadro combinado enlazado a datos Botn de comando Control de datos Cuadro lista de directorios -6PREFIJO frm chk cbo dbc cmd dat dir

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Drive List Box File List Box Frame Grid Data-bound grid Horizontal scrollbar Image Label Line OLE Container PictureBox Shape Text Box Timer Vertical scroll bar Cuadro lista de unidades Cuadro lista de archivos Marco Rejilla Rejilla enlazada a datos Barra de desplazamiento horizontal Imagen Etiqueta Linea Contenedor OLE Cuadro de imagen Forma Cuadro de texto Temporizador Barra de desplazamiento vertical drv fil frm grd dbg hsb img lbl lin ole pic shp txt tmr vsb

1.6.- Operadores

Operaciones Basicas Operador Operacin que realiza + Suma / Concatenacin de cadenas de caracteres * / \ Mod ^ Resta Multiplicacin Divisin Divisin entera Resto de la divisin entera Exponenciacin (alt + 94)

& Concatenacin de Operadores de Comparacin > Mayor que < Menor que = Igual a <= Inferior o igual a >= Superior o igual a <> Distinto a Operadores Lgicos AND y OR O NOT Negacion

1.7.- Variables y Tipo de Datos en VB.

-7-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Tipo de datos Integer (Entero) Long (Entero Largo) Single (Simple) Double(Doble) Currency (Moneda) String (Cadena de caracteres) Byte Boolean (Boleano) Date(Fecha) Object(Objecto) Variant Tamao 2 bytes 4 bytes 4 bytes 8 bytes 8 bytes 1 byte por carcter 1 byte 2 bytes 8 bytes 4 bytes 16 bytes + 1 byte por cada carcter Caracter % & ! # @ $

Tipos de Variables : Privada .- La variable solo sera utilizada e el modulo donde se esta declarando Private nombrevariable As TipodeDato dim nombrevariable As TipodeDato Publica o Global .- La variable se podra utilizar en todo el proyecto por que sera publica. Public nombrevariable As tipodedato Global nombrevariable As tipodedato Para que la variable sea reconocida en todo el proyecto se deber declarar en un modulo. NOTA: Si queremos declarar un variable publica para el formulario debemos declarar esa variable en la seccion de GENERAL-DECLARACIONES

1.8.- Manejo de Formularios Normalmente la interfaz de una aplicacin esta compuesta por varios formularios. Cuando Visual Basic inicia la aplicacin automticamente se muestra el formulario de arranque, mientra que los otros formularios deben ser mostrados y ocultados a travs de cdigo. El mtodo o funcin usado depende de lo que deseamos hacer. Eventos de Formularios: Activate: se produce cuando un Formulario se activa. Desactivate: se produce cuando un Formulario se desactiva.

-8-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Los eventos Activate y Desactivate slo se producen cuando el foco pasa de uno a otro Formulario dentro de la aplicacin. Si el foco se pasa a las ventanas de otras aplicaciones los eventos no se producen. Se utilizan los mtodos Show y SetFocus. El evento Activate ocurre antes que el evento GotFocus y el evento LostFocus ocurre antes que el evento Desactivate. Initialize: es el primer evento que se produce en un Formulario. Se utiliza para inicializar datos empleados por el Formulario. Ejemplo: Form1.Caption = "Ejemplo" Terminate: es el ltimo evento que se produce en un Formulario. Se produce cuando todas las referencias a una instancia de un Formulario, se quitan de la memoria estableciendo a Nothing todas las variables que hacen referencia al objeto. Resize: ocurre cuando cambia el estado de una ventana (por ejemplo, cuando se maximiza, minimiza o restaura un Formulario). Ejemplo: cambiar automticamente el tamao de un Cuadro de Imagen. Private Sub Form_Resize() Picture1.Move 0, 0, ScaleWidth, ScaleHeight End Sub Load: cuando un Formulario se carga en memoria se produce el evento Load. Este evento suele utilizarse para realizar operaciones de inicializacin como, por ejemplo, inicializar variables, dar valores a las propiedades de determinados controles, cargar elementos en las listas, etc. Unload: se produce cuando un Formulario se descarga en memoria. Este evento dispone de un argumento, denominado Cancel que permite cancelar la descarga del Formulario. Para ello, bastar con asignarle un valor distinto de cero en cualquier instruccin del cdigo. Si no se le asigna ningn valor, se mantendr a cero, permitiendo la descarga del Formulario. Metodos de Formularios: Load: Carga un formulario a la memoria, pero no lo muestra. Ejemplo: Load Form1 donde form1 es el nombre del formulario que se cargara. Show: Muestra un formulario. Si el formulario no est cargado al momento de ejecutar el mtodo Show, Visual Basic lo cargar automticamente. Ejemplo: form1.Show Hide: Oculta un formulario, pero no lo descarga de memoria. Ejemplo: form1.Hide Unload: Descarga un formulario de memoria. Ejemplo : unload Form1 Comentarios.- La descarga de un formulario puede ser necesaria o conveniente en aquellos casos en los que la memoria utilizada se necesite para alguna otra tarea o cuando sea necesario restablecer las propiedades a sus valores originales. Antes de descargar un formulario se ejecuta el evento Unload (Form_Unload). Si establece el argumento Cancelar a True en este evento no se descargar el formulario. Sugerencia Use la palabra Me para referirse al formulario actual. Ejemplo: Unload Me

-9-

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Formularios Modales y No Modales Un formulario que se abre como Modal, no permite que el usuario interacte con otros formularios de la misma aplicacin hasta que no sea cerrado. Un formulario que se abre como No Modal, permite al usuario cambiar a otros formularios de la misma aplicacin sin que los primeros sean cerrados. El argumento Estilo del mtodo Show determina si el formulario se abre como Modal o No Modal. Ejemplo Cargar el formulario frmEntrada como Modal frmEntrada.Show vbModal Ejemplo Carga el formulario frmEntrada como No Modal frmEntrada.Show vbModeless o en todo caso simplemente se pone frmentrada.show Finalizando su Aplicacin Se puede finalizar la ejecucin de la aplicacin descargando el ltimo formulario de la aplicacin o usando la sentencia End. La sentencia End termina la ejecucin de la aplicacin y descarga todos los formularios. Cuando finaliza su aplicacin con la sentencia End no se desencadena ningn evento. Formularios MDI.- Estos formularios tienen como finalidad servir de contenedor a otros.formularios. Para agregar un formulario MDI debemos ir al Explorador de proyectos - Clic DerechoAgregar-Formulario MDI

Si queremos tener mas formularios y queremos que estos sean contenidos por el MDI debemos poner la propiedad MDICHILD a TRUE por defecto esta en FALSE, y de esa forma esos formularios seran contenidos por el MDI.

- 10 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

SEMANA 2: Instrucciones Condicionales,Controles optionButton,Checkbox, Evento keypress y Change Instrucciones de Control


Condicionales 2.1.- IF.(Si) Sintaxis: If condicion then (programacion) else (programacion) end if Esta sentencia puede tener 2 o mas condiciones solo se debera poner los operadores logicos (and,or) Ejemplo: Se tiene un numero si este es mayor que 300 y menor 500 se debera incrementar en un 10% de lo contrario se debera disminuir en un 20% Dim num as integer Num = 450 If Num >300 and Num < 500 then Num = num + (num * 0.10) Else Num = num - (num * 0.20) End if

2.2.- IIF.(Doble si) Sintaxis: Var = IIf(condicion,verdad,falso) Cuando se utiliza el IIF el resultado de este se debe guardar en una variable de lo contrario saldr error. Ejemplo: Utilizaremos el mismo ejemplo del If y la solucin sera la siguiente. Dim Num = 450 Num = iif(num >300 and num < 500, num + (num *0.10), num (num * 0.20)) Condicion Verdad Falso Esta sentencia se lee asi: en la variable num se va a guardar dependiendo de la condicion si la cumple se guardara num incrementado en un 10% si no se guardara num disminuido en un 20% 2.3.- SELECT CASE (En caso) Select case(var) Case valor1: (programacion) Case valor3: (programacion) Case valor...N: (programacion) Case else: (programacion)

- 11 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I End select Ejemplo : Ingrese un numero y segn cumpla una de las condiciones en otra variable se deber almacenar un mensaje. Si el numero es 0 el mensaje sera Neutro Si es 2,4,6,8 el mensaje sera Par menor a 10 Si el numero es mayor que 9 y menor que 100 el mensaje sera entre 10 y 99 Si es mayor a 499 y menor a 901 o es el numero 998 el mensaje sera Menor a mil Si no cumple ninguna de las condiciones saldra el mensaje No cumple condicion Dim num as integer Dim mensaje as string Num =4 Select Case(Num) Case 0: Mensaje =Neutro Case 2,4,6,8: Mensaje =Par menor a 10 Case 10 to 99: Mensaje =entre 10 y 99 Case 998,500 to 900: Mensaje =menor a mil Case else: Mensaje =no cumple la condicin End Select

Otro Ejemplo: Promedio=(nota1+nota2+nota3)/3 Select case promedio Case 1 to 6 : obs=deficiente Case 7 to 10 : obs=Desaprobado Case 11 to 14 : obs=Aprobado Case 15 to 20 : obs=Bueno Case else Msgbox datos mal ingresado End select

2.4.- SWITCH. Sintaxis: Var = switch(condicion1,valor1,codnicion2,valor2,condicion..n,valor..n) El switch es parecido al iif con la diferencia que se puede poner varias condiciones con un solo switch. Ejemplo: En una variable almacene el numero de dia y guarde en otra variable el nombre del dia por ejemplo 1 serialunes, 2 seria martes ,etc. Dim dia as integer Dim nombre as string Dia=7 Nombre = Switch(dia=1,Lunes,dia=2,Martes,dia=3,Mircoles,dia=4,Jueves,..) 2.5.- Sentencia Print La sentencia Print escribe un valor en el formulario exactamente en el lado izquiero superior Ejemplo: Private Sub cmdcalcula_Click() Print "Hola" End Sub - 12 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I El resultado seria:

2.6 Controles
CHECKBOX(Casillas de verificacin).- Nos dn la oportunidad de poder elegir entre distintas opciones. Las casillas de verificacin (CheckBox), permiten establecer opciones que no son excluyentes entre s, es decir, puedes seleccionar una o ms de una. Una casilla de verificacin puede estar activada (cheked o 1), o desactivada (unchecked o 0) o no disponilble(Grayed o 2). La propiedad que tiene estos valores es Value. El evento ms utilizado en este tipo de objetos es el momento en el que se pulsa en la casilla. En esta situacin el usuario quiere indicar que desea activar o desactivar la casilla, dependiendo del valor que tenga en ese momento. Ejemplo:Se ingresara un monto de ah se podra sacar el 18,20,22% al monto, al final el monto final sera la suma de los % mas el monto. Private Sub CmdCalcular_Click() Dim monto% monto = Val(txtmonto) If chk18.Value = Checked Then txt18 = monto * 0.18 Else txt18 = 0 End If If chk20.Value = Checked Then txt20 = monto * 0.2 Else txt20 = 0 End If 'Puede ser checked o 1 If chk22.Value = 1 Then txt22 = monto * 0.22 Else txt22 = 0 End If

- 13 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I txtfinal = Val(txt18) + Val(txt20) + Val(txt22) End Sub

OPTIONBUTTON(botones de opcin) Los botones de opcin (OptionButton), tambin permiten presentar opciones al usuario, pero con la particularidad que slo puedes seleccionar una de las opciones al mismo tiempo. Si quieres que en un mismo formulario se pueda seleccionar ms de un botn de opcin, tienes que crear distintos conjuntos de botones de opcin. El botn de opcin slo puede tener dos valores en la propiedad Value (True y False), true si est activado y false si est desactivado. Ejemplo:Seleccione una categora y al hacer clic muestre que categora se ha seleccionado

Private Sub CmdVer_Click() If Option1.Value = True Then Txtcat = "A" Else If Option2.Value = True Then Txtcat = "B" Else Txtcat = "C" End If End If End Sub

2.7..- Eventos

Keypress Este evento sucede cuando se presiona alguna tecla del teclado.Automticamente VB da un valor a una variable llamada KEYASCII que sera el codigo ascii de la tecla presionada. Ejemplo: Validar que en la caja de texto TXTCOD se ingrese solo numeros y al preionar enter que tome enfoque TXTNOM Private Sub Txtcod_KeyPress(KeyAscii As Integer) Select Case KeyAscii 'Si la variable keyascii es 13 quiere decir que se presiono el ENTER

- 14 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Case 13: txtnom.SetFocus 'Si va del 48 al 57 quiere decir que se digito un numero Case 48 To 57: Print "Ingreso un Numero" 'Si no cumple la condicion al keyascii se le da 0 esto quiere decir que el valor que se haiga presionado no aparecera en la caja de texto Case Else: KeyAscii = 0 End Select End Sub NOTA: si se quiere programar con el Keypress del Formulario la propiedad KEYPREVIEW debe estar en TRUE. Change Este evento sucede cuando cambia la estructura de las cajas de texto(TextBox) Es decir conforme vayamos cambiando el contenido del texto se ejecutara el vento CHANGE Ejemplo: Private Sub TxtNum_Change() Print TxtNum End Sub

Propiedades en tiempo de ejecucin

Cada vez que se escriba algo en text1 se vera en LBMEN


Private Sub Text1_Change() LBMEN.Caption = Text1.Text

- 15 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I
End Sub

Private Sub Check1_Click() If Check1.Value = 1 Then LBMEN.FontItalic = True Else LBMEN.FontItalic = False End If

Private Sub CmdIzq_Click() LBMEN.Left = LBMEN.Left - 30 End Sub Private Sub Cmddre_click() LBMEN.Left = LBMEN.Left + 30 End Sub Private Sub Cmdsube_Click() LBMEN.Top = LBMEN.Top + 20 end Sub Private Sub Cmdbajar_Click() LBMEN.Top = LBMEN.Top - 20 End Sub Private Sub Optmen_Click() LBMEN.FontSize = 8 End Sub Private Sub Optmed_Click() LBMEN.FontSize = 24 End Sub

End Sub
Private Sub Check2_Click() If Check2.Value = 1 Then LBMEN.FontBold = True Else LBMEN.FontBold = False End If End Sub Private Sub CmdRojo_Click() Form1.BackColor = RGB(0, 0, 255) End Sub Private Sub CmdAma_Click() Form1.BackColor = RGB(255, 255, 0) End Sub

10.-Funciones de conversin de datos


Funcin CBool CByte CCur CDate CDbl CInt CLng CSng CStr CVar Descripcin Convierte una expresin al tipo Boolean Convierte una expresin al tipo Bute Convierte una expresin al tipo Currency Convierte una expresin al tipo Date Convierte una expresin al tipo Double Convierte una expresin al tipo Integer Convierte una expresin al tipo Long Convierte una expresin al tipo Single Convierte una expresin al tipo String Convierte una expresin al tipo Variant

Ejemplos: Num = CDbl(123.45) el valor de Num seria 123.45 Num = CInt(123.45) el valor de Num seria 123

- 16 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Fec = CDate(01/01/1980) el valor de fec seria 01/01/1980 como fecha Cad = CStr(123) el valor de Cad seria 123 como cadena IsArray Devuelve TRUE si el parmetro pasado es un nombre de matriz IsDate Devuelve TRUE si el parmetro es el nombre de un dato tipo Date IsEmpty Devuelve TRUE si el par. es el nombre de una var. no inicializada IsNull Devuelve TRUE si el par. es el nombre de una var. que contiene Null IsNumeric Devuelve TRUE si el parmetro es el nombre de dato de tipo numrico Str Devuelve la representacin de un nmero en forma de cadena TypeName Devuelve en forma de nombre el tipo de variable del parmetro pasado Val Devuelve el nmero representado por una cadena de caracteres ValType Devuelve en forma de nmero el tipo de variable del parmetro Pasado Ejemplos: F = IsDate(cas) El valor de F sera falso. F = IsNumeric(1234) el valor de F sera True Format.- Da formato a una expresion Ejemplo: MiHora = #17:04:23# MiFecha = #27 enero 1993# ' Devuelve la hora actual del sistema en el formato largo de hora definido por el sistema. MiCadena = Format(Time, "Long Time") ' Devuelve la fecha actual del sistema en el formato largo de fecha definido por el sistema. MiCadena = Format(Date, "Long Date") MiCadena = Format(MiHora, "h:m:s") ' Devuelve "17:4:23". MiCadena = Format(MiHora, "hh:mm:ss AMPM") ' Devuelve "05:04:23 PM". MiCadena = Format(MiFecha, "dddd, d mmm yyyy")' Devuelve "Mircoles, ' 27 de Ene de 1993". ' Si no se suministra el formato, devuelve una cadena. MiCadena = Format(23) ' Devuelve "23". ' Formatos definidos por el usuario. MiCadena = Format(5459.4, "##,##0.00") ' Devuelve "5.459,40". MiCadena = Format(334.9, "###0.00") ' Devuelve "334,90". MiCadena = Format(5, "0.00%") ' Devuelve "500,00%". MiCadena = Format("HOLA", "<") ' Devuelve "hola". MiCadena = Format("Esto es", ">") ' Devuelve "ESTO ES".

- 17 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I 11.- CUADROS DE DIALOGO MsgBox .- Muestra un mensaje MsgBox(mensaje,botones,titulo) Los valores que pueden tomar el parmetro botones son: Constante vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbAplicationModal vbSystemModal Valor Descipcin 0 Muestra slo el botn aceptar 1 Botones aceptar y cancelar 2 Botones anular, reintentar e ignorar 3 Botones si, no y cancelar 4 Botones si y no 5 Botones reintentar y cancelar 16 Muestra el icono de mensaje crtico 32 Icono de interrogacin 48 Icono de exclamacin 64 Icono de mensaje de informacin 0 Cuadro de dilogo modal de la aplicacin 4096 Cuadro de dilogo modal del sistema

El parmetro botones es de valor numrico, y adems de los botones que aparecen en le cuadro de dilogo, tambin puede indicar el icono que acompae al mensaje y el tipo de dilogo modal que es. Ejemplo: Msgbox Ingrese un precio valido,16,Mensaje o tambien puede ser: Msgbox Ingrese un precio valido,vbCritical,Mensaje

MsgBox "Desea Grabar...?", vbYesNo + vbQuestion, "Mensaje"

En caso de que se muestre un msgbox donde se debe responder al msgbox se debera poner lo siguiente If MsgBox("Ingrese Cantidad valida", vbCritical, "Mensaje") = vbYes Then En este caso se esta preguntando si respondimos SI al msgbox.
Ejemplo Dim Mensaje, Estilo, Ttulo, Ayuda, Ctxt, Respuesta, MiCadena Mensaje = "Desea continuar?" ' Define el mensaje. Estilo = vbYesNo + vbCritical + vbDefaultButton2 ' Define los botones.

- 18 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I
Ttulo = "Demostracin de MsgBox" ' Define el ttulo. Ayuda = "DEMO.HLP" ' Define el archivo de ayuda. Ctxt = 1000 ' Define el tema ' el contexto ' Muestra el mensaje. Respuesta = MsgBox(Mensaje, Estilo, Ttulo, Ayuda, Ctxt) If Respuesta = vbYes Then ' El usuario eligi el botn S. MiCadena = "S" ' Ejecuta una accin. Else ' El usuario eligi el botn No. MiCadena = "No" ' Ejecuta una accin. End If

InputBox. Se utiliza cuando se necesita que el usuario introduzca alguna informacin. La sntaxis correcta es: InputBox(mensaje,titulo,valorxdefecto) Ejemplo: nom = InputBox("Ingrese nombre", "Artefacto") En este casos e mostrar un mensaje y lo que se ingrese se guardara en la variable nom si se hace clic en Cancelar en nom se guardar NULL

Ejemplo Practico

Disear este formulario donde se ingresara el Codigo del Suministro y los KW consumidos al hacer clic en Calcular se debe hallar el importe inicial, Alumbrado Publico,

- 19 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Mantenimiento, IGV y el Pago Total, al hacer clic en Nuevo se debe limpiar las Cajas de Textos y al hacer clic en Salir se debe salir del programa. NOTA: Para realizar este formulario se va a utilizar los siguientes controles Descripcin Control Nombre Codigo del Suministro Textbox TxtCod Kilowatts consumidos TextBox Txtkilo Importe Inicial Label LblInicial Alumbrado Label Lblalum Mantenimiento Label LblMant Reajuste Label LblReajuste IGV Label Lbligv Total Label LblTotal Calcular Command CmdCalcular Nuevo Command CmdNuevo Salir Command CmdSalir Imagen Image Image1 Formulario Form Form1 Private Sub CMDCALCULAR_Click() If MsgBox("Desea calcular...?", vbYesNo + vbQuestion, "Mensaje") = vbYes Then Dim pago#, importe# importe = Val(txtkilo) * 0.09 lblinicial = Format(importe, "#######0.00") lblalum = Format(importe * 0.035, "#######0.00") lblmant = Format(importe * 0.015, "#######0.00") lblreajuste = Format(importe * 0.048, "#######0.00") lbligv = Format(importe * 0.019, "#######0.00") lbltotal = CDbl(lblinicial) + CDbl(lblalum) + CDbl(lblmant) + CDbl(lblreajuste) + CDbl(lbligv) End If End Sub NOTA: Bueno aqui lo que se puede apreciar es que se estan declarando 2 variables de tipo double pago,importe luego se esta poniendo en los label el resultado de la operacin note que se pone format(importe,#######0.00) para formatear el resultado con 8 enteros y 2 decimales Private Sub CMDNUEVO_Click() Me.txtcod = "" Me.txtkilo = "" Me.lblinicial = "" Me.lblalum = "" Me.lblmant = "" Me.lblreajuste = "" Me.lbligv = "" Me.lbltotal = "" Me.txtcod.SetFocus End Sub

- 20 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Private Sub CMDSALIR_Click() End End Sub Private Sub Form_Load() Me.Caption = "Registar pagos a EdelNor" Image1.Stretch = True Image1.Picture = LoadPicture(App.Path + "\LOGO.JPG") CMDNUEVO.Picture = LoadPicture(App.Path + "\nuevo.bmp") CMDCALCULAR.Picture = LoadPicture(App.Path + "\grabar.bmp") CMDSALIR.Picture = LoadPicture(App.Path + "\salir.bmp") End Sub NOTA: aqui estamos poniendo el titulo al formulario, ademas de poner la imagen al control IMAGE1 la propiedad Stretch es para que la imagen se ajuste al control y la propiedad Picture es para poner una imagen,Cuando se pone una imagen en tiempo de ejecucion se necesita la funcion LoadPicture(aqu va la ruta del archivo de imagen), pero vean que aqu se puso app.path que es una funcion que saca una cadena y esa cadena es la ruta actual donde se encuentra el proyecto por ejemplo si el proyecto de visual basic se encuentra en C:\nueva carpeta la funcion app.path sacara c:\nueva carpeta ahora a esto se suma \logo.jpg si sumamos las 2 cadenas el resultado seria c:\nueva carpeta\logo.jpg Para esto la imagen Logo.jpg debe estar en la misma carpeta donde se encuentra el proyecto OJO.- Para los botones es lo mismo pero ah debemos de poner la propiedad STYLE en Graphical.

Practica N 2
1.- Ingrese por teclado en una caja de texto la hora en formato de 24 horas y en otra caja de texto la cantidad de minutos al hacer clic en un boton debera salir la hora en formato de 12 horas por ejemplo si se ingresa 23 en una caja y en la otra 12 el resultado seria 11:12:PM 2.- Ingrese la cantidad de minutos hablados por una persona y escoja el tipo de llamada (Local, Nacional, Internacional).Se visualizara el importe de la llamada sabiendo que por los 3 primeros minutos se paga S/ 1.00 y por cada minuto adicional se paga 0.50 en caso sea local si es nacional se incrementa el 25% y si es internacional se incrementa el 60% a los precios por minuto. 3.- Ingresar el nombre de un trabajador, la cantidad de hijos y su sueldo, si este tiene hijos se le dar una bonificacin de S./40.00 por hijo y si no tiene hijos se le dara el 25% de su sueldo se deber mostrar la bonificacin y el sueldo final. 4.- Ingrese por teclado dos nmeros y al escoger un signo de operacin se debera mostrar el resultado de la operacin.

- 21 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

5.- Ingrese un numero mximo de 2 cifras si el numero es de una cifra se deber mostrar cuanto falta para convertirse en un numero de 2 cifras, y si es de 2 cifras se deber mostrar cuanto falta para convertirse en un numero de 3 cifras. 6.- Ingrese un numero cualquiera y muestre la cantidad de cifras que tiene segn sea el caso. Ejemplo: 203 = Tiene 3 cifras, 45678 = Tiene 5 cifras tome en cuenta que el numero mximo a ingresar es un millon.. 7.- Ingrese por teclado el nombre, ao de nacimiento y sexo de una persona (M o F),se deber mostrar uno de los siguientes mensajes. - Varon mayor de edad - Varon menor de edad - Dama mayor de edad -Dama menor de edad 8.- Ingrese un numero y visualcelo en romano. 9.- Ingrese por teclado el da de nacimiento y el mes de nacimiento de una persona al hacer clic se deber mostrar su signo zodiacal as como tambin deber aparecer la imagen del signo Zodiacal en un control PictureBox. 10.- Se deber desarrollar un algoritmo en el cual se deber ingresar el nombre de un alumno y se deber escoger el turno en el que estudia (M , T y N) asi como tambien el ciclo (I, II, III, IV, V, VI y SIDET) y la carrera (CI, Enfermeria y Administracin) se debera calcular el pago de su pension en base a los siguientes datos: el precio por carrera es: CI = 320.00 Enfermeria = 280.00 Administracin = 270.00 Ademas que dependiendo del ciclo en el que estan se pagara un recargo del precio de 10,20,30,40,50,60 y 70% (para sidet). Asi como tambien si es del turno M se debera recargar 10% mas solo si esta en I, II, o III ciclo, si es del turno T se recarga el 15 % mas solo si esta en I, o II y por utlimo si es del turno N se se la hara un descuento del 15 % solo si esta en SIDET Al finalizar solo se debe mostrar el monto de la pension. 11.- Realizar el siguiente formulario:

- 22 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

. Se deber ingresar el largo y el ancho del terreno y conforme vayan digitndolo deber salir el total (Largo * ancho) Se deber ingresar el precio por metro y al escoger una categora el precio se incrementara en un 10, 20, y 30 % respectivamente segn la categoria, ademas de salir el precio total que sera el total de area * el precio y si se escogio en tipo de alquiler Contado se le hara un Descuento de 10% al precio total y si es credito se le hara un recargo de 15 %. Finalmente se deber escoger si se pagara alumbrado, parques o serenazgo sacando los % correspondientes al precio total segn indica el fomulario el precio final debera salir al hacer clic en el boton calcular.

12.-Funciones de Cadenas,Numricas y Fechas


Funciones de tratamiento de datos numricos Funcin Abs Atn Cos Exp Fix Hex Descripcin

Devuelve el valor absoluto de un nmero Devuelve el arcotangente de un nmero Devuelve el coseno de un nmero Devuelve el exponencial de un nmero en base e Devuelve la parte entera de un nmero, redondeando los valores al Siguiente valor superior Devuelve una cadena que representa el valor hexadecimal de un

- 23 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I nmero Int Devuelve la parte entera de un nmero Log Devuelve el logaritmo natural de un nmero (en base e) Oct Devuelve una cadena de caracteres que representa el valor octal Rnd Devuelve un nmero aleatorio menor que 1 y mayor o igual que 0 Sgn Devuelve el signo de un nmero (-1 si es negativo, 0 si es nulo y 1 si es positivo) Sin Devuelve el seno de un nmero Sqr Devuelve la raz cuadrada de un nmero Tan Devuelve la tangente de un nmero Val Devuelve el nmero representado por una cadena de caracteres NOTA: La funcion rnd devuelve un numero aleatorio entre 0 y 1 si queremos un numero aleatorio del 1 al 100 lo multiplicamos x 100 osea RND * 100 para sacar la parte entera seria Cint(rnd()*100) Ejemplos: Ingrese un numero y visualize las sgtes expresiones:

Private Sub Command1_Click() Dim N As Double Randomize N = Abs(Text1) Text2 = Abs(N) Text3 = Atn(N) Text4 = Cos(N) Text5 = Exp(N) Text6 = Log(N) Text7 = Int(Rnd() * 100) Text8 = Sgn(N) Text9 = Sin(N) Text10 = Sqr(N)

- 24 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Text11 = Tan(N) End Sub Funciones de tratamiento de cadenas de caracteres Funcin Asc Chr Format InStr Descripcion Devuelve el cdigo ASCII del primer carcter de una cadena Devuelve el carcter asociado al cdigo ASCII de un nmero Formatea una expresin segn una formato pasado como parmetro Devuelve la posicin de la primera ocurrencia de una cadena dentro de otra Instr(dondesebusca,loquesebusca) Devuelve una cadena con sus caracteres convertidos a minsculas Devuelve una cadena con sus caracteres convertidos a maysculas Devuelve un nmero especificado de caracteres desde la izquierda de una cadena Left(cadena,cantidad) Devuelve un nmero especificado de caracteres desde la derecha de una cadena Right(cadena,cantidad) Devuelve el nmero de caracteres de una cadena Devuelve una cadena, eliminando los espacios en blanco a la Izq. Devuelve una cadena, eliminando los espacios en blanco a la derecha Devuelve una cadena, eliminando los espacios en blanco a izquierda y derecha Devuelve la subcadena de tamao y posicin especificada dentro de otra cadena MID(cadena,posicin,cantidad) Devuelve una cadena formada por un nmero especificado de espacios en blanco Compara 2 cadenas Strcomp(cad1,cad2) devuelve: 1 : Si cad1< cad2 0 : Si cad1=cad2 1 : Si cad1>cad2 Ejemplo Sintaxis: Asc(A) Res: 65 Sintaxis: chr(65) Res: A Sintaxis: format(122,###.00) Res: 122.00 Sintaxis: instr(ABCD,C) Res: 3 devuelve la posicin que ocupa C en la cadena ABCD Sintaxis: Lcase(A) Res: a Sintaxis: Ucase(a) Res: A Sintaxis: Left(ABCD,2) Res: AB Sintaxis: Right(ABCD,2) Res: CD Sintaxis: Len(ABCD) Res: 4

Lcase Ucase Left

Right

Len Ltrim Rtrim Trim Mid

Sintaxis: Mid(ABCD,3,2) Res: CD

Space

Sintaxis: Hola & space(2) Res: hola Sintaxis: strcomp(A,A) Res: 0

StrComp

- 25 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Replace Reemplaza una cadena Replace(cad,buscar,reemplazar) Sintaxis: Replace(ABCD,C,X) Res: ABXD Busca la C y la cambia por la X Sintaxis: str(122) Res: 122

Str Ejemplo:

Devuelve la representacin de un nmero en forma de cadena

Private Sub Command1_Click() Text2 = Len(Text1) Text3 = UCase(Text1) Text4 = LCase(Text1) Text5 = Mid(Text1, 3, 9) Text6 = Left(Text1, 5) Text7 = Right(RTrim(Text1), 6) Text8 = Str(Val(Text1)) Text9 = "Arriba" + Space(6) + "Peru" Text10 = "INSTITUTO" + LTrim(Text1) + "IDAT" Text11 = "INSTITUTO" + RTrim(Text1) + "IDAT" Text12 = StrComp(Text1, "INSTITUTO") Text13 = InStr(1, "IDAT", Text1) Text14 = Replace(Text1, "IDAT", "HOLA") End Sub Funciones de tratamiento de fechas y horas Funcin Date Descripcin Devuelve la fecha actual del sistema - 26 Ejemplos Sintaxis: Date Saca la fecha actual

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Day Month Year WeekDay Devuelve un nmero entre 1 y 31 representando el da del mes Devuelve un nmero entre 1 y 12 representando el mes del ao Devuelve un nmero entero representando el ao Devuelve un nmero que representa el da de la semana empieza de 1.-domingo,2.Lunes,etc... Devuelve la fecha y hora actual del sistema Devuelve la hora actual del sistema Devuelve un nmero entre 0 y 23 representando la hora del da Devuelve un nmero entre 0 y 59 representando los minutos de la hora Devuelve un nmero entre 0 y 59 representando los segundos de minuto Devuelve una parte de una fecha especificada (el ao, el da,los minutos, etc) Datepart(Intervalo,Fecha) Para este se pone un intervalo: Valor Descripcin yyyy Ao q Trimestre m Mes y Da del ao d Da w Da de la semana ww Semana h Hora n Minuto s Segundo Esto tambien se aplica para las funciones Dateadd y Dateiff Sintaxis: day(11/01/2004) Res: 11 Sintaxis: Month(11/01/2004) Res: 1 Sintaxis: Year(11/01/2004) Res: 2004 Sintaxis: weekday(11/01/2004) Res: 1

Now Time Hour Minute

Sintaxis: now Saca la fecha y Hora actual Sintaxis: time Saca la hora actual

Second

DatePart

Sintaxis: Datepart(m,date) Saca el mes actual

DateAdd

DateDiff

Devuelve una fecha aadindole Sintaxis:DateAdd(d,3,01/01/2004) un cierto intervalo de tiempo Res: 04/01/2004 especificado DateAdd(intervalo,cantidad,fecha) Devuelve el nmero de intervalos Sintaxis:DateDiff(yyyy,01/01/2000,01/01/2004)

- 27 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I de tiempo entre dos fechas Res: 4 especificadas DateDiff(Intervalo,Fecha1,Fecha2)


Ejemplos: Dim LaFecha As Date ' Declara las variables. Dim Msj LaFecha = InputBox("Escriba una fecha") Msj = "Das desde hoy: " & DateDiff("d", Now, LaFecha) MsgBox Msj Dim LaFecha As Date ' Declara las variables. Dim Msj LaFecha = InputBox("Escriba una fecha:") Msj = "Trimestre: " & DatePart("q", LaFecha) MsgBox Msj

13.- Evento Gotfocus, LostFocus, MouseDown, MouseUp y MouseMove


Gotfocus .- Se produce cuando algun control toma el enfoque Lostfocus.- Se produce cuando algun control pierde el enfoque Ejercicio :Disee un formulario donde se debe de ingresar el nombre, el sueldo y la fecha de Ingreso al hacer clic en un boton se debe visualizar su sueldo final tomando en cuenta que si tienes mas de 20 aos trabajando se le debe hacer una bonificacin de 50% en caso contrario no habra bonificacin. NOTA: debe validar para que cuando tome el enfoque una caja de texto el color de fondo cambie a rojo y cuando se pierda regrese a blanco ademas de que si ingresa minsculas al perder el enfoque el texto debe convertirse a maysculas. Lo importante en este ejercicio no tanto es el resultado si no que sepamos manejar los eventos tanto gotfocus como lostfocus Se dice que al tener el enfoque un texto el color de fondo cambie a rojo entonces debemos programar lo siguiente: Private Sub txtnom_GotFocus() txtnom.BackColor = vbRed End Sub Y de ah dice que al perder el enfoque debe regresar a color blanco ademas de que el texto salga en maysculas Private Sub txtnom_LostFocus() txtnom.BackColor = vbWhite txtnom = UCase(txtnom) End Subdonde Ucase es una funcion de cadena que convertira en mayscula el valor de txtnom y lo guardara ah mismo. Lo mismo se debe hacer para las demas cajas de texto.

- 28 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I MouseDown, MouseUp y MouseMove El evento MouseDown sucede cuando el usuario pulsa cualquiera de los botones del ratn, mientras que el evento MouseUp sucede al soltar un botn que haba sido pulsado. El evento MouseMove sucede al mover el ratn sobre un control o formulario. Los eventos MouseUp y MouseDown tienen algunos argumentos que merecen ser comentados. El argumento Button indica cul de los botones del ratn ha sido pulsado o soltado, y el argumento Shift indica si adems alguna de las teclas alt, shift o ctrl est tambin pulsada. La lista con todos los posibles valores de estos argumentos se muestra
Constante Valor vbLeftButton 1 vbRightButton 2 vbMiddleButton 4 Descripcion Botn izdo pulsado o soltado Botn dcho pulsado o soltado Botn central pulsado o soltado

Ejemplo: Disear un formulario que al hacerle Clic derecho se agrande y al hacerle clic izquierdo suceda lo contrario ademas de cuando se pase el mouse pro un Boton el formulario cambie de color Rojo y Azul.

General - Declaraciones Dim sw As Boolean Private Sub CmdMover_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If sw Then Me.BackColor = vbRed sw = False Else Me.BackColor = vbBlue sw = True End If End Sub Private Sub Form_Load() sw = True End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then - 29 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Me.Width = Me.Width + 100 Me.Height = Me.Height + 100 Else Me.Width = Me.Width - 100 Me.Height = Me.Height - 100 End If End Sub

14.-Instrucciones Repetitivas, Sentencia Exit.


1.- FOR.(Para Hasta) Sintaxis: For var=valorinicial to valorfinal step(incremento) (programacion) Next var El For es una sentencia repetitiva donde var es la variable de control que dara las vueltas. Ejemplos: Visualize en el formulario los numeros pares del 100 al 2(100,98,96..) For i=100 to 2 step 2 Print i Next I Visualize en el formulario los numeros impares del 1 al 99(1,3,4..) For i=1 to 99 step 2 Print I Next Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellos Dim suma as integer,i as integer Suma=0 Ejemplo: For I=10 to 99 Sumar= 3+5+7+...+81 Print I Sm=0 Suma=Suma + i For N=3 to 81 Step 3 Next Sm=Sm+n Print La suma es & suma Next el & concatena 2.- DO WHILE.LOOP.(Hacer mientras) , DO. LOOP UNTIL(Hacer Hasta) Sintaxis: Do while condicion Do (programacion) (programacion) Loop Loop Until Condicion Ejemplos:

- 30 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Genere y visualize numeros del 10 al 90 y al final muestre la suma de ellos Do while Do Loop until Dim i as integer,suma as integer Dim i as integer,suma as integer Suma=0 Suma=0 i=10 i=10 Do while i <= 90 Do Print I Print I Suma= Suma + i Suma= Suma + I i= i +1 i= i +1 Loop Loop Until i > 90 Print La suma es & suma Print La suma es & suma 3.- WHILE..WEND(Hacer Cuando) Sintaxis: While condicion (progamacion) wend Dim i as integer,suma as integer Suma=0 i=10 while i <= 90 Print I Suma= Suma + i i= i +1 wend Print La suma es & suma Con la sentencia while wend, no se podra utilizar la setencia EXIT 4.- FOR EACH Repite un grupo de instrucciones para cada elemento de una matriz o coleccin. Sintaxis: FOR EACH elemento IN grupo (Instrucciones) NEXT Ejemplo: Poner a las cajas de texto color de fondo rojo Private Sub CmdCambiar_Click() 'Se declara una varibale de tipo Object Dim obj As Object 'Por cada objeto que se encuentre en el formulario actual 'Este for dara vueltas segun la cantidad de objetos que hay en le formulario For Each obj In Me.Controls - 31 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I 'Pregunta si el objeto es un Textbox si lo es cambia de color de fondo If TypeOf obj Is TextBox Then obj.BackColor = vbRed End If Next End Sub Sentencia EXIT La sentencia EXIT permitira salir de un bucle,funcion,procedimiento,etc.Dependiendo de donde se quiere salir se aplicar la sentencia: Exit For .- Sale de un for Exit Do.- Sale de un Do Exit Sub.- Sale de un procedimiento Exit Function.- Sale de una funcion , etc. Ejemplo 1: queremos hacer un programa el cual muestre el primer numero primo que hay entre 10 y 90 Dim num As Integer, cd As Integer, i As Integer 'El primer for ira del 10 al 90 For num = 10 To 90 'Se inicializa la variable cd que contara los divisores de num cd = 0 'Este for es para dividir consecutivamente num/1,num/2,num/3 asi sucesivamente 'para ver cuales son sus divisores For i = 1 To num 'Si el residuo es 0 es divisible y el contador se incrementa If num Mod i = 0 Then cd = cd + 1 End If Next 'Si la cantidad de divisores es 2 quiere decir que es primo If cd = 2 Then Print "El primer primo es " & num 'Como ya encontro el primer primo rompe el for de num Exit For End If Next Ejemplo: Desarrollar un algoritmo que permita mostrar los numeros Amstrong que hay del 1 al 1000 se dice que son numeros amstrong cuando la suma del cubo de sus cifras es igual al mismo numeros. Ejemplo :153 = 1^3 + 5^3 + 3^3 serian iguales

- 32 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Private Sub Form_Load() Dim Num%, NumAux%, Suma%, R% For Num = 1 To 1000 NumAux = Num Suma = 0 Do While NumAux > 0 R = NumAux Mod 10 Suma = Suma + (R ^ 3) NumAux = NumAux \ 10 Loop If Suma = Num Then Lblcant = Val(Lblcant) + 1 lblnumeros = lblnumeros & Num & "," End If Next End Sub

Aplicacin con Procesos repetitivos.Private Sub CmdBin_Click() Dim cad$ Dim n% n = Val(Text1) cad = "" Do While n <> 0 r = n Mod 2 n=n\2 cad = cad + Str(r) Loop LBR1 = StrReverse(cad) End Sub

Private Sub Cmdhexa_Click() Dim cad$ Dim n% - 33 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I n = Val(Text1) cad = "" Do While n <> 0 Hacer mientras n sea diferente a cero r = n Mod 16 n = n \ 16 If r > 9 Then cad = cad + Chr(55 + r) Else cad = cad + Str(r) End If Loop Lbr2 = StrReverse(cad) End Sub

Practica N 3
1.- Ingrese un numero y Genere las siguientes series: (el resultado se mostrara en un label o en un text) 1,3,5,7,..... -1,+3,-5,+7... 1,3,2,5,3,7,4,9,5,11.... 0,1,1,2,3,5,8,13...(Serie Fibonacci) 2.- Genere 100 numeros aleatorios y diga cuantos primos mayores a 50 hay,perfectos menores a 10 hay, pares e impares. 3.- Genere 100 numeros aleatorios y al finalizar diga cual es el mayor y el menor. 4.- Ingrese un numero de cualquier cifra y mostrarlo en forma invertida 5.- Ingrese un numero y convirtalo en base 2 6.- Ingrese una cadena y muestre lo siguiente La cadena en forma invertida Diga cuantas vocales tiene Diga cuantos espacios en blancos hay 7.- Ingrese Una cadena y muestre lo siguientes: (Utilice Print) Ejemplo: cadena:HOLA

- 34 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I H O L A H HO HOL HOLA HOLA HOL HO H

8.- Ingrese una cadena y convirtalo en mayscula y en minusculas funciones ucase y lcase.

sin utilizar las

9.- Genere 10 numeros aleatorios y si el numero es par se debera incrementar el numero con la suma de su raiz cuadrada,si el numero es impar se debera incrementar el numero con la suma del seno del numero. AL finalizar se debe mostrar la suma de todos los numeros. 10.- Ingrese Una fecha y diga cuantos dias faltan para acabar el ao, cuantos dias han pasado desde esa fecha hasta la fecha actual, que dia cae esa fecha (Lunes,martes), y muestre la misma fecha en el siguiente formato: Lunes 15 de Abril de 2003 (Por ejemplo) 11.- Ingrese en una caja de texto una cadena y al finalizar diga cuantas palabras tiene dicha cadena y cual es la cantidad de caracteres que tiene la palabra con mayor longitud 12.- Ingrese un usuario y un password y si se equivoca tres veces debe salir de la aplicacin 13.- Realice el siguiente formulario: En este formulario se debera escoger un color y un objeto(checks,text,options) y al hacer clic en fondo o en letra debera cambiar al color que se ecogio ya sea el fondo(backcolor o la letra(forecolor) Luego al hacer clic en cursiva( font.italic) o en negrita (font.bold) o subrayado (font.underline) se debera cambiar la apariencia de los controles que se escogio (Checks, text ,Options)

- 35 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I 14.- Realice el siguiente formulario:

Cuando se haga clic en Mostrar Resultado se debe mostrar la edad del trabajador, el tiempo de servicio y el codigo que se generara de la siguiente manera: el ao de ingreso luego la letra M o F segn su sexo , los 2 primeros caracteres de su apellido paterno, los 2 primeros caracteres de su apellido materno, el primer carcter de su nombre y un correlativo Ademas al ingresar sus nombres al perder el enfoque se debera cambiar el texto por maysculas y al entrar al enfoque de algun texto el color de fondo debera cambiar y al salir del enfoque debera regresar al color original que tuvo. Ejercicios Practicos: 1.- Ingrese un precio y una cantidad y al hacer clic en calcular mostrar el monto (cantidad * precio)

Private Sub cmdcalcular_Click() Dim monto# If Not IsNumeric(txtprecio) Then Aqui se pregunta si txtprecio no es un numero MsgBox "Ingrese Precio", vbCritical, "Mensaje"

- 36 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I txtprecio.SetFocus Exit Sub Sale del programa End If If Not IsNumeric(txtcanti) Then MsgBox "Ingrese Cantidad valida", vbCritical, "Mensaje" txtcanti.SetFocus Exit Sub End If If MsgBox("Desea calcular...?", vbYesNo + vbQuestion, "Confirmar") = vbYes Then monto = CDbl(txtprecio) * CDbl(txtcanti) Cdbl para convertir a doble lblmonto = Format(monto, "########.00") El monto a 8 enteros y 2 decimales End If End Sub Private Sub cmdnuevo_Click() txtprecio = "" txtcanti = "" lblmonto = "" txtprecio.SetFocus End Sub Private Sub cmdsalir_Click() End End Sub Private Sub Form_Activate() Me.Caption = Format(Date, "Long date") Se pone el caption la fecha en formato largo DATE es una funcion que devuelve la fecha actual. End Sub 2.- Disee un formulario donde tendra una caja de texto la cual aceptara letras y conforme se va escribiendo en el texto su contenido se mostrara en el caption del formulario Ademas se debe cambiar algunas de sus propiedades mediante checkbox

- 37 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Private Sub chkcur_Click() txtcad.Font.Italic = Not txtcad.Font.Italic quizas algunos lo habrian hecho asi: if chkur.value=1 then txtcad.Font.Italic = true else txtcad.Font.Italic = false endif pero ustedes decidan cual es mas practico???????? End Sub Private Sub chkena_Click() txtcad.Enabled = Not txtcad.Enabled End Sub Private Sub chkneg_Click() txtcad.Font.Bold = Not txtcad.Font.Bold End Sub Private Sub chksub_Click() txtcad.Font.Underline = Not txtcad.Font.Underline End Sub Private Sub chkvis_Click() txtcad.Visible = Not txtcad.Visible End Sub Private Sub CmdAlinea_Click() Dim num% la funcion chr transforma un codigo ascii a carcter en este caso esta transformando 13 que es el ENTER. num = Val(InputBox(Chr(13) & "0.-Izquierda" & Chr(13) & "1.-Derecha" & Chr(13) & "2.-Centro", "Ingrese Alineacion")) If num > 3 Or num < 0 Then MsgBox "Solo se admite valores entre 0 y 2", vbExclamation, "Mensaje" Else txtcad.Alignment = num End If End Sub Private Sub txtcad_Change() Me.Caption = txtcad.Text End Sub Private Sub txtcad_KeyPress(KeyAscii As Integer) Select Case Chr(KeyAscii) Case "A" To "Z", "a" To "z": Case Else: KeyAscii = 0 MsgBox "Solo letras", vbCritical, "Mensaje" End Select End Sub - 38 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

15.- Barras de desplazamiento (Scroll Bars)


En este tipo de control las propiedades ms importantes son Max y Min, que determinan el rango en el que est incluido su valor, LargeChange y SmallChange que determinan lo que se modifica su valor al clicar en la barra o en el botn con la flecha respectivamente y Value que determina el valor actual de la barra de desplazamiento. Las barras de desplazamiento no tienen propiedad Caption. El evento que se programa habitualmente es Change, que se activa cuando la barra de desplazamiento modifica su valor. Todo lo comentado en este apartado es comn para las barras de desplazamiento verticales y horizontales. Adems de las Scroll Bars horizontal y vertical, Visual Basic 6.0 dispone tambin del control Slider, utilizado en los paneles de control de Windows, que tiene una funcin similar.

16.- Funcin RGB


Esta funcin devuelve un nmero que representa un color a partir de tres argumentos enteros entre 0 y 255, que son sus componentes RGB. Como ejemplo de uso: form1.BackColor = RGB(127, 127, 64) Si alguno de los argumentos tiene un valor mayor que 255, se toma como 255. Ejemplo:

Sub Pintar Text4.BackColor = RGB(Val(Text1), Val(Text2), Val(Text3)) End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then VScroll1.Value = Val(Text1) End If End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then VScroll2.Value = Val(Text2) End If End Sub Private Sub Text3_KeyPress(KeyAscii As Integer)

- 39 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I If KeyAscii = 13 Then VScroll3.Value = Val(Text3) End If End Sub Private Sub VScroll1_Change() Text1 = VScroll1.Value Call Pintar End Sub Private Sub VScroll2_Change() Text2 = VScroll2.Value Call Pintar End Sub Private Sub VScroll3_Change() Text3 = VScroll3.Value Call Pintar End Sub

17.- Control Timer


Si se desea que una accin suceda con cierta periodicidad se puede utilizar un control Timer. Este control produce de modo automtico un evento cada cierto nmero de milisegundos. La propiedad ms importante de un objeto de este tipo es Interval, que determina, precisamente, el intervalo en milisegundos entre eventos consecutivos. La accin que se desea activar debe programarse en el evento Timer de ese mismo control. Si en algn momento se desea anular momentneamente la accin peridica es suficiente con hacer False la propiedad Enabled del control Timer y para ejecutarla de nuevo volver a hacer True esa propiedad. Haciendo 0 la propiedad Interval tambin se consigue inhabilitar el Timer. Ejemplo: Disear un formulario que tenga una imagen de un Avion que se desplaze por el formulario ademas debe salir un texto en el caption del formulario que de la impresin que fuera una marquesina.

Lo primero que se debe hacer es jalar 2 timer y poner en la propiedad Interval 100 para que lo que se programe en el timer se ejecuta cada 100 milisegundos - 40 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Dim cad$ Private Sub Form_Load() cad = "Programa hecho por Fulano Me.Caption = cad End Sub

"

Private Sub Timer1_Timer() Me.Caption = Mid(Me.Caption, 2, Len(Me.Caption) - 1) & Left(Me.Caption, 1) End Sub Private Sub Timer2_Timer() ImgAvion.Left = ImgAvion.Left + 100 If ImgAvion.Left > Me.ScaleWidth Then ImgAvion.Left = 0 End If End Sub

18.- CONTROLES GRFICOS


Control line Es el control grfico ms elemental, ya que carece de propiedades como text, caption y value.Adems no reconoce ningn evento, por lo que su misin es casi exclusivamente decorativa. El control line permite dibujar lneas en un formulario o en un control picture. Las propiedades ms importantes son las coordenadas de los puntos extremos (X1, Y1, X2 e Y2donde x es columna e y es fila), la anchura en pixels (BorderWidth), el estilo de la lnea (BorderStyle) -continua, a trazos, etc.- que slo est activo cuando la anchura es 1 pixel, el color (BorderColor) y el nombre (Name). La lnea puede estar visible o no (Visible), y existe la propiedad Index, que permite crear arrays de lneas.

Control shape Este control es en muchos aspectos similar al control line: tampoco tiene las propiedades text, caption y value, ni reconoce eventos. Se diferencia en que admite formas geomtricas ms complejas, que vienen definidas por la propiedad shape, que admite los valores siguientes: cuadrado (Square), rectngulo (Rectangle), crculo (Circle), elipse (Oval), cuadrado redondeado (Rounded Square) y rectngulo redondeado (Rounded Rectangle). Adems de las propiedades correspondientes al tamao y posicin, las propiedades ms interesantes del control shape son las siguientes: BackColor, BackStyle, BorderColor, BorderStyle, BorderWidth, FillColor, FillStyle, DrawMode. Un control shape puede estar visible o no (Visible), Control image - 41 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I El control image es un contenedor de grficos bitmap, iconos, metafile, enhanced metafile, GIF y JPEG. Este control admite ya una amplia coleccin de eventos, por lo que es ya un control con un papel mucho ms activo que los anteriores. Las propiedades ms propias e importantes de este control son las propiedades picture y stretch. La propiedad picture sirve para relacionar este control con el fichero que contiene el grfico que se desea representar, a travs del cuadro de dilogo Load Picture que permite elegir el fichero a insertar. El fichero deber ser de uno de los tres tipos admitidos. Segn el fichero elegido, la propiedad picture tendr uno de los tres valores siguientes: icon (ficheros cur, ico), bitmap (bmp, gif, jpg) o metafile (wmf, emf). La propiedad stretch indica cmo se comporta el control image al introducir en l el contenido del fichero grfico. Por defecto, cuando se crea un control image arrastrando en el formulario con el ratn esta propiedad tiene el valor false. Estando la propiedad stretch en false el tamao del control se ajusta al tamao del bitmap o del metafile que se introduce en dicho control. Por el contrario, si dicha propiedad est en true el grfico que proviene del fichero se adapta al tamao de control. Se puede tratar de modificar el tamao del grfico en modo de diseo (con el ratn o cambiando las propiedades de tamao del control). Si el grfico es un bitmap y la propiedad stretch est en false el tamao de la imagen no cambia aunque cambie el del control (quedando en la esquina superior izquierda si el control se hace ms grande, o quedando parcialmente oculta si alguna de las dimensiones del control se hace ms pequea que la del bitmap. Si la propiedad stretch est en true el bitmap se adapta al tamao del control y su tamao se cambia con el de ste. Los grficos metafile siempre se pueden cambiar de tamao en modo de diseo, tanto si stretch est en true como si est en false. Existen otras formas de cargar un grfico en un control image, adems de utilizar la propiedad picture en modo de diseo, como se ha visto anteriormente. Una segunda forma, utilizable tambin en modo de diseo, es hacer Copy y Paste a partir de un grfico contenido en otra aplicacin como Paint Shop Pro o Excel. En modo de ejecucin se puede copiar el contenido de un control image en otro control del mismo tipo por medio de una sentencia de asignacin en la forma: imgCuadro.picture = imgCaja.picture y se puede tambin cargar una imagen de un fichero utilizando el procedimiento LoadPicture, por ejemplo en la forma siguiente (habr que estar seguro de que existe el fichero): imgCuadro.picture = LoadPicture("G:\graficos\pc.wmf") Aunque el control image admite algunos eventos (Click, DblClick, DragDrop, DragOver, MouseUp, MouseDown, MouseMove), sus posibilidades son tambin limitadas. Por la forma en que se dibuja, el control image no puede estar sobre otro control, como por ejemplo un botn Tampoco puede contener otros controles en su interior: slo puede contener grficos. Finalmente, este control no puede obtener el focus y por tanto no puede responder a acciones desde el teclado. El control picture, que se ver a continuacin, resuelve estas limitaciones aunque presenta la desventaja de ser ms lento en dibujar que el control image.

- 42 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Control Picture Box Este es el control grfico ( ) ms potente y general de Visual Basic 6.0. Se trata de una especie de formulario reducido, pues puede contener imgenes y otros tipos de controles tales como botones, shapes, labels, cajas de texto, etc. Con respecto a los bitmaps, el control picture se comporta de modo diferente que el control image. El control picture no tiene propiedad stretch, con lo cual al cargar un icono o un bitmap siempre aparecen con su tamao natural Sin embargo el control picture tiene la propiedad AutoSize, que por defecto est en false. Cuando se carga un bitmap con AutoSize en false el grfico aparece en la esquina superior izquierda del control; sin embargo, si AutoSize est en true el control picture adapta su tamao al del bitmap que es cargado. (Stretch: false y true) y en un control picture (AutoSize: false y true). Los grficos metafile se comportan de un modo diferente, En el control image se cargan con su verdadero tamao si la propiedad stretch es false, mientras que se adaptan al tamao del control si dicha propiedad es true. Con el control picture se adaptan al tamao del control si AutoSize es false, mientras que se cargan con su propio tamao si es AutoSize es true. En el control picture (al igual que en los formularios) son importantes las cuatro propiedades relacionadas con el color: BackColor, ForeColor, FillColor y FillStyle. La propiedad BackColor controla el color de fondo del control. La propiedad ForeColor controla el color del texto que se escribe en el control Las propiedades FillColor y FillStyle no afectan directamente al control sino a los elementos grficos que se dibujen sobre l con mtodos tales como line y circle, que se vern a continuacin. FillStyle determina el tipo de relleno o pattern (lneas horizontales, verticales, inclinadas, cruzadas, ...), mientras que FillColor determina el color de estas lneas del relleno.

- 43 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

19.- METODOS GRFICOS.Dibujo de puntos: Mtodo Pset El mtodo pset sirve para dibujar puntos en un formulario o en un control picture. Su forma general es la siguiente: object.PSet (x, y), color donde: object es opcional y representa el objeto (form o picture) en el que se va a dibujar el punto. Si se omite, el punto se dibuja en el formulario activo (el que tiene el focus).Si se introduce las coordenadas que le siguen son relativas respecto a las propiedades CurrentX y CurrentY. Al dibujar un punto, estas propiedades se actualizan a las coordenadas de dicho punto.(x, y) son las coordenadas absolutas o relativas del punto a dibujar (expresiones, variables o constantes single). Tanto las coordenadas como los parntesis son obligatorios. Las unidades dependen de la propiedad ScaleMode del objeto en que se dibuja.Color es opcional y es un nombre de color (vbRed, vbBlue, etc.) o un long conteniendo el cdigo de color hexadecimal (puede ser el valor de retorno de la funcin RGB). Si se omite se utiliza la propiedad ForeColor del objeto en el que se dibuja. El tamao del punto viene determinado por la propiedad DrawWidth del objeto en que se dibuja. Si el tamao es mayor que uno, el punto se dibuja centrado en las coordenadas suministradas a pset. Si se desea eliminar un punto previamente dibujado es necesario volver a pintar ese punto con el color de fondo del objeto (BackColor). Ejemplo: form1.pSet(100,200),vbBlue Con esta sentencia se dibuja un punto de color azul en las coordenadas 100,2000, si se quiere agrandar el tamao del punto en la propiedad DrawWidth debemos cambiar el valor que hay. Dibujo de lneas y rectngulos: mtodo line El mtodo line dibuja lneas y -en ciertas condiciones- cajas rectangulares de lados horizontales y verticales. Su forma general es la siguiente: object.Line (x1, y1) - (x2, y2), color, BF donde object y color tienen el mismo significado que en pset, y (x1, y1) son opcionales y son las coordenadas del punto inicial de la lnea. Si se omiten la lnea comienza en las coordenadas definidas por CurrentX y CurrentY. (x2, y2) son obligados y contienen las coordenadas del punto final de la lnea. B es un carcter opcional. Si se incluye se dibuja un rectngulo (Box) con los puntos dados como extremos de una de sus diagonales. F es tambin un carcter opcional, que slo se puede incluir si se ha incluido B. Si se incluye, la caja rectangular se rellena (Fill) con el mismo color del contorno. Si se omite la caja se rellena con las propiedades FillColor y FillStyle del objeto en el que se dibuja. Despus de ejecutarse este mtodo las propiedades CurrentX y CurrentY tienen el valor del punto final de la lnea. Es necesario introducir el carcter (-), aunque se omita el primero de los puntos que definen la lnea. Las propiedades DrawWidth y DrawStyle determinan cmo se dibujan las lneas rectas o curvas

- 44 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I DrawWidth determina el grosor en pixels, mientras que DrawStyle determina el tipo de lnea. DrawStyle. Los tipos de raya discontinuo no permiten que el grosor sea mayor que 1 pixel. Si el grosor es superior, la lnea se dibuja de modo continuo. Ejemplo: Me.Line (100, 100)-(400, 400), vbRed, BF con esta sentencia se dibujara un cudrado rojo Me.Line (100, 100)-(400, 400), vbRed Con esta sentencia se dibujara una linea Dibujo de circunferencias, arcos y elipses: mtodo circle Este mtodo permite dibujar circunferencias, elipses y arcos. Su forma general es la siguiente: object.Circle (x, y), radius, color, start, end, aspect donde object y color tienen el mismo significado que en pset y line, y (x, y) son obligatorias, y contienen las coordenadas del centro de la circunferencia. Radius es obligatoria y define el radio de la circunferencia. Start, end son opcionales, y permiten definir arcos por medio del ngulo inicial (start) y final (end). Los ngulos se miden siempre en radianes y en sentido contrario a las agujas del reloj. Sus valores deben estar entre -2 y 2. En principio se dibuja solamente el arco, pero si uno o ambos valores son negativos se tratan como positivos, pero se dibuja una lnea que une el centro de la circunferencia con el origen o el extremo del arco. Aspect es tambin opcional y se utiliza para dibujar elipses. Es la relacin entre el dimetro vertical y el horizontal. El valor por defecto es 1.0, lo que corresponde a una circunferencia. Cuando aspect es distinto de 1.0, el parmetro radius define el mayor de los dos dimetros. Slo las figuras cerradas (no los arcos sin lneas que unan los extremos con el centro) pueden ser rellenadas con el color determinado por las propiedades FillColor y FillStyle del objeto en que se dibuja). El grosor y estilo de las lneas se determina con las propiedades DrawWidth y DrawStyle. Despus de ejecutarse este mtodo las propiedades CurrentX y CurrentY tienen el valor del centro de la circunferencia. Si se omite algn argumento (excepto los que van al final), deben respetarse las comas de separacin entre argumentos. Otros mtodos grficos Existen algunos otros mtodos grficos de inters. Por ejemplo, el mtodo Cls cuya forma general es object.Cls Ejemplo: form1.Cls borra del formulario o control picture todos los resultados de los mtodos grficos y del mtodo print, al mismo tiempo que pone las propiedades CurrentX y CurrentY a cero. No afecta a los grficos introducidos en modo de diseo (por ejemplo con la propiedad picture). Tampoco se borran con este mtodo el texto y grficos que se hayan creado con la propiedad AutoRedraw en true, si dicha propiedad se pone a false antes de llamar al mtodo Cls. De esta forma se pueden realizar borrados selectivos. El mtodo Point devuelve, como entero long, el color (RGB) del punto especificado en un formulario o control PictureBox. Su forma general es: object.Point(x, y) Si se desea, el entero long devuelto por point puede convertirse a la notacin hexadecimal que se usa para los colores utilizando la funcin hex. - 45 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Ejemplo:Disear un formulario el cual al pasar el Mouse por el Formulario se muestre las coordenadas donde se encuentra el Mouse,ademas que se dibuje aletaoriamente puntos por todo el formulario, debera haber tambien un Scroll el cual al desplazarlo debera aumentar el grosor del Punto.

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) lblx = X lbly = Y End Sub Private Sub HScroll1_Change() Me.DrawWidth = HScroll1.Value End Sub Private Sub Timer1_Timer() Me.PSet (Rnd() * Me.ScaleWidth, Rnd() * Me.ScaleHeight), RGB(Rnd() * 255, Rnd() * 255, Rnd() * 255) End Sub

20 .- CUADRO DESPLEGABLES(COMBOBOX) Y BOX)

LISTAS (LIST

ListBox.- Una lista es un control en el que se pueden mostrar varios registros o lneas,
teniendo uno o varios de ellos seleccionado(s). Si en la lista hay ms registros de los que se pueden mostrar al mismo tiempo, se aade automticamente un scrollBar.Para aadir o eliminar registros de la lista se utilizan los mtodos AddItem y RemoveItem respectivamente. Esto slo puede hacerse en modo de ejecucin, y no en modo de diseo. Se suelen inicializar desde el evento Form_Load. Propiedades y Metodos:

- 46 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I List es un array que permite definir el contenido de la lista en modo de diseo a travs de la ventana de propiedades y tambin acceder a los elementos de la lista en tiempo de ejecucin, para utilizar y para cambiar su valor. Para ello se pone en ndice del elemento entre parntesis (empezando a contar por cero) a continuacin de List, como se muestra a continuacin por ejemplo, para cambiar el tercer elemento: lstName.List(2) = "Tercero" lstName.list(0) Esto me indicara el valor que hay en el primer elemento NOTA: LstName viene a ser el nombre que se le ha puesto a la lista. Additem Para aadir un registro en tiempo de ejecucin: lstName.AddItem Registro_Aadido, posicion donde posicion es un argumento opcional que permite especificar la posicin en que se debe aadir. Si se omite el registro se aade al final de la lista. Lo anterior es vlido si la propiedad Sorted est a False; si est a True el nuevo registro se aade en la posicin ordenada que le corresponde. Ejemplo: lstname.additem hola,2 se aade Hola en la posicin 2 lstname.additem hola se aade Hola en la ultima posicin Removeitem(pos) Eliminar un registro, lstName.RemoveItem(pos) donde pos es el indice del elemento que se quiere eliminar. Ejemplo lstname.removeitem(1) se elimina el elemento 1 Clear En el caso de que se quiera vaciar completamente el contenido de una lista se puede utilizar el metodo clear Ejemplo: lstname.clear limpia todo la lista Dos propiedades interesantes de las listas son ListCount y ListIndex. ListCount contiene el nmero total de registros incluidos en la lista. Ejemplo si la lista tiene los siguientes elementos Peru Mexico Italia lstname.listcount esto sera igual a 3 por que son 3 elementos que tiene la lista ListIndex permite acceder a una posicin concreta de la lista para aadir un registro nuevo en esa posicin, borrar uno ya existente, seleccionarlo, etc. Hay que tener en cuenta que los elementos de la lista se empiezan a numerar por cero. El valor de propiedad ListIndex en cada momento coincide con el registro seleccionado y en el caso de no haber ninguno seleccionado esta propiedad vale -1. Ejemplo: Lstname.listindex indicara el indice del elemento seleccionado Selected(pos) indica si una lista esta seleccionada, esta propiedad es neta del ListBox y tiene 2 posibles valores True o False si esta en true indica que ese elemento ha sido seleccionado

- 47 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Ejemplo: LstName.selected(0) si esto arroja el valor de True quiere decir que fue seleccionado caso contrario ustedes ya saben..... Multiselect esta es una propiedad que indica si se podra seleccionar solo un elemento(0None) o varios elementos( 1-Simple) o varios elementos extendidos(2-Extended). Es bueno recordar que esta es una propiedad neta del ListBox y se dara en tiempo de diseo Style Esta propiedad indica si los elementos de la lista se mostraran de una forma simple(0Standard) o con un check(1-CheckBox), se dara en tiempo de diseo(Solo es para listbox) Es interesante saber que al seleccionar uno de los registros de la lista se activa el evento Clic de dicha lista. Combo Box Un combo tiene muchas cosas en comn con una lista. Por ejemplo los mtodos AddItem, RemoveItem o Clear y las propiedades List, ListIndex o ListCount. La diferencia principal es que en un combo tiene una propiedad llamada Style, que puede adoptar tres valores (1,2 3) que corresponden con tres distintas formas de presentar una lista: 1. Style=0 (Dropdown Combo), ste es el valor ms habitual y corresponde con el caso en el que slo se muestra el registro seleccionado, que es editable por el usuario, permaneciendo el resto oculto hasta que el usuario despliega la lista completa clicando sobre el botn-flecha. 2. Style=1 (Simple Combo). En este caso el registro seleccionado tambin es editable, y se muestra una lista no desplegable dotada si es necesario de una scrollbar. 3. Style=2 (DropDown List). En este ltimo caso el registro seleccionado no es editable y la lista es desplegable. En una caja combinada, al igual que en una caja de texto sencilla, est permitido escribir con el teclado en tiempo de ejecucin, si la propiedad Enabled vale True. En una lista esto no es posible. Ejemplo Practico: Desarrollar un formulario el cual tenga como finalidad pasar elementos de una lista hacia otra:

Private Sub cmdaddlist2_Click() Pasa todos los elementos seleccionados del List1 al List2 i=0 Do While i < List1.ListCount If List1.Selected(i) = True Then - 48 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I List2.AddItem List1.List(i) List1.RemoveItem (i) Else i=i+1 End If Loop End Sub Private Sub CmdGenerar_Click() Genera Numero aleatorios y los guarda en la Lista1 Randomize For i = 1 To 10 num = CInt(Rnd * 100) List1.AddItem num Next End Sub Private Sub cmdpasalist1_Click()Pasa todos los elementos del List2 al List1 For i = 0 To List2.ListCount - 1 List1.AddItem List2.List(i) Next List2.Clear End Sub Private Sub cmdpasalist2_Click()Pasa todos los elementos del List1 al List2 For i = 0 To List1.ListCount - 1 List2.AddItem List1.List(i) Next List1.Clear End Sub NOTA: No se ha programado el Boton para pasar los elementos seleccionados del List2 al List1 Para que se muestre el Check en la Lista se debe poner en la propiedad STYLE =1 CheckBoX

21.- ARREGLOS

Un array permite referirse a una serie de elementos del mismo tipo con un mismo nombre, y hace referencia un nico elemento de la serie utilizando uno o ms ndices, como un vector o una matriz en lgebra. Visual Basic 6.0 permite definir arrays de variables de una o ms dimensiones (hasta 60) y de cualquier tipo de datos (tipos fundamentales y definidos por el usuario). Pero adems Visual Basic introduce una nueva clase de arrays, arrays de controles, esto es, (arrays de botones, de etiquetas, de paneles, etc.) que permiten una programacin ms breve y clara. En este apartado slo se tratarn los arrays de variables. Todos los elementos de un array deben ser del mismo tipo y estn alamacenados de forma contigua en la memoria. Por supuesto, si el array es de tipo Variant cada elemento puede contener un dato de tipo diferente, e incluso puede contener otro array.Entre los arrays de variables cabe distinguir dos tipos fundamentales, dependiendo de que nmero de elementos sea constante o pueda variar durante la ejecucin del programa. Arrays estticos, cuya dimensin es siempre la misma.

- 49 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Arrays dinmicos, cuya dimensin se puede modificar durante la ejecucin del programa. Arrays estticos La declaracin de un array esttico depender de su mbito. La declaracin de un array pblico se hace en la seccin de declaraciones de un mdulo utilizando la sentencia Public. La declaracin de un array a nivel del mdulo o del formulario se hace en la seccin de declaraciones del mdulo o del formulario utilizando la sentencia Dim o Private. Para declarar un array local a un procedimiento, se utiliza la sentencia Dim, Private o Static dentro del propio procedimiento. A continuacin se presentan algunos ejemplos: Dim vector(19) As Double Este ejemplo declara un array de una dimensin, llamado vector, con veinte elementos, vector(0), vector(1), ... , vector(19), cada uno de los cuales permite almacenar un Double. Salvo que se indique otra cosa, los ndices se empiezan a contar en cero. Dim matriz(3, 1 To 6) As Integer Este ejemplo declara un array de dos dimensiones, llamado matriz, con 4x6 elementos, matriz(0,1), ... matriz(3,6), de tipo entero. Public cadena(1 To 12) As String El ejemplo anterior declara un array de una dimensin, cadena, con doce elementos, caract(1), ... , caract(12), cada uno de los cules permite almacenar una cadena de caracteres. La declaracin de los arrays estticos es bastante cmoda. Se declaran una vez. Sin embargo tienen el inconveniente que en la mayora de los casos estn sobredimensionados y utilizan ms memoria de la que realmente necesitan. Esto implica que se est malgastando memoria. Para solucionar este problema se utilizan los arrays dinmicos. Arrays dinmicos El espacio necesario para un array esttico se asigna al iniciarse el programa y permanece fijo durante su ejecucin. El espacio para un array dinmico se asigna durante la ejecucin del programa. Un array dinmico, puede ser redimensionado en cualquier momento de la ejecucin. La forma mejor de redimensionar los arrays es mediante variables. Para crear un array dinmico primero hay que declararlo como si fuera una array esttico, pero sin darle dimensin. Es decir, se deja la lista -entre parntesis- vaca sin ponerle ningn nmero.Esto se hace con la sentencia Public si se quiere que sea global, con Dim o Private si se quiere a nivel de mdulo o con Static, Dim o Private si se quiere que sea local. Para asignar el nmero actual de elementos del array se utiliza la sentencia ReDim. La sentencia ReDim puede aparecer solamente en un procedimiento y permite cambiar el nmero de elementos del array y sus lmites inferior y superior, pero no el nmero de dimensiones. Esto quiere decir que, por ejemplo, no se puede trasformar un vector en una matriz.A continuacin se presenta un ejemplo de cmo se declaran arrays dinmicos en Visual Basic. Si se declara el array Matriz a nivel del formulario, Dim Matriz( ) As Integer ms tarde, un procedimiento Calculo puede asignar espacio para el array, como se indica a

- 50 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I continuacin: Sub Calculo( ) ... ReDim Matriz(F, C) ... End Sub Cada vez que se ejecuta la sentencia ReDim, todos los valores almacenados en el array se pierden (si son Variant se ponen a Empty; si son numricos a cero y si son cadenas de caracteres a la cadena vaca). Cuando interese cambiar el tamao del array conservando los valores del array, hay que ejecutar ReDim con la palabra clave Preserve. Por ejemplo, supngase un array A de dos dimensiones. La sentencia, ReDim Preserve A(D1, UBound(A, 2) + 2) incrementa el tamao del array en dos columnas ms. Cuando se utiliza la palabra Preserve no puede cambiarse el ndice inferior del array (s el superior). La funcin UBound del ejemplo devuelve el valor ms alto de la segunda dimensin. Arreglos de Controles.- Se llama arreglo de controles a un conjunto de controles que tienen el mismo nombre y son del mismo tipo se diferencia por un indice que empieza de 0 Ejemplo: Se crea una caja de texto y le ponemos de nombre TxtNum luego hacemos clic derecho copiar y luego lo pegamos y VB nos respondera con una ventana advirtiendo que ya existe un Control con ese nombre y nos preguntara si queremos crear un matriz de controles a lo cual se respondera SI. Con esta se creara otra caja de texto llamado tambien TxtNum(1) pero tendra el indice 1 y el anterior se llamara TxtNum(0), si creamos mas controles con este nombre el indice sera 2,3,4...etc.

Ejemplo: Desarrollar un algoritmo que simule el Juego del ahorcado

Crearemos un arreglo de controles llamado TxtFrase(20 elementos) ademas debemos tener un control Image (Image1), una caja de texto donde se ingresara la Letra a buscar(TxtLetra), un boton para buscar (cmdOk), un boton para escoger la Frase (CmdJugar) y dos label LblMen donde saldra cuantas letras tiene la frase y LblMen2 donde saldra la frase; por ultimo vamos a tener un timer.

- 51 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

El formulario conciste en que se llenara un vector de 20 elementos con Frases al hacer clic en el boton jugar se generara un numero aleatorio del 0 al 19 para escoger la frase luego se llenara los texto con la frase que se escogio al azar.Luego se debe ingresar una letra y se buscara en los texto si se encuentra el texto se podra ver ya que inicialmente esta invisible si no se encuentra la letra saldra un mensaje de error asi como tambien se mostrara una imagen en el control IMAGE1(asi se formara el ahorcado) para eso debemos contar con varias imgenes a las cuales en este caso se le ha puesto de nombre Ahorcado1.jpg, Ahorcado2.jpg,..etc Si en caso se adivina la frase se activara el timer el cual tiene como unica finalidad hacer que el formulario cambie de color 30 veces y se desplaze por toda la pantalla. General-Declaraciones Dim vector(19) As String, cad$ Dim cont%, ACIERTO%, COLOR%, COLORORI, TW%, TH% Sub visibilidad(ByVal sw As Boolean) 'Muestar u oculta los textos dependiendo de SW For i = 0 To 19 txtfrase(i).Visible = sw Next End Sub Sub limpia() For i = 0 To 19 txtfrase(i).Text = "*" Next End Sub Private Sub CmdJugar_Click() Image1.Picture = Nothing 'Para que no se muestre nada en el Image Call visibilidad(False) Call limpia Randomize num = CInt(Rnd() * 19) cad = vector(num) For i = 1 To Len(cad) txtfrase(i - 1) = Mid(cad, i, 1) Next Txtletra.Enabled = True CmdOk.Enabled = True lblmen2.Visible = False LblMen = "La frase tiene " & Len(cad) & " palabras" lblmen2 = "La frase es " & UCase(cad) cont = 1 ACIERTO = 0 COLOR = 1 Txtletra.SetFocus End Sub Private Sub CmdOk_Click() ESTA = False - 52 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I For i = 0 To 19 C = txtfrase(i) If UCase(Trim(txtfrase(i))) = UCase(Trim(Txtletra)) And Not txtfrase(i).Visible Then txtfrase(i).Visible = True ESTA = True ACIERTO = ACIERTO + 1 End If Next If Not ESTA Then ruta = App.Path & "\AHORCADO" & cont & ".JPG" Image1.Picture = LoadPicture(ruta) cont = cont + 1 If cont > 6 Then 'Solo hay 6 oportunidades de adivinar MsgBox "Lo sentimos perdiste el juego", vbCritical, "Mensaje" Call visibilidad(True) lblmen2.Visible = True Txtletra.Enabled = False CmdOk.Enabled = False Exit Sub End If End If Txtletra = "" Txtletra.SetFocus If ACIERTO >= Len(cad) Then MsgBox "Bien lo hiciste", vbInformation, "Mensaje" lblmen2.Visible = True Txtletra.Enabled = False CmdOk.Enabled = False Timer1.Enabled = True End If End Sub Private Sub Form_Load() Call visibilidad(False) Call limpia COLOR = 1 vector(0) = "LA CASA ROJA" vector(1) = "LA MALDICION NEGRA" y asi se llena los 20 elementos (del 0 al 19) vector(18) = "LA PANTERA" vector(19) = "LA AUSTRIACA" COLORORI = Me.BackColor 'Se guarda el color del Formulario TW = Me.Width 'Se guarda el ancho del formulario TH = Me.Height 'Se guarda el alto del formulario End Sub Private Sub Timer1_Timer() If COLOR > 30 Then Me.BackColor = COLORORI - 53 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Me.Width = TW Me.Height = TH Timer1.Enabled = False Else R = CInt(Rnd() * 255) G = CInt(Rnd() * 255) B = CInt(Rnd() * 255) Me.BackColor = RGB(R, G, B) Me.Width = CInt(Rnd * TW) Me.Height = CInt(Rnd * TH) COLOR = COLOR + 1 End If End Sub Private Sub Txtletra_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then CmdOk.SetFocus End If End Sub
Arreglo de Controles.-

Colocar un control timer con propiedad: Interval=60 Enabled=false

Lbmeta

Control Image Nombre Carro dar el mismo nombre a los dos


Private Sub Cmdstop_Click() Timer1.Enabled = false End Sub Private Sub CmdStart_Click() Timer1.Enabled = True Carro(0).Left = 0 Carro(1).Left = 0 End Sub

- 54 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I
Private Sub Timer1_Timer() Dim Nro As Integer Randomize Do Nro = Int(Rnd * 10) Loop Until (Nro = 1) Or (Nro = 0)

Carro(Nro).Left = Carro(Nro).Left + 100 If Carro(Nro).Left > LBmeta.Left Then Timer1.Enabled = False MsgBox "Carro " & Nro + 1 & " Ha Ganado" End If End Sub

22.- MSFLEXGRID.- El control Microsoft FlexGrid (MSFlexGrid) muestra datos de


tablas y efecta operaciones en ellos. Proporciona una flexibilidad completa para ordenar, combinar y aplicar formato a tablas que contienen cadenas e imgenes. Cuando se enlaza a un control Data, el control MSFlexGrid muestra datos de slo lectura.

Propiedades

Rows.- Cantidad de Filas que tendra el Grid (Ejemplo: MsflexGrid1.Rows = 4) Cos.- Cantidad de columnas que tendra el Grid (Ejemplo: MsflexGrid1.Cols = 4) TextMatrix(Fila,Columna) .- Establece el texto de una celda se le pasa como parmetro la fila y la columna de la celda a la cual se quiere acceder (Ejemplo : MsFlexGrid1.TextMatrix(1,2) = Hola) RowHeight(Fila) .- Establece el alto de la fila (Ejem : MSFlexGrid1.RowHeight(0)=200) ColWidth(Col)Establece el ancho de una columna(Ejem MSFlexGrid1.ColWidtht(0)=200) FixedRows,FixedCols .- Establece la cantidad de filas y columnas fijas respectivamente (Ejem : MSFlexGrid1.FixedCols=0) Row .- Establece la fila a la cual se va a acceder (Ejem : MSFlexGrid1.Row = 1) Col .- Establece la columna a la cual se va a acceder (Ejem : MSFlexGrid1.Row = 1) NOTA:Las propiedades a continucion se utilizaran despus de haberse ubicado primero en una fila y columna Text .- Establece el texo de una celda es similar a TextMatrix (Ejem : MSFlexGrid1.Text = Hola) CellBackColor,CellForeColor .- Establece color de fondo y de letra respectivamente. Ejemplo (MsFlexGrid1.CellBackColor = VBRed) Ejemplo: Disear un formulario que tendra un FlexGrid llamado TABLA al cargra se debe llenar el formulario con las ventas de los 12 meses del ao al final al hacer clic en el boton promedio se debe calcular el promedio de las ventas(Las ventas se generaran aletoriamente asi como tambien se debera modificar las celdas de las ventas)

- 55 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Private Sub Command1_Click()Boton para hallar el promedio Dim suma# suma = 0 For fil = 1 To 12 suma = suma + CDbl(Tabla.TextMatrix(fil, 1)) Next Label1 = "Total ventas es: " & suma End Sub Private Sub Form_Load() Tabla.Rows = 13 Tabla.Cols = 3 Tabla.FixedCols = 0 Primero los titulos Tabla.TextMatrix(0, 0) = "Mes" Tabla.TextMatrix(0, 1) = "Ventas" Tabla.TextMatrix(0, 2) = "Nivel" For fil = 1 To 12 Tabla.TextMatrix(fil, 0) = MonthName(fil) MonthName saca el nombre del mes Tabla.TextMatrix(fil, 1) = CInt(Rnd * 1000) Tabla.TextMatrix(fil, 2) = IIf(Val(Tabla.TextMatrix(fil, 1)) > 500, "Alto", "Bajo") Next End Sub Si la venta es mayor a 500 en la otra columna debe salir el mensaje Alto sino Bajo

- 56 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Private Sub Tabla_KeyDown(KeyCode As Integer, Shift As Integer) If Tabla.Col = 1 Then Solo se podra editar la columna de Ventas Select Case KeyCode Case vbKeyDelete: Si se presiono Supr Tabla.Text = "" Case vbKeyBack: Si se presiono la barra de retroceso Tabla.Text = Left(Tabla.Text, Len(Tabla.Text) - 1) Case vbKey0 To vbKey9: Si se presiono del 0 al 9 Tabla.Text = Tabla.Text & Chr(KeyCode) Case vbKeyNumpad0 To vbKeyNumpad9 Si se presiono del 0 al 9 pero del teclado numerico Tabla.Text = Tabla.Text & Chr(KeyCode - 48) Case vbKeyReturn, vbKeySeparator: si se presiono enter o enter del teclado numerico msg = IIf(Val(Tabla.Text) > 500, "Alto", "Bajo") Tabla.Col = 2 Tabla.Text = msg Tabla.Col = 1 End Select End If End Sub
Aplicacion. Se deposita cierta cantidad de dinero en un banco, este deposito puede ser en dolares o soles; mostrar una tabla de Interses cada 30 dias , segn la tasa de interes para soles es 5% y dlar 2% mensual. Pulsar ctrl.+T para activar a) Microsoft FlexdGrid Control 6.0 y Microsoft Form 2.0 Object Library (que contiene el control SpinButton) El diseo es como se muestra en la figura, la codificacin es el Siguiente:

Autor Alberto Moreno Private Sub CmdNuevo_Click() TxtMonto.Text = "" TXTMes = "" OPM(0) = False: OPM(1) = False Grid1.Clear Grid1.TextMatrix(O, 0) = "Fecha" Grid1.TextMatrix(0, 1) = "Intereses" Grid1.TextMatrix(0, 2) = "Valor Actual" Grid1.ColWidth(0) = 1200 : Grid1.ColWidth(1) = 1600 :Grid1.ColWidth(2) = 1800 TXTMONto.SetFocus End Sub Private Sub CmdSalir_Click() End End Sub Private Sub Form_Activate() Call CmdNuevo_Click

- 57 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I End Sub Private Sub OPM_Click(Index As Integer) Dim TASA As Single Dim Interes#, Vactual#, Mes% Dim FE As Date Select Case Index Case 0: TASA = 0.02 Case 1: TASA = 0.05 End Select FE = Date Grid1.Rows = Val(TXTMes) + 1 For Mes = 1 To Val(TXTMes) FE = FE + 30 Interes = Val(TXTMONto) * TASA * Mes Vactual = Interes + Val(TXTMONto) Grid1.TextMatrix(Mes, 0) = Format(FE, "dd/mm/yy") Grid1.TextMatrix(Mes, 1) = Format(Interes, "##,###.00") Grid1.TextMatrix(Mes, 2) = Format(Vactual, "###,###.00") Next End Sub Private Sub SpinButton1_Change() TXTMes = SpinButton1.Value End Sub Private Sub TXTMON_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 13 TXTMes.SetFocus Case 48 To 57, 46, 8 Case Else KeyAscii = 0 End Select

- 58 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I End Sub

Practica 4
1.- Llene un Listbox con los distritos de Lima y al hacer click en un boton Buscar debera ingresar un Distrito en un InputBox si existe en el ListBox se debera marcar el distrito ingresado si en caso no se encuentra se debera mostrar un mensaje que diga que el mensaje no existe ademas de un mensaje que diga Si desea continuar? si responde si volvera al mismo proceso hasta que ingrese No. 2.- Ingrese en un texto de tipo MultiLine una frase y en varios ListBox debera salir las Letras Maysculas,Minsculas,Vocales y Consonantes(osea habra 4 Listbox) indicando los totales al final de cada listbox 3.- Realice el siguiente formulario:

- 59 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

4.- Llene en un arreglo de 100 elementos 100 Numeros aleatorios sin que estos se repitan al final muestre en un mensaje la suma y el promedio de los elementos y de ah lo pasa a un ListBox 5.- En un arreglo llene cadenas mediante InputBox, Luego en una caja de texto ingrese una letra y busquela si lo encuentra saldra un mensaje.(Utilize redim) 6.-Genere 100 numeros aleatorios y guardelos en un arreglo luego elimine los perfectos y los primos una vez hecho esto ordene el arreglo de forma ascendente(Utilize el metodo de la burbuja) de ah lo pasa a un ListBox 7.- Genere una matriz de 10x10 con numeros aleatorios y diga al final cuantos pares e impares hay.(Muestre la matriz en un grid) 8.- Genere una matriz de 5x5 con numeros aleatorios luego diga cual es el mayor,el menor, la suma de su diagonal principal, la suma de su diagonal secundaria y de su periferia. (Muestre la matriz en un grid el mayor se sombreara de color rojo y el menor de azul) 9.- Genere una matriz de 3x3 y llenela con cadenas mediante inputbox y diga cual es elemento que tiene mayor cantidad de caracteres. (Muestre la matriz en un grid) 10.- Usando arreglos de controles inserte 20 botones luego genere 20 numeros aleatorios sin que se repitan y mustrenlo en el caption de los botones. De ah mediante un control timer haga que cada 1 segundo salga un numero aleatorio y busque el numero en los botones y si lo encuentra el boton debe desactivarse

11.- Utilizando vectores paralelos realice el siguiente Programa.

- 60 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Debe tener 4 vectores (Codigo,nombre,fecha,sexo) sin dimension (utilizara redim) Debe tener un formulario inicial que tenga las opciones de (Ingresar,Modificar,Eliminar,Listado,Ordenar y salir) El Formulario de Ingresar sera :

donde el codigo se autogenera a partir del 1001 y la edad se mostrara en base a la fecha de nacimiento. Cuando se hace clic en el boton Grabar se guarda los datos en los vectores (codigo,nombre,fecha y sexo) - Modificar y Eliminar .- sera idntico al Ingresar con la diferencia que ah el codigo se ingresa y si existe salen los datos de ese codigo y debe haber un boton grabar que grabara las modificaciones de ese codigo o un boton Eliminar que eliminara ese elemento - Listado . Debe salir todos los elementos de los arreglos - Ordenar se escogera en un combobox por que campo se quiere ordenar(codigo,nombre,fecha o sexo)

23.- PROCEDIMIENTOS Y FUNCIONES Funciones.- Es un conjunto de sentencias que realizaran un proceso y devolveran un
valor. Las funciones pueden ser publicas o privadas dependiendo de lo que queremos. Parmetros.- Son valores que reciben las funciones estas pueden ser BYVAL(Por valor), BYREF(Por referencia), PARAMARRAY(Arreglo de Parametros) Sintaxis: Public Function doble(ByVal Num%)as integer Doble = Num * 2 End Function En este ejemplo sencillo se ha creado una funcion llamada doble que recibe un parametro llamado num, luego la funcion doble devolvera el valor de num * 2. Para llamar a esa funcion seria de la siguiente manera. N=10 NN = doble(N)

- 61 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Esta claro tenemos una variable llamada N que vale 10 y llamamos a la funcion doble y le enviamos como parmetro N osea 10 luego como n es el parmetro que se envia en la funcion doble lo recibe Num osea el valor de Num sera 10 y al final en NN se guardara el doble de N Diferencia entre BYVAL,BYREF y PARAMARRAY Ejemplo BYVAL: Private Sub Command1_Click() num = 10 MsgBox Aumento(num) End Sub Public Function Aumento(ByVal n%) As String n = n * 1.15 'El valor de n se incrementa en un 15% mas Aumento = "El aumento del 15% mas es " & n End Function Observen que aqui se llama a una funcion Aumento enviandole como parametro num que vale 10, en la funcion quien recibe el parmetro es n luego esa variable n sera igual al mismo n pero aumentado en un 15% al final n valdra 12 en este ejemplo pero num se queda en 10 por que cuando es BYVAL la variable num deja su valor a n y son variables distintas. Ejemplo de BYREF: Haremos el mismo ejemplo Private Sub Command1_Click() num = 10 MsgBox Aumento(num) End Sub Public Function Aumento(ByRef n%) As String n = n * 1.15 'El valor de n se incrementa en un 15% mas Aumento = "El aumento del 15% mas es " & n End Function El resultado sera el mismo entonces cual es la diferencia????.La diferencia es que num se envia por referencia entonces la variable n es la misma variable num por lo tanto cuando se pone n=n*1.15 lo que realmente se esta haciendo es num=num*1.15 ya que es la misma variable. Ejemplo de PARAMARRAY: Private Sub Command1_Click() a=2 b=3 c=4 d = 24 MsgBox mayor(a, b, c, d) End Sub Public Function mayor(ParamArray arreglo()) As String Dim m1%, m2% m1 = IIf(arreglo(0) > arreglo(1), arreglo(0), arreglo(1)) - 62 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I m2 = IIf(arreglo(2) > arreglo(3), arreglo(2), arreglo(3)) mayor = "El mayor es " & IIf(m1 > m2, m1, m2) End Function No se asusten al ver esta funcion miren es una funcion como todos pueden ver que se llama mayor y devuelve un string. Ahora la novedad es el parametro que recibe se llama arreglo() al tener () quiere decir que es un arreglo y la palabra reservada ParamArray significa que es un arreglo de parametros donde arreglo(0) viene a ser el primer elemento osea A arreglo(1) viene a ser el segundo elemento osea B y asi sucesivamente Entonces se esta calculando el mayor de los 4 numeros al final el resultados sera El amyo es 24 ya que 24 es el mayor en este ejemplo. A pesar de que se ha hecho bien sencilla esta programacin que pasaria si se quiere calcular el mayor de 10 numeros seria muy emborroso o pero aun el mayor de 100 numeros bueno pues podemos hacerlo bien facil utilizando una sentencia for y las funciones LBOUND y UBOUND LBOUND(Expre) es una funcion que me va a permitir mostrar el elemento minimo del arreglo que siempre sera 0.En Expre va el nombre del arreglo. UBOUND(Expre) saca el elemento mximo del arreglo es decir la cantidad de elementos que hay en el arreglo.En expre va el nombre del elemento Ahora haremos el mismo ejemplo pero para 10 numeros Private Sub Command1_Click() a=2 b=3 c=4 d = 24 e=2 f=3 g=4 h = 24 i = 99 j = 32 MsgBox mayor(a, b, c, d, e, f, g, h, i, j) End Sub Public Function mayor(ParamArray arreglo()) As String Dim vi%, vf%, xmayor% xmayor = 0 vi = LBound(arreglo) 'Valor minimo del arreglo en este caso 0 vf = UBound(arreglo) 'Valor maximo del arreglo en este caso 9 For i = vi To vf If arreglo(i) > xmayor Then xmayor = arreglo(i) End If Next mayor = "El mayor es " + CStr(xmayor) 'Mayor ="El mayor es " & xmayor tambien puede ser de esta manera End Function - 63 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Procedimientos.- Es un conjunto de sentencias que realizaran un proceso a diferencia de


las funciones no devuelven nada. NOTA: Tiene la mismas caractersticas que las funciones es decir pueden ser publicas o privadas y los parmetros pueden ser Byref, ByVal o Paramarray. Ejemplo: Realizar un procedimiento que limpie todas las cajas de texto de un formulario En este caso el procedimiento se hara en el formulario. Private Sub Command1_Click() Call limpia End Sub Sub limpia() Dim obj As Object For Each obj In Me.Controls If TypeOf obj Is TextBox Then obj.Text = "" End If Next End Sub Para llamar a un procedimiento se utiliza la palabra reservada Call en este caso call Limpia El procedimiento LIMPIA blanquea las cajas de texto Ahora haremos algo mas interesante Haremos un procedimiento que limpie todas las cajas de texto de todos los formularios. Entonces creamos el procedimiento en el formulario. Private Sub Command1_Click() Call limpia(Me) End Sub Noten que llamamos a la funcion limpia y le enviamos como parmetro Me que quiere decir????? Mi formulario, el formulario actual. Entonces si estoy enviando como parmetro un formulario se supone que en el procedimiento recibo un parmetro que tiene que ser de tipo object al cual se le ha llamado xform. Sub limpia(ByRef xform As Object) Dim obj As Object For Each obj In xform.Controls If TypeOf obj Is TextBox Then obj.Text = "" End If Next End Sub Ahora seguro preguntaran porque ByRef se acuerdan que anteriormente hemos dicho que cuando es ByRef el parmetro que se envia es el mismo que se recibe osea xform sera lo mismo que el formulario.

- 64 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Practica 5 Funciones 1.- Ingrese un numero y visualize Es Perfecto o No es Perfecto dependiendo de la condicion 2.- Ingrese una cadena y visualcelo en Mayscula sin usar UCASE 3.- Ingrese una cadena y visualcelo en Minuscula sin usar LCASE 4.- Ingrese 7 numeros y calcule el menor de ellos 5.- Ingrese 7 numeros y calcule el mayor de ellos 6.- Ingrese un numero y mediante options escoga una base(2,4,6,8) al hacer clic en un boton se mostrara el numero convertido a la base que se selecciono 7.- Ingrese la fecha de nacimiento de una persona y muestre la edad exacta es decir Aos, mese y dias 8.- Ingrese un numero y muestre los numeros primos anteriores a este en un label 9.- Ingrese una cadena y visualcelo en forma invertida sin usar StrReverse 10.- Ingrese una cadena y luego encriptelo. 11.- Ingrese un numero y mustrelo en letras ejemplo: 123 seria Ciento veintitrs(Utilize funcion recursiva) Procedimientos 12.- Genere un procedimiento que limpie todas las cajas de textos de todos los formularios. 13.- Disee un formulario que simule una calculadora para esto utilize arreglo de controles 14.- Disee un formulario que simule el juego d eun bingo utilize 2 msflexgrid yy llenelos aleatoriamentecomo si fuera una cartilla se debe validar que la primera Columna tenga numeros del 1 al 20 la segunda del 20 al 40 y asi sucesivamente, ademas los nmeros no se deben repetir Una vez hecho esto debera hacer que cada 1 segundo salga un numero aleatorio y buscarlo en le grid si se encuentra debe sombrear la celda de un color diferente al final debe salir que cartilla fue la ganadora

24.- Registros.Se pueden combinar variables de varios tipos diferentes para crear tipos definidos por el usuario (conocidos como structs en el lenguaje de programacin C). Los tipos definidos por el usuario son tiles si se quiere crear una nica variable que registre varias unidades de informacin relacionadas. Ejemplo : Type Alumno Cod as integer Nom as String * 15 End Type Esto quiere decir que tenemos una variable llamada alumno en la cual podemos guardar 2 datos alumno.cod = 100, alumno.nom=Juana. Podemos crear tambien arreglos de registros. Solo tendramos que poner Dim Alu(1 to 10) as alumno Para acceder a los elemntos seria : Alu(1).Cod=100,Alu(1).Nom =Pedro.

- 65 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I Aplicacin.- Registrar los datos de varios empleados en un registro , los datos de cada empleado son ; codigo(4c), nombre(25 C), cargo(10 C) y sueldo( real simple). Consideraciones.a) El codigo se genera a partir de 0001 b) Los botones de desplazamiento es para navegar en los registros ya ingresados c) En la pagina de vacaciones se elegir el codigo del empleado mediante un combo, mostrando automticamente los datos del empleado, se ingresara el numero de dias de vacaciones calculadando el dia de retorno(azul si es dia de la semana) y rojo (si es sabado o domingo) y su pago.

Array de Control

Opc(0) Opc(1) Opc(2) Para cargo

LNRO
Los botones de desplazamie nto Cmdpri, Cmdant, Cmdnext Cmdult

- 66 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I

Paso 1.- Agregar Modulo Type Empleado Cod As String * 4 Nom As String * 25 Sbas As Double Car As String * 10 End Type Declaracion

Public Vreg(1 To 50) As Empleado Public Nr As Integer

General

Dim tcar As String * 15 Dim CR As Integer Variable para desplazamiento de registros Private Sub CmdAnt_Click() If Nr > 1 Then limpia CR = CR - 1 If CR = 0 Then MsgBox ("Estas en el Primer registro") CR = 1 Beep End If Muestra (CR) CmdAnula.Enabled = True CmdModi.Enabled = True End If

Muestra (CR) CmdAnula.Enabled = True CmdModi.Enabled = True End If

End Sub

Private Sub Combo1_Click() Dim I% I = Combo1.ListIndex + 1 If I > 0 Then Lnom.Caption = Vreg(I).Nom Lsbas.Caption = Vreg(I).Sbas Lcar.Caption = Vreg(I).Car End If

End Sub

Private Sub Optc_Click(Index As Integer) tcar = Optc(Index).Caption Cmdgraba.SetFocus Public Sub limpia() Dim obj As Object For Each obj In Me.Controls If TypeOf obj Is TextBox Then obj = "" If TypeOf obj Is OptionButton Then obj.Value = False Next Text2.SetFocus End Sub Private Sub Text2_Change() Cmdgraba.Enabled = Len(Text2) > 0 If Len(Text2) > 20 Then Text3.SetFocus End If

End Sub

End Sub

Private Sub CmdNext_Click() If Nr > 1 Then limpia CR = CR + 1 If CR = Nr Then MsgBox ("Estas en el ultimo") CR = Nr - 1 End If Muestra (CR) End If

End Sub

Private Sub CmdPri_Click() limpia CR = 1 Muestra (CR) CmdAnula.Enabled = True CmdModi.Enabled = True End Sub Private Sub Cmdult_Click() If Nr > 1 Then limpia CR = Nr - 1

End Sub

Public Sub header() With Grid1 .TextMatrix(0, 0) = "Codigo" .TextMatrix(0, 1) = "Nombres" .TextMatrix(0, 2) = "Cargo" .TextMatrix(0, 3) = "Sueldo" End With

End Sub

- 67 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Lenguaje de Programacin I
Public Sub Muestra(Ind As Integer) Text1.Text = Vreg(Ind).Cod Text2.Text = Vreg(Ind).Nom Text3.Text = Str(Vreg(Ind).Sbas) Select Case Left(Vreg(Ind).Car, 1) Case "A": Optc(0) = 1 Case "S": Optc(1) = 1 Private Sub CmdAnula_Click() Dim I%, b% b = Nr - 1 For I = CR To b - 1 Vreg(I) = Vreg(I + 1) Next I Nr = Nr - 1 If Nr > 1 Then Listado Muestra (CR) End If Case "O": Optc(2) = 1

End SelectLnro.Caption = Str(Ind) End Sub


Private Sub Tdias_KeyPress(KeyAscii As Integer) Dim fecha, X As Variant Dim diasem As String * 15 Dim sueldo, vaca As Single Dim c# If KeyAscii = 13 Then fecha = Now + Val(Tdias.Text) ' x = CDate(fecha) Select Case Weekday(fecha) Case 1: diasem = "Domingo" Case 2: diasem = "lunes" Case 3: diasem = "Martes" Case 4: diasem = "Miercoles" Case 5: diasem = "jueves" Case 6: diasem = "viernes" Case 7: diasem = "Sabado" End Select Lfecha.Caption = Format$(fecha, "dd/mm/yy") c = Str$(Val(Lsbas.Caption) * Val(Tdias.Text) / 30) LVac.Caption = Format$(c, "###,###.#0") Ldia.Caption = diasem If Weekday(fecha) = 1 Then Ldia.ForeColor = QBColor(4) Else Ldia.ForeColor = QBColor(1) End If End If

End Sub

Private Sub CmdGraba_Click() Vreg(Nr).Cod = Text1.Text Vreg(Nr).Nom = Text2.Text Vreg(Nr).Sbas = Val(Text3.Text) Vreg(Nr).Car = tcar Combo1.AddItem Vreg(Nr).Cod Listado limpia Nr = Nr + 1 Text1.Text = Format(Nr, "0000") Lnro.Caption = Str(Nr) Cmdgraba.Enabled = 0 Text2.SetFocus

End Sub

Private Sub CmdNuevo_Click() limpia Lnro.Caption = Str(Nr) Text1.Text = Format(Nr, "0000") CmdAnula.Enabled = False CmdModi.Enabled = False End Sub Private Sub CmdSalir_Click() End

End Sub

End Sub

Private Sub Form_Activate() Nr = 1: CR = 1 Lnro.Caption = Str(Nr) limpia Text1.Text = Format(Nr, "0000") Lfec.Caption = "Fecha :" & Format(Now, "dd/mm/yy") Text2.SetFocus

Public Sub Listado() Grid1.Rows = Nr + 1 Grid1.Cols = 4 Grid1.Row = 0 Call header For I = 1 To Nr With Grid1 .TextMatrix(I, 0) = Vreg(I).Cod .TextMatrix(I, 1) = Vreg(I).Nom .TextMatrix(I, 2) = Vreg(I).Car .TextMatrix(I, 3) = Vreg(I).Sbas End With Next I

End Sub - 68 -

End Sub

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I

69

Idat

- 69 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I
Ejercicio:Aplicaciones con registros

70

Idat

- 70 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I

71

Idat

Consideraciones: Los puntajes son selccionados de 1 a 20 El Puntaje total se calcula ( suma de los tres puntajes: Medidas, simpata y cultura) Estos datos sern almacenados dentro de una tabla temporal de tipo registro El Numero de Concursante se genera a la hora que se ingrese nuevas concursantes En el listado se podr visualizar todas las concursantes ingresadas en la pagina anterior, adems este listado se podr ordenar por: Nombre el listado sera ordenado por este campo, por puntaje o numero de orden En la pagina de resultado se mostrara la concursante ganadora General, que concursante tuvo la mayor simpata y la de mejores medidas. 2.- Se tiene un Registro de almacn cuyos campos son: Cdigo de Producto, Descripcin, Precio de costo y stock. Se pide realizar un programa para permitir: a) Ingresar nuevos Productos b) Venta de Productos donde al elegir el cdigo de producto, mostrara automticamente todos sus datos dando opcin a ingresar la cantidad a comprar calculando el total a pagar respectivamente, tambin se debe contemplar en caso de vender una cantidad mas del stock disponible mostrando un error c) Cada vez que se efectu una venta el stock del producto vendido deber ser actualizado d) En la lista de productos, puede estar ordenado por: Descripcin, cdigo y stock. Ejemplo:

- 71 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I

72

Idat

Vamos a disear un formulario el cual tendra como finalidad registrar el codigo,nombre y sexo de un alumno para eso vamos a utilizar variables de tipo registro Conforme se va aadiendo los datos se mostraran en el Grid(MsflexGrid llamado TABLA) Ademas validaremos que la ingresar los datos sean datos validos para eso crearemos procedimientos y funciones Otra cosa que debemos de tener en cuenta es que el boton Nuevo y Grabar(CMDNUEVO) es el mismo y mediante programacin haremos que su apariencia cambie asi como tambien el boton Cancelar y Salir(CMDSALIR) Ademas contamos con un nuevo control llamado Microsoft Tabbed Dialog Control 6.0 (Proyecto-Componentes) Para tener 2 pestaas escogemos la propiedad TABS y ponemos 2 Para cambiar el caption de cada TAB se escoge la pestaa y nos vamos a la propiedad CAPTION En el Modulo debemos hacer lo sgte.: Type Alumno 'Aqui se declara la estructura se llama alumno cod As Integer nom As String * 30 sexo As Boolean End Type Public r() As Alumno 'Aqui la variable R que sera el arreglo como ven es dinamico Sub main() ReDim r(0) FrmMant.Show 'Noten aqui que hemos creado un sub llamado Main y es ese el objeto inicial del proyecto 'Inicializamos la variable R y llamamos al formulario 'No olvidar que en el proyecto debemos escoger como objeto inicial SUB MAIN End Sub NOTA: Sub main viene a ser como un procedimiento inicial que podemos crear y el VB lo reconocera dando la opcion de ponerlo como objeto Inicial se utiliza mas que nada para inicializar valores variables, etc. Y de ah se debe llamar al formulario el cual queremos ejecutar. En el Formulario: GeneraL Dim Si_Nuevo% Sub ActivaControles(ByVal Modo As Boolean) 'Para activar los botones y texto(FRAME1) Frame1.Enabled = Modo - 72 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I

73

Idat

'Boton Nuevo y Grabar es el mismo CmdNuevo.Caption = IIf(Modo, "Grabar", "Nuevo") CmdNuevo.Picture = LoadPicture(App.Path & IIf(Modo, "\SAVE.BMP", "\NEW.BMP")) CmdModificar.Caption = "Modificar" CmdModificar.Picture = LoadPicture(App.Path & "\edit.bmp") 'Boton salir y Cancelar es el mismo CmdSalir.Caption = IIf(Modo, "Cancelar", "Salir") CmdSalir.Picture = LoadPicture(App.Path & IIf(Modo, "\UNDO.BMP", "\CLOSE.BMP")) CmdModificar.Enabled = Not Modo End Sub Sub Limpia() txtcod = "" txtnom = "" Option1.Value = True End Sub Function valida() As Boolean 'Validar si se ingresa datos If Trim(txtcod) = "" Then MsgBox "Ingrese Codigo", vbCritical, "Mensaje" txtcod.SetFocus valida = False Exit Function End If If Trim(txtnom) = "" Then MsgBox "Ingrese Nombre", vbCritical, "Mensaje" txtnom.SetFocus valida = False Exit Function End If valida = True End Function Sub llena(ByVal pos%) r(pos).cod = Val(txtcod) r(pos).nom = txtnom r(pos).sexo = Option1.Value For i = 0 To UBound(r) Tabla.TextMatrix(i + 1, 0) = r(i).cod Tabla.TextMatrix(i + 1, 1) = r(i).nom Tabla.TextMatrix(i + 1, 2) = IIf(r(i).sexo, "M", "F") Next End Sub Private Sub CmdModificar_Click() Si_Nuevo = 3 Call ActivaControles(True) End Sub Private Sub CmdNuevo_Click() - 73 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I

74

Idat

Dim p% If Si_Nuevo = 1 Then Call ActivaControles(True) Call Limpia txtcod.SetFocus Si_Nuevo = 2 Else If valida Then p = IIf(Si_Nuevo = 2, UBound(r), Tabla.Row - 1) 'Si se va a grabar un nuevo dato la posicion sera el ultimo elemento de R 'Si se va a modificar se debe escoger el elemento seleccionado del Grid Call llena(p) If Si_Nuevo = 2 Then ReDim Preserve r(p + 1) Tabla.Rows = Tabla.Rows + 1 End If Si_Nuevo = 1 Call ActivaControles(False) End If End If End Sub Private Sub CmdSalir_Click() If Si_Nuevo > 1 Then Si_Nuevo = 1 Call ActivaControles(False) Else End End If End Sub Private Sub Form_Load() Call ActivaControles(False) Si_Nuevo = 1 Tabla.TextMatrix(0, 0) = "Codigo" Tabla.TextMatrix(0, 1) = "Nombre" Tabla.TextMatrix(0, 2) = "Sexo" End Sub Private Sub Tabla_RowColChange() 'Muestra los datos del grid a los textos txtcod = Tabla.TextMatrix(Tabla.Row, 0) txtnom = Tabla.TextMatrix(Tabla.Row, 1) If Tabla.TextMatrix(Tabla.Row, 2) = "M" Then Option1.Value = True Else Option2.Value = True End If End Sub Nota: en la pestaa Consulta se debe escoger un sexo y deben salir los alumnos de ese Sexo.

- 74 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Visual Basic I

75

Idat

25.- Controles ACTIVE X (ToolBar, ImageList, ProgressBar, StatusBar, ShockWaveFlash)


Formulario Principal (Es el que llamara a los demas) Se debe crear un proyecto en Visual basic. Se debe agregar un MDI

Ejemplo de Presentacion de Un Sistema

- 75 -

Easy PDF Creator is professional software to create PDF. If you wish to remove this line, buy it now.

Das könnte Ihnen auch gefallen