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

DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt

Estas en el tema de DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt en el foro de Visual Basic clásico en Foros del Web. AGRADEZCO CUALQUIER COMENTARIO, ESTA PREGUNTA LA REALIZO POR QUE ME CAUSA PROBLEMA EN OTRO CODIGO MAS COMPLEJO, PERO AQUI SE PUEDE VISUALIZAR MAS FACILMENTE EN ...
  #1 (permalink)  
Antiguo 26/11/2009, 15:09
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt

AGRADEZCO CUALQUIER COMENTARIO, ESTA PREGUNTA LA REALIZO POR QUE ME CAUSA PROBLEMA EN OTRO CODIGO MAS COMPLEJO, PERO AQUI SE PUEDE VISUALIZAR MAS FACILMENTE EN ESTE CODIGO.
¿porque cuando ejecuto el siguiente codigo, no me marca errores, pero si antepongo Option Explicit ya no me reconoce ninguna variable solamente a la variable Calculo
SERA QUE NO DEBO UTILIZAR Option Explicit si utilizo Defint?
esto esta escrito en un formulario:

'Option Explicit
' Los nombres de variables que comienzan con las letras
' A a K son del tipo Integer de manera predeterminada.
DefInt A-K
' Los nombres de variables que comienzan con las letras
' L a Z son del tipo String de manera predeterminada.
DefStr L-Y

Private Sub Command1_Click()
valcalculo = 4 ' Inicializa Integer.
varcadena = "Hola aquí" ' Inicializa String.
Unavar = "Hola" ' Causa el error "No coinciden los tipos".
Dim Calculo As Double ' Establece explícitamente el tipo como Double.
Calculo = 2.3455 ' Asigna un Double.
z = 4 * valcalculo
' Las instrucciones Deftipo también se aplican a procedimientos Function.
calcnum = ATestFunction(4) ' Llama a una función definida por el usuario.
Text1.Text = Calculo
Text2.Text = z
End Sub
  #2 (permalink)  
Antiguo 01/12/2009, 11:20
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 7 meses
Puntos: 47
Respuesta: DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt

Hola!!
Debes declarar todas las demas variables que uses en el programa si utilizas OPTION EXPLICIT, en tu codigo solo declaras a CALCULO por eso no te da error... pero con las demas si (valcalcuo, carcadena, unavar, z, calcnum...).
  #3 (permalink)  
Antiguo 01/12/2009, 12:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt

Es que con Def* no declaras ninguna variable. Sólo estás indicando de qué tipo serán las variables que no tengan un tipo explícito. Por ejemplo:
Código vb:
Ver original
  1. Option Explicit
  2. DefInt A-K
  3. DefStr L-Z
  4.  
  5. Private Sub Form_Load()
  6.     Dim A
  7.     Dim L
  8.     MsgBox TypeName(A)
  9.     MsgBox TypeName(L)
  10. End Sub
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 02/12/2009, 03:27
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt

Tiene razón David.
Para más claridad os pongo la prueba que he hecho yo donde se vé como son afectadas las variables creadas según la letra con que comienza su nombre.

Código :
Ver original
  1. Option Explicit
  2. DefInt A-K
  3. DefStr L-Z
  4.  
  5. Private Sub Form_Load()
  6.     Dim Apu
  7.     Dim Lily
  8.     Dim Amigo As Double ' esta la defino despues
  9.     MsgBox TypeName(Apu)  ' esta aparece como entero
  10.     MsgBox TypeName(Lily)  ' esta como cadena
  11.     MsgBox TypeName(Amigo)  ' y esta como doble
  12. End Sub

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!
  #5 (permalink)  
Antiguo 03/12/2009, 17:59
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: DUDA SOBRE UTILIZAR OPTION EXPLICIT JUNTO CON DefInt

MUCHAS GRACIAS POR SUS RESPUESTAS
En resumen concluyo que debo cumplir primeramente con lo que dice en la ayuda:
"Cuando Option Explicit aparece en un módulo, debe declarar explícitamente todas las variables mediante las instrucciones Dim, Private, Public, ReDim o Static."
Esto particularmente cuando use Def* para señalar los tipos de variable.....gracias hasta la proxima.
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 21:37.