Marcar un área de la pantalla e imprimirla

Espero te encuentres bien de salud, mi pregunta es la siguiente: tengo una ventana tipo response, donde muestro una datawindows con un reporte, como vista preliminar, con sus reglas para ajustar margenes y todo eso, lo que deseo hacer es marcar una determinada área de esa pantalla en el momento que se muestra el reporte e imprimirlo, se que la función printscreen() te permite hacerlo, ¿pero cómo haría para que el usuario en tiempo de ejecion marque con el mouse el areaque que desea imprimir?.

2 Respuestas

Respuesta
1
Un poco complicado, pues la selección de un datawindow es posible en filas, y columnas, y en su concepción total, esto no implica hacer una selección propia de áreas tal y como lo harías con un editor de texto,
sin embargo lo que podrías hacer es utilizar el control,
RichTextEdit, en este control puedes crear selecciones tal y como lo harías en un editor de texto, simplemente se me ocurre que podrías generar tu reporte en un datastore, convertirlo a un fichero texto y luego insertarlo en el RichTextEdit y en este podrías permitir manejarlo como desees
Hola gracias por tu apoyo, pero realmente lo que deseo es imprimir un área de la pantalla como gráfico, y poder seleccionar un área así como lo hace un editor de imágenes, en el cual tu marcas el área con el mouse y se ve un área rectangular marcada.
Saludos
Marco
He estado investigando un poco sobre el tema, y no he encontrado algo que pueda hacer power builder que se le parezca, pues hasta el momento no me he encontrado con la necesidad de hacer lo que me comentas, sin embargo se me ocurre que la forma de simular un marcador en la pantalla, utilizando un datawindow, es por medio de la navegación del cursor sobre dicho datawindow, utilizando las características de columna y fila, y que cada vez que el cursor pase por sobre una coordenada por, y cambie el color de fondo de dicha coordenada, igualmente cuando esta sea des-seleccionada,
Como ultima instancia, lo más razonable, es utilizar un objeto OLE, OCX, o similar, el cual maneje esas propiedades, pues como te digo al principio, power builder no tiene controles que proporcionen las virtudes de lo que necesitas.
Respuesta
1
Una cosa que no me queda claro es para que quieres que el usuario imprima la ventana en vez del reporte que estas mostrando...
Vas a tener que determinar donde el usuario hace click y donde suelta el mouse para determninar el área a imprimir.
EL tema es que el usuario puede hacer click sobre cualquier objeto de la ventana y entonces es el objeto quien recibe el evento clicked() y no la ventana. Otro tema es que el clicked() se ejecuta cuando se suelta el botón del mouse.
Tendrías que ver los eventos clicked y mouseMove.
Otra cosa que podes hacer (se me ocurre) es pedirle que seleccione el área con 2 clicks. Capturar el primer click y pedirle que haga el otro lo cual determina 2 vértices de un rectángulo que es lo que necesitas.
Hola, gracias por tu respuesta, pero esa idea ya la tenia, lo que quería era que al momento de marcar el área se vea un rectángulo que marca el área así como en los porgamas que editan imágenes.
Saludos
Marco.
De nuevo me parece que el principal problema es que tienes que trabajar sobre varios controles diferentes.
Lo que podes hacer es dibujar un rectángulo una vez que la persona selecciona los dos puntos así puede ver lo que selecciono y cancelar si no le gusta.
Fíjate las funciones draw() y move()
Sino hay que ver si existe algún API que te ayude.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas