MÓDULO N° 4 – SELECCIONANDO ELEMENTOS
Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o más elementos. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox.
 

La propiedad List es un arreglo que contiene los elementos de la lista, y comienza con índice 0. La propiedad ListCount establece el número total de elementos de la lista. La propiedad ListIndex contiene el índice del elemento seleccionado, el cual es un número entre 0 (primer elemento) y el número total de elementos en la lista –1 (ListCount – 1). Si no se selecciona ningún elemento, el valor de la propiedad ListIndex será –1.

Eventos

Click:  Ocurre cuando el usuario interactúa con el control.

  Una de las formas más simples de obtener información para el usuario es utilizando la función MsgBox.

Función MsgBox()

Los cuadros de mensaje ofrecen un modo simple y rápido de consultar a los usuarios por información simple o para permitirles tomar decisiones sobre el camino que su programa debe tomar. Puede usar esta función para mostrar diferentes tipos de mensaje y botones con los cuales el usuario da una respuesta.
 

Formato

MsgBox( prompt [, buttons] [, title ] [, helpfile, context] )

EL formato de la función MsgBox consta de los siguientes argumentos:

Parte Descripción

Prompt Requerido. Expresión de cadena que representa el mensaje en el cuadro de diálogo. La longitud máxima de prompt es de aproximadamente 1024 de caracteres, según el ancho de los caracteres utilizados. Si prompt consta de más de una línea, puede separarlos utilizando un carácter de retorno de carro (Chr(13) ) o un carácter de avance de línea (Chr(10) ), o una combinación de caracteres de retorno de carro - avance de línea (Chr(13 y Chr(110) ) entre cada línea y la siguiente.

Buttons Opcional. Expresión numérica que corresponde a la suma de los valores que especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del botón predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor predeterminado para buttons es 0.

Title Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si se omite title, en la barra de título se coloca el nombre de la aplicación.

Helpfile Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar context.

Context Opcional. Expresión numérica que es igual al número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile.


Nota: Si desea omitir algún argumento, debe incluir el delimitador de coma correspondiente o utilizar argumentos con nombre.
 

Programe una calculadora que contenga funciones predefinidas de uso corriente en Electrotecnia. Deberá calcular los valores de la f(x) seleccionada, para distintas entradas propuestas por el usuario. Enviará mensajes de advertencia para evitar el ingreso de operaciones no permitidas.
El primer paso ha sido diseñar la interfaz, que se aprecia en la figura siguiente:
 

Seleccionando el cuadro de lista (List Box), se ingresan las funciones propuestas en la ventana de propiedades de List1, como se indica en la figura.

 
‘Declaración de las variables del programa.

Dim A, B, C, k, P, x As Double

‘Carga el formulario y posiciona la interfaz en el centro de la pantalla.

Private Sub Form_Load()

Form1.Left = (Screen.Width - Form1.Width) / 2

Form1.Top = (Screen.Height - Form1.Height) / 2

End Sub

‘La siguiente subrutina se ejecuta toda vez que el usuario selecciona una función haciendo click con el mouse. Los 11 ítems (funciones) están indexados de 0 a 10. Al elegir los ítems 2 y 3, por estar prohibida la división por cero, se envía un mensaje de advertencia. El cálculo de potencias de exponentes no enteros se efectúa por medio de logaritmos. En consecuencia, si se selecciona el ítem 4, se advierte al usuario que x>0.

Private Sub List1_Click()

If List1.ListIndex = 2 Or List1.ListIndex = 3 Then

MsgBox ("-----Debe ser x<>0-----")

End If

If List1.ListIndex = 4 Then

MsgBox ("-----Debe ser x>0-----")

End If

End Sub

‘Cuando se cliquea el botón de acción, si no se ha seleccionado previamente una función, el valor del índice es –1, en cuyo caso se advierte al usuario.

Private Sub Command1_Click()

If List1.ListIndex = -1 Then

MsgBox ("Seleccione Función e Ingrese Datos")

End If

‘Los siguientes bloques If permiten identificar la función seleccionada, ingresar los parámetros y la variable y finalmente mostrar el resultado.

If List1.ListIndex = 0 Then

A = Val(TextA.Text)

B = Val(TextB.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * x + B)

End If

If List1.ListIndex = 1 Then

A = Val(TextA.Text)

B = Val(TextB.Text)

C = Val(TextC.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A + B * x + C * x ^ 2)

End If

If List1.ListIndex = 2 Then

A = Val(TextA.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A / x)

End If
 
 

If List1.ListIndex = 3 Then

A = Val(TextA.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A / (x ^ 2))

End If

If List1.ListIndex = 4 Then

A = Val(TextA.Text)

B = Val(TextB.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * x ^ B)

End If

If List1.ListIndex = 5 Then

A = Val(TextA.Text)

k = Val(Textk.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * Exp(k * x))

End If

If List1.ListIndex = 6 Then

A = Val(TextA.Text)

k = Val(Textk.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * (1 - Exp(k * x)))

End If

If List1.ListIndex = 7 Then

A = Val(TextA.Text)

k = Val(Textk.Text)

P = Val(TextP.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * Sin(k * x - P))

End If

If List1.ListIndex = 8 Then

A = Val(TextA.Text)

k = Val(Textk.Text)

P = Val(TextP.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * Cos(k * x - P))

End If

If List1.ListIndex = 9 Then

A = Val(TextA.Text)

k = Val(Textk.Text)

P = Val(TextP.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(A * Tan(k * x - P))

End If

If List1.ListIndex = 10 Then

A = Val(TextA.Text)

B = Val(TextB.Text)

k = Val(Textk.Text)

w = Val(Textw.Text)

x = Val(Textx.Text)

Texty.Text = "f(x)=" + Str$(Exp(k * x) * (A * Sin(w * x) + B * Cos(w * x)))

End If

End Sub
 
 
 
 

Hosted by www.Geocities.ws

1