Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: ThronerAXE en 19 Julio 2014, 00:59 am



Título: Borrar caracter por caracter con un boton
Publicado por: ThronerAXE en 19 Julio 2014, 00:59 am
Código
  1. void __fastcall TForm1::Button1Click(TObject *Sender)
  2. {
  3.        //Delete(int index, int count);
  4.        Edit1->Text= Edit1->Text.Delete(1,1);
  5. }

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).


Título: Re: Borrar caracter por caracter con un boton
Publicado por: engel lex en 19 Julio 2014, 01:14 am
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


Título: Re: Borrar caracter por caracter con un boton
Publicado por: ThronerAXE en 19 Julio 2014, 01:37 am
Es una aplicacion en C++


Título: Re: Borrar caracter por caracter con un boton
Publicado por: engel lex en 19 Julio 2014, 01:41 am
ok, ya entonces estamos claros que es c++ ahora... de que librería sacas el "text.delete" es una instancia a que?


Título: Re: Borrar caracter por caracter con un boton
Publicado por: ThronerAXE en 19 Julio 2014, 01:55 am
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.


Título: Re: Borrar caracter por caracter con un boton
Publicado por: engel lex en 19 Julio 2014, 02:05 am
wow! pero hay que sacartelo con cucharilla verdad? XD cuando publiques aclara que estás haciendo porque aquí no hay adivinos!

Código
  1. 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


Título: Re: Borrar caracter por caracter con un boton
Publicado por: ThronerAXE en 19 Julio 2014, 02:21 am
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


Título: Re: Borrar caracter por caracter con un boton
Publicado por: engel lex en 19 Julio 2014, 02:23 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


Título: Re: Borrar caracter por caracter con un boton
Publicado por: Eleкtro en 19 Julio 2014, 16:57 pm
( 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
  1. MyString.Delete(MyString.Length - 1, 1);

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

Saludos!