Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿ Como eliminar el último caracter de un Edit ? (https://www.clubdelphi.com/foros/showthread.php?t=84635)

lpitu21 15-11-2013 01:34:19

¿ Como eliminar el último caracter de un Edit ?
 
ya hice una calculador en delphi como la que viene por defecto en windows. pero me falta un pequeño detalle y es que quiero eliminar el ultimo numero marcado, ya busque sobre cadenas pero no encontre mucho.
ej: en el edit marque 158 por error y borro el 8 para marcar el 9 y quedaria 159.

ecfisa 15-11-2013 02:02:07

Hola lpitu21 y bienvenido a Club Delphi :)

Como es costumbre, te invitamos a que leas nuestra guía de estilo.

Das muy poca información, ¿ Desde donde debe borrarse el último carácter ? Seguramente no sea de la propiedad Text del TEdit mientras lo editas, por que lo hace la tecla backspace.

Si el carácter a borrar está en una variable de tipo string, podes hacer:
Código Delphi [-]
var
  VarStr : string;
...
   SetLength(VarStr, Length(VarStr)-1);
   // ó:
   Delete(VarStr, Length(VarStr), 1);
  // ó:
  VarStr := Copy(VarStr, 1, Length(VarStr)-1);
  // o también:
  SetString(VarStr, PChar(VarStr), Length(VarStr)-1);
  //...
Pero como te dije antes, para darte una respuesta concreta vas a tener que dar mas información...

Saludos :)

lpitu21 15-11-2013 07:43:44

gracias no habia leido las normas del sitio o la guia.. jajaja cometi el error del titulo jajaja.
quiero la misma funcion de la tecla backspace pero en un boton, se que tal vez es innecesario y que es mucho lio si el backspace ya lo hace y todo eso pero lo que quiero es aprender y conocer nuevas funciones.. otra cosa podes desavilitar el boton salir o la famosa 'x' o editarla?? como en visualfox??
gracias por tomarte tu tiempo y responder.. espero que esta vez me halla echo entender del todo.

ecfisa 15-11-2013 15:29:11

Cita:

Empezado por lpitu21 (Mensaje 469637)
...quiero la misma funcion de la tecla backspace pero en un botón...

Hola lpitu21.

Ejemplo:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  with Edit1 do
  begin
    SelStart := Length(Text);
    Perform(WM_CHAR, VK_BACK, 0)
  end;
end;

Saludos :)

Edito: Cambié el título original "me ayudan?? soy nuevo" por uno más significativo para facilitar las búsquedas.

lpitu21 15-11-2013 16:33:28

arigatoó..!
 
Sos el master of delphi!!! jajaja gracias pro tu ayuda y era exactamente lo que quería ya termine y maldita calculador jajaja si no te es de mucha molestia me gustaría mas o menos que me expliques la funciones de esos comandos para ver si los puedo usar para otra funciones.. estoy en clases de delphi pero mi docente no es un buen docente que digamos.. sus conocimientos son básicos.. y gracias nuevamente.. (Y).

ecfisa 15-11-2013 17:46:18

Hola lpitu21.

La mejor forma que se me ocurre para explicarlo es comentando el código, para lo cuál voy a expandirlo un poco:
Código Delphi [-]
  Edit1.SelStart := Length(Edit1.Text); // Seleccionar el último caracter del texto
  SendMessage(Edit1.Handle, WM_CHAR, VK_BACK, 0); // Enviar al Edit un mensaje con el caracter backspace
Si deseas ampliar:Sobre la propiedad SelStart de TEdit podes encontrar información en la propia ayuda de Delphi.

Saludos :)

nlsgarcia 15-11-2013 21:11:47

lpitu21,

Cita:

Empezado por lpitu21
...expliques la funciones de esos comandos...

Revisa esta información como complemento de lo indicado en el Msg #6:



Cita:

Calling a Control's Message Handler Directly : http://docwiki.embarcadero.com/RADSt...ndler_Directly
Espero sea útil :)

Nelson.

lpitu21 16-11-2013 03:19:15

gracias a todos!!! me fueron de mucha ayuda. ^\||/


La franja horaria es GMT +2. Ahora son las 07:58:07.

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