Consulta RICHEDIT
Re: Consulta RICHEDIT
Entonces el problema lo tienes en lo que tienes grabado en el fichero DBF, es decir, la cadena que tienes guardada en el fichero DBF no es correcta, por eso no lo muestra
Si quieres ver un ejemplo de lo que te digo, coge mi ejemplo, quítale la última llave, por ejemplo, de la cadena RTF que hay, y ejecuta, a ver si te lo muestra
Si quieres ver un ejemplo de lo que te digo, coge mi ejemplo, quítale la última llave, por ejemplo, de la cadena RTF que hay, y ejecuta, a ver si te lo muestra
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Consulta RICHEDIT
Que tamaño tiene el campo donde guardas el texto enriquecido?
Tal vez no alcance a guardar todo lo que necesita. Recuerda que el texto enriquecido tiene mucho mas espacio del que realmente se ve mostrado.
Has una prueba, guardando el texto enriquecido en un campo de tu DBF de tipo MEMO.
Tal vez no alcance a guardar todo lo que necesita. Recuerda que el texto enriquecido tiene mucho mas espacio del que realmente se ve mostrado.
Has una prueba, guardando el texto enriquecido en un campo de tu DBF de tipo MEMO.
Re: Consulta RICHEDIT
Hola Cesar y C. Navarro.
1. Cesar, el tamaño de Campo hoy es de Char 85, suficiente, ya que sucede aunque la linea contenga una sola palabra, pero si esta tiene aplicado Font o Color, no lo muestra.
2. C. Navarro, realice la prueba que me indicas con tu texto, no tuvo cambio al sacar el ultima llave o caracter, pero al no considerar la ultima linea, muestra la pantalla en blanco lo mismo que sucede con el contenido de la DBF.
3. Tome la DBF "CUSTOMER", al iniciar por primera vez muestra todo su contenido, pero si realizo alguna aplicacion de Font o color a la primera linea y la grabo, ya no vuelve a mostrar su contenido y muestra la pantalla en blanco.
Revisando el Foro, encontre una publicacion con el mismo problema, incluso responde a la sugerencia de Cesar de usar campo memo, pues esta publicación tiene el mismo problema de no poder recuperar el texto enriquecido y muestra la pantalla en blanco.
Aqui dejo el link de la publicacion, que por lo demas, nadie respondio a la consulta:
http://forums.fivetechsupport.com/view ... p?t=13639
Esperando resolver mi problema.
Muchos Saludos.
Antonio.
1. Cesar, el tamaño de Campo hoy es de Char 85, suficiente, ya que sucede aunque la linea contenga una sola palabra, pero si esta tiene aplicado Font o Color, no lo muestra.
2. C. Navarro, realice la prueba que me indicas con tu texto, no tuvo cambio al sacar el ultima llave o caracter, pero al no considerar la ultima linea, muestra la pantalla en blanco lo mismo que sucede con el contenido de la DBF.
3. Tome la DBF "CUSTOMER", al iniciar por primera vez muestra todo su contenido, pero si realizo alguna aplicacion de Font o color a la primera linea y la grabo, ya no vuelve a mostrar su contenido y muestra la pantalla en blanco.
Revisando el Foro, encontre una publicacion con el mismo problema, incluso responde a la sugerencia de Cesar de usar campo memo, pues esta publicación tiene el mismo problema de no poder recuperar el texto enriquecido y muestra la pantalla en blanco.
Aqui dejo el link de la publicacion, que por lo demas, nadie respondio a la consulta:
http://forums.fivetechsupport.com/view ... p?t=13639
Esperando resolver mi problema.
Muchos Saludos.
Antonio.
Re: Consulta RICHEDIT
Pues, no entiendo, Antonio, yo no veo ni he visto nunca ningún problema
Aquí he creado una base de datos y he grabado el mismo código que tenía en mi ejemplo en la base de datos y lo he recuperado, y sigue funcionando normalmente
Además, es posible que César tenga razón y los 80 caracteres, aunque sólo grabes una palabra, no sea suficiente ancho para guardar el código RTF que se genera al ponerle color, font, etc.


Aquí he creado una base de datos y he grabado el mismo código que tenía en mi ejemplo en la base de datos y lo he recuperado, y sigue funcionando normalmente
Además, es posible que César tenga razón y los 80 caracteres, aunque sólo grabes una palabra, no sea suficiente ancho para guardar el código RTF que se genera al ponerle color, font, etc.


C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Consulta RICHEDIT
Hola C. Navarro y Cesar.
Eternmente agradecido, aun cuando despues de todas sus sugerencias y demostraciones que el codigo funciona, en mi caso persistia el error, aun habiendo cambiado a usar Campo Memo en la DBF, decidi eliminar Fwh y Harbour, para volver a instalar, volvi a compilar el codigo y funciono perfectamente, el programa muestra todas las actualizaciones al texto. Me queda claro que alguna libreria estaba dañada.
Les pido mil disculpas por no haber realizado esto y tenerlos tan pendiente de mi caso, no me queda mas que agradecer de todo corazon su gesto, preocupacion y tiempo dedicado.
Hoy ya es muy tarde, mañana con mas tranquilidad, probare mas en profundida su funcionamiento, me quedo con la tranquilidad que funciona.
Muchos saludos
Antonio.
Eternmente agradecido, aun cuando despues de todas sus sugerencias y demostraciones que el codigo funciona, en mi caso persistia el error, aun habiendo cambiado a usar Campo Memo en la DBF, decidi eliminar Fwh y Harbour, para volver a instalar, volvi a compilar el codigo y funciono perfectamente, el programa muestra todas las actualizaciones al texto. Me queda claro que alguna libreria estaba dañada.
Les pido mil disculpas por no haber realizado esto y tenerlos tan pendiente de mi caso, no me queda mas que agradecer de todo corazon su gesto, preocupacion y tiempo dedicado.
Hoy ya es muy tarde, mañana con mas tranquilidad, probare mas en profundida su funcionamiento, me quedo con la tranquilidad que funciona.
Muchos saludos
Antonio.
Re: Consulta RICHEDIT
Antonio, eso nos ha podido pasar de una forma u otra a todos.
Lo importante es que lo hayas solucionado
Saludos
Lo importante es que lo hayas solucionado
Saludos
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Consulta RICHEDIT
Antonio:
Me alegro que lo hayas solucinado.
Abrazo
Me alegro que lo hayas solucinado.
Abrazo
Re: Consulta RICHEDIT
C. Navarro y Cesar.
Muchas gracias de corazon por toda su ayuda y tiempo dedicado.
Hoy he probado mas en detalle y no presenta ningun problema, era efectivanten algo con alguna liberia que causaba el error.
Por el comentario de C. Navarro sobre usar "TRichEdit5", hoy trate de compilar TESTRTF5.PRG y me arroja este error:
Muchos Saludos.
Antonio
Muchas gracias de corazon por toda su ayuda y tiempo dedicado.
Hoy he probado mas en detalle y no presenta ningun problema, era efectivanten algo con alguna liberia que causaba el error.
Por el comentario de C. Navarro sobre usar "TRichEdit5", hoy trate de compilar TESTRTF5.PRG y me arroja este error:
Code: Select all
┌────────────────────────────────────────────────────────────────────────────┐
│ FiveWin for Harbour 17.09 - Sep. 2017 Harbour development power │▄
│ (c) FiveTech 1993-2017 for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8/10 │█
└────────────────────────────────────────────────────────────────────────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Compiling...
Harbour 3.2.0dev (r1506171039)
Copyright (c) 1999-2015, http://harbour-project.org/
Compiling 'testrtf5.prg' and generating preprocessed output to 'testrtf5.ppo'...
Lines 6586, Functions/Procedures 30
Generating C source output to 'testrtf5.c'... Done.
Embarcadero C++ 7.30 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies,
Inc.
testrtf5.c:
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
Turbo Incremental Link 6.80 Copyright (c) 1997-2017 Embarcadero Technologies, In
c.
Error: Unresolved external '_HB_FUN_OLEUIINSERTOBJECT' referenced from C:\UTIL\F
WH1709\PRUEBAS\TESTRTF5.OBJ
Error: Unable to perform link
* Linking errors *
Antonio
Re: Consulta RICHEDIT
Master Navarro, esto no debria estar en: OLEDLG.LIB? O No?
Intenta asi:
FUNCTION OleUIInsertObject()
RETURN NIL
Regards, saludos.
Intenta asi:
FUNCTION OleUIInsertObject()
RETURN NIL
Regards, saludos.
João Santos - São Paulo - Brasil
Re: Consulta RICHEDIT
Hola Karinha
Muchas gracias por tu ayuda.
He agregado lo que me indicas y compilo super.
Muchos Saludos.
Antonio.
Muchas gracias por tu ayuda.
He agregado lo que me indicas y compilo super.
Muchos Saludos.
Antonio.
Re: Consulta RICHEDIT
Joao, eso no es un error ni hace falta mover ninguna function, ahora explicokarinha wrote:Master Navarro, esto no debria estar en: OLEDLG.LIB? O No?
Intenta asi:
FUNCTION OleUIInsertObject()
RETURN NIL
Regards, saludos.
Antonio, el código que estás utilizando debe ser incorrecto porque funciona sin problemas
Adjunto el mismo ejemplo anterior pero con TRichEdit5
Joao,Antonio, fíjate en:
1.- El include que he añadido
2.- No hace falta cargar la DLL, ni liberar su handle evidentemente
3.- La definición del control en el RC es distinta ( adjunto también el RC modificado )
Code: Select all
#include "FiveWin.ch"
#include "richedi5.ch"
//----------------------------------------------------------------------------//
function Main()
local oDlg
local oRich
//
//local hRichDLL := LoadLibrary( "riched20.dll" )
//
local lSyntaxHL := .f.
local cTxt := ""
USE RTFCODE
GO TOP
cTxt += rtfcode->memcode
CLOSE
? cTxt
// Simulo la lectura del contenido del campo
//cTxt := "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Microsoft Sans Serif;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}" + ;
// "{\colortbl ;\red128\green0\blue0;\red0\green0\blue0;\red0\green128\blue0;\red255\green0\blue0;}" + ;
// "\viewkind4\uc1\pard\cf1\b\i\f0\fs28 JH\cf2\b0\i0 - Sue let me \cf3 know\cf2 that their rep had noticed that they were not performing the yearly \cf4\ul\b\fs24 escrow\cf2\ulnone\b0\fs28 analysis.\cf0\f1\fs17\par" + ;
// "}"
DEFINE DIALOG oDlg RESOURCE "Test"
oDlg:lHelpIcon := .F.
REDEFINE BUTTON ID 110 ;
ACTION ( oRich:SetText( cTxt ) )
REDEFINE CHECKBOX lSyntaxHL ID 115 OF oDlg ;
ON CHANGE ( oRich:lHighLight := lSyntaxHL, ;
oRich:SetText( oRich:GetText() ) )
REDEFINE BUTTON ID 120 ;
ACTION oRich:LoadFromRTFFile( cGetFile( "RTF file (*.rtf) | *.rtf" ) )
REDEFINE BUTTON ID 130 ;
ACTION oRich:SaveToRTFFile( cGetFile( "RTF file (*.rtf) | *.rtf",;
"Please write a filename", "test" ) )
REDEFINE BUTTON ID 998 ACTION ( oRich:GoToLine( 10 ), oRich:SetFocus() )
oRich := TRichEdit5():Redefine( 100, bSETGET( cTxt ), oDlg )
oRich:lHighLight = .T.
ACTIVATE DIALOG oDlg CENTERED ; //
ON INIT ( oRich:LoadRtf( cTxt ), oRich:PostMsg( WM_KEYDOWN, VK_HOME, 0 ) ) ; //oRich:SetText( cTxt ) ; //
VALID ( cTxt := oRich:SaveAsRTF(), .T. ) // oRich:GetText(), .T. )
//MemoEdit( cTxt )
//
//FreeLibrary( hRichDLL )
//
return nil
//----------------------------------------------------------------------------//
Code: Select all
#define IDC_EDIT1 101
Test DIALOG 41, 64, 409, 199
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Testing the RichEdit control"
FONT 8, "MS Sans Serif"
{
// CONTROL "", 100, "RichEdit20A", 4100 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 6, 12, 398, 163
CONTROL "", 100, "RichEdit50W", 4100 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 6, 12, 398, 163
PUSHBUTTON "&Load text file", 110, 5, 179, 50, 16
CHECKBOX "Activate syntax highlight", 115, 65, 182, 92, 11, BS_AUTOCHECKBOX | WS_TABSTOP
PUSHBUTTON "L&oad RTF file", 120, 162, 179, 50, 16
PUSHBUTTON "&Save RTF file", 130, 226, 179, 50, 16
PUSHBUTTON "&End", IDCANCEL, 290, 179, 50, 16
PUSHBUTTON "&Win Class", 998, 354, 179, 50, 16
}
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Consulta RICHEDIT
Hola C. Navarro
Muchas gracias por todo lo que haces.
He probado ambos codigos editores, pero hoy me di cuenta que se produce un problema en ambos.
1. Mientras se digita, se produce un movimiento del texto o recurso que contiene el texto, es un moviento que afecta a todo lo escrito, e como un parpadeo, ademas se va produciendo una modificación de texto de la primera linea, si este contiene color o algun tipo de Font mayor, algunas letras comienza a modificar su tamaño o color.
2. Si yo realizo alguna cambio en la primera linea, por Ejemplo Font tipo 16 y algun color, si yo realizo alguna modificacion a texto y le doy grabar en el campo memo, al volver a recuperarlo, este presenta cambios de Color y tamaño de sus letras.
Probe el editor del TestRtf.prg, pero no produce este tipo de problema que ambos codigos he descrito.
Alguna idea a que se debe, lo probe en 2 equipos diferentes con distintos Windows y pasa lo mismo.
Que atento a los comentarios.
Muchos Saludos.
Antonio.
Muchas gracias por todo lo que haces.
He probado ambos codigos editores, pero hoy me di cuenta que se produce un problema en ambos.
1. Mientras se digita, se produce un movimiento del texto o recurso que contiene el texto, es un moviento que afecta a todo lo escrito, e como un parpadeo, ademas se va produciendo una modificación de texto de la primera linea, si este contiene color o algun tipo de Font mayor, algunas letras comienza a modificar su tamaño o color.
2. Si yo realizo alguna cambio en la primera linea, por Ejemplo Font tipo 16 y algun color, si yo realizo alguna modificacion a texto y le doy grabar en el campo memo, al volver a recuperarlo, este presenta cambios de Color y tamaño de sus letras.
Probe el editor del TestRtf.prg, pero no produce este tipo de problema que ambos codigos he descrito.
Alguna idea a que se debe, lo probe en 2 equipos diferentes con distintos Windows y pasa lo mismo.
Que atento a los comentarios.
Muchos Saludos.
Antonio.
Re: Consulta RICHEDIT
Antonio, si te refieres a un "parpadeo" del control, hay muchos motivos que pueden ocasionar este tema y normalmente no tienen nada que ver con el propio control TRICH...
Para ir descartando temas, prueba a no poner
Para ir descartando temas, prueba a no poner
Code: Select all
oRich := TRichEdit5():Redefine( 100, bSETGET( cTxt ), oDlg )
// oRich:lHighLight = .T. // comenta esta linea y prueba asi
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: Consulta RICHEDIT
C. Navarro
Efectivamente es la solución, funciono muy bien, ya no tiene ese parpadeo o perdida de la aplicación de Font o colores.
Eternamente agradecido.
Aprovechando la oportunidad, existe alguna posibilidad de usar Testrtf.prg la Function New(), que contiene un menu con muchas opciones, para recibir una variable cTxt, con contenido y actualizarlo en su editor??
Muchos Saludos.
Antonio.
Efectivamente es la solución, funciono muy bien, ya no tiene ese parpadeo o perdida de la aplicación de Font o colores.
Eternamente agradecido.
Aprovechando la oportunidad, existe alguna posibilidad de usar Testrtf.prg la Function New(), que contiene un menu con muchas opciones, para recibir una variable cTxt, con contenido y actualizarlo en su editor??
Muchos Saludos.
Antonio.
Re: Consulta RICHEDIT
Antonio, paso a paso, y haber si te he entendidoremtec wrote:C. Navarro
Efectivamente es la solución, funciono muy bien, ya no tiene ese parpadeo o perdida de la aplicación de Font o colores.
Eternamente agradecido.
Aprovechando la oportunidad, existe alguna posibilidad de usar Testrtf.prg la Function New(), que contiene un menu con muchas opciones, para recibir una variable cTxt, con contenido y actualizarlo en su editor??
Muchos Saludos.
Antonio.
En la function New()
Code: Select all
@ 0, 0 RICHEDIT oRTF VAR cRTF OF oWnd
// FILE "TestRTF.RTF" // No pongas esta clausula
Code: Select all
ACTIVATE WINDOW oWnd MAXIMIZED ON INIT oRtf:LoadRtf( cTxt )
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.