domingo, 19 de julio de 2020



Contenido de este post:
  • Clase Program: Punto de entrada de la aplicación. 
  • Constructor y Eventos

Clase Program: Punto de entrada de la aplicación

Lo primero será modificar la clase Program que Visual Studio crea por defecto en nuestro proyecto. Ya que esta clase es el punto de entrada de la aplicación, aquí podemos detectar desde que archivo se ha ejecutado la aplicación y proceder a cargarlo. 

Para que el código a continuación realice su trabajo, es necesario que los archivos con extensión .txt estén asociados a nuestra aplicación. Esto se realiza haciendo clic derecho sobre cualquier archivo .txt, luego Propiedades y en la pestaña General clic en Cambiar, después, en la ventana emergente que aparecerá, debemos buscar la opción Buscar otra aplicación en el equipo y seleccionar el ejecutable de nuestra aplicación: 


Si asocias los archivos .txt con tu aplicación antes de haber realizado la instalación de esta, deberás usar el ejecutable que crea Visual Studio en la ruta proyecto / bin / Debug /
La modificación a realizar en Program es muy sencilla.  Simplemente agregamos al método Main un condicional en el cual validamos si args ha recibido algún valor, y si es así, este valor (que será la ruta del archivo que lanzó nuestra aplicación) será el argumento del método SetRutaRecibida de la clase MiNotePadAcciones. También, establecemos el estado del archivo a "Sin cambios." 



Constructor y Eventos

A continuación iremos al código de frmEDITOR. Primero modificaremos el constructor de la clase del formulario. Aquí ejecutamos el método SetArchivoOriginal pasándole como parámetro el valor retornado por el método GetRutaRecibida. Luego, cambiamos el título de la ventana y por último mostramos el estado del archivo en el Label lbESTADO


Evento Load de frmEDITOR: En el evento Load intentaremos asignar el contenido del archivo que lanzó la ejecución de nuestra aplicación a RichTextBox y le pasaremos el foco a este control. La razón por la cual se usa un Try...Catch aquí (y en el constructor) es que si la aplicación no se ejecuta desde la apertura de un archivo, sino directamente abriendo la aplicación (ya sea haciendo doble clic en su ejecutable o en su acceso directo) no existirá una ruta de archivo y no se podrá leer nada. Si no se controla esto, se lanzaría una excepción y se rompería la aplicación. 


Evento Clic del botón btABRIR: Este evento primero realizará una comprobación del estado del archivo, y si este es igual a "Modificado." entonces se mostrará un MessageBox pidiendo confirmación al usuario para continuar, ya que los cambios hechos al archivo se perderán al abrir otro documento en esta misma instancia de la aplicación. Si el usuario selecciona "NO" como respuesta, simplemente se termina la ejecución del método. Si el usuario contesta "SI" o si el estado actual del archivo NO es Modificado, entonces se ejecuta el método Abrir de la clase MiNotePadAcciones, además, se obtienen los valores retornados por otros métodos y se asignan a los controles correspondientes. 


Evento Clic del botón btGUARDAR: Este evento ejecuta el método Guardar de la clase MiNotePadAcciones con sus respectivos argumentos, luego obtiene los valores retornados de otros métodos y los asigna a los controles correspondientes. 


Evento Clic del botón btNUEVO: Este evento simplemente llama al método Nuevo de la clase MiNotePadAcciones


Evento TextChanged del control RichTextBox: Este evento compara el contenido del archivo original con el contenido de RichTextBox, si los contenidos son diferentes, entonces se actualiza el estado del archivo y se muestra en el Label lbESTADO


Eventos Clic de los botones btZOOM_IN y btZOOM_OUT: Estos eventos permiten ajustar el tamaño de la letra en el control RichTextBox. Se establece como tamaño máximo 48 y como mínimo 8. El valor inicial del tamaño de letra es 14. Cada vez que se hace clic sobre uno de estos botones, se incrementa o decrementa el valor de Tam y luego se asigna este valor a la propiedad Font de RichTextBox


Evento Clic del botón btBUSCAR: Este evento hace visible a panelBuscar. Para que esto funcione, en la vista de diseño del formulario se debe asignar a la propiedad Visible del control panelBuscar el valor false


Evento Clic del label lbCerrar: Este evento borra el contenido del control txBUSCAR y hace invisible a panelBuscar: 


Evento KeyDown del textbox txBUSCAR: Este evento valida primero si la tecla presionada es Enter. Si lo es, procede a suprimir el evento KeyPress (para desactivar el "beep" del sistema) y luego almacena en la variable i el valor de la posición actual del cursor en RichTextBox. Luego ejecuta la función Buscar de la clase MiNotePadAcciones con sus respectivos argumentos (texto a buscar, posición inicial y control RichTextBox). Si la búsqueda es exitosa, la función devuelve la posición en el archivo del texto buscado. 

Se usan las propiedades SelectionStart y SelectionLength de RichTextBox para que el texto buscado se seleccione

Si se produce un error, significa que el texto buscado no existe en el archivo de texto y se indica con un MessageBox


Eventos Clic del menú contextual: Usando las respectivas propiedades de RichTextBox, se ejecuta en cada submenú su respectiva acción: 


Evento FormClosing de frmEDITOR: Este evento valida si el estado del archivo es "Modificado.". Si es así, pide al usuario confirmación para cerrar la aplicación ya que los cambios realizados no serán guardados: 


Evento KeyDown de frmEDITOR: Este evento valida la combinación de teclas presionada (los atajos de teclado de nuestra aplicación) y según esta combinación ejecuta el evento Clic de cada botón respectivamente:

 

Si quieres apoyarme económicamente para que siga creando contenido y podamos seguir aprendiendo juntos, en Ko-Fi puedes hacerlo.

¡Sí, quiero apoyarte!

Deja un comentario: