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 08-09-2005
Ermek Ermek is offline
Miembro
 
Registrado: jul 2005
Posts: 18
Poder: 0
Ermek Va por buen camino
Unhappy Problemas con RichEdit

Buenas. Necesito guardar en una base de datos el texto de un editor realizado con RichEdit. Pero el problema es que lo guarda sin formato.

El código que pongo es el siguiente:

Código Delphi [-]
 Editor.PlainText:=True;
 Query2.Edit;
 Query2.FieldByName('TEXTO').AsString:=Editor.Text;
 Query2.Post;
 Editor.SetFocus;
Pero, parece que no hace caso al PlainText.

Última edición por dec fecha: 08-09-2005 a las 13:03:29. Razón: (Encerrar el código fuente en la etiqueta DELPHI)
Responder Con Cita
  #2  
Antiguo 08-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¿No es al revés? ¿No estás indicando con "PlainText = True" que lo guarde como texto plano, es decir, sin formato?
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 08-09-2005 a las 13:04:26. Razón: (corrección del texto)
Responder Con Cita
  #3  
Antiguo 08-09-2005
Ermek Ermek is offline
Miembro
 
Registrado: jul 2005
Posts: 18
Poder: 0
Ermek Va por buen camino
He probado con Plaintext:=False y también pasa lo mismo.
Responder Con Cita
  #4  
Antiguo 08-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Terminará pasando lo mismo, es decir, que al cabo no consigas lo que quieres, pero, desde luego, esto es lo que puede leerse en la descripción de la propiedad "PlainText" en la ayuda de Delphi, la cual, por cierto, tal vez te proporcione alguna idea:

Cita:
Empezado por Ayuda de Delphi
To write the rich text in the control to a plain text file, set PlainText to true before streaming the text to a file. To ignore the rich text information encoded in a file, set PlainText to true before streaming the text to the control. To stream in the rich text attributes encoded in a file, or save the encoding of the rich text attributes to a file, set PlainText to false.

If the rich text attributes of a file are encoded in some format other than rich text format (RTF), it is necessary to use a converter on the text, even when PlainText is true.

Note: Rich edit controls do not directly support streaming. Use the Lines property to stream to or from a file.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 08-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
El problema no se encuentra en usar o no la propiedad "PlainText", sino en el uso de la propiedad "Text", la cual sólo devuelve la cadena de texto introducida ignorando toda información sobre el formato de dicha cadena.

Para poder almacenar el texto junto con el formato es necesario leer el "contenido" en sí del control (es decir, el "Stream"). Para no enrollarme mucho, pongo un ejemplo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  CadenaFmt: TStringStream;
begin
  CadenaFmt := TStringStream.Create('');

  with RichEdit1 do
  begin
    // Ejecutar primero con PlainText a False y después a True

    SelAttributes.Color := clRed;
    SelAttributes.Style := [fsBold];
    SelText := 'Hola';
    Lines.SaveToStream(CadenaFmt);
  end;

  ShowMessage(CadenaFmt.DataString);
  CadenaFmt.Free;
end;

Si probais el ejemplo, vereis que se muestra un mensaje con la cadena de texto introducida mas las "etiquetas" utilizadas para dar formato a dicho texto. Si ahora lo ejecutais de nuevo poniendo la propiedad "PlainText" a "True", vereis que el mensaje muestra el texto normal sin dichas "etiquetas". Es decir, "PlainText" solo afecta a como será almacenado el texto del control (a la hora de usar los métodos "SaveToFile" o "SaveToStream"), con formato o sin él.

Saludos!

Última edición por jmariano fecha: 08-09-2005 a las 15:07:27.
Responder Con Cita
  #6  
Antiguo 08-09-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno, jmariano, creo que lo que has explicado es bastante explícito, pero, si se quiere guardar el texto con el formato (haciéndolo como tú lo has planteado arriba, no utilizando la propiedad "Text" del "TRichEdit", sencillamente), la propiedad "PlainText" ha de valer "False", ¿es o no es?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 08-09-2005
Avatar de jmariano
jmariano jmariano is offline
Miembro
 
Registrado: jul 2005
Posts: 376
Poder: 19
jmariano Va por buen camino
Cita:
Empezado por dec
Hola,

Bueno, jmariano, creo que lo que has explicado es bastante explícito, pero, si se quiere guardar el texto con el formato (haciéndolo como tú lo has planteado arriba, no utilizando la propiedad "Text" del "TRichEdit", sencillamente), la propiedad "PlainText" ha de valer "False", ¿es o no es?
Exastamente! para guardar el texto con formato la propiedad "PlainText" ha de ser "False". Pero, ojo!, como ya expliqué, la propiedad "Text" siempre devuelve el texto sin formato, independientemente de que la propiedad "PlainText" esté a "True" o "False".

Saludos!
Responder Con Cita
  #8  
Antiguo 09-09-2005
Ermek Ermek is offline
Miembro
 
Registrado: jul 2005
Posts: 18
Poder: 0
Ermek Va por buen camino
Gracias, de esa forma si me funciona.


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


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


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