Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

miércoles, 23 de noviembre de 2016

Añadiendo un ayudante

0

Crea una interfaz de usuario que permita dar de Alta, Baja y Modificar tanto empleados como departamentos de una empresa llamada IE Sierra Software S.L.

De los empleados interesará almacenar:

  • El código (alfanumérico de 10 dígitos) 
Para poner una mascara alfanumérica de 10 dígitos debemos usar el control MaskedTextBox y en la propiedad Mask "aaaaaaaaaa". 
  • La 'a' representa los caracteres alfanuméricos, necesaria. 
  • La 'l' representa caracteres del alfabeto, necesaria.
  • El '?' representa caracteres del alfabeto, opcional.
  • El '0' caracteres numéricos, necesario. 
  • El '9'   es un carácter o espacio, opcional.
  • Nombre completo.
  • Dirección.
  • Nacionalidad y lugar de nacimiento.
  • Teléfono, email de contacto.
  • Fechas de nacimiento e ingreso en la empresa.
  • El departamento al que está adscrito.
De los departamentos interesará almacenar:

  • El código (alfanumérico de 10 caracteres).
Para poner una mascara alfanumérica de 10 dígitos debemos usar el control MaskedTextBox y en la propiedad Mask "aaaaaaaaaa".
  • El nombre del departamento.
  • El número de empleados.
  • La lista de los empleados que forman parte de ése departamento.
  • La extensión telefónica (numérico de 10 dígitos).
Para poner una mascara numérico de 10 dígitos debemos usar el control MaskedTextBox y en la propiedad Mask "(000) 000 00 00".
  • El presupuesto que manejarán (entre 0 y 200.000 €uros).
Para poner una mascara numérico de 10 dígitos debemos usar el control MaskedTextBox y en la propiedad Mask "999999".
If (presupuesto <0 or presupuesto>200000) Then
     presupuesto.Text=" "
     txtMensaje.Text="Error el presupuesto debe encontrarse entre 0 y 200.000€"
EndIf

Vamos a añadir un ayudante virtual...

  • Puede ser un botón con un icono, una imagen en un PictureBox, o cualquier otro tipo de elemento, siempre que resulte visualmente atractivo.
    • Es posible crear un icono a partir de una imagen de tu interés, online,  <<enlace>>.
  • Puedes animarlo, empleando un objeto Timer, y varios fotogramas distintos...
Antes de hacer un ejemplo, hay que aclarar que la propiedad Interval está expresada en milisegundos, esto quiere decir que por ejemplo si quisiéramos ejecutar una instrucción cada 3 segundos por decir un ejemplo, la propiedad Interval debe estar en 3000.

Ejemplo:

Private Sub Form_Load()
Label1.Caption = " Hola Mundo "
End Sub
Private Sub Timer1_Timer()
   With Label1
      ' Se desplaza el Label hacia la izquierda
      .Move .Left - 30
      'Si finalizó, vuelve a comenzar desde la parte derecha
      If .Left + .Width < Contenedor.Left Then
         .Left = Contenedor.Left + Contenedor.Width
      End If
   End With
End Sub
  • Cada vez que un usuario realice una acción sobre la etiqueta o sobre el control asociado a ésa etiqueta, el ayudante reproducirá la ayuda mediante voz e imprimirá el texto que el objeto tenga asociado a ése elemento, de cualquier forma.
    • Recuerda la propiedad Tag dentro de cada uno de los objetos...
doble ejemplo de voz:
'declaracion del audio ayuda
    Dim audioAyuda = CreateObject("sapi.spvoice")
    'boton hablar
    Private Sub blablabla_Click(sender As Object, e As EventArgs) Handles blablabla.Click
        Try
            Dim audio = CreateObject("sapi.spvoice")
            audio.speak(cTexto.Text)
            audio.volume = TrackVolumen.Value
            audio.rate = TrackVelocidad.Value
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
'audio ayuda, al pasar por encima leera lo que esta escrito o para que sirve.
    Private Sub cTexto_MouseEnter(sender As Object, e As EventArgs) Handles cTexto.MouseEnter
        audioAyuda.speak("Aqui debes introducir el texto")
    End Sub

Las propiedades Tag y Name son parte de la clase Control. La propiedad Tag es un repositorio dentro de la memoria para almacenar datos sobre el control. La propiedad Name contiene el nombre del control. La propiedad Name se puede utilizar en tiempo de ejecución para evaluar el objeto por nombre en lugar de evaluarlo por tipo y nombre de programación.
  • Cada vez que se produzca un error en la pantalla, el ayudante mostrará el error.
  • Añade la opción para que el ayudante haga Mute y para que no aparezca.
Ejemplo para apagar la voz
'boleano para silenciar la autoayuda
    Private activo As Boolean
'boton silenciar
    Private Sub BtnSilenciar_Click(sender As Object, e As EventArgs) Handles BtnSilenciar.Click
        Try
            If activo = False Then
                activo = True
                audioAyuda.volume = 0
                BtnSilenciar.Text = "Silenciado"
                audioAyuda.rate = 0
            ElseIf activo = True Then
                activo = False
                audioAyuda.volume = 50
                BtnSilenciar.Text = "Silenciar"
                audioAyuda.rate = 10
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
  • Puedes, si lo deseas, hacer que el ayudante aparezca en una posición aleatoria, dentro del formulario...
Ejemplo:
Public Class Form1
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
randomValue = CInt(Math.Floor((6 - 1 + 1) * Rnd())) + 1
boton.Location = New Point(100,randomValue* 50)
 Next
 End Sub
End Class 
  • Establece, en la pantalla, una manera para seleccionar el tiempo de inactividad, transcurrido ese período el ayudante reproducirá Hola, soy tu ayudante de [Nombre Interfaz]".
Agrega un control Timer al juego de formar parejas. Un temporizador espera un número especificado de milisegundos para desencadenar un evento conocido como tick. Esto es útil para iniciar o repetir una acción de forma periódica.

Private Sub Timer1_Tick() Handles Timer1.Tick
     ayudante.Text="Hola..."
End Sub
  • Si lo deseas, puedes añadir la opción para que el usuario pregunte al ayudante, y programar su respuesta recorriendo toda la ayuda de todos los controles de la interfaz, en busca de una posible respuesta.

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)