Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problemillas con el Memo... (https://www.clubdelphi.com/foros/showthread.php?t=37710)

VaMPiRu 21-11-2006 01:55:38

Problemillas con el Memo...
 
Bueno, al apretar una botón quiero que se haga la misma función que el Backspace sobre un memo, es decir borrar el último caracter, hasta aquí bien.

El problema viene cuando el memo tiene un "Enter" o salto de línea. Cuando hago dicho salto de línea lo hago con:

Código Delphi [-]
    if (Key=13) then
    begin
      memUsuario.Text:=memUsuario.Text+#13+#10;
    end;

Añado lo del carry y el salto. Ahora no entiendo porqeúe haciendo el paso inverso no me "sale bien", me aparece un símbolo rarito en el Memo, es como si borrara el salto de línea pero el retorno de carro no.

Ésto es lo que hago al borrar:

Código Delphi [-]
if (memUsuario.Lines.Strings[length(memUsuario.Text)]=#13+#10) then
      begin
        showmessage('asd');
        memUsuario.Text:=Copy(memUsuario.Text,0,length(memUsuario.Text)-2);//Si lo encuentra, pues que borre los 2 últimos
      end
      else
      begin
        memUsuario.Text:=Copy(memUsuario.Text,0,length(memUsuario.Text)-1);//Sino va borrando el último, ya me va bien así
      end;

No entra al if porque el mensaje feo no me sale :(
A ver si alguien me ilumina =)

DarKraZY 21-11-2006 10:36:39

¿Has probado la función "Trim"? Esta sirve para eliminar espacios y saltos de línea al principio o final de una cadena.

VaMPiRu 21-11-2006 11:39:35

Ahora lo pruebo, de todas formas creo que el problema está en la comprobación del 'if' porque nisiquiera entra cuando debería entrar (es decir cuando voy a borrar un salto de línea).

seoane 21-11-2006 11:46:07

Exactamente que quieres comprobar en este if:
Código Delphi [-]
if (memUsuario.Lines.Strings[length(memUsuario.Text)]=#13+#10) then
Esta mezclando la lineas con la longitud del texto completo. :confused: Lo raro es que no te de un error.

Si quieres comparar los dos últimos caracteres del texto usa algo como esto:
Código Delphi [-]
if (Copy(memUsuario.Text,length(memUsuario.Text)-1,2)=#13+#10) then

VaMPiRu 21-11-2006 12:03:12

Gracias, seoane!!!!!! Ya me funciona de pu*a madre jojojo :)


La franja horaria es GMT +2. Ahora son las 12:10:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi