Pascal/Turbo Pascal - ayuda con agenda

 
Vista:

ayuda con agenda

Publicado por rodrigo (8 intervenciones) el 17/11/2006 06:00:23
holaaa... quiero hacer un programa en pascal.. q simule una agenda... supongamos tu pones algun evento en alguna fecha futura.. y cuando la fecha se cumpla el programa te avise del evento.. se como poner la fecha y hora.. pero no compreno como puedo hacer q el programa se abra en la fecha indicada alguien me podra ayudar??? much grax
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con agenda

Publicado por Carlos Guimaraenz (265 intervenciones) el 17/11/2006 16:26:04
Hola Rodrigo! En ese caso, no hay ningún programa que se abra por sí solo... siempre necesitarás alguna aplicación que verifique la fecha y lance tu programa, y por supuesto que puedes hacer correr tu programa y éste verifique la fecha y te avise cuando sea igual a la fecha agendada.
Pero si hay alguien (llámese por ejemplo Diego Romero, quién siempre completa y/o mejora algunas respuestas de manera clara) que sepa cómo hacerlo, por favor que nos enseñe ;) Un abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con agenda

Publicado por Diego Romero (996 intervenciones) el 17/11/2006 17:59:34
De hecho sí Carlos, voy a ampliar tu respuesta. Como bien has dicho, los programas no se ejecutan solos, alguien tiene que hacerlo y en última instancia es el usuario quien inicia la cadena (por el solo hecho de encender la PC ya está iniciando un programa).

Pero aún así en los tiempos que corren faltaría que Rodrigo nos diga bajo qué sistema operativo se ejecutará dicho programa puesto que si es sobre DOS solamente, basta con hacer del programa un TSR (Terminate and Stay Resident, Terminar y Permanecer Residente), este tipo de programas, como su nombre indica, se ejecutan y terminan pero no salen de memoria y están programados de forma tal que al ocurrir un evento (la presión de una combinación de teclas, una hora en específico, etc...) "reviven" y ejecutan algo. Justo lo que Rodrigo quiere hacer. Algo similar son los programas de Windows que muestran un ícono junto al reloj.

Sin embargo los TSR son una mala idea ejecutarlos en Windows ya que éste no cierra la ventana de MS-DOS hasta que el usuario finalice el TSR que aún está en memoria y si no lo hace explícitamente Windows quita el TSR de todas formas perdiéndose la funcionalidad para la que fue creado originalmente.

Pero vamos a suponer que Rodrigo quiere hacer su programa para ejecutarse en una máquina "solo DOS". Turbo Pascal implementa el procedimiento Keep; que hace que el programa no termine y permanezca en memoria. Ahora bien, para que se ejecute algo al llegar una fecha determinada hay que poner un hook a una interrupción de DOS (la $1C) asignándole un procedimiento de tipo interrupt, lo que pasa aquí es que cada vez que el reloj de la PC marque un tick (cambie de segundo, por ejemplo) se ejecuta el procedimiento enganchado a esa interrupción, allí uno puede verificar qué hora y día es y así actuar en consecuencia.

No tengo el programa completo, pero Rodrigo puede pasar por mi página web y descargarse el ejemplo que tengo allí para poner la hora en pantalla siempre visible, está programado usando interrupciones del DOS. Creo que es un buen punto de partida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con agenda

Publicado por rodrigo (8 intervenciones) el 17/11/2006 23:30:55
muchas grax.. veo q esta un poquito dificl pero voy a ver que puedo hacer... la pagina es http://www.driverop.com.ar/? sale muchas grax.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con agenda

Publicado por Diego Romero (996 intervenciones) el 18/11/2006 01:26:28
Sí, esa es la página, en la sección Programación -> Pascal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar