Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Partes de la Computadora.
Abrimos el programa Visual Basic seleccionamos Nuevo proyecto y comenzamos a trabajar. Este ejercicio muestra un truco muy sencillo pero de gran utilidad. A veces tenemos una imagen total que queremos particionar, en este caso la computadora, que nos permite subdividirla en tres partes : monitor, teclado, gabinete. Esto por cdigo sera muy complejo pero usando el control Label en su modo transparente y con el Caption vaco, o sea sin etiqueta nos permite subdividir la imagen y que sus partes respondan a el evento Click por separado, provocando una respuesta distinta. En el formulario podemos ver la Label dibujada sobre el monitor, todava opaca como viene por defecto, luego sobre el gabinete est transparente pero con el Caption , tambin por defecto en este caso : Label2. Y en el teclado donde est posicionado el cursor en cambio est transparente. De acuerdo a la parte que seleccionemos: en una cuarta Label se nos mostrar el texto correspondiente, en el caso del formulario : "Teclado". En este ejercicio tenemos una Image, con su Propiedad Stretch a True, lo que nos permite agrandar un icono al tamao deseado. Y cuatro Labels, tres transparentes para subdividir la Image y una opaca para mostrar la parte seleccionada, y un Botn de Salida. El Cdigo de este ejercicio es el siguiente: Private Sub Command1_Click() End ' Cierre de la aplicacin End Sub Private Sub Label2_Click() 'El evento Click modifica el titulo de 'label1 Label1.caption = "Monitor" End Sub Private Sub Label3_Click()
2
Label1.caption = "Gabinete" End Sub
Crucigrama.
Comenzamos un nuevo proyecto. Con este ejercicio queremos sugerir una ejemplo de crucigrama que cada uno podr adaptar a los contenidos requeridos. Tambin a partir de aqu podramos elaborar un Ahorcado. El crucigrama est armado con cuadros de texto o sea controles Text, encerrados dentro de un control frame, este control tiene la nica finalidad de agrupar y contener otros controles, ordenando la interactividad de una manera visual. Otros dos controles Frame agrupan las opciones vertical y horizontal. Conteniendo controles CheckBox que al ser seleccionados hacen la correccin de las letras ingresadas en las cajas de texto. El ingreso de las mismas se hace en tiempo de ejecucin a travs del teclado. A la derecha vemos unos controles Picture vacos que se cargaran con imgenes que muestren por ejemplo una cara sonriente si la palabra es correcta o seria si no lo es, o cualquier otro tipo de imagen .Podemos llamar a esta imagen con la funcin LoadPicture desde cualquier parte de nuestro disco rgido. Y un botn con el icono de Hijitus indica la Salida y cierre del programa. Ac tendremos que crear por cdigo una estructura condicional que controle si la entrada de datos es correcta o no. El cdigo es el siguiente: Private Sub Command1_Click() End End Sub Private Sub Check1_Click() If Text1.Text = "L" And Text2.Text = "O" And Text3.Text= "R" And Text4.Text ="O" then ' este cdigo debe ir todo en un mismo regln y 'chequea si se escribi una de las palabras
Sumas.
El botn Aplicar permite hacer la correccin mediante un Condicional. Algunos de estos temas son comunes a otros ejercicios. Por lo tanto nos centraremos en las funciones nuevas. La funcin Rnd nos permite cargar en una variable un nmero aleatorio que en este caso definimos como entero Int (de Integer) y de 0 a 10. Num1 = int( Rnd * 10) Repetimos el procedimiento para Num2, el segundo sumando de nuestra cuenta. Para que realmente sea aleatorio debemos incorporar la sentencia Randomize en el Procedimiento Load del Formulario. Otra funcin que utilizamos es Val que transforma una cadena de caracteres, en este caso el contenido de un Text en un valor numrico. Resultado = Val ( Text1.Text) Y luego con un condicional y el operador de suma + controlamos si el resultado es correcto: If resultado = Int(num1) + Int(num2) then... En el caso de resolver bien la cuenta pasa a cargar otros dos nmeros , iniciando una nueva cuenta. Pero necesitamos una espera en la aplicacin. Esto lo hacemos por cdigo con un bucle que asociado al reloj del sistema crea una pausa en la aplicacin. Para esto creamos un Procedimiento llamado Pausa. Posicionados en la ventana de cdigo , vamos a Tools/ Herramientas, Add Procedure/ Agregar Procedimiento, y en la ventana que se nos abre elegimos un Name para el mismo en este caso = Pausa y luego con los botones de opcin seleccionamos: Sub y Private. Damos el Aceptar y se cierra la ventana. Ahora veremos en nuestra ventana de cdigo un nuevo Procedimiento llamado Pausa. Incluido dentro de los procedimientos del objeto General. Luego lo llamaremos desde otra parte del programa con la sentencia Call.
Para mayor claridad vamos al cdigo: Option Explicit Dim num1, num2, resultado As Integer Private Sub pausa() ' este el procedimiento creado por nosotros Dim comenzar Dim controlar comenzar = Timer Do Until controlar > = comenzar + 1.5 ' este es el bucle de espera controlar = Timer DoEvents ' esta sentencia evita un bucle egoista Loop End Sub Private Sub Command1_Click() num1 = Int(Rnd * 10) 'elige un nmero aleatorio num2 = Int(Rnd * 10) 'elige un nmero aleatorio Text1.Text = "" Label1.Caption = num1 Label2.Caption = num2 Text1.SetFocus ' ubica el foco del cursor en el control Text1 Command2.Enabled = False Image1.Picture = Nothing 'vaca el contenido de la imagen End Sub
6
Private Sub Command2_Click() Command2.Enabled = False
7
End Sub
En este formulario desplegamos datos en cajas de texto y a travs del Boton Imprimir vamos a darle salida a estos datos por la Impresora que el sistema tenga por defecto. Para esto usamos el objeto Printer, que nos permite controlar el texto, cambiar su aspecto, tamao, tipo y color de la fuente y coordenadas. Private Sub Command1_Click() Printer.Orientation = 1 ' La orientacin del papel es vertical Printer.FontSize = 12 'Tamao de la letra Printer.Print 'Un rengln en blanco o salto de carro Printer.Print Printer.Print Printer.Print Tab(15); Label1.Caption; Tab(30); Text1.Text 'Aqu damos la orden de impresin del caption de la label1 a 15 espacios 'del margen izquerdo y luego a 30 espacios del margen izquierdo el 'contenido del texto. Printer.Print Printer.Print
8
Printer.Print Tab(15); Label2.Caption; Tab(30); Text2.Text Printer.Print
Internet
Este ejercicio nos permite mediante un evento click sobre un botn conectarnos con un sitio web determinado, incorporando el control WebBrowser, este control no es estndar y lo debemos traer de Componentes, Microsoft Internet Control.
Private Sub Command1_Click() WebBrowser1.Navigate "http://www.yahoo.com" 'WebBrowser1.GoHome End Sub La propiedad Navigate del control WebBrowser es el nos permite navegar hacia un sitio web, estando conectados a nuestro servidor, obviamente, la otra propiedad alternativa GoHome nos conecta con la pgina predeterminada de Inicio. Este control nos resulta muy til cuando queremos que los alumnos consulten determinados sitios, antes visitados por nosotros, y as evitamos navegaciones intiles o peligrosas por sus contenidos.
Un Navegador.
Otro ejercicio usando el control WebBrowser, en este caso creamos un Navegador muy simple. Con el control Toolbar asociado al ImageList creamos una barra de herramientas, esto ya lo hemos visto en otros ejercicios. Por lo tanto nos centraremos en otras propiedades del WebBrowser. Una caja de texto contiene la URL o direccin del sitio a visitar. Y una barra de estado o StatusBar dividida en tres paneles despliega: un mensaje, la hora y la fecha respectivamente. El cdigo es el siguiente: Private Sub Command1_Click() ' este control est oculto If Text1.Text <> "" Then WebBrowser1.Navigate Text1.Text If WebBrowser1.Visible = False Then WebBrowser1.Visible = True End If
10
11
End Sub Private Sub WebBrowser1_DownloadBegin()
Dibujar
Con este ejercicio podrn los alumnos dibujar en tiempo de ejecucin. Podemos agregarles una paleta de colores similar al Paint. En caso de imprimir el dibujo es necesario que la propiedad del Formulario Autoredraw est a True para que el formulario se refresque e imprima el dibujo realizado. Dim draw As Boolean 'declaramos una variable buleana Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) draw = True 'estamos dibujando CurrentX = X' carga en la variable la ubicacin en la coordenada X CurrentY = Y' carga en la variable la ubicacin en la coordenada Y End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If draw Then Line -(X, Y) ' si la variable draw esta a verdadera 'dibuja cada uno de los puntos. End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) draw = False 'la variable draw a falsa detiene el dibujo End Sub
12
A pedido de varios seguidores de nuestra pgina vamos a integrar en un solo proyecto varios formularios. El proyecto se compone de 5 formularios: Presentacin, Planetas, Informacin, Evaluacin y Crditos.
Retomando un ejercicio simple ya explicado el N 7 El Sistema Solar, vamos a agregarle una primera pantalla de presentacin con distintos botones o labels que nos vinculan a los otros formularios: La label Planetas nos muestra el formulario del ejercicio N7 con los distintos planetas y el procedimiento Clic de cada label transparente nos vincula a una Base de Datos previamente armada con el Data Jet, el motor para Base de Datos de Visual Basic 5 o con Access, donde tendremos la informacin referente a cada planeta, en este caso: el nombre del planeta, su distancia al sol en km. y la cantidad de satlites (El proyecto final est incompleto, Uds. pueden completarlo como les resulte ms conveniente).
Al hacer Clic sobre uno de los planetas se nos abre la siguiente pantalla: El cdigo que nos vincula a la base de datos convocada por un control Data que se encuentra invisible en el formulario de Informacin es el siguiente: Private Sub Label12_Click() 'Esta label corresponde al planeta 'Jpiter Label2.Caption = "Jpiter" Form2.Data1.Recordset.MoveFirst 'mueve el puntero al comienzo
13
El formulario de evaluacin se asemeja al siguiente: Y el cdigo es: Private Sub Picture1_Click() 'imagen de Jpiter planeta = InputBox("Qu planeta es este?", "Planetas") If UCase(planeta) = "JPITER" Then contar = contar + 1 Label2.Caption = contar End If
14
satelite = InputBox("Cuntos satlites tiene?", "Planetas") If satelite = "16" Then
Combinando sonidos.
El siguiente ejercicio muestra como usar el control multimedia para desplegar sonidos de tipo Midi o Wave e incluso poder superponer un sonido a otro: Cuando se abre el formulario se ejecuta el archivo Midi y si nosotros hacemos Clic sobre el botn Wave escuchamos los gritos de Tarzan por encima de la msica de fondo que se sigue ejecutando. Esto nos resulta til para ciertas aplicaciones donde queremos dejar una msica de fondo, o entretenimientos que combinan sonidos.
15
Vnculos.
Este ejercicio lo hemos armado a pedido de un visitante colombiano, Luis, docente en Informtica. Y nos permite vincular una palabra con una imagen especfica dentro del contenido desplegado en una Label.
16
Usamos como truco una label transparente superpuesta sobre la palabra que recibe el evento click y que se vincula a la imagen. El programa en ejecucin es similar a esta imagen: Sobre la palabra comida y animal tenemos superpuesta una label con la letra en azul para que muestre la posible interactividad, tambin cambiamos el puntero del mouse a una manito cuando pasa por sobre las palabras. Y al hacer click cambia el contenido de la Image en su propiedad picture. El cdigo del evento click de la primer label es: Private Sub Label2_Click() Image1.Picture = Picture2.Picture Label4.Caption = "Una rica hamburguesa" End Sub
Contrasea. Varios visitantes nos han pedido algn ejercicio que use una contrasea para entrar a un programa. Aqu va un ejemplo. Vamos a usar la funcin InputBox que al abrir una ventana con una caja de texto nos permite ingresar la contrasea.
Si no queremos usar la funcin podemos reemplazarla por el uso de un pequeo formulario diseado a nuestro gusto con una caja de texto. El programa se ve as: Y el cdigo del evento click del Botn Acceso al Sistema es el siguiente: Dim nombreusuario As String
17
Dim contrasea As String nombreusuario = InputBox("Introduzca su Nombre")
Editor de men.
En este ejercicio vamos a usar el Editor de men de Visual Basic, que nos permite crear un men con las caractersticas de windows. Para poder activarlo debemos estar en la ventana de formulario u objeto, no en la de cdigo. Mediante botones de opcin vamos a hacer visibles o invisibles los mens que hemos diseado, en este caso el tema ser platos de comida y los mens sern sobre: Platos fros, calientes y postres. El programa ejecutado se v as:
18
Posicionados en la ventana formulario activamos el Editor mediante el cono y cuando se abre la ventana vamos configurado los distintos item del men como se ve en la siguiente imagen: Aqu hay dos propiedades muy importantes, el caption del men que ser el ttulo que aparezca en el men y el name del men, el caption puede estar vaco pero el name no, Y vamos anidando los submens que queremos incorporar, como lo muestra la imagen, para desplegar un submen hacemos click en next y en la flecha hacia la derecha para hacer una sangra que indica los subtemas del men. Cada integrante del men responde a un solo evento que es el Click. Para probarlo podemos agregar el siguiente cdigo en el evento click de cada men: MnuFiambres_Click() MsgBox "haz hecho click en la opcin bandeja de Fiambres" End Sub. Esto no est includo en el ejercicio, pero puede agregarle cualqier evento para testear el funcionamiento. En relacin al cdigo que hace visible u oculta un tipo de men , agregamos un botn que aplica o ejecuta la opcin de opcin seleccionada con el siguiente cdigo en el evento click del botn Aplicar: Private Sub Command1_Click() If Option1 Then ' mostrar men de Entradas mnuEntradas.Visible = True mnuCalientes.Visible = False mnuPostres.Visible = False ElseIf Option2 Then ' mostrar men Platos Calientes mnuEntradas.Visible = False mnuCalientes.Visible = True mnuPostres.Visible = False Else mnuEntradas.Visible = False mnuCalientes.Visible = False mnuPostres.Visible = True End If End Sub
19
Encuesta Graciosa.
Este ejercicio lo podemos hacer y llevar, su arranque al trabajo y preguntarle a nuestros colegas, o compaeros si Est conforme con el sueldo que gana. Como damos por supuesto que la mayora va a contestarnos que No, hicimos un pequeo chiste , ya que al querer hacer Click en el Botn de No, este se nos escapar. El cdigo es el siguiente: Private Sub Command1_Click() End End Sub Private Sub Command2_Click() MsgBox "Sufre el mismo mal que millones de Argentinos!!" End Sub Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command2.Move CInt(Rnd * (Width - Command2.Width)), CInt(Rnd * (Height Command2.Height))
20
Temperaturas.
En este ejercicio, simplemente entramos en tiempo de ejecucin una temperatura para cada da de la semana y luego haciendo click en los botones: Alta, Media y Baja , devuelve los valores en otras cajas de texto. El cdigo es el siguiente: Option Explicit Dim alta As Single Dim dia As Integer Dim baja As Single Dim media As Single Private Sub Command1_Click() ' mostrar el valor ms alto de los textbox() en el text Alta alta = Text1(0).Text For dia = 1 To 6 If Text1(dia).Text > alta Then alta = Text1(dia).Text End If Next dia
21
22
Text1(dia).Text = "" Next dia
Texto y RTF.
En este Ejercicio vamos a ver como hacemos para directamente desplegar un texto ya copiado y grabado en un archivo con extensin TXT, que podemos tipear en cualquier editor como el NotePad, por ejemplo y otro texto con formato RTF (Rich Text File, o sea archivo de texto enriquecido) . Este formato puede grabarse en el Word, vamos a grabar como... y all seleccionamos RTF.
Se llama texto enriquecido porque permite incluir distintos tipos de letras, colores y tamaos o sea ms variantes en su formato. Y el control que vamos a usar para desplegar este texto con formato RTF es el RichTextBox 8es un control no estndar, por lo tanto debemos traerlo de Componentes), para el texto comn o sea con formato TXT, usaremos un TextBox de la caja de herramientas estandar. El formulario tendr el siguiente aspecto: Tenemos dos controles para desplegar el texto: un Text1 y un RichTextBox1, y dos botones en cuyos eventos Click se desplegarn por cdigo los archivos mencionados en los controles de texto. Primero debemos crear un archivo en el NotePad o en el Word y grabarlo como TXT y otro con variacines en el tipo, color y tamao de la letra y grabarlo como rtf. Luego abrimos visual y en creamos un nuevo proyecto grabandolo en el mismo directorio y carpeta que tenemos los archivos: txt y rtf. El cdigo de cada botn es el siguiente:
23
Option Explicit 'Esta expresin nos fuerza a declarar las variables. Private Sub Command1_Click() 'Este boton es el que carga el 'archivo TXT
Rompecabezas.
En este ejercicio armaremos un rompecabezas con las partes del esqueleto de un gato.
Los procedimientos usados ya son conocidos: Dragear y soltar, uso de un Control PictureClip y de arrays de Imagenes para cargar las partes del rompecabezas.La imagen de la aplicacin se parece a la siguiente: Option Explicit Private Sub Command1_Click()'el boton Salir cierra el programa End
24
25
26
De acuerdo a su valor este determinar el color del fondo del formulario, y del tipo de un terce control Text. La aplicacin se as: Aqu tambin debemos prestar atencin a la propiedad Value, Y a los procedimientos Change y Scroll, que testean cuando se modifica el valor de la barra horizontal. Tambin debemos determinar los valores de las propiedades Min y Max en este caso, a 0 la primera y 15 la segunda y dejamos el LargeChange o sea el largo del cambio, a 1. El cdigo es el siguiente: Option Explicit HScroll1_Change() Text1.Text = HScroll1.Value Text3.BackColor = QBColor(HScroll1.Value) End Sub Private Sub HScroll1_Scroll() Text1.Text = HScroll1.Value Text3.BackColor = QBColor(HScroll1.Value) End Sub Private Sub HScroll2_Change() Text2.Text = HScroll2.Value Text3.ForeColor = QBColor(HScroll2.Value) End Sub Private Sub
27
Barra de Porcentaje.
Este ejercicio nos permite hacer una Barra de progreso al estilo windows, donde nos muestra el porcentaje cubierto.El formulario tiene el siguiente aspecto: Los controles que usamos son un Botn que activa el proceso y una picture que va cambiando su color a medida que el porcentaje aumenta.El cdigo es el siguiente: Private Sub Command1_Click() Picture1.ForeColor = RGB(0, 0, 255) 'color azul For i = 0 To 100 'un bucle que llama al procedimiento 'actualizaprogress actualizaprogress Picture1, i Call pausa 'procedimiento de espera Next i End Sub Private Sub actualizaprogress(pb As Control, ByVal percent) Dim num$ ' porcentaje 'el autoredraw de la picture debe estar a = true pb.Cls pb.ScaleWidth = 100 pb.DrawMode = 10
28
Slider
29
En este ejercicio vamos a ejecutar archivos MP3 usando el control Media Player. Que debemos traer de componentes, y por supuesto tenerlo instalado en nuestro sistema a una de sus ltimas versiones. Los controles que usamos son: un Media palyer, los tres controles tipicos para manipular archivos : DriveListBox, el DirListBox y el FileListBox, dos botones y dos labels con un timer que daran cuenta del tiempo total y parcial del archivo. El cdigo es: Option Explicit Dim Min As Integer Dim Sec As Integer Dim Nombrearchivo As String Dim Abrirarchivo As Boolean
30
Private Sub File1_Click()'selecciona el archivo MP3 If Right(Dir1.Path, 1) = "\" Then Nombrearchivo = Dir1.Path & File1.FileName Else Nombrearchivo = Dir1.Path & "\" & File1.FileName End If End Sub
Private Sub MediaPlayer1_OpenStateChange(ByVal OldState As Long, ByVal NewState As Long)'mide el tiempo total de duracin del archivo Min = MediaPlayer1.Duration \ 60 Sec = MediaPlayer1.Duration - (Min * 60) Label7.Caption = "Tiempo Total: " & Format(Min, "0#") & ":" & Format(Sec, "0#") Abrirarchivo = CBool(NewState) End Sub Private Sub Timer1_Timer()'con el timer actualiza la label de tiempo 'transcurrido Min = MediaPlayer1.CurrentPosition \ 60 Sec = MediaPlayer1.CurrentPosition - (Min * 60) If Min > 0 Or Sec > 0 Then Label8.Caption = "Tiempo transcurrido: " & Format(Min, "0#") & ":" & Format(Sec, "0#") Else Label8.Caption = "Tiempo transcurrido: 00:00" End If End Sub Para que muestre solo los archivos MP3 en la propiedad Pattern del FileListBox: ingresamos "*.MP3"
31
Clave de Seguridad
Hay muchas maneras de incluir en un ejercicio cierto control de seguridad a travs de una clave, o password, en esta aplicacin se hace utilizando la propiedad tag del control Text, donde se ingresa. El cdigo es: Private Sub cmdAceptar_Click() Static Intentos As Integer Dim Espera As Long If UCase(txtPassword.Text) = txtPassword.Tag Then CandadoCerrado.Picture = CandadoAbierto.Picture Image1.Visible = False Refresh Espera = Timer 'Espera 2 seg, muestra el formulario principal While Espera + 2 > Timer Wend 'Descarga esta forma Unload frmClave Form2.Show Else Intentos = Intentos + 1 If Intentos = 3 Then MsgBox "Lo siento...Demasiados intentos", vbCritical, "Acceso Negado" txtPassword.SetFocus End Else MsgBox "Presione OK e intente otra vez", vbInformation, "Clave Incorrecta" txtPassword.SelStart = 0 txtPassword.SelLength = Len(txtPassword) txtPassword.SetFocus End If End If End Sub Private Sub cmdSalir_Click() End End Sub
32
Servicio
Este ejercicio utiliza Botones de Opcin y fue realizado a partir del pedido de un alumno por mail. Tambin integra: labels, caja de textos, botones y calcula el total del valor del pedido de acuerdo a la opcin seleccionada y la cantidad. Su cdigo es el siguiente: 'Declaracin de las variables para el precio de cada una. Dim Hamburguesa As Single Dim HotDog As Single Dim Sandwich As Single Dim Gaseosa As Single Dim Refresco As Single Dim PapasFritas As Single 'Declaracin de variables para la cantidad de cada una. Dim CantidadHamburguesa As Integer Dim CantidadHotDog As Integer Dim CantidadSandwich As Integer Dim CantidadGaseosa As Integer Dim CantidadRefresco As Integer Dim CantidadPapasFritas As Integer Private Sub cmdCalcular_Click() 'Multiplicando la cantidad por el precio y sumando para hallar el total. Total = (CantidadHamburguesa * Hamburguesa) + (CantidadHotDog * HotDog) + _ (CantidadSandwich * Sandwich) + (CantidadGaseosa * Gaseosa) + _ (CantidadRefresco * Refresco) + (CantidadPapasFritas * PapasFritas) lblTotal.Caption = "$ " & Total End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() 'Inicializar las variables 'Precio de los productos Hamburguesa = 20.5
33
34
'Habilitar las cajas de texto. txtHamburguesa.Enabled = True txtGaseosa.Enabled = True txtPapasFritas.Enabled = True 'Deshabilitar las otras cajas de texto. txtHotDog.Enabled = False txtSandwich.Enabled = False txtRefresco.Enabled = False 'Limpiar las otras cajas de texto. txtHotDog.Text = "" txtSandwich.Text = "" txtRefresco.Text = "" End If End Sub Private Sub optPedido2_Click() 'HotDog,Gaseosa y Papas Fritas. 'Limpiar el label lblTotal. lblTotal.Caption = "" If optPedido2.Value Then 'Inicializar las variables. CantidadHotDog = 1 CantidadGaseosa = 1 CantidadPapasFritas = 1 CantidadHamburguesa = 0 CantidadSandwich = 0 CantidadRefresco = 0 'Inicializar la caja de texto. txtHotDog.Text = CantidadHotDog txtGaseosa.Text = CantidadGaseosa txtPapasFritas.Text = CantidadPapasFritas 'Habilitar las cajas de texto. txtHotDog.Enabled = True txtGaseosa.Enabled = True txtPapasFritas.Enabled = True 'Deshabilitar las otras cajas de texto. txtHamburguesa.Enabled = False txtSandwich.Text = False txtRefresco.Text = False 'Limpiar las otras cajas de texto. txtHamburguesa.Text = "" txtSandwich.Text = "" txtRefresco.Text = "" End If End Sub
35
36
37
38
Funcin Mod
39
Este ejercicio usa las funcines Mod y Format que nos permiten dar formato al valor del tiempo que muestra el cronmetro. Usamos una Label y tres botones para las acciones. El cdigo es: Dim I As Long 'Contador. Dim Tiempo As String 'Tiempo total transcurrido. Private Sub cmdDetener_Click() Timer1.Interval = 0 End Sub Private Sub cmdIniciar_Click() I = 0 'Inicializar el contador. Timer1.Interval = 0 'Detener el cronometro lblCronometro.Caption = "" 'Limpiar la etiqueta Timer1.Interval = 1 'Iniciar el cronometro End Sub Private Sub cmdSalir_Click() End End Sub Private Sub Timer1_Timer() I=I+1 Tiempo = Format(Int(I / 36000) Mod 24, "00") & ":" & _ Format(Int(I / 600) Mod 60, "00") & ":" & _ Format(Int(I / 10) Mod 60, "00") & ":" & _ Format(I Mod 10, "00") lblCronometro.Caption = Tiempo End Sub
Calendario.
Estos dos controles: el MonthView y el DTPicker son controles especiales que trae la versin 6 y que podemos traer de Componentes, seleccionando Microsoft Windows Common Controls - 2 6.0, y como vemos nos despliegan hora y fecha y un calendario que podemos recorrer.
40
Validar un texto.
El control caja de Texto tiene ahora en esta versin 6 un nuevo procedimiento que nos permite controlar la informacin que se ingresa, y una vez validada recin pasar al campo de texto siguiente. Prueben tratar de pasar a la caja de texto siguiente sin ingresar ningn dato con la tecla Tab y vern que no lo permite. El cdigo es: Private Sub Text1_Validate(Cancel As Boolean) If Text1.Text <> "MIRTA" Then MsgBox "Debes tipear MIRTA en el primer texto para pasar al segundo.", vbInformation, "Instrucciones" Cancel = True End If End Sub Private Sub Text2_Validate(Cancel As Boolean) If Text2.Text <> "CONSUDEC" Then MsgBox "Debes tipear CONSUDEC en el segundo texto para pasar al tercero.", vbInformation, "Instrucciones" Cancel = True End If End Sub
41
Coolbar.
Este control pertenece al grupo Microsoft Windows Common Controls 3 6.0, y permite desplegar una barra que contenga otros controles. En este caso al hacer Click en el icono del Reloj despliega la hora. Estos controles que se insertan dentro de la Coolbar pueden mantenerse flotantes o fijos. El cdigo es: Private Sub Command1_Click() Label1.Caption = Time End Sub Private Sub Form_Activate() List1.AddItem "Chocolates" List1.AddItem "Caramelos" List1.AddItem "Chupetines" List1.AddItem "Galletitas" End Sub En el caso de la Lista le agregamos distintos Items a travs del Mtodo AddItem en tiempo de ejecucin.
42
Barra de progreso.
Este ejercicio nos muestra el uso de una barra de progreso que podemos usar mientras se realiza la carga de un archivo o en otro momento de espera hasta que se complete una tarea. El cdigo es el siguiente: Option Explicit Private Sub cmdSalir_Click() End End Sub Private Sub Form_Load() 'Inicializamos el timer para que este apagado Timer1.Enabled = False End Sub Private Sub cmdComenzar_Click() 'Inicializamos la barra de progreso, y comenzamos el Timer Progreso.Value = 0 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() 'Si el progreso todava no termina, seguir aumentando Value hasta 100 With Progreso If .Value < .Max Then .Value = .Value + 1 Else 'Termino MsgBox "Proceso Terminado", , "Barra de Progreso" 'Deshabilitamos el Timer Timer1.Enabled = False
43
Barra de estado.
Un ejemplo de como modificar en tiempo de ejecucin la Barra de estado. En el formulario tenemos una caja de texto donde ingresamos el texto a desplegar y luego en el click de un botn lo asignamos al panel de la barra correspondiente. El cdigo correspondiente es: Private Sub cmdAceptar_Click() StatusBar1.Panels("Texto").Text = txtPanel End Sub Como vemos es muy sencillo, para asignarle un valor al panel correspondiente debemos identificarlo con el nombre del mismo, determinado en la ventana propiedades, para tener acceso al mismo debemos hacer click con el boton derecho sobre el control y alli podemos configurar los distintos paneles.
Pestaas.
44
45
Promedio de Notas
Este ejercicio nos permite ingresar una cantidad de valores, por ejemplo las notas de un alumno, y luego obtener su promedio. En el formulario usamos cuatro botones, dos cajas de texto, y un ListBox, un frame y tres Labels. El cdigo es el siguiente: Option Explicit Dim Nota() As Single Dim N As Integer 'Nmero total de notas.
Private Sub cmdBorrarNota_Click() Dim i As Integer, NotaInd As Integer NotaInd = List1.ListIndex + 1 'Asigna el orden del elemento de la lista a una variable. If List1.ListIndex = -1 Then 'Si no esta checheada la lista. MsgBox "Haga click en la lista para borrar la nota" Exit Sub Else List1.RemoveItem (List1.ListIndex) 'Borra de la Lista la Nota Text1.Text = "" 'Limpia el texto. 'Eliminar la nota de indice (List1.ListIndex+1) y correr las notas For i = NotaInd To N - 1 Nota(i) = Nota(i + 1) Next i N = N - 1 'actualizando nmero de notas por ser borrada una. If N > 1 Then ReDim Preserve Nota(1 To N) 'Reajustando la dimensin del arreglo notas Text2.Text = "" End If End Sub
46
47
48