lunes, marzo 28, 2005

Resumen de tipos de datos

Programa: Visual Basic
Descargar ejercicio: [Link]
Url: Monografias [Link]

Veremos un tema especial.. . "Resumen de tipos de datos".

Nota Las matrices de cualquier tipo de datos requieren 20 bytes de memoria más cuatro bytes para cada dimensión de matriz, más el número de bytes que ocupan los propios datos. Puede calcular la memoria que ocupan los datos multiplicando el número de elementos de datos por el tamaño de cada elemento. Por ejemplo, los datos de una matriz unidimensional que consten de cuatro elementos de datos tipo Integer de dos bytes cada uno, ocupan ocho bytes. Los ocho bytes que requieren los datos más los 24 bytes necesarios para la matriz suman un requisito total de memoria de 32 bytes para dicha matriz.


Load (Instrucción)

Carga en memoria un formulario o un control.

Sintaxis

Load objeto

El marcador de posición objeto es el nombre de un objeto Form, un objeto MDIForm o un elemento de una matriz de controles para cargar.

Comentarios

No es necesario usar la instrucción Load con
formularios a menos que desee cargar un formulario sin presentarlo. Cualquier referencia a un formulario (excepto en una instrucción Set o If...TypeOf) lo carga automáticamente si no está ya cargado. Por ejemplo, el método Show carga los formularios antes de presentarlos. Una vez cargado el formulario, la aplicación puede alterar sus propiedades y controles, sea o no visible actualmente el formulario. En algunas circunstancia, puede que desee cargar todos los formularios en la inicialización y presentarlos después cuando sean necesarios.

Cuando Visual Basic carga un objeto Form, establece las propiedades del formulario a sus valores iniciales y después ejecuta el procedimiento de evento Load. Cuando se inicia una aplicación, Visual Basic carga y presenta automáticamente el formulario inicial de la aplicación.
Si carga un objeto Form cuya
propiedad MDIChild es True (es decir, el formulario secundario) antes de cargar el objeto MDIForm, el objeto MDIForm se carga automáticamente antes que el formulario secundario. Los formularios MDI secundarios no pueden estar ocultos y, por tanto, son visibles inmediatamente después de terminar el procedimiento de evento Form_Load.
No es necesario cargar, mostrar o descargar los cuadros de diálogo estándar producidos por
funciones de Visual Basic como MsgBox y InputBox; se pueden invocar directamente.

Hide (Método)

Oculta un objeto MDIForm o Form pero no lo descarga.

Sintaxis

objeto.Hide

El marcador de posición objeto representa una
expresión de objeto que da como resultado un objeto de la lista Se aplica a. Si se omite objeto, se supone que objeto es el formulario que tenga el enfoque.

Comentarios

Cuando se oculta un formulario, se quita de la pantalla y su propiedad Visible queda establecida a False. Los controles de un formulario oculto no son accesibles para el usuario, pero están disponibles para la aplicación de Visual Basic en ejecución y para otros
procesos que se estén comunicando con la aplicación mediante DDE, así como para los eventos del control Timer.

Cuando se oculta un formulario, el usuario no puede interactuar con la aplicación hasta que el código del procedimiento de evento que ha provocado la ocultación del formulario haya terminado de ejecutarse.
Si el formulario no está cargado cuando se llama al método Hide, el método Hide carga el formulario pero no lo presenta.

Nota Al cerrar un formulario modal que se ha abierto desde otro formulario modal, el siguiente código funcionaba en versiones anteriores de Visual Basic:
Me.Hide
Me.Hide ' Esto ahora provoca un error.
En versiones actuales de Visual Basic, este código falla en el segundo Me.Hide. Puede sustituir Me.Hide con Me.Visible = False como se muestra a continuación:
Me.Visible = False
Me.Visible = False ' No sucede ningún error.

Unload (Instrucción)

Descarga de memoria un formulario o un control.

Sintaxis

Unload objeto

El marcador de posición objeto es el nombre de un objeto Form o de un elemento de una
matriz de controles para descargar.

Comentarios

La descarga de un formulario o de un controle puede ser necesaria o conveniente en aquellos casos en los que la memoria utilizada sea necesaria para alguna otra tarea o cuando sea necesario restablecer las propiedades a sus valores originales.

Antes de descargar un formulario se produce el evento Query_Unload, seguido del procedimiento de evento Form_Unload. Si establece el argumento cancelar a True en alguno de estos eventos no se descargará el formulario. En los objetos MDIForm se produce el procedimiento de evento Query_Unload del objeto MDIForm, seguido del procedimiento de evento Query_Unload y del procedimiento de evento Form_Unload de cada formulario
secundario MDI; finalmente se produce el procedimiento de evento Form_Unload del objeto MDIForm.
Cuando se descarga un formulario, todos los controles colocados en el formulario en
tiempo de ejecución no son accesibles. Los controles colocados en el formulario en tiempo de diseño permanecen intactos; sin embargo, cualquier cambio en tiempo de ejecución sobre dichos controles y sus propiedades se pierden cuando se vuelve a cargar el formulario. También se pierden todos los cambios realizados en las propiedades del formulario. El acceso a algún control del formulario hace que éste se vuelva a cargar.
Nota Cuando se descarga un formulario, sólo se descarga el componente mostrado. El código asociado al módulo del formulario permanece en memoria.

Con la instrucción Unload sólo se pueden descargar los elementos de las matrices de controles agregados a un formulario en tiempo de ejecución. Las propiedades de los controles descargados se reinicializan cuando se cargan de nuevo los controles.

Show (Método)

Presenta un objeto MDIForm o Form. No acepta
argumentos con nombre.

Sintaxis

objeto.Show estilo, formularioPropietario

La sintaxis del método Show consta de las siguientes partes:Para ver el gráfico seleccione la opción ¨Descargar trabajo¨ del menú superior

Comentarios

Si el formulario especificado no está cargado cuando se invoca el método Show, Visual Basic lo carga automáticamente.
Cuando Show presenta un formulario no modal, continúa con la ejecución del código que haya a continuación. Cuando Show presenta un formulario modal, el código que hay a continuación no se ejecuta hasta que el formulario se oculta o se descarga.

Cuando Show presenta un formulario modal, no hay entradas (de
teclado o del mouse) excepto sobre los objetos del formulario modal. El programa debe ocultar o descargar los formularios modales (normalmente como respuesta a alguna acción del usuario) antes de que pueda producirse la entrada en otro formulario. Los formularios MDIForm no pueden ser modales.

Aunque los demás formularios de la aplicación están deshabilitados cuando se presenta un formulario modal, los de las demás aplicaciones no lo están.

El formulario inicial de una aplicación se muestra automáticamente después de invocar su evento Load.

He aquí un ejemplo de cómo se utiliza el argumento formularioPropietario con el método Show:
Private Sub cmdShowResults_Click()
' Muestra un formulario modal llamado frmResults.
frmResults.Show vbModal, Me

End Sub

S
etFocus (Método)

Mueve el
enfoque al control o formulario especificado.

Sintaxis

objeto.SetFocus

El marcador de posición objeto representa una
expresión de objeto que da como resultado un objeto de la lista Se aplica a.

Comentarios

El objeto debe ser un objeto Form, un objeto MDIForm o un control que pueda recibir el enfoque. Después de invocar el método SetFocus, cualquier entrada del usuario se dirige al formulario o al control especificado.

E
l enfoque sólo se puede mover a un formulario o un control visible. Como un formulario y los controles de un formulario no son visibles hasta que el evento Load del formulario ha terminado, no puede usar en su propio evento Load el método SetFocus para mover el enfoque al formulario que se está cargando a menos que use primero el método Show para mostrar el formulario antes de que el procedimiento de evento Form_Load haya terminado.

Tampoco puede mover el enfoque a un formulario o un control si su propiedad Enabled es False. Si la propiedad Enabled se ha establecido a False en
tiempo de diseño, primero debe establecerla a True antes de poder recibir el enfoque mediante el método SetFocus.

método

Una acción que un objeto es capaz de realizar. Por ejemplo, los cuadros de lista tienen
métodos llamados AddItem, RemoveItem y Clear para mantener el contenido de las listas. Vea también objeto.

propiedad

Un atributo con nombre de un objeto. Las propiedades definen las
características del objeto, como su tamaño y nombre, o el estado de un objeto, como habilitado o deshabilitado. Se pueden establecer propiedades para tablas, columnas, índices, restricciones, claves y relaciones.

evento

Una acción, reconocida por un objeto, para la cual puede escribir código de respuesta. Los eventos pueden estar generados por una acción del usuario, como hacer clic con el mouse o presionar una tecla, por código de programa o por el
sistema, como ocurre con los cronómetros.

Form (Objeto), Forms (Colección)

Un objeto Form es una ventana o un cuadro de diálogo que forma parte de la interfaz de usuario de una aplicación.
Forms es una
colección cuyos elementos representan cada formulario cargado en una aplicación. La colección incluye el formulario MDI, el formulario secundario MDI y formularios no MDI de la aplicación. La colección Forms tiene una única propiedad, Count, que especifica el número de elementos de la colección.
Sintaxis
Form
Forms(índice)
El marcador de posición índice representa un entero entre 0 y Forms.Count - 1.

Puede usar la colección Forms para iterar a través de todos los formularios cargados en una aplicación. Identifica una variable global intrínseca denominada Forms. Puede pasar Forms(índice) a una función cuyo argumento se especifica como una clase Forms.

Los formularios tienen propiedades que determinan aspectos de su apariencia (como posición, tamaño y
color) y aspectos de su comportamiento (como si puede ajustar o no su tamaño).

Los formularios también pueden responder a eventos iniciados por un usuario o desencadenados por el sistema. Por ejemplo, podría escribir código en el procedimiento de evento Click de un formulario que permitiera al usuario cambiar el color de un formulario haciendo clic en él.

Además de propiedades y eventos, puede emplear métodos para manipular formularios mediante código. Por ejemplo, puede usar el método Move para cambiar la ubicación y el tamaño de un formulario.

Un tipo especial de formulario, el formulario MDI, puede contener otros formularios llamados formularios secundarios MDI. Un formulario MDI se crea con el comando Agregar formulario MDI del menú
Proyecto; un formulario secundario MDI se crea eligiendo Nuevo formulario en el menú Archivo y, a continuación, estableciendo la propiedad MDIChild a True.

Puede crear múltiples instancias de formularios en código si utiliza la palabra clave New en instrucciones Dim, Set y Static.


Al diseñar formularios, establezca la propiedad BorderStyle para definir el borde del formulario y establezca la propiedad Caption para colocar texto en la barra de título. En el código puede usar los métodos Hide y Show para hacer que los formularios sean invisibles o visibles en
tiempo de ejecución.
Nota Si establece BorderStyle a 0 se eliminará el borde. Si desea que el formulario tenga borde sin barra de título, cuadro del menú Control, botón Maximizar y botón Minimizar, elimine texto de la propiedad Caption y establezca a False las propiedades ControlBox, MaxButton y MinButton.
Form es un
tipo de datos Object. Puede declarar variables como de tipo Form antes de establecerlas a una instancia de un tipo de formulario que se ha declarado en tiempo de diseño. Del mismo modo, puede pasar un argumento a un procedimiento como de tipo Form.

Los formularios pueden actuar como origen en una conversación DDE, con un control Label, PictureBox o TextBox proporcionando los datos.

Puede tener acceso a la colección de controles de un Form mediante la colección Controls. Por ejemplo, para ocultar todos los controles de un Form puede usar código similar al siguiente:
For Each Control in Form1.Controls
Control.Visible = False
Next Control


Crear
tipos de datos propios
Se pueden combinar variables de varios tipos diferentes para crear tipos definidos por el usuario (conocidos como structs en el
lenguaje de programación C).

Los tipos definidos por el usuario son útiles si se quiere crear una única variable que registre varias unidades de información relacionadas.

Puede crear un tipo definido por el usuario con la instrucción Type, que debe colocar en la sección Declaraciones del módulo. Los tipos definidos por el usuario pueden declararse como Private o como Public mediante la palabra clave apropiada. Por ejemplo:
Private Type MiTipoDeDatos
–o bien–
Public Type MiTipoDeDatos
Por ejemplo, podría crear un tipo definido por el usuario que registrara información acerca del sistema de un equipo:
' Declaraciones (de un módulo estándar).
Private Type SystemInfo
CPU As Variant
Memory As Long
VideoColors As Integer
Cost As Currency
PurchaseDate As Variant
End Type


Declarar variables de un tipo definido por el usuario

Para el mismo tipo definido por el usuario puede declarar variables locales, variables privadas de módulo o variables públicas de módulo:
Dim MiSistema As SystemInfo, SuSistema As SystemInfo

Nota Si realiza declaraciones de variables usando la palabra clave Dim, los tipos definidos por el usuario en módulo de clase o estándar serán Public de forma predeterminada. Si quiere que un tipo definido por el usuario sea privado, asegúrese de declararlo usando la palabra clave Private.


Asignar y recuperar valores

Asignar y recuperar los valores de los elementos de esta variable es similar a establecer y obtener propiedades:
MiSistema.
CPU = "486"
If MiSistema.PurchaseDate > #1/1/92# Then


También puede asignar una variable a otra si ambas son del mismo tipo definido por el usuario. En la línea de código siguiente se asignan todos los elementos de una variable a los mismos elementos de la otra variable.


SuSistema = MiSistema
Tipos definidos por el usuario que contienen matrices

Un tipo definido por el usuario puede contener una matriz normal (de tamaño fijo). Por ejemplo:
Type SystemInfo
CPU As Variant
Memory As Long
DiskDrives(25) As String ' Matriz de tamaño fijo.
VideoColors As Integer
Cost As Currency
PurchaseDate As Variant
End Type
También puede contener una matriz dinámica.
Type SystemInfo
CPU As Variant
Memory As Long
DiskDrives() As String ' Matriz dinámica.
VideoColors As Integer
Cost As Currency
PurchaseDate As Variant
End Type


Puede tener acceso a los valores de una matriz dentro de un tipo definido por el usuario de la misma manera en que tiene acceso a las propiedades de un objeto.


Dim MiSistema As SystemInfo

ReDim MiSistema.DiskDrives(3)
MiSistema.DiskDrives(0) = "1.44 MB"
También puede declarar una matriz de tipos definidos por el usuario:
Dim TodosSistemas(100) As SystemInfo
Siga las mismas reglas para tener acceso a los componentes de esta
estructura de datos.
TodosSistemas(5).CPU = "386SX"
TodosSistemas(5).DiskDrives(2) = "SCSI de 100 MB"
Pasar tipos definidos por el usuario a procedimientos
Puede pasar argumentos de procedimiento mediante un tipo definido por el usuario.
Sub FillSystem (UnSistema As SystemInfo)
UnSistema.CPU = lstCPU.Text
UnSistema.Memory = txtMemory.Text
UnSistema.Cost = txtCost.Text
UnSistema.PurchaseDate = Now
End Sub


Nota Si desea pasar un tipo definido por el usuario a un módulo de formulario, el procedimiento debe ser privado.
Puede devolver tipos definidos por el usuario desde funciones y puede pasar una variable de un tipo definido por el usuario a un procedimiento como un argumento. Los tipos definidos por el usuario siempre se pasan por referencia, de modo que el procedimiento puede modificar el argumento y devolverlo al procedimiento que lo ha llamado, como se muestra en el ejemplo anterior.


Nota Debido a que los tipos definidos por el usuario siempre se pasan por referencia, todos los datos contenidos en dichos tipos se pasarán y se devolverán desde el procedimiento. En el caso de tipos definidos por el usuario con matrices de gran tamaño, esto podría originar una reducción de las
prestaciones, especialmente en aplicaciones cliente/servidor, en las que el procedimiento se puede ejecutar desde un equipo remoto. En tal caso, es preferible extraer y pasar únicamente los datos necesarios del tipo definido por el usuario.
Para obtener más información Para obtener más detalles acerca del paso por referencia, vea "Pasar argumentos a procedimientos" en "Fundamentos de programación".
Tipos definidos por el usuario que contienen objetos
Los tipos definidos por el usuario también pueden contener objetos.
Private Type AccountPack
frmInput as Form
dbPayRollAccount as Database
End Type
Sugerencia Como el tipo de datos Variant puede almacenar muchos tipos de datos diferentes, puede usar una matriz Variant en muchas situaciones en las que usaría un tipo definido por el usuario. De hecho, una matriz Variant es más flexible que un tipo definido por el usuario, ya que puede modificar el tipo de los datos almacenados en cada elemento en cualquier momento y puede convertir la matriz en dinámica para modificar su tamaño cuando sea necesario. Sin embargo, una matriz Variant siempre utiliza más memoria que un tipo definido por el usuario equivalente.
Anidar
estructuras de datos
El anidamiento de estructuras de datos puede ser tan complejo como se quiera. De hecho, los tipos definidos por el usuario pueden contener otros tipos definidos por el usuario, como se muestra en el ejemplo siguiente. Para hacer que el código sea más legible y fácil de depurar, procure escribir en un único módulo todo el código de los tipos de datos definidos por el usuario.
Type DriveInfo
Type As String
Size As Long
End Type
Type SystemInfo
CPU As Variant
Memory As Long
DiskDrives(26) As DriveInfo
Cost As Currency
PurchaseDate As Variant
End Type
Dim AllSystems(100) As SystemInfo
AllSystems(1).DiskDrives(0).Type = "Floppy"