Ir al contenido


Foto

TDbGrid con un campo RTF. ¿Se puede visualizar como texto plano?


  • Por favor identifícate para responder
9 respuestas en este tema

#1 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 28 febrero 2012 - 09:34

Pues éso, chic@s, tengo varios campos que gracias a Fenareth y sus respuestas, ahora contienen texto RTF, con formatos bonitos, etcétera..., pero que a la hora de desplegarse en un TDbGrid se ven como un batiburrillo de letras, códigos y hasta groserías aparecen...  :D :D

¿Hay alguna manera (que no sea utilizando componentes de terceros, ya saben, la imposición que tengo) de mostrar los campos con contenido RTF en texto plano, solamente en el TDbGrid?
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 28 febrero 2012 - 09:52

Y no hay modo de guardar el texto con formato en un campo y recuperarlo donde sea necesario, y en otro guardarlo sin formato para cuando lo necesites así ?

Saludox ! :)
  • 0

#3 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 febrero 2012 - 10:39

Hola
Pregunto:
No se puede ver en un memo ?.
Saludos
  • 0

#4 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 28 febrero 2012 - 10:53

Y no hay modo de guardar el texto con formato en un campo y recuperarlo donde sea necesario, y en otro guardarlo sin formato para cuando lo necesites así ?...

Estás de acuerdo conmigo que ésto es DUPLICAR datos, lo cual no es muy conveniente en un entorno de trabajo con altos volúmenes de captura. Y más cuando el espacio en el servidor es crítico para el usuario.

...No se puede ver en un memo ?...

Sí, se ve en un TMemo, PERO como ya contiene los códigos RTF, es ilegible a simple vista.
  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 28 febrero 2012 - 10:55

Hola
Pregunto:
No se puede ver en un memo ?.
Saludos


Si amigo se visualiza donde quieras, pero en todo caso mostraría todos los carácteres "raros" que le dan formato al texto y no nada más el texto que es lo que creo que necesita TiammatMX....

Saludox ! :)
  • 0

#6 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 28 febrero 2012 - 11:04

Estás de acuerdo conmigo que ésto es DUPLICAR datos, lo cual no es muy conveniente en un entorno de trabajo con altos volúmenes de captura. Y más cuando el espacio en el servidor es crítico para el usuario.


Te estresas demasiado amigo, el texto lo puedes cargar en un RichEdit (lo creas en tiempo de ejecución) y asignas el texto en un campo calculado del DBGrid.



delphi
  1. CampoCalculado.AsString := RichEdit1.Lines.Text;



Saludos
  • 0

#7 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 febrero 2012 - 11:07

Hola
Puedes poner un richedit en el dbgrid, no ?
Saludos
  • 0

#8 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 28 febrero 2012 - 11:27

Hola
Aqui tienes un TRichEdit dentro (aparentemente) de un DBgrid.
Tal vez te de alguna idea.
Saludos
Cambia la dirección en el adoconnection para que lo puedas correr.

Archivos adjuntos


  • 0

#9 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 28 febrero 2012 - 12:47

Te estresas demasiado amigo...

Si supieras como me tienen...  : 8o| : 8o| : ... entenderías por qué ando como que en el stress que casi es scincoo o sseiss... :p jajajajajaja

...el texto lo puedes cargar en un RichEdit (lo creas en tiempo de ejecución) y asignas el texto en un campo calculado del DBGrid.



delphi
  1. CampoCalculado.AsString := RichEdit1.Lines.Text;


...

Ésta solución sí me gusta, matarili lirilón..., ¿sería mucha molestia que funjas como el guía de ésta pobre alma en pena, si no es mucho pedir? Paso a pasito, sil vous plait...

...tienes un TRichEdit dentro (aparentemente) de un DBgrid...

Gracias, Caral..., el problema es que NO quieren el TRichEdit dentro del TDbGrid, sino sólo desplegar el texto contenido en el campo SIN los códigos RTF. De todas maneras, compañero, muy muy agradecido.
  • 0

#10 TiammatMX

TiammatMX

    Advanced Member

  • Miembros
  • PipPipPip
  • 1.750 mensajes
  • LocationUniverso Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Ciudad de México\Xochimilco\San Gregorio Atlapulco\Home

Escrito 28 febrero 2012 - 04:59

Como siempre, la solución en varios pasos.

Paso 1.- Al TADOQuery que utilizo para obtener los datos de la rejilla, debo extraerle los nombres de campos hasta llegar al evento OnGetText de cada uno.

Paso 2.- En el dicho evento OnGetText, le incluímos un poquito de código de ésta manera:


delphi
  1. procedure TfrmPrncpl.QueryCampoGetText(Sender: TField; var Text: String; DisplayText: Boolean);
  2. var
  3.   redtTemporal : TRichEdit;
  4.   sTexto : string;
  5. begin
  6.   redtTemporal := TRichEdit.Create(Self);
  7.   with redtTemporal do
  8.   begin
  9.     Parent := frmPrncpl;
  10.     redtTemporal.Text := Query.FieldValues['Campo'];
  11.     redtTemporal.PlainText := True;
  12.     sTexto := redtTemporal.Lines.Text;
  13.     Destroy;
  14.   end;
  15.   Text := sTexto;
  16. end;



Como podemos apreciar, creo un TRichEdit "al vuelo", lo utilizo como "traductor" de los datos contenidos en el campo y devuelvo el texto resultante para ser mostrado en el TDbGrid.

Añado la solución para futuras referencias, sobre todo, mías... jajajajajaja :D :D :D :D (y)
  • 0




IP.Board spam blocked by CleanTalk.