Más Ejercicios: | |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|
![]() |
Este ejercicio tiene un código familiar para ustedes ya que hemos trabajado en ejercicios anteriores el método DragDrop pero lo incluí por lo vistoso de las imágenes, es una versión en Visual Basic de una aplicación hecha en Flash de Macromedia. |
El código es el siguiente: Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) 'Source.Move X, Y Source.Move (X - Source.Width / 2), (Y - Source.Height / 2) End Sub El ejercicio puede bajarse de Aquí. |
|
![]() |
|
![]() |
Esta es una version de las maquinitas tragamonedas. Arrastramos una moneda de 1$ sobre el Botón Apostar y se habilita el Botón Jugar, cuando nos pàrece hacemos Click en el Botón Detener, y si las tres imagenes son iguales: ganamos sino perdimos, y volvemos a intentarlo. En tiempo de ejecución se ve parecido a la imagen: |
El código es el siguiente: Usamos la API de Windows sndPlaySound para activar el sonido. Pueden copiarla de aquí textualmente o convocarla desde el Visor de las API de Visual Basic. Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Const SND_ASYNC = &H1 ' reproducción asíncrona Option Explicit Dim snd As Integer Dim a As Integer Dim n1 As Integer Dim n2 As Integer Dim n3 As Integer Private Sub Command1_DragOver(Source As Control, X As Single, Y As Single, State As Integer) 'Dragea la moneda sobre el botón Apostar Source.Visible = False Command2.Enabled = True 'habilita el Botón Jugar End Sub Private Sub Command2_Click() 'Botón Jugar 'Aquí usamos la API de windows para ejecutar el sonido snd = sndPlaySound(App.Path & "\1toons1.wav", SND_ASYNC) 'Habilita el timer de la animación del tragamonedas Timer1.Enabled = True Command4.Enabled = True End Sub Private Sub Command3_Click() 'Salida del programa Unload Me End Sub Private Sub Command4_Click() 'Detiene la animación. Inhabilita el botón Jugar y llama al procedimiento 'que elige al azar los números Timer1.Enabled = False Command2.Enabled = False Call azar 'llama al procedimiento Azar que eleige tres números Command4.Enabled = False End Sub Private Sub Form_Load() Randomize End Sub Private Sub Timer1_Timer() 'Animación pasando las imagenes de la tragamoneda a = a + 1 If a = 1 Then Image1.Picture = Picture1(0).Picture Image2.Picture = Picture1(1).Picture Image3.Picture = Picture1(2).Picture End If If a = 2 Then Image1.Picture = Picture1(1).Picture Image2.Picture = Picture1(2).Picture Image3.Picture = Picture1(0).Picture End If If a = 3 Then Image1.Picture = Picture1(2).Picture Image2.Picture = Picture1(0).Picture Image3.Picture = Picture1(1).Picture a = 0 End If End Sub Private Sub azar() 'Procedimiento que elige tres números al azar correspondientes a cada 'imagen n1 = Int(Rnd * 3) + 1 n2 = Int(Rnd * 3) + 1 n3 = Int(Rnd * 3) + 1 Timer1.Enabled = False Select Case n1 Case 1 Image1.Picture = Picture1(0).Picture Case 2 Image1.Picture = Picture1(1).Picture Case 3 Image1.Picture = Picture1(2).Picture End Select n1 = n1 Select Case n2 Case 1 Image2.Picture = Picture1(0).Picture Case 2 Image2.Picture = Picture1(1).Picture Case 3 Image2.Picture = Picture1(2).Picture End Select n2 = n2 Select Case n3 Case 1 Image3.Picture = Picture1(0).Picture Case 2 Image3.Picture = Picture1(1).Picture Case 3 Image3.Picture = Picture1(2).Picture End Select n3 = n3 'Llama al procedimiento que controla si los tres numeros elegidos al azar son iguales. Call ganar End Sub Private Sub ganar() 'Procedimiento que controla si los tres números al azar son iguales ganó, sino perdió Dim m As Integer If n1 = n2 And n2 = n3 Then Label1.Caption = "¡¡Ganaste!!" snd = sndPlaySound(App.Path & "\Cash2.wav", SND_ASYNC) For m = 0 To 6 Image4(m).Visible = True Next m Else Label1.Caption = "¡¡Perdiste!!" snd = sndPlaySound(App.Path & "\NoTiempo.wav", SND_ASYNC) End If 'llama al procedimiento que controla si se terminó el dinero. Call dinero End Sub Private Sub dinero() ' Procedimiento que Controla si se acabó el dinero If Image4(0).Visible = False And Image4(1).Visible = False And_ Image4(2).Visible = False And Image4(3).Visible = False And_ Image4(4).Visible = False And Image4(5).Visible = False And_ Image4(5).Visible = False Then Label1.Caption = "¡¡Sin Dinero!!" End If End Sub Como vemos en esta aplicación tenemos varios procedimientos creados : Azar, ganar y dinero que eligen los tres numeros al azar que cargan las imágenes, ganar que controla si las tres imagenes son iguales y dinero que controla que las monedas de 1$ se agotaron. Y un Select Case que elige que imagen corresponde a cada numero. El código completo puede bajarse de Aquí. |
|
![]() |
|
![]() |
Este ejercicio muestra como hacer un protector de pantalla simple, que desplaza un corazón en la pantalla. Este archivo lo vamos a hacer en VB y lo vamos a grabar con extension .scr, para luego copiarlo en el directorio de Windows. |
En el forrmulario insertamos un control PictureBox donde cargamos el corazón y un control Timer que controla la animación del corazón en la pantalla. El código es: Option Explicit Dim movimiento As Integer Dim puntero As Integer Private Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long Private Sub Form_Click() puntero = ShowCursor(-1) End End Sub Private Sub Form_DblClick() puntero = ShowCursor(-1) End End Sub Private Sub Form_KeyPress(KeyAscii As Integer) puntero = ShowCursor(-1) End End Sub Private Sub Form_Load() If App.PrevInstance Then End puntero = ShowCursor(0) movimiento = 3 End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Static X1 As Integer, Y1 As Integer If X1 = 0 And Y1 = 0 Then X1 = x Y1 = y Exit Sub End If If Abs(X1 - x) < 5 And Abs(Y1 - y) < 5 Then X1 = x Y1 = y Exit Sub End If puntero = ShowCursor(-1) End End Sub Private Sub Timer1_Timer() '1 hacia arriba y hacia la izquierda '2 hacia arriba y a la derecha '3 hacia abajo y a la derecha '4 hacia abajo y a la izquierda Select Case movimiento Case 1 Picture1.Move Picture1.Left - 20, Picture1.Top - 20 If Picture1.Left <= 0 Then movimiento = 2 ElseIf Picture1.Top <= 0 Then movimiento = 4 End If Case 2 Picture1.Move Picture1.Left + 20, Picture1.Top - 20 If Picture1.Left >= (Form1.Width - Picture1.Width) Then movimiento = 1 ElseIf Picture1.Top <= 0 Then movimiento = 3 End If Case 3 Picture1.Move Picture1.Left + 20, Picture1.Top + 20 If Picture1.Left >= (Form1.Width - Picture1.Width) Then movimiento = 4 ElseIf Picture1.Top >= (Form1.Height - Picture1.Height) Then movimiento = 2 End If Case 4 Picture1.Move Picture1.Left - 20, Picture1.Top + 20 If Picture1.Left <= 0 Then movimiento = 3 ElseIf Picture1.Top >= (Form1.Height - Picture1.Height) Then movimiento = 1 End If End Select End Sub Para esta aplicación vamos a usar una API de window para mostrar y ocultar el puntero del mouse, SHOWCURSOR, y tambien vamos a registrar un pequeño movimiento del mouse para que se cierre el programa, asi como tocar una tecla. La animacion controla en cuatro movimientos el desplazamiento del corazón en diagonal hasta llegar al borde, y allí cambia la dirrección. El archivo completo puede bajarse de Aquí. |
|
![]() |
|
![]() |
Este ejercicio nos permite jugar con el puntero del mouse simulando un recoger objetos, al estilo de una aventura gráfica. |
Tenemos una Label y tres Pictures, la 2 es la goma, la 3 el marcador (en el medio) y la 1 el lápiz. La idea es que al hacer click en el lápiz quede en el puntero del mouse y así luego hacemos click en la label y aparece la palabra Tarea, como si la hubiésemos escrito, luego dejamos el lápiz haciendo Click en el Formulario. Hacemos Click en la goma y luego en la label y se borra la palabra Tarea. Hacemos Click en el formulario y dejamos la goma. Y al hacer click en el marcador y tenerlo en el puntero del mouse hacemos Click en la Label y esta se vuelve roja, antes era color amarillo. El código es: Option Explicit Private Sub Form_Click() If MouseIcon = Picture1.Picture Then ' aqui volvemos al puntero estándar MousePointer = 0 Picture1.Visible = True End If If MouseIcon = Picture2.Picture Then MousePointer = 0 Picture2.Visible = True End If If MouseIcon = Picture3.Picture Then MousePointer = 0 Picture3.Visible = True End If End Sub Private Sub Label1_Click() If MouseIcon = Picture1.Picture Then ' si el puntero es el lápiz la label 'muestra la palabra Tarea en su caption. Label1.Caption = "Tarea" End If If MouseIcon = Picture2.Picture Then ' si el puntero es la goma borra Tarea. Label1.Caption = "" Label1.BackColor = vbYellow ' fondo de la label amarillo End If If MouseIcon = Picture3.Picture Then ' si el puntero es el marcador el fondo se vuelve 'rojo Label1.Caption = "" Label1.BackColor = VBred End If End Sub Private Sub Picture1_Click()'carga el icono del lápiz MouseIcon = Picture1.Picture MousePointer = 99 Picture1.Visible = False End Sub Private Sub Picture2_Click()'carga el icono en el puntero de la goma MouseIcon = Picture2.Picture MousePointer = 99 Picture2.Visible = False End Sub Private Sub Picture3_Click()'carga el icono en el puntero del marcador MouseIcon = Picture3.Picture MousePointer = 99 Picture3.Visible = False End Sub El código del ejercicio lo podes bajar de Aquí. |
|
![]() |
|
![]() |
Este ejercicio nos muestra como armar un problema sobre la velocidad y la distancia, ustedes podran agregar otros problemas similares. la animación ayuda al alumno a buscar la respuesta adecuada. es un ejemplo de simulación. El código es: |
Option Explicit Dim paso As Integer Dim i As Integer Dim tramo1 As String Dim tramo2 As String Dim tramo3 As String Dim tramo4 As String Private Sub Label1_Click() Label1.Tag = "si" Label2.Tag = "no" Label3.Tag = "no" Label6.Caption = "A: 500 mts." Label7.Caption = "B: 500 mts. al Oeste" Label8.Caption = "C: 4000 mts." Label9.Caption = "D: 1000 mts." Timer1.Enabled = True End Sub Private Sub Label6_Click() If Label1.Tag = "si" Then Label5.Caption = "La respuesta Correcta es la C, porque la distancia total recorrida es de 4000 mts." Label5.Visible = True End If End Sub Private Sub Label7_Click() If Label1.Tag = "si" Then Label5.Caption = "La respuesta Correcta es la C, porque la distancia total recorrida es de 4000 mts." Label5.Visible = True End If End Sub Private Sub Label8_Click() If Label1.Tag = "si" Then Label5.Caption = "La respuesta Correcta es la C, porque la distancia total recorrida es de 4000 mts." Label5.Visible = True End If End Sub Private Sub Label9_Click() If Label1.Tag = "si" Then Label5.Caption = "La respuesta Correcta es la C, porque la distancia total recorrida es de 4000 mts." Label5.Visible = True End If End Sub Private Sub Timer1_Timer() If paso = 1 Then Picture2.Move Picture2.Left - 100, Picture2.Top ElseIf paso = 2 Then Picture2.Move Picture2.Left - 100, Picture2.Top ElseIf paso = 3 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 4 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 5 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 6 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 7 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 8 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 9 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 10 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 11 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 12 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 13 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 14 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 15 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 16 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 17 Then Picture2.Move Picture2.Left - 58, Picture2.Top tramo1 = " El tren se desplaza 1000 mts. al Oeste, " Label4.Caption = tramo1 ElseIf paso = 18 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 19 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 20 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 21 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 22 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 23 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 24 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 25 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 26 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 28 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 29 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 30 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 31 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 32 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 33 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 34 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 35 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 36 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 37 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 38 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 39 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 40 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 41 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 42 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 43 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 44 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 45 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 46 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 47 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 48 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 49 Then Picture2.Move Picture2.Left + 150, Picture2.Top ElseIf paso = 50 Then Picture2.Move Picture2.Left + 126, Picture2.Top tramo2 = " 2000 mts al Este," Label4.Caption = Label4.Caption & tramo2 ElseIf paso = 51 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 52 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 53 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 54 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 55 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 56 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 57 Then Picture2.Move Picture2.Left - 150, Picture2.Top ElseIf paso = 58 Then Picture2.Move Picture2.Left - 100, Picture2.Top ElseIf paso = 59 Then Picture2.Move Picture2.Left - 60, Picture2.Top tramo3 = " 500 mts. al Oeste, " Label4.Caption = Label4.Caption & tramo3 ElseIf paso = 60 Then Picture2.Move Picture2.Left + 250, Picture2.Top ElseIf paso = 61 Then Picture2.Move Picture2.Left + 250, Picture2.Top ElseIf paso = 62 Then Picture2.Move Picture2.Left + 250, Picture2.Top ElseIf paso = 63 Then Picture2.Move Picture2.Left + 250, Picture2.Top ElseIf paso = 64 Then Picture2.Move Picture2.Left + 210, Picture2.Top tramo4 = " y 500 mts al Este. ¿Que distancia Recorrió?" Label4.Caption = Label4.Caption & tramo4 End If paso = paso + 1 End Sub Pongo los condicionales en un solo renglon para ahorrar espacio, ustedes corrigan la sintaxis y tambien pueden abreviar codigo creando procedimientos que se repiten. El código pueden bajarlo de AQUÍ. |
|
![]() |
|
![]() |
Este es un típico jueguito de disparar o Shoot. con el mouse debemos derribar los patos y esto hace que incrementemos el puntaje. He omitido los sonidos para que el archivo no sea tan pesado pero ustedes pueden agregar los que gusten. El código es: |
Option Explicit Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Const SND_ASYNC = &H1 ' play asynchronously Dim sonido As Integer Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer Dim f As Integer Dim g As Integer Dim h As Integer Dim i As Integer Dim j As Integer Dim patos As Integer Dim patosin As Integer Dim patosout As Integer Private Sub Form_Load() Randomize End Sub Private Sub mniDía_Click() mniDía.Checked = True mnuNoche.Checked = False Form1.Picture = Image1.Picture Timer1.Enabled = True Timer3.Enabled = True Timer5.Enabled = True Timer7.Enabled = True Timer9.Enabled = True Timer4.Enabled = False Timer2.Enabled = False Timer6.Enabled = False Timer8.Enabled = False Timer10.Enabled = False Picture6.Visible = False Picture7.Visible = False Picture1.Visible = False Picture8.Visible = False Picture9.Visible = False End Sub Private Sub mnuNoche_Click() mniDía.Checked = False mnuNoche.Checked = True Form1.Picture = Image2.Picture Timer2.Enabled = True Timer4.Enabled = True Timer6.Enabled = True Timer8.Enabled = True Timer10.Enabled = True Timer1.Enabled = False Timer3.Enabled = False Timer5.Enabled = False Timer7.Enabled = False Timer9.Enabled = False Picture6.Visible = False Picture7.Visible = False Picture1.Visible = False Picture8.Visible = False Picture9.Visible = False End Sub Private Sub mnuNuevo_Click() Picture1.Left = 0 Picture1.Top = 480 Picture6.Left = 1560 Picture6.Top = 1440 Picture7.Left = 480 Picture7.Top = 2760 Picture8.Left = 2400 Picture8.Top = 240 Picture9.Left = 2880 Picture9.Top = 2160 Picture1.Visible = True Picture8.Visible = True Picture6.Visible = True If mniDía.Checked = True Then Timer1.Enabled = True Timer3.Enabled = True Timer5.Enabled = True Timer7.Enabled = True Timer9.Enabled = True ElseIf mnuNoche.Checked = True Then Timer2.Enabled = True Timer4.Enabled = True Timer6.Enabled = True Timer8.Enabled = True Timer10.Enabled = True End If End Sub Private Sub mnuSalir_Click() End End Sub Private Sub Picture1_Click() sonido = sndPlaySound(App.Path & "\shoot.wav", SND_ASYNC) If Timer1.Enabled = True Then Timer1.Enabled = False Picture1.Picture = Picture3.Picture Call pausa Picture1.Visible = False patosin = patosin + 1 Call final Picture1.Picture = Picture2(0).Picture ElseIf Timer2.Enabled = True Then Timer2.Enabled = False Picture1.Picture = Picture5.Picture Call pausa Picture1.Visible = False patosin = patosin + 1 Call final Picture1.Picture = Picture4(0).Picture End If End Sub Private Sub Picture6_Click() sonido = sndPlaySound(App.Path & "\shoot.wav", SND_ASYNC) If Timer5.Enabled = True Then Timer5.Enabled = False Picture6.Picture = Picture3.Picture Call pausa Picture6.Visible = False patosin = patosin + 1 Call final Picture6.Picture = Picture2(0).Picture ElseIf Timer6.Enabled = True Then Timer6.Enabled = False Picture6.Picture = Picture5.Picture Call pausa Picture6.Visible = False patosin = patosin + 1 Call final Picture6.Picture = Picture4(0).Picture End If End Sub Private Sub Picture7_Click() sonido = sndPlaySound(App.Path & "\shoot.wav", SND_ASYNC) If Timer9.Enabled = True Then Timer9.Enabled = False Picture7.Picture = Picture3.Picture Call pausa Picture7.Visible = False patosin = patosin + 1 Call final Picture7.Picture = Picture2(0).Picture ElseIf Timer10.Enabled = True Then Timer10.Enabled = False Picture7.Picture = Picture5.Picture Call pausa Picture7.Visible = False patosin = patosin + 1 Call final Picture7.Picture = Picture4(0).Picture End If End Sub Private Sub Picture8_Click() sonido = sndPlaySound(App.Path & "\shoot.wav", SND_ASYNC) If Timer3.Enabled = True Then Timer3.Enabled = False Picture8.Picture = Picture3.Picture Call pausa Picture8.Visible = False patosin = patosin + 1 Call final Picture8.Picture = Picture2(0).Picture ElseIf Timer4.Enabled = True Then Timer4.Enabled = False Picture8.Picture = Picture5.Picture Call pausa Picture8.Visible = False patosin = patosin + 1 Call final Picture8.Picture = Picture4(0).Picture End If End Sub Private Sub Picture9_Click() sonido = sndPlaySound(App.Path & "\shoot.wav", SND_ASYNC) If Timer7.Enabled = True Then Timer7.Enabled = False Picture9.Picture = Picture3.Picture Call pausa Picture9.Visible = False patosin = patosin + 1 Call final Picture9.Picture = Picture2(0).Picture ElseIf Timer8.Enabled = True Then Timer8.Enabled = False Picture9.Picture = Picture5.Picture Call pausa Picture9.Visible = False patosin = patosin + 1 Call final Picture9.Picture = Picture4(0).Picture End If End Sub Private Sub Timer1_Timer() a = a + 1 If a = 3 Then a = 0 Picture1.Picture = Picture2(a).Picture Picture1.Visible = True Dim r As Integer r = Int(Rnd * 20) Picture1.Move Picture1.Left + 200, Picture1.Top + r End Sub Private SubTimer10_Timer() j = j + 1 If j = 3 Then j = 0 Picture7.Picture = Picture4(c).Picture Picture7.Visible = True Dim r As Integer r = Int(Rnd * 30) Picture7.Move Picture7.Left + 200, Picture7.Top - r End Sub Private Sub Timer2_Timer() b = b + 1 If b = 3 Then b = 0 Picture1.Picture = Picture4(b).Picture Picture1.Visible = True Dim r As Integer r = Int(Rnd * 20) Picture1.Move Picture1.Left + 200, Picture1.Top + r End Sub Private Sub pausa() Dim comenzar Dim controlar comenzar = Timer Do Until controlar >= comenzar + 0.3 controlar = Timer DoEvents Loop End Sub Private Sub Timer3_Timer() c = c + 1 If c = 3 Then c = 0 Picture8.Picture = Picture2(c).Picture Picture8.Visible = True Picture8.Move Picture8.Left + 200, Picture8.Top End Sub Private Sub Timer4_Timer() d = d + 1 If d = 3 Then d = 0 Picture8.Picture = Picture4(d).Picture Picture8.Visible = True Picture8.Move Picture8.Left + 200, Picture8.Top End Sub Private Sub Timer5_Timer() e = e + 1 If e = 3 Then e = 0 Picture6.Picture = Picture2(c).Picture Picture6.Visible = True Picture6.Move Picture6.Left + 200, Picture6.Top End Sub Private Sub Timer6_Timer() f = f + 1 If f = 3 Then f = 0 Picture6.Picture = Picture4(c).Picture Picture6.Visible = True Picture6.Move Picture6.Left + 200, Picture6.Top End Sub Private Sub Timer7_Timer() g = g + 1 If g = 3 Then g = 0 Picture9.Picture = Picture2(c).Picture Picture9.Visible = True Dim r As Integer r = Int(Rnd * 30) Picture9.Move Picture9.Left + 200, Picture9.Top - r End Sub Private Sub Timer8_Timer() h = h + 1 If h = 3 Then h = 0 Picture9.Picture = Picture4(c).Picture Picture9.Visible = True Dim r As Integer r = Int(Rnd * 30) Picture9.Move Picture9.Left + 200, Picture9.Top - r End Sub Private Sub Timer9_Timer() i = i + 1 If i = 3 Then i = 0 Picture7.Picture = Picture2(c).Picture Picture7.Visible = True Dim r As Integer r = Int(Rnd * 30) Picture7.Move Picture7.Left + 200, Picture7.Top - r End Sub Private Sub final() Label1.Caption = " Cazaste: " & patosin If patosin = 10 Then Form2.Label1.Caption = "¡¡¡ Felicitaciones !!! Eres un Buen Cazador." sonido = sndPlaySound(App.Path & "\clarin.wav", SND_ASYNC) Form2.Show 1 ElseIf patosin = 20 Then Form2.Label1.Caption = "¡¡¡ Felicitaciones !!! Eres un Muy Buen Cazador." sonido = sndPlaySound(App.Path & "\clarin.wav", SND_ASYNC) Form2.Show 1 ElseIf patosin = 50 Then Form2.Label1.Caption = "¡¡¡ Felicitaciones !!! Eres un Excelente Cazador." sonido = sndPlaySound(App.Path & "\clarin.wav", SND_ASYNC) Form2.Show 1 ElseIf patosin = 100 Then Form2.Label1.Caption = "¡¡¡ Felicitaciones !!! Eres el Mejor Cazador." sonido = sndPlaySound(App.Path & "\clarin.wav", SND_ASYNC) Form2.Show 1 End If End Sub El código puede bajarse de Aquí sin los archivos de sonido. |
|
![]() |
|
|
Esta es una simulación del funcionamiento de un semáforo. No incluye ningún tipo de interactividad es solo para observar cuando debe cruzarse la calle, viendo como lo hace el hombrecito. El código es: |
Option Explicit Private Sub pausa() Dim comenzar Dim controlar comenzar = Timer Do Until controlar >= comenzar + 2 controlar = Timer DoEvents Loop End Sub Private Sub Command1_Click() End End Sub Private Sub Timer1_Timer() Picture1.Move Picture1.Left, Picture1.Top + 150 'con el condicional controla el reposicionarse. If Picture1.Top > 7000 Then Picture1.Top = -300 Picture2.Move Picture2.Left, Picture2.Top + 150 If Picture2.Top > 6500 Then Picture2.Top = -200 Picture4.Move Picture4.Left, Picture4.Top + 150 If Picture4.Top > 6500 Then Picture4.Top = -100 Picture5.Move Picture5.Left, Picture5.Top + 150 If Picture5.Top > 6500 Then Picture5.Top = -100 Picture9.Move Picture9.Left, Picture9.Top + 150 If Picture9.Top > 6500 Then Picture9.Top = -100 Picture10.Move Picture10.Left, Picture10.Top + 150 If Picture10.Top > 6500 Then Picture10.Top = -200 Picture11.Move Picture11.Left, Picture11.Top + 150 If Picture11.Top > 6500 Then Picture11.Top = -300 Picture12.Move Picture12.Left, Picture12.Top + 150 If Picture12.Top > 6500 Then Picture12.Top = -100 End Sub Private Sub Timer2_Timer() Picture3.Picture = Picture7.Picture Timer1.Interval = 600 Call pausa Picture3.Picture = Picture6.Picture Timer1.Interval = 0 If Picture2.Top >= 4600 Then Picture2.Visible = False If Picture4.Top >= 4600 Then Picture4.Visible = False If Picture5.Top >= 4600 Then Picture5.Visible = False If Picture9.Top >= 4600 Then Picture9.Visible = False If Picture10.Top >= 4600 Then Picture10.Visible = False If Picture11.Top >= 4600 Then Picture11.Visible = False If Picture12.Top >= 4600 Then Picture12.Visible = False If Picture1.Top >= 4600 Then Picture1.Visible = False Timer3.Enabled = True Call pausa Call pausa Call pausa Picture3.Picture = Picture7.Picture Timer3.Enabled = False Image1.Left = 1200 Timer1.Enabled = True Timer1.Interval = 400 Picture1.Top = 1200 Picture1.Visible = True Picture2.Top = 2880 Picture2.Visible = True Picture4.Top = 2760 Picture4.Visible = True Picture5.Top = 1680 Picture5.Visible = True Picture9.Top = 120 Picture9.Visible = True Picture10.Top = 0 Picture10.Visible = True Picture11.Top = 4200 Picture11.Visible = True Picture12.Top = 4440 Picture12.Visible = True Call pausa Picture3.Picture = Picture8.Picture Timer1.Interval = 150 Call pausa End Sub Private Sub Timer3_Timer() Image1.Move Image1.Left + 100 End Sub El código completo puede bajarse de Aquí. |
|
![]() |
|
![]() |
Este ejercicio nos muestra como usar el objeto Printer, para darle salida por la impresora a una imagen. El código del botón Imprimir es: |
Private Sub Command1_Click() Dim alto As Long Dim ancho As Long With Printer .ScaleMode = vbTwips alto = .ScaleHeight ancho = .ScaleWidth End With alto = alto \ 2 - Picture1.ScaleHeight \ 2 ancho = ancho \ 2 - Picture1.ScaleWidth \ 2 Printer.PaintPicture Picture1.Picture, ancho, alto, Picture1.ScaleWidth, Picture1.ScaleHeight Printer.EndDoc End Sub El archivo completo puede bajarse de Aquí. |
|
![]() |
|
![]() |
En este ejercicio vamos a crear un procedimiento llamado Pausa para poder hacer una interrupción en la ejecución del código de una Aplicación. Así se verá una animación que muestra la aparición de las letras con un intérvalo. Usamos un bucle que toma el tiempo desde el reloj del sistema. El código es: |
Private Sub pausa() Dim comenzar Dim chequeo comenzar = Timer Do Until chequeo >= comenzar + 1 chequeo = Timer DoEvents 'esto hace que windows escuche otras acciones Loop End Sub Private Sub Form_Activate() Call pausa 'llama al procedimiento Label1.Visible = True Call pausa Label2.Visible = True call pausa Label3.Visible = True Call pausa Label4.Visible = True Call pausa Label5.Visible = True End Sub El código puede bajarse de Aquí. |
|
![]() |
|
![]() |
Dim Aquí usamos una Api de Windows para autmatiar esta pausa o intervalo. Como vemos esto nos evita usar el Timer pero debemos convocar a la Api desde el Visor o copiando en declaraciones generales el código. |
Option Explicit Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click() Call Sleep(1000) Beep Call Sleep(3000) Beep End Sub El código puede bajarse de AQUÍ. |
|
![]() |
|
![]() |
Este ejemplo nos muestra una hermosa slider hecha a partir de una imagen personalizada. Como vamos a registrar la posición del cursor usamos una Api de Windows que nos permite chequear la posición del cursor y para guardar el código creamos un Módulo de tipo .bas El código es: |
Option Explicit Dim imagen As Integer Dim Moviendo As Boolean 'Aquí establecemos las constantes de máximo y mínimo Const MaxSlider1 = 6 Const MinSlider1 = 1 Private Sub Form_Load() Moviendo = False lblMin = MinSlider1 lblMax = MaxSlider1 lblValor = MinSlider1 End Sub Private Sub imgPuntero_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim Cursor As POINTAPI Dim Anterior As Long Do 'Para que no lo actualize si no cambio Anterior = Cursor.X Moviendo = True 'Cargo la posicion del mouse Call GetCursorPos(Cursor) Cursor.X = Cursor.X - (Form1.Left / Screen.TwipsPerPixelX) - imgPuntero.Width 'Si no cambio, y no sale de los bordes de la barra, entonces... If (Anterior <> Cursor.X) And (Cursor.X >= imgBarra.Left) And (Cursor.X + imgPuntero.Width <= imgBarra.Left + imgBarra.Width) Then imgPuntero.Left = Cursor.X End If lblValor = Int((imgPuntero.Left - imgBarra.Left) * (MaxSlider1 - MinSlider1) / (imgBarra.Width - imgPuntero.Width)) + MinSlider1 Call mostrar 'Que haga los eventos para ver si hay MouseUp DoEvents Loop Until Moviendo = False End Sub Private Sub imgPuntero_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Moviendo = False End Sub Private Sub mostrar() If lblValor = 1 Then Picture1.Picture = Image1(0).Picture ElseIf lblValor = 3 Then Picture1.Picture = Image1(1).Picture ElseIf lblValor = 5 Then Picture1.Picture = Image1(2).Picture End If End Sub Modulo: Option Explicit Type POINTAPI X As Long Y As Long End Type Declare Sub GetCursorPos Lib "User32" (lpPoint As POINTAPI) El código puede bajarse de AQUÍ. |
|
![]() |
|
![]() |
Este es un control slider común donde codificamos los procedimientos Click y Change. Usamos la función Format para darle forma al valor en centímetros. El código es el siguiente: |
Option Explicit Private Sub Slider1_Change() Label1.Caption = "Medida en Centímetros = " & Format(Slider1.Value, "#.00") End Sub Private Sub Slider1_Scroll() Label1.Caption = "Medida en Centímetros = " & Format(Slider1.Value, "#.00") End Sub El código puede bajarse desde AQUÍ. |
|
![]() |
|
![]() |
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 código es: Option Explicit
Private Sub Timer1_Timer()'con
el timer actualiza la label de tiempo 'transcurrido Para que muestre solo los archivos MP3 en la propiedad Pattern del FileListBox: ingresamos "*.MP3" |
|
![]() |
|
![]() |
En este ejercicio vamos a retomar el objeto Printer, que alguna vez ya habiamos trabajado para darle salida por impresora, a un texto determinado. |
Ahora veremos modificaciones del tipo de letra, estilo y algunos métodos graficos, como líneas, rectángulos arcos y círculos. En el procedimiento Click del boton ingresamos el siguiente código: Option
Explicit
'si queremos
cambiar la letra ' para modificar
el tamaño ' y aqui otras
variaciones de estilo 'para imprimir
el número de página en el centro podemos usar el siguiente
código 'para imprimir
funciones gráficas con el objeto printer |
|
![]() |
|
![]() |
En este ejercicio veremos algunas funciones como la búsqueda de números al azar, raíz de números y redondeo de decimales. Usamos botones para ejecutar las funciones, cajas de texto para ingresar valores y labels para dar salida a los resultados. |
El código es: Option Explicit Private Sub Command2_Click()'número
al azar entre dos valores Private Sub Command3_Click()'
raíz de un número Private Sub Command4_Click()'redondeo
de un decimal Private Sub Form_Activate() |
|
![]() |
En este ejercicio vamos a crear una función que nos permite calcular un interes compuesto, de una suma inicial de acuerdo al porcentaje de interés ingresado y la cantidad de cuotas en que se devuelva el mismo. |
Usamos tres labels informativas, y tres cajas de texto para ingresar los valores, un boton para ejecutar la función y una label para que nos devuelva el cálculo hecho. El código es: Option Explicit Private Sub Command1_Click() Function InteresCompuesto(capital
As Currency, interesmensual As Single, cuotas As Long) As Currency Los ejercicios con su código completo pueden bajarse de AQUÍ. |
|
![]() |
|
![]() |
En esta tabla del uno, aplicable a los demas números y adaptable a otra operaciones de resta, multiplicación o división. Tenemos una combinación de labels, imágenes, shapes y checkbox con los que ha sido armada la aplicación. Su código es el siguiente: |
Dim Puntos
As Byte
Private
Sub AniPushButton1_Click() Private
Sub AniPushButton2_Click() 'Poner
los números en la bola 'Inicializar
la propiedad Tag 'Limpiar
los CheckBox y la imagenes imgConejo.Visible = False Check2.Caption
= "" Check3.Caption
= "" Check4.Caption
= "" Check5.Caption
= "" Check6.Caption
= "" Check7.Caption
= "" Check8.Caption
= "" Check9.Caption
= "" lblRespuesta.ZOrder 1 'pasar atrás el label End Sub Private
Sub Check1_Click() Private
Sub Check2_Click() Private
Sub Check3_Click() Private
Sub Check4_Click() Private
Sub Check5_Click() Private
Sub Check6_Click() Private
Sub Check7_Click() Private
Sub Check8_Click() Private
Sub Check9_Click() Private
Sub Command1_Click() 'Poner
los números en la bola 'Inicializar
la propiedad Tag 'Limpiar
los CheckBox y la imagenes Check2.Caption
= "" Check3.Caption
= "" Check4.Caption
= "" Check5.Caption
= "" Check6.Caption
= "" Check7.Caption
= "" Check8.Caption
= "" Check9.Caption
= "" lblRespuesta.ZOrder 1 'pasar atrás el label End Sub Private
Sub img0_DragDrop(Source As Control, X As Single, Y As Single) If flag1
= 1 And flag2 = 2 Then 'Chequea si estan colocados los dos numeros
Private
Sub img1_DragDrop(Source As Control, X As Single, Y As Single) Check1.Caption
= "Correcta" Private
Sub img2_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img3_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img4_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img5_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img6_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img7_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img8_DragDrop(Source As Control, X As Single, Y As Single) Private
Sub img9_DragDrop(Source As Control, X As Single, Y As Single) If flag1
= 1 And flag2 = 2 Then 'Chequea si estan colocados los dos numeros For I =
1 To 20 |
|
El ejercicio con su código completo puede bajarse de AQUÍ. | |
![]() |
|
![]() |
Con esta aplicación simulamos la animación de llenar y vaciar un Tanque de Agua. Para que funcione correctamente este ejercicio, deben tener el control Gauge32 habilitado en su sistema de Windows. El código es el siguiente: |
Private Sub Form_Load() VolumenInicial = 0 'Inicializar el volumen Text1.Text = 0 End Sub Private Sub Slider1_MouseUp(Button
As Integer, Shift As Integer, x As Single, y As Single) If VolumenFinal
< VolumenInicial Then Private Sub Text1_Change() Private Sub Text1_Click() El ejercicio
con su código completo puede bajarse de AQUÍ.
|
|
![]() |
|
![]() |
Este ejercicio utiliza funciones matemáticas como cálculo de raíz cuadrada. Y un control especial CommonDialog que convoca a las ventanas estándar de Windows, que asociados a los métodos Put y Get nos permiten Abrir y Guardar un fichero como txt. El código del ejercicio es el siguiente: |
Dim
a As Single, b As Single, c As Single 'Variable de los Datos Dim x1 As Single, x2 As Single 'Variable de las respuestas Dim del As Single 'Variable para los sumandos dentro del radical Private Sub cmdCalcular_Click() del = (b ^ 2
- 4 * a * c) Private Sub cmdSalir_Click() Private Sub Form_Load() Private Sub mnuAbrir_Click() Private Sub mnuSalvar_Click() Put #1, , x1 Private Sub mnuSalvarComo_Click() Private Sub txtA_LostFocus() Private Sub txtA_Change() Private Sub txtA_GotFocus() Private Sub txtB_Change() Private Sub txtB_GotFocus() Private Sub txtB_LostFocus() Private Sub txtC_Change() Private Sub txtC_GotFocus() Private Sub txtC_LostFocus() El ejercicio con su código completo puede bajarse de AQUÍ. |
|
![]() |
|
![]() |
Hay muchas maneras de incluir en un ejercicio cierto control de seguridad a través de una clave, o password, en esta aplicación se hace utilizando la propiedad tag del control Text, donde se ingresa. El código 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() El ejercicio con su código completo puede bajarse de AQUÍ. |
|
![]() |
|
![]() |
Este ejercicio utiliza Botones de Opción y fue realizado a partir del pedido de un alumno por mail. También integra: labels, caja de textos, botones y calcula el total del valor del pedido de acuerdo a la opción seleccionada y la cantidad. Su código es el siguiente: |
'Declaración
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 'Declaración 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() Private Sub cmdSalir_Click() Private Sub Form_Load() Private Sub optOtroPedido_Click() 'Inicializar
las variables. 'Habilitar todas
las cajas de texto para poder entrar datos en todas. 'Limpiar todas
las cajas de texto. Private Sub optPedido1_Click() If optPedido1.Value
Then 'si esta chequeado. Private Sub optPedido2_Click() If optPedido2.Value
Then Private Sub optPedido3_Click() If optPedido3.Value
Then Private Sub txtHamburguesa_Change() Private Sub txtHamburguesa_GotFocus() Private Sub txtHamburguesa_LostFocus() Private Sub txtGaseosa_Change() Private Sub txtGaseosa_GotFocus() Private Sub txtGaseosa_LostFocus() Private Sub txtHotDog_Change() Private Sub txtHotDog_GotFocus() Private Sub txtHotDog_LostFocus() Private Sub txtPapasFritas_Change() Private Sub txtPapasFritas_GotFocus() Private Sub txtPapasFritas_LostFocus() Private Sub txtRefresco_Change() Private Sub txtRefresco_GotFocus() Private Sub txtRefresco_LostFocus() Private Sub txtSandwich_Change() Private Sub txtSandwich_GotFocus() Private Sub txtSandwich_LostFocus() El ejercicio con su código completo puede bajarse de Aquí |
|
![]() |
|
![]() |
Este ejercicio de Arrastrar y Soltar muestra otra posibilidad de ejercitación visual para niños. Las figuras vienen incluidas en el archivo zipeado, para facilitarles el trabajo.El código es el siguiente: |
Private Sub Image10_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image11_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image12_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image13_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image14_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image15_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image16_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image17_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Image18_DragDrop(Source
As Control, X As Single, Y As Single) Private Sub Label3_Click() El ejercicio con su código completo puede bajarse de Aquí |
|
![]() |
|
![]() |
Este ejercicio usa las funciónes Mod y Format que nos permiten dar formato al valor del tiempo que muestra el cronómetro. Usamos una Label y tres botones para las acciones. El código es: |
Dim
I As Long 'Contador. Dim Tiempo As String 'Tiempo total transcurrido. Private Sub cmdDetener_Click() Private Sub cmdIniciar_Click() Private Sub cmdSalir_Click() Private Sub Timer1_Timer() El ejercicio con su código completo puede bajarse de Aquí |
|
![]() |
|
![]() |
Este ejercicio calcula el área de distintas figuras geométricas. usamos el mismo escenario que para la aplicación Ecuaciones de Segundo Grado.Su código es: |
Option
Explicit Dim Figura As String 'Identifica las figuras. Dim B1 As Single 'Para la base mayor del trapecio. Dim b As Single 'Para la base. Dim h As Single 'Para la altura. Dim Area As Single 'Para el área Const Pi = 3.1415 'constante Sub Circulo() Call Limpiar Call OcultarB1 'Pone invisible lblB1 y txtB1 por no necesitarse para el cálculo. Call OcultarH 'Pone invisible lblH y txtH por no necesitarse para el cálculo. lblB.Caption = "r=" picFigura.DrawStyle = 0 'Dibujar con líneas continuas. fraDatos.Visible = True 'MostrarB1 los datos. fraResultados.Visible = False 'OcultarB1 los resultados. Dim x As
Single, y As Single 'Colocar
los letreros de altura. Sub Rombo() picFigura.Line (500, 300)-(1900, 1400), , B 'Dibuja un cuadrado dando los vértices opuestos. 'Colocar
los letreros de altura. Sub Paralelogramo() Sub OcultarB1()
'Oculta lblB1 y txtB1. Sub MostrarB1()
'Muestra lblB1 y txtB1. Private
Sub cmdCalcular_Click() Private
Sub cmdSalir_Click() Private
Sub Form_Load() Private
Sub optCirculo_Click() Private
Sub optCuadrado_Click() Private
Sub optParalelogramo_Click() Private
Sub optRectangulo_Click() Private
Sub optRombo_Click() Private
Sub optTrapecio_Click() Private
Sub optTriangulo_Click() Private
Sub txtB_LostFocus() Private
Sub txtB1_LostFocus() Private
Sub txtH_LostFocus() El código
completo puede bajarse de AQUÍ. |
|
![]() |
|
![]() |
![]() |
Este ejercicio es una nueva versión del juego de memoria que busca dos imágenes iguales, para que vayan desapareciendo. Le hemos hecho una presentación y luego el juego en sí. El código es el siguiente: | |
Para el formulario de presentación: Option Explicit
If tiempo = 30
Then Picture7 = Picture8(a) Picture6 = Picture5(a) Picture1 = Picture2(a) Picture3 = Picture4(a) If tiempo = 5
Then End Sub Para el segundo formulario: Option Explicit Sub FigurasVisibles() Sub VoltearImagen() Sub HabilitarTodos() Sub Verificar()
'Para ver si las dos figuras son iguales. Function MezclarFiguras()
As Integer 'Genera un número aleatorio entre 0 y 7. Do While True
'Continua generando mientras... MezclarFiguras
= iNumero Private Sub Form_Load() UnoMostrado =
False 'Inicializa el
arreglo figuras. mnuIniciar_Click
'Hacer click en el menu Inicio. Private Sub Frame1_MouseMove(Button
As Integer, Shift As Integer, X As Single, Y As Single) Private Sub mnuIniciar_Click() Chequear = "" 'Cadena de revisión vacía. picFigura(8).Tag
= Figura(MezclarFiguras()) MousePointer
= 0 'Devuelve el mousepointer a lo normal. Private Sub mnuSalir_Click()
Private Sub Timer2_Timer() El código
completo puede bajarse de AQUÍ. |
|
![]() ![]() |
|
![]() |
![]() |