![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
IPictureDisp al portapapeles
Pues siguiendo la ayuda del componente que estoy probando veo que para guardar una imagen de lo que se muestra al portapapeles hace esto:
Código:
' Copy the diagram to the clipboard: ' here we wish to copy all items and the back picture. Clipboard.Clear Clipboard.SetData AddFlow1.ExportPicture(afAllItems, False, True) El problema es que eso es VB y que no se como pasarlo a C++builder ¿alguien sabria decirme como hacer eso? |
|
#2
|
||||
|
||||
|
He probado a hacer cosas como estas que pongo a continuacion pero nada me funcionó
![]() Código PHP:
|
|
#3
|
||||
|
||||
|
Sigo investigando como conseguirlo y he llegado a esto:
Código PHP:
Código PHP:
Código PHP:
He mirado con OleViewer y no veo el interface IPictureDisp por ningun sitio pero si veo IPicture ¿como puede ser que no aparezca entre las interfaces y builder lo reconozca? ¿que puedo estar haciendo mal para que no funcione mi codigo? |
|
#4
|
||||
|
||||
|
Amigo, si hago esto:
IPictureDisp *pIPD = AddFlow1->ExportPicture(afAllItems, true, true); Me da este error al compilar: [C++ Error] Main.cpp(731): E2034 Cannot convert 'IPictureDisp * *' to 'IPictureDisp *' La ayuda del componente no da mucha ayuda ya que casi todo el soporte lo da para VB y en algun que otro caso pone algun ejemplo en C++. Aqui los tres ejemplos que pone para ese metodo en VB: Export the diagram to a picture box: Código PHP:
Example 2 (VB) Código PHP:
Código PHP:
Traceando puedo ver que ExportPicture se declara asi: Código PHP:
Si entro con F7 llego aqui: Código PHP:
Última edición por aguml fecha: 01-02-2015 a las 18:46:31. |
|
#5
|
||||
|
||||
|
Por favor, que algun administrador elimine la respuesta anterior ya que el formato no está bien. Aqui lo pongo bien:
Amigos, si hago esto: Código PHP:
Código:
[C++ Error] Main.cpp(731): E2034 Cannot convert 'IPictureDisp * *' to 'IPictureDisp *' Example 1 (VB) Código:
' Export the diagram to a picture box: ' here, we copy only the selected items. Picture1.Picture = AddFlow1.ExportPicture(afSelectedItems, False, False) Código:
' Copy the diagram to the clipboard: ' here we wish to copy all items and the back picture. Clipboard.Clear Clipboard.SetData AddFlow1.ExportPicture(afAllItems, False, True) Código:
' Save the diagram in a file: ' here we don›t want to save the grid. Dim pic As IpictureDisp AddFlow1.ShowGrid = False Set pic = AddFlow1.ExportPicture(afAllItems, True, True) AddFlow1.ShowGrid = True SavePicture pic, "myfile.emf" Código PHP:
Código PHP:
|
|
#6
|
||||
|
||||
|
He hecho una prueba para intentar ver que pasa:
Código PHP:
1- Al IPictureDisp le tengo que hacer un cast mas que extraño al asignarlo para que no de error despues. 2- Tanto GetOlePicture como GetOlePicture devuelven void por lo que no se si fallan pero no dan excepcion ninguna. 3- Cuando uso GetOlePicture no veo que nada cambie en el IPictureDisp. 4- Cuando uso SetOlePicture puedo ver como cambia el valor de FGrafic en su interior. ¿como puede ser que solo con copiar la imagen de uno a otro y luego otra vez volver a hacer lo mismo ya no sea capaz de leer la imagen? Creo que GetOlePicture no hace lo que debe o que IPictureDisp no se inicializa como debe. ¿Alguien puede ayudarme? |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Portapapeles TImage | cmm07 | Varios | 5 | 06-02-2009 17:01:06 |
| Copiar al portapapeles | johurgi | Varios | 4 | 22-11-2006 19:47:48 |
| Monitorizar el portapapeles de windows | rsantosr | API de Windows | 3 | 26-09-2005 07:29:38 |
| Portapapeles... | Perio | Varios | 3 | 29-07-2005 16:27:41 |
| StringGrid -> Portapapeles | acertij022 | OOP | 3 | 17-10-2003 17:14:16 |
|