![]() |
Vaciar portapales
Hola!
Cómo puedo vaciar el contenido del portapales? Tengo que usarlo para copiar y pegar parte de un texto de un RichEdit a otro pero claro, cuando acaba la operación el portapapeles está lleno de "basura". Por cierto, habría otra forma de pegar parte del texto que contenga un RichEdit a otro sin utilizar el portapapeles o hacer algo para que si el usuario ya tenía algo en él no se pierda? No sé si me explico, pero si el usuario de mi aplicación había copiado algo y lo tiene en el portapapeles cuando el programa realice esa operación el portapapeles se llenará con otra cosa... ... creo que lo he liado más :P Bueno, espero que podais ayudarme. Un Saludo! |
Disculpa, he cometido un error en la respuesta anterior, por eso la modifico:
Clipboard.Clear; Cita:
Saludos! |
Vaya, era algo obvio... ... lo siento ^^U
Sobre la otra pregunta sabes que podría hacer para no sobreescribir el contenido del portapapeles? |
Puedes evitar el usar el ClipBoard usando Stream. Aquí te muestro como copiar del RichEdit3 al RichEdit1.
Lo de ms.position := 0 puede que no sea necesario. Procedure Copia_REdit ; var ms : TMemoryStream ; Begin Try ms := TMemoryStream.Create ; RichEdit3.Lines.SaveToStream ( ms ) ; ms.position := 0 ; RichEdit1.Lines.LoadFromStream( ms ); Finally ms.free ; end ; end ; No recuerdo si así se mantiene el tipo de letra, color, etc. Espero que te sea útil. Ramón.;) |
El truco 214 de TRUCOMANIA es "Capturar cambios en el contenido del portapaeles"
Te lo reproduzco integro por si te puede ayudar. Te interesa sobre todo la parte del procedimiento WMDrawClipboard que se ejecuta cuando hay un cambio en el contenido del portapapeles Código:
Tal como hacen programas como el GetRight, por ejemplo, que monitorizan el portapapeles reaccionando cuando |
Ahora lo pruebo todo.
Gracias! |
La franja horaria es GMT +2. Ahora son las 10:26:22. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi