Visual Basic - Error variable

Life is soft - evento anual de software empresarial
   
Vista:

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 15:23:02
¿Podríais ayudarme a resumir un código en una variable?

Gracias de antemano.

Código original:

1
2
3
4
5
6
7
8
9
If Image2(0).BackColor = Image1(0).BackColor And _
Image2(1).BackColor = Image1(1).BackColor And _
Image2(2).BackColor = Image1(2).BackColor And _
Image2(3).BackColor = Image1(3).BackColor And _
Image2(4).BackColor = Image1(4).BackColor And _ Then
bien.Visible = True
End If
 
‘En realidad son 100  index los que comparo.

Trato de resumirlo así, pero no funciona; en cuanto encuentra un control que cumple la condición, lo da por bueno todo. Creo que falta un bucle que no se plantear.

1
2
3
4
5
6
Dim i As Integer
For i = 0 To 4
If Image2(i).BackColor = Image1(i).BackColor Then
bien.Visible = True
End If
Next i

Gracias.
Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Andres Leonardo

Error variable

Publicado por Andres Leonardo (702 intervenciones) el 25/03/2015 15:49:20
Creo que nos has detallado bien... pero nos falta saber algo ... cuando se cumple que deberia pasar y cuando no se cumple .. que pasa.

Si dices que cuando cumple bien.visible = true ... a que se refiere??? a un control que se tiene que habilitar cuando se cumplan cierto numero de comparaciones correctas ??

A mi parecer esta planteando mal la pregunta y por ende la respuesta en caso de que este bien...


Dim i As Integer
For i = 0 To 4
If Image2(i).BackColor = Image1(i).BackColor Then
bien.Visible = True
End If
Next i
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 17:20:50
Hola, gracias por responder,

El tema es que hay 50' grupos dos imágenes y las comparo por el backcolor. Si llegado un momento este backcolor es el mismo en las dos imágenes de todos los grupos, el ejercicio es correcto y a aparece bien.visible=true.

Y esa variable que pongo, no funciona. Si encuentra una sola coincidencia (dos imágenes con el mismo backcolor ya lo da por bueno, cuanto tiene que comparar 50.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Juan Gilberto (278 intervenciones) el 25/03/2015 16:17:28
Ponlo al otro lado

1
2
3
4
5
6
7
8
9
Dim i As Integer
 
bien.Visible = True
 
For i = 0 To 4
    If Image2(i).BackColor <> Image1(i).BackColor Then
        bien.Visible = False
    End If
Next i

Si bien.Visible sale True de ese For-Next quiere decir que todos los backcolors fueron iguales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 17:21:45
Hola, he probado a hacerlo como dices, pero sigue igual. En cuanto encuentra una coincidencia, lo da por bueno.

Se me olvidaba, gracias por responder.

Subo un ejemplo en el que verás que aunque uno de los controles no cumple la condición, la variable lo da por bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Error variable

Publicado por Andres Leonardo (702 intervenciones) el 25/03/2015 19:42:01
Lo que pasa es que para mi siempre vas a tener 50 Comparaciones .... y en esas 50 si una se cumple sera verdadero,
Por que mas Bien no haces un resumen ... espero el ejemplo que te paso te sirva.

Considero que tienes un mal concepto de cuando label 3 es Correcto puesto que haces 50 comparaciones ... disculpa pero aun no le veo cuando deberia ser correcto y cuando no (se que es cada pareja por eso te digo que tendras 50 resultados y por ende la evaluacion deberia ser un resumen)

Espero que esto te ayude.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 19:58:58
He visto el ejemplo y veo como lee uno a uno los resultados.

Correcto es cuando comparados los 50 grupos de 2 imágenes cada uno, tiene el mismo BackColor, como las Label del ejemplo, cuando Label1(0) tiene el mismo BackColor que Label2(0), y Label1(1) el mismo que Label2(1)...

Sigo pensando que en esta variable falta un bucle que obligue a contar una a una aunque encuentre una coincidencia.
El problemas es que no se como enfocarlo.

Utilizando tu ejemplo, funciona. Subo el fichero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Khristtian (54 intervenciones) el 25/03/2015 20:16:50
Usa un contador y dos variables booleanas.

Si los colores son iguales. Asignas true a la 1a booleana.
Luego, si la 1a booleana es true, aumentas el contador en +1.

Luego cuando termine el bucle, si el contador es igual al numero de elementos, la operación es satisfactoria.

Ahora, mientras evalúas cada elemento, apenas te salga un False en la comparación, sal del bucle y devuelve false.
No es necesario seguir si ya hay un elemento que no cumple la condición.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 20:28:10
Te agradezco la ayuda Andres Leonardo, pero es que no se hacer lo que me dices, ese es el problema.

Gracias por todo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Megamind

Error variable

Publicado por Megamind (121 intervenciones) el 25/03/2015 20:54:09
Esto es en VB6??
Porque en mi VB6, el Control Image, no tiene BackColor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 20:57:11
Es en Visual Basic 6. El control es uno de La Volpe, le he llamado Image, pero sí tiene BackColor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Megamind

Error variable

Publicado por Megamind (121 intervenciones) el 25/03/2015 21:11:30
Ok, pues prueba esto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim Ind As Integer
 
Private Sub Command1_Click()
Dim i As Integer
For i = 0 To Imaga2.Count - 1
  If Imaga2(i).BackColor = Imaga1(i).BackColor Then
     Ind = Ind + 1
    End If
Next i
 
If Ind = Imaga2.Count Then
  BIEN.Visible = True
  Else
  MAL.Visible = True
 End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 21:20:22
Muchas gracias Megamind, ha funcionado perfectamente.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Megamind

Error variable

Publicado por Megamind (121 intervenciones) el 25/03/2015 21:23:48
Un placer. Solo recuerda resetear la Variable Ind al ejecutar el procedimiento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 25/03/2015 21:31:13
Gracias de nuevo.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo

Error variable

Publicado por Andres Leonardo (702 intervenciones) el 25/03/2015 22:35:24
Pues creo que en mi ejemplo hice exactametne lo mismo jejejejeje
Solo que yo puse un resumen en un list de que esta bien y cual no...
luego validaba ... en todo caso...... que bueno que lo hayas resuelto

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Command1_Click()
Dim i As Integer
Dim c As Integer
c = 0
lstResultado.Clear
For i = 0 To 2
If Label1(i).BackColor = Label2(i).BackColor Then
    '
    lstResultado.AddItem "Pareja " & i & " OK"
    c = c + 1
Else
    lstResultado.AddItem "Pareja " & i & " Error"
End If
Next i
'Ahora valido el resultado del proceso
If c = i Then
bien.Visible = True
Else
bien.Visible = False
End If
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Error variable

Publicado por Cris (33 intervenciones) el 26/03/2015 06:56:54
Gracias por todo Andres Leonardo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar