elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Duda novato VB6
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda novato VB6  (Leído 2,895 veces)
miomi

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Duda novato VB6
« en: 19 Enero 2011, 16:27 pm »

Hola, estoy empezando a aprender ellenguaje VB6 pero no entiendo una cosa:

Dim Número As Integer
Número = 5
Print Número
Número = 12
Print Número

Bueno, este es un ejemplo en un curso de VB6. Veran no entiendo para que seusa Dim, en el curso lo explica dice que es para guardar un ''cachillo'' de memoria para nuestro uso. No entiendo en que sediferencia eso de crear dos variable y ya esta. Ejemplo

Show
Numero = 5
Print NUmero
Numero = 6
Print Numero

Al fin y al cabo hacen lo mismo... Gracias


En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Duda novato VB6
« Respuesta #1 en: 19 Enero 2011, 16:33 pm »

Si es lo mismo, pero lo que un buen programador debe tener es bien documentado y organizado el codigo. Busca sobre "option explicit" y "parametros por referencia"... ;)


En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Duda novato VB6
« Respuesta #2 en: 19 Enero 2011, 16:42 pm »

HOLA!!!

Cuando se declara una variable sea Publica (Public) o Privada (Dim o Private) (Tambien existen otros tipos :¬¬) se guarda un espacio especifico de la memoria para usarla luego, en cambio si uno no la declara VB6 generara una instancia de cada variable que se use (no declarada) la misma no se podra usar fuera del procedimiento en el que se creo (si se usa estara vacia). Por ejemplo hace esto:

En el Form_load pone Numero = 3
Y en Command1_click pone print Numero

Veras que no imprime el 3 sino una variable vacia.

Para que imprima el 3 tendras que DECLARAR Numero fuera de los procedimientos. Asi si es Privada quedara declarada para todo el modulo y si es publica para el proyecto.

En fin, conviene que las declares, por que el Motor de VB6 que selecciona las variables automaticamente a veces no anda bien, talves la declara como numero entero y era un numero con coma o doble.

Espero haber sido util, sino responde nuevamente e intento explicarlo de nuevo ;).

GRACIAS POR LEER!!!
« Última modificación: 19 Enero 2011, 17:08 pm por 79137913 » En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
Psyke1
Wiki

Desconectado Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: Duda novato VB6
« Respuesta #3 en: 19 Enero 2011, 16:46 pm »

Para la segunda forma (sin Dim) no puedes tener Option Explicit declarado. :silbar:
El Option Explicit, te avisa si utilizas una variable no declarada... :)
Sin él, todas las variables quedarían Variant cosa que no es aconsejable porque ocupa más espacio en la memoria que cualquier otro tipo de varibale, al ser la variable comodín. :xD A parte que los arrays por defecto se crean de 0 to 10...
Además, sería un código mucho más desorganizado. :-\

Más info: http://en.wikipedia.org/wiki/Variant_type



Conclusión:
Usa Option Explicit y declara todas las variables. ;)

Un ejemplo:
Código
  1. 'código declarando variable
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5. Dim Número As Integer
  6.    Me.AutoRedraw = True
  7.    Número = 5
  8.    Me.Print Número
  9.    Número = 12
  10.    Me.Print Número
  11. End Sub

Código
  1. 'código sin declarar variable
  2. Option Explicit
  3.  
  4. Private Sub Form_Load()
  5.    Me.AutoRedraw = True
  6.    Número = 5 ' Error - variable no definida
  7.    Me.Print Número
  8.    Número = 12
  9.    Me.Print Número
  10. End Sub

@79137913
No solo hay Private, Public y Dim.
Tambien hay Global, Static (y Const para las constantes... :P)

Más info: http://www.vbforums.com/showthread.php?t=468662

DoEvents! :P
« Última modificación: 19 Enero 2011, 19:49 pm por Mr. Frog © » En línea

miomi

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Duda novato VB6
« Respuesta #4 en: 19 Enero 2011, 17:05 pm »

Muchas gracias a todos los que habeis respondido, me habeis resuelto la duda. Perdonad si era muy tonta pero es mi primer lenguaje jeje...
Muchisimas gracias, gran comunidad! Salu2
En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: Duda novato VB6
« Respuesta #5 en: 19 Enero 2011, 17:10 pm »

HOLA!!!

@Mr Frog:  :¬¬ Es cierto ya modifique.

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Duda novato VB6
« Respuesta #6 en: 19 Enero 2011, 20:50 pm »


No solo hay Private, Public y Dim.
Tambien hay Global, Static (y Const para las constantes... :P)


y Friend para los procesos/propiedades/funciones, pero esto ya es irse por las ramas del tema/hilo principal que era solo Dim!¡.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DUDA DE NOVATO
Ingeniería Inversa
hanns 3 3,621 Último mensaje 11 Marzo 2008, 16:53 pm
por Mintaka
Duda de Novato
Materiales y equipos
bl4ckf4lk0n 2 2,260 Último mensaje 19 Julio 2008, 21:55 pm
por zydas
Duda de un novato
Hacking
Panic0 6 6,400 Último mensaje 13 Mayo 2021, 05:57 am
por mchz
Duda novato
Dispositivos Móviles (PDA's, Smartphones, Tablets)
inma55 1 1,794 Último mensaje 24 Julio 2022, 16:07 pm
por Machacador
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines