Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby nanoespinoza » Thu Dec 29, 2022 1:02 am

Estimado Cristobal:

Dos temas más:

1) Al usar la cláusula BARBUTTON aparece un menú flotante que solo se visualiza al pasar el ratón por la parte superior del control RICHEDIT5. ¿Hay alguna forma de que ese ButtonBar se vea de forma permanente?

2) Le anexo la captura de pantalla, sobre como se ve el menú contextual.

Image

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby cnavarro » Thu Dec 29, 2022 2:57 am

Fernando, ya veo
En relación al tema del menu, quise entender que el texto RTF a mostrar lo tienes guardado en una base de datos, y que lees el campo y su contenido lo muestras en el control, es así ?. En cualquier caso, ponme el trozo de código que utilizas para leer y mostrar el RTF en el control, y vemos como solucionar tu problema.
En cuanto al tema de la buttonbar, te he de decir, que su comportamiento actual considero que es el correcto para este tipo de control. Puedes no activar la buttonbar y hacerla fuera del control. Tienes un ejemplo de funcionalidad en el ejemplo TestRtf5.prg, y, si necesitas ayuda para implementar la funcionalidad de los botones, en la clase aparece la construcción de la misma, por lo que podrías copiar el código y asignar esa buttonbar al contenedor que consideres ( que contendrá en su area cliente el control RTF también, evidentemente ). Espero haberme explicado, pero en cualquier caso, te ayudaría a implementarla si tienes algún problema.
Si te estás haciendo la pregunta de ¿y por qué no dejarla fija dentro del control?, te explico mi punto de vista: cuando pones una buttonbar, ocupa una parte del area cliente ( oTop ) de un contenedor ( windows, dialog, etc. ), pero esto es un control, y no distinguirá que su nTop es debajo de la buttonbar, es decir, sería complicado decirle que solo puede empezar a escribir a partir del oBar:nBottom.
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby nanoespinoza » Thu Dec 29, 2022 3:07 am

cnavarro wrote:Fernando, ya veo
En relación al tema del menu, quise entender que el texto RTF a mostrar lo tienes guardado en una base de datos, y que lees el campo y su contenido lo muestras en el control, es así ?. En cualquier caso, ponme el trozo de código que utilizas para leer y mostrar el RTF en el control, y vemos como solucionar tu problema.
En cuanto al tema de la buttonbar, te he de decir, que su comportamiento actual considero que es el correcto para este tipo de control. Puedes no activar la buttonbar y hacerla fuera del control. Tienes un ejemplo de funcionalidad en el ejemplo TestRtf5.prg, y, si necesitas ayuda para implementar la funcionalidad de los botones, en la clase aparece la construcción de la misma, por lo que podrías copiar el código y asignar esa buttonbar al contenedor que consideres ( que contendrá en su area cliente el control RTF también, evidentemente ). Espero haberme explicado, pero en cualquier caso, te ayudaría a implementarla si tienes algún problema.


Estimado Cristóbal:

1) Efectivamente el texto RTF lo tengo guardado en una .dbf, el código que uso es este:

Para definir el control:
Code: Select all  Expand view
        REDEFINE RICHEDIT5 oRtf VAR cObserv ID 8502 OF oFld:aDialogs[nFld] FONT oFontCR FILE cObserv ;
            BARBUTTON MESSAGE "Observaciones sobre el partido"
            oRtf:cToolTip:={"Observaciones sobre el partido","SicefWin "+cVersSW,2,CLR_WHITE,CLR_GREEN}
            oRtf:SetLangOptions(.T.)   // Activa el corrector ortográfico


Lo activo en el ON INIT del diálogo, así:
Code: Select all  Expand view
ACTIVATE DIALOG oDlgALIN CENTERED ON INIT ( oDlgALIN:SetIcon(oApp:cIcono), Ocultar(GLOC,GVIS,oGet), oGet[1]:SetColor(CLR_RED,CLR_LBLUE), oGet[166]:SetColor(CLR_RED,CLR_LBLUE), ;
    IF(!lEvtPrg, (CargaBarra2(oFld:aDialogs[nFld]), oRtf:LoadRTF(cObserv), ;
    oRtf:SetFontName("Segoe UI"), oRtf:SetFontSize(10), oFld:aDialogs[nFld]:oBar:=NIL, oFld:aDialogs[nFld]:oTop:=NIL, oBar:Move(24,10), ;
    oRtf:bChange:={ || (RefreshBtnBar_Obs(oBar), IF( oRtf:IsModify(), cObserv:=oRtf:SaveAsRTF(), )) }, Eval( oRtf:bChange )), ;
    (oBut[1]:Disable(), oBut[2]:Disable(), oBut[4]:Disable(), oBut[5]:Disable())), ;
    IF(!Empty(cPlnTctL) .AND. cPlnTctL<>"N/D" .AND. Rat("1-",cPlnTctL)<>0, oBut[21]:cTitle("          Táctica ..."+CRLF+"          ya elegida"), ), ;
    IF(!Empty(cPlnTctV) .AND. cPlnTctV<>"N/D" .AND. Rat("1-",cPlnTctV)<>0, oBut[22]:cTitle("          Táctica ..."+CRLF+"          ya elegida"), ), ;
    IF(GLOC=0, oRad[1]:aItems[2]:Disable(), ), IF(GVIS=0, oRad[2]:aItems[2]:Disable(), ), ;
    oLbx[1]:SetFocus(), CtrlBloqueo(2) )


2) Sobre la buttonbar, entendido, lo implementaré por fuera con la ayuda de TestRtf5.prg.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby cnavarro » Thu Dec 29, 2022 3:10 am

Fernando, la linea
Code: Select all  Expand view

            IF(!lEvtPrg, (CargaBarra2(oFld:aDialogs[nFld]), oRtf:LoadRTF(cObserv), ;
 

Prueba a ponerla así, y me comentas
Code: Select all  Expand view

           IF(!lEvtPrg, (CargaBarra2(oFld:aDialogs[nFld]), oRtf:LoadRTF(cObserv), oRtf:cFileName := "", ;
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby cnavarro » Thu Dec 29, 2022 3:15 am

Por cierto Fernando, muchas Felicidades por tu cumpleaños, estás hecho un chaval.
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby nanoespinoza » Thu Dec 29, 2022 4:33 am

cnavarro wrote:Por cierto Fernando, muchas Felicidades por tu cumpleaños, estás hecho un chaval.


La foto es bien vieja, pero el espíritu de niño, se mantiene.

Funcionó bien con su aporte. Gracias.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby nanoespinoza » Thu Dec 29, 2022 4:03 pm

Estimado Cristobal:

Un tema final sobre el comportamiento del corrector ortográfico en RICHEDIT5; si bien es cierto este me marca la mayoría de palabras con error o hace correcciones automáticas, como eliminar letras repetidas, sucede que esta característica no se activa de entrada al abrir el Control.

Uso: oRtf:SetLangOptions( .T. ) desde el ON INIT del dialogo para activar esta caractrística, al abrir el menú contextual con el botón derecho del ratón, me aparece marcado Set Spellcheck, pero las palabras mal escritas no se marcan; tengo que hacer lo siguiente; 1) desmarcar el Set Spellcheck, 2) volverlo a marcarlo; y desde ahí, me empieza a marcar las palabras mal escritas conforme voy escribiendo, lo ya mal escrito, no se marca, solo lo hace, sí recorro el texto y hago una corrección de lo escrito.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby Antonio Linares » Fri Dec 30, 2022 8:21 am

Fernando,

Has probado asi ?

( oRtf:SetLangOptions( .T. ), oRtf:SetLangOptions( .F. ), oRtf:SetLangOptions( .T. ) ) desde el ON INIT del dialogo ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby nanoespinoza » Fri Dec 30, 2022 11:48 pm

Antonio Linares wrote:Fernando,

Has probado asi ?

( oRtf:SetLangOptions( .T. ), oRtf:SetLangOptions( .F. ), oRtf:SetLangOptions( .T. ) ) desde el ON INIT del dialogo ?


Estimado Antonio:
n
Su propuesta resuelve el problema, colocando esa repetición en el ON INIT y agregando oRtf:lSpell:=.T. en la definición del control RICHEDIT5 (esto para que salga chequeado en el menú contrextual -popup-). Lo que no se resuelve es que igualmente se debe recorrer el texto, para que se marquen los errores previos, los errores nuevos se marcan ya directamente.

Sería interesante que se complemente más esta clase.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby Antonio Linares » Sun Jan 01, 2023 7:59 am

Fernando,

Antes de hacer esas tres llamadas haz lo siguiente:

oRtf:SelectAll()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41315
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5

Postby nanoespinoza » Sun Jan 01, 2023 9:11 pm

Antonio Linares wrote:Fernando,

Antes de hacer esas tres llamadas haz lo siguiente:

oRtf:SelectAll()


Estimado Antonio:

Probé su sugerencia y por ahí algunas más, buscando los métodos que tiene la clase, pero al momento no hay solución.

Saludos

Fernando Espinoza A.
nanoespinoza
 
Posts: 135
Joined: Thu Mar 16, 2017 4:08 pm
Location: Ecuador

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 82 guests