8. Finalización de un Control
Bueno muchachos no lo van creer,
pero hemos terminado, lo único que falta es indicarle como
compilar el control y
utilizarlo en sus programas,
increíble!!!. Para ser este ultimo paso hagan lo
siguiente:
- Dale Click al menú en la parte de "PROYECTO", y
ahí le das click a Propiedades del Proyecto en
"Tipo de Proyecto", selecciona "Control
Activex", en "Objeto Inicial" selecciona ninguno, y en nombre
del proyecto Escribe "TextBE", y le das click a
Aceptar. - Ahora le das click a Archivo en el
menú, y le selecciones "Generar Proyecto1.ocx…."
verán que le aparece un error (UHY COMO SUFRI PARA
SOLUCIONAR ESE ERROR), que le dice "No se ha detectado
ningún control de usuario publico", para solucionar este
error denle dobleclick al control en la Ventana de Proyecto, en
la Ventana de propiedades, busquen la propiedad
Public la cual debería de estar en False, y la cambian a
True. - Ahora intenta generar el ocx haciendo lo que indica
el paso 2, veras que ahora te aparece un formulario donde
decidirás la ubicación de tu ocx, vamos a
guardarlo en WINDOWS/SYSTEM y en nombre de archivo coloca
TextBE.ocx, y le dan click a Aceptar. - Si no da ningún error, significa que todo
salió perfecto, ahora se preguntaran como
añadimos nuestro control a un proyecto, bueno en el
menú Archivo, denle click a "Quitar Proyecto", cuando
tengan todo en blanco, añaden un nuevo proyecto, que
solamente tenga un formulario, vean en la ventana de controles
que no aparece nuestro control. Para solucionar eso metanse en
el menú Proyecto y le dan click a la opción de
"Componentes……" y buscan por la letra T y verán que
aparecerá en la lista TextBE lo seleccionan y luego
Presionan el botón Aceptar. - Verán que se añade un nuevo control,
VAMOS PRUEBA EL CONTROL!!!!!!!!!. - Para cambiar el icono que muestra el
control, basta que cuando estén diseñando el
control en la Ventana Propiedades, busques la propiedad
"ToolboxBitmap" y le asignes una imagen.
Bueno señores ahora si terminamos, espero que
haber dedicado tiempo a leer
esta parte del curso le halla servido para aprender lo esencial
de la creación de controles, cabe mencionar que este
CONTROL TEXTBOX_ESPECIAL, puede tener muchas fallas, o cosillas
que siempre se escapan, pero bueno eso les queda como tarea para
que practiquen con los controles. Señores diseñando
controles ustedes pueden hacer lo que quieren, ANIMACIONES,
TEXBOX SUPER AVANZADOS, GRAFICOS, lo
que sea, solo hace falta conocer como hace un control, y una gran
imaginación para realizar los mejores controles. A
continuación explicare como diseñar clases en
Visual Basic,
véanla miren que la clase de ejemplo es un asistente
ANIMADO el cual habla y todo que TAL!!!!!, y le puede ser muy
útil.
10 .Introducción
a las Clases
Tal vez cuando le hablan de clases se empiezan a
imaginar un código complicado, enredado, y abstracto,
bueno desde una perspectiva lo es; pero en Visual Basic la
definición o la creación de una clase es muy
sencilla, cuando dije desde una perspectiva es que las clases son
complicadas en Lenguajes que Requieren del 100% de ellas, como
por ejemplo Visual C++,
JAVA, en estos
las clases presentan muchas características que no se presentan en
visual
basic.
Una clase no es nada mas que un Objeto, este objeto,
tiene propiedades, funciones y
métodos,
ahora ustedes se preguntaran bueno esto mismo lo tienen presente
los controles, entonces cual seria la diferencia entre un control
y una clase, bueno para empezar la construcción de una clase no requiere de
tanto "Protocolo"
(ReadProperty, WriteProperty), ahora para la creación de
propiedades si se utiliza Property Let y Property Get; la
diferencia es casi nada, inclusive podría decir que una
clase en visual basic, es
casi lo mismo que un control, pero ahora nace una nueva pregunta,
cuando utilizar un control y cuando utilizar una clase, bueno la
opinión que voy a dar es desde mi perspectiva; yo
usaría un control cuando quiere representar un objeto
grafico en donde el usuario interactúa con él, y
usuaria una clase para manipular la información interna de un programa, es
decir normalmente una clase no suele ser una interfaz grafica,
como por ejemplo, estaba visitando una pagina de Internet y vi una clase que
manipula el DATAREPORT pero de una manera fenomenal, esta clase
se le pasa la información a nivel de código y
emite un reporte dependiendo de la información.
Un ejemplo mas claro de clase, imagínense que
están diseñando un programa
matemático, este programa tiene una parte en donde dibuja
una figura geométrica, muy bien podrían
diseñar un control pero no seria lo adecuado PORQUE?,
bueno porque yo veo a un control como un objeto que el usuario
manipula, usa e interactúa con él, el usuario no va
interactuar con un dibujo de una
figura geométrica, entonces es aquí donde
diseñaría una clase, que realizara todos los
cálculos para dibujar una figura geométrica, la
clases también ayudan a mantener un código
ordenado, y poder
reutilizarlo en cualquier aplicación.
11.
Propiedades, Funciones y
Eventos.
Esto es exactamente igual que en los controles,
pero tienen que tener un cuenta una cosa, que son las palabras
PUBLIC y PRIVATE, cuando se diseña una clase tienen que
tener cuidado cuando declaran funciones, métodos y
variables, ya
que ustedes tienen que saber que variable es privado y que
variable es publica; una variable PUBLICA puede ser vista por
aquellos quienes usen la clase y la PRIVADA no puede ser vista
sino nada mas por la propia clase, cuando veamos el ejemplo se
entenderá mejor.
12. Diseño
de clase en Visual Basic
Microsoft saco
un programa llamado Microsoft
Agent, este software permite realizar
programas en
cualquier lenguaje,
colocando un asistente animado en 3D, parecido a los que
observamos en OFFICE 2000, para
la realización de esta clase es OBLIGATORIO tener los
siguientes componentes instalados:
- El programa Microsoft Agent
- Un idioma instalado para el uso de la
voz - UN asistente o como llama Microsoft en su pagina
Web un
"CHARS"
Si tienen el CD N.-3 de
Visual Studio 6.0, metanse en la carpeta
CommonToolsVBMSAgent, en esa carpeta tienen el programa, la
documentación y los CHARS ( o como yo les dijo Asistentes)
o pueden bajar el programa que no ocupa mucho desde la pagina
web
www.microsoft.com/msagent, ahí podrá conseguir todo
para el uso del agente (DIFERENTES Lenguajes de Habla, el
programa actualizado y los 4 Chars que solamente hay en la
actualidad que son: Merlín, Genie, Peedy, Robby). Cuando
instale el programa podrá notar que los Chars se instalan
en la Carpeta de WINDOWS/MSAGENT/CHARS, esto es importante cuando
establezcamos la ubicación a nivel de
código.
Bueno suponiendo que ya tienen instalado todo esto,
empecemos, esta clase puede ser muy útil para desarrollar
programas animados o que requieren un asistente el cual van a ver
que tiene muchas funciones y facilidades.
Para empezar ejecutemos el programa Visual Basic y
cuando le aparezca la ventana "NUEVO PROYECTO" igual a la figura
n.2, seleccionen el icono "DLL Activex", y le dan Doble
Click.
Verán que le aparece un modulo de clase y en este
caso cuando se compila no genera un OCX como el control sino un
DLL. Y se ven los eventos de la
clase notaran que nada mas hay INITIALIZE Y TERMINATE (QUE
COMODIDAD). Bueno lo primero que tienen que tomar cuenta es que a
la clase no se le pueden añadir controles, como
verán no se presenta ningún formulario, y ni
siquiera el fondo gris como el control, señores,
aquí todo es a nivel de CODIGO,
así que prepárense.
13. Creación de la
Clase "ASISTENTE"
Antes de empezar a codificar tenemos que hacer
Referencia a una librería, así que sigan estos
pasos:
- Denle click a "Proyecto" en el
menú. - Ahora le dan click a "Referencia…"
- Busca Microsoft Agent 2.0 y lo seleccionan y luego
le dan click a Aceptar.
Bueno empecemos, para comenzar llamen a la clase
"Asistente" y declaramos nuestras primeras variables que
serán las siguientes:
Private WithEvents agnAsistente As Agent
Private iaCargaAsistente As
IAgentCtlCharacterEx
Private Declare Function GetWindowsDirectory Lib
"kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As
String, ByVal nSize As Long) As Long
Notaran que la es declarado PRIVADA ya que estas
variables solamente pueden ser vista por la CLASE y no por el
programa. La primera variable es el objeto de Microsoft Agent,
este objeto es necesario para invocar al asistente. Verán
que hay una palabra que puede ser nueva para ustedes que es
WITHEVENTS; si tuviésemos un formulario no
tendríamos que poner esta línea de código,
ya que Agent es un control, que con tan solo llamarlo y colocarlo
en el formulario basta para acceder a sus propiedades,
métodos, funciones y eventos, pero
como esto es una clase y no podemos poner un control; si yo
declarara la variables de esta manera Private agnAsistente As
Agent, sin el WITHEVETNS, tendría acceso a las
propiedades, métodos y funciones, PERO NO! A los eventos,
para tener acceso a los eventos hay que colocar WITHEVENTS, por
que resulta que si lo añadiera como un control en un
formulario, cuando arranca el programa, el formulario se encarga
de cargar todos los eventos, propiedades, etc, de ese control,
pero como aquí todo es a nivel de código hay que
ser un poco mas explicito.
La segunda variable es la que vamos a usar para
manipular al CHARS o Asistente, con este objeto podremos moverlo,
animarlo, etc.
Y la tercera variable es un API de Windows lo cual
explicare cuando la utilicemos, nada mas le adelanto que esta API
nos permite conocer el nombre del directorio en donde esta
grabado WINDOWS.
Continuamos, vamos a declara ahora todas las variables
que vamos a usar en el programa:
Enum Idioma ‘ Variable que nos permite saber el
idioma en que hablara el CHAR
EnglishUS = &H409
EnglishGB = &H809
French = &H40C
Italian = &H410
Portuguese = &H816
Spanish = &HC0A
End Enum
Enum Muñeco ‘ Variable que no permite
seleccionar que CHAR se ejecutara
Genie = 0
Merlin = 1
Robby = 2
Peedy = 3
End Enum
Enum Accion ‘ Las diferentes animación de
los CHAR
Acknowledge
Alert
Announce
Blink
Confused
Congratulate
Decline
DoMagic1
DoMagic2
DontRecognize
Explain
GestureDown
GestureLeft
GestureRight
GestureUp
GetAttention
GetAttentionContinued
GetAttentionReturn
Greet
Hearing_1
Hearing_2
Hearing_3
Hide
Idle1_1
Idle1_2
Idle1_3
Idle1_4
Idle2_1
Idle2_2
Idle3_1
Idle3_2
LookDown
LookDownReturn
LookLeft
LookLeftReturn
LookRight
LookRightReturn
LookUp
LookUpReturn
MoveDown
MoveLeft
MoveUp
MoveRight
Pleased
Process
Processing
Read
ReadContinued
Reading
ReadReturn
RestPose
Sad
ShowA
Search
Searching
StartListening
StopListening
Suggest
Surprised
ThinkW
Thinking
Uncertain
Wave
WriteA
WriteContinued
WriteReturn
Writing
End Enum
Dim intAccion As Integer ‘ Determina que accion
esta activo y lista para ejecutar
Dim strWindows As String ‘ Determina la carpeta
donde esta instalado WINDOWS
Dim strMuñeco As String ‘ Determina que
muñeco fue elegido por el usuario
Dim bytInicio As Byte ‘ Indica si hay un
Muñeco activo
Dim Array_Accion(1 To 67) As String ‘ Lista de
todas las acciones del
CHAR
Dim bolBalloon As Boolean ‘ Determina se presenta
un BALLON para presentar el texto (EL
BALLON es como el globo que aparece en las tiras cómicas
donde se escribe el mensaje)
Dim bolAutoHide As Boolean ‘ Determina si se
esconde el BALLON cuando termina de presentar el
mensaje
Dim bolAutoSpace As Boolean ‘ Determina el espacio
entre las frases
Dim bolSonido As Boolean ‘ Determina si las
animaciones presentaran sonidos
El uso de la variable lo pueden ver en el comentario que
les coloco al lado. Recomiendo que antes de entrar mas al
programa se lean un poco la documentación del Microsoft
Agent, ya que lo que viene ahora es mas CODIGO que
explicación, recuerden estoy explicando CLASES no
AGENT.
Ahora en el evento Initialize de la clase "Asistente"
coloque este código:
Private Sub Class_Initialize()
Set agnAsistente = New Agent
Carpeta_Windows
bytInicio = 0
bolAutoSpace = True
bolAutoHide = True
bolBalloon = True
Array_Accion(1) = "Acknowledge"
Array_Accion(2) = "Alert"
Array_Accion(3) = "Announce"
Array_Accion(4) = "Blink"
Array_Accion(5) = "Confused"
Array_Accion(6) = "Congratulate"
Array_Accion(7) = "Decline"
Array_Accion(8) = "DoMagic1"
Array_Accion(9) = "DoMagic2"
Array_Accion(10) = "DontRecognize"
Array_Accion(11) = "Explain"
Array_Accion(12) = "GestureDown"
Array_Accion(13) = "GestureLeft"
Array_Accion(14) = "GestureRight"
Array_Accion(15) = "GestureUp"
Array_Accion(16) = "GetAttention"
Array_Accion(17) = "GetAttentionContinued"
Array_Accion(18) = "GetAttentionReturn"
Array_Accion(19) = "Greet"
Array_Accion(20) = "Hearing_1"
Array_Accion(21) = "Hearing_2"
Array_Accion(22) = "Hearing_3"
Array_Accion(23) = "Hide"
Array_Accion(24) = "Idle1_1"
Array_Accion(25) = "Idle1_2"
Array_Accion(26) = "Idle1_3"
Array_Accion(27) = "Idle1_4"
Array_Accion(28) = "Idle2_1"
Array_Accion(29) = "Idle2_2"
Array_Accion(30) = "Idle3_1"
Array_Accion(31) = "Idle3_2"
Array_Accion(32) = "LookDown"
Array_Accion(33) = "LookDownReturn"
Array_Accion(34) = "LookLeft"
Array_Accion(35) = "LookLeftReturn"
Array_Accion(36) = "LookRight"
Array_Accion(37) = "LookRightReturn"
Array_Accion(38) = "LookUp"
Array_Accion(39) = "LookUpReturn"
Array_Accion(40) = "MoveDown"
Array_Accion(41) = "MoveLeft"
Array_Accion(42) = "MoveUp"
Array_Accion(43) = "MoveRight"
Array_Accion(44) = "Pleased"
Array_Accion(45) = "Process"
Array_Accion(46) = "Processing"
Array_Accion(47) = "Read"
Array_Accion(48) = "ReadContinued"
Array_Accion(49) = "Reading"
Array_Accion(50) = "ReadReturn"
Array_Accion(51) = "RestPose"
Array_Accion(52) = "Sad"
Array_Accion(53) = "Search"
Array_Accion(54) = "Searching"
Array_Accion(55) = "Show"
Array_Accion(56) = "StartListening"
Array_Accion(57) = "StopListening"
Array_Accion(58) = "Suggest"
Array_Accion(59) = "Surprised"
Array_Accion(60) = "Think"
Array_Accion(61) = "Thinking"
Array_Accion(62) = "Uncertain"
Array_Accion(63) = "Wave"
Array_Accion(64) = "Write"
Array_Accion(65) = "WriteContinued"
Array_Accion(66) = "WriteReturn"
Array_Accion(67) = "Writing"
End Sub
Aquí hay una línea de código que es
importante explicarle que es:
Set agnAsistente = New Agent
Cuando nosotros declaramos un objeto:
Dim Nombre_del_Objeto as Objeto
En nuestra clase el ejemplo es:
Private WithEvents agnAsistente As Agent
El objeto agnAsistente todavía no se ha
inicializado, es decir no esta en memoria, para
iniciarlo o activarlo hay que hacer lo que se llama una
referencia al objeto esto se logra de esta manera:
Set agnAsistente = New Agent
Es aquí cuando el objeto se inicializa en
la memoria, si
ustedes no hacen esto cuando vayan a usar el objeto para
cualquier utilidad, Visual
Basic les indicara un error, de que "la variable no ha sido
establecida", esto es porque se "DECLARO", pero no se inicializo,
para inicializarla tienen que escribir la línea antes
expuesta, NOTA: Esto solo se hace cuando se hacen referencias a
OBJETOS.
Vamos ahora a declarar las propiedades, para eso
escriban lo siguiente:
Public Property Get Sound() As Boolean
Sound = bolSonido
End Property
Public Property Let Sound(ByVal NuevoValor As
Boolean)
iaCargaAsistente.SoundEffectsOn = NuevoValor
End Property
Public Property Get Balloon() As Boolean
Balloon = bolBalloon
End Property
Public Property Let Balloon(ByVal NuevoValor As
Boolean)
bolBalloon = NuevoValor
If bolBalloon Then
iaCargaAsistente.Balloon.Style =
iaCargaAsistente.Balloon.Style Or 1
Else
iaCargaAsistente.Balloon.Style =
iaCargaAsistente.Balloon.Style And 0
End If
End Property
Public Property Get AutoHide() As Boolean
AutoHide = bolAutoHide
End Property
Public Property Let AutoHide(ByVal NuevoValor As
Boolean)
bolAutoHide = NuevoValor
If bolAutoHide Then
iaCargaAsistente.Balloon.Style =
iaCargaAsistente.Balloon.Style Or 4
Else
iaCargaAsistente.Balloon.Style =
iaCargaAsistente.Balloon.Style And -5
End If
End Property
Public Property Get AutoSpace() As Boolean
AutoSpace = bolAutoSpace
End Property
Public Property Let AutoSpace(ByVal NuevoValor As
Boolean)
bolAutoSpace = NuevoValor
If bolAutoSpace Then
iaCargaAsistente.Balloon.Style =
iaCargaAsistente.Balloon.Style Or 8
Else
iaCargaAsistente.Balloon.Style =
iaCargaAsistente.Balloon.Style And -9
End If
End Property
Private Sub agnAsistente_Command(ByVal UserInput As
Object)
If UserInput.Name = "Opciones" Then
agnAsistente.PropertySheet.Visible = True
End If
End Sub
Esto ya ustedes lo deben de saber de memoria, ya que
es lo mismo que en los controles, con la diferencia que
aquí los propiedades las vemos a nivel de código y
no a nivel de diseño.
Ahora introduzcan los siguientes métodos y la
única función de la Clase:
Public Sub Show(ByVal LenguajeID As Idioma, ByVal GUIA
As Muñeco)
Select Case GUIA
Case 0
strMuñeco = "genie"
Case 1
strMuñeco = "merlin"
Case 2
strMuñeco = "peedy"
Case 3
strMuñeco = "robby"
End Select
If bytInicio = 1 Then
Unload
End If
agnAsistente.Characters.Load "CharacterID", strWindows
& "msagentchars" & strMuñeco &
".acs"
Set iaCargaAsistente =
agnAsistente.Characters("CharacterID")
iaCargaAsistente.Commands.Add "Opciones", "&Opciones
Avanzadas"
iaCargaAsistente.LanguageID = LenguajeID
iaCargaAsistente.Show
iaCargaAsistente.Left = Screen.Width 15 –
iaCargaAsistente.Width – 50
iaCargaAsistente.Top = Screen.Height 15 –
iaCargaAsistente.Height – 50
bytInicio = 1
End Sub
Public Sub Unload() ‘ Metodo utilizado para quitar
el CHAR
agnAsistente.Characters.Unload "CharacterID"
End Sub
Public Sub Speak(ByVal strOracion As String) ‘
Metodo utilizado para HABLAR
iaCargaAsistente.Speak strOracion
End Sub
Public Sub Think(ByVal strOracion As String) ‘
Metodo utilizado para PENSAR
iaCargaAsistente.Think strOracion
End Sub
Public Sub Move(x As Integer, y As Integer) ‘
Metodo para mover el Char
iaCargaAsistente.MoveTo x, y
End Sub
Public Sub Action(accNombre As Accion) ‘ Metodo
para ejecutar una accion del Char
iaCargaAsistente.Play Array_Accion(accNombre +
1)
End Sub
Private Sub Carpeta_Windows() ‘ Metodo para
localizar la carpeta de WINDOWS
Dim Temp As String
Dim Ret As Long
Const MAX_LENGTH = 145
Temp = String$(MAX_LENGTH, 0)
Ret = GetWindowsDirectory(Temp, MAX_LENGTH)
Temp = Left$(Temp, Ret)
If Temp <> "" And Right$(Temp, 1) <> ""
Then
strWindows = Temp & ""
Else
strWindows = Temp
End If
End Sub
Public Function Animations(ByVal indice As Integer) as
String ‘ Metodo para extraer el nombre de las
animaciones
Animations = Array_Accion(indice)
End Function
Public Sub Stop_Asistente() ‘ Metodo que frena
cualquier animiacion del CHAR cuando se ejecuta una
animación continua
iaCargaAsistente.Stop
iaCargaAsistente.Play "RestPose"
End Sub
Bueno señores, estamos listo, ahora vamos a
probar nuestra clase, noten que volvemos a usar el
SET:
Set iaCargaAsistente =
agnAsistente.Characters("CharacterID")
Recuerden que iaCargaAsistente nada mas se declaro y no
se Referencio, bueno aquí es donde la estamos
inicializando.,
Los métodos declarados son sencillos, lo que
tienen es que documentarse un poco sobre como funciona el
Microsoft Agent, después de eso, es fácil entender
el código, y ni siquiera con tan solo ver el código
ya se puede suponer para que sirve cada instrucción que
usamos.
La única que se puede ver un poco extraña
es el método
"Carpeta Windows", este método
establece el nombre de la carpeta donde fue grabado Windows,
recuerden que mencione que el MS Agent, se instala en la carpeta
de Windows, y nos es lo mismo el nombre en Windows 95/98
(C:/Windows) que NT/2000 (C:/WINNT), esa es la razón del
porque es importante ubicar la carpeta de Windows.
Vamos a añadir un formulario en el proyecto donde
tenemos nuestra clase, y en el formulario van a colocar un
TextBox, 3 Botones, y un listabox.
En la parte de Declaraciones coloquen las siguiente
línea de código:
Dim asis As New Asistente
Este es una forma de simplificar estas dos lineas en una
sola:
Dim asis as Asistente
Set asis = New Asistente
Y en el evento click del botón (command1)
colocan:
Private Sub Command1_Click()
asis.Show Spanish, Merlin
End Sub
NOTA: verán que cuando le dan a espaciadora
después de escribir Show, se le mostrara una lista con las
diferentes opciones del lenguaje y
luego una lista de las CHARS que se pueden elegir, eso sucede
debido a que declaramos las variables de tipo ENUM sino no!!, no
aparecieran.
NOTA 2: Merlín es un Char el cual yo supongo que
ustedes ya lo tienen instalado, si tienen otro cambien el nombre
por el que tienen, y el idioma también supongo que la
tienen instalado, aunque el idioma no afecta el funcionamiento de
CHARS, sino afecta cuando el muñeco vaya a
hablar.
Ahora para arrancar nuestro formulario sigan estos
pasos:
- Denle click en "Proyecto" en el
menú - Luego en "Propiedades del
Proyecto1…." - En tipo de proyecto seleccionen EXE Estándar
y en Objeto Inicial Form1
Ahora ejecuten el proyecto y denle click al botón
Command1 verán que le aparece el CHARS en la esquina
inferior derecha, IMPRESIONANTE NO!!. Salgan del
formulario.
En el evento clic del Command2 coloquen:
Private Sub Command2_Click()
asis.Speak text1.Text
End Sub
Y en el Command3:
Private Sub Command3_Click()
asis.Think text1.Text
End Sub
Ejecuten el programa y coloquen en el TEXTBOX que esta
en el formulario "HOLA", sin las comillas por supuesto. Y denle
click primero al botón Command1 para que se cargue el
Asistente o Char, luego denle al botón Command2 y
verán que el CHARS habla lo que ustedes escribieron en el
TEXTBOX, (eso si configuraron el idioma), y si le dan al
botón Command3 el CHARS no hablara pero si mostrara el
Texto, esto es
porque ahí esta PENSANDO (THINK) y no HABLANDO
(SPEAK).
Ahora vamos a ver las animaciones que tienen los
CHARS:
Para ello agrega en el evento LOAD del formulario lo
siguiente:
Private Sub Form_Load()
For i = 1 To 67
List1.AddItem asis.Animations(i)
Next
End Sub
Y en el evento DobleClick del control List1 agreguen lo
siguiente:
Private Sub List1_DblClick()
asis.Action List1.ListIndex
End Sub
Y agrega dos botones Command4 y Command5 y en el evento
Clic de cada uno coloca lo siguiente:
Private Sub Command4_Click()
asis.Move 150, 150
End Sub
Private Sub Command5_Click()
asis.Stop_Asistente
End Sub
Ahora ejecuten el proyecto verán que el cuadro
List1 se lleno con las diferentes animaciones del CHAR ahora
denle click a Command1, luego denle DobleClick a las diferentes
animaciones que están en el List1 y verán como el
CHAR se empieza a mover, después que maten su curiosidad
denle Click a el Command4 para que vean como se mueva el CHAR de
un sitio a otro.
Bueno señores, esto es toda la clase OBVIAMENTE,
no esta lo suficientemente SÓLIDA, que quiero decir con
esto, ahora ustedes le tienen que acomodar los detalles, como por
ejemplo si le dan al botón Command2 sin escribir nada el
CHAR les lanza un error ya que no acepta cadena NULLSTRING, o si
le dan a cualquiera de las animaciones o le dan a los botones
Command2, Command3 y Command4, antes de cargar el asistente
también les dará un error, quedara de tarea para
ustedes si consideran útil esta clase en acomodar esos
pequeñísimos detalles.
Ahora vamos a dar los pasos para compilar una
clase:
- Primero denle clic a "Proyecto" en el menú,
y luego a "Propiedades del Proyecto….", en tipo de proyecto
seleccionan DLL Activex y en objeto inicial ninguno y en
nombre de proyecto ponen Asistente_Animado. - Al igual que el control si lo intentan compilar les
va a decir que el objeto no es publico y que no se puede
compilar para solucionar eso, se meten en las propiedades del
control, y en la propiedad INSTANCING seleccionan la
opción 6 que es GLOBALMULTIUSE y ahora si pueden
compilar, igual que el control seleccionen la carpeta de
WINDOWS/SYSTEM y le colocan al nombre del archivo
Asistente_Animado y le dan click a Aceptar. - Entonces se procede a compilar el
archivo. - Para utilizarlo en sus proyectos
solamente tienen que buscar en Referencias la librería
Asistente_Animado, la seleccionan, y recuerdan que cuando
declaran una variable que hace referencia a un objeto
seria:
Dim Variable as Asistente
En Load del formulario:
Set Variable = New Asistente
Asistente es el nombre que le dimos a nuestra
clase.
Bueno espero que le sea útil, lo que aprendieron
con este curso FLASH sobre
controles y clases, en realidad esto dos temas son muchos mas
amplios pero aquí logre enfocarme en lo básico, ya
los que le queda a ustedes es empezar a echar código, es
importante, por que algunos se preguntaran PARA QUE APRENDER
ESTO, con estas dos técnicas CONTROLES y CLASE
desarrollamos códigos mas fácil de mantener, mas
legibles, y la hora de conseguir una falla resulta mas
rápido, estas técnicas nos ayudan a perfeccionar e
idear nuevas técnicas que pueden beneficiar tanto a
ustedes como a muchas personas, si poseen imaginación les
aseguro que no habrá limite para la creación de
nuevo objetos.
CATEGORIA:PROGRAMACION.
Que es un control?. Como diseñar un control en Visual
Basic. Propiedades de un Control. Métodos de un control.
Eventos. Detalles de la creación de un control. Que es una
Clase?. Propiedades de una clase. Compilación de un
control y una clase. Ejemplo de un control. Ejemplo de una Clase
(Asistente Animado).
Trabajo enviado y realizado por:
Eduardo Roa.
Caracas, Venezuela.
Página anterior | Volver al principio del trabajo | Página siguiente |