Entrega Veintisiete: 14/Ene/99
por Guillermo "guille" Som
Si quieres linkar con las otras entregas, desde el índice lo puedes hacer
![]()
Ha pasado un largo tiempo, ¿verdad? aunque en otras
ocasiones las esperas han sido aún más largas, así que no te quejes demasiado... De
todas formas, aunque ya lo habrás notado, las últimas entregas que estoy publicando ya
las tenía escrita desde hacía un montón de tiempo, esta en particular desde el 7 de
Octubre del 98, pero la pereza unida a la falta de tiempo... hacen que se retrasen en
publicar, pero ya sabes que esto de "mecanografiar" no es lo mio... pero más
vale tarde que nunca.
Y ahora vamos a ver de que va todo esto y a ver si vale la pena, esperar tanto...
Propiedades, métodos... y lo que se me ocurra
Una vez vistos los eventos, al menos los más usuales, vamos a tratar ahora con las propiedades y métodos de los formularios y controles.
¿Que es una propiedad?
Una propiedad, simplificando para que se entienda, es una
información o dato "propio" del objeto; por ejemplo, un "objeto" label
tiene una propiedad Caption que le indica lo que tiene que mostrar.
Las propiedades son como variables que le indican al control o formulario y por extensión
a todos los objetos, qué mostrar, cómo mostrarse o hacer cualquier otra cosa... sino
hacer, al menos tener información para poder hacer algo...
Veamos más ejemplos, así conocerás algunas propiedades "comunes" a la mayoría de controles:
| Width | Indica el ancho del control. Cambiando el valor de esta propiedad, cambiamos el ancho del control... como es de suponer... |
| Height | El alto del control, si queremos cambiarlo... |
| Top | La posición superior del control. Normalmente hace referencia al control que lo contiene. Un form normal, hará referencia a la posición en la pantalla. |
| Left | La posición izquierda del control. Mismo comentario que para Top |
| Visible | Si se muestra o no |
| Enabled | Si está disponible o no. |
| Name | El nombre del control u objeto. |
| Tag | Para usos "personalizados", es como una especie de variable que tiene cada control, en el que podemos guardar lo que queramos y no afectará al aspecto y/o funcionamiento del control. |
| Caption | Esta no está presente en todos los controles, pero es típico para los botones command y las etiquetas. Sirve para contener el texto a mostrar. |
| Text | Esta tampoco es común a todos los controles, pero también sirve para mostrar texto, aunque normalmente los controles que la tienen suelen permitir que ese texto se modifique, el caso típico son los TextBox. |
Y como estas, muchas más, para saber las propiedades que tiene un control, busca en la ayuda y te dirá las que dispone... je,je... a ver si os acostumbro a pulsar F1 y me ahorro seguir con las entregas...
No es que yo no quiera decirtelo, pero me parece absurdo documentar algo que ya está documentado y aunque no te lo creas bastante bien... aunque habrá algunas propiedades que necesitarán de alguna explicación y ejemplos... y esas, casi seguro, que las veremos.
Ahora vamos con los métodos.
Los métodos no son otra cosa que procedimientos (SUB o
FUNCTION).
Un método siempre hace algo, a diferencia de las propiedades que, aunque también pueden
hacer algo, su papel suele ser parecido a una variable; por ejemplo, si queremos ocultar
un formulario, llamamos al método Hide, que queremos mover el formulario, pues
usamos Move con los parámetros correspondientes y asunto arreglado.
Es decir, son procedimientos normales y corrientes, pero su comportamiento está
relacionado con el objeto, control o formulario, al que pertenece.
Muchas veces a las funciones se las considera propiedades en lugar de métodos, a esta
"opinión" no debes darle más importancia de la que tiene y centrarte en lo que
realmente te interesa: aprender a usarlas e incluso a crearlas.
Para saber más sobre los métodos... te digo lo mismo que con las propiedades, pulsa F1 y
leete la ayuda.
Algunas propiedades son sólo de lectura, es decir que no
puedes modificarla en tiempo de ejecución, aunque normalemente si las que puedes
modificar en tiempo de diseño, es decir cuando estás trabajando en el IDE del Visual
Basic (¡bien! es la primera vez que sale el nombre en lo que llevo
escrito... no te preocupes, este desvarío debe ser a causa del
"catarro" que tengo)
Por ejemplo, la propiedad Sorted que le indica a un ListBox si debe mostrar los elementos
clasificados o no, es de sólo lectura cuando ejecutamos el programa, pero mientras
"diseñamos" el proyecto, nos permite cambiar ese valor.
Como el título de esta entrega decia: Propiedades, métodos y lo que se me ocurra, se me ocurre comentarte que con el VB5 y superior, puedes crearte tus propios controles, ¿para que? para personalizar su funcionalidad a tu gusto o a tus necesidades... pero si no tienes el VB5, aún puedes seguir leyendo, ya que no voy a explicar nada, al menos por ahora, que no puedas hacer con el VB4 (lo siento por los que usen VB3, aunque tampoco vendría mal seguir leyendo).
Cuando apareció el VB4, además de permitir crear
aplicaciones de 32 bits, tanto el Windows 95 como el Windows NT son sistemas operativos
que "soportan" aplicaciones de 32 bits, aunque también funcionan las de 16
bits; sin embargo el Windows 3.xx sólo soporta aplicaciones de 16 bits, aunque con un
"apaño" permite ejecutar algunas de 32 bits... aunque no las de VB... ¿a que
venía todo esto?
Como intentaba decirte antes de "desvariar", con el VB4 llegó la primera
intentona de Microsoft para hacer del Visual Basic un lenguaje orientado a objetos, en
este punto te podría contar cómo llamaban la gente de Microsoft a esta versión del VB,
pero como lo que se, lo he leido en otros libros... no está bien que te lo cuente... como
soy... ¿verdad? (mejor te hubieras callao Guille)
Bueno, al grano. Con el Visual Basic 4 llegó un nuevo tipo
de módulo: el módulo de clase, el cual tiene como extensión .cls
Además de esta nueva extensión, los proyectos de VB también estrenaron "look"
y pasaron de ser .MAK a .VBP (Visual Basic Project), no es que sea una ventaja, pero al
menos se les dio "personalidad" a los proyectos de VB, ya que la extensión MAK,
además de ser usada por las versiones anteriores de VB, también las usaban (y usan) los
compiladores de Microsoft, tanto para BASIC como para C/C++ y lo más frustante del
compilador del BASIC de MS-DOS, es que existía una utilidad llamanda MAKE, (para crear
los ejecutables), que también las usaba... y algunas veces era un follón...
Dejemos el cuento, que algunas veces me paso con mis "películas"...
Para ir calentando motores, ya que no creerás que te voy a
explicar cómo usar este nuevo tipo de módulos... bueno, no te lo voy a explicar por
ahora, pero si dentro de poquitas entregas...
Vamos a ver cómo usarlo de forma "muy" genérica, para que al menos sepas que
puedes crear tus propias "propiedades" y métodos... gracias a:
Los módulos de clase
Aunque sin necesidad de "conocer" las clases, puedes crear tus propiedades y métodos en los formularios... aunque eso creo que lo tengo anotado para una entrega posterior... (es que ahora intento adelantar trabajo y voy preparando algo de material...)
Venga, ¡va!... vamos a insertar un módulo de clase:
Si tienes un proyecto abierto, en el menú "project" (proyecto), selecciona
añadir módulo de clase.
Esto creará una clase llamada Class1.
Cambiale el nombre y haz que se llame cNombre.
En el código escribe esto:
Public Nombre As String Public AñoNacimiento As Integer
Con esto acabamos de crear dos propiedades, ahora vamos a
ver cómo usarlas.
Antes vamos a crear un método que calculará la Edad:
Public Function Edad() As Integer
Edad = Year(Now) - AñoNacimiento
End Function
Cuando queramos saber la edad que tenemos (o que tiene la
clase), simplemente le restamos al año actual nuestro año de nacimiento... La función Now
devuelve un valor que es la fecha actual (día y hora), por su lado Year toma sólo
el año de la fecha indicada...
PST! Aquí puedes hacer trampas, por ejemplo si quieres quitarte algunos añillos:
Edad = Year(Now) - AñoNacimiento -10
'Cambia el 10, por lo que quieras "rejuvenecer"
Ahora en serio, vamos a ver cómo usar esta clase.
A diferencia de los Form y módulos BAS, las variables (propiedades) y procedimientos
(métodos) de las clases no se pueden usar si no le hemos indicado a Visual Basic que sepa
de su existencia y no me refiero a tener que DIMensionar una variable, cosa que hay que
hacer siempre, sino a otra forma de "existencia"...
Para poder usar un módulo de clase, tendremos que declarar una variable de una forma parecida a como lo hacemos con el resto de tipos de datos que ya hemos visto:
Dim unNombre As New cNombre
Con esta declaración le decimos al VB que cree una nueva (New) variable que nos
permita usar esta clase llamada cNombre.
Una vez que tenemos creado el "objeto", lo usamos de la misma forma que haciamos
con los tipos definidos:
unNombre.Nombre ="Guillermo" unNombre.AñoNacimiento = 1957 'Para mostrar la edad de este cuarentón, haremos: MsgBox unNombre.Nombre & " tiene " & unNombre.Edad & " años..."
Esto imprimirá: (suponiedo que estamos en 1999)
Guillermo tiene 42 años... (aunque debería decir "tendrá", pero bueno...)
Ahora analiza el código y deduce cómo funciona... ya que lo vamos a dejar aquí... así parecerá una teleserie y estarás pendiente de la pantalla... je, je... esto es la "revancha" por reirte de mi edad.
Nos vemos
Guillermo
P.S.
No te preocupes por la "cortedad" de esta entrega... pronto habrás más...
P.S. 2
Si hubiese querido, me podría haber enrrollado mostrándote un montón de propiedades y
métodos con lo cual habría "rellenado" un montón de espacio..., pero, como te
dije antes, pulsa F1 y mira lo que te dice la ayuda del Visual Basic.
![]()
Ir a la entrega anterior (la 26)
Las páginas del Curso Básico se han visitado:
veces desde el 3/Sep/97 04:15 GMT