Borrar caracter por caracter con un boton

Iniciado por ThronerAXE, 19 Julio 2014, 00:59 AM

0 Miembros y 2 Visitantes están viendo este tema.

ThronerAXE

Código (cpp) [Seleccionar]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //Delete(int index, int count);
        Edit1->Text= Edit1->Text.Delete(1,1);
}


Lo que estoy intentando hacer es que si yo ingreso alguna cadena en el Edit1 y cada vez que oprima el boton me borre el ultimo caracter ingresado, pero ese codigo me borra el primer codigo(osea lo hace al reves).

engel lex

será que eso es vc++? si dices el lenguaje en que lo estás haciendo es más facil ayudar... y más si lo colocas en el subforo correcto en el caso de ser .net, c++, etc
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ThronerAXE


engel lex

ok, ya entonces estamos claros que es c++ ahora... de que librería sacas el "text.delete" es una instancia a que?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ThronerAXE

#4
No es una libreria, son componentes de la aplicacion, el compilador es Builder 6.
Es una aplicacion y no es en consola, el Edit es una barra donde puedes escribir una cadena de caracteres, y ademas posee algunas propiedades para manipular lo que hay adentro del Edit, entre ellas Delete. El boton tambien es un componente y quiero que cuando ocurra el evento "OnClick" osea cuando yo le de click, me borre el ultima caracter que ingrese, es la misma funcion que hace un delete de un teclado de computador comun y corriente. Pero con ese codigo lo que hago es que me borre la primera letra que esta en el Edit.

EDITADO: perdon creo que si hay una libreria que es vcl.h estoy documentando un poco mientras tanto para ver que funciones trae.

engel lex

wow! pero hay que sacartelo con cucharilla verdad? XD cuando publiques aclara que estás haciendo porque aquí no hay adivinos!

Código (cpp) [Seleccionar]
Delete(int Index, int Count);

esa es la función que estás usando los 2 parámetros son posición y conteo...


en muchas de estas funciones una posición negativa cuenta de atrás hacia delante, en su defecto le pasas el largo de la cadena -1
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

ThronerAXE

Pues lo primero que pense fue colocarle -1 pero con esos valores no ocurre nada. Como no conocia esa propiedad comence a darle valores arbitrariamente para intentar comprender el comportamiento del Delete(int Index, int Count); pero con valores negativos no ocurria nada, con (0,0) (1,0) y (0,1) tampoco ocurria nada, la unica forma para que borrará esque los valores sean mayores o iguales a 1, pero el problema es que me borra desde el principio, y lo que yo quiero es que me borre el ultimo caracter:-(

PD: el Edit no es una variable, es solo un componente donde puedes escribir una cadena de caracteres pero no quiere decir que la guarde, simplemente la escribo y queda alli visible en el Edit, es por eso que no puedo pasarle la cantidad de caracteres que tiene la cadena

engel lex

Cita de: engel lex en 19 Julio 2014, 02:05 AM
en muchas de estas funciones una posición negativa cuenta de atrás hacia delante, en su defecto le pasas el largo de la cadena -1
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#8
( No manejo C++, quizás la sintaxis o algún método sea erroneo, solo quiero que capten la idea... )

@ThronerAXE
Creo que le diste demasiadas vueltas a algo muy sencillo, o es que quizás estoy obviando algún detalle... pero estos deberían ser los pasos a seguir:

· Obtener la longitud de la cadena.
· Restarle un "1" a la longitud de la cadena.
· Enviarle la nueva longitud al parámetro Index del método Delete.

Un Remove:
Código (cpp) [Seleccionar]
MyString.Delete(MyString.Length - 1, 1);

O también un Substring:
Código (cpp) [Seleccionar]
MyString = MyString.substr(0, MyString.Length - 1);

Saludos!