Mostrar RichText em dbgrid

Firebird

12/06/2009

Eu tenho um campo blob onde gravo palavras de um richedit, as palavras não são gravadas como texto, elas aparecem no seguinte padrão:
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil Arial Unicode MS;}{\f1\fnil\fcharset0 Arial Unicode MS;}}
\viewkind4\uc1\pard\lang1046\f0\fs16 All\ul e\ulnone\f1 in\f0
\par }
que elas aparecessem como elas deveriam aparecer, que no exemplo acima seria: All[u:f7c430bb77]e[/u:f7c430bb77]in, com o e sublinhado


Edilcimar

Edilcimar

Curtidas 0

Respostas

Edilcimar

Edilcimar

12/06/2009

Nota, eu ainda preciso que este campo apareça em ordem alfabética, em princípio sei que um campo blob não indexa, então preciso de uma outra forma de fazer isto


GOSTEI 0
Edilcimar

Edilcimar

12/06/2009

Ninguém arrisca um palpite?


GOSTEI 0
Max2006

Max2006

12/06/2009

Vc pode ultilizar um TSring ou StringList acho que o nome é isso.

Vc copia para um desse componentes coloca em ordem alfabética e depois manda para o componente de destino..

Tem alguma coisa aqui!...

Veja se resolve e me diga depois...


http://forum.clubedelphi.net/viewtopic.php?t=84617&highlight=tstringlist&sid=687d3c735b9f94ce17f3a1b0b7db090d


GOSTEI 0
Edilcimar

Edilcimar

12/06/2009

Max, isto infelizmente não creio que dê pois eu tenho um banco de dados com milhares de registros, para gravar o que quero, por exemplo ´ex[b:e9ea432ccf][u:e9ea432ccf]e[/b:e9ea432ccf][/u:e9ea432ccf]mplo´ só serve em um richedit e salvar em um campo blob, aí deste jeito que você falou não dá pois existem outros campos no BD.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

12/06/2009

você quer fazer como o IBExpert, por exemplo? ao entrar no campo BLOB da grade, ter um botão, reticências, sei lá... e você clicar e exibir o texto. é isso?

se for, coloque um RichEdit invisível no seu form e acione-o ao clicar no botão de visualizar texto. nesse momento você copia o conteúdo do BLOB para o RichEdit e o exibe na posição (x,y) do campo na grade.

não sei se me fiz entender....


GOSTEI 0
Edilcimar

Edilcimar

12/06/2009

Emerson, o que eu tenho é um dicionário onde quero marcar assim ´[b:b31a61dffd][u:b31a61dffd]x[/b:b31a61dffd][/u:b31a61dffd]´ a letra tônica da palavra. As palavras são mostradas em um dbgrid onde em um dos campos eu tenho a língua estrangeira com o respectivo bold e underline e em um dos outros campos eu tenho a tradução.
Hoje estou fazendo o seguinte: coloquo um * antes da letra tônica, só que isto tira as palavras da ordem alfabética, já se colocar como expliquei, aí elas ficam alfabeticamente ordenadas. Eu tentei fazer isto utilizando um Edit e um campo Varchar porém não funcionou pois quando em vez colocar apenas uma letra, todas ficam marcadas, aí então resolvi mudar para Richedit e Blob


GOSTEI 0
Max2006

Max2006

12/06/2009

Faz um loop de verificação, (bloco por bloco, etc...) e quando achar a vogal indicada vc troca pela vogal com o seguinte sublinhado.

Joga para um StringGrid ou usa um dbgrid..


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

12/06/2009

e se você colocar mais um campo para o literal da palavra?
assim você indexa por esse novo campo, e usa seu campo formatado somente para exibição do conteúdo.


GOSTEI 0
Edilcimar

Edilcimar

12/06/2009

Emerson, o problema é que o campo formatado não mostra o conteúdo formatado, mostra como dito logo no início do tópico
Max eu estou usando um dbgrid


GOSTEI 0
POSTAR