Comportamiento extraño IF en VB 6.0
Publicado por Lucas (2 intervenciones) el 10/03/2017 02:06:53
Hola a todos, soy nuevo en la pagina, eh estado leyendo mucho aca para ayudar a recordar como iba todo esto pero parece que llego la hora de pedir ayuda especificamente.
Tengo problemas con un IF a la hora de comparar 2 variables y ordenarlas de mayor a menos, junto a otras variables asociadas.. dejo el codigo e intento explicar abajo
Disculpen el caos pero no programaba desde la secundaria y estoy oxidado. El problema esta en los Ini.Caption de los IF. Hay veces que la condicion se cumple pero no entra al IF, como tambien hay veces que no cumple la condicion pero ingresa igual al IF, cambiando las variables de lugar cuando no deberia.
Por momentos anda bien y por momentos anda mal, la verdad no se que esta mal. Estuve viendo paso a paso y hay casos en que ocurre Mob2Ini (5) > Mob1Ini (15) y cambia de lugar cuando no deberia.
Desde ya muchas gracias.
Tengo problemas con un IF a la hora de comparar 2 variables y ordenarlas de mayor a menos, junto a otras variables asociadas.. dejo el codigo e intento explicar abajo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
If Tabla.Mob2Ini.Caption > Tabla.Mob1Ini.Caption Then ' Compara 2 Integer
NombreSlot1 = Tabla.Mob1.Caption 'Guarda primer set de variables para acomodar
HpSlot1 = Tabla.Mob1Hp.Caption
IniSlot1 = Tabla.Mob1Ini.Caption
NombreSlot2 = Tabla.Mob2.Caption 'Guarda segundo set de variables para acomodar
HpSlot2 = Tabla.Mob2Hp.Caption
IniSlot2 = Tabla.Mob2Ini.Caption
Tabla.Mob1.Caption = NombreSlot2 ' Reescribo primer set de variables x el segundo
Tabla.Mob1Hp.Caption = HpSlot2
Tabla.Mob1Ini.Caption = IniSlot2
Tabla.Mob2.Caption = NombreSlot1 ' Reescribo segundo set de variables x el primero
Tabla.Mob2Hp.Caption = HpSlot1
Tabla.Mob2Ini.Caption = IniSlot1
NombreSlot1 = "" ' Limpieza variables
HpSlot1 = 0
IniSlot1 = 0
NombreSlot2 = ""
HpSlot2 = 0
IniSlot2 = 0
ElseIf Tabla.Mob1Ini.Caption = Tabla.Mob2Ini.Caption Then ' En caso de que los 2 valores sean iguales
If Tabla.Mob2Hp.Caption > Tabla.Mob1Hp.Caption Then ' Comparo los por Hp
NombreSlot1 = Tabla.Mob1.Caption
HpSlot1 = Tabla.Mob1Hp.Caption
IniSlot1 = Tabla.Mob1Ini.Caption ' Asignacion resguardo 1er set
NombreSlot2 = Tabla.Mob2.Caption
HpSlot2 = Tabla.Mob2Hp.Caption
IniSlot2 = Tabla.Mob2Ini.Caption ' Asignacion resguardo 2do set
Tabla.Mob1.Caption = NombreSlot2 ' Reemplazo de 1 x 2
Tabla.Mob1Hp.Caption = HpSlot2
Tabla.Mob1Ini.Caption = IniSlot2
Tabla.Mob2.Caption = NombreSlot1 ' Reemplazo de 2 x 1
Tabla.Mob2Hp.Caption = HpSlot1
Tabla.Mob2Ini.Caption = IniSlot1
NombreSlot1 = "" ' Limpieza variables
HpSlot1 = 0
IniSlot1 = 0
NombreSlot2 = ""
HpSlot2 = 0
IniSlot2 = 0
End If
End If
Disculpen el caos pero no programaba desde la secundaria y estoy oxidado. El problema esta en los Ini.Caption de los IF. Hay veces que la condicion se cumple pero no entra al IF, como tambien hay veces que no cumple la condicion pero ingresa igual al IF, cambiando las variables de lugar cuando no deberia.
Por momentos anda bien y por momentos anda mal, la verdad no se que esta mal. Estuve viendo paso a paso y hay casos en que ocurre Mob2Ini (5) > Mob1Ini (15) y cambia de lugar cuando no deberia.
Desde ya muchas gracias.
Valora esta pregunta
0