Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: e_nygma en 28 Octubre 2007, 19:38 pm



Título: error al declarar una matriz como publica en v.b
Publicado por: e_nygma en 28 Octubre 2007, 19:38 pm
Estimados, soy un poco novato en lo que es matrices en visual basic y tratando de crear una matriz como publica para que pueda ser vista desde cualquier form al compilar me da un error que es el siguiente: "Error de compilacion:
No se permiten constantes, cadenas de longitud fija, matrices e instrucciones Declare como miembros Public de modulos de objeto"

la idea es crear una pequeña matriz que guarde nombre de alumnos, y algunas notas y que esos datos sean accesibles de un nuevo form.

aqui les adjunto mi codigo por si me pueden ayudar
Public matriz_nombre(1 To 5) As Variant
Public matriz_nota(1 To 5, 1 To 4) As Variant
Public nombre As String
Public nota1 As Integer
Public nota2 As Integer
Public nota3 As Integer
Public nota4 As Integer
Public numal As Integer

Private Sub Command1_Click()
nombre = txtnomal
numal = txtnumal
nota1 = txtnota1
nota2 = txtnota2
nota3 = txtnota3
nota4 = txtnota4

matriz_nombre(numal) = nombre
matriz_nota(numal, 1) = nota1
matriz_nota(numal, 2) = nota2
matriz_nota(numal, 3) = nota3
matriz_nota(numal, 4) = nota4

Agradeciendoles de antemano por su tiempo y por su ayuda se despide atentamente,

E_nygma.


Título: Re: error al declarar una matriz como publica en v.b
Publicado por: HaDeS, - en 28 Octubre 2007, 22:01 pm
Como dice el mismo error, no podes declarar matrices como public, pero si podes declarar funciones públicas:
Código
  1. Private matriz_nombre(1 To 5) As Variant
  2. Private matriz_nota(1 To 5, 1 To 4) As Variant
  3. Public nombre As String
  4. Public nota1 As Integer
  5. Public nota2 As Integer
  6. Public nota3 As Integer
  7. Public nota4 As Integer
  8. Public numal As Integer
  9.  
  10. Private Sub Command1_Click()
  11. nombre = txtnomal
  12. numal = txtnumal
  13. nota1 = txtnota1
  14. nota2 = txtnota2
  15. nota3 = txtnota3
  16. nota4 = txtnota4
  17.  
  18. matriz_nombre(numal) = nombre
  19. matriz_nota(numal, 1) = nota1
  20. matriz_nota(numal, 2) = nota2
  21. matriz_nota(numal, 3) = nota3
  22. matriz_nota(numal, 4) = nota4
  23. End Sub
  24.  
  25. Public Function devolvervalormatriz_nombre(numero%) As String
  26. devolvervalormatriz_nombre = matriz_nombre(numero)
  27. End Function
  28.  
  29. Public Function devolvervalormatriz_nota(numero$, numero2$) As String
  30. devolvervalormatriz_nota = matriz_nota(numero, numero2)
  31. End Function
  32.  

y desde otro form o un módulo:
Código
  1. 'Form donde esta la función pública
  2. Nombre = Form1.devolvervalormatriz_nombre(4)
  3.  

Saludos :)