Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema con RichEdit (RTF) y RAD2010

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema con RichEdit (RTF) y RAD2010 Responder citando

Buenas...

Vengo con las de siempre.
Tengo un codigo que funciona perfectamente en Builder 6, pero al pasarlo en RAD2010 falla estrepitosamente.

El codigo que he creado para ver el problema es el siguiente:

Se crea un formulario con un TRichText y un TEdit.
En el evento OnClick del TRichText

Código:

   String respuesta = "";
   // hacemos un salvado en un fichero temporal
   randomize();
   String nombreArchivo = "fich_rtf"+IntToStr(rand());
   RichEdit1->Lines->SaveToFile(nombreArchivo);
   TStringList* n = new TStringList();
   n->LoadFromFile(nombreArchivo);
   respuesta = n->GetText();
   delete n;
   DeleteFile (nombreArchivo);
   Edit1->Text = respuesta;


Y en el evento OnClick del TEdit

Código:

   RichEdit1->Text = Edit1->Text;


La idea es que cuando pinche en el RichText me pase al TEdit el codigo RTF del texto del TRichText. Al pinchar en el TEdit debería de aparecer el texto con el codigo RTF incluido en el TRichText (Negrita, subrayado, etc...)

Este codigo funciona en Builder 6 (En este entorno no tiene el evento OnClick el componente TRichText, pero se puede probar con cualquier otro, o poner un boton para probar).

Si lo pones en RAD2010, al pinchar en el TEdit, en el TRichText sigue apareciendo con el codigo RTF.

¿Me podeis ayudar?

Lo que yo quiero es guardar el codigo RTF en la BD, y cuando lo recupere me aparezca el texto con su formato en el RichText.

Muchas gracias
Un saludo
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Esto funciona en las dos versiones y no requiere de un archivo temporal:

- En el OnClick del RichEdit:
Código:
std::auto_ptr<TStringStream> ss(new TStringStream(EmptyStr));
RichEdit1->Lines->SaveToStream(ss.get());
Edit1->Text = ss->DataString;

- En el OnClick del Edit:
Código:
std::auto_ptr<TStringStream> ss(new TStringStream(Edit1->Text));
RichEdit1->Lines->LoadFromStream(ss.get());
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Muchas gracias _Leo, como siempre impecable.

Para los que lo vayan a utilizar, faltaria incluir (valga la redundancia)
Código:

#include <vector>
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.