Últimas entradas »

Agenda Personalizada

Hola Amigos…..

De regreso nuevamente y esta vez traigo para compartir una pequenia agenda digital personalizada. Esta aplicacion fue hecha en un lenguaje muy conocido(Java), y utiliza como repositorios de datos nada mas y nada menos que archivos .txt, y ustedes se preguntaran ¿Porque Archivos y no base de datos?, jejejeje la razon es simple, pues esto resulto de un trabajo que tenia que realizar para un profesor y el lo deseaba con archivos mas no con base de datos.

Las funciones que presenta esta aplicacion son las siguientes:

  • tiene un pequenio modulo para gestionar los contactos (Agregar,Editar,Eliminar).
  • un modulo para gestionar Notas (Agregar,Editar,Eliminar).
  • y tambien consta de un recordatorio donde se pueden administrar los eventos posibles, eso si con una interfaz bien simpatica

La arquitectura que se utilizo para programar esta aplicacion, es la arquitectura tres capas (Presentacion, Logica de Negocios, y Acceso a Datos). cada una de estas tienes sus respectivas clases que cumplen con la funcion para la que fueron creadas

A hora si vamos a Describir nuestra Agenda:

Presentacion

En presentacion tenemos la interfaz con la que interactuara el usuario, es importante aclarar que la presente aplicacion trabaja con JInternalFrame.

 Asi tenemos la Pantalla principal donde tenemos los menus y las opciones:

En esta ventana es donde se encuentra como ya lo dijimos anteriormente los menus principales que estan ubicados en la parte superior y que sirven para invocar a las demas ventanas, cabe recalcar nuevamente que al decir nuevas ventanas me refiero a Jinternalframe, con esto se entiende que las ventanas se presentaran dentro de esta ventana Principal ya que los internaframe son ventanas hijos de esta ventana por lo que solo podran mantenerse en la parte de color azul.

En la parte inferior si nos fijamos bien tiene un barra donde presenta alguna informacion de la aplicacion y un reloj con hora minutos y segundoeste a su vez se actualiza a caga segundo que pasa.

Al hacer click en el boton Contactos se despliega una nueva ventana que es donde gestionaremos los contactos

En esta nueva ventana tiene botones para agregar nuevo contacto, editar datos de algun contacto, eliminar un contacto, asi mismo tambien hay una tabla donde presento los datos de los contactos que al hacer click el cada registro de la tabla se presenta los datos en las cajas de texto.

La interfaz para las Notas es similar a la anterior

Al igual que la pantalla anterior podemos realizar las mismas acciones,  de ingreso de Notas, Edicion de Notas, Eliminacion de Notas. Asi mismo tambien existen validadaciones de datos en caso de que se trate de ingresar datos en blanco o datos inconsistentes, Aparecera un mensaje de error en caso de que esto sucedad.


Esto se lo puede hacer en ambos modulos, tanto en el de contacto como en el de Notas.

bueno a hora ya tenemos el modulo de Recordatorios que se aparece cuando se hace click en el boton recordar

si nos damos cuenta la ventana simula un caledario con sus dias de la semana, dias del mes, los mese y los anios, dentro de esta ventana es posible cambiar de mes y de anio con los enos <<, >> y <,> respectivamente, tambien tenemos los dias normales estan de un color azul y el dia actual esta de color rojo, asi mismo los dias donde hay recordatorios estan de color verde.

Para agregar un recordatorio lo podemos hacer desde el boton ir.

aqui existen botones guardar y cancelar, es importante mencionar que los botones editar y eliminar aun no estan programados, la flechas de navegacion si lo estan, estas seran utiles cuando estemos revisando mas de un recordatorio en un fecha en particular.

A hora si lo que todos estaban esperando el codigo fuente…jejeje bueno esto lo puede descargar de aqui

Nota: todos lor archivos con los que trabajo lo creo con la aplicacion en caso de que no este creados y la direccion donde los creo es C:\Agenda

Bueno espero que les haya gustado y ya saben cualquier pregunta haganmela saber, para ver que se les puede ayudar

Google map y C#

hola compañeros…

Bueno lo que les tengo para hoy es algo muy interesante, pues simplemente  junto estas dos tecnologias(Googlemap y c#) en algo muy sencillo. Espero que les ayude mucho y que aprecien mis humildes conocimientos

sin rodeos y al grano:

lo que vamos a hacer es que mediante una direccion ip encontremos el pais al que pertenece aquella direccion ip   y luego lo grafiquemos en google map. las direcciones ip y los paises estaran almacenas en una base de datos access

Primeramente debemos tener acceso a google map mediante C# y bueno pues todos se preguntaran ¿Como lo hacemos?

Aqui explicaremos como:

Como Primer paso debemos tener el dll de google map, que lo pueden  descargar de la url: www.googlemaps.subgurim.net/descargar.aspx

Una vez descargado el archivo debemos agregarlo a visual Studio C#. Bueno Aqui esta detallado paso a paso como se lo hace, incluso hay mas informacion de como trabajar con googlemap dentro de c#.
Como siguiente paso Creamos nuestra interfaz para poder trabajar en ella, lo que necesitamos basicamente es dos cuadros de texto y dos botones.


obviamente tambien necesitamos el mapa de google map y pues tambien lo arrastramos a nuestra pantalla al      igual que los otros componentes

Como  lo  que ingresaremos son ip debemos asegurarnos que lo que no ingrese sean direcciones ip, para esto manejaremos lo que son Validaciones y Personalizaremos una empresion regular que nos ayudara a determinar una direccion ip correcta, bueno nos vamos a cuadro de herramientas en la pestaña de validacion y  agregamos a nuestra interfaz el control de regularExpressionvalidator con esta en la imagen

A hora pues conficularamos el control: nos dirigimos a propiedades del validador y escojemos la opcion validationexpression y agregamos nuestra expresion regular que nos esta hecha para validar direcciones ips:

Aqui esta la expresion regulara un poco mas clara:

^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$

y como ultimo paso para la configuracion del validador simplemente le agregamos el control que va a validar la epresion regular(osea la caja de texto en la que se va a ingresar la ip) y luego el mensaje de error que presentaremos si dicha ip esta mal escrita.

A hora si pasaremos a la c0digo de cada uno de los botones:

El primer boton:

si nos damos cuenta primeramente llamamos a un metodo Conversionip que lo que me hace no es mas que convertir la direccion ip(String) en un numero (double) con el fin de realizar la consulta en el siguiente paso. Una vez logrado eso, llamamos a otro metodo Obtenerpaisxip que es el que hace la consulta a la base de datos, en caso de que la direccion no exista se presentara un mensaje de informacion y si la direccion está, retornara el pais al que pertenece y se presentara en la caja de texto(txtPais), ojo que este metodo pertenece a un una clase adicional llamada Coneccion por lo que primero hay que crear un objeto de esta clase para poder usar el  metodo Obtenerpaisxip.

En el segundo boton tenemos:

Antes de empezar a explicar el codigo del segundo boton, pues quiero comentar que para graficar en googlemap se necesita las coordenadas del lugar que queremos graficar por lo que uso otro servicio que presta googlemap que me retorna las latitudes y longuitudes enviandole el nombre del  pais a la url de googlemap.

A hora si explico el boton 2 lo que hago de inicio es llamar el metodo obtener coordenadas y le envio como parametro el nombre del pais, si dirigimos la vista al metodo ObtenerCoordenadas en la segunda linea declaro una variable de tipo URI al que le doy como dato adicional el formato de la cadena, la direccion url de googlemap, el pais del que quiero que me retorne las coordenadas, la key de google map(key es la clave que me da googlemap para poder usar sus servicios), para luego descargar  los datos y los almacenarlos en un arreglo….ah por cierto googlemap no solo me retorna las latitudes y longuitudes si no otros datos adicionales que no lo usaremos en nuestro caso,  es por eso que a la hora de usar los datos almacenados en el arreglo no empiezo desde la posicion cero si no de la posicion 2 por que desde ahi estan los datos que necesito, bueno luego convierto las coordenadas a double por que lo que me descargue de la pagina esta en formato String y yo no puedo hacer operaciones matematicas con una cadena de texto,volviendo al tema luego  hago una division para 10000000 por que de lo contrario las coordenadas serian incorrectas

A hora volvamos la vista al boton 2 en la segunda lineade codigo, pues ahi le doy  las coordenadas a google map para que grafique el pais al que pertence la direccion ip.

y su aplicacion quedaria asi:

hasta a hora solo he explicado codigo para C#, pero ahora explicare el codigo para que el mapa se vea de esta forma

En las dos primeras lineas definimos el tamano del map, luego le damos el centro don de se va a ubicar el mapa de primera,en la siguiente linea activamos el navegador de la rueda del raton, asi mismo activamos la opcion para poder navegar con las feclas de teclado, tambien agregamos un pequeño mapa para navegar a mas rasgos, agregamos un menu de opciones para poder cambiar de un mapa a otro, google map tambien presenta la opcion de marcar el centro exacto con una cruz esto lo hacemos en la linea 11 y para terminar en la siguiente linea agregamos cuatro botones para navegar por todo el mapa con estos, ademas tiene dos botones para aumentar el zoom o disminuir.

ahora explico la base de datos donde se encuentran las direcciones ip con sus respectivos paises

Fijemonos que la tabla esta compuesta por 5 columnas la primera es desde donde comienzan las direcciones ips  y la segunda es hasta donde llegan las direcciones ips para es pais pero estas dos columnas estan en string,y las dos columnas siguiente son equivalentes con la diferencia que ya estan convertidas en numero(double) y estas son las que nos sirve para hacer las consultas, son los rangos de direcciones ip para cada pais en formato double, es por eso que la consulta esta asi:

“SELECT Country_Name FROM Countries WHERE ” + ipNo + ” BETWEEN  IPNoFrom  AND  IPNoTo”;

y esto es todo compañeros… espero que les guste este tutorial y si tienen alguna pregunta no duden en preguntar

En este link podran descargar la aplicacion y la base de datos: descargar

Seguir

Get every new post delivered to your Inbox.