Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-05-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Como eliminar el Retorno de Carro al final de un TString

Hola compañeros del foro !

Estoy trabajando con un TRichEdit manejando los TString's correspondientes con la propiedad TRichEdit.Lines, añadiendo y quitando.

Si tengo una línea terminada con su correspondiente 'Retorno de Carro' y 'Avance de Línea' (#13#10), por ejemplo en la línea 10, y elimino todas las líneas posteriores con RichEdit.Lines.Delete[...], lo que pretendo es que NO me deje la línea 10 con dicho retorno de carro, con lo que el usuario se podría posicionar con el cursor al principio de la línea 11.

Lo que precisamente me gustaría es dejar el texto de la línea 10 completo pero sin el #13#10 final.

Esto lo preciso porque la línea 10 tiene un formato determinado en el RichEdit, y la línea 11 tiene otro formato diferente. Resulta que si elimino las líneas que quiero (en este ejemplo, de la 11 en adelante ...), y dejo el cursor al final del texto del RichEdit, el cursor aparece al principio de la línea 11 con el formato que tenía la línea 11. Si el usuario sigue introduciendo texto ahí, lo hará con el formato que tenía la línea 11. Y lo que yo quiero hacer es que quede al final de la línea 10 con el formato de la línea 10.

Espero haberme explicado bien.

Saludos a todos
__________________
Piensa siempre en positivo !
Responder Con Cita
  #2  
Antiguo 14-05-2006
maravert maravert is offline
Miembro
 
Registrado: jul 2004
Ubicación: Xalapa, México
Posts: 158
Poder: 20
maravert Va por buen camino
pues

Creo que sería pratico si nos mandas el codigo para poder ayudarte.

Saludos
Responder Con Cita
  #3  
Antiguo 14-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
La solución me parece que es seleccionar por código el posible texto que haya despues de la linea 10 y asignar las propiedades de SelAttributes a las que tenga la línea 10.

Si eliminas el retorno de carro, en realidad no estas borrando ese "último caracter con formato distinto" así que estas en las mismas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 14-05-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
El código no te dirá mucho
Código Delphi [-]
for I := Editor.Lines.Count - 1 downto Aux_Pos do
  Editor.Lines.Delete(I);
Es un tema de comprobación en tiempo de ejecución. Puedes comprobar lo que expliqué arriba. Si borras líneas del Editor.Lines, la última que se queda tiene el #13#10 al final y el usuario puede posicionarse en el principio de la 'siguiente línea' que en este caso tenía un formato diferente.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #5  
Antiguo 14-05-2006
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Gracias Lepe,

Respondías mientras yo también escribía mi anterior respuesta.

El tema es que se supone que he borrado por código la línea 11 mediante Editor.Lines.Delete[11], y que ahí no hay nada que seleccionar y cambiar mediante SelAttributes (al menos eso creo, aunque la verdad es que no lo he probado todavía). En cualquier caso, lo que pretendía era precisamente evitar eso, tener que seleccionar y modificar los atributos.

La pregunta formulada de otra manera sería: se pueden manipular los caracteres de control de un TString ? Porque en cualquiera de las propiedades de un TString, o sus funciones, siempre obtengo sólo el texto y no los caracteres de control asociados.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #6  
Antiguo 15-05-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Lo que se me ocurre es que dejes una linea al final con el mismo formato que la linea 10. Al borrar las lineas de en medio, siempre quedará ésta última linea.

He estado mirando a ver si DefAttributes te podía servir, pero una vez que se ha aplicado un formato se queda ahí.

Como bien dices, el formateo del texto se hace internamente a través de la propiedad PlainText y no puede accederse a menos que vuelques el contenido en un TMemoryStream (por ejemplo) con PlainText := false y despues lo modifiques.... pero creo que es demasiado trabajo, amén de meterte con la especificación RTF que no es nada trivial .

Saludos y siento no tener una mejor respuesta
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
retorno de carro sergio17 Varios 3 25-07-2006 17:17:42
Posicion del Retorno de Carro gluglu Varios 3 17-04-2006 19:09:57
retorno de carro en archivo plano Alexander Varios 2 09-06-2005 23:53:21
DBMemo y retorno de carro?? ramonibk Varios 3 30-07-2004 14:16:53
retorno de carro empty Varios 3 14-05-2004 10:21:39


La franja horaria es GMT +2. Ahora son las 02:18:27.


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