Creación de las propiedades y funciones personalizadas en visual basic

manuales, tutoriales, programacion
programming tutorials, programming manuals
visual basic > programacion
//-->
zonas:adsl:area-flash:area-php:area-asp:area-vb:area-photoshop:area-Vfox:area-Soft:area.:Mas
+ de 45.000 registrados
Secciones: Manuales-Diseño-Trucos-Recursos-Foros/Comunidad-Software-CodigoFuente-compras
Secciones: Herramientas-Libros-Webmasters/Google-Noticias -Biblioteca-Cursos--Directorio-EmpleoN
Untitled Document
+ ManualesVB
+ ArticulosVB
+ RecursosVB
+ ForosVB [N]
+ LibrosVB
+ TrucosVB
+ CodigoVB
+ FAQ`sVB

+busca en la web

+Newsletter
+InscribeteGratis..

Inserta tu manual

+Manuales
+Programacion
+DiseñoWeb
+Office/Ofimatica
+Bases de Datos
+S.O.
+Herr.Prefabricad
+Aplicaciones
+Manual propios
+Cursos-Masters

+AreaDiseño
+Manuales Diseño

+Trucos
+Ver secc.trucos

+Recursos
+ver recursos
+Iconos
+Cursores

+Noticias/RSS
+Ver noticias
+Ver canal RSS

+Codigo Fuente:
+Portada
+Todos los script
+ASP
+PHP
+Visual Basic
+JavaScript
+Perl
+Tips&Tricks

+Video Tutoriales
+Video tutoriales

+Comunidad
+Foros
+Ganar dinero
+Herramientas
+Libros

+Webmasters
+ZonaWebmaster

+Software
+ir a secc. Soft
+Prog. Linux
+Prog. MAc
+Prog.Windows

+AreasExclusivas
+Zona Flash
+Zona PHP
+Zona ASP
+Zona VB
+Zona Access
+Zona PERL
+Zona ADSL
+Zona V Fox Pro
+Zona Excel
+Zona Photoshop
+Zona MAC

+Agregador Blogs
+Tech-y
+Movilmania
+Mac+Webmasters
+Otros idiomas
+Mac Iphone ( EN)
+Mac iphone (FR)
+Mac iphone (DE)
+Technologie (FR)
+Webmasters(FR)

+Herramientas
+Herramientas
+Drivers

+Seguridad
+zona Virus

+Gana Dinero
+Como ganar

+SuperDiVX
+Area Divx

+Articulos
+Ver articulos
+Noticias

+Directorio [New]
+Ver directorio

+Blogs
+Nuestros blogs

+Noticias
+de Tecnologia

+SuperGames
+Juegos/ocio
+Juegos Online
+Videos y trailers
+Trucos - Juegos
+Zona Consolas
+Blog de PSP
+Blog de PS2
+Blog de PS3
+Blog de Wii
+Blog de XBOX
+Blog XBOX 360

+Word
+Towns-Villages (en)
+Cidades-Vilas(pt)

+Canal Compras
+Canal Compras

Creación de las propiedades y funciones personalizadas en visual basic

 

7. Creación de las propiedades y funciones personalizadas

Muy bien, el objetivo de este control es que el usuario elija que quiere que el TEXTBOX_ESPECIAL acepte al escribir sobre él, (por ejemplo NUMEROS, LETRAS, FECHA, etc), bueno pera eso tenemos que declarar otra variable ENUM en la ventana de código del control en la parte de declaraciones y una variables:

Enum Tipo_Text

Texto = 0

Letras = 1

Numérico = 2

Fecha = 3

Monetario = 4

Mayúsculas = 5

Custom = 6

End Enum

Dim mTipo As Integer

Y añadimos otro propiedad la cual se va a llamar "TIPO":

Public Property Get Tipo() As Tipo_Text

Tipo = mTipo

End Property

Public Property Let Tipo(ByVal NuevoValor As Tipo_Text)

mTipo = NuevoValor

PropertyChanged "Tipo"

End Property

Ahora, por que uso una variable "mTipo", si en las otras propiedades uso Text1.propiedad = "valor", bueno por la simple razón que el TEXBOX original no tiene esta propiedad, aquí es donde esta el poder del diseño de controles, estamos utilizando un control que ya existe (TEXTBOX) pero adaptándolo a nuestras exigencias, uso una variable "mTipo", por que esta es una propiedad exclusiva de nuestro control, y no existe en el TEXTBOX original.

No se les olvide colocar en:

WriteProperty:

Call PropBag.WriteProperty("Tipo", mTipo, Tipo_Text.Texto)

Dense cuenta que como segundo parámetro esta mTipo, por lo que dije, esta es una propiedad exclusiva de nosotros y no del TextBox.

ReadProperty:

mTipo = PropBag.ReadProperty("Tipo", Tipo_Text.Texto)

Donde el valor por defecto, es Tipo_Text.Texto, (Por esta razón cuando ustedes insertan un control, en la propiedad "Tipo" van a haber que se encuentra ubicado en la opción 0.- Texto)

Muy bien, ahora vamos al formulario quitemos nuestro control viejo, y coloquemos el nuevo, vera que en las propiedades esta "Tipo", ahí le aparecerá una lista desplegadle, en la cual usted señalara que quieres que acepte el TEXTBOX_ESPECIAL, si quiere que sea numero, texto, etc. Seleccione Numero, y ejecute el proyecto, e intente escribir, notara que puede escribir cualquier cosa ¡PERO HOMBRE ESO ES OBVIO TODAVÍA NO HEMOS HECHO EL CODIGO DE LAS RESTRICCIONES!, sal del programa en ejecución, y metete en el código de nuestro control y añade las siguientes Funciones:

Public Function Numeros (Tecla As Integer) As Integer

Dim strValido As String

strValido = "0123456789"

If Tecla > 26 Then

If InStr(strValido, Chr(Tecla)) = 0 Then

Tecla = 0

End If

End If

Numeros = Tecla

End Function

Public Function VLetras(Tecla As Integer) As Integer

Dim strValido As String

strValido = "qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM,.*-}¿'!%&/()=?¡]¨*[Ñ;:_"

If Tecla > 26 Then

If InStr(strValido, Chr(Tecla)) = 0 Then

Tecla = 0

End If

End If

VLetras = Tecla

End Function

Public Function VFecha(Tecla As Integer) As Integer

Dim strValido As String

strValido = "0123456789/"

If Tecla > 26 Then

If InStr(strValido, Chr(Tecla)) = 0 Then

Tecla = 0

End If

End If

VFecha = Tecla

End Function

Public Function VDinero(Tecla As Integer) As Integer

Dim strValido As String

strValido = "0123456789,-"

If Tecla > 26 Then

If InStr(strValido, Chr(Tecla)) = 0 Then

Tecla = 0

End If

End If

VDinero = Tecla

End Function

Public Function VCadenas_Mayusculas(Tecla As Integer) As Integer

VCadenas_Mayusculas = Asc(UCase(Chr(Tecla)))

End Function

Public Function VPersonalizado(Tecla As Integer) As Integer

Dim strValido As String

strValido = mPersonalizado

If Tecla > 26 Then

If InStr(strValido, Chr(Tecla)) = 0 Then

Tecla = 0

End If

End If

VPersonalizado = Tecla

End Function

No voy a explicar cada una de las funciones tan sencillamente por que ustedes ya deben de poseer los conocimientos necesarios para entender este código, lo único que dijo es que las funciones reciben el Carácter en ASCII, y verifican si se encuentra en el parámetro que se acepta en este caso es la variable "strValido", la función retorna, el mismo código ASCII si es valido o retorna un 0 si no es valido..

Ahora, como o en que parte se llaman las funciones, bueno cuando nosotros apretamos una tecla en nuestro control, se ejecuta el Evento KeyPress (del TextBox que esta en nuestro control), lo que tenemos que hacer es invocar la validación desde el evento, es decir, copie este código en el evento keyPress (del Text1 de nuestro control) , el cual quedaría de esta manera:

Private Sub Text1_KeyPress(KeyAscii As Integer)

Select Case mTipo

Case 1

KeyAscii = VLetras(KeyAscii)

Case 2

KeyAscii = Numeros(KeyAscii)

Case 3

KeyAscii = VFecha(KeyAscii)

Case 4

KeyAscii = VDinero(KeyAscii)

Case 5

KeyAscii = VCadenas_Mayusculas(KeyAscii)

Case 6

KeyAscii = VPersonalizado(KeyAscii)

End Select

RaiseEvent Keypress(KeyAscii)

End Sub

Vamonos al formulario y quitemos nuestro control viejo y añadimos uno nuevo, en la propiedad "Tipo", coloca numérico, y ejecuta el programa veras que si te colocas en nuestro control e intentas escribir no podrás escribir ninguna letra, carácter especial y nada sino solamente números, AHHH ahora si se esta poniendo mejor la cosa, pero tenemos un defecto; salgan del programa en ejecución podrán ver que nosotros colocamos en tipo numero, pero si intentan cambiar el Text a nivel de diseño el le acepta cualquier tecla, es solamente a nivel de ejecución donde se valida la entrada, para solucionar esto hacemos lo siguiente:

  1. O le dejamos así, y quedara en ustedes programadores diseñar una forma de restringir la entrada a nivel de diseño
  2. O Hacer que esta propiedad funcione nada mas a nivel de ejecución y no de diseño.

Bueno, voy a explicar como hacer la opción 2, si quieren desarrollar la opción 1, quedara en su cuenta ya que tampoco voy a dar 10 paginas de puro código cuando lo que estamos explicando es como crear un control, mas no las mil y un funciones, que debería de tener un control.

Como lo opción 2 es una tontería, la voy a explicar ya que es importante saber como hacer que una propiedad trabaje nada mas a nivel de ejecución, para esto añadan el siguiente código en Property Let de la propiedad Text de nuestro control:

Public Property Let Text(ByVal NuevoValor As String)

If Ambient.UserMode = False Then

MsgBox "No se puede editar este control a nivel de diseño", vbInformation + vbOKOnly, "TextBox Especial"

Else

Text1.Text = NuevoValor

PropertyChanged "Text"

End If

End Property

Puede notar que añadimos un par de líneas la primera e importante Ambient.UserMode esta es la propiedad que determina si el control se esta ejecutando a nivel de código o Diseño, cuando inserten esto, AH, se me había olvidado, dele doble-click al control TEXBOX_ESPECIAL en la ventana de proyecto, cuando vean nuestro control asegúrense que la propiedad Text, del Textbox que nosotros insertamos este en blanco, es decir, que no muestre nada; continuamos, cuando hayan insertado el código nuevo, váyanse al formulario borren el viejo control, inserten uno nuevo e intenten cambiar la propiedad Text a nivel de diseño vera que cuando presione ENTER le aparecerá un Msgbox, indicándole que no puede editar este control a nivel de diseño.


Bueno esto tiene su pro y sus contra; por ejemplo si nosotros tenemos una variable:

Variable_T = "HOLA"

Y en cualquier parte del código hacemos:

TextBox_Especial1.text = Variable_T

Y tenemos a la propiedad "Tipo" como Numero, verán que acepta a la variable_T y mostrara "HOLA", pero bueno nada es perfecto, es decir, la validación nada mas se hará cuando escribamos en el TEXTBOX_ESPECIAL, no cuando le asignemos otra variable como el ejemplo anterior. Bueno pero ese es un ejercicio para ustedes, recuerden con los controles se puede hacer lo que quiera.

Ahora, si colocamos a tipo como numero (Sabemos que el TEXTBOX_ESPECIAL nada mas aceptara números), Texto (aceptara todo tipo de letra), Monetario (Aceptara números y una coma), si ponemos fecha (aceptara el / y los números) pero en la fecha si podemos cometer errores, por ejemplo podemos escribir 33/99/3000, esta no es una fecha valida si queremos evitar codificar en el programa las validaciones, vamos hacer la validación en el control.

Para realizar la validación vamos a insertar el código siguiente en el evento LostFocus del TEXTBOX (Text1) de nuestro control:

Private Sub text1_LostFocus()

If mTipo = 3 Then

If Not IsDate(text1.Text) Then

MsgBox "Esta Fecha no es Valida", vbInformation + vbOKOnly, "Text Box Especial"

text1.Text = vbNullString

text1.SetFocus

End If

End If

End Sub

Ahora, regresemos al formulario quiten el control viejo, inserta uno nuevo y en la propiedad "Tipo" selecciona fecha, ejecuta el programa, introduce una fecha incorrecta, y dale el Foco a otro control veras que te aparece un mensaje diciendo que la fecha no es valida. BUENO NO!!!!!!

No se preocupen, que ya falta poco para terminar la parte de controles, vamos a introducir una sola propiedad MAS!, vamos añadan en el código del control lo siguiente:

Dim mPersonalizado As String

Public Property Let Personalizado(ByVal NuevoValor As String)

mPersonalizado = NuevoValor

PropertyChanged "Personalizado"

End Property

Public Property Get Personalizado() As String

Personalizado = mPersonalizado

End Property

En ReadProperty:

mPersonalizado = PropBag.ReadProperty("Personalizado", "")

En WriteProperty:

Call PropBag.WriteProperty("Personalizado", mPersonalizado, "")

Esta propiedad lo que realiza es que cuando seleccionan en "Tipo", la opción de CUSTOM, y colocan la letra A en la propiedad de personalizado, solamente la letra A se podrá escribir en la ejecución del control......

>> Ver siguiente capitulo

    Controles y clases en Visual Basic
 
1
Introducción a los controles
 
2
Propiedades, métodos, Funciones y Eventos.
 
3
Creación de un control
 
4
Manos a la obra
 
5
Creación de las propiedades del control textbox especial
 
6
Creación de los eventos
 
7
Creación de las propiedades y funciones personalizadas
 
8
Finalización de un Control y conclusion
 
9
Introducción a las Clases
 
10
Propiedades, Funciones y Eventos
 
11
Diseño de clase en Visual Basic
 
12
Creación de la Clase "ASISTENTE" y conclusion final.
     
 

Este trabajo ha sido realizado por: Eduardo Roa. - eduroam[arroba]hotmail.com
Caracas, Venezuela.

Nuestro sincero agradecimiento

 

 
 
Cursos - Masters - Postgraduados - Universidades
Estas interesado en realizar algun curso y master de programacion pide información
en menos de 1 minuto - cientos de cursos!!!
Recomendar
Recomendar esta pagina a un amigo
Si buscas mas manuales te recomendamos solorecursos.com
Untitled Document
Servidores
+ Directorio Ofertas
ofertas ADSL
ofertas Tech
ofertas viajes
ofertas finanzas
formacion
OfertasCreditos
  otras ofertas
Canal Compras
+ Canal compras
+canal informatica
+imagen y sonido
+juegos y consolas
+ Directorio Ofertas
secc. empleo
cursos
ir a libros
+ Ganar Dinero
+ Webmasters
+ resto de gente
+ Software
+ ir a software
Lo + descargado
programas para
programas para bajar peliculas
bajar peliculas
programas para bajar musica
bajar musica
programas de seguridad para tu pc
programas google
programas para DJ - mezcladores
programas para webmasters
programas pre-fabricados
+ Tonos y Melodias
Melodias tonos
Juegos java
- Juegos de moviles
+
Busca Logos
+ Logos y Melodias
+ Libros
+ ir a ver los libros
+Recursos CGI
+ ir a seccion
+Ocio
Juegos Flash Online
+Cursos y Masters
cursos y masters
+ Ofertas
ofertas TecNo

+Agregador Blogs
+Otros idiomas
+Webmasters (FR)
+Software (FR)
+Tech (PT)
+Tecnologia (IT)
+Technologie (DE)
+Software (DE)
+Games(DE)
+Software(IT)

Agregador Blogs de:
Home
blogs Tecnologia
blogs Software
blogs Moviles
blogs Internet
blogs Geeks
blogs Informatica
blogs Gadchets
blogs Zona Messenger
blogs Diseño
blogs Recursos Blogs
blogs Webmasters
blogs Programacion
blogs 2.0
blogs Linux
+Nuetros Blogs
Ver Blogs
+Programas Gratis
Programas gratis
+RSS de noticias

RSS PR

 
Programacion:recursosIprogramacionITrucosTecnicosIservicios gratisITowns 2.0IcursosI pueblos españa 2.0 ILibrorama I hablandodemac I
noticias:SaludIcineIMovilesITechIMACINegociosIprog.net IDirectorio de WebsIvideos4you.tvI
Pueblos de: Andalucia-Aragon-Asturias-Baleares-Canarias-Cantabria-Castilla la mancha-Castilla Leon-extremadura-Galicia-la Rioja-Madrid-Murcia-Pais Vasco -
manuales Sugiere un manual para esta seccion
who's online
Linkanos
www.programatium.com© 1999 - web esta optimizada para Microsoft explorer 6.0
tutoriales

Creación de las propiedades y funciones personalizadas en visual basic