Pascal/Turbo Pascal - Problema con getimage

 
Vista:

Problema con getimage

Publicado por Roberto Garcia (128 intervenciones) el 14/02/2002 07:17:12
Hola

Estoy usando graficos en pascal pero estoy teniendo problemas en una parte del mismo usando getimage para capturar una parte de la pantalla, ya que cuando se llama al procedimiento donde se ubica la sentencia de getimage, la maquina queda totalmente paralizada, cuando hago ctrl+alt+spr aparece una pantalla azul de windows pero desfigurada no ve nada, pero se nota que es una pantalla azul, si hago otra vez lo mismo se ve que cambia de mensaje pero este no se ve porque la pantalla sigue borrosa. y tengo que reiniciar aprentado el boton del cpu.

lo que me extraña es que tengo dos procedimientos mas con getimage y si funcionan corectamente por ejemplo de la sig forma

procedure acerca;
var
p:pointer;
size:word;

begin
size:=imagesize(35,40,255,375); {valores reales, los que uso en el
progama}
getmem(p,size);
getimage(35,40,255,375,p^);
{sentencias}
putimage(35,40,p^);
freemem(p,size);
end;

otro es getimage(160,200,470,280,p^);

el que me da problemas es getimage(70,80,470,435,p^);

entonces pienso que se deba a el tamaño de la imagen, que pudiera ser muy grande pero no estoy seguro, si uso tpx para correr el programa pasa lo mismo pero la pantalla azul si se puede leer ya no sale borrosa, pero no me saca de ningun apuro solo dice

"Este programa a efectuado una poperacion no valida bla bla bla , presiona una tecla bla bla"

El area que intento guardar usa 4 areas grandes de colores verde, amarillo, rojo y azul pienso que pudiera deberse tambien a eso pero la ve
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:Problema con getimage

Publicado por Diego Romero (282 intervenciones) el 15/02/2002 04:43:39
Me temo que tienes razón, el area que intentas almacenar en el puntero es demasiado grande para Turbo Pascal, el cual limita en 64kb el tamaño del buffer de datos, la imagen en getimage(70,80,470,435,p^); me dan unos largos 200 Kb.
Hay dos soluciones para esto, usar una unidad que te gestione memoria extendia (los hay con codigo fuente incluido) o bién usar un compilador de 32 bits para DOS tal como FreePascal, el primer metodo nunca lo usé y FreePascal nunca experimenté con gráficos pero me ha hecho posible programar cosas muy grandes.
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:Problema con getimage

Publicado por Roberto (128 intervenciones) el 17/02/2002 06:45:02
Gracias, intentare alguna de las dos cosas

Roberto
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