Mostrar campo memo que contiene texto RTF en RICHEDITBOX

HMG en Español

Moderator: Rathinagiri

inacihn
Posts: 22
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by inacihn » Mon Dec 03, 2018 5:43 am

Hola,
Necesito mostrar el contenido de un campo memo, guardado con formato de texto RTF, directamente en el RICHEDITBOX. Sin tener que crear un file.rtf en el hd.

Gracias de antemano, por su atención.

Julio

inacihn
Posts: 22
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Post by inacihn » Wed Dec 05, 2018 1:22 am

El procedimiento que actualmente uso es el siguiente:

Code: Select all

Function Cargarmemo()

Local nBO

	nBO := Const->det

	IF SUBSTR(nBO, 1, 7) == "{\rtf1\"
	
		IF (nHandle := FCREATE("Temp.rtf", FC_NORMAL)) == -1
				MsgExclamation ( "Error" )
			BREAK
		ELSE
			FWRITE(nHandle, nbo)
			FCLOSE(nHandle)
		ENDIF 	

		Form_1m.RichEditBox_1.RTFLoadFile ( "Temp.rtf" , 4, .F. )
	
	ENDIF
	
Return Nil
En minigui extended eso está resuelto, pero prefiero mantenerme en HMG Oficial.

Julio

User avatar
andyglezl
Posts: 1058
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 24 times
Been thanked: 48 times
Contact:

Post by andyglezl » Wed Dec 05, 2018 4:19 am

Creo que sin el paso a archivo, no se puede.

Tal vez si pruebas...

Code: Select all


	      @ <nRow>,<nCol> RICHEDITBOX <ControlName>
            [ OF | PARENT> <ParentWindowName> ]
            [ WIDTH <nWidth> ]
            [ HEIGHT <nHeight> ]
            [ FIELD <Field> ]              // =  Const->det

Andrés González López
Desde Guadalajara, Jalisco. México.

inacihn
Posts: 22
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Post by inacihn » Wed Dec 05, 2018 6:26 am

Lamentablemente solo funciona para texto plano, simple. Para RTF no es funcional. En la versión extended funciona en forma directa, este es el código que se usa,

Code: Select all

Function Mostrarmemop()

	Local nBO, cBuffer:=''
	
	nBO := const -> det
	cBuffer:= nBO
        mmemo := ( 'Memomel_6', 'Win_1', cBuffer )
	Win_1.Memomel_6.Value := mmemo
	Win_1.Memomel_6.show

Return NIL

User avatar
SALINETAS24
Posts: 230
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 5 times
Been thanked: 6 times

Post by SALINETAS24 » Thu Dec 06, 2018 5:18 pm

Hola, tengo un par de preguntas sobre RichEditBox.

1/Hay alguna forma de que cuando se genera el texto en una variable y se vaya a editar, ya se pueda mostrar parte del mismo en negrita, itálica, mas grande.., etc. ?

2/Creo que no se pueden mostrar gráficos en la edición, pero a la hora de imprimir.., ¿se le pueden agregar como cabecera o final de página..?

3/Por mantener una uniformidad.., cuando le damos a imprimir.., ¿se puede mostrar la misma pantalla que se muestra en la clase TBROWSE, para elegir impresora o formato de salida.?

Muchas gracias a todos y una cervecita fresquita.

User avatar
andyglezl
Posts: 1058
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 24 times
Been thanked: 48 times
Contact:

Post by andyglezl » Thu Dec 06, 2018 6:01 pm

Hola Salinetas
Creo que estamos confundidos...

Porque no pruebas los ejemplos de:

HMG\3.4.4\SAMPLES\Controls\RichEditBox
HMG\3.4.4\SAMPLES\Applications\MiniWriter

TIP
Puedes hacer un documento en WORD como gustes y luego lo guardas
como Formato .RTF y luego lo puedes leer en cualquiera de estos 2 ejemplos.
Andrés González López
Desde Guadalajara, Jalisco. México.

inacihn
Posts: 22
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Post by inacihn » Thu Dec 06, 2018 8:13 pm

En la Function Cargarmemo() que publiqué previamente el texto del campo memo (en formato rtf o en texto plano) lo guardo en una variable y lo grabo en el disco duro como "temp.rtf" para posteriormente editarlo con cualquiera de los ejemplos: richeditbox, miniwriter y WordScribe.

Si usamos cualquiera de los ejemplos hay que considerar que al seleccionar texto, éste cambía a una sola fuente y tamaño de letra, la solución temporal a eso también lo publiqué en mi post anterior.

Mi necesidad, por lograr lo mejor, es evitar tener que grabar un archivo en el disco duro.

En la versión Extended si se hace, sin embargo sus ejemplos tienen el mismo problema al seleccionar texto e intencionalmente son incompletos.

El uso de imágenes en todos los ejemplos no es viable.

Saludos.

User avatar
SALINETAS24
Posts: 230
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Has thanked: 5 times
Been thanked: 6 times

Post by SALINETAS24 » Thu Dec 06, 2018 8:46 pm

Hola Andy, gracias por contestar pero ¿...y si lo hago en WORD.., para que quiero el RICHEDITBOX...?. :shock:

1/ Lo que quiero es usar precisamente RICHEDITBOX sin pasar por el WORD. Necesito incorporar a un texto predefinido, que contiene algunas partes variables que son tomadas de una DBF y que deberián ser mostrados NEGRITA o CURSIVA. El programa genera una especie de Carta y me gustaría saber si se puede incorporar en la variable que va a contener el texto los comando para mostrar en negrita, italica,etc., etc. En un antiguo procesador de texto que me curre en clipper lo hacia asi :

Hola.., ^Nesto seria negrita^n, y ahora se quitaría, y si ponia la ^Ierá la cursivaî

2/ Y lo segundo.., imprimir una imagen..., ni en RICHEITBOX ni en MINIWRITE, pueden mostrar una imagen, tal y como indican los compañeros son procesadores planos.., pero yo no quiero mostrarla.., quiero imprimirla en la cabecera del texto a imprimir. Posiblemente se podrá incorporar en alguna de estas líneas un ".BMP"

Code: Select all

 
      PrintPageCodeBlock := { || @ nRow , nCol PRINT "Pag. " + HB_NTOS( nPag++ ) CENTER }

      Edit_1.RichEditBox_1.RTFPrint ( aSelRange, nLeft, nTop, nRight, nBottom, PrintPageCodeBlock )
Igual alguien lo ha probado y tiene alguna solución...
Muchas gracias y cervezas fresquitas..., para todos.

User avatar
andyglezl
Posts: 1058
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 24 times
Been thanked: 48 times
Contact:

Post by andyglezl » Thu Dec 06, 2018 10:08 pm

Hola Andy, gracias por contestar pero ¿...y si lo hago en WORD.., para que quiero el RICHEDITBOX...?.
Y si tienes Excel, para que quieres un GRID...?

Ya probaste los ejemplos que te comente ?
Con ellos, tienes un editor como "Word" dentro de HMG y tal como manejas Word,
los vas a manejar igualmente. ( Obviamente con sus limitaciones )
Lo de la prueba de Word, lo comenté porque tanto el "Word", como "WordPad", etc
te manejan archivos .RTF que los puedes leer y editar dentro de RichEditBox.

Si quieres hacerlo con "variables" tendrás que utilizar HPDF. (que no es EDITOR)
HMG\3.4.4\SAMPLES\HPDF\Demo1
ni en RICHEITBOX ni en MINIWRITE, pueden mostrar una imagen, tal y como indican los compañeros son procesadores planos
Te equivocas, has la prueba que te comento en Word y ponle a tu texto NEGRITAS, ITALICAS ,
TACHADAS e inserta una imagen, guardalo como .RTF y leelo dentro de Miniwrite.
Andrés González López
Desde Guadalajara, Jalisco. México.

User avatar
andyglezl
Posts: 1058
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Has thanked: 24 times
Been thanked: 48 times
Contact:

Post by andyglezl » Thu Dec 06, 2018 10:32 pm

miniwrite.png
miniwrite.png (122.69 KiB) Viewed 167 times

Hola.., ^Nesto seria negrita^n, y ahora se quitaría, y si ponia la ^Ierá la cursivaî
Me hiciste recordar la epoca de WordStar... :D
Andrés González López
Desde Guadalajara, Jalisco. México.

Post Reply