Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema al sumar con variables..

Estas en el tema de Problema al sumar con variables.. en el foro de Visual Basic clásico en Foros del Web. Hola.. Espero que esta vez tenga mas suerte... A ver, el problema que tengo es que al sumar un valor a una variable de tipo ...
  #1 (permalink)  
Antiguo 12/01/2009, 10:53
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema al sumar con variables..

Hola..
Espero que esta vez tenga mas suerte...
A ver, el problema que tengo es que al sumar un valor a una variable de tipo integer, a veces no lo suma..
En las pruebas que estoy haciendo sumo de a uno...
Uso visual basic.net 2008 y tengo el siguiente código:

Private Sub UnitList_RowsAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowsAddedEventArg s) Handles UnitList.RowsAdded
Validacion()
If errores(0) = "" Then
ValidacionT.Text = "Tu lista cumple con todas las reglas de validación"
Else
ValidacionT.Text = "Tu lista tiene " & errores.Length & " errores. Haz click acá para verlos"
End If
MsgBox("Número de básicas: " & Basicas & " Mínimo de básicas " & minbasicas)
If Basicas < minbasicas Then
MsgBox(Basicas & "(Básicas) es menor que " & minbasicas & "(Mínimo de básicas)" & ". Se ha sumado " & unit(comparacion(UnitList.Rows(e.RowIndex), RosterHelper)).Basicas & " al contador de básicas")
Else
MsgBox(minbasicas & "(Mínimo de básicas) es menor que " & Basicas & "(Básicas) ")
End If
Comandantes += unit(comparacion(UnitList.Rows(e.RowIndex), RosterHelper)).Comandantes
Heroes += unit(comparacion(UnitList.Rows(e.RowIndex), RosterHelper)).Heroes
Basicas += unit(comparacion(UnitList.Rows(e.RowIndex), RosterHelper)).Basicas
Especiales += unit(comparacion(UnitList.Rows(e.RowIndex), RosterHelper)).Especiales
Singulares += unit(comparacion(UnitList.Rows(e.RowIndex), RosterHelper)).Singulares
'ReDim Preserve value(9, UnitList.Rows.Count - 1)
End Sub

----
Estoy haciendo las pruebas con la variable basicas.. Los Msgbox son para eso..
Lo declaro de la siguiente manera:
Dim Comandantes As Integer = 0
Dim Heroes As Integer = 0
Dim Basicas As Integer = 0
Dim Especiales As Integer = 0
Dim Singulares As Integer = 0
Dim maxcoman As Integer = 0
Dim maxheroes As Integer = 0
Dim minbasicas As Integer = 0
Dim maxespeciales As Integer = 0
Dim maxsingulares As Integer = 0

----
Y en el evento de UserDeletingRow, tengo el otro código que resta:

Private Sub UnitList_UserDeletingRow(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowCancelEventArg s) Handles UnitList.UserDeletingRow


Comandantes -= unit(comparacion(e.Row, RosterHelper)).Comandantes
Heroes -= unit(comparacion(e.Row, RosterHelper)).Heroes
Basicas -= unit(comparacion(e.Row, RosterHelper)).Basicas
Especiales -= unit(comparacion(e.Row, RosterHelper)).Especiales
Singulares -= unit(comparacion(e.Row, RosterHelper)).Singulares
If Basicas < minbasicas Then
MsgBox(Basicas & "(Básicas) es menor que " & minbasicas & "(Mínimo de básicas)")
Else
MsgBox(minbasicas & "(Mínimo de básicas) es menor que " & Basicas & "(Básicas) ")
End If
End Sub
-------
Mediante el programa asigno los valores a las variables minbasicas, maxcoman, etc, que son para la "validacion"...
El problema exacto es el siguiente:
Inicialmente la variable basicas tiene un valor de 0. Se supone que cuando agrega una fila, se suma el valor de la propiedad basicas de la fila... Entonces, agrego la fila, y raramente, no suma ningun valor, cuando deberia sumar 1 a básicas... Pero por ejemplo, si yo agrego nuevamente otra fila, si que suma el valor, cuando estoy agregando filas con propiedades totalmente identicas, con valores totalmente identicos...
El mismo problema ocurre en el caso contrario, solo que cuando uno quita un valor a la variable basicas, el problema ocurre con la última fila...

No se que podria estar pasando, intenté verificando el codigo, volviendo a generar todo, limpiando basura, pero nada..
Por favor, algun alma caricativa que me ayude...

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:50.