Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
-
- Posts: 141
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
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.
Saludos
Fernando Espinoza A.
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.
Saludos
Fernando Espinoza A.
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
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.
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
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
-
- Posts: 141
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
Estimado Cristóbal: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.
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
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
Code: Select all | Expand
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) )
Saludos
Fernando Espinoza A.
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
Fernando, la linea
Prueba a ponerla así, y me comentas
Code: Select all | Expand
IF(!lEvtPrg, (CargaBarra2(oFld:aDialogs[nFld]), oRtf:LoadRTF(cObserv), ;
Code: Select all | Expand
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
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
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
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
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
-
- Posts: 141
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
La foto es bien vieja, pero el espíritu de niño, se mantiene.cnavarro wrote:Por cierto Fernando, muchas Felicidades por tu cumpleaños, estás hecho un chaval.
Funcionó bien con su aporte. Gracias.
-
- Posts: 141
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
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.
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.
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
Fernando,
Has probado asi ?
( oRtf:SetLangOptions( .T. ), oRtf:SetLangOptions( .F. ), oRtf:SetLangOptions( .T. ) ) desde el ON INIT del dialogo ?
Has probado asi ?
( oRtf:SetLangOptions( .T. ), oRtf:SetLangOptions( .F. ), oRtf:SetLangOptions( .T. ) ) desde el ON INIT del dialogo ?
-
- Posts: 141
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
Estimado Antonio:Antonio Linares wrote:Fernando,
Has probado asi ?
( oRtf:SetLangOptions( .T. ), oRtf:SetLangOptions( .F. ), oRtf:SetLangOptions( .T. ) ) desde el ON INIT del dialogo ?
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.
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
Fernando,
Antes de hacer esas tres llamadas haz lo siguiente:
oRtf:SelectAll()
Antes de hacer esas tres llamadas haz lo siguiente:
oRtf:SelectAll()
-
- Posts: 141
- Joined: Thu Mar 16, 2017 4:08 pm
- Location: Ecuador
Re: Que cambios de hacer para pasar de RichEdit a la RICHEDIT5
Estimado Antonio:Antonio Linares wrote:Fernando,
Antes de hacer esas tres llamadas haz lo siguiente:
oRtf:SelectAll()
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.