martes, 11 de febrero de 2014

Ejercicio No. 2.11 en C#: Radio

Tabla de Contenido

1. Planteamiento del Problema
2. Solución
3. Discusión de la Solución
4. Código Fuente C#
5. Compilación, Ejecución, y Resultado
6. Conclusiones
7. Glosario
8. Enlaces & Literatura

1. Planeamiento del Problema

En la Figura 1 se expresa pictóricamente el resultado requerido en el planteamiento original del problema (en ingles, [1]).
Planteamiento Ejercicio 2.11 en C#.
Figura 1. Planteamiento Ejercicio 2.11 en C# [1].

2. Solución

La composición de esta interfaz requirió el uso de los siguientes controles (sólo mencionaré aquellos introducidos en este ejercicio. En los ejercicios anteriores a la serie del Capítulo 2 de la bibliografía [1] desarrollados en este mismo blog tratan los demás controles):
  • CheckBox [2],
  • PictureBox [3], y
  • TrackBar [4]
Además de la instanciación de 1 ó varios objetos de estas tipos de datos, era requisito establecer diferentes propiedades para alcanzar el resultado de la Figura 1. Algunas propiedades a nombrar:
  • AutoSize [5] de Checkbox: El tamaño del control se autoajusta de acuerdo al la longitud de la cadena de caracteres de la propiedad Text.
  • BackColor [6] de Label: Establece el color del fondo de la etiqueta.
  • ForeColor [7] de Label: Color de la fuente del texto de la etiqueta.
  • TextAlign [8] de Label: Modo de alineación o de justificación del texto de la etiqueta.
  • ImageLocation [9] de PictureBox: URL [10] de la ubicación del recurso imagen.

3. Discusión de la Solución

En esta solución nuevamente aplico el concepto de modularización de la instancición de controles visuals. Los métodos que se encargan de estas tareas son los siguientes:
  • CreatePresetStationsButtons: Crea los botones de pre-sintonías del radio. Hasta 6 estaciones (es decir, en el caso prográmatico 6 instancias de la clase Button).
  • CreateSpeakerOptions: Crea los controles para controlar los parlantes frontales y anteriores de la interfaz del radio.
  • CreatePowerOnOffButton: Crea el botón de apagado y encendido de la interfaz del radio.
  • CreateVolumeControl: Crea el manejador de silencio y nivel de volumen de la interfaz del radio.
  • CreateTunningControls: Crea los controles para alternar entre FM y AM, y el visualizador de frecuencia sintonizada.
  • CreateJukebox: Muestra en la interfaz del radio una imagen de una nota musical.
En CreateJukebox quiero resaltar un punto contraproducente al señalado en la versión extendidad del planteamiento. Dado que en el libro [1] se facilita el recurso multimedia (imagen: MusiNote.gif), omito su uso, y en lugar recurro a una imagen en el CDN de IconFinder, ubicado en el siguiente URL:

4. Código Fuente C#

Es hora de que veamos la solución completa a este ejercicio.

Archivo RadioGUI.cs:



5. Compilación, Ejecución y Resultado

Con esta comando compilamos nuestro archivo RadioGUI.cs

  1. csc /target:winexe /out:RadioGUI.exe RadioGUI.exe

Ahora ejecutamos el archivo RadioGUI.exe:

  1. .\RadioGUI.exe

Y esto es lo que tendremos en pantalla:
Solución al ejercicio no. 2.11
Figura 2. Ejecución RadioGUI.exe.

6. Conclusiones

Esta oportunidad ha sido importante pues hemos podido introducirnos al uso de otros controles para la composición de una interfaz de usuario. Me refiero a CheckBox, PictureBox, y TrackBar. También manipulamos sus propiedades para lograr el grado de apariencia requerido por el planteamiento del ejercicio. Cada vez se hace más intenso el uso de controles, pero en particular el enfoque programático de uso único de un editor de texto plano (ahora mismo NO queremos usar un entorno de desarrollo integrado).

7. Glosario

- CDN
- CheckBox
- IconFinder
- PictureBox
- TrackBar
- URL

8. Enlaces & Literatura

[1]: Visual C# 2012 How to Program by Paul Deitel and Harvey Deitel. Copyright 2012 Deitel & Associates, Inc., 978-0-13-337933-4.
[2]: CheckBox Class (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.checkbox.aspx
[3]: PictureBox Class (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.aspx
[4]: TrackBar Class (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.trackbar%28v=vs.110%29.aspx
[5]: ButtonBase.AutoSize Property (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.buttonbase.autosize%28v=vs.110%29.aspx
[6]: Control.BackColor Property (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.control.backcolor.aspx
[7]: Control.ForeColor Property (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.control.forecolor.aspx
[8]: Label.TextAlign Property (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.label.textalign.aspx
[9]: PictureBox.ImageLocation Property (System.Windows.Forms) - http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.imagelocation.aspx
[10]: Uniform resource locator, the free encyclopedia - https://en.wikipedia.org/wiki/Uniform_Resource_Locator
[11]: Content delivery network, the free encyclopedia - https://en.wikipedia.org/wiki/Content_delivery_network
[12]: Icon search engine and market place | Iconfinder - https://www.iconfinder.com/

O

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.