ListBox1->CopySelection(); c++ builder 6

Uso c++ 6 builder y quiero saber como puedo hacer para copiar un valor de una ListBox a la Clipboard.

1 respuesta

Respuesta
1
Bien:
Imagina que pones un PopupMenu para tu ListBox que tiene la opción Copiar y que luego pones otra opción en algún otro control, digamos un Label que sea Pegar, la cosa seria así:
En el código de Copiar:
{
try
{
portapapeles->SetTextBuf(ListBox1->Items->operator [](ListBox1->ItemIndex).c_str());
}
catch(...)
{
MessageDlg("Debe seleccionar algun item en el ListBox", mtError, TMsgDlgButtons() << mbOK, 0) ;
}
}
Entonces en el codigo de la opcion Pegar:
{
char *buffer = new char[1000];
portapapeles->GetTextBuf(buffer, 1000);
Label1->Caption = buffer;
}
Lo he probado y ni pisca de error, si no te sale me dices tu email y te mando un ejemplo.
Responde pronto.
Puedes seguir este procedimiento...
Incluyes la cabecera
#include <Clipbrd.hpp>
Luego creas una instancia de un objeto de tipo TClipboard como atributo publico o privado, como desees de tu clase,
TClipboard *portapapeles;
Lo instancias en algun lugar, recomiendo que sea en el evento OnCreate del formulario,
portapapeles = new TClipboard;
portapapeles = Clipboard(); // esto retorna una instancia del Clipboard mas reciente que tenga Windows
luego para copiar el elemento (AnsiString) que selecciones en el ListBox puedes hacer esto,
portapapeles->SetTextBuf(ListBox1->Items->operator [](ListBox1->ItemIndex).c_str());
Esto puede generar una excepción de tipo List out of bounds(-1) que significa que NO HAY NADA SELECCIONADO en el ListBox.
Por ultimo para "pegar" lo que tienes copiado puedes usar el Ctrl+V tradicional de Windows o simplemente:
char *buffer = new char[1000];
Portapapeles->GetTextBuf(buffer, 1000); //donde el 1000 es la cantidad máxima de caracteres que podrás almacenar
Espero que te sirva de mucho. Cualquier duda preguntame sin pena.
Hola,, muchas gracias por la respuesta pero hay algo que no me queda claro.
Intente hacerlo como tu lo dices y al intentar copiar y después pegar y no "pega" nada.
Hola,, perdona la demora.. mira,,, en el programa que intento hacer hay una listbox y tengo un menu en ello. El menu tiene el comando copiar. Entonces lo que yo quiero hacer es:
1.-Seleccionar un item de la listbox.
2.-Abrir ese menu.
3.-Seleccionar ese comando(copiar).
4.-Y pegar en cualquier otro programa(ya sea wordpad, word, etc).
Intente con la respuesta que acabas de dar y manda un error diciendo que no hay ningún item seleccionado(siendo que si estaba seleccionado).
Puedes mandarme un ejemplo con el código fuente de este a mi mail por favor,
mi mail es:
[email protected]
Gracias
Ya te envíe el código, espero que te resulte útil, pues a mi no me da errores.
Hola,, muchas gracias, te pasaste. Con el código que me mandaste puede hacer lo que quería.
Ahora si voy a poder terminar mi pequeño programita jej. muchas gracias!
Saludos
Slashytu

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas