Page 1 of 1

TRichEdit control en un dialog

Posted: Thu Feb 11, 2021 10:08 pm
by TecniSoftware
Al ejectuar, el texto aparece seleccionado y no lo muestra desde el principio. Alguien tiene idea que puede ser?
En window funciona correctamente pero necesito poner el control en un dialog y no logro que funcione bien.

Code: Select all

#include "FiveWin.ch"
#include "richedit.ch"

Function Main()

   local oDlg
   local oRtf
   local hRichDLL  := LoadLibrary( "riched20.dll" )
   local cFile     := "testrtf.rtf"
   local cText     := MemoRead( cFile )

   DEFINE DIALOG oDlg TITLE "Test" PIXEL FROM 10, 10 TO 400, 600

   @ 02, 02 RICHEDIT oRtf;
                 VAR cText;
                  OF oDlg;
               PIXEL;
                SIZE 200, 150;
            READONLY

   ACTIVATE DIALOG oDlg CENTERED

   FreeLibrary( hRichDLL )

Return NIL

 

Re: TRichEdit control en un dialog

Posted: Thu Feb 11, 2021 11:02 pm
by cnavarro
Prueba asi, aunque te recomiendo utilizar el control TRichEdt5

Code: Select all

#include "FiveWin.ch"
//#include "richedi5.ch"
#include "richedit.ch"

Function Main()

   local oDlg
   local oRtf
   local hRichDLL  := LoadLibrary( "riched20.dll" )
   local cFile     := "testrtf.rtf"
   local cText     := MemoRead( cFile )
   local cRtf      := ""

   DEFINE DIALOG oDlg TITLE "Test" PIXEL FROM 10, 10 TO 400, 600

   //@ 02, 02 RICHEDIT5 oRtf;
   @ 02, 02 RICHEDIT oRtf;
                 VAR cRtf;
                  OF oDlg;
               PIXEL;
                SIZE 200, 150 ;
            READONLY

   oDlg:bStart = { || oRtf:SetPos( 0 )}

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oRtf:LoadRtf( cText ) ) 

   FreeLibrary( hRichDLL )

Return NIL
 

Re: TRichEdit control en un dialog

Posted: Thu Feb 11, 2021 11:13 pm
by TecniSoftware
cnavarro wrote:Prueba asi, aunque te recomiendo utilizar el control TRichEdt5

Code: Select all

#include "FiveWin.ch"
//#include "richedi5.ch"
#include "richedit.ch"

Function Main()

   local oDlg
   local oRtf
   local hRichDLL  := LoadLibrary( "riched20.dll" )
   local cFile     := "testrtf.rtf"
   local cText     := MemoRead( cFile )
   local cRtf      := ""

   DEFINE DIALOG oDlg TITLE "Test" PIXEL FROM 10, 10 TO 400, 600

   //@ 02, 02 RICHEDIT5 oRtf;
   @ 02, 02 RICHEDIT oRtf;
                 VAR cRtf;
                  OF oDlg;
               PIXEL;
                SIZE 200, 150 ;
            READONLY

   oDlg:bStart = { || oRtf:SetPos( 0 )}

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( oRtf:LoadRtf( cText ) ) 

   FreeLibrary( hRichDLL )

Return NIL
 
Cristobal, ud. es un genio, es exactamente lo que necesitba, habia probado con SetPos() pero no lograba hacerlo funcionar.
Muchisimas gracias maestro