|
Deftipo (Instrucciones)
Se usan en el nivel de módulo para establecer el tipo de datos predeterminado para variables, argumentos pasado a procedimientos, y el valor devuelto por los procedimientos Function y Property Get cuyos nombres comienzan con los caracteres especificados.
Sintaxis
DefBool intervalo_letras[, intervalo_letras] . . .
DefByte intervalo_letras[, intervalo_letras] . . .
DefInt intervalo_letras[, intervalo_letras] . . .
DefLng intervalo_letras[, intervalo_letras] . . .
DefCur intervalo_letras[, intervalo_letras] . . .
DefSng intervalo_letras[, intervalo_letras] . . .
DefDbl intervalo_letras[, intervalo_letras] . . .
DefDec intervalo_letras[, intervalo_letras] . . .
DefDate intervalo_letras[, intervalo_letras] . . .
DefStr intervalo_letras[, intervalo_letras] . . .
DefObj intervalo_letras[, intervalo_letras] . . .
DefVar intervalo_letras[, intervalo_letras] . . .
El argumento requerido intervalo_letras posee la sintaxis siguiente:
letra1[-letra2]
Los argumentos letra1 y letra2 especifican el intervalo de nombres para el cual puede establecer un tipo de datos predeterminado. Cada argumento representa la primera letra del nombre de la variable, argumento, procedimiento Function o procedimiento Property Get y puede ser cualquier letra del abecedario. En intervalo_letras no se distingue entre mayúsculas y minúsculas.
Comentarios
El nombre de la instrucción determina el tipo de datos:
Instrucción | Tipo de datos |
---|---|
DefBool | Boolean |
DefByte | Byte |
DefInt | Integer |
DefLng | Long |
DefCur | Currency |
DefSng | Single |
DefDbl | Double |
DefDec | Decimal (no se admite actualmente) |
DefDate | Date |
DefStr | String |
DefObj | Object |
DefVar | Variant |
Por ejemplo, en el siguiente fragmento de programa, Mensaje
es una variable de cadena:
DefStr A-Q
. . .
Mensaje = "Espacio de pila insuficiente."
Una instrucción Deftipo sólo afecta al módulo donde se usa. Por ejemplo, una instrucción DefInt en un módulo sólo afecta al tipo de datos predeterminado de las variables, los argumentos pasados a procedimientos y el tipo devuelto para los procedimientos Function y Property Get declarados en ese módulo; el tipo de datos predeterminado de variables, argumentos y tipos devueltos en otros módulos no se ven afectados. Si no se declara explícitamente con una instrucción Deftipo, el tipo de datos predeterminado para todas las variables, todos los argumentos, todos los procedimientos Function y todos los procedimientos Property Get es Variant.
Cuando especifica un intervalo de letras, generalmente define el tipo de datos para variables que comienzan con las letras de los 128 primeros caracteres del juego de caracteres. Sin embargo, cuando especifica el intervalo de letras A–Z, establece el tipo de datos predeterminado para todas las variables, incluyendo cualquiera que comience con caracteres internacionales provenientes de la parte extendida del juego de caracteres (128–255).
Tras especificar el intervalo A–Z no es posible seguir redefiniendo cualquier subintervalo de variables mediante instrucciones Deftipo. De hecho, una vez definido un intervalo, si incluye una letra definida anteriormente en otra instrucción Deftipo, ocurrirá un error. Sin embargo, puede especificar explícitamente el tipo de datos de cualquier variable, definida o no, mediante una instrucción Dim con una cláusula As tipo. Por ejemplo, puede usar el siguiente código en el nivel de módulo para definir una variable como Double incluso aunque el tipo de datos predeterminado sea Integer:
DefInt A-Z
Dim PorcentajeImpuesto As Double
Las instrucciones Deftipo no afectan a elementos de tipos definidos por el usuario ya que estos deben declararse explícitamente.