lunes, 10 de febrero de 2014

Ejercicio No. 2.10 en C#: Despertador

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. Planteamiento

En la Figura 1 se muestra el planteamiento original (en inglés) sobre [1]:
Ejercicio No. 2.10 en C#: Despertador.
Figura 1. Planteamiento Ejercicio No. 2.10 en C#: Despertador [1].

2. Solución

La composición de la interfaz de usuario (GUI) propuesta en la Figura 1 requiere del uso de los siguientes controles visuales:
  • Button
  • GroupBox [2]
  • Label, y
  • RadioButton [3]
GroupBox es uno de los nuevos controles tratados en este ejercicio. Con este control créamos un contenedor (similiar a un control Panel) que posee un borde en donde el programador puede especificar un título (en el caso particular 'AM/PM').

Por otro lado, tenemo a RadioButton que nos sirve para crear una selección exclusiva entre un conjunto de opciones (o AM, o PM, exclusivamente).

3. Discusión de la Solución

Debido a la novedad de GroupBox y RadioButton, a continuación describeré algunas de las propiedades elementales de estos controles contenidos en el nombre de espacio (namespace) System.Windows.Forms.

3.1 GroupBox

Como fue dicho previamente el control GroupBox nos ha de servir como contenedor de controles. Podríamos verle como un organizador para facilitar la distribución y agrupación de elementos intrínsecamente relacionados sobre un control Form o Panel (discutido en el ejercicio previo: Ejercicio No. 2.9). Nos permite especificar una cadena de caracteres para el encabazado de la esquina superior derecha:

gbxAmPm.Text = "AM/PM";

como también su ubicación (centro geométrico del formulario), el nombre del control, el tamaño:

gbxAmPm.Location = new Point(170, 51);
gbxAmPm.Name = "gbxAmPm";
gbxAmPm.Size = new Size(100, 50);

, respectivamente.

Cuando pasemos a la sección 5, veremos que el control queda dibujado así:
Vista previa del control GroupBox sobre el fomulario.
Figura 2. GroupBox sobre el formulario.

3.2 RadioButton

Con RadioButton podemos crear un grupo de opciones para modelar la operación de selección exclusiva (XOR [5]) para el caso de nuestro ejercicio corresponde con la selección de AM o PM. En la Figura 2 quedan dibujados las opciones previas.

4. Código Fuente C#

A continuación se enlista el código fuente C# que representa la solución práctica:


5. Compilación, Ejecución y Resultado

Compilemos nuestro archivo AlarmClockGUI.cs así:


  1. csc /target:winexe /out:AlarmClockGUI.exe AlarmClock.cs

Ahora su ejecución,


  1. .\AlarmClockGUI.exe

Y finalmente su resultado en tiempo de ejecución:
Resultado de la ejecución del Ejercicio No. 2.10.
Figura 3. Ejecución de AlarmClockGUI.

[Nota: La imagen de la Figura 3 aparece con el motor Aero [5] deshabilitado.]

Conclusiones

En esta ocasión tuvimos la oportunidad de aprender y afianzar nuestro conocimiento y práctica sobre la compisición de interfaces gráficas útilizando únicamente un editor de texto plano (Notepad++) con impresora estética para el lenguaje de programación C#. Pero sobretodo, pudimos reconocer la utilidad y aplicación de los controles GroupBox (expresa un contenedor) y RadioButton.

Glosario

- GroupBox
- RadioButton

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]: GroupBox Class (System.Windows.Controls) - http://msdn.microsoft.com/en-us/library/system.windows.controls.groupbox%28v=vs.110%29.aspx
[3]: RadioButton Class (System.Windows.Forms)  - http://msdn.microsoft.com/en-us/library/system.windows.forms.radiobutton.aspx
[4]: Exclusive or, the free encyclopedia - https://en.wikipedia.org/wiki/Exclusive_or
[5]: Windows Aero, the free encyclopedia - https://en.wikipedia.org/wiki/Windows_Aero


O

3 comentarios:

  1. Se agradece los aportes muy bien explicados, veo que la mayoria de ejercicios no tienen enlace para ver el codigo fuente

    ResponderEliminar
  2. Hola Brian:

    Gracias por tu comentario. Estoy realizando una migración (de manera incremental) a un nuevo proveedor de visualización de código fuente (pastebin.com, precisamente). El viejo proveedor tiene algunos problemas de compatibilidad con algunos navegadores (en particular Chrome e Internet Explorer). Con Firefox funciona correctamente.

    He actualizado este post para que lo puedas ver correctamente en cualquier navegador.

    Saludos desde Bogotá D.C.

    ResponderEliminar
  3. Muchas gracias por la actualización.

    ResponderEliminar

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