RICHEDIT mudar cor da letra

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

RICHEDIT mudar cor da letra

Mensagem 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
Sem título.png (2.29 KiB) Exibido 5270 vezes
Ele muda a cor da letra.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

RICHEDIT mudar cor da letra

Mensagem 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.
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

RICHEDIT mudar cor da letra

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

RICHEDIT mudar cor da letra

Mensagem 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
tela.jpg
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

RICHEDIT mudar cor da letra

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

RICHEDIT mudar cor da letra

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RICHEDIT mudar cor da letra

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RICHEDIT mudar cor da letra

Mensagem 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
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

RICHEDIT mudar cor da letra

Mensagem 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...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

RICHEDIT mudar cor da letra

Mensagem 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?

Imagem
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

RICHEDIT mudar cor da letra

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

RICHEDIT mudar cor da letra

Mensagem por asimoes »

Toledo,

Desde ontem não consigo subir imagem/zip para o fórum, coloquei mensagem no fórum bate-papo
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder