| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
code1980 Invitado
|
Publicado: Mar 08 Mar, 2005 6:18 pm Asunto: Eliminar palabra de un Memo |
|
|
Hola a todos,
Tengo en un Form un Edit y un Memo. Cuando en el Edit pulso la tecla espacio se me añade la palabra que acabo de escribir en el Memo de la siguiente manera:
AnsiString texto = Edit1->Text;
Memo1->Text = Memo1->Text + texto;
El problema que tengo es que quiero ahora hacer la operación inversa, cuando el usuario pulsa la tecla retroceso que se borre la última palabra que hay en el memo, pero no sé cómo hacer esa operación en el memo.
Alguien me puede ayudar?
Gracias. |
|
| Volver arriba |
|
 |
nuno Cmdr

Registrado: 10 Feb 2003Mensajes: 143Ubicación: Córdoba - Argentina
|
Publicado: Mar 08 Mar, 2005 7:10 pm Asunto: |
|
|
Prueba con esto
Memo1->Text.TrimRight(); // para que saque los blancos de la derecha
char *cadena=new char[strlen(Memo1->Text.c_str())+1]; // paso a char para poder recorrer los caracteres uno por uno
strcpy(cadena,Memo1->Text.c_str()); // copio el contenido del memo a cadena
unsigned int bandera=0; // bandera que indica donde esta el espacio anterior a la ultima palabra
unsigned int i;
for(i=0;i<strlen(cadena);i++)
{
if(cadena[i]==' ')
bandera=i;
}
if(bandera!=0) // si hay mas de una palabra
{
Memo1->Clear();
for(i=0;i<bandera;i++)
Memo1->Text=Memo1->Text+AnsiString(cadena[i]);
}
else
Memo1->Lines->Delete(0);
y si no utiliza un ListBox en ves de un Memo
y la operacion quedaria asi
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListBox1->Items->Delete(ListBox1->ItemIndex);
}
//---------------------------------------------------------------------------
Saludos!!! |
|
| Volver arriba |
|
 |
|