OCX: Programar componentes

Anuncio
Luis Lujan
Avanzado
Progress
Visual Basic
Long conteniendo el número total de Bytes transferidos
ProgressMax
Long con el número total de bytes a tranferir.
Este evento se puede usar para colocar un aviso tranquilizante de la evolución de la descarga
del documento.
Visual Basic - Guía del Estudiante Cap. 19
REALIZACION DE CONTROLES OCX
A modo de comentario. Hemos llegado a un capítulo que todos los alumnos desean conocer: el
capítulo donde vamos a ver como se crea un control personalizado. A lo largo de mis años de
docencia he observado que los alumnos mas aventajados tienden a realizar aplicaciones usando
controles realizados por ellos mismos, en la creencia que eso protege sus programas frente a
posibles imitaciones, ya que parece que poseen la llave que da acceso a sus secretos. Incluso
hay quien piensa que el uso de este tipo de controles da cierto prestigio como programador. Y
hay también empresas especializadas en software que comparten esas mismas ideas. En el
ámbito empresarial hay quien realizó uno de estos controles con fecha de caducidad, de forma
que pasada una fecha, el control deja de funcionar y con él la aplicación. Buena forma de
asegurarse el contrato de mantenimiento, ya que el control había que reemplazarlo antes de llegar
a esa fecha, pero una hermosa forma a la vez de perder al cliente y la credibilidad como
empresario y como programador. Es una cuestión de criterios personales o comerciales, pero la
creación de controles personalizados es una práctica que solamente debe llevarse a cabo
cuando es estrictamente necesario por no existir ningún recurso en VB que realice lo deseado. Y
es decisión muy prudente no aceptar ninguna aplicación que llevando un control personalizado, no
se entregue con la aplicación, toda la información relativa al mismo, incluyendo su código fuente.
Para crear un control, lo primero que hay que hacer es pensar, con papel y lápiz, las funciones
que debe realiz ar ese control, así como sus propiedades y métodos. Hay que pensar durante este
proceso, si el control se va a encapsular dentro de un OCX solo o con otros controles,
ya que un mismo OCX puede contener más de un control. Una vez realizado este
estudio previo, se procede a abrir un nuevo proyecto, eligiendo en este caso la
creación de un Control ActiveX, sobre el icono mostrado en la figura. Aparecerá algo
distinto a lo que nos encontramos cuando creamos un proyecto EXE Standard.
Lo primero que observamos es que no aparece un formulario, sino algo, que si bien se le parece,
sabemos que no lo es. Esa especie de formulario es el objeto UserControl.
El UserControl es el objeto base del control que estamos creando. Un control ActiveX se
compone siempre de un UserControl y sobre él podremos colocar otros controles. A los controles
que colocamos sobre el UserControl se les denomina Controles Constituyentes.
Un proyecto con un UserControl es similar a un proyecto con un formulario. El proyecto se guarda
en un fichero ASCII con extensión .vbp igual que cualquier proyecto Visual Basic. El nombre de
ese fichero será el nombre con el que se ha guardado el proyecto.
El UserControl se guarda también en un fichero ASCII. De la misma forma que un formulario se
guarda con extensión .frm, un UserContol se guarda con extensión .ctl Y de la misma forma que
un formulario, cuando tenía gráficos éstos se guardaban en un fichero aparte, con extensión .frx,
cuando un UserControl tiene gráficos se guardan en un fichero con extensión .ctx El nombre de
ambos ficheros es el mismo con el que se haya guardado el UserControl.
Al compilar el proyecto, en vez de generar un fichero .EXE, generará un fichero .OCX Y este OCX
es idéntico a los que vemos en Proyecto | Componentes cada vez que queremos introducir un
Sistemas y Computacion
LuisLu
577
Luis Lujan
Visual Basic
Avanzado
componente que no está en la barra de herramientas. (Falta registrarlo, pero veremos más
adelante como se registra)
Se pueden introducir varios UserControl en un mismo proyecto. Esto generará igual número de
controles dentro del mismo paquete .OCX. esta práctica es bastante normal. Por ejemplo, el
MSCOMCTL.OCX (Microsoft Windows Common Controls 6.0) contiene 9 controles. Pero tenga
cuidado cuando meta controles dentro del mismo paquete. Piense que cada control va a ocupar
cierto sitio. Suponga que hace un OCX con 9 controles. Ocupará más espacio en disco que si
hubiese metido 1. Cuando meta en un proyecto uno solo de estos controles, deberá meter en el
proyecto la totalidad del espacio que ocupaban los 9 controles. El caso del control de Microsoft
citado tienen su razón de ser. El OCX contiene 9 controles, que se pueden usar todos dentro del
mismo proyecto (Barra de herramientas, barra de estado, TreeView, ListView, Barra de Progreso,
Slider, TabStrip, Image Combo e ImageList)
Registrar un control. El registro de un control es una operación que Windows debe hacer para
meter los datos de ese control (nombre y ubicación dentro del disco) dentro del registro de
Windows. Esto le facilita la búsqueda del fichero.
Lo normal es colocar los controles OCX dentro de la carpeta C:\Windows \System. Puede ponerlo
en cualquier otra carpeta, pero esa es la usual. Eso sí, una vez puesto en la carpeta deseada y
registrado no lo puede mover, ya que Windows no lo encontraría.
Hay un método muy sencillo para registrar un control cuando tiene el Visual Basic instalado en su
PC. Guarde el fichero OCX en C:\Windows \System. Vaya a Proyecto | Componentes y le
aparecerá el cuadro para elegir un nuevo control. No aparecerá ese nuevo OCX dentro de la lista
de este cuadro, ya que todavía no está registrado.
Fig. 19.1 Cuadro para elegir un nuevo control
Haga clic sobre el botón Examinar… Le aparecerá el cuadro para seleccionar un fichero.
Seleccione el fichero OCX que acaba de introducir y ese OCX ya es tá registrado.
Cuidado. Esta forma, sencilla y sin complicaciones, puede llevarle en más de una ocasión a
registrar controles que no desea.
Sistemas y Computacion
LuisLu
578
Luis Lujan
Avanzado
Visual Basic
Cuando no tenga VB instalado tendrá que recurrir a un programa que trae Windows: el
Regsvr32.Exe Para ello vaya a Inicio | Ejecutar y en el cuadro que le aparece introduzca el
nombre del programa seguido del nombre completo del OCX a registrar. (Fig. 19.2)
Cuando realizamos la instalación de un programa realizado en Visual Basic, ocurre con mayor
frecuencia de la deseada que uno de los controles no se registra. El registro lo hace
automáticamente la instalación, pero a veces, falla. En algunos casos el programa funciona
perfectamente, pero en otros no funciona. Y en estos casos es normal que el OCX no haya
llegado a guardarse en el disco. Solución: copiar ese OCX directamente sobre
C:\Windows\System y realizar el registro de la forma descrita.
Fig. 19.2 Forma de registrar un control OCX
Sigamos con el UserControl.
Propiedades, métodos y eventos del nuevo control.
El nuevo control que va a crear va a tener propiedades. Unas las va a tener porque son inherentes
a cualquier control (Left, Top, Tag, y aquellas que sean necesarias para la ubicación del control y
sus dimensiones) Otras, porque se han introducido durante la creación del control. Los métodos y
eventos deben introducirse todos durante la creación.
El UserControl tiene sus Propiedades, Métodos y Eventos. También las tienen los controles
constituyentes. Pero las propiedades, métodos y eventos de ninguno de ellos pasa a formar parte
de las propiedades, métodos o eventos del control que estamos creando.
Vamos a ver como se introducen las propiedades del nuevo control. Para ello vamos a estudiar
dos instrucciones de Visual Basic: Property Get y Property Let
Estas instrucciones se introducen igual que cuando se introduce una función o procedimiento en
un formulario. Haciendo clic en Herramientas | Agregar Procedimiento . Nos aparece un
cuadro donde debemos elegir Propiedad Recuerde que el elemento del menú de VB Agregar
Procedimiento solamente está activado cuando está abierta una ventana de código. La ventana de
código abierta debe ser del proyecto del control ActiveX (Del UserControl o de cualquiera de los
controles constituyentes) Se le pone el nombre que desea que tenga la propiedad. Por ejemplo,
si queremos que esa propiedad sea el color de fondo del nuevo control, pondremos ColorDeFondo
(¿Porque habríamos de poner Backcolor si el control se ha desarrollado en España?)
Sistemas y Computacion
LuisLu
579
Luis Lujan
Avanzado
Visual Basic
Fig. 19.3 Cuadro para introducir una propiedad en el nuevo control
Basta con hacer clic en Aceptar y ya nos ha introducido dos nuevas cosas en la ventana de
código, en el desplegable de la derecha (Fig. 19.4)
Fig. 19.4 Ventana de código mostrando PropertyGet y PropertyLet
Al introducir una nueva propiedad se generan estos dos
procedimientos (los denominaremos Procedimientos
Property) que tienen por nombre el de la propiedad que
acabamos de introducir, y llevan la coletilla de Property
Get y Property Let. Sin perder el tiempo guardamos el
proyecto y vamos a ver las propiedades del nuevo control.
(Veremos un poco más adelante como se pone el control
sobre un formulario dentro del mismo grupo de proyectos)
Vemos que figura una propiedad llamada ColorDeFondo,
tal como habíamos puesto en la Fig. 19.3
Puede ver que hay más propiedades, que no han sido
introducidas. Todas esas propiedades son la que se
introducen automáticamente como inherentes a cualquier
control.
La propiedad ya está en el cuadro de propiedades, pero
todavía no hace nada. Lo que queramos que haga
debemos programarlo justamente en esos dos
procedimientos property que acaban de aparecer.
Aparecen dos procedimientos porque en principio es una
propiedad de lectura y escritura. Mediante el Property
Let escribiremos el valor y con el Property Get leeremos
Sistemas y Computacion
LuisLu
580
Luis Lujan
Avanzado
el valor de la propiedad. (Let pone el valor, Get lee el valor)
Visual Basic
Fig. 19.5 Cuadro de propiedades del nuevo control
Veamos como son esos dos procedimientos antes de introducir código:
Public Property Let ColorDeFondo(ByVal vNewValue As Variant)
End Property
Public Property Get ColorDeFondo() As Variant
End Property
Vea que empieza como todos los procedimientos, con Public (Podría ser Private) seguido de
Property Let (o Property Get) y termina con End Property
Como puede verse, el procedimiento Property Let necesita un valor, vNewValue que ha declarado
como Variant. A ese el procedimiento para poner el valor a la propiedad necesita que le pasemos
el valor de esa propiedad. Lo que no puede saber, es el tipo de dato que debe usar para
ColorDeFondo. Por eso pone As Variant y de esta forma podemos meter cualquier valor. Sin
embargo, sabemos desde el Capítulo 1 que las variables declaradas como Variant ocupan mucho
espacio en memoria, y debemos optimizar el programa ajustando las variables. Como sabemos
que el color es un número Long, podemos sustituir el tipo Variant por un tipo Long:
Public Property Let ColorDeFondo(ByVal vNewValue As Long)
Public Property Get ColorDeFondo() As Long
Observe que lo hemos cambiado en los dos procedimientos. Si no se cambia en ambos
dará error.
También podemos cambiar el nombre de la variable interna del procedimiento (vNewValue) y poner
algo que resulte más comprensible:
Public Property Let ColorDeFondo(ByVal NuevoColor As Long)
En el caso del color también puede poner otro tipo de variable: OLE_COLOR, que es lo que hace
VB con el asistente.
Veamos ahora el código a introducir en ese Procedimiento Property
Como lo que queremos hacer con la propiedad ColorDeFondo es poner de un determinado color el
fondo del control, y el fondo del control es precisamente el UserControl, bastará con poner que la
propiedad BackColor del UserControl es precisamente el nuevo control a poner. Observe que en el
UserControl la propiedad se sigue llamando Backcolor.
Public Property Let ColorDeFondo(ByVal NuevoColor As Long)
UserControl.BackColor = NuevoColor
End Property
Es muy útil, no necesario, comunicar al control que ha cambiado una de sus propiedades. Esto
sirve para que pueda guardar el nuevo valor en su página de propiedades. Ya lo veremos. Para
comunicarle que ha cambiado una propiedad se le añade una línea al código anterior
Public Property Let ColorDeFondo(ByVal NuevoColor As Long)
UserControl.BackColor = NuevoColor
Sistemas y Computacion
LuisLu
581
Luis Lujan
Avanzado
PropertyChanged "ColorDeFondo"
End Property
Visual Basic
Ya veremos lo que ocurre con PropertyChanged
Este procedimiento es el que se ejecuta cuando ponemos un valor al color de fondo del nuevo
control cuando ponemos, por ejemplo
TBPV1.ColorDeFondo = 255
(TBPV1 es el nombre del control en el formulario de prueba)
Vamos a ver el código del procedimiento que se ejecuta cuando queremos saber el valor que
tienen esa propiedad.
Public Property Get ColorDeFondo() As Long
ColorDeFondo = UserControl.BackColor
End Property
Observe que el valor devuelto es el número de color de la propiedad BackColor del UserControl.
Sistemas y Computacion
LuisLu
582
Luis Lujan
Avanzado
Visual Basic
Vamos a ver con más detalle los procedimientos Property Let y Property Get
Instrucción Property Let
Declara el nombre, los argumentos, y el código que forman el cuerpo de un procedimiento
Property Let, y asigna un valor a una propiedad.
Sintaxis
[Public Private Friend Static] Property Let NombreDelProcedimiento (argumentos )
instrucciones
Exit Property
instrucciones
End Property
El ámbito del procedimiento queda determinado por la primera expresión:
Public: El procedimiento Property es accesible desde cualquier parte del proyecto
Private: Es accesible solamente para los procedimientos del mismo módulo
Friend (Solo para Clases)El procedimiento no es visible por el controlador de una instancia
Static Los valores de las variables locales declaradas en el procedimiento mantienen su valor
entre distintas llamadas.
NombreDelProcedimiento es el nombre por el que se va a llamar y es precisamente el nombre de
la propiedad que va a controlar. Aunque en VB no pueden existir dos procedimientos con el
mismo nombre, en este caso sí, y el nombre del procedimiento Property Let puede ser igual (de
hecho siempre es igual) a otro procedimiento Property Get
Argumentos
Argumentos que deben pasarse al llamar a ese procedimiento. El tipo de datos
de cada argumento será el mismo que en el procedimiento Property Get
Instrucciones Es el código que hay que escribir en el procedimiento para que realice lo que
desea el programador. Estas instrucciones pueden generar una condición en la que se debe
abandonar el procedimiento. En ese caso, puede salirse del procedimiento con Exit Prperty
Los argumentos pueden pasarse:
Por Valor (ByVal) El valor de la variable fuera del procedimiento mantienen el valor, aunque ese
valor cambie dentro del procedimiento.
Por Referencia (ByRef) El valor de la variable fuera del procedimiento cambia si suse modifica
en el procedimiento.
Opcional (Optional) El parámetro es opcional. Si un parámetro es opcional, todos los que
vengan detrás también deben serlo, y hay que indicarlo así con la expresión Optional para cada
uno de ellos. El parámetro que da valor a la propiedad no puede ser opcional.
Array de parámetros (ParamArray) Indica que es una matriz de parámetros.
No se puede llamar a un procedimiento Property Let dentro de otro procedimiento Property,
Sub o Function.
Property Get (Instrucción)
Declara el nombre, los argumentos y el código que componen el cuerpo de un procedimiento
Property, y obtiene el valor de una propiedad.
Sistemas y Computacion
LuisLu
583
Luis Lujan
Avanzado
Visual Basic
Sintaxis
[Public | Private | Friend] [Static] Property Get NombreDelProcedimiento (argumentos) As tipo
instrucciones
nombreDelProcedimiento = expresión
Exit Property
instrucciones
nombreDelProcedimiento = expresión
End Property
El ámbito y la forma de pasar los parámetros son idénticas a las de Property Let
Comenzando el ejercicio práctico
En el ejercicio que ilustra este capítulo vamos a hacer un control para una caja registradora (No
olviden que es un ejemplo) Ese control va a recibir el código de barras de un producto (se podrá
teclear directamente o leerlo mediante un escáner) y analizará el número de control para
comprobar que es correcto. El control se encargará de buscar en una base de datos la
descripción del producto, el precio y las unidades de oferta. Para ciertos productos aplicará un
incremento de precio en horas nocturnas y para otros un descuento en horas de mañana. Por lo
tanto, debe tomar la hora del sistema y fijar el Incremento / Descuento en razón de la hora. La
interfaz gráfica pensada es la siguiente:
Fig. 19.6 Interfaz gráfica del control a desarrollar
Veamos que propiedades debe tener este control. Aparte de la ya citada, ColorDelFondo, vamos
a ponerle:
In_Cod_Barras. De tipo texto, para poder pasarle por programa el código de barras de un
producto.
In_Unidades. Numérica double para que permita decimales, y permitir así vender productos “al
peso”
In_DeshabilitaIncr_Desc , booleana, que si es true, deshabilitará la operación de incrementar o
rebajar el precio en función de la hora.
Out_Descripcion, que será una cadena de caracteres con el texto de la Descripción.
Out_Precio_Total, numérico double con el precio total de las unidades vendidas de ese producto
(Hemos tenido el detalle de que las variables que contienen datos que entran en el control
comienzan por In_ y las que salen del control comienzan por Out_ Esto no significa que sean
solo de escritura o de lectura)
Se introducen estas propiedades tal como se explicó más atrás. En la Fig 19.7 puede verse el
Sistemas y Computacion
LuisLu
584
Luis Lujan
Visual Basic
Avanzado
cuadro de propiedades del control, con todas estas propiedades ya metidas. Ese cuadro, como
sabemos, aparece pulsando F4 estando seleccionado el control. Ese control está sobre un
formulario de prueba que aun no sabemos como ponerlo, pero se explicará en breve. Este cuadro
es el típico de todos los controles, pero estamos acostumbrados a que, haciendo clic con el
botón derecho del ratón, aparezca un cuadro de diálogo
donde podemos introducir las propiedades. Y eso, no
sabemos todavía como hacerlo.
Eso se hace mediante una página de propiedades.
Reconozco que es complicado, y pese a mi costumbre de
no usar asistentes para ahorrar trabajo, en este caso no
me queda más remedio que recurrir a ellos.
Vayamos al UserControl y seleccionándolo, pulsamos F4
para sacar sus propiedades. Vayamos a su propiedad
PropertyPages (recuerde que estamos en las propiedades
del UserControl) Sitúese en esa propiedad y haga clic
sobre el botón que aparece a la derecha. Le aparecerá un
cuadro como el de la Fig. 19.8. En ese cuadro se nos pide
que señalemos las páginas que deseamos que tenga el
cuadro de propiedades. En el caso del ejemplo se han
seleccionado una página de propiedades vacía
(PaginaPropiedades1, se le ha cambiado el nombre que
aparecía por defecto), la página donde se elige la fuente
(StandardFont) y la página donde se elige el color
(StandarColor) Al pulsar Aceptar la propiedad
PropertyPages del serControl tiene 3 Pages
Vayamos ahora al menú de Visual Basic, en Proyecto,
elegimos Agregar Página de Propiedades. Y es ahí donde
nos invita a poner una página en blanco o a utilizar un
asistente. Posiblemente un programador con mucha
experiencia elegiría hacerla a mano, pero los controles
ActiveX no se hacen todos los días y vamos a recurrir al
asistente para que nos evite tener que trabajar más, y
sobre todo, tener que estudiar mucho más.
Fig. 19.7 Propiedades del control
Fig. 19.8 Cuadro para
conectar páginas de
propiedades
Al elegir el asistente,
aparece un cuadro donde
nos muestra las
propiedades que hemos
metido en nuestro control.
En el caso del ejemplo,
esas propiedades son:
ColorDeFondo
In_Cod_Barras
In_Unidades
In_DeshabilitarIncr_Desc
Sistemas y Computacion
LuisLu
585
Luis Lujan
Avanzado
Out_Descripcion
Out_Precio_Total
Visual Basic
El asistente nos pide que elijamos las propiedades que queremos que aparezcan en el cuadro de
dialogo de propiedades. Se las ponemos todas. Vamos aceptando todos los pasos, hasta que
hacemos clic en el botón Finalizar. El cuadro de dialogo de propiedades ya está creado. Vamos
al formulario de prueba y hacemos clic con el botón derecho sobre el control. Aparece por fin el
cuadro de dialogo de propiedades.
Fig. 19.9 Cuadro de dialogo de propiedades.
Puede ahora incluir en ese cuadro cualquier control, como si se tratase de un formulario. Queda a
merced de su capacidad artística rematarlo de forma adecuada
Sistemas y Computacion
LuisLu
586
Luis Lujan
Avanzado
Visual Basic
Fig. 19.10 Cuadro de propiedades rematado
Puede observar ahora que en la ventana de proyecto aparece ahora otro componente: la página de
propiedades.
La página de propiedades (Property Page) tiene las casi todas las propiedades, métodos y
eventos de un formulario. No vamos a extendernos en su estudio exhaustivo, ya que sería salirse
del objetivo del curso.
Solamente falta introducir el código adecuado en los procedimientos del UserControl. Por
ejemplo, para comprobar que el código de barras es correcto, creamos un procedimiento llamado
CompruebaCodigo. Llamaremos a este procedimiento cuando se introduzca el código de barras
completo. (Emplearemos solamente EAN-13 para no complicar el ejemplo). El código del
procedimiento que comprueba el código de barras puede verlo en el ejemplo, y es solamente
aplicar la definición del dígito de control de EAN-13. A ese procedimiento le hemos llamado
CompruebaCodigo y es un procedimiento creado por nosotros dentro del UserControl.
Prueba del nuevo control
Para comprobar el nuevo control es necesario ponerlo en un proyecto. Mejor dicho, en un
formulario. Basta con introducir un formulario de la forma habitual: Proyecto | Agregar
Formulario. Verá que aparece una nueva carpeta en el proyecto con un formulario. Para
introducir el nuevo control en el formulario basta con que lo coja de la caja de herramientas y lo
lleve al formulario como lo haría con cualquier otro control. Eso sí, debe cerrar previamente
el UserControl porque si no es e icono que presenta el nuevo está deshabilitado.
Puede probar todas las características del nuevo control. De cualquier forma no se fíe, y realice la
comprobación final en un proyecto completamente independiente, una vez que ya haya compilado
el control.
Icono para presentar al nuevo control
Es posible que no quiera que su control se vea en la caja de herramientas con el icono de la
figura anterior. Este es el icono por defecto. Si desea cambiarlo debe introducir una imagen
BitMap en la propiedad del UserControl ToolBoxBitMap. La imagen deberá estar en un formato
bastante grande (sin pasarse) para que se vea claro, ya que si se pone pequeña, el icono que
aparece en la caja de herramientas queda bastante feo.
Enlazar el nuevo control a una base de datos mediante el control data.
Ya vamos avanzando en lo que podemos hacer sobre un nuevo control. Ahora vamos a enlazarlo a
una base de datos a través del control Data.
Para ver como se hace esto vamos a hacer un ejemplo, siguiéndolo paso a paso.
Sistemas y Computacion
LuisLu
587
Luis Lujan
Avanzado
Visual Basic
Propiedades del UserControl (Se enumeran solamente aquellas que sean específicas del
UserControl o que aconsejen una explicación especial)
Propiedad AccessKeys
Devuelve o establece una cadena que contiene las teclas que funcionarán como teclas de acceso
(o teclas aceleradoras) del control. La propiedad AccessKeys es una cadena que contiene todas
las teclas de acceso del control. Por ejemplo, para establecer las letras S e Y como teclas de
acceso, la propiedad AccessKeys se establecería a "sy". Cuando un usuario presiona una de las
teclas de acceso junto con la tecla ALT, el control recibirá el enfoque (según el valor de la
propiedad ForwardFocus). Las teclas de acceso de los controles componentes se incluyen
implícitamente como teclas de acceso, aunque no aparezcan en la propiedad AccessKeys.
ActiveControl (Propiedad)
Devuelve el control que tiene el enfoque.
Propiedad AutoRedraw
El UserControl acepta métodos gráficos. La propiedad AutoRedraw (True/False) hace lo mismo
que en el Formulario.
Propiedad BackStyle
Establece el tipo de fondo del UserControl (Opaco / Invisible)
Los valores aceptados son:
Opaque 1
El fondo será opaco
Invisible 2
El fondo es transparente, pero solamente si la propiedad
Windowless esta a True
Propiedad ClipBehavior
Sirve para determinar la zona donde se verán los métodos gráficos, cuando está transparente.
Véase en la ayuda.
Propiedad ContainedControls
Devuelve la colección de controles constituyentes y los que se hayan podido añadir en tiempo de
ejecución. Funciona de forma similar a la propiedad Controls de un formulario.
Propiedad ContainerHWnd
Devuelve el controlador de la ventana (hWnd) del contenedor de un UserControl. Se usa para
programar con APIS.
Propiedad DataMembers
Devuelve una referencia a la colección DataMembers.
Un proveedor de datos puede proporcionar múltiples conjuntos de datos a los que un receptor
puede enlazar. Cada conjunto de datos se llama "miembro de datos" y está identificado mediante
una cadena única.
La colección DataMembers contiene los nombres de todos los miembros de datos disponibles
para el receptor de datos.
Sistemas y Computacion
LuisLu
588
Luis Lujan
Avanzado
Propiedad EditAtDesignTime
Visual Basic
Establece si un control puede activarse en el tiempo de diseño del programador. Si es True el
control puede activarse en tiempo de diseño y se comportará como lo haría en tiempo de
ejecución.
EventsFrozen (Propiedad)
Devuelve un valor que indica si el contenedor está pasando por alto los eventos desencadenados
por el control. La propiedad EventsFrozen no está disponible en tiempo de diseño del control y
es de sólo lectura en tiempo de ejecución.
Cuando la propiedad EventsFrozen es True, el contenedor pasa por alto todos los eventos
desencadenados por el control. Si el control necesita producir un evento que no se puede perder,
tiene que dejarlo en la cola hasta que EventsFrozen sea False.
Extender (Propiedad)
Devuelve, para este control, el objeto Extender que almacena las propiedades del control
mantenidas por el contenedor. La propiedad Extender no está disponible en tiempo de diseño del
control y es de sólo lectura en tiempo de ejecución.
Propiedad MaskColor
Devuelve o establece el color que determina la región transparente del mapa de bits asignado a la
propiedad MaskPicture de un objeto UserControl cuya propiedad BackStyle está establecida a
0 (Transparente).
Sintaxis
MiUserControl.MaskColor = color
Cuando se asigna a un mapa de bits la propiedad MaskPicture de un UserControl cuya
propiedad BackStyle está establecida a 0 (Transparente), el control se vuelve transparente en
cualquier lugar en que esté cubierto por áreas del mapa de bits que cumplan la propiedad
MaskColor.
Los eventos del mouse que ocurren sobre áreas transparentes las reciben el contenedor o los
controles que, de otro modo, estarían cubiertos por el UserControl.
MaskPicture (Propiedad, Objeto UserControl)
Devuelve o establece el mapa de bits que, combinado con la propiedad MaskColor, determina las
regiones transparentes y visibles de un objeto UserControl cuya propiedad BackStyle está
establecida a 0 (Transparente).
Sintaxis
MiUserControl.MaskPicture = imagen
Importante Esta característica sólo es soportada con mapas de bits de tipo imagen, como GIF,
JPEG y DIB. No es soportada con iconos, cursores o metaarchivos de Windows.
Propiedad ToolBoxBitMap
Establece la imagen con la que se va a representar el nuevo control en la caja de herramientas.
Debe ser una imagen BitMap que habremos guardado previamente en el disco.
Sistemas y Computacion
LuisLu
589
Descargar