[ Foro de Pascal ]
Hola Foro,
Necesito saber como hacer una funcion de ester tipo savescreen(1,1,24,80) y su antonimo restorescreen(1,1,24,80)
Esa seria la idea, estube buscando y buceando por google y yahoo, pero todo lo que he vsito no me funciona en FreePAscal, solo vale para Turbo Pascal.
Yo uso la FreePascal en Linux...
Alguien podria darme alguna pista ?
Es que el manejo de la memoria es distinta en cada sistema operativo. En MsDos (Turbo Pascal), se podría hacer accediendo a la memoria de pantalla. En Linux, como en cualquier sistema operativo moderno y multitarea, no puedes acceder libremente a las posiciones de memoria que te apetezca.
La alternativa "de alto nivel", que es la unidad CRT, no incluye opciones para leer posiciones de pantalla:
http://www.freepascal.org/docs-html-3.0.0/rtl/crt/index-5.html
La única forma es crear tus propias órdenes de escritura en pantalla, para poder memorizar en un array lo que envías a cada posición de ésta.
Creo que se esta complicando un poco el tema, mi pregunta es entonces como funciona o que tecnico utiliza el Free Vision?
No sé como funciona internamente Free Vision. El código fuente está disponible, así que podrías comprobarlo tú mismo. Es de esperar que, ya que intercepta todas las salidas en pantalla, pueda memorizar lo que hay en pantalla, para poder restaurarlo si fuera necesario (por ejemplo, si se muestra una ventana que tape algo de texto y finalmente se elimina esa ventana, volviendo a dejar visible el texto).
Gracias nacho me pondre a investigar...
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)