Foros del Web » Programación para mayores de 30 ;) » .NET »

Pasar una variable declarada en un private sub a otro private sub

Estas en el tema de Pasar una variable declarada en un private sub a otro private sub en el foro de .NET en Foros del Web. Hola, ojala me puedan dar una mano con esto. Estoy trabajando Visual Studio 2008 y estoy creando un windowsform con visual basic. Private Sub ver_cliente_Load(bla.bla) ...
  #1 (permalink)  
Antiguo 28/10/2009, 08:36
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Pasar una variable declarada en un private sub a otro private sub

Hola, ojala me puedan dar una mano con esto. Estoy trabajando Visual Studio 2008 y estoy creando un windowsform con visual basic.

Private Sub ver_cliente_Load(bla.bla)
'declaro esta variable, pero dentro de este mismo Private Sub
'realizo modificaciones en la variable
Dim index As Integer
End

Private Sub siguiente_Click(bla.bla)
'Aca declaro otra variable
Dim fila as Integer
'Lo que necesito es pasar el valor que tiene la variable index declarada en el otro 'Private Sub a la variable fila de este mismo Private Sub
'Una cosas asi
fila = index

El tema es que no se como hacerlo, si me puediesen ayudar porfavor
De ante mano muchas gracias
  #2 (permalink)  
Antiguo 28/10/2009, 09:37
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
Respuesta: Pasar una variable declarada en un private sub a otro private sub

si los 2 subs son parte de la misma clase seria mejor que esa variable fuera un miembro de la clase misma. asi como lo tienes el scope de la variable es local y solo puede vivir en cada funcion.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 28/10/2009, 09:41
Avatar de neo101  
Fecha de Ingreso: julio-2007
Mensajes: 73
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Pasar una variable declarada en un private sub a otro private sub

Y xq no en vez de sub's utilizas funciones... así, el valor de index lo retornas, asignandolo a tu siguiente procedimiento o funcion, como parámetro...

Algo asi_
Código vb.net:
Ver original
  1. Private Function ver_cliente_Load(bla.bla)
  2. 'declaro esta variable, pero dentro de este mismo Private Sub
  3. 'realizo modificaciones en la variable
  4. Dim index As Integer
  5. return index
  6. End function
  7.  
  8. 'Despues tienes el otro sub, q recibira index:
  9.  
  10. Private Sub siguiente_Click(byval index as integer)
  11. 'Aca declaro otra variable
  12. Dim fila as Integer
  13. fila = index
  14. end sub
  15.  
  16. 'imaginando el cuerpo completo, el main iria algo asi:
  17.  
  18. Private Sub main()
  19. 'entre otras instrucciones...
  20. Siguiente_Click(Ver.cliente_Load(parametros...))
  21. 'mas instrucciones...
  22. End Sub

Algo asi se me ocurre pero no se hasta que grado de objetos manejas o como es en realidad la estructura de tu programa. La respuesta es: Si regresas index no desde sub, sino desde alguna función, podrás utilizarlo en otra cosa...

Xq la otra es q la declares como globar o Static, pero no soy muy fan d esto...

Salu2
__________________
Everything that has a beginning, has an end...
  #4 (permalink)  
Antiguo 28/10/2009, 15:42
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Respuesta: Pasar una variable declarada en un private sub a otro private sub

La verdad, no entendi lo que me dijiste Peterpay, Si me pudieses explicar de otra manera porfavor.

Neo101, no utilizo function por que son los eventos predeterminados al accionar el control del designer. Por lo tanto no creo que me sea de mucha utilidad utilizar funcion.
Para explicar de mejor manera el contexto en el que me encuentro, voy a poner el codigo que involucra la consulta.
Código:
Private Sub ver_cliente_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim conexion As New SqlConnection(cadena)
               Dim MiAdapter As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM cliente", conexion)
        Dim MiDataSet As New DataSet
        MiAdapter.Fill(MiDataSet)
        Dim dt As New DataTable
        Dim dr As DataRow
        dt = MiDataSet.Tables(0)
'ACA DECLARO LA VARIABLE QUE ME INTERESA ENVIAR AL OTRO Private Sub
'QUE LO PONGO A CONTINUACION
        Dim index As Integer
        For index = 0 To dt.Rows.Count - 1
'EL VALOR QUE CONTIENE EL INDEX, ES EL QUE QUIERO ENVIAR
            dr = dt.Rows(index)
            If retornoCodigo = dr(0) Then
                 txCodigo.Text = dr("cod_cli")
            End If
        Next     
    End Sub
Código:
Private Sub siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles siguiente.Click
        Dim conexion As New SqlConnection(cadena)
        Dim MiAdapter As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM cliente", conexion)
        Dim MiDataSet As New DataSet
        MiAdapter.Fill(MiDataSet)
        Dim dt As New DataTable
        Dim dr As DataRow
           
        dt = MiDataSet.Tables(0)
        Dim fila As Integer 
'ACA ES DONDE ME INTERESA QUE LA VARIABLE fila TOME EL VALOR DE index QUE 'ESTA EN EL OTRO Private Sub
        dr = dt.Rows(fila)

        txCodigo.Text = dr("cod_cli")
        max = dt.Rows.Count - 1
        If fila = max Then
            siguiente.Enabled = False
        End If
        fila = fila + 1
    End Sub
Espero sirva, para que se comprenda de mejor manera la consulta y el contexto tambien.
Eso muchas gracias Por sus respuestas
  #5 (permalink)  
Antiguo 28/10/2009, 16:13
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 15 años, 2 meses
Puntos: 16
Respuesta: Pasar una variable declarada en un private sub a otro private sub

Porque no declaras la variable al inicio de la clase para que puedas usarla en cualquier método.
Código vb.net:
Ver original
  1. Public Class Form1
  2.  
  3. Private index As Integer
  4.  
  5. Private Sub ver_cliente_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  6.        index = 10
  7.     End Sub
  8.  
  9. Private Sub siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles siguiente.Click
  10.     dim fila As Integer
  11.      fila = index   'fila tomará el valor de indice, o sea 10.      
  12.     End Sub
  13.  
  14. End Class
Espero sea lo que buscas.
  #6 (permalink)  
Antiguo 28/10/2009, 16:20
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 17 años, 2 meses
Puntos: 87
Respuesta: Pasar una variable declarada en un private sub a otro private sub

lo que dije es exactamente lo que eperedo te dice, eso es declarar un miembro en tu clase.

PD: si hay algo que es muy cierto de ese dicho de no quieras correr sin saber caminar, hay que darle una repasada a conceptos de POO antes ponerse a programar cosas de mayor compleidad.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 28/10/2009, 17:31
 
Fecha de Ingreso: octubre-2009
Mensajes: 70
Antigüedad: 15 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Pasar una variable declarada en un private sub a otro private sub

Muchas gracias por sus respuestas, me han servido de gran ayuda.
Chao Gracias
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 14:04.