¿Programa para hacer un test de preguntas?

Iniciado por theluigy13etv, 28 Febrero 2012, 20:18 PM

0 Miembros y 1 Visitante están viendo este tema.

theluigy13etv

Hace poco he estado pensando en hacer un programa en Visual Basic 6.0 en el que vaya mostrando en pantalla completa una pregunta con sus tres alternativas. El usuario solo puede contestar usando las teclas 0, 1, 2, 3. La tecla 0 sirve para pasar a la siguiente pregunta y dejar la pregunta actual para contestarla después.

La idea que tuve fue crear un arreglo de Strings en el que almacene las preguntas. Otro arreglo de varias filas y tres columnas de String que almacena las 3 alternativas correspondiente a cada pregunta. También un Arreglo de Enteros que almacene la respuesta correcta correspondiente a cada pregunta.

Mi problema surge a partir de ahora. En el formulario en el que van a ir apareciendo las preguntas he insertado etiquetas, y pensé que mediante la propiedad Caption iba a ir mostrando las preguntas correspondientes a cada pregunta. También mi programa tenía un cuadrito picture box que se ponía rojo si la pregunta era mala y verde si la pregunta era contestada correctamente.

Ahora, he usado una estructura repetitiva for de la siguiente manera:

Código (vb) [Seleccionar]
For i = 1 To 40

Pregunta.Caption = i         '// Numero de pregunta
Enunciado.Caption = Preg1(i)     '// El enunciado de la pregunta
Alter1.Caption = Resp1(i, 1)       '// La alternativa 1, 2, 3
Alter2.Caption = Resp1(i, 2)
Alter3.Caption = Resp1(i, 3)

If Not (KeyCode >= 48 And KeyCode <= 51) Then   '// solo debe reconocer 0, 1, 2, 3
    KeyCode = 0
Else
    Respuesta = KeyCode - 48
    If Respuesta = R1(i) Then
        Picture2(i).BackColor = vbGreen
    Else
        Picture2(i).BackColor = vbRed
    End If
End If



Mi duda es que no sé en qué evento poner dicho código, pues lo intenté en Keypress y vi que no aparecieron las preguntas una por una sino todas al porrazo y me mandó directamente la pregunta 40. Lo que quisiera es que el programa por cada pregunta vaya esperando a que presione una tecla y luego recien comparar con la respuesta y pintar el cuadrito según sea correcto o incorrecto. Lo de pintar el cuadrito no es problema, solo quiero saber en qué evento debo poner el código.

raul338

Sabes crear rutinas? Crea un sub que rellene las pregunta tal, ej

Código (vb) [Seleccionar]

Sub MostrarPregunta(i as integer)
  '    Pregunta.Caption = i         // Numero de pregunta
   '   Enunciado.Caption = Preg1(i)     // El enunciado de la pregunta
    '  Alter1.Caption = Resp1(i, 1)       // La alternativa 1, 2, 3
     ' Alter2.Caption = Resp1(i, 2)
    '  Alter3.Caption = Resp1(i, 3)
End Sub


Luego, desde el form load llamas a esa rutina diciendo que muestre la pregunta 0, el resto del codigo si va en el keypress, y no necesitas un for, al terminar el keypress simplemente debes llamar a MostrarPregunta aumentando el valor de i

theluigy13etv

Gracias ya armé mi test ahora a agregarle más cosas.