La Web del Programador: Comunidad de Programadores
 
    Pregunta:  4225 - COMO PUEDO GRABAR EL CONTENIDO DE UNA VENTANA
Autor:  Irancho Mendez Perez
Como puedo poner una ventana y despues quitarla reponiendo lo que estaba atras de esa ventana, no de toda la pantalla, sino solo de una ventana

  Respuesta:  edwin payan
uses crt , go32;
type
save_screen = array [0..25*80*2-1] of byte;

procedure GetScreen (var Getpantalla:save_screen);
Begin
dosmemget($B800, 0,Getpantalla,25*80*2);
End;

procedure PutScreen (var Putpantalla:save_screen);
Begin
dosmemput($B800, 0, Putpantalla,25*80*2);
End;

var
pantalla1:savescreen;
begin
textatt:=15+0*16;
clrscr;
{ejemplo}
getscreen(Pantalla1)
texatt;=15+1*16;
write(´hola´);
readln;
putscreen(Pantalla1)
{termina el ejemplo}:

readln;
end;
{ojo, compilado en freepascal}

  Respuesta:  carlos iturralde
a la pregunta le hace falta especificar si el modo de video es grafico o texto, supondre, para la respuesta, que es modo texto:
1._ debes definir un puntero
2._ creas memoria suficiente (con el comando new) para almacenar la ventana, el tamaño estara dado por: (x2-x1)*(y2-y1)*2
3._ grabas el contenido de la region con la funcion gettext(x1,y1,x2,y2,puntero), si no es la funcion sera una muy parecida con los mismos parametros
4._ ahora puedes "ensuciar" la parte de la pantalla copiada
para reponerla:
1._ puttext(x1,x2,puntero)
2._ una vez terminado el trabajo "liberas" la memoria con dispose(puntero) y bingo...
buenas compilaciones ...

  Respuesta:  raul roldan
en pascal muy facil utiliza imagesize para guardar las dimenciones rectangulares(solo rectangulares)del area dende vas a poner tu ventana, la guardas con getimage,para esto debes consultar algo en un liobro o en la misma biblioteca de temas que hay aqi,ya echo esto abres tu ventana y as lo que vas a hacer y despues abres la ventana maxima permitida por la resolucion actual(comunmente 640*400 si es uqe utilizas initgraph sin algun controlador de mas)y por ultimo utilizas la funcion getimage(posicion inicial horizontal, " vertical,variable de tipo bitmap(osea pointer)porque tu sabras que en la memoria la utiliza linealmente y con numeros hexa,y mode de bit a ponerCopyput
XorPut
OrPut
AndPut
NotPut);
porfavor escribeme....