Aplicando MSAgent Fecha: 02/Ago/2004 (30/07/2004) |
. |
Explicación (artículo)
En este articulo se muestra un ejemplo de MSAgent y Aplicaciones Windows, para este articulo se toma como base el Articulo publicado por Adrián Ponce: adrianponce_Agentvbnet.htm
Por lo que es necesario leer esa publicación para comprender este documento.
Lo que se hará en esta aplicación es Validar las entradas del usuario mediante el evento Validating de los TextBox si la validación no se cumple mostraremos a Merlín al lado derecho de los TextBox y le pediremos al usuario que teclee lo que se le pide.
A continuación pasamos a ver lo que sería la GUI de la Aplicación Windows.
Como podemos ver es una ventana muy simple, solo consta de 4 Label, 4 TextBox y 1 Button.
Ahora pasaremos a lo que seria el código.
Esto es el texto normal.
A continuación sigue código en Visual Basic:
#Region "variables" Dim merlin As AgentObjects.IAgentCtlCharacterEx 'Variable para llamar al agent #End Region 'Con este procedimiento podremos colocar a merlín al lado de cualquier control de nuestro formulario. 'Como se puede notar el procedimiento recibe por parámetro una variable de tipo object y una de tipo string 'Como dice Guillermo en su libro "Los lenguajes basados en .NET Framework usan el concepto '(Object) como base elemental de cualquier tipo, ya sea numérico o alfanumérico. Todo tipo 'en Net. Framework está basado en un tipo especial llamado Object.". Public Sub posicionar(ByVal objeto As Object, ByVal mensaje As String) Dim x, y As String 'Estas variables nos servirán para almacenar las coordenadas en las que se colocara a Merlín. merlin.Show() 'Mostramos al Agente, en este caso a Merlín 'Colocamos a Merlín a la derecha del control x = CType(Me.Location.X.ToString(), Integer) + CType(objeto.Location.X.ToString, Integer) + CType(objeto.size.width, Integer) y = CType(Me.Location.Y.ToString(), Integer) + CType(objeto.Location.Y.ToString, Integer) - 40 merlin.MoveTo(CShort(x), CShort(y)) 'Con este método Posicionamos al Agente merlin.Play("GestureRight")'Hacemos que merlín señale a la Izquierda del Monitor merlin.Speak(mensaje)'hacemos hablar a Merlín merlin.Hide() 'Ocultamos a Merlín Después de Mostrar el Mensaje End SubEvento LOAD del formulario.
Private Sub WindowsMerlin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Agent.Characters.Load("merlin", "merlin.acs") 'se llama a merlin merlin = Agent.Characters("merlin") 'se selecona a merlin merlin.LanguageID = &HC0AS 'motor de lenguaje End Sub 'Con este evento nos aseguramos que el Foco no cambie de textbox hasta que este tenga algo.. Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating If TextBox1.Text = Nothing Then posicionar(TextBox1, "Teclea el nombre por favor") e.Cancel = True End If End Sub Código para el evento Validating del TextBox4. Private Sub TextBox4_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox4.Validating 'Validamos si el tamaño en caracteres del CP tecleado es diferente de 5 If (TextBox4.Text.Length <> 5) Then e.Cancel = True posicionar(TextBox4, "El Código Postal debe tener 5 caracteres") End If 'Validamos si todos los caracteres del CP son números If Not (e.Cancel) Then 'Esta parte entra sino se a cancelado el cambio del Focu. Dim charIndex As Integer For charIndex = 0 To TextBox4.Text.Length - 1 If Not (Char.IsNumber(TextBox4.Text, charIndex)) Then e.Cancel = True posicionar(TextBox4, "El Código Postal debe tener solo números") Exit For End If Next charIndex End If End Sub
Fichero con el código de ejemplo: ErickAragon_AplicandoMSAgent - Tamaño 10KB