Consulta RICHEDIT

Re: Consulta RICHEDIT

Postby cnavarro » Sat Feb 16, 2019 8:53 pm

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
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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Consulta RICHEDIT

Postby cmsoft » Sat Feb 16, 2019 9:29 pm

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.
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta RICHEDIT

Postby remtec » Sun Feb 17, 2019 12:35 am

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:
[url]
viewtopic.php?t=13639
[/url]

Esperando resolver mi problema.

Muchos Saludos.
Antonio.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta RICHEDIT

Postby cnavarro » Sun Feb 17, 2019 10:16 am

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.

Image

Image
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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Consulta RICHEDIT

Postby remtec » Mon Feb 18, 2019 1:24 am

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.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta RICHEDIT

Postby cnavarro » Mon Feb 18, 2019 10:24 am

Antonio, eso nos ha podido pasar de una forma u otra a todos.
Lo importante es que lo hayas solucionado
Saludos
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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Consulta RICHEDIT

Postby cmsoft » Mon Feb 18, 2019 11:21 am

Antonio:
Me alegro que lo hayas solucinado.
Abrazo
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta RICHEDIT

Postby remtec » Mon Feb 18, 2019 1:29 pm

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:
Code: Select all  Expand view  RUN

┌────────────────────────────────────────────────────────────────────────────┐
│ 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 *
 


Muchos Saludos.
Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta RICHEDIT

Postby karinha » Mon Feb 18, 2019 3:02 pm

Master Navarro, esto no debria estar en: OLEDLG.LIB? O No?

Intenta asi:

FUNCTION OleUIInsertObject()

RETURN NIL

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7872
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Consulta RICHEDIT

Postby remtec » Mon Feb 18, 2019 3:15 pm

Hola Karinha

Muchas gracias por tu ayuda.

He agregado lo que me indicas y compilo super.

Muchos Saludos.
Antonio.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta RICHEDIT

Postby cnavarro » Mon Feb 18, 2019 8:15 pm

karinha wrote:Master Navarro, esto no debria estar en: OLEDLG.LIB? O No?

Intenta asi:

FUNCTION OleUIInsertObject()

RETURN NIL

Regards, saludos.


Joao, eso no es un error ni hace falta mover ninguna function, ahora explico
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  Expand view  RUN

#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

//----------------------------------------------------------------------------//
 


Aqui el RC, fíjate en la definición del control ahora

Code: Select all  Expand view  RUN

#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
}
 
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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Consulta RICHEDIT

Postby remtec » Mon Feb 18, 2019 11:49 pm

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.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta RICHEDIT

Postby cnavarro » Tue Feb 19, 2019 12:54 am

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
Code: Select all  Expand view  RUN

   oRich := TRichEdit5():Redefine( 100, bSETGET( cTxt ), oDlg )
   //   oRich:lHighLight = .T.                           // comenta esta linea y prueba asi
 
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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Consulta RICHEDIT

Postby remtec » Tue Feb 19, 2019 1:29 am

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.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

Re: Consulta RICHEDIT

Postby cnavarro » Tue Feb 19, 2019 3:02 pm

remtec 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.


Antonio, paso a paso, y haber si te he entendido
En la function New()

Code: Select all  Expand view  RUN


   @  0, 0 RICHEDIT oRTF VAR cRTF OF oWnd
//           FILE "TestRTF.RTF"    // No pongas esta clausula

 


y además, en esa function en el ACTIVATE de la ventana

Code: Select all  Expand view  RUN


  ACTIVATE WINDOW oWnd MAXIMIZED ON INIT oRtf:LoadRtf( cTxt )

 


OJO, la variable que contiene el codigo de texto enriquecido ha de ser visible en esa function New, por lo tanto te recomiendo que la variable cTxt la definas estática y compruebes que no la defines también como LOCAL en la function NEW
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
User avatar
cnavarro
 
Posts: 6552
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

PreviousNext

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 53 guests