QuickBasic - impresion de graficas a impresora en quickbasic

 
Vista:
sin imagen de perfil

impresion de graficas a impresora en quickbasic

Publicado por Patricio Martin G. (8 intervenciones) el 29/12/2008 21:19:32
hola amigos , el asunto es que me atravi a pasar un programa que hice algun tiempo en gwbasic a quickbasic, y me funciona perfectamente bien.(salvo algunos pequenos ajustes nada mas ) .Mi problema es que tanto en gwbasic como en quickbasic no he podido encontrar la manera de mandar (imprimir) a la impresora unas series de graficas del programa (LINE(XI,Y1)-(X2,Y2) Y PSET(X,Y) saben algun metodo , hay algun programa en DOS que me pueda ayudar. existe alguna sentencia directa ?
otra duda:
Necesito crear ventanas abrirlas y cerrarlas para mayor presentacion solo necesito tener una idea de la sentencia basica que crea la ventana. veo algunas en el modo grafico como put y get pero el problema es que creo que las ventanas deben de funcionar en el modo texto . si tienen alguna rutina plis envienmela o si no ,solo necesito una idea donde empezar.
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:impresion de graficas a impresora en quickbasi

Publicado por Antoni Masana (13 intervenciones) el 02/01/2009 13:19:53
Para crear un ventana de texto se debe guardar el area de la pantalla donde se va a escribir.

Esta funcion guarda desde la posicion 1,1 hasta la 25,80

FOR a%=0 TO 4000
def seg=%HB800 : Ventana$=Ventana$ + CHR$(PEEK(a%))
NEXT

Para restaurar:

FOR a%=0 TO 4000
def seg=&HB800 : POKE(a%, ASC(MID$(Ventana$,a%,1)) )
NEXT

Para guardar solo el area a tratar es un poquito mas complejo. Tengo la funcion pero debo buscarla porque no la tengo a mano.

Saludos
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
sin imagen de perfil

Gracias por tu respuesta Antoni M.

Publicado por patricio martin g. (8 intervenciones) el 02/01/2009 17:44:10
Hola Antoni Masana

Antes que nada te agradezco tu respuesta. voy a investigar la rutina que me das para ver si llego a mi objetivo. y se pudieras mandarme la funcion pues que bien.

A cerca de la impresion de graficas que sabes al respecto. he buscado en manuales y abordan muy poco de impresion de texto y nulo de graficas. tendras alguna opinion.

saludos.
gracias.

Patricio Martin G.
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:Gracias por tu respuesta Antoni M.

Publicado por Antoni Masana (13 intervenciones) el 06/01/2009 09:20:30
Echale un vistazo a este programa. No es la original pero va bien.
--------------------------------------------------------

DECLARE SUB SaveScreen (a%, b%, c%, d%, Pant$)
DECLARE SUB RestScreen (a%, b%, c%, d%, Pant$)

CLS
COLOR 15, 5
FOR a% = 1 TO 24
FOR b% = 1 TO 80
LOCATE a%, b%: PRINT "@";
NEXT
NEXT

SaveScreen 10, 20, 18, 40, Pant$: SLEEP 2

COLOR 14, 3
FOR a% = 1 TO 24
FOR b% = 1 TO 80
LOCATE a%, b%: PRINT "ú";
NEXT
NEXT

SLEEP 2: RestScreen 10, 20, 18, 40, Pant$:
SLEEP 3
END

SUB RestScreen (Ls%, Ci%, Li%, Cd%, Pant$)
Lin.Sup.% = (Ls% - 1) * 160
Lin.Inf.% = (Li% - 1) * 160

Col.Der.% = (Cd% - 1) * 2
Col.Izq.% = (Ci% - 1) * 2

Num% = 0

FOR a% = Lin.Sup.% TO Lin.Inf.% STEP 160
FOR b% = Col.Izq.% TO Col.Der.% + 1
DEF SEG = &HB800
Num% = Num% + 1
POKE a% + b%, ASC(MID$(Pant$, Num%, 1))
NEXT
NEXT
END SUB

SUB SaveScreen (Ls%, Ci%, Li%, Cd%, Pant$)
Lin.Sup.% = (Ls% - 1) * 160
Lin.Inf.% = (Li% - 1) * 160

Col.Der.% = (Cd% - 1) * 2
Col.Izq.% = (Ci% - 1) * 2

FOR a% = Lin.Sup.% TO Lin.Inf.% STEP 160
FOR b% = Col.Izq.% TO Col.Der.% + 1
DEF SEG = &HB800
Pant$ = Pant$ + CHR$(PEEK(a% + b%))
NEXT
NEXT
END SUB
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
sin imagen de perfil

ok.con esto tengo.Gracias A.M

Publicado por patricio martin garrido (8 intervenciones) el 10/01/2009 03:39:36
ok. con esto tengo para llegar a lo que estoy buscando. te lo agradezco.y suerte Antoni.
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:impresion de graficas a impresora en quickbasi

Publicado por Antoni Gual (4 intervenciones) el 07/02/2009 13:31:41
Patricio:
Creo que todavía nadie dió respuesta a tu problema con la impresión de gráficos. Acabo de encontrar este foro hoy, espero que no sea demasiado tarde.

QBasic no tiene nada que te permita imprimir gráficos, ya que en su momento (1988!) utilizaba una de las prestaciones del DOS. El DOS venia con una TSR llamada GRAPHICS, que se cargaba el arranque y que permitia usar la tecla de imprimir pantalla para sacar por una impresora compatible con la Proprinter de IBM los gráficos en cualquer modo de pantalla. Como no seas un coleccionista de equipo antiguo no creo que puedas encontrar hoy una impresora adecuada en buen estado.

Si puedes apoyarte en windows puedes utilizar alguna función escrita en QB para copiar la pantalla a un fichero BMP estandard y luego utilizar un comando shell para llamar al MSPaint y realizar la impresión.
Mis funciones para copiar pantallas a BMP están en:
http://www.network54.com/Forum/178387/thread/1133297837/last-1191533333/ProgramList+Antoni
Tienes una función para SCREEN 12 y otra para SCREEN13

Para llamar a mspaint utiliza
SHELL "start mspaint /P miimagen.bmp"

Un saludo
Antoni Gual
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