Page 1 of 4

Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Mon Dec 03, 2018 5:43 am
by inacihn
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

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Wed Dec 05, 2018 1:22 am
by inacihn
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

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Wed Dec 05, 2018 4:19 am
by andyglezl
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


Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Wed Dec 05, 2018 6:26 am
by inacihn
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

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Thu Dec 06, 2018 5:18 pm
by SALINETAS24
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.

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Thu Dec 06, 2018 6:01 pm
by andyglezl
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.

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Thu Dec 06, 2018 8:13 pm
by inacihn
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.

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Thu Dec 06, 2018 8:46 pm
by SALINETAS24
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.

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Thu Dec 06, 2018 10:08 pm
by andyglezl
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.

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Posted: Thu Dec 06, 2018 10:32 pm
by andyglezl
miniwrite.png
miniwrite.png (122.69 KiB) Viewed 3727 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