FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Convertir un form junto con sus controles en una imagen
Hola me preguntaba si es posible convertir una form junto con los controles que en ella se encuentran: TLabel, TEdit, ... etc.. en una imagen, de manera que en esa imagen tengamos la "foto" de la Form.
¿Se puede generalizar para cualquier control? Es decir, se puede tener la imagen (Bitmap ó similar) de un control cualquiera. 1 Saludo. |
#2
|
||||
|
||||
Que tal algo así:
// Saludos |
#3
|
|||
|
|||
Hola roman, ante todo gracias por la idea que me has proporcionado, me ha abierto un camino nuevo sobre el que trabajar, por desgracia al estar en Delphi y yo usar Builder C++, hay cosas que no sirven. Voy a abrir otro hilo, mostrando una adaptación que he hecho de tu código para la creación de una aplicación que lo que hace es copiar la imagen de una form en un bitmap y pegarla como imagen en un nueva form.
Si tb le das al Builder C++ y me puedes ayudar sería genial. 1 Saludo. |
#4
|
|||
|
|||
Ya lo he conseguido. Aqui dejo el código que permite obtener una imagen de una form y pegarla en otra form dentro de un control TImage:
void __fastcall TForm1::Button1Click(TObject *Sender) { //Obtenemos la imagen de la Form1 Graphics::TBitmap *BitmpPrueba = Form1->GetFormImage(); //Pegamos el Bitmap en una nueva form a través del Clipboard Clipboard()->Assign(BitmpPrueba); Form2->ImgForm1->Picture->Assign(Clipboard()); //La mostramos Form2->Show(); delete BitmpPrueba; } Todo esto lo hace al pulsar un botón que hay en la Form1, en la Form2 he colocado un TImage que ocupa todo el área de la Form, cuando pulsas el botón en la Form1, aparece la Form2 igual, en apariencia que la Form1, pero sus controles no se pueden usar, ya que son una foto. De todas maneras sigue sin servirme para imprimir mi Expediente, porque misteriosamente, el texto d los RichEdit no aparece, si el del resto de controles... a pesar de que se supone que es una captura de la imagen de la form. |
#5
|
||||
|
||||
Cita:
// Saludos |
#6
|
|||
|
|||
Hola roman, debe de ser porque yo estoy usando el Clipboard, y tu usas el Handle de Windows... ¡Tiene que ser eso! .. uff, el problema es que yo no sé usar el Handle.. y no encuentro la método equivalente a BitBlt(...) para Builder. Asi como el método equivalente a GetWindowDC
¿Algún buen samaritano que sepa que método en Builder realiza la misma operación que la función BitBlt() y que GetWindowDC en Delphi? BiBlt() al parecer copia en el Canvas.Handle del Bitmap el contenido del control cuyo DC se le pasa com parámetro, ¿Que obtiene exactamente GetWindowDC?, es decir que significa DC. No entiendo muy bien la filosofia del Handle con las imágenes.. mmm..se que estoy cerca, a ver si me pueden ayudar a despegar |
#7
|
||||
|
||||
BitBly y GetWindowDC no son funciones de Delphi, sino de la AI de Windows, de manera que deben servir igual en BC. GetWindowDC obtiene un Dispositivo de Contexto, que es donde las funciones de Windows pueden dibujar. A diferencia de GetDC, GetWindowDC obtiene un dispositivo de contexto para toda la ventana incluyendo las barras de título y de desplazamiento. GetDC sólo sirve para el área cliente.
// Saludos |
#8
|
|||
|
|||
Hola roman, ¡Por fin lo he conseguido! Efectivamente, el código no distaba mucho de lo que tu me comentabas, las funciones
BitBlt(...), GetWindowDC(...) y ReleaseDC(...) funcionan igual para el Builder. Así que por fin he podido obtener la imagen del Expediente completa incluyendo el dichoso texto de los controles RichEdit. La he imprimido y sale todo, todito, todo Me falta hacer una serie de ajustes y poco más..uff por fin puedo seguir trabajando con el proyecto. ¡¡Muchiiiisiiiimas Gracias roman!! Si aqui se pudiera votar las respuestas te pondría un 10 |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Borrar controles de mi form. | Bill | Varios | 1 | 04-11-2006 01:25:35 |
convertir un form en un frame | ercrizeporta | Varios | 6 | 04-07-2005 21:52:58 |
Convertir archivos de imagen. | alfredosg19 | Varios | 4 | 15-06-2005 10:26:44 |
convertir una imagen CMYK a RGB | User_baja1 | Gráficos | 0 | 23-03-2005 17:03:03 |
Contar controles en un form | worf_argentino | Varios | 2 | 24-01-2005 05:56:36 |
|