Mostrar campo memo que contiene texto RTF en RICHEDITBOX

HMG en Español

Moderator: Rathinagiri

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

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by inacihn »

A manera de información, el tema de editar campos memos como RTF sin tener que grabar un fichero temporal RTF en el disco duro, migré la aplicación a Minigui Extended y funciona bien. Vamos a esperar en HMG una alternativa a eso en el futuro. Ahi nos adaptaremos a Miniwriter o una versión mejorada.

Julio Meza.
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by SALINETAS24 »

Hola Inacihn, estoy utilizando esta parte para crear el fichero RTF.., pero he detectado un problema con los acentos..., me los cambia por otro caracteres.
Por ejempo "M.Pensión" se transforma en "M.Pensión"
¿sabes eso a que es debido..?
La configuración al español la tengo bien.
Gracias.

inacihn wrote: 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
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
inacihn
Posts: 23
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by inacihn »

Tiene que agregar la selección de lenguaje al español. Los RTF del Richedtibox son Ansi.

Code: Select all

   ***CODIGO DE PAGINA español***
   REQUEST HB_CODEPAGE_ESWIN
   HB_SETCODEPAGE("ESWIN")

	REQUEST HB_LANG_ESWIN
	HB_LANGSELECT( "ESWIN") 
	  
Funciona bien, si la base de datos es 1252 Ansi.

Adjunto el Demo en el que puede hacer pruebas quitando poniendo el lenguaje Español.

El ejecutable demo.exe va sin la selección del lenguaje español. En el demoSP.exe va con el español y también en el demo.prg ya va incluido. (Se incluye Const.dbf y Const.fpt)

Salud.
Attachments
RichEditBox.rar
(2.65 MiB) Downloaded 202 times
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by SALINETAS24 »

Gracias Inacihn..., funciona.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by SALINETAS24 »

HOLA OTRA VEZ...,
YA LO HE PROBADO, Y NO ME FUNCIONAN LOS GRAFICOS CON HMG3.4.4 USADO BAJO XP Y WINDOW 7...
ALGUIEN SABE PORQUE...?
ANDRES, EL FICHERO QUE ME HAS PASADO NO CONSIGO VER LAS FOTOS.
ES POSIBLE QUE SEA PROBLEMA DE S.O.

GRACIAS
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
inacihn
Posts: 23
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by inacihn »

Ya probaste esto publicado en este mismo post:

"Hola Andrés y Salinetas:

Probé con un RTF en que agregué una imagen, con WORDPAD, en el Miniwriter no funcionó, no solo no mostró la imagen, simplemente la borró.

Luego probé el RTF con la misma imagen agregada con WORDPAD y posteriormente la abrí con MSWORD 2016 le hice un simulacro de modificación y la grabé como RTF y realmente funciona perfecto. Grabarla con MSWORD es la solución. Uso W8.1.

Buen trabajo Andrés.

Saludos

Julio"

Al final la conclusión es que un RTF grabado en WORDPAD no tiene la misma estructura que uno grabado en Microsoft Office. Cuando expreso "simplemente la borró", significa que con solo ver el RTF en Miniwriter y sin grabar, al abrirlo en el WORDPAD la imagen ya no aparece.
.

Esa ha sido la actitud de Microsoft siempre, desde sus inicios.

Salud.

Julio Meza
inacihn
Posts: 23
Joined: Wed Oct 17, 2018 4:46 am
DBs Used: DBF

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by inacihn »

En windows 7 definitivamente no funciona. Asi es la estrategia comercial de Bill, lo que funciona para windows 7 no funciona para windows 8, 10... y viceversa.

Ni modos.
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by SALINETAS24 »

Bueno.., pues llegados a este punto y dado que nadie está obligado a trabajar con el S.O. que Billy "el Puertas" quiera me gustaría dar una solución para mostrar un gráfico cuando se genera el "PDF", un membrete en la parte de arriba. A ver si alguien me ayuda. :roll:

He visto que tenemos esto :
- PrintPageCodeBlock is a code block that is executed to send each page of the document to the printer,
e.g. PrintPageCodeBlock := { || @ nRow , nCol PRINT "Pag. " + HB_NTOS( nPag++ ) CENTER }
Lo cual añade al final de la carta la paginación y cada vez que imprime la ejecuta. Se encuentra en \SOURC\H_RICHEDITBOX.PRG

Code: Select all

   START PRINTDOC
   DO WHILE nNextChar < nTextLength
      START PRINTPAGE
          EVAL ( PrintPageCodeBlock )
          nNextChar := RichEditBox_FormatRange ( hWndControl, OpenPrinterGetPageDC(), nLeft, nTop, nRight, nBottom, aSelRange )
          aSelRange [1] := nNextChar
          DO EVENTS
      END PRINTPAGE
   ENDDO
   END PRINTDOC
La idea sería lo mismo pero en lugar de imprimirlo al pie de pagina, hacerlo al principio y con un BMP., como se hace en la clase T_report

//--> Esta línea el de T_Report
oprint:printimage(nfi,nci+repobject:nlmargin,nff,ncf+repobject:nlmargin,cgraphic)

Quizás alguien con más experiencia y conocimientos me pueda indicar ...

Muchas gracias y cervezas para todos... (fresquitas..)
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by andyglezl »

Traten esto:

1.- Abrir Miniwriter
2.- Ir la carpeta de la imagen que quieren incluir, y darle doble click
para que se muestre en el visor de default, dar boton derecho y COPIAR.
3.- Ir a miniwriter, posicionarte en Ren. y Col. donde quieres insertar la
imagen y boton derecho y PEGAR.
4.- Salvar el archivo .RTF y volover abrir el Miniwriter.

(La imagen se puede alinear dandole Click con el botón derecho.)
*-----------------------------------------------------------------------------------------------
Try this:

1.- Open Miniwriter
2.- Go to the folder of the image you want to include, and double click
so that it shows in the default viewer, give right button and COPY.
3.- Go to miniwriter, position yourself in Ren. and Col. where you want to insert the
image and right button and PASTE.
4. Save the .RTF file and open the Miniwriter again.

(The image can be aligned by clicking on it with the right button.)

miniwriter.png
miniwriter.png (239.58 KiB) Viewed 3913 times
Andrés González López
Desde Guadalajara, Jalisco. México.
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: Mostrar campo memo que contiene texto RTF en RICHEDITBOX

Post by SALINETAS24 »

Gracias Andrés.., a copiar y pegar llegamos.. jajajaja.. pero que sepas que no funciona.
Creo que es un problema de la API esa del Windons... y de sus incompabilidades.

Pero dado que cuando creo un REPORT o un PDF si que puedo insertar una imagen.., la mejor solución para poner una especie de membrete, creo que seria la que yo indico.., pero no se como hacerlo.
Una vez le damos a imprimir y antes de visionarlo, insertar la imagen.. como en la clase REPORT.., pero no tengo n.p.i.
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
Post Reply