Consulta RICHEDIT

Consulta RICHEDIT

Postby remtec » Tue Feb 12, 2019 8:39 pm

Amigos

Muy buenas tardes.

Estoy probando la RichEdit, con Fwh 17.09 y Harbour, he cargado la Variable cTxt, con el contenido de unos registros de una Dbf, puedo realizar cambios o actualizaciones sobre el Texto, tales como diferentes Font y Tamaños de Letras en pantalla, pero no logro obtener la variable con el contenido actualizado, para grabarlo en la DBF.

Necesito saber de que forma puedo obtener el contenido actualizado de la variable??

Desde ya muchas gracias.

Atte.
Antonio

Este es el código que estoy usando:
Code: Select all  Expand view  RUN

// FWH and FW++ RichEdit sample

#include "FiveWin.ch"

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

function Main()

   local oDlg, oRich
   local hRichDLL := LoadLibrary( "riched20.dll" )
   local lSyntaxHL := .f.
     Static cTxt := ""
     Static aa

       USE DETALLE
        go top
    WHILE !EOF()

        cTxt += deinfec->COD_DET + CHR( 13 )

        SKIP
    ENDDO

    CLOSE

   DEFINE DIALOG oDlg RESOURCE "#100"

   oRich = TRichEdit():Redefine( 100, { || "" }, oDlg )
   oRich:lHighLight = .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() )

   ACTIVATE DIALOG oDlg CENTERED ;
      // ON INIT oRich:AutoURLDetect( .t. )

   FreeLibrary( hRichDLL )

return nil

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

Re: Consulta RICHEDIT

Postby cnavarro » Tue Feb 12, 2019 9:20 pm

Yo prefiero utilizar TRichEdit5, pero prueba asi

Code: Select all  Expand view  RUN

#include "FiveWin.ch"

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

function Main()

   local oDlg, oRich
   local hRichDLL := LoadLibrary( "riched20.dll" )
   local lSyntaxHL := .f.
   local cTxt := ""

    USE CUSTOMER
    go top
    WHILE !EOF()
        cTxt += customer->First + Chr( 9 ) + customer->Last + CHR( 13 )
        SKIP
    ENDDO
    CLOSE

   DEFINE DIALOG oDlg RESOURCE "Test"

   oRich = TRichEdit():Redefine( 100, bSETGET( cTxt ), oDlg )
   oRich:lHighLight = .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() )

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRich:SetText( cTxt ) ;
      VALID ( cTxt  := oRich:GetText(), .T. )

   MemoEdit( cTxt )

   FreeLibrary( hRichDLL )

return nil

//----------------------------------------------------------------------------//
 
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 » Wed Feb 13, 2019 12:14 am

Hola C. Navarro

Muchas gracias por responder.

Aplique tu codigo, como resultado solo actualizo lo escrito, todas las aplicaciones de Tipos de Font, negritas o colores, no los guarda, al recuperar el texto, pierde todo lo enriquecido.

Existe alguna forma que pueda mantener todo lo aplicado al codigo??

Que diferencia tiene RichEdit y TRichEdit5 que tu me dices que prefieres??

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 » Wed Feb 13, 2019 11:23 am

La diferencia entre ambas clases es que la clase TRichEdit5 es más moderna y utiliza otra DLL: MsftEdit.dll, y el control en los redefines es RichEdit50W, contiene más métodos y funcionalidades.

Bien, en cuanto a lo que necesitas, ahora si te he entendido
Cambia en el código del ejemplo que te he puesto esta línea

Code: Select all  Expand view  RUN

      VALID ( cTxt := oRich:SaveAsRTF(), .T. ) // oRich:GetText(), .T. )
 
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 » Wed Feb 13, 2019 3:13 pm

C. Navarro

Hola, muchas gracias por toda tu atencion y disponibilidad que siempres tienes para ayudarme.

Aplique lo que me dejastes, el resultado es que:

Hasta antes de grabar en la DBF, todo bien, la palabra Textto con Font Aplicado y Cambio de color, ademas Segundo con Color Rojo.
Escrito Original
Code: Select all  Expand view  RUN

En pierna a nivel safena con reflujo menor a 1 segundo y di metro
 


Grabado en la DBF, en un campo Char de 70, al salir de proceso de actualizacion de texto:
Code: Select all  Expand view  RUN

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0

 


Como podria grabar en la DBF, para mantener las condiciones de actualizacion del Texto o definitivamente, no se puede aplicar??

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 » Wed Feb 13, 2019 9:44 pm

remtec wrote:C. Navarro

Como podria grabar en la DBF, para mantener las condiciones de actualizacion del Texto o definitivamente, no se puede aplicar??

Muchos Saludos
Antonio


Antonio, creo que no te entiendo bien
Puedes obtener el texto sin formato, y grabarlo ( primer ejemplo ) o con el formato incrustado ( segundo ejemplo ), y grabarlo, pero otro tema es visualizar ese campo de la DBF como si tuvieras un control RICHEDIT.
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 » Thu Feb 14, 2019 3:29 am

C. Navarro

Muchas gracias.

Cómo muestro en el Segundo Ejemplo, es lo q se grabó en la DBF, esto tiene incluido los tipos actualizaciones de tipos de Font y tamaños, este texto puede necesitarse modificarlo o imprimirlo en más de una oportunidad,por lo q requiere volver a recuperar con todo el texto enriquecido. Esto al tratarse de informes de exámenes, debe poder obtenerse de la misma forma y contenido que fue impreso en su primera ves.

Hoy si trato de recuperar este texto con RichEdit el mismo q lo grabo, no muestra contenido en la pantalla.
Espero haberme explicado más claro.

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 » Fri Feb 15, 2019 10:26 am

Has probado con

Code: Select all  Expand view  RUN

oRTF:InsertRTF( <contenido del campo leido de la base de datos> )

 


o directamente con

Code: Select all  Expand view  RUN

REINSERTRTF( oRTF:hWnd, <contenido del campo leido de la base de datos> )
 


Aunque deberías probar antes con
Code: Select all  Expand view  RUN

oRrf:LoadRTF( <contenido del campo leido de la base de datos> )
 
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 » Fri Feb 15, 2019 4:31 pm

C. Navarro

Muy buen dia, disculpa por seguir abusando de tu persona, molestandote por tu ayuda.

He tratado de aplicar lo que me sugieres pero arroja Error al Compilar.
Code: Select all  Expand view  RUN

Application
===========
   Path and name: C:\Util\fwh1709\pruebas\editaexa.exe (32 bits)
   Size: 3,753,472 bytes
   Compiler version: Harbour 3.2.0dev (r1506171039)
   FiveWin  version: FWH 17.09
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows version: 5.1, Build 2600 Service Pack 3

   Time from start: 0 hours 0 mins 0 secs
   Error occurred at: 02/15/19, 13:23:36
   Error description: Error BASE/1004  No exported method: LOADRTF
   Args:
     [   1] = U  
     [   2] = C   {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0                
                                                                                     
Se identifica Uni¢n Safeno Femoral con reflujo menor a 3  segundos                  
en Valsalva y di metro de Sefena Magna proximal de 4 mm. En muslo                    
fena transcurre en espacio interfascial, no tortuosa, con comunicantes              
competentes.                                                                        
En pierna a nivel safena con reflujo menor a 1 segundo y di metro                    
de 2 mm.                                                                            
No se identificaron trombos en los segmentos estudiados. Safena                      
parva en espacio interfacial, competente sin reflujo significativo                  
                                                                                     
Sistema Venoso Profundo:                                                            
gen. Se identifica vena femoral comun, superficial y profunda en                    
sin contenido trombotico, diametros normales. Vena poplitea compe-                  
tentes y sin trombos, venas infrapopliteas permeables, competentes                  
y sin trombos.                                                                      
                                                                                     
                                                                                     
                                                                                     
                                                                                     
Miembro Inferior Izquierdo                                                          
                                                                                     
Sistema Venoso Superficial:                                                          
Se identifica Uni¢n Safeno Femoral con reflujo menor a 3 segundos                    
en Valsalva y diametro de Safena Magna proximal de 6 mm. En muslo                    
transcurre en espacio interfascial, no tortuosa, con comunicantes compe              
tentes.                                                                              
En piera a este nivel safena con reflujo menor a 1 segundo de 2 mm                  
No se identificaron trombos en los segmentos estudiados. Safena                      
parva en espacio interfacial, competente sin reflujo significativo                  
                                                                                     
Sistema Venoso Profundo:                                                            
Se identifica vena femoral com£n, superficial y profunda en su ori                  
gen. sin contenido trombotico, di metros normales. Vena poplitea                    
competente y sin trombos. Venas infrapopliteas permeables, compe-                    
tentes y sin trombos.                                                                
                                                                                     
IMPRESION ECOGRAFICA: TVP cronica femoral izquierda con recanaliza                  
                      cion completa.                                                
Atentamente,                                                                        
                                     Dr. Eliomar Cabrera Pernia.                    
                                           Medico Cirujano                          
                                           Rut.:25.670.611-3                        
                                           RCM.:42081-6                              
                                                                                     


Stack Calls
===========
   Called from:  => LOADRTF( 0 )
   Called from: editaexa.prg => MAIN( 29 )

System
======
   CPU type: Intel(R) Core(TM)2 Duo CPU     E7400  @ 2.80GHz 2793 Mhz
   Hardware memory: 1980 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 9
      1 ,                                                                                                    
      2 , C:\Util\fwh1709\pruebas\editaexa.exe                                                                
      3 , C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202
      4 , C:\WINDOWS\system32\COMCTL32.DLL                                                                    
      5 , C:\WINDOWS\system32\SHLWAPI.dll                                                                    
      6 DDE Server Window, C:\WINDOWS\system32\OLE32.DLL                                                                      
      7 GDI+ Window, C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.6002.23846_x-ww_f7dfd05e\GDIPLU
      8 M, C:\WINDOWS\system32\msctfime.ime                                                                    
      9 SysFader, C:\WINDOWS\system32\SHELL32.dll                                                                    

Variables in use
================
   Procedure     Type   Value
   ==========================
   LOADRTF
     Param   1:    O    Class: ERROR
   MAIN
     Param   1:    C    "{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0                
                                                                                     
Se identifica Uni¢n Safeno Femoral con reflujo menor a 3  segundos                  
en Valsalva y di metro de Sefena Magna proximal de 4 mm. En muslo                    
fena transcurre en espacio interfascial, no tortuosa, con comunicantes              
competentes.                                                                        
En pierna a nivel safena con reflujo menor a 1 segundo y di metro                    
de 2 mm.                                                                            
No se identificaron trombos en los segmentos estudiados. Safena                      
parva en espacio interfacial, competente sin reflujo significativo                  
                                                                                     
Sistema Venoso Profundo:                                                            
gen. Se identifica vena femoral comun, superficial y profunda en                    
sin contenido trombotico, diametros normales. Vena poplitea compe-                  
tentes y sin trombos, venas infrapopliteas permeables, competentes                  
y sin trombos.                                                                      
                                                                                     
                                                                                     
                                                                                     
                                                                                     
Miembro Inferior Izquierdo                                                          
                                                                                     
Sistema Venoso Superficial:                                                          
Se identifica Uni¢n Safeno Femoral con reflujo menor a 3 segundos                    
en Valsalva y diametro de Safena Magna proximal de 6 mm. En muslo                    
transcurre en espacio interfascial, no tortuosa, con comunicantes compe              
tentes.                                                                              
En piera a este nivel safena con reflujo menor a 1 segundo de 2 mm                  
No se identificaron trombos en los segmentos estudiados. Safena                      
parva en espacio interfacial, competente sin reflujo significativo                  
                                                                                     
Sistema Venoso Profundo:                                                            
Se identifica vena femoral com£n, superficial y profunda en su ori                  
gen. sin contenido trombotico, di metros normales. Vena poplitea                    
competente y sin trombos. Venas infrapopliteas permeables, compe-                    
tentes y sin trombos.                                                                
                                                                                     
IMPRESION ECOGRAFICA: TVP cronica femoral izquierda con recanaliza                  
                      cion completa.                                                
Atentamente,                                                                        
                                     Dr. Eliomar Cabrera Pernia.                    
                                           Medico Cirujano                          
                                           Rut.:25.670.611-3                        
                                           RCM.:42081-6                              
                                                                                     
"

     Local   1:    U    
     Local   2:    U    

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFNTX

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TREG32
     5 TSTRUCT

Memory Analysis
===============
      375 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes
 


El Codigo que Estoy probando es el Siguiente:
Code: Select all  Expand view  RUN

// FWH and FW++ RichEdit sample

#include "FiveWin.ch"


//----------------------------------------------------------------------------//
// Inicializacion RDD DBFCDX Nativo***
REQUEST DBFNTX,DBFDBT
//rddsetdefault( "DBFNTX" )

function Main()

   local oDlg, oRich
   local hRichDLL := LoadLibrary( "riched20.dll" )
   local lSyntaxHL := .f.
     Static cTxt := ""
     Static aa

       USE Deinfec
         go top
         WHILE !EOF()

        cTxt += deinfec->COD_DET + CHR( 13 )

        SKIP
     ENDDO
         */
    CLOSE

     oRich:LoadRTF( cTxt )

     // oRich:InsertRTF( cTxt )

     DEFINE DIALOG oDlg RESOURCE "#100"

    oRich = TRichEdit():Redefine( 100, bSETGET( cTxt ), oDlg )
   oRich:lHighLight = .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() )

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRich:SetText( cTxt ) ;
      VALID ( cTxt := oRich:SaveAsRTF(), .T. ) // oRich:GetText(), .T. )

     Graba(cTxt)
   MemoEdit( cTxt )
   FreeLibrary( hRichDLL )

return nil

//----------------------------------------------------------------------------//
Static Function Graba(cTxt)

   use Deinfec
   go top
   repl cod_det with subs(cTxt,1,70)
   close
   Return nil


 


Agradeciendo tu ayuda.

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

Re: Consulta RICHEDIT

Postby cmsoft » Fri Feb 15, 2019 5:43 pm

A esa altura todavia no has creado el objeto RTF
Proba asi:
Code: Select all  Expand view  RUN

     DEFINE DIALOG oDlg RESOURCE "#100"

    oRich = TRichEdit():Redefine( 100, bSETGET( cTxt ), oDlg )
    oRich:LoadRTF( cTxt )
   oRich:lHighLight = .f.
 
User avatar
cmsoft
 
Posts: 1293
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Consulta RICHEDIT

Postby remtec » Fri Feb 15, 2019 7:36 pm

Hola Cesar y C. Navarro

Con la modificacion que me indico Cesar, ya no se cae al compilar.

En la primera ejecución de programa, se muestra el código original, he aplicado un cambio del tamaño de FONT y usando negrita a una palabra y un cambio de color a otra en la primera linea, una vez terminado realizo la grabación en la DBF, primera linea, para ver el resultado y lo que se ha grabado es lo siguiente:
Code: Select all  Expand view  RUN

{\rtf1\ansi\ansicpg1252\deff0\deflang13322{\fonttbl{\f0\fnil\fcharset0
 


Al volver ejecutar el programa, debiera mostrarme el texto en pantalla, muestra la pantalla vacia sin texto, aun cuando compruebo que la variable cTxt, es cargada con todo el texto en:
Code: Select all  Expand view  RUN

 WHILE !EOF()
     ?cod_det
        cTxt += deinfec->COD_DET + CHR( 13 )

        SKIP
   ENDDO
 


Lo que definitivamente necesito, es poder recuperar el texto con las modificaciones realizadas, ya sea cambios de tipos de Font, letras negritas u otros colores, ya que puede ser requerido para modificarse o imprimirse, una vez impreso, deber ser fiel copia de lo que se guarda en la DBF.

Realmente llevo mucho tiempo tratando de resolver este problema y necesidad del sistema, me pregunto es tan dificil realizarlo con Fivewin?

Estoy atado de manos.

Saludos y muchas gracias a C. Navarro y Cesar que siempre estan presente.

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

Re: Consulta RICHEDIT

Postby cnavarro » Fri Feb 15, 2019 8:53 pm

Antonio, con el código que te he puesto y también el compañero, debe funcionar sin problemas

Una vez definido el control RICHEDIT
oRich:LoadRTF( cTxt )
oRich:lHighLight = .T.
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 » Sat Feb 16, 2019 12:31 am

Hola C. Navarro.

Sigo dando molestias, he aplicado lo que me has indicado, al igual que Cesar, pero nada.

Este es Texto Original Actualizado:
Code: Select all  Expand view  RUN

IMPRESION ECOGRAFICA: TVP cronica femoral izquierda con recanaliza..

La Palabra "ECOGRAFICA", le aplique Font Arial 16 y "izquierda", Color rojo y Font 12.
 


EL resultado grabado en la DBF es:
Code: Select all  Expand view  RUN

{\rtf1\ansi\ansicpg1252\deff0\deflang13322{\fonttbl{\f0\fnil\fcharset0
 


Creo que me estoy volviendo loco, pero algo estoy haciendo mal si esto debiera funcionar, vuelvo a dejar el codigo del Prg:
Code: Select all  Expand view  RUN

// FWH and FW++ RichEdit sample

#include "FiveWin.ch"

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

function Main()

   local oDlg, oRich
   local hRichDLL := LoadLibrary( "riched20.dll" )
   local lSyntaxHL := .f.
     Static cTxt := ""
     Static aa

       USE deinfec
        go top
    WHILE !EOF()
        cTxt += deinfec->COD_DET + CHR( 13 )

        SKIP
    ENDDO

    CLOSE


   DEFINE DIALOG oDlg RESOURCE "#100"

   oRich = TRichEdit():Redefine( 100, bSETGET( cTxt ), oDlg )             // Lineas Corregidas
     oRich:LoadRTF( cTxt )                                                  // Lineas Corregidas
   oRich:lHighLight = .f.                                                 // Lineas Corregidas

   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() )

  ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRich:SetText( cTxt ) ;
      VALID ( cTxt := oRich:SaveAsRTF(), .T. ) // oRich:GetText(), .T. )

             Graba(cTxt)


     FreeLibrary( hRichDLL )

 Return nil

 Static Function Graba(cTxt)
  USE deinfec
        go top
        repl cod_det with subs(cTxt,1,70)               // Aqui Grabo la primera Linea Con el Contenido Actualizado con Tipo de Font, Tamaño y Color
        close

return nil

 


Disculpa todas las molestias.

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

Re: Consulta RICHEDIT

Postby cnavarro » Sat Feb 16, 2019 11:25 am

Bueno, aqui tienes un ejemplo

Code: Select all  Expand view  RUN

#include "FiveWin.ch"

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

function Main()

   local oDlg, oRich
   local hRichDLL := LoadLibrary( "riched20.dll" )
   local lSyntaxHL := .f.
   local cTxt      := ""

   /*
    USE CUSTOMER
    go top
    WHILE !EOF()
        cTxt += customer->First + Chr( 9 ) + customer->Last + CHR( 13 )
        SKIP
    ENDDO
    CLOSE
   */

   
   // 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"

   oRich = TRichEdit():Redefine( 100, bSETGET( cTxt ), oDlg )
   oRich:lHighLight = .T.

   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() )

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT oRich:LoadRtf( cTxt ) ; //oRich:SetText( cTxt ) ;  //
      VALID ( cTxt := oRich:SaveAsRTF(), .T. ) // oRich:GetText(), .T. )

   //MemoEdit( cTxt )

   FreeLibrary( hRichDLL )

return nil

//----------------------------------------------------------------------------//
 
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 » Sat Feb 16, 2019 4:11 pm

Hola C.Navarro.

He probado tu codigo tal como tu me lo pasas y funciona perfecto.

Pero al cargar cTxt con el contenido de la DBF, no muestra nada, ahora si despues de cargar cTxt con el contenido de la DBF y le agrego el contenido de texto que tu me pasaste, solo muestra tu texto, como si no le aplicara el texto de la DBF.

Le puse un Msginfo():

MsgInfo( cTxt ) <----- Aqui muestra todo el contenido de la DBf y tu Texto enriquecido.

De aqui en adelante solo muestra tu texto.

DEFINE DIALOG oDlg RESOURCE "Test"


oRich = TRichEdit():Redefine( 100, bSETGET( cTxt ), oDlg )
oRich:lHighLight = .T.

Esta claro que es el contenido de la DBF.
Esta DBF tiene 2 campos:
Folio N 10
Cod_det Char 85

Disculpa todas las molestias, muchas gracias por todo tu tiempo y ayuda.

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

Next

Return to FiveWin para Harbour/xHarbour

Who is online

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