Publicado el 8 de Octubre del 2019
632 visualizaciones desde el 8 de Octubre del 2019
300,6 KB
18 paginas
Creado hace 20a (01/01/2005)
1. Nuevos conceptos en Studio Net
1.1 Introducción.
En esta nueva versión de Studio Net aparecen nuevos conceptos que es becesario comprender para un
buen uso del mismo.
Estos conceptos son
Enumeraciones.
Delegados.
Estructuras
Regiones
En teoría a estas alturas no vamos a hablar de los conceptos de Clase, Método, Propiedad, Eventos.
1.2 Enumeraciones.
Las enumeraciones son tipos de valor que heredan de System.Enum y representan simbólicamente un
conjunto de valores de uno de los tipos enteros primitivos. En un tipo de enumeración E, el valor
predeterminado es el valor producido por la expresión CType(0, E).
El tipo subyacente de una enumeración debe ser un tipo entero que puede representar todos los valores
del enumerador definidos en la enumeración. Si se especifica un tipo subyacente, debe ser Byte, Short,
Integer o Long. Si no se especifica explícitamente ningún tipo subyacente, la opción predeterminada es
Integer.
El siguiente ejemplo declara una enumeración con el tipo subyacente Long:
Enum Color As Long
Red
Green
Blue
End Enum
La instrucción Enum sólo puede aparecer en el nivel de módulo, espacio de nombres o archivo. Esto es,
puede declarar enumeraciones en un archivo de código fuente o dentro de un módulo, una clase o una
estructura, pero no dentro de un procedimiento. Una vez definido el tipo Enum, puede utilizarse para declarar el
tipo de variables, argumentos de procedimientos y el valor devuelto por Function.
Se puede tener acceso a las enumeraciones desde cualquier lugar del módulo, la clase o la estructura en
que se declaran.
Una enumeración y todos sus miembros de forma predeterminada son Public.
Para especificar la accesibilidad de manera más detallada se puede incluir Public, Protected, Friend,
Protected Friend o Private en la instrucción Enum.
La accesibilidad que especifique se aplicará a todos los miembros, así como a la propia enumeración.
Una enumeración es un conjunto de constantes relacionadas. Los miembros de la enumeración
comprendidos entre las instrucciones Enum y End Enum se inicializan en valores constantes.
Los valores definidos no se pueden modificar en tiempo de ejecución.
Los valores pueden incluir números positivos y negativos, como muestra el siguiente ejemplo:
E n u m Nivel
Indebido = -1
Minimo = 0
Maximo = 1
E n d E n u m
Si el valor de un miembro rebasa el intervalo permitido para el tipo de datos subyacente, o si se inicializa
un miembro al valor máximo permitido por él, el compilador notifica un error.
Enumeration variables son variables declaradas para ser del tipo Enum. Declarar una variable de este
modo le ayudará a controlar los valores que le asigne.
Si Option Strict es On, sólo se pueden asignar miembros de la enumeración a la variable de
enumeración. En este caso, se puede utilizar la palabra clave CType para convertir explícitamente un tipo de
datos numérico al tipo Enum.
Deben calificarse todas las referencias a un miembro de enumeración, ya sea con el nombre de una
variable de enumeración o con el nombre de la propia enumeración. Por ejemplo, en el ejemplo anterior, puede
hacer referencia al primer miembro como Nivel.Indebido, pero no como Indebido.
Private Enum Ejemplo as Integer
Minimo = 0
Maximo = 99
End Enum
Private Sub Enumerador()
Dim A As [Enum]
End Sub
Un programador podría utilizar un tipo subyacente Long, como en el ejemplo, para habilitar el uso de
valores que estén en el intervalo de Long, pero no en el de Integer, o para preservar esta opción para el
futuro.
En éste ejemplo vemos un uso del enumerador.
Cuando el ratón baja aparece el texto en el label de “prohibido el paso”, cuando el botón del ratón sube
aparece el texto “Permitido el paso”.
Private Enum Semaforo
Rojo = -1
Verde = 1
Naranja = 0
End Enum
Private Sub Enumerador(ByVal Estado As Short)
Dim A As Semaforo
Select Case Estado
Case A.Rojo
Label1.Text = "Prohibido pasar"
Case A.Naranja
Label1.Text = "Próximo el cierre"
Case A.Verde
Label1.Text = "Permitido el paso"
End Select
End Sub
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
Enumerador(-1)
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
Enumerador(1)
End Sub
El uso de los enumerados clarifica y mejora en mucho el código en la programación, pues se deja de
tener que tener presente cuales son los valores en los que hay que moverse para la selección de opciones.
En la versión actual de Vb son innumerables el número de Enumerados definidos en el lenguaje.
Además los mismos datos que se definen en una enumeración, se pueden cargar en una lista y
ofrecerlos en el programa para su visualización.
El siguiente ejemplo muestra como se ha definido una enumeración y se ha cargado en un ListBox.
2
Enum Unid_Distan
Terrestres = 1
Marinas = 2
Leguas = 3
Yardas = 4
End Enum
Public Sub CargaListaEnumeracionDistancias(ByRef Lista As ListBox)
Dim Unidad As Unid_Distan
For Each Unidad In [Enum].GetValues(GetType(Unid_Distan))
Lista.Items.Add(Unidad)
Next
End Sub
Su uso no es ese únicamente, sino el que ya se ha visto en ejemplos anteriores, y como el que sigue.
Public Function Conversion(ByVal M As Single, _
ByVal T As Unid_Distan) As Single
'
' Conversión
'
Dim C As Single
Select Case T
Case Unid_Distan.Terrestres
C = CSng(M / 1609.34)
Case Unid_Distan.Marinas
C = M / 1852
Case Unid_Distan.Leguas
C = M / 4190
Case Unid_Distan.Yardas
C = CSng(M / 0.9144)
End Select
Conversion = C
End Function
Conversion(CSng(Campo01.Text), Unid_Distan.Leguas)
Como podemos ver, el uso dentro del código en la definición de las variables y en las llamadas a
procedimientos, permite que podamos saber cuales son las posibilidades de esa variable.
1.3 Estructuras.
ser este:
Tipos de usuario en pocas palabras.
Podríamos decir que es el uso personalizado de un vector, de tal forma que se declara del número y tipo
de elementos adecuado para almacenar un tipo de información para un uso posterior.
Ese uso puede ser posteriormente una región.
Se utilizan para almacenar información que luego pueda ser utilizada en una región, el ejemplo puede
' Datos de coordenadas del rectángulo
Dim TamanyoRectangulo As RectangleF
3
Donde RectangleF es una estructura que es capaz de almacenar los datos relativos a las coordenadas
de un rectángulo, los cuatro números de punto flotante que representan la posición y tamaño de un rectángulo.
' Datos de tamaño del rectángulo
Dim Tamanyo As New SizeF (100,100)
Esta es otra forma de declarar el tamaño de un rectángulo, utilizando la estructura SizeF, en este caso
se declara el ancho y el alto, no sus coordenadas.
El ejemplo que sigue, observamos el uso de structure para la declaración del registro en un archivo
random, o para cualquier otro uso.
Public Structure FilConfig
<VBFixedString(25)> Public FontNombre As String
Public Tamanyo As Single
Public Negrita As Boolean
Public Subrayado As Boolean
Public Tachado As Boolean
Public Italica As Boolean
Public ColorTexto As Integer
Public ColorFondo As Integer
End Structure
1.4 Regiones.
En el manejo de algunos métodos de Graphics, aparece lo que se denomina región.
Este elemento es una estructura que permite almacenar los datos necesarios para un uso posterior de
los mismos en un método de dibujo.
Por ejemplo
' Vector para coordenadas
Dim CoordenadasArea(2) As [Region]
' Datos de coordenadas del rectángulo
Dim TamanyoRectangulo As RectangleF
En éste caso se declara un vector de dos elementos del tipo Region, en el cual después se almacenará
los datos de las coordenadas de dos rectángulos.
En el ejemplo que sigue se utiliza el vector para almacenar los datos que devuelve el método
MeasureCharacterRanges del objeto Grafico.
' Obtiene Mide los rangos de la cadena y los deja en el vector
CoordenadasArea
MedidaRectangulo, Formato)
Grafico.MeasureCharacterRanges(Texto,
=
Posteriormente esta información es utilizada de la siguiente forma:
' Dibuja el rectángulo
TamanyoRectangulo = CoordenadasArea(0).GetBounds(Grafico)
Grafico.DrawRectangle(New
Rectangle.Round(TamanyoRectangulo))
Pen(Color.Red,
4
Fuente,
1),
Una región es escalable porque sus coordenadas se especifican en coordenadas universales. Sin
embargo, en la superficie de dibujo, su interior depende del tamaño y la forma de los píxeles que la
representan.
Una aplicación puede utilizar regiones para fijar el resultado de las operaciones de dibujo. El
administrador de ventanas utiliza las regiones para definir el área de dibujo de las ventanas.
Estas regiones se llaman regiones de recorte. Una aplicación puede utilizar también regiones en las
operaciones de comprobación de visitas, para comprobar por ejemplo si un punto o un rectángulo forma una
intersección con una región.
Las aplicaciones pueden rellenar una región mediante un objeto Brush.
5
2. Clases.
2.1 Introducción.
Sobre las características de las clases, hay mucho escri
Comentarios de: 1. Vb .Net 2005 - Nuevos conceptos en Studio .NET (0)
No hay comentarios