Universidad Nacional de Ingeniería Facultad de Tecnología de la Construcción Departamento de Construcción Guía de Laboratorio Introducción a la Computación Ing. José Trinidad Pérez Moncada http://docentes.uni.edu.ni/ftc/Trinidad.Perez/ Práctica No. 4: “Operaciones Aritméticas” La práctica No. 3 tiene como finalidad, realizar las operaciones aritméticas de sumar, restar, multiplicar y dividir; utilizando nuevos controles. Similar a la práctica No 2, se agregaron los controles Label y los controles Textbox para capturar los datos y resultado. (Opcionalmente, podríamos utilizar el formulario de la práctica No. 2 y borrar todos los controles CommandButton que se visualizan). Dejando disponibles dos controles CommandButton, uno para Actualizar y el otro para limpiar contenido en los TextBox. En esta versión se agregaron dos nuevos controles, el control Frame y el control OptionButton. Metodología a Seguir Para Lograr una Buena Aplicación Con la práctica No. 4, se pretende retomar la versión anterior (Práctica No. 3) para mejorar su presentación, para que el usuario interactúe con el sistema una vez que se esté ejecutando. La práctica No. 4, tiene como finalidad modificar la propiedad BackColor de los TextBox, veremos algunos sucesos que capturan la posición del cursor, así como, de la acción SetFocus. Aprenda lo básico de Visual Basic 6.0 Ing. José Trinidad Pérez Moncada Página [ 1] Propiedad BackColor Todos los controles tienen la propiedad BackColor, con ella podemos modificar el color del fondo que presenta el control. Puede ser modificada en tiempo de Diseño. En primer plano, presenta los colores del sistema, opcionalmente, puede seleccionar Paleta de colores, para elegir el color deseado. Seleccionado el col or por el programador este se guarda en la casilla de la propiedad BackColor en código Hexadecimal. En nuestra aplicación, seleccione el control Text3, y establezca para él un color fijo . Ejemplo, color verde. Para los controles Text1 y Text2, le cambiaremos el color únicamente si el cursor está posesionado sobre el control, para ello nos vamos a valer de los suceso GotFocus, LostFocus y MouseMove. En tiempo de diseño, pulse doble clic sobre el control (Text1) , visualice los sucesos disponibles, selecciones los suceso GotFocus, LostFocus y MouseMove. con estos sucesos, se pretende modificar el color del fondo del control una vez que esté seleccionado, si se cambia que vuelva a su estado original. Pulsemos doble clic sobre el control Text1, para ilustrar lo que deseamos realizar. Seleccione el suceso GotFocus Cuando el control Text1 esté seleccionado, cámbiese el color del fondo a celeste (se agrega el código hexadecimal). Private Sub Text1_GotFocus() F1.Text1.BackColor = &HFFFF00 End Sub Aprenda lo básico de Visual Basic 6.0 Ing. José Trinidad Pérez Moncada Página [ 2] Seleccione el suceso LostFocus Cuando el control Text1 no esté seleccionado, cámbiese el color del fondo al color establecido en la fase de diseño o bien al color deseado por usted (se agrega el código hexadecim al), en nuestro caso se conserva el color de la fase de diseño. Private Sub Text1_LostFocus() F1.Text1.BackColor = &H80000005 End Sub Seleccione el suceso MouseMove Este suceso ayuda a controlar el movimiento del mouse, se utiliza para que cuando el usuario esté desplazando el mouse se active el control que está siendo señalado. En nuestra aplicación, al utilizar este suceso se pretende que una vez señalado el control Text1, se cambie el color del fondo pero además, se traslade el cursor al control Text 1. Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) F1.Text1.BackColor = &HFFFF00 F1.Text1.SetFocus End Sub SetFocus, es una instrucción que transfiere el cursor al control especificado. En procedimiento anterior lo hemos utilizado: F1.Text1.SetFocus, esta acción transfiere el cursor a Text1. Con relación al código fuente de la versión No.3, realice los cambios para q ue vea como queda finalmente la versión No.4 de nuestra practica. Código Fuente Practica No. 4 Private Sub CmLimpia_Click() F1.Text1 = "" F1.Text2 = "" F1.Text3 = "" F1.CmActualizar.Enabled = False F1.Text1.SetFocus End Sub Private Sub CmLimpia_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) F1.CmLimpia.SetFocus End Sub Aprenda lo básico de Visual Basic 6.0 Ing. José Trinidad Pérez Moncada Página [ 3] Private Sub CmActualizar_Click() On Error GoTo salir: If F1.Option1(0).Value = True Then F1.Text3 = CDbl(F1.Text1) + CDbl(F1.Text2) ElseIf F1.Option1(1).Value = True Then F1.Text3 = CDbl(F1.Text1) * CDbl(F1.Text2) ElseIf F1.Option1(2).Value = True Then F1.Text3 = CDbl(F1.Text1) / CDbl(F1.Text2) ElseIf F1.Option1(3).Value = True Then F1.Text3 = CDbl(F1.Text1) - CDbl(F1.Text2) End If F1.CmActualizar.Enabled = False Exit Sub salir: If Err.Number = 13 Then 'Error datos no coinciden MsgBox "Operación no valida, datos omitido o incorrecto.", vbCritical, "Error al calcular" F1.CmActualizar.Enabled = False End If End Sub Private Sub Option1_Click(Index As Integer) On Error GoTo salir: Select Case Index Case 0: F1.Text3 = CDbl(F1.Text1) + CDbl(F1.Text2) Case 1: F1.Text3 = CDbl(F1.Text1) * CDbl(F1.Text2) Case 2: F1.Text3 = CDbl(F1.Text1) / CDbl(F1.Text2) Case 3: F1.Text3 = CDbl(F1.Text1) - CDbl(F1.Text2) End Select F1.CmActualizar.Enabled = False Exit Sub salir: If Err.Number = 13 Then 'Error datos no coinciden MsgBox "Operación no valid a, datos omitido o incorrecto.", vbCritical, "Error al calcular" F1.CmActualizar.Enabled = False End If End Sub Aprenda lo básico de Visual Basic 6.0 Ing. José Trinidad Pérez Moncada Página [ 4] Private Sub Text1_Change() F1.CmActualizar.Enabled = True F1.Text3 = "" End Sub Private Sub Text1_DblClick() F1.Text1 = "" F1.Text3 = "" End Sub Private Sub Text1_GotFocus() F1.Text1.BackColor = &HFFFF00 End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) On Error Resume Next If KeyAscii = vbKeyReturn Then If F1.Text1 = "" Then MsgBox "Ingrese el valor.", vbExclamation, "Dato Omitido" Exit Sub ElseIf F1.Text2 = "" Then F1.Text2.SetFocus Else F1.CmActualizar.Value = True F1.CmLimpia.SetFocus End If End If End Sub Private Sub Text1_LostFocus() F1.Text1.BackColor = &H80000005 End Sub Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) F1.Text1.BackColor = &HFFFF00 F1.Text1.SetFocus End Sub Aprenda lo básico de Visual Basic 6.0 Ing. José Trinidad Pérez Moncada Página [ 5] Private Sub Text2_Change() F1.CmActualizar.Enabled = True F1.Text3 = "" End Sub Private Sub Text2_DblClick() F1.Text2 = "" F1.Text3 = "" End Sub Private Sub Text2_GotFocus() F1.Text2.BackColor = &HFFFF00 End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) On Error Resume Next If KeyAscii = vbKeyReturn Then If F1.Text2 = "" Then MsgBox "Ingrese el valor.", vbExclamation, "Dato Omitido" Exit Sub ElseIf F1.Text1 = "" Then F1.Text1.SetFocus Else F1.CmActualizar.Value = True F1.CmLimpia.SetFocus End If End If End Sub Private Sub Text2_LostFocus() F1.Text2.BackColor = &H80000005 End Sub Private Sub Text2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) F1.Text2.BackColor = &HFFFF00 F1.Text2.SetFocus End Sub Aprenda lo básico de Visual Basic 6.0 Ing. José Trinidad Pérez Moncada Página [ 6]