Página 1 de 1
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 19:43
por Itamar M. Lins Jr.
Ola!
Nunca usei esse recurso, mas eu compilei o exemplo da pagina samples hello.prg
@ 20,10 RICHEDIT oEdit TEXT "Hello, world !" SIZE 200,30
hwg_Re_setcharformat( oEdit:handle, { { 1,6,,,,.T. }, { 8,13,255,,,,,.T. } } )

- Sem título.png (2.29 KiB) Exibido 5273 vezes
Ele muda a cor da letra.
Saudações,
Itamar M. Lins Jr.
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 20:02
por Toledo
Olá Itamar, o que significa estes comandos: { { 1,6,,,,.T. }, { 8,13,255,,,,,.T. } }
O 1 é o que? O 6 é o que? O 8 é o que? O 13 é o que? O 255 é o que?
Obrigado pela ajuda.
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 20:13
por Itamar M. Lins Jr.
Ola!
Eu não faço a mínima ideia

Mas vou olhar aqui nos fontes rsrsr
Saudações,
Itamar M. Lins Jr.
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 20:53
por Fernando queiroz
Toledo escreveu:Olá Itamar, o que significa estes comandos: { { 1,6,,,,.T. }, { 8,13,255,,,,,.T. } }
O 1 é o que? O 6 é o que? O 8 é o que? O 13 é o que? O 255 é o que?
Obrigado pela ajuda.
Imagino que seja cor da letra, eu uso
bColorBlock :={|| IIF(VALIDA_ITEM( )),{255, 16777215 ,16777215,255 },{0,16777215,, }) }
para marcar um bloco do browse com cores diferentes
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 21:01
por Itamar M. Lins Jr.
Ola!
Não funcionou usando DIALOG só com WINDOW
Abri um ticket lá!
Achei aqui a sintaxe, creio eu.
hwgui\source\winapi>notepad richedit.c
/*
* re_SetCharFormat( hCtrl, n1, n2, nColor, cName, nHeight, lBold, lItalic,
lUnderline, nCharset, lSuperScript/lSubscript(.T./.F.), lProtected )
*/
Saudações,
Itamar M. Lins Jr.
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 21:32
por Itamar M. Lins Jr.
Ola!
Código: Selecionar todos
#include "hwgui.ch"
Function Main
Local oDM, oEdit, oGet, cGet, oDlg
INIT WINDOW oDM MAIN TITLE "Example" AT 200,0 SIZE 420,300
//INIT DIALOG oDM AT 200,0 SIZE 420,300
@ 20,10 RICHEDIT oEdit TEXT "Hello, world !" +hb_eol() + "abc ABC" SIZE 200,60 STYLE ES_MULTILINE
hwg_Re_setcharformat( oEdit:handle, { { 1,2,,,,.T. }, { 8,13,255,,,,,.T. } } )
hwg_Re_setcharformat( oEdit:handle, { { 1,1,,,,.T. }, { 14,19,201,,,,,.T. } } )
oDM:Activate(,,,.t.)
Essa primeira chave {} não sei. A segunda muda a cor da string, 14 é a posição. O .T. é refresh(), 255,201 é a cor da letra.
Saudações,
Itamar M. Lins Jr.
RICHEDIT mudar cor da letra
Enviado: 13 Abr 2020 22:40
por asimoes
Tenho esse código que uso na RITHEDIT
Mas pode olhar também nos fontes da hwgui
Código: Selecionar todos
DO WHILE ( nPos := hwg_RE_FindText( oEdit:handle, ::cBusca, nStartFind, lCase ) ) > 0
n_IniPos := nPos
n_FimPos := nPos + Len( ::cBusca )
lBold := .F.
lItalic := .F.
hwg_re_SetCharFormat( oEdit:handle, { {n_IniPos + 1, n_FimPos + 1, , , , .T. }, { n_IniPos + 1, n_FimPos + 1, ::hwg_RGB(0, 0, 255), , , lBold, lItalic, .F. } } )
nLastFind := Max( nLastFind, nPos )
aAdd( aEncontrados, {::cBusca, nPos, lCase} )
nStartFind := nPos + Len( ::cBusca ) + 1
ENDDO
RICHEDIT mudar cor da letra
Enviado: 14 Abr 2020 12:56
por asimoes
A sintaxe:
hwg_re_SetCharFormat( hCtrl, n1, n2, nColor, cName, nHeight, lBold, lItalic, lUnderline, nCharset, lSuperScript/lSubscript, lProtected )
Fonte:
http://www.kresin.ru/en/hwgdoc_functions.html
RICHEDIT mudar cor da letra
Enviado: 14 Abr 2020 19:06
por alxsts
Olá!
Toledo escreveu:O 1 é o que? O 6 é o que? O 8 é o que? O 13 é o que? O 255 é o que?
Olhando as posições dentro da string, acho que 1 até 6 pintar com a cor tal (não especificou então acho que assume o default: preto), de 8 a 13 pintar com a cor 255, que deve ser o vermelho. O .T. no final deve ser o lProtected que tem na sintaxe mostrada acima.
Achei legal. Dá para fazer busca na string e destacar o texto. Ou até uma rotina de seleção, com control + setas...
RICHEDIT mudar cor da letra
Enviado: 15 Abr 2020 10:09
por Toledo
Amigos, na tela que tem RICHEDIT que estou desenvolvendo é apresentado um relatório com várias linhas (veja imagem abaixo), então quando monto a tela a RICHEDIT já vem com este texto em várias linhas com o texto na cor preta, então tentei fazer as alterações conforme exemplos das mensagens acima, mas não deu certo. As linhas que eu quero colorir são as que estão circuladas com este retângulo vermelho na imagem abaixo. Cada linha pode ter cores diferentes (Vermelho, Azul, Verde ou Preto).
Neste caso, como são várias linhas e estas linhas não estão no início do texto, como que eu faça para dar a cor (Vermelho, Azul e Verde) para as linhas que eu desejo?

RICHEDIT mudar cor da letra
Enviado: 15 Abr 2020 10:49
por Itamar M. Lins Jr.
Ola!
Todos os meus relatório eu faço em HTML.
Com HTML vc está na crista da onda, não tem nada hoje que chegue perto da quantidade de recursos que podemos colocar em um relatório HTML+CSS.
Qualquer navegador abre, visualiza e imprime. E o melhor não edita.(usuário comum)
Pq agora o google(navegador) já edita PDF!
Saudações,
Itamar M. Lins Jr.
RICHEDIT mudar cor da letra
Enviado: 15 Abr 2020 12:14
por asimoes
Toledo,
Desde ontem não consigo subir imagem/zip para o fórum, coloquei mensagem no fórum bate-papo