2010-04-21 10 views
6

Por ejemplo, ¿qué hizo Wordpad cuando presioné "Ctrl + C"? Coloca muchos formatos diferentes en el portapapeles. Así que el Bloc de notas puede obtener el texto sin ningún color o fuente ... etc., y aún puede conservar el formato original cuando lo pega en otra ventana de Wordpad.¿Cómo colocar múltiples formatos en el portapapeles?

MSDN dijo que debería llamar a SetClipboardData varias veces. Pero no funciona en absoluto.

+4

¿Por qué no publicar algo del código que "no funciona para nada"? –

+2

Sí, y también cuéntanos la forma en que falló (programa bloqueado, no hizo nada, produjo resultados diferentes a los que esperabas, etc.). –

Respuesta

10

Puede usar Delphi's TClipboard.SetAsHandle para poner datos en el portapapeles en tantos formatos como desee. Abra primero el portapapeles o, de lo contrario, cada llamada al SetAsHandle golpeará cualquier otra cosa que exista, incluso en otros formatos.

Clipboard.Open; 
Clipboard.SetAsHandle(cf_Text, x); 
Clipboard.SetAsHandle(cf_Bitmap, y); 
Clipboard.Close; 
+0

Gracias Rob, he solucionado este problema como sugeriste. Estoy usando el método SetBuffer de TClipboard, el problema es que abro/cierro el portapapeles para cada llamada de SetBuffer. – trudger

3

Todos los programas modernos usan OleSetClipboard para publicar formatos y datos del portapapeles. Comience reading here.

+0

quizás la mayoría, pero desde luego no todas, ya que ninguna aplicación en particular que haya investigado ha utilizado esta interfaz. – Rick

Cuestiones relacionadas