Lo que yo creo que tu quieres hacer se puede hacer pero solo me lo se en modo grafico.
Y se trata de asignar una parte de la pantalla (la ventana que quieras guardar) en un puntero, para por ejemplo, dibujar la ventana, guardar la apariencia original, escribir algo sobre ella y luego volver a colocar la original.
eso se logra con getimage y putimage, pero repito solo trabajando en modo grafico un ejemplo rapido
Program Prueba
uses crt, graph;
var
p:pointer {Puntero donde se guarda la imagen}
size:word; {Tamaño de la imagen}
{Bla, bla, bla}
begin
{Se inicializan los graficos}
...
{Fin de inicializacion}
Size:=imagesize(10,10,100,100); {Se obtiene el tamaño de la imagen}
getmem(p,size); {Se guarda memoria para la imagen}
getimage(10,10,100,100,p^); {Se guarda la imagen en p}
cleardevice; {se limpia la pantalla}
putimage(100,100,p^) {Se coloca la imagen en la posicion 100,100}
end.
Esto es solo para modo grafico y tiene sus incovenientes, como que no puedes gardar partes de la pantalla muy grandes, si quieres mas informacion usa el ejemplo de getimage que trae pascal, espero sea algo parecido a lo que tratas de hacer