Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Acceder A Array Desde Otro Sub(Solucionado)
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Acceder A Array Desde Otro Sub(Solucionado) 
 
Hola, necesito acceder a un arrray de textbox desde un procedimiento diferente al que los creo, en el mismo formulario.
 Este el còdigo que los crea:
-------------------------------Creacion de la matriz de texbox
    matrizObjetos = NEW Object[]
  
'-------------------------------Numero de texbox
    FOR x = 1 TO largoCadena
'--------------------------------Creacion de los textbox
        textbox = NEW TextBox(ME)
        label = NEW label(ME)
'--------------------------------------Posicionamiento de los textbox        
        textbox.X = (x * 10 + x) * 2.5 + 2
        textbox.Y = 200
        textbox.width = 20
        textbox.height = 40
        textbox.visible = TRUE
        label.x = (x * 10 + x) * 2.5 + 2
        label.y = 250
        label.Width = 20
        label.Height = 5
        label.Background = Color.Black

'-------------------------------------------Lectura de los caracteres de la cadena
                                            'y colocacion en los textbox.
        caracter = Mid(cadenaCompleta, x, 1)
        textbox.Text = caracter  
        matrizObjetos.Add(textbox, x)
'--------------------------------------------bloquearlos textbox para que el usuario no pueda
'                                              escribir en ellos
        textbox.Enabled = FALSE
'-------------------------------------------comprobar si es espacio vacìo y cambiar color de fondo
' ------------------------------------------en caso contrario hacer el textbox invisible
        IF textbox.text = " " THEN
        textbox.Background = Color.Blue
        ELSE
        textBox.Visible = FALSE

END IF  
NEXT
END IF



 Cada vez que intento acceder a ellos desde otro sub me da errores (NOT an objet) u objet null.
O sea, todo en el mismo formulario, en dos procedimientpos diferentes.
 Gracias desde ya por la ayuda que puedan prestarme.
Espero pronto poder a mi vez ayudar a otros.
Saludos
P.D gambas 2.19,ubuntu 10.04
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
última edición por Dani26 el Miercoles, 16 Junio 2010, 03:19; editado 2 veces 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Array Desde Otro Sub 
 
Hola.

En este codigo le asignas el evento Mostrar a cada textbox que se crea, y que se llamará al hacer doble clic sobre cada uno de ellos.

' gambas class file
PRIVATE matrizObjetos AS Object[]
PRIVATE inicializado AS Boolean

PUBLIC SUB Form_Open()
DIM textbox AS TextBox
DIM pelicula AS String[]
DIM partesCadena AS String
DIM cadenaCompleta AS String
DIM largoCadena AS Integer
DIM x AS Integer
DIM caracter AS String
DIM label AS label
'------------------------------Cambiar el nombre de la pelicula
DIM nombrePelicula AS String = "Harry Potter y el principe mestizo"

'------------------------------- dividir caracteres
pelicula = Split(nombrePelicula)

'--------------------------------Juntar nombre pelicula
FOR EACH partesCadena IN pelicula
 cadenaCompleta = cadenaCompleta & partesCadena
NEXT
 
'------------------------------Tomar largo pelicula
largoCadena = Len((cadenaCompleta))

IF NOT inicializado THEN
'-------------------------------Creacion de la matriz de texbox
    matrizObjetos = NEW Object[]
'-------------------------------Numero de texbox
    FOR x = 1 TO largoCadena
'--------------------------------Creacion del textbox con el evento "Mostrar"
        textbox = NEW TextBox(ME) AS "Mostrar"
'--------------------------------------Creacion de las etiquetas        
        label = NEW label(ME)
'--------------------------------------Posicionamiento de los textbox        
        textbox.X = (x * 10 + x) * 5 + 2
        textbox.Y = 200
        textbox.width = 40
        textbox.height = 60
'------------------------Asigna un numero correlativo a cada textbos para identificarlos
        textbox.tag = x
        label.x = (x * 10 + x) * 5 + 2
        label.y = 270
        label.Width = 40
        label.Height = 5
        label.Background = Color.Black
'-------------------------------------------Lectura de los caracteres de la cadena
                                            'y colocacion en los textbox.
        caracter = Mid(cadenaCompleta, x, 1)
        textbox.Text = caracter  
        matrizObjetos.Add(textbox, x)
    NEXT
END IF  
END

PUBLIC PROCEDURE Mostrar_Dblclick()
'===============================================================
'PROPOSITO PROCEDURE: Al hacer doble click sobre cada textbox
                      'se muestra su numero correlativo de tag
'===============================================================                      
  DIM y AS Integer
  y = LAST.tag
  Message(Str(y))
END

 



 
abarzuaf - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Array Desde Otro Sub 
 
Hola, quizàs no me expresé bien. Lo que necesito es acceder al contenido de los textbox para compararlos uno a uno con el texbtbox donde el usuario coloca la letra elegida.
En visual basic lo hacía así
Public Sub tiraletra()
 buena = False
  If TIRARLETRA = "" Then
      TIRARLETRA.SetFocus
     Exit Sub
  End If
  List1.AddItem TIRARLETRA.Text
 For contador = 1 To 30
      If TIRARLETRA.Text = TXTLETRA(contador).Text Then
          If TXTLETRA(contador).Visible = False Then
             TXTLETRA(contador).Visible = True
             MARCADOR.Caption = MARCADOR.Caption - 1
             buena = True
                                 If TXTLETRA(contador).Text = " " Then
 TXTLETRA(contador).BackColor = vbBlack
 End If
 
         End If
     End If
 
 Next contador
 TIRARLETRA.Text = ""
TIRARLETRA.SetFocus
 If buena = False Then
       errores = errores - 1
     If errores = 5 Then
     Image1.Picture = LoadPicture(App.Path & "\uno.bmp")
      ElseIf errores = 4 Then
      Image1.Picture = LoadPicture(App.Path & "\dos.bmp")
       ElseIf errores = 3 Then
      Image1.Picture = LoadPicture(App.Path & "\tres.bmp")
       ElseIf errores = 2 Then
      Image1.Picture = LoadPicture(App.Path & "\cuatro.bmp")
       ElseIf errores = 1 Then
      Image1.Picture = LoadPicture(App.Path & "\cinco.bmp")
      
      End If
    
 End If

Donde contador es el numero de cada control en la matriz txtletra (matriz  estàtica) .
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Array Desde Otro Sub 
 
Hola.

1) Agrega un textbox a tu formulario.
2) Dentro de su evento keypress, añade el código que te anexo.

' gambas class file
PRIVATE matrizObjetos AS Object[]
PRIVATE inicializado AS Boolean
PRIVATE largoCadena AS Integer '¡¡¡¡ATENCIÓN ESTA VARIABLE ES AHORA PRIVADA!!!!!!


PUBLIC SUB Form_Open()
DIM textbox AS TextBox
DIM pelicula AS String[]
DIM partesCadena AS String
DIM cadenaCompleta AS String
DIM x AS Integer
DIM caracter AS String
DIM label AS label
'------------------------------Cambiar el nombre de la pelicula
DIM nombrePelicula AS String = "Iron Man 2"

'------------------------------- dividir caracteres
pelicula = Split(nombrePelicula)

'--------------------------------Juntar nombre pelicula
FOR EACH partesCadena IN pelicula
 cadenaCompleta = cadenaCompleta & partesCadena
NEXT
 
'------------------------------Tomar largo pelicula
largoCadena = Len((cadenaCompleta))

IF NOT inicializado THEN
'-------------------------------Creacion de la matriz de texbox
    matrizObjetos = NEW Object[]
'-------------------------------Numero de texbox
    FOR x = 1 TO largoCadena
'--------------------------------Creacion de los textbox
        textbox = NEW TextBox(ME)
        label = NEW label(ME)
'--------------------------------------Posicionamiento de los textbox        
        textbox.X = (x * 10 + x) * 5 + 2
        textbox.Y = 200
        textbox.width = 40
        textbox.height = 60
        textbox.visible = FALSE
        label.x = (x * 10 + x) * 5 + 2
        label.y = 270
        label.Width = 40
        label.Height = 5
        label.Background = Color.Black

'-------------------------------------------Lectura de los caracteres de la cadena
                                            'y colocacion en los textbox.
        caracter = Mid(cadenaCompleta, x, 1)
        textbox.Text = caracter
        matrizObjetos.Add(textbox, x)
    NEXT
END IF  
END

'CODIGO ANEXADO------------------------------------------------------------------------------

PUBLIC SUB TextBox1_KeyPress()
'=========================================================
'PROPOSITO DEL EVENTO: Buscar coincidencias de caracter
'=========================================================
DIM y AS Integer
  
'------------------------------Si la tecla que presionamos es ENTER,luego  
  IF Key.code = Key.Return THEN    
     FOR y = 0 TO largoCadena - 1
        IF matrizObjetos[y].Text = TextBox1.Text THEN  
           matrizObjetos[y].visible = TRUE
        END IF
     NEXT
 END IF  

END
 


Nota : La variable largoCadena es ahora Private.

Saludos
 



 
última edición por abarzuaf el Martes, 15 Junio 2010, 17:30; editado 1 vez 
abarzuaf - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Acceder A Array Desde Otro Sub 
 
Nuevamente gracias, voy a tener que ponerte en los créditos del juego, me has dado una mano enorme y estoy aprendiendo muchìsimo. He avanzado bastante màs en el juego, en pocos dìas creo poder tener una primera versiòn funcionando.
Saludos
P.D.
Por cierto el còdigo funciona perfecto, le agregué algunas modificaciones para contabilizar errores.
 




===================
Migrando desde visual basic, el Gambas de Ms
Mi blog gambero
 
Dani26 - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Acceder Variables Private Desde Multiples ... perseo3000 General 2 Domingo, 28 Agosto 2011, 04:01 Ver último mensaje
codificador
No hay nuevos mensajes Acceder A Una Carpeta De Otro Ordenador.... jsbsan General 4 Miercoles, 28 Diciembre 2011, 21:31 Ver último mensaje
jsbsan
No hay nuevos mensajes Problemas Para Acceder A Un Array De Table... Ricardo Prieto General 5 Miercoles, 09 Diciembre 2015, 01:05 Ver último mensaje
Ricardo Prieto
No hay nuevos mensajes ¿Cómo Acceder A IOCTL_CONSOLE Desde Gamb... Grandamakulo General 18 Domingo, 20 Octobre 2019, 14:11 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron