Visual Basic - Guía del Estudiante Cap. 4 CONTROLES PARA MOSTRAR IMÁGENES CREAR CONTROLES EN TIEMPO DE EJECUCIÓN EL EXAMINADOR DE OBJETOS
____________________ __________________________________ _________________________ _________________________ ____________________ ______ Una imagen representa una figura, bien natural (tipo fotografía) o sintética. Para presentar una imagen es necesario hacerlo sobre un objeto que la admita. Los objetos que admiten una imagen son:
Formularios PictureBox Image
• • •
Existen mas controles gráficos que se irán viendo a lo largo del curso. Estos tres son los mas usados y con los que comenzaremos a trabajar. Para Para mostra mostrarr una imagen imagen en cualqui cualquiera era de estos estos objetos, objetos, es neces necesari ario o espec especific ificarl arlo o en su propiedad Picture. La forma de espec especific ificarl arle e al objeto objeto la imagen que debe debe presenta presentarr puede puede hacerse de dos formas: En la caja de propiedades, si no se va a variar la imagen durante la aplicación. Mediante una instrucción para cambiar esta propiedad. La instrucción es la siguiente:
• •
Nombreobjeto.Picture =
LoadPicture (Path, Fichero)
Por ejemplo, si tenemos un formulario llamado Form1 y queremos rellenarlo con una imagen contenida en el fichero de Windows metafile DOLLAR.WMF que se encuentra en el directorio C:\VB\METAFILE\BUSINESS C:\VB\METAFILE\BUSINESS,, deberemos ejecutar la instrucción: Form1.Picture =
LoadPicture (“C:\VB\METAFILE\BUSINESS\DOLLAR.WMF”)
Para "descargar" esa imagen de ese formulario, basta con ejecutar la misma instrucción sin fichero alguno: Form1.Picture =
LoadPicture ( )
También pueden tomar la imagen desde otro control de imagen, mediante un procedimiento de Intercambio Dinámico de Datos (DDE) (Solo el PictureBox) Puede también meter una imagen en una variable, y luego poner en uno de los controles citados anteriormente la imagen guardada en la variable. Este método es muy rápido, ya que no necesita acceder al disco para buscar una imagen, pero emplea mucha memoria RAM, ya que la variable ) o variables conteniendo la(s) imágenes están en la RAM. Para ello debemos debemos declarar declarar una o varias variables variables tipo Picture, y meter en ellas una imagen imagen mediante el método LoadPicture. Vea en el capitulo 7 (Métodos Gráficos - Método LoadPicture) un ejemplo muy ilustrativo.
EL FORMULARIO Ya hemos visto lo que es el Formulario. Simplemente podemos añadir a lo ya dicho, que un formulario tiene la propiedad Picture, con lo que podemos poner como fondo un bit-map, un fichero de icono ( .ICO) o un Metarchivo (.WMF). Un fondo gráfico sobre sobre el Formulario puede puede convertir una aplicación de buena a excelente. No intente nunca mejorar una aplicación mediocre
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 1
con un fondo artístico en un Formulario. Además de presentar imágenes, se puede escribir texto en un formulario. Para ello se utiliza el método gráfico Print que veremos en el capítulo de métodos gráficos
CONTROL PICTURE BOX Este objeto se encuentra en la caja de herramientas estándar:
Este objeto permite presentar todo t ipo de ficheros gráf icos (.BMP, (.BMP, WMF W MF,, .ICO, .CUR) Las dimensiones del PictureBox se establecen en el diseño o mediante programa, variando las propiedades Height y Width . También También puede ca mbiarse su posición mediante las propiedades Top y Left. Dispone Dispone de de una propiedad, propiedad, Align que permite colocarlo adosado en la parte superior. Inferior o a uno de los lados del formulario que lo contiene. El Control Control PictureBox puede ser destino de los datos de un enlace DDE. (Los datos serán, LinkItem, LinkTimeout LinkTimeout y lógicamente, lógicamente, gráficos. Por ello, tiene las propiedades propiedades LinkMode, LinkItem,
LinkTopic.
También puede tomar el dato del gráfico de una Base de Datos. (A través de un control objeto Recordset o rdoResultset )
Data o un
Las propiedades de un PictureBox son:
Align ClipControls DrawWidth ForeColor LinkMode Negotiate ScaleWidth WhatThi WhatThisHe sHelp lp
Appearance DataField Enabled Height LinkTimeout Picture TabIndex Width Wid th
Autoredraw Autosize DataSource DragIcon FillColor FiilStyle HelpContextID Index LinkTopic MouseIcon ScaleHeight ScaleLeft TabStop Tag
Backcolor DragMode Fo n t Left MousePointer ScaleMode Top
BorderStyle DrawStile Fontransparent LinkItem Name ScaleTop Visible
Un PictureBox puede disponer de los siguientes procedimientos :
Click KeyDown
Change KeyPress
DblClick
DragDrop
DragOver
GotFocus
Al igual que en el formulario, se puede escribir texto en un PictureBox, utilizando el método
Print.
El control Picture puede ser contenedor de otros controles. Esto quiere decir que puede poner otros controles dentro del picture, y esos controles tendrán un comportamiento especial en ciertos casos. (Verá más adelante el control Option)
CONTROL IMAGE Este control se encuentra en la caja de herramientas estándar:
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 2
Este control permite presentar todo tipo de ficheros f icheros gráficos (.BMP, (.BMP, W MF, MF, .ICO, .CUR) El control Image no puede ser destino de una comunicación DDE. Puede tomar la ima gen de una base de datos, bien a través de un control Data o a través de un ob jeto Recordset.
Image utiliza menos recursos del sistema y repinta con más rapidez que un control PictureBox, pero pero sólo sólo admite admite una parte parte de las propie propiedad dades, es, los eventos y los los método métodos s de PictureBox. Use la propiedad Stretch para determinar si el gráfico se escala para que se ajuste al
El control
control o viceversa. Poniendo esta propiedad a True el gráfico se adaptará a las dimensiones del control Image. Si se pone a False, el control Image tomará las medidas del gráfico que contenga. Si el gráfico es un bit-map (Fichero .BMP), con la propiedad Stretch a True podemos variar el tamaño del bit-map, variando las propiedades Width y Height del control Image, propiedades que se pueden cambiar en tiempo de ejecución. Si esta propiedad está a False, el tamaño del bit-map no cambiará, presentándose solamente una porción del bit-map, caso que el control Image sea menor que el tamaño del de l bit-map, o sobrará espacio en el control, en caso contrario. Un Image es transparente, es decir, deja ver el fondo del formulario en las partes no ocupadas por su gráfico gráfico.. Por lo tanto, tanto, no tendrí tendrían an sentid sentido o en este este control control propieda propiedade des s como como Backcolor , FillColor , o FillStyle . Las propiedades de un Image son:
Appearance Enabled Name WhatThi WhatThisHe sHelp lp
BorderStyle Height Picture Width Wid th
Datafield Index Stretch
DataSource Left Tag
DragIcon MouseIcon Top
DragMode MousePointer Visible
GotFocus
MouseDown
Un Image puede disponer de los siguientes procedimientos :
Click MouseMove
DblClick DragDrop MouseUp
PROPIEDADES PROPIEDADES DE LOS CONTROLES
Align
DragOver
PictureBox e Image
(PictureBox solamente) Permite colocar el control en el borde superior ( Align Top), en el inferior ( Align Bottom), en el izquierdo ( Align Left) o en el derecho (Align Right) del formulario que lo contiene. Para no alinearlo con ningún borde basta con poner la propiedad Align a 0-None. Cuando se adosa a uno de los bordes, el tamaño del control se ajusta automáticamente a la anchura o altura del formulario.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 3
Sintaxis NombrePictureBox.Align [= número] número número
Un ente entero ro que que espec especific ifica a cómo cómo se pre presen senta ta el contro control. l. Pued Puede e tomar tomar los los siguientes valores :
0-None 0-None
(Prede (Predeter termina minado do cuan cuando do el el contr control ol se se coloc coloca a en un formul formulari ario o no MDI). MDI). Con este valor, el control mantiene e l tamaño y la posición asignada en tiempo de diseño. (Pre (Prede dete termi rmina nado do cua cuand ndo o el con contr trol ol se se colo coloca ca en formul formulari arios os MDI MDI)) El con contr trol ol se coloca en la parte superior del formu lario y su anchura es igual a la anchura del formulario. El control control se coloca coloca en en la parte parte inferior del formulario formulario y su su anchura anchura es igual a la anchura del formulario. El con contr trol ol se se colo coloca ca en en la par parte te izq izqui uier erda da del del form formula ulari rio o y su altu altura ra es es igua iguall a la altura del formulario. El contr control ol se coloca coloca en en la parte parte dere derecha cha del del formul formulari ario o y su altu altura ra es es igual igual a la altura del formulario.
1-T 1-Top
2-Bottom 2-Bottom 3-Le 3-Left ft 4-Righ 4-Rightt
Se puede usar propiedad Align para crear rápidamente una barra de herramientas o una barra de estado en la parte superior o inferior de un formulario. Cuando un usuario cambie el tamaño del formulario, un control con la propiedad Align establecida a 1 ó 2 modificará su tamaño de forma automática para ajustarse a la anchura del formulario. De la misma fo rma se puede crear barras de herramientas a los lados izquierdo o derecho de un formulario. Si en un formulario hay dos barras de herramientas, una en la parte superior (o inferior) y otra en un lateral, la de la parte superior o in ferior es la que se extiende hasta la esquina, teniendo preferencia sobre las colocadas verticalmente a la izquierda o a la derecha. Al ser el PictureBox un contenedor, puede poner un PictureBox en la parte superior de un Formulario, y colocar en este PictureBox varios controles Image, a los que se les puede poner un icono. De esta forma realizamos una barra de herramientas.
Negotiate
(PictureBox solamente) Esta propiedad le permite mostrar o no mostrar el PictureBox dentro de un formulario donde tiene una barra de herramientas. No está disponible en tiempo de ejecución. Esta propiedad no es muy usual, por lo que omitimos una mayor explicación. Recurra a la ayuda para obtener mas detalles
Appearance
(PictureBox e Image ) 3D o Flat, Flat, como como en otros otros cont controle roles s
Autoredraw
(PictureBox solamente) Permite que el Formulario o PictureBox (El control Image no tiene esta propiedad), mantenga siempre la imagen ima gen o el text o presente. Si Autoredraw está está a False, el control no presentará las imágenes o texto que no se hayan dibujado realmente (caso por ejemplo de un formulario minimizado) o que se hayan borrado por haber sido puestas tras otro control.
Autosize
(PictureBox solamente) Si esta propiedad es True se cambia automáticamente el tamaño del PictureBox para acomod acomodars arse e al tamaño tamaño de la imagen. imagen. Si es False, False, si la imagen es mayor mayor que el
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 4
PictureBox la recortará, y si es menor, presentará una zona sin imagen.
BackColor
(PictureBox solamente) Color de fondo. Igual que otros controles
BorderStyle
(PictureBox e Image) Tipo de borde. Ninguno o fijo. Igual que otros controles.
ClipControls
(PictureBox solamente)
Devuelve o establece un valor que determina si los métodos gráficos en eventos Paint vuelven a dibujar el objeto entero o solamente las áreas últimamente expuestas. Si esta propiedad es True, un método gráfico repintará todo el Picture. Si es False, solamente repintará la zona de la imagen que ha variado.
DataField DataSource
(PictureBox e Image) (PictureBox e Image) Verá con mas detalles estas propiedades cuando estudie los Objetos enlazados a Datos. Le van a permitir presentar una imagen desde una base de datos. Le permitirá también introducirla de una forma muy sencilla en la base de datos.
DragIcon DragMode
(PictureBox e Image)
DrawMode DrawStyle DrawWidth
(PictureBox solamente) (PictureBox solamente) (PictureBox solamente)
Enabled
Igual que otros controles
Formas de responder a los métodos gráficos. Lo verá en e l capítulo correspondiente (PictureBox e Image) Habilitado. Igual que otros controles.
FillColor, FillStyle, Font, Fontransparent, ForeColor (PictureBox solamente) Igual que otros controles.
Height , Width , Left, Top
(PictureBox e Image)
Definen el tamaño y la posición del control. En el control Image el tamaño puede depender del gráfico que se introduzca y del valor de la propiedad Stretch.
HelpContextID
(PictureBox solamente)
Igual que otros controles
Index
(PictureBox e Image)
Igual que otros controles
LinkItem, LinkMode, LinkTimeout, LinkTopic
(PictureBox solamente)
Propiedades que afectan al comportamiento de este control como DESTINO de una conversación DDE. Se estudiará con mas detalles al estudiar el Intercambio Dinámico de Datos.
MouseIcon, MousePointer
LSB
(PictureBox e Image)
Visual Basic - Guía del Estudiante
Capítulo 4
Página 5
MouseIcon Establece un icono de mouse personalizado. (Una (Una vez vez que comenza comenzamos mos a estudi estudiar ar las propie propiedad dades es gráfic gráficas, as, se coment comenta a cómo cómo se puede puede cambiar el icono de la propiedad MouseIcon de todos los controles) Sintaxis objeto.MouseIcon = LoadPicture (rut (ruta) a) ó objeto.MouseIcon = imagen donde : objeto objeto Nombre Nombre del del objeto objeto Pict Picture ureBox Box o Image Image ruta ruta Expr Expres esió ión n de cade cadena na que que espe especi cifi fica ca la ruta ruta y el nomb nombre re del del archiv archivo o que contiene el icono personalizado. Así podemos cargar un icono de los existentes en el disco. Ej. Image1.MouseIcon = LoadPicture("C:\vb\icons\computer\disk05.ico") imagen Propiedad Picture de un objeto Form, de un un control PictureBox o de un control Image, o nombre de una variable tipo Picture. De esta forma podemos cargar como un icono el gráfico que tengamos en otro objeto o en una variable tipo Picture. Ej. Image1.MouseIcon = Picture1.picture La propiedad MouseIcon proporciona un icono de mouse personalizado que se utiliza cuando el valor de la propiedad MousePointer es 99.
MousePointer. Establece el tipo de puntero de mouse que aparece cuando se pasa el puntero del ratón por por encima de un objeto en tiempo de ejecución. Sintaxisobjeto. MousePointer [= valor] objeto objeto Nombre Nombre del del objeto objeto Pict Picture ureBox Box o Image Image valor Número Número entero entero que que especifi especifica ca el tipo de de puntero puntero de mouse mouse que aparece, aparece, según según se describe mas adelante. Las opciones para valor son: 0 (Pr (Predet edeter ermi mina nado do)) Form orma que que det determi ermine ne el obje objetto. 1 Flecha. 2 Cruz (puntero en forma de cruz). 3 Forma de I. 4 Icon Icono o (pequ pequeñ eño o cua cuadr drad ado o dent dentrro de de otr otro cu cuadr adrado) ado).. 5 Tamañ amaño o (fl (flec echa ha de cuat cuatro ro punt puntas as:: nor norte te,, sur sur,, est este e y oest oeste) e).. 6 Tamañ amaño o NE NE SO SO (fl (flec echa ha dobl doble e apu apunt ntan ando do al nord nordes este te y al al sud sudoe oest ste) e).. 7 Tamañ amaño o N S (fl (flec ech ha do doble ble ap apunt untando ando al nort norte e y al sur) sur).. 8 Tamañ amaño o NO NO SE SE (fl (flec echa ha dobl doble e apu apunt ntan ando do al noro noroes este te y al al sud sude este) ste).. 9 Tamañ amaño o O E (fl (flecha echa dobl doble e ap apunta untand ndo o al al oe oeste ste y al al est este) e).. 10 Flecha hacia arriba. 11 Reloj de arena (espera). 12 No soltar. 13 Flecha y reloj de arena. 14 Flecha e interrogación. 15 Tamañ amaño o de de todo todo (per (perso sona naliz lizab able le en Micr Micros osoft oft Window Windows s NT NT 3.5 3.51) 1) 99 Icon Icono o per personal onaliizado zado especi pecifi fic cado ado en la pro propie piedad dad Mous MouseI eIco con n expl explic ica ada anteriormente.
Name
LSB
(PictureBox e Image)
Visual Basic - Guía del Estudiante
Nombre del control
Capítulo 4
Página 6
(PictureBox e Image)
Picture
Devuelve o establece un gráfico mostrado en un control. Ya se ha estudiado mas atrás como cambiar la propiedad Picture.
ScaleHeight, ScaleWidth, ScaleLeft, ScaleTop, ScaleMode
Propiedades del PictureBox solamente.
¡Todas las propiedades Scale ? ? ? afectan a la medida de las coordenadas, no a la escala ! ScaleHeight, ScaleWidth Estab Establec lecen en el número número de unidad unidades es de medida medida horizo horizonta ntall (ScaleWi (ScaleWidth dth)) y vertical vertical (ScaleH (ScaleHeig eight) ht) del interio interiorr de un objeto objeto al utiliza utilizarr método métodos s gráfico gráficos s o al coloca colocar r controles. Sintaxisobjeto.ScaleHeight [= valor] objeto.ScaleWidth [= valor] objet objeto o Nomb Nombre re del del Con Contr trol ol valor Expresi Expresión ón numéric numérica a que espe especific cifica a la medida medida horiz horizont ontal al o vertica vertical. l. Nota Las propieda propiedades des ScaleHei ScaleHeight ght y ScaleWidth ScaleWidth son distinta distintas s de las propied propiedades ades Height y Width.
ScaleLeft, ScaleTop Devuelven o establecen las coordenadas horizontal (ScaleLeft) y vertical (ScaleTop) de los bordes izquierdo y superior de un objeto al utilizar métodos gráficos o al situar controles. Estas coordenadas están medidas de acuerdo con la unidad de medida establecida en las propiedades ScaleHeight y ScaleWidth
ScaleMode Devuelve o establece un valor que indica la unidad de medida de las coordenadas de un objeto al utilizar métodos m étodos gráficos, o al situar controles. Sintaxisobjeto.ScaleMode [= valor] Nombre del Control objet objeto o Nomb Nombre re del del Con Contr trol ol valor valor Núme Número ro enter entero o que especi especific fica a la unida unidad d de medid medida, a, según según se descr describ ibe e a continuación.
0
Indica que una o más de las propiedades ScaleHeight, ScaleWidth, ScaleLeft y ScaleTop tienen valores personalizados. Se usa entonces una unidad de medida definida por el usuario usuario (User) 1 (Pre (Prede dete termi rmina nado do)) Twip wip (144 (1440 0 twip twips s por por pulg pulgad ada a lógi lógica ca;; 567 567 twip twips s por por centímetro lógico). 2 Punto (72 puntos por pulgada lógica). Píxel (la unidad mínima de la resolución del monitor o la impresora). 3 4 Carácter (horizontal = 120 twips por unidad; vertica l = 240 twips por unidad). 5 Pulgada. Milímetro. 6
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 7
7
Centímetro.
Utiliza Utilizando ndo las propie propiedad dades es relacio relacionad nadas as ScaleH ScaleHeigh eight, t, ScaleWid ScaleWidth, th, ScaleL ScaleLeft eft y ScaleTop, puede configurar un sistema de coordenadas completo, con coordenadas posit positivas ivas y negativa negativas. s. Estas Estas cuatro cuatro propie propiedad dades es de escala escala se relacio relacionan nan con la propiedad ScaleMode de la siguiente forma: Al establ establecer ecer un valor en cualqu cualquier ier otra propie propiedad dad de escala, escala, en ScaleM ScaleMode ode se establece automáticamente 0. Al establecer en ScaleMode un número mayor que 0, ScaleHeight y ScaleWidth cambian a la nueva unidad de medida, y en ScaleLeft y ScaleTop se establece 0. Además Además,, los valores de Curre CurrentX ntX y Curren CurrentY tY cambian cambian para para refleja reflejarr las nuevas coordenadas del punto actual.
Stretch
(Solo control
Image)
Devuelve Devuelve o establ establece ece un valor que indica indica si un gráfico gráfico cambia cambia su tamaño para ajustarlo al de un control Image. Sintaxisobjeto. Stretch [= lógico] objeto objeto Nombre Nombre del control control Image Image lógico lógico Expresi Expresión ón boolean booleana a que espec especific ifica a si el gráfico gráfico adapta adapta su tamaño, tamaño, según según se describe a continuación. True True False False
El gráfi gráfico co cambi cambia a su tamaño tamaño para para ajust ajustarl arlo o al del control control.. (Predetermi (Predeterminado) nado) El control control cambia cambia su su tamaño tamaño para para ajustarlo ajustarlo al del gráfico.
Si Stretch tiene el valor True, al cambiar el tamaño del control también se cambiará el del gráfico que contenga. Cuando aumenta el tamaño del control, mantiene las nuevas medidas aunque se le introduzca un gráfico de menor tamaño. Debe controlarse por programa el tamaño del mismo.
TabIndex, TabStop
(Solo control PictureBox )
Igual que otros controles
Tag Top Visible WhatsThisHelpID Width
Comunes a ambos. Igual que resto de controles.
Otros controles que pueden manejar imágenes
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 8
IMAGE LIST Lo verá mucho mas ampliamente en un capítulo posterior. posterior. Se incluye en este capítulo para que lo pueda ir usando. Este control no está normalmente normalmente en la caja de herramientas. herramientas. Hay que introducirlo introducirlo mediante los Proyect Proyecto o | Componen Componentes tes y pert Microsoft ft Windows Windows Common Common Controls Controls perten enec ece e al grup grupo o Microso (COMCTL32.OCX) (COMCTL32 .OCX) (Vea Nota 1)
Este control nos permite almacenar varias imágenes. Es, tal como indica su nombre, como un ListBox pero que en vez de contener textos, contiene imágenes. La utilidad de este control es para almacenar en él distintas imágenes, y servirlas desde él a otro control, un PictureBox o un control Image, sin necesidad de tener que acceder a leerlas en el disco, que conllevaría una importante pérdida de tiempo si el cambio de imágenes debe ser rápido. Este control es necesario para almacenar las imágenes que se mostrarán en los iconos de la barra de herramientas. Verá mas adelante como se realiza una barra de herramientas (La barra de herramientas solo está disponible para la versión de 32 Bits) Un ImageList permite tener varias imágenes dentro de él, pero este control no las presenta. Solamente sirve de “almacén” para pasarlas rápidamente a otro control (PictureBox, p.e.) que será el que las presenta en pantalla. En la siguie siguiente nte figura, figura, pueden pueden verse las propieda propiedade des s de un cargadas.
ImageList con varias imágenes imágenes
Nota 1. El grupo de controles controles Microsoft Windows Common Controls (COMCTL32.OCX) incluye además de este los controles controles TabStrip, abStrip, Toolbar, oolbar, StatusBar StatusBar,, Progress ProgressBar Bar,, TreeVi TreeView ew,, ListView ListView y Slider. Se verá con más detalle en un próximo capítulo (Cap. 16)
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 9
Para introducir introducir imágenes imágenes en el control control ImageList ImageList deberemos acceder a sus propiedades propiedades,, bien mediante F4 y luego haciendo click sobre Personalizado , bien pulsando el botón derecho del ratón sobre el icono del control. Aparecerá un cuadro donde podemos insertar imágenes
El tipo de imágenes pueden ser mapas de bits :BMP o iconos .ICO El control ImageList tiene una colección llamada ListImages . Esta colección contiene todas las imágenes introducidas en el ImageList y las propiedades de cada imagen. Como toda colección, será un array donde podemos elegir uno de sus elementos designándolo por su nombre seguido de su número (Index) encerrado entre paréntesis. Así Así la imagen número 3 será : ImageList1.Listimages (3) Si tenemos un control Picture llamado Picture1 y queremos poner en su propiedad Picture la imagen cargada en el ImageL ist1, en su posición 3, usaríamos la expresión :
Set Picture1.Picture = ImageList1.ListImages (3) . Picture Observe que tras ListImages ( ) es necesario poner la propiedad Picture, ya que Picture es una propiedad de la colección ListImages Como cualquier colección, ListImages tiene la propiedad Count, que nos servirá para contar el número de imágenes que guarda. Numerodeimágenes = ImageList1. L istImages.Count Dado que al guardar imágenes en un ImageList , estas imágenes están guardadas en la memoria RAM, es fácil realizar una animación. animación. Para ello necesitamos necesitamos varias imágenes imágenes que poniendo poniendo una tras otra, dé la sensación de movimiento. Imaginemos un número indeterminado de imágenes dentro dentro de un ImageLi ImageList, st, y un contro controll Picture Picture llamado llamado Picture Picture1 1 donde donde querem queremos os prese presenta ntarr la animación. En el procedimiento Timer de un Timer Timer pondríamos Static pepe As Integer pepe = pepe + 1 If pepe > ImageList1.ListImages.Count Then Then pepe = 1
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 10
Set Picture1.Picture = ImageList1.ListImages(pepe).Picture Una de las mayores aplicaciones del ImageList es proporcionar imágenes para otros controles. Entre ellos el TOOLBAR
Barra de Herramientas. Herramientas. Control Toolbar Toolbar Este control permite realizar una barra de herramientas. La barra de herramientas es, como ya conocerá, una barra donde existen varios iconos. Estos iconos realizan una determinada función. Normalmente se ponen en la barra de herramientas los iconos que representan las acciones mas frecuentes de una aplicación. Esto facilita la operación al no tener que desplegar menús para buscar la operación a realizar. real izar. Como el espacio que ocupan los iconos es grande, es también bastante normal que no estén representados en la barra de herramientas todas las func iones posibles de la aplicación, sino como decíamos, solamente las mas frecuentes. Pero ocurre que la función que para un usuario es muy frecuente, para otro no lo es, por lo que también es habitual poder programar los iconos que aparecen en la barra de herramientas. Todo ello lo puede hacer el control Toolbar . Para introducir el Toolbar es necesario que esté presente en la caja de herramientas el control personalizado Microsoft Windows Common Controls (COMCTL32.OCX). El control Toolbar es un contenedor de un array de iconos. Estos iconos forman botones sobre los que se puede insertar insertar código en sus procedimientos. procedimientos. A cada botón botón se le denomina Button y a la colección de botones se le denomina Buttons . Cada Button es un elemento de la colección Buttons y por lo tanto podemos referirnos a cada uno de ellos por el índice que tiene dentro de la colección. Los iconos de cada uno de los botones del Toolbar debe introducirse previamente en un control ImageList . Como se recordará, un control ImageList es un almacén de imágenes, que podemos usar en cualquier parte de la aplicación. Una de esas partes es la confección de la barra de herramientas. Por lo tanto, es necesario introducir un control ImageList en cualquier aplicación que use un control Toolbar . Todas Todas las imágenes im ágenes del Toolbar deben estar en un único ImageList . Y este ImageList debe estar en el mismo for mulario que el Toolbar La barra de herramientas puede realizarse en tiempo de diseño (este sería el caso para cuando no existiese variación ni elección de botones a lo largo de la ejecución de la aplicación) o en tiempo de ejecución (caso que correspondería con una aplicación que tuviese una barra de menú programable o que variase esta barra de menú dependiendo de cada operación que se esté ejecutando en la aplicación). Para realizar la barra de herramientas en tiempo de diseño, basta con visualizar el cuadro de propiedades que aparece pulsando el botón derecho del ratón sobre el control Toolbar . Aparecerá un cuadro de diálogo como este :
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 11
Puede ver que en el cuadro ImageList aparece el nombre de un ImageList. Al desplegar la lista aparecerán todos los ImageList que existan en el formulario. El ImageList debe estar en el mismo formulario que el Toolbar. Deberá elegirse el ImageList que contenga las imágenes de los iconos que queremos introducir en el Toolbar. Este cuadro nos permite también introducir la forma que adoptará el puntero del ratón cuando entre en el Toolbar (MousePointer), si el Toolbar aparece por defecto habilitado o deshabilitado (Enabled) y si muestra o no un rótulo programable al pasar el ratón por encima de cada botón del Toolbar. (ShowTips). (El uso de estos pequeños rótulos pueden hacer una aplicación muy bonita) La propiedad AllowCustomize permite, si es True, cambiar el orden de los botones e introducir separadores (vea evento DobleClick). En el cuadro botones podemos introducir los datos deseados para cada uno de los botones que compondrán la colección Buttons.
Para insertar un nuevo botón hay que hacer click sobre Insertar botón e insertará un nuevo botón inmediat inmediatamen amente te despué después s del que figura figura en la propie propiedad dad Index (en la figura figura del ejemplo, ejemplo, lo
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 12
insert insertarí aría a en segund segundo o lugar lugar,, no en el último último lugar lugar como podría podría creers creerse). e). Tambi También én podemos podemos eliminar un botón haciendo click sobre Eliminar botón. El
Caption (opcional) es la palabra que figurará debajo del icono del botón.
Un botón se identifica por su índice. ( Toolbar1.buttons(1) ) La propiedad Key es un nombre que se puede añadir a cada botón. Esta propiedad sirve para identificar el botón que se ha pulsado, pero no para nombrar al botón. La propiedad Value es el valor por defecto, con el que aparecerá el botón al comienzo de la aplicación. (Unpressed, no pulsado, Pressed, pulsado). La propiedad Style define el tipo de botón : 0 - Default 1 - Check 2 - Butt Button on Grou Group p
3 - Separator 4 - Pla Place ceH Holde olderr
Botón monostable. (Se pulsa, pero no se mantiene pulsado) Botón Biestable. (S (Se mantiene pulsado y se le va vanta co con otro click) Solo olo uno uno de los los bot boton ones es del del gru grupo po pued puede e est estar ar puls pulsad ado. o. Esta sta propiedad lleva implícito que los botones que forman un grupo son bies biesta tabl bles es.. Pued Pueden en hace hacers rse e vario varios s grup grupos os inde indepe pend ndie ient ntes es introduciendo un botón que no pertenezca a un grupo (tipos 0, 1, 3 ó 4) entre los dos grupos que se independientes que se pretenden formar El botón se convi nviert erte en un separador de anchura fij fija. El botó botón n se se co convie nviert rte e en en un un se separa parado dorr de de anc anch hura ura var varia iabl ble. e.
ToolTipText es el texto que aparecerá al lado del botón cada vez que se ponga el cursor del ratón sobre el botón. Para que aparezca debe estar habilitada la propiedad ShowTips. Image es el número de la imagen en el ImageList. El control Toolbar también puede realizarse en tiempo de ejecución. Para introducir u botón en el Toolbar hay que crear el botón y añadirlo a la colección Buttons de Toolbar. Podemos hacerlo en una sola instrucción :
Set NombreBotón = NombreToolbar.Buttons .add ( [Indice], [Key], [Caption], [Style], [Imagen]) NombreBotón puede ser cualquier nombre (es el nombre del objeto botón) NombreToolbar es el nombre del Toolbar Indice es el nú mero de orden de ese botón dentro del Toolbar Toolbar Key es el valor de la propiedad Key del botón. Este va lor debe ser único para cada botón. Style es un número del 0 a l 4 con el tipo de botón. Vea lista mas arriba Imagen es el número de la imagen para ese botón, dentro del ImageList que las contiene. Los botones pueden habilitarse y deshabilitarse usando la propiedad Enabled (True / False). Recuerde que los botones se identifican por su índice : Toolbar1.Buttons(Indice). Enabled = False Para saber que botón se ha pulsado, puede leerse la propiedad Key : Text1.Text = Button. Key
presenta en Text1 Text1 el texto introducido en la propiedad Key del último botón pulsado.
Con la lectura de la propiedad Key, y la sentencia Case o If ... Then podemos iniciar la parte de la aplicación asociada a cada botón.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 13
El control Toolbar Toolbar tiene los siguientes even tos :
ButtonClick Este evento se produce cada vez que se hace click sobre un botón del Toolbar. Pasa como parámet parámetro ro el índice índice del botón botón pulsad pulsado. o. Podrem Podremos os saber saber que botón botón se ha pulsad pulsado o mediant mediante e sentencias condicionales : Private Sub Toolbar1_ButtonClick(ByV Toolbar1_ButtonClick(ByVal al Button As Button) If Button.Index = 1 Then . . . . If Button.Index = 2 Then . . . . También podríamos usar la propiedad Key como se dijo mas atrás.
Click Este evento se produce cuando se hace click sobre cualquier botón del Toolbar, pero no pasa parámetros. (No distingue sobre que botón se ha hecho click) Podemos utilizarlo cuando se quiera realizar una operación común para todos los botones (Que suene un Beep, por ejemplo)
DobleClick Este evento solamente se produce cuando se hace doble click en la parte parte del Toolba Toolbarr donde donde no hay botones, y la propiedad AllowCustomize esté a True. Si se hace doble click sobre un botón se produc produce e solamen solamente te el evento evento click click (dos (dos veces). veces). Hacie Haciendo ndo doble doble click click en una zona zona libre libre de botones, con la propiedad AllowCustomize = True nos permite cambiar el orden de los botones e introducir separadores. separadores.
Change Se produc produce e solam solament ente e cuando cuando se ha realiz realizado ado algún cambio cambio del orden orden por el proced procedimie imiento nto anterior.
DragDrop, DragOver Igual que cualquier control.
MouseMove, MouseUp, MouseDown Igua Iguall que que el rest resto o de los los contr control oles es Pasa Pasa como como parám parámetr etro o el índic índice e del del botó botón, n, la tecl tecla a de mayúsculas, y las posiciones x e y del ratón. Private Sub
Toolbar_MouseDown (Button As Integer, Shift As Integer, x As Single, y As Single)
Este control solamente funciona en la versión de VB de 32 Bits. Pero para 16 bits puede hacerse una cosa cosa pareci parecida da (y mas sencill sencilla) a) utilizan utilizando do un control control Picture Picture como como conten contenedo edorr de tantos tantos controles Image como necesitemos. Dado que el control Picture dispone de propiedad Align y puede servir como contenedor de otros controles, puede realizarse una barra de herramientas similar a esta, y posiblemente de forma mas sencilla.
¡ El control Toolbar NO sirve de contenedor de otros controles, a excepción de sus botones ! ! ! LA BARRA DE ESTADO
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 14
Este control es muy parecido a la barra de herramientas, y suele usarse, colocándolo en la parte inferior de la ventana, para indicar el proceso que está en curso en la aplicación. La barra de estado, control StatusBar se introduce en la caja de herramientas al mismo tiempo que el control Toolbar, oolbar, mediante mediante el control control personaliz personalizado ado múltiple Microsoft Microsoft Windows Windows Common Common Controls Controls (COMCTL32.OCX). La barra de estado puede albergar hasta 16 paneles, que pueden contener texto o gráficos. También pueden contener información del Hardware, tal como el estado de la tecla Bloqueo de Mayúsculas, Bloqueo del teclado numérico , tecla Insert activada, tecla Scroll Lock activada, o mostrar la fecha y la hora La barra de estado puede configurarse como de un solo panel o de múltiples paneles. (Propiedad
Style. 0=múltiples paneles, 1= panel único)
Las dimensiones de cada panel pueden configurarse como fijas o ajustadas al tamaño del texto o imagen que presentan. Las propiedades pueden establecerse establecerse en tiempo tie mpo de diseño, med iante el siguiente cuadro.
En este control las imágenes no es necesario introducirlas previamente en un ImageList. Pueden introducirse directamente sobre el cuadro de diálogo que sale pulsando el botón derecho del ratón - propiedade propiedades s - en la ventana correspond correspondiente iente a paneles. paneles. Acepta Acepta imágenes tipo Bit-map o .ICO. Los paneles pueden combinar una gráfico y un te xto. La barra de estado puede realizarse en tiempo de diseño o en tiempo de ejecución. Para realizarla en tiempo de ejecución basta con visualizar la ventana de propiedades, muy similar a la del control Toolbar. Para añadir un panel en tiempo de ejecución basta con añadirlo a la StatusBar mediante la sentencia :
colección Panels del control
Set PanelNuevo = Nombrebarraestado.Panels.Add.( [índice],[key],[Text],[estilo],[gráfico [índice],[key],[Text],[estilo],[gráfico ] Donde PanelNuevo es el nombre con el que se va a conocer ese panel que acabamos de crear.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 15
PanelNuevo debe declararse como variable objeto Panel donde sea necesario según el ámbito que le queramos dar. De esta forma, una vez creado, nos podremos referir a ese panel simplemente citándolo por su nombre (En este caso, PanelNuevo) PanelNuevo) Los términos términos [índice],[key [índice],[key],[T ],[Text],[es ext],[estilo], tilo],[gráfico [gráfico]] creación del panel se explican a continuación.
que entran entran a formar parte en la la sintaxis sintaxis de
StatusBar. Indice - Necesario. Es el índice que define al panel dentro del StatusBar. Key - Opcional. Es la propiedad propiedad Key de ese panel panel (El contenido de esta propiedad lo podemos leer desde cada panel Variable = statusbar1.Panels(Panel.Index).Key statusbar1.Panels(Panel.Index).Key sbrText ext Text - El texto que queremos figure en el panel (Solo si la propiedad Estilo está en sbrT Estilo - Propiedad estilo del panel. 0 - sbrText ext El pane panell mo mostr strará ará el el Tex Texto to de la prop propiiedad edad Text ext de de es ese pan panel el 1 - sbrC sbrCap aps s El pane panell mues muestr tra a el el est estad ado o de la tecl tecla a Blo Bloqu queo eo Mayú Mayúsc scul ulas as 2 - sbrNum rNum El pane panell mues muestr tra a el el est estad ado o de la tecla ecla Bloq Bloq.. Núm Númer ero os 3 - sbrIns El panel muestra el estado de la tecla Insert 4 - sbrScrl El panel mue muestra el el es estado de la te tecla cla Sc Scroll oll / Lock 5 - sbrTime El panel muestra la hora 6 - sbrDate El panel muestra la fecha Gráfico - Es el gráfico que va a tener el panel. Este gráfico puede obtenerse des desde de un ImageList, ImageList1.ListImages(n).Picture - o directamente desde el disco disco duro, mediante el método LoadPicture - LoadPicture("C:\vb\icons\comm\net09a.ico") Si no se pone alguna de las propiedades opcionales intermedias, deben mantenerse las comas separadoras. Como ejemplo, podemos añadir varios paneles de la siguiente forma :
Dim PanelNuevo As Panel Dim pepe As Integer
‘Donde deba declararse a efectos del ámbito
Set PanelNuevo PanelNuevo = statusbar statusbar1.Pa 1.Panels.A nels.Add(pe dd(pepe, pe, "Contenido "Contenido del Key " & Str(pepe), Str(pepe), "Texto "Texto " & Str(pepe), , LoadPicture("C:\vb\icons\comm\net09a.ico"))
Estos son los controles gráficos mas importantes. Verá a lo largo del curso que ex isten otros, y más que podrá encontrar entre diferentes suministradores de controles, ya que VB ha dejado una puerta abierta para realizar controles a medida. Existen varias empresas de software dedicadas a la fabricación de controles personalizados, y en el aspecto de controles gráficos, podrá encontrar una amplia gama de fabricantes y controles. Puede obtener muchos controles en el CD-ROM que acompaña a varias revistas especializadas en programación VB, y a través de Internet.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 16
Visual Basic - Guía del Estudiante - Ademdum 1 al Capitulo 4 CREAR CONTROLES EN TIEMPO DE EJECUCIÓN Los ademdums se fueron introduciendo una vez que la Guía del Estudiante estuvo “casi” “ca si” termin terminada ada.. Los temas tratado tratados s en los ademdum ademdums s no constitu constituyen yen en sí mismos materia suficiente para un nuevo capítulo, ni se acoplan lógicamente a ninguno de los capítulos escritos. escritos. Por lo tanto, se ha decidido alojarlos en capítulos que no eran demasiado “gruesos”, aunque el contenido de los ademdums no encaje ni por su con conten tenido ido,, ni por los cono conocim cimient ientos os ante anterio riores res.. No se pre preocup ocupe e que algunos ademdums no los entienda. Posiblemente estemos usando un lenguaje que no se ha visto todavía en los capítulos estudiados. Los podrá repasar cuando lo considere oportuno, una vez vaya avanzando en el curso.
Desde mis comienzos en la actividad educativa de esta asignatura, los alumnos siempre me preguntaron por la la posibilidad posibilidad de crear controles en tiempo tiempo de ejecución. Supongo que exista alguna razón que yo desconozco para ello. Y digo esto porque no he tenido la necesidad de ello en ninguno de mis proyectos, y no han sido precisamente pocos. Quiero decir con esto que la creación de controles en tiempo de ejecución es algo muy llamativo, pero de escaso sentido práctico. Sean los alumnos los que busquen utilidad a ello, y yo me limito a mi obligación de enseñárselo.
En anteriores versiones de VB era un proceso un poco tedioso. Había que crear una matriz de controles y añadir en tiempo de ejecuc ión tantos controles nuevos a esa matriz como necesitemos. Era complicado. Había que meter un control y ponerle ponerle Index = 0. Se le pone la propiedad Visible Visible = False y ya tenemos una matriz de controles. Una matriz de un solo control, pero al tener la propiedad Index = 0 ya era una matriz. Ya en ejecución, se utilizada el método Load para crear los controles que necesitamos. Los nuevos elementos de la matriz tendrán todas las propiedades del elemento inicial, es decir, las del elemnto que tienen indice 0. Al ser una matriz, todos los controles comparten el código de sus procedimientos. Para crear crear por ejejmplo, varios botones botones de comando, introduciremos introduciremos primero primero uno con Index = 0 cmdBot cmdBotonIn onInici icial( al(0) 0) y cuando cuando queramo queramos s crear crear un botón botón nuevo, invocamos invocamos el método método Load. Load. Recuerde que el nuevo botón tendrá las mismas propiedades que el objeto inicial, por lo tanto sus mismas propiedades Left y Top. Resultado: el nuevo botón queda completamente solapado con el inicial, por lo que habrá que cambiarle de posición y coocarlo en las coordenadas deseadas. deseadas. Una de las propiedades que no se pasan al nuevo control es la propiedad Visible. Esta siempre comienza a False. Por lo tanto también hay que ponerla a True para que veamos el nuevo control. Este podría ser un código para crear un botón de comando Load cmdBotonInicial(1) cmdBotonInicial(1).Visible = True cmdBotonInicial(1).Left = cmdBotonInicial(0).Left + 1000 Es un poco complicado. Se suele hacer esto para que aparezca un control justamente donde hacemos clic con el ratón sobre el formulario. Dejo al alumno la posibilidad de jugar con este método. Veamos un método más sencillo.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 17
Add (Método de la colección Controls) Agrega un control a la colección
Controls y devuelve una referencia al mismo.
Sintaxis Set NombredelControl
Donde: NombredelControl
= NombredelFormulario NombredelFormulario.Controls. .Controls.Add ( progID, progID, name, name, container )
que esta control en su
Es la referencia del nuevo control devuelta por el método Add. Debe ser una variable tipo Control declarada previamente. Le recomiendo variable tipo objeto tenga el mismo nombre que le va a dar al parámetro Name. Le ahorrará muchas confusiones.
NombredelFormulario
Es el formulario donde se va a meter el nuevo control. (Puede ser Me)
ProgID
Es una cadena que identifica al control. Se obtiene del Examinador de Objetos de Visual Basic. Consiste Consiste en una cadena que indica la biblioteca donde se encuentra, seguido del nombre que puede ver en el analizador de Objetos, separados ambos por un punto.
citado
Name Es el nombre que va a tener el control. Le repito lo de más más atrás. Ponga aquí la misma cadena que en NombredelControl. Container Es el nombre del contenedor de ese control si es que se quiere meter dentro de un contenedor que a su vez está dentro del f ormulario. Un contenedor de controles puede ser un PictureBox o un Frame. Aquí se pondría el nombre del ese contenedor que debe existir en e l formulario. Vamos a ver como se puede declarar una variable tipo Control. Puede hacerlo según estos tres ejemplos, en el primero se declara que NuevoBoton es un control, (declaración suficientemente válida válida ya que que post poster erio iorme rment nte e al crea crearl rlo, o, le dire diremo mos s que que ese ese contr control ol es preci precisam samen ente te un CommandButton) , en la segunda ya lo declaramos como objeto CommandButton, y la tercera es la declaración de un Objeto TextBox: TextBox: Dim NuevoBoton As Control Dim NuevoBoton As CommandButton Dim NuevoTextBox As TextBox Esta declaración es suficiente si no va a poner código en los procedimientos de ese control. El problema es que con esa declaración no se puede introducir código. Para ello debe declararse de otra forma: Private WithEvents NuevoBoton As CommandButton Mediante esta declaración (Que debe ponerse en la sección de declaraciones del formulario), no solamente solamente estamos declarando declarando que NuevoBoton NuevoBoton es un CommandButto CommandButton, n, sino que tendrá tendrá los mismos eventos (WithEvents ) que un CommandButton. El código para crear estos dos controles es el siguiente: (En el ejemplo se ha puesto en el procedim iento click de un botón de comando) Set NuevoBoton = Me.Controls.Add("VB.CommandButton", "NuevoBoton1", Picture1) Set NuevoTextBox = Me.Controls.Add("VB.T Me.Controls.Add("VB.TextBox", extBox", "NuevoTextBox", "NuevoTextBox", Picture1) NuevoBoton.Visible = True NuevoBoton.Left = 100
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 18
NuevoBoton.Top = 120 NuevoBoton.Caption = “Soy un Botón” NuevoTextBox.Visible NuevoTextBox.Visible = True NuevoTextBox.Left NuevoTextBox.Left = 2000 NuevoTextBox.Top = 100 Ahora Ahora vamos a introducir introducir el código en el procedimien procedimiento to Click del botón de comando. comando. Para Para ello vamos a Herramientas | Agregar Procedimiento y tecleamos el nombre del procedimiento: NuevoBoton_Click. Continuamos escribiendo escribiendo el código deseado deseado en ese nuevo nuevo procedimiento que acabamos de crear. MsgBox "Esto Funciona" Ejecutamos el programa y vemos que efectivamente, una vez creado el botón, al hacer click sobre él sale el Mensaje Box. Volvamos a ver el código. Cuando introducimos un procedimiento nuevo creado por nosotros, ese procedimiento aparece en el desplegable de la derecha de la ventana de código. En el desplegable de la parte izquierda aparecen solamente los nombres de los controles existentes en el formulario. Pero ¡Oh sorpresa!, el procedimiento NuevoBoton_Click no está en el desplegable de la parte derecha. Está en la parte izquierda, y como si fuese un botón que realmente existe en tiempo de diseño. Ya hemos introducido código en el botón botón recién creado. Para el TextBox no ha hecho falta declararlo con la segunda declaración, ya que no va a contener código. Podemos cambiarle las propiedades, estre estre ellas su propiedad Text: Text: NuevoTextBox.T NuevoTextBox.Text ext = "Hola Mi Amor, yo soy tu Lobo" Texto que aparecerá en el TextBox TextBox como si se tratase de un TextBox TextBox introducido durante el diseño. Lógicamente, si ejecutamos la linea anterior antes de crear el TextBox TextBox dará un error. Hay formas más complicadas de crear controles, pero creo que con esta le basta. E insisto que nunca me he vis to en la necesidad de crear controles (lo cual no de muestra nada, lo reconozco)
Quitar controles Para quitar controles agregados agregados dinámicamente, dinámicamente, se utiliza el método Remove. Solamente se pueden quitar los controles agregados con el método Add (a diferencia de los controles agregados con la instrucción Load, que se quitan mediante Unload ). El siguiente ejemplo quita el control NuevoTextBox NuevoTextBox agregado dinámicamente: dinám icamente: Me.Controls.Remove "NuevoTextBox"
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 19
Visual Basic - Guía del Estudiante - Ademdun 2 al Capitulo 4 EL EXAMINADOR DE OBJETOS El Examinador de objetos es una herramienta que tienen Visual Basic para ver los objetos de las colecciones, las propiedades, métodos y eventos de los controles, los métodos del proyecto, las constantes . Lo entenderemos entenderemos mejor abriéndolo. Para abrirlo, basta con pulsar F2
Este es el analizador de objetos. Puede ver que tienen varias partes. Comencemos Comencemos por arriba. El desplegable donde pone Todas sirve para elegir una parte de todo lo que nos puede mostrar. En este caso está está mostrando todo lo que tienen el proyecto. Si observa la figura de la página siguiente verá que está está despl desplega egado, do, mostra mostrando ndo todas todas las referen referencia cias s y contro controles les que tienen tienen en ese momento. Puede ver que tienen el MSCommDlg, porque a ese proyecto le habíamos introducido el CommonDialog. Si seleccionamos ese control, nos aparecen en la ventana Classes todas las colecciones que tiene el CommonDialog, entre ellas el propio control, control, que si lo seleccionamos, en la ventana de la derecha, (Miembros) aparecerán todas todas la propiedades, los métodos, y los eventos (Claro que un CommonDialog no tienen eventos, pero sí aparecerán si mostramos cualquier otro control) Si le añadimos ahora una referencia (El acceso a una base de datos mediante DAO, por ejemplo) aparecerá esa referencia en la lista desplegable. Los controles básicos aparecen en la referencia VB. Aparecen concretamente los controles que figuran en la la barra de herramient herramientas as al abrir un nuevo nuevo proyecto. proyecto. Si añadimos añadimos más componente componentes s (Haciendo clic en la barra de menú Proyecto | Componentes) veremos que aparecen nuevos controles en el desplegable.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 20
En la casilla Miembros aparecen los métodos, procedimientos y eventos de la clase seleccionada. Al hacer click sobre cualquiera de estas propiedades, métodos y eventos, en la parte inferior aparece la explicación del elemento elegido. Parece que es un poco complicado. Nada más lejos de la realidad. Verá que es una herramienta que le va a ser muy útil, y que la va a comprender una vez se decida a usarla, mucho antes que el tiempo que necesitaría para leérselo en este libro. Adelante.
LSB
Visual Basic - Guía del Estudiante
Capítulo 4
Página 21